@zonease/happy 0.6.40 → 0.6.41

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 (73) hide show
  1. package/dist/{api-D6WL40-U.mjs → api-K2-jr9ar.mjs} +2 -2
  2. package/dist/{api-C7FyJfZ1.cjs → api-XeHlmApX.cjs} +3 -3
  3. package/dist/{auth-C7ZScWEw.cjs → auth-BQvEuSs5.cjs} +2 -2
  4. package/dist/{auth-DCsIoZLT.cjs → auth-BbvPcnkY.cjs} +4 -4
  5. package/dist/{auth-DO9GexAR.mjs → auth-CjLkoM3m.mjs} +4 -4
  6. package/dist/{auth-DxJ3VvrX.mjs → auth-DS8fzlin.mjs} +2 -2
  7. package/dist/{browser-AoVGRX7y.mjs → browser-C05Ak6RL.mjs} +1 -1
  8. package/dist/{browser-DzgO4oaD.cjs → browser-C05SP_Tt.cjs} +1 -1
  9. package/dist/{claudeLocal-C6BdzhDx.cjs → claudeLocal-CpDhLCcZ.cjs} +1 -1
  10. package/dist/{claudeLocal-CWNGpJ0-.mjs → claudeLocal-DJNRlHIC.mjs} +1 -1
  11. package/dist/{config-CclB3QW9.cjs → config-B0mns9fF.cjs} +1 -1
  12. package/dist/{config-DZk-mJ0K.mjs → config-DWWtjKQx.mjs} +1 -1
  13. package/dist/{connect-k9CqDJ-T.cjs → connect-BxCScVNX.cjs} +4 -4
  14. package/dist/{connect-BXLUKJ5P.mjs → connect-DXQC1CJe.mjs} +4 -4
  15. package/dist/{controlClient-B23M-WPp.cjs → controlClient-DgELDZgM.cjs} +1 -1
  16. package/dist/{controlClient-DB5tDU7V.mjs → controlClient-DgjVRN8D.mjs} +1 -1
  17. package/dist/{deviceKeys-C540DcXl.cjs → deviceKeys-BpIAWz13.cjs} +2 -2
  18. package/dist/{deviceKeys-BTdo34Uz.mjs → deviceKeys-CejCdWpw.mjs} +2 -2
  19. package/dist/{doctor-CU4JLGQ1.mjs → doctor-B-LCMVN9.mjs} +3 -3
  20. package/dist/{doctor-BQGLhrcI.cjs → doctor-DznasgP3.cjs} +3 -3
  21. package/dist/{downloadImage-cQ1Z7hkC.cjs → downloadImage-B_ygLAXY.cjs} +3 -3
  22. package/dist/{downloadImage-DZXI3mXL.mjs → downloadImage-ia5SzlCV.mjs} +3 -3
  23. package/dist/{enroll-Bo-CNio1.cjs → enroll-BvfpRUGJ.cjs} +3 -3
  24. package/dist/{enroll-B55BQR56.mjs → enroll-HjUqyGnD.mjs} +3 -3
  25. package/dist/{evidence-DTYRAaOZ.mjs → evidence-BEQd1dCh.mjs} +1 -1
  26. package/dist/{evidence-DQp8QWcv.cjs → evidence-CVgTjBrq.cjs} +1 -1
  27. package/dist/{formatImageMessage-CixDYY6G.cjs → formatImageMessage-CmJTP_hU.cjs} +1 -1
  28. package/dist/{formatImageMessage-DbKSSjMx.mjs → formatImageMessage-DVs57t3x.mjs} +1 -1
  29. package/dist/index.cjs +56 -41
  30. package/dist/index.mjs +56 -41
  31. package/dist/{install-D7Ir7ciZ.cjs → install-2Yl_L582.cjs} +2 -2
  32. package/dist/{install-CgUPGIoF.mjs → install-B3mMGISS.mjs} +1 -1
  33. package/dist/{install-DSDufaPd.cjs → install-Ck22tYHP.cjs} +1 -1
  34. package/dist/{install-B1e6rdy7.mjs → install-UTz_vYvB.mjs} +2 -2
  35. package/dist/lib.cjs +3 -3
  36. package/dist/lib.mjs +3 -3
  37. package/dist/{loadableToolOutput-Bfei9wPq.mjs → loadableToolOutput-4EvraaNY.mjs} +3 -3
  38. package/dist/{loadableToolOutput-CbLGtvST.cjs → loadableToolOutput-BZYlaqHn.cjs} +3 -3
  39. package/dist/{persistence-DKfF81pd.mjs → persistence-CIUFyOwz.mjs} +2 -2
  40. package/dist/{persistence-CBTtC_dm.cjs → persistence-DrfN7TzY.cjs} +1 -1
  41. package/dist/push-CCOXCcM_.cjs +80 -0
  42. package/dist/push-USXj_pv0.mjs +78 -0
  43. package/dist/{run-CURx7LhK.cjs → run-D3CopmEb.cjs} +8 -8
  44. package/dist/{run-BVZsMNwN.mjs → run-Dy6KX6m-.mjs} +8 -8
  45. package/dist/{runClaude-6Gi0sYQy.mjs → runClaude-CWux2RDq.mjs} +14 -14
  46. package/dist/{runClaude-CL3Kt5ex.cjs → runClaude-aHzvx6Ha.cjs} +15 -15
  47. package/dist/{runCodex-ClwEgJ7M.mjs → runCodex-D0ZxSj3O.mjs} +13 -13
  48. package/dist/{runCodex-YKyVBkJ3.cjs → runCodex-G-Aq531U.cjs} +13 -13
  49. package/dist/{runGemini-BPWxVr60.mjs → runGemini-DZC2i6vA.mjs} +15 -15
  50. package/dist/{runGemini-Xz2W1spn.cjs → runGemini-DxGgDAIM.cjs} +15 -15
  51. package/dist/{runOneShot-DjZyCvDI.cjs → runOneShot-BgT-JNMA.cjs} +2 -2
  52. package/dist/{runOneShot-CdCWiiLr.mjs → runOneShot-cxlk7VKA.mjs} +2 -2
  53. package/dist/{serve-B48JttQ3.mjs → serve-CKyvJNs0.mjs} +6 -6
  54. package/dist/{serve-B8vaWQA0.cjs → serve-Dr3wPrtK.cjs} +6 -6
  55. package/dist/{session-BZO25zxp.cjs → session-dYzbOo_W.cjs} +5 -5
  56. package/dist/{session-BXboDn2V.mjs → session-vf2ZjFto.mjs} +5 -5
  57. package/dist/{sessionKeyCache-B6cGadYL.mjs → sessionKeyCache-D2u3JUys.mjs} +1 -1
  58. package/dist/{sessionKeyCache-CDmexJ9p.cjs → sessionKeyCache-dDquDzn0.cjs} +1 -1
  59. package/dist/{sessionList-CgAYZpNj.mjs → sessionList-C1k2PNg_.mjs} +2 -2
  60. package/dist/{sessionList-lQ-nqEhc.cjs → sessionList-DmmtC7uR.cjs} +2 -2
  61. package/dist/{sessionSummary-DCWQoaDP.mjs → sessionSummary-5a1QtFVS.mjs} +3 -3
  62. package/dist/{sessionSummary-CcORiQSq.cjs → sessionSummary-DGLoVOxd.cjs} +3 -3
  63. package/dist/{spawnHappyCLI-KiazE3kL.cjs → spawnHappyCLI-CarRI4GM.cjs} +1 -1
  64. package/dist/{spawnHappyCLI-yBIP_Oqi.mjs → spawnHappyCLI-D3EkTFIn.mjs} +1 -1
  65. package/dist/{ssh-q5uZhqBf.mjs → ssh-B0hvEYIl.mjs} +9 -6
  66. package/dist/{ssh-yMllSHu5.cjs → ssh-CBgVwKsB.cjs} +9 -5
  67. package/dist/{task-_nr7J19j.cjs → task-CMunPKCV.cjs} +6 -6
  68. package/dist/{task-wNX1N2i4.mjs → task-CRo6W-3_.mjs} +6 -6
  69. package/dist/{uninstall-Dxf6_4mQ.mjs → uninstall-BALE2up0.mjs} +2 -2
  70. package/dist/{uninstall-Buaz7d-X.cjs → uninstall-BJ3eEGM4.cjs} +2 -2
  71. package/dist/{update-CGlIfa8e.cjs → update-Bb3iijy8.cjs} +3 -3
  72. package/dist/{update-CnnoX2cV.mjs → update-BfjtLrhO.mjs} +3 -3
  73. package/package.json +1 -1
package/dist/index.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chalk = require('chalk');
4
- var logger = require('./persistence-CBTtC_dm.cjs');
4
+ var logger = require('./persistence-DrfN7TzY.cjs');
5
5
  var z = require('zod');
6
6
  var node_child_process = require('node:child_process');
7
7
  require('node:fs/promises');
@@ -13,8 +13,8 @@ require('tweetnacl');
13
13
  require('fs');
14
14
 
15
15
  async function spawnAndWaitForDaemon() {
16
- const { spawnHappyCLI } = await Promise.resolve().then(function () { return require('./spawnHappyCLI-KiazE3kL.cjs'); }).then(function (n) { return n.spawnHappyCLI$1; });
17
- const { checkIfDaemonRunningAndCleanupStaleState } = await Promise.resolve().then(function () { return require('./controlClient-B23M-WPp.cjs'); });
16
+ const { spawnHappyCLI } = await Promise.resolve().then(function () { return require('./spawnHappyCLI-CarRI4GM.cjs'); }).then(function (n) { return n.spawnHappyCLI$1; });
17
+ const { checkIfDaemonRunningAndCleanupStaleState } = await Promise.resolve().then(function () { return require('./controlClient-DgELDZgM.cjs'); });
18
18
  const child = spawnHappyCLI(["daemon", "start-sync"], {
19
19
  detached: true,
20
20
  stdio: "ignore"
@@ -37,7 +37,7 @@ async function spawnAndWaitForDaemon() {
37
37
  if (!args.includes("--version")) ;
38
38
  if (subcommand === "orchestrator-oneshot") {
39
39
  try {
40
- const { runOrchestratorOneShot } = await Promise.resolve().then(function () { return require('./runOneShot-DjZyCvDI.cjs'); });
40
+ const { runOrchestratorOneShot } = await Promise.resolve().then(function () { return require('./runOneShot-BgT-JNMA.cjs'); });
41
41
  const exitCode = await runOrchestratorOneShot(args.slice(1));
42
42
  process.exit(exitCode);
43
43
  } catch (error) {
@@ -50,7 +50,7 @@ async function spawnAndWaitForDaemon() {
50
50
  return;
51
51
  } else if (subcommand === "doctor") {
52
52
  const { killRunawayHappyProcesses } = await Promise.resolve().then(function () { return require('./doctor-C08m5Z9f.cjs'); });
53
- const { runDoctorCommand } = await Promise.resolve().then(function () { return require('./doctor-BQGLhrcI.cjs'); });
53
+ const { runDoctorCommand } = await Promise.resolve().then(function () { return require('./doctor-DznasgP3.cjs'); });
54
54
  if (args[1] === "clean") {
55
55
  const result = await killRunawayHappyProcesses();
56
56
  console.log(`Cleaned up ${result.killed} runaway processes`);
@@ -63,7 +63,7 @@ async function spawnAndWaitForDaemon() {
63
63
  return;
64
64
  } else if (subcommand === "auth") {
65
65
  try {
66
- const { handleAuthCommand } = await Promise.resolve().then(function () { return require('./auth-DCsIoZLT.cjs'); });
66
+ const { handleAuthCommand } = await Promise.resolve().then(function () { return require('./auth-BbvPcnkY.cjs'); });
67
67
  await handleAuthCommand(args.slice(1));
68
68
  } catch (error) {
69
69
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -75,7 +75,7 @@ async function spawnAndWaitForDaemon() {
75
75
  return;
76
76
  } else if (subcommand === "connect") {
77
77
  try {
78
- const { handleConnectCommand } = await Promise.resolve().then(function () { return require('./connect-k9CqDJ-T.cjs'); });
78
+ const { handleConnectCommand } = await Promise.resolve().then(function () { return require('./connect-BxCScVNX.cjs'); });
79
79
  await handleConnectCommand(args.slice(1));
80
80
  } catch (error) {
81
81
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -86,11 +86,11 @@ async function spawnAndWaitForDaemon() {
86
86
  }
87
87
  return;
88
88
  } else if (subcommand === "codex") {
89
- const { authAndSetupMachineIfNeeded } = await Promise.resolve().then(function () { return require('./auth-C7ZScWEw.cjs'); });
90
- const { isDaemonRunningCurrentlyInstalledHappyVersion } = await Promise.resolve().then(function () { return require('./controlClient-B23M-WPp.cjs'); });
91
- const { spawnHappyCLI } = await Promise.resolve().then(function () { return require('./spawnHappyCLI-KiazE3kL.cjs'); }).then(function (n) { return n.spawnHappyCLI$1; });
89
+ const { authAndSetupMachineIfNeeded } = await Promise.resolve().then(function () { return require('./auth-BQvEuSs5.cjs'); });
90
+ const { isDaemonRunningCurrentlyInstalledHappyVersion } = await Promise.resolve().then(function () { return require('./controlClient-DgELDZgM.cjs'); });
91
+ const { spawnHappyCLI } = await Promise.resolve().then(function () { return require('./spawnHappyCLI-CarRI4GM.cjs'); }).then(function (n) { return n.spawnHappyCLI$1; });
92
92
  try {
93
- const { runCodex } = await Promise.resolve().then(function () { return require('./runCodex-YKyVBkJ3.cjs'); });
93
+ const { runCodex } = await Promise.resolve().then(function () { return require('./runCodex-G-Aq531U.cjs'); });
94
94
  let startedBy = void 0;
95
95
  for (let i = 1; i < args.length; i++) {
96
96
  if (args[i] === "--started-by") {
@@ -121,9 +121,9 @@ async function spawnAndWaitForDaemon() {
121
121
  }
122
122
  return;
123
123
  } else if (subcommand === "gemini") {
124
- const { authAndSetupMachineIfNeeded } = await Promise.resolve().then(function () { return require('./auth-C7ZScWEw.cjs'); });
125
- const { isDaemonRunningCurrentlyInstalledHappyVersion } = await Promise.resolve().then(function () { return require('./controlClient-B23M-WPp.cjs'); });
126
- const { spawnHappyCLI } = await Promise.resolve().then(function () { return require('./spawnHappyCLI-KiazE3kL.cjs'); }).then(function (n) { return n.spawnHappyCLI$1; });
124
+ const { authAndSetupMachineIfNeeded } = await Promise.resolve().then(function () { return require('./auth-BQvEuSs5.cjs'); });
125
+ const { isDaemonRunningCurrentlyInstalledHappyVersion } = await Promise.resolve().then(function () { return require('./controlClient-DgELDZgM.cjs'); });
126
+ const { spawnHappyCLI } = await Promise.resolve().then(function () { return require('./spawnHappyCLI-CarRI4GM.cjs'); }).then(function (n) { return n.spawnHappyCLI$1; });
127
127
  const geminiSubcommand = args[1];
128
128
  if (geminiSubcommand === "model" && args[2] === "set" && args[3]) {
129
129
  const modelName = args[3];
@@ -197,9 +197,9 @@ async function spawnAndWaitForDaemon() {
197
197
  if (geminiSubcommand === "project" && args[2] === "set" && args[3]) {
198
198
  const projectId = args[3];
199
199
  try {
200
- const { saveGoogleCloudProjectToConfig } = await Promise.resolve().then(function () { return require('./config-CclB3QW9.cjs'); });
201
- const { readCredentials: readCredentials2 } = await Promise.resolve().then(function () { return require('./persistence-CBTtC_dm.cjs'); }).then(function (n) { return n.persistence; });
202
- const { ApiClient } = await Promise.resolve().then(function () { return require('./api-C7FyJfZ1.cjs'); }).then(function (n) { return n.api; });
200
+ const { saveGoogleCloudProjectToConfig } = await Promise.resolve().then(function () { return require('./config-B0mns9fF.cjs'); });
201
+ const { readCredentials: readCredentials2 } = await Promise.resolve().then(function () { return require('./persistence-DrfN7TzY.cjs'); }).then(function (n) { return n.persistence; });
202
+ const { ApiClient } = await Promise.resolve().then(function () { return require('./api-XeHlmApX.cjs'); }).then(function (n) { return n.api; });
203
203
  let userEmail = void 0;
204
204
  try {
205
205
  const credentials = await readCredentials2();
@@ -230,7 +230,7 @@ async function spawnAndWaitForDaemon() {
230
230
  }
231
231
  if (geminiSubcommand === "project" && args[2] === "get") {
232
232
  try {
233
- const { readGeminiLocalConfig } = await Promise.resolve().then(function () { return require('./config-CclB3QW9.cjs'); });
233
+ const { readGeminiLocalConfig } = await Promise.resolve().then(function () { return require('./config-B0mns9fF.cjs'); });
234
234
  const config = readGeminiLocalConfig();
235
235
  if (config.googleCloudProject) {
236
236
  console.log(`Current Google Cloud Project: ${config.googleCloudProject}`);
@@ -270,7 +270,7 @@ async function spawnAndWaitForDaemon() {
270
270
  process.exit(0);
271
271
  }
272
272
  try {
273
- const { runGemini } = await Promise.resolve().then(function () { return require('./runGemini-Xz2W1spn.cjs'); });
273
+ const { runGemini } = await Promise.resolve().then(function () { return require('./runGemini-DxGgDAIM.cjs'); });
274
274
  let startedBy = void 0;
275
275
  for (let i = 1; i < args.length; i++) {
276
276
  if (args[i] === "--started-by") {
@@ -302,7 +302,7 @@ async function spawnAndWaitForDaemon() {
302
302
  return;
303
303
  } else if (subcommand === "update") {
304
304
  try {
305
- const { handleUpdateCommand } = await Promise.resolve().then(function () { return require('./update-CGlIfa8e.cjs'); });
305
+ const { handleUpdateCommand } = await Promise.resolve().then(function () { return require('./update-Bb3iijy8.cjs'); });
306
306
  await handleUpdateCommand();
307
307
  } catch (error) {
308
308
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -315,7 +315,7 @@ async function spawnAndWaitForDaemon() {
315
315
  } else if (subcommand === "logout") {
316
316
  console.log(chalk.yellow('Note: "happy logout" is deprecated. Use "happy auth logout" instead.\n'));
317
317
  try {
318
- const { handleAuthCommand } = await Promise.resolve().then(function () { return require('./auth-DCsIoZLT.cjs'); });
318
+ const { handleAuthCommand } = await Promise.resolve().then(function () { return require('./auth-BbvPcnkY.cjs'); });
319
319
  await handleAuthCommand(["logout"]);
320
320
  } catch (error) {
321
321
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -338,7 +338,7 @@ async function spawnAndWaitForDaemon() {
338
338
  return;
339
339
  } else if (subcommand === "session") {
340
340
  try {
341
- const { handleSessionCommand } = await Promise.resolve().then(function () { return require('./session-BZO25zxp.cjs'); });
341
+ const { handleSessionCommand } = await Promise.resolve().then(function () { return require('./session-dYzbOo_W.cjs'); });
342
342
  await handleSessionCommand(args.slice(1));
343
343
  } catch (error) {
344
344
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -350,7 +350,7 @@ async function spawnAndWaitForDaemon() {
350
350
  return;
351
351
  } else if (subcommand === "task") {
352
352
  try {
353
- const { handleTaskCommand } = await Promise.resolve().then(function () { return require('./task-_nr7J19j.cjs'); });
353
+ const { handleTaskCommand } = await Promise.resolve().then(function () { return require('./task-CMunPKCV.cjs'); });
354
354
  await handleTaskCommand(args.slice(1));
355
355
  } catch (error) {
356
356
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -398,7 +398,7 @@ async function spawnAndWaitForDaemon() {
398
398
  return;
399
399
  } else if (subcommand === "evidence") {
400
400
  try {
401
- const { handleEvidenceCommand } = await Promise.resolve().then(function () { return require('./evidence-DQp8QWcv.cjs'); });
401
+ const { handleEvidenceCommand } = await Promise.resolve().then(function () { return require('./evidence-CVgTjBrq.cjs'); });
402
402
  await handleEvidenceCommand(args.slice(1));
403
403
  } catch (error) {
404
404
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -415,7 +415,7 @@ async function spawnAndWaitForDaemon() {
415
415
  process.exit(1);
416
416
  }
417
417
  try {
418
- const { runMcpServe } = await Promise.resolve().then(function () { return require('./serve-B8vaWQA0.cjs'); });
418
+ const { runMcpServe } = await Promise.resolve().then(function () { return require('./serve-Dr3wPrtK.cjs'); });
419
419
  await runMcpServe();
420
420
  } catch (error) {
421
421
  process.stderr.write(`[happy-mcp] fatal: ${error instanceof Error ? error.message : "unknown error"}
@@ -429,7 +429,7 @@ async function spawnAndWaitForDaemon() {
429
429
  console.error(chalk.red("Error:"), 'Not authenticated. Run "happy auth" first.');
430
430
  process.exit(1);
431
431
  }
432
- const { parseSshArgs, runOnDevice, sshDevice, sshPickAndConnect } = await Promise.resolve().then(function () { return require('./ssh-yMllSHu5.cjs'); });
432
+ const { parseSshArgs, runOnDevice, sshDevice, sshPickAndConnect } = await Promise.resolve().then(function () { return require('./ssh-CBgVwKsB.cjs'); });
433
433
  const { target, command, timeoutMs, stream } = parseSshArgs(args.slice(1));
434
434
  try {
435
435
  if (command) {
@@ -449,9 +449,23 @@ async function spawnAndWaitForDaemon() {
449
449
  }
450
450
  } else if (subcommand === "device") {
451
451
  const deviceSubcommand = args[1];
452
+ if (deviceSubcommand === "push") {
453
+ const { pushToDevice } = await Promise.resolve().then(function () { return require('./push-CCOXCcM_.cjs'); });
454
+ const credentials = await logger.readCredentials();
455
+ if (!credentials) {
456
+ console.error(chalk.red("Error:"), 'Not authenticated. Run "happy auth" first.');
457
+ process.exit(1);
458
+ }
459
+ const [target, localPath, remotePath] = args.slice(2);
460
+ if (!target || !localPath || !remotePath) {
461
+ console.error(chalk.red("Error:"), "Usage: happy device push <device> <local-file> <remote-path>");
462
+ process.exit(1);
463
+ }
464
+ process.exit(await pushToDevice(credentials, target, localPath, remotePath));
465
+ }
452
466
  if (deviceSubcommand === "enroll") {
453
- const { enrollDevice } = await Promise.resolve().then(function () { return require('./enroll-Bo-CNio1.cjs'); });
454
- const { install } = await Promise.resolve().then(function () { return require('./install-D7Ir7ciZ.cjs'); });
467
+ const { enrollDevice } = await Promise.resolve().then(function () { return require('./enroll-BvfpRUGJ.cjs'); });
468
+ const { install } = await Promise.resolve().then(function () { return require('./install-2Yl_L582.cjs'); });
455
469
  const token = args[2];
456
470
  if (!token) {
457
471
  console.error(chalk.red("Error:"), "Missing enrollment token. Usage: happy device enroll <token>");
@@ -476,16 +490,17 @@ async function spawnAndWaitForDaemon() {
476
490
  ${chalk.bold("happy device")} - Device enrollment
477
491
 
478
492
  ${chalk.bold("Usage:")}
479
- happy device enroll <token> Link this machine to a Happy account and start the daemon
493
+ happy device enroll <token> Link this machine to a Happy account and start the daemon
494
+ happy device push <device> <src> <dest> Copy a file to a device (no tunnel needed)
480
495
  `);
481
496
  process.exit(0);
482
497
  } else if (subcommand === "daemon") {
483
- const { startDaemon } = await Promise.resolve().then(function () { return require('./run-CURx7LhK.cjs'); }).then(function (n) { return n.run; });
484
- const { install } = await Promise.resolve().then(function () { return require('./install-D7Ir7ciZ.cjs'); });
485
- const { uninstall } = await Promise.resolve().then(function () { return require('./uninstall-Buaz7d-X.cjs'); });
486
- const { runDoctorCommand } = await Promise.resolve().then(function () { return require('./doctor-BQGLhrcI.cjs'); });
487
- const { getLatestDaemonLog } = await Promise.resolve().then(function () { return require('./persistence-CBTtC_dm.cjs'); }).then(function (n) { return n.logger$1; });
488
- const { listDaemonSessions, stopDaemonSession, stopDaemon } = await Promise.resolve().then(function () { return require('./controlClient-B23M-WPp.cjs'); });
498
+ const { startDaemon } = await Promise.resolve().then(function () { return require('./run-D3CopmEb.cjs'); }).then(function (n) { return n.run; });
499
+ const { install } = await Promise.resolve().then(function () { return require('./install-2Yl_L582.cjs'); });
500
+ const { uninstall } = await Promise.resolve().then(function () { return require('./uninstall-BJ3eEGM4.cjs'); });
501
+ const { runDoctorCommand } = await Promise.resolve().then(function () { return require('./doctor-DznasgP3.cjs'); });
502
+ const { getLatestDaemonLog } = await Promise.resolve().then(function () { return require('./persistence-DrfN7TzY.cjs'); }).then(function (n) { return n.logger$1; });
503
+ const { listDaemonSessions, stopDaemonSession, stopDaemon } = await Promise.resolve().then(function () { return require('./controlClient-DgELDZgM.cjs'); });
489
504
  const daemonSubcommand = args[1];
490
505
  if (daemonSubcommand === "list") {
491
506
  try {
@@ -690,7 +705,7 @@ ${chalk.gray("\u2500".repeat(60))}
690
705
  ${chalk.bold.cyan("Claude Code Options (from `claude --help`):")}
691
706
  `);
692
707
  try {
693
- const { claudeCliPath } = await Promise.resolve().then(function () { return require('./claudeLocal-C6BdzhDx.cjs'); }).then(function (n) { return n.claudeLocal$1; });
708
+ const { claudeCliPath } = await Promise.resolve().then(function () { return require('./claudeLocal-CpDhLCcZ.cjs'); }).then(function (n) { return n.claudeLocal$1; });
694
709
  const claudeHelp = node_child_process.execFileSync(claudeCliPath, ["--help"], { encoding: "utf8" });
695
710
  console.log(claudeHelp);
696
711
  } catch (e) {
@@ -720,10 +735,10 @@ ${chalk.bold.cyan("Claude Code Options (from `claude --help`):")}
720
735
  }
721
736
  process.exit(0);
722
737
  }
723
- const { authAndSetupMachineIfNeeded } = await Promise.resolve().then(function () { return require('./auth-C7ZScWEw.cjs'); });
724
- const { isDaemonRunningCurrentlyInstalledHappyVersion } = await Promise.resolve().then(function () { return require('./controlClient-B23M-WPp.cjs'); });
725
- const { spawnHappyCLI } = await Promise.resolve().then(function () { return require('./spawnHappyCLI-KiazE3kL.cjs'); }).then(function (n) { return n.spawnHappyCLI$1; });
726
- const { runClaude } = await Promise.resolve().then(function () { return require('./runClaude-CL3Kt5ex.cjs'); });
738
+ const { authAndSetupMachineIfNeeded } = await Promise.resolve().then(function () { return require('./auth-BQvEuSs5.cjs'); });
739
+ const { isDaemonRunningCurrentlyInstalledHappyVersion } = await Promise.resolve().then(function () { return require('./controlClient-DgELDZgM.cjs'); });
740
+ const { spawnHappyCLI } = await Promise.resolve().then(function () { return require('./spawnHappyCLI-CarRI4GM.cjs'); }).then(function (n) { return n.spawnHappyCLI$1; });
741
+ const { runClaude } = await Promise.resolve().then(function () { return require('./runClaude-aHzvx6Ha.cjs'); });
727
742
  const {
728
743
  credentials
729
744
  } = await authAndSetupMachineIfNeeded();
@@ -797,7 +812,7 @@ ${chalk.bold("Examples:")}
797
812
  }
798
813
  console.log(chalk.blue("\u{1F4F1} Sending push notification..."));
799
814
  try {
800
- const { ApiClient } = await Promise.resolve().then(function () { return require('./api-C7FyJfZ1.cjs'); }).then(function (n) { return n.api; });
815
+ const { ApiClient } = await Promise.resolve().then(function () { return require('./api-XeHlmApX.cjs'); }).then(function (n) { return n.api; });
801
816
  const api = await ApiClient.create(credentials);
802
817
  const notificationTitle = title || "Happy AI";
803
818
  api.push().sendToAllDevices(
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import{createRequire as _pkgrollCR}from"node:module";const require=_pkgrollCR(import.meta.url);import chalk from 'chalk';
2
- import { l as logger, i as isDebug, r as readCredentials, a as readSettings, p as packageJson } from './persistence-DKfF81pd.mjs';
2
+ import { l as logger, i as isDebug, r as readCredentials, a as readSettings, p as packageJson } from './persistence-CIUFyOwz.mjs';
3
3
  import { z } from 'zod';
4
4
  import { execFileSync } from 'node:child_process';
5
5
  import 'node:fs/promises';
@@ -11,8 +11,8 @@ import 'tweetnacl';
11
11
  import 'fs';
12
12
 
13
13
  async function spawnAndWaitForDaemon() {
14
- const { spawnHappyCLI } = await import('./spawnHappyCLI-yBIP_Oqi.mjs').then(function (n) { return n.a; });
15
- const { checkIfDaemonRunningAndCleanupStaleState } = await import('./controlClient-DB5tDU7V.mjs');
14
+ const { spawnHappyCLI } = await import('./spawnHappyCLI-D3EkTFIn.mjs').then(function (n) { return n.a; });
15
+ const { checkIfDaemonRunningAndCleanupStaleState } = await import('./controlClient-DgjVRN8D.mjs');
16
16
  const child = spawnHappyCLI(["daemon", "start-sync"], {
17
17
  detached: true,
18
18
  stdio: "ignore"
@@ -35,7 +35,7 @@ async function spawnAndWaitForDaemon() {
35
35
  if (!args.includes("--version")) ;
36
36
  if (subcommand === "orchestrator-oneshot") {
37
37
  try {
38
- const { runOrchestratorOneShot } = await import('./runOneShot-CdCWiiLr.mjs');
38
+ const { runOrchestratorOneShot } = await import('./runOneShot-cxlk7VKA.mjs');
39
39
  const exitCode = await runOrchestratorOneShot(args.slice(1));
40
40
  process.exit(exitCode);
41
41
  } catch (error) {
@@ -48,7 +48,7 @@ async function spawnAndWaitForDaemon() {
48
48
  return;
49
49
  } else if (subcommand === "doctor") {
50
50
  const { killRunawayHappyProcesses } = await import('./doctor-ON7pN5G5.mjs');
51
- const { runDoctorCommand } = await import('./doctor-CU4JLGQ1.mjs');
51
+ const { runDoctorCommand } = await import('./doctor-B-LCMVN9.mjs');
52
52
  if (args[1] === "clean") {
53
53
  const result = await killRunawayHappyProcesses();
54
54
  console.log(`Cleaned up ${result.killed} runaway processes`);
@@ -61,7 +61,7 @@ async function spawnAndWaitForDaemon() {
61
61
  return;
62
62
  } else if (subcommand === "auth") {
63
63
  try {
64
- const { handleAuthCommand } = await import('./auth-DO9GexAR.mjs');
64
+ const { handleAuthCommand } = await import('./auth-CjLkoM3m.mjs');
65
65
  await handleAuthCommand(args.slice(1));
66
66
  } catch (error) {
67
67
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -73,7 +73,7 @@ async function spawnAndWaitForDaemon() {
73
73
  return;
74
74
  } else if (subcommand === "connect") {
75
75
  try {
76
- const { handleConnectCommand } = await import('./connect-BXLUKJ5P.mjs');
76
+ const { handleConnectCommand } = await import('./connect-DXQC1CJe.mjs');
77
77
  await handleConnectCommand(args.slice(1));
78
78
  } catch (error) {
79
79
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -84,11 +84,11 @@ async function spawnAndWaitForDaemon() {
84
84
  }
85
85
  return;
86
86
  } else if (subcommand === "codex") {
87
- const { authAndSetupMachineIfNeeded } = await import('./auth-DxJ3VvrX.mjs');
88
- const { isDaemonRunningCurrentlyInstalledHappyVersion } = await import('./controlClient-DB5tDU7V.mjs');
89
- const { spawnHappyCLI } = await import('./spawnHappyCLI-yBIP_Oqi.mjs').then(function (n) { return n.a; });
87
+ const { authAndSetupMachineIfNeeded } = await import('./auth-DS8fzlin.mjs');
88
+ const { isDaemonRunningCurrentlyInstalledHappyVersion } = await import('./controlClient-DgjVRN8D.mjs');
89
+ const { spawnHappyCLI } = await import('./spawnHappyCLI-D3EkTFIn.mjs').then(function (n) { return n.a; });
90
90
  try {
91
- const { runCodex } = await import('./runCodex-ClwEgJ7M.mjs');
91
+ const { runCodex } = await import('./runCodex-D0ZxSj3O.mjs');
92
92
  let startedBy = void 0;
93
93
  for (let i = 1; i < args.length; i++) {
94
94
  if (args[i] === "--started-by") {
@@ -119,9 +119,9 @@ async function spawnAndWaitForDaemon() {
119
119
  }
120
120
  return;
121
121
  } else if (subcommand === "gemini") {
122
- const { authAndSetupMachineIfNeeded } = await import('./auth-DxJ3VvrX.mjs');
123
- const { isDaemonRunningCurrentlyInstalledHappyVersion } = await import('./controlClient-DB5tDU7V.mjs');
124
- const { spawnHappyCLI } = await import('./spawnHappyCLI-yBIP_Oqi.mjs').then(function (n) { return n.a; });
122
+ const { authAndSetupMachineIfNeeded } = await import('./auth-DS8fzlin.mjs');
123
+ const { isDaemonRunningCurrentlyInstalledHappyVersion } = await import('./controlClient-DgjVRN8D.mjs');
124
+ const { spawnHappyCLI } = await import('./spawnHappyCLI-D3EkTFIn.mjs').then(function (n) { return n.a; });
125
125
  const geminiSubcommand = args[1];
126
126
  if (geminiSubcommand === "model" && args[2] === "set" && args[3]) {
127
127
  const modelName = args[3];
@@ -195,9 +195,9 @@ async function spawnAndWaitForDaemon() {
195
195
  if (geminiSubcommand === "project" && args[2] === "set" && args[3]) {
196
196
  const projectId = args[3];
197
197
  try {
198
- const { saveGoogleCloudProjectToConfig } = await import('./config-DZk-mJ0K.mjs');
199
- const { readCredentials: readCredentials2 } = await import('./persistence-DKfF81pd.mjs').then(function (n) { return n.F; });
200
- const { ApiClient } = await import('./api-D6WL40-U.mjs').then(function (n) { return n.m; });
198
+ const { saveGoogleCloudProjectToConfig } = await import('./config-DWWtjKQx.mjs');
199
+ const { readCredentials: readCredentials2 } = await import('./persistence-CIUFyOwz.mjs').then(function (n) { return n.F; });
200
+ const { ApiClient } = await import('./api-K2-jr9ar.mjs').then(function (n) { return n.m; });
201
201
  let userEmail = void 0;
202
202
  try {
203
203
  const credentials = await readCredentials2();
@@ -228,7 +228,7 @@ async function spawnAndWaitForDaemon() {
228
228
  }
229
229
  if (geminiSubcommand === "project" && args[2] === "get") {
230
230
  try {
231
- const { readGeminiLocalConfig } = await import('./config-DZk-mJ0K.mjs');
231
+ const { readGeminiLocalConfig } = await import('./config-DWWtjKQx.mjs');
232
232
  const config = readGeminiLocalConfig();
233
233
  if (config.googleCloudProject) {
234
234
  console.log(`Current Google Cloud Project: ${config.googleCloudProject}`);
@@ -268,7 +268,7 @@ async function spawnAndWaitForDaemon() {
268
268
  process.exit(0);
269
269
  }
270
270
  try {
271
- const { runGemini } = await import('./runGemini-BPWxVr60.mjs');
271
+ const { runGemini } = await import('./runGemini-DZC2i6vA.mjs');
272
272
  let startedBy = void 0;
273
273
  for (let i = 1; i < args.length; i++) {
274
274
  if (args[i] === "--started-by") {
@@ -300,7 +300,7 @@ async function spawnAndWaitForDaemon() {
300
300
  return;
301
301
  } else if (subcommand === "update") {
302
302
  try {
303
- const { handleUpdateCommand } = await import('./update-CnnoX2cV.mjs');
303
+ const { handleUpdateCommand } = await import('./update-BfjtLrhO.mjs');
304
304
  await handleUpdateCommand();
305
305
  } catch (error) {
306
306
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -313,7 +313,7 @@ async function spawnAndWaitForDaemon() {
313
313
  } else if (subcommand === "logout") {
314
314
  console.log(chalk.yellow('Note: "happy logout" is deprecated. Use "happy auth logout" instead.\n'));
315
315
  try {
316
- const { handleAuthCommand } = await import('./auth-DO9GexAR.mjs');
316
+ const { handleAuthCommand } = await import('./auth-CjLkoM3m.mjs');
317
317
  await handleAuthCommand(["logout"]);
318
318
  } catch (error) {
319
319
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -336,7 +336,7 @@ async function spawnAndWaitForDaemon() {
336
336
  return;
337
337
  } else if (subcommand === "session") {
338
338
  try {
339
- const { handleSessionCommand } = await import('./session-BXboDn2V.mjs');
339
+ const { handleSessionCommand } = await import('./session-vf2ZjFto.mjs');
340
340
  await handleSessionCommand(args.slice(1));
341
341
  } catch (error) {
342
342
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -348,7 +348,7 @@ async function spawnAndWaitForDaemon() {
348
348
  return;
349
349
  } else if (subcommand === "task") {
350
350
  try {
351
- const { handleTaskCommand } = await import('./task-wNX1N2i4.mjs');
351
+ const { handleTaskCommand } = await import('./task-CRo6W-3_.mjs');
352
352
  await handleTaskCommand(args.slice(1));
353
353
  } catch (error) {
354
354
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -396,7 +396,7 @@ async function spawnAndWaitForDaemon() {
396
396
  return;
397
397
  } else if (subcommand === "evidence") {
398
398
  try {
399
- const { handleEvidenceCommand } = await import('./evidence-DTYRAaOZ.mjs');
399
+ const { handleEvidenceCommand } = await import('./evidence-BEQd1dCh.mjs');
400
400
  await handleEvidenceCommand(args.slice(1));
401
401
  } catch (error) {
402
402
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -413,7 +413,7 @@ async function spawnAndWaitForDaemon() {
413
413
  process.exit(1);
414
414
  }
415
415
  try {
416
- const { runMcpServe } = await import('./serve-B48JttQ3.mjs');
416
+ const { runMcpServe } = await import('./serve-CKyvJNs0.mjs');
417
417
  await runMcpServe();
418
418
  } catch (error) {
419
419
  process.stderr.write(`[happy-mcp] fatal: ${error instanceof Error ? error.message : "unknown error"}
@@ -427,7 +427,7 @@ async function spawnAndWaitForDaemon() {
427
427
  console.error(chalk.red("Error:"), 'Not authenticated. Run "happy auth" first.');
428
428
  process.exit(1);
429
429
  }
430
- const { parseSshArgs, runOnDevice, sshDevice, sshPickAndConnect } = await import('./ssh-q5uZhqBf.mjs');
430
+ const { parseSshArgs, runOnDevice, sshDevice, sshPickAndConnect } = await import('./ssh-B0hvEYIl.mjs');
431
431
  const { target, command, timeoutMs, stream } = parseSshArgs(args.slice(1));
432
432
  try {
433
433
  if (command) {
@@ -447,9 +447,23 @@ async function spawnAndWaitForDaemon() {
447
447
  }
448
448
  } else if (subcommand === "device") {
449
449
  const deviceSubcommand = args[1];
450
+ if (deviceSubcommand === "push") {
451
+ const { pushToDevice } = await import('./push-USXj_pv0.mjs');
452
+ const credentials = await readCredentials();
453
+ if (!credentials) {
454
+ console.error(chalk.red("Error:"), 'Not authenticated. Run "happy auth" first.');
455
+ process.exit(1);
456
+ }
457
+ const [target, localPath, remotePath] = args.slice(2);
458
+ if (!target || !localPath || !remotePath) {
459
+ console.error(chalk.red("Error:"), "Usage: happy device push <device> <local-file> <remote-path>");
460
+ process.exit(1);
461
+ }
462
+ process.exit(await pushToDevice(credentials, target, localPath, remotePath));
463
+ }
450
464
  if (deviceSubcommand === "enroll") {
451
- const { enrollDevice } = await import('./enroll-B55BQR56.mjs');
452
- const { install } = await import('./install-B1e6rdy7.mjs');
465
+ const { enrollDevice } = await import('./enroll-HjUqyGnD.mjs');
466
+ const { install } = await import('./install-UTz_vYvB.mjs');
453
467
  const token = args[2];
454
468
  if (!token) {
455
469
  console.error(chalk.red("Error:"), "Missing enrollment token. Usage: happy device enroll <token>");
@@ -474,16 +488,17 @@ async function spawnAndWaitForDaemon() {
474
488
  ${chalk.bold("happy device")} - Device enrollment
475
489
 
476
490
  ${chalk.bold("Usage:")}
477
- happy device enroll <token> Link this machine to a Happy account and start the daemon
491
+ happy device enroll <token> Link this machine to a Happy account and start the daemon
492
+ happy device push <device> <src> <dest> Copy a file to a device (no tunnel needed)
478
493
  `);
479
494
  process.exit(0);
480
495
  } else if (subcommand === "daemon") {
481
- const { startDaemon } = await import('./run-BVZsMNwN.mjs').then(function (n) { return n.r; });
482
- const { install } = await import('./install-B1e6rdy7.mjs');
483
- const { uninstall } = await import('./uninstall-Dxf6_4mQ.mjs');
484
- const { runDoctorCommand } = await import('./doctor-CU4JLGQ1.mjs');
485
- const { getLatestDaemonLog } = await import('./persistence-DKfF81pd.mjs').then(function (n) { return n.E; });
486
- const { listDaemonSessions, stopDaemonSession, stopDaemon } = await import('./controlClient-DB5tDU7V.mjs');
496
+ const { startDaemon } = await import('./run-Dy6KX6m-.mjs').then(function (n) { return n.r; });
497
+ const { install } = await import('./install-UTz_vYvB.mjs');
498
+ const { uninstall } = await import('./uninstall-BALE2up0.mjs');
499
+ const { runDoctorCommand } = await import('./doctor-B-LCMVN9.mjs');
500
+ const { getLatestDaemonLog } = await import('./persistence-CIUFyOwz.mjs').then(function (n) { return n.E; });
501
+ const { listDaemonSessions, stopDaemonSession, stopDaemon } = await import('./controlClient-DgjVRN8D.mjs');
487
502
  const daemonSubcommand = args[1];
488
503
  if (daemonSubcommand === "list") {
489
504
  try {
@@ -688,7 +703,7 @@ ${chalk.gray("\u2500".repeat(60))}
688
703
  ${chalk.bold.cyan("Claude Code Options (from `claude --help`):")}
689
704
  `);
690
705
  try {
691
- const { claudeCliPath } = await import('./claudeLocal-CWNGpJ0-.mjs').then(function (n) { return n.d; });
706
+ const { claudeCliPath } = await import('./claudeLocal-DJNRlHIC.mjs').then(function (n) { return n.d; });
692
707
  const claudeHelp = execFileSync(claudeCliPath, ["--help"], { encoding: "utf8" });
693
708
  console.log(claudeHelp);
694
709
  } catch (e) {
@@ -718,10 +733,10 @@ ${chalk.bold.cyan("Claude Code Options (from `claude --help`):")}
718
733
  }
719
734
  process.exit(0);
720
735
  }
721
- const { authAndSetupMachineIfNeeded } = await import('./auth-DxJ3VvrX.mjs');
722
- const { isDaemonRunningCurrentlyInstalledHappyVersion } = await import('./controlClient-DB5tDU7V.mjs');
723
- const { spawnHappyCLI } = await import('./spawnHappyCLI-yBIP_Oqi.mjs').then(function (n) { return n.a; });
724
- const { runClaude } = await import('./runClaude-6Gi0sYQy.mjs');
736
+ const { authAndSetupMachineIfNeeded } = await import('./auth-DS8fzlin.mjs');
737
+ const { isDaemonRunningCurrentlyInstalledHappyVersion } = await import('./controlClient-DgjVRN8D.mjs');
738
+ const { spawnHappyCLI } = await import('./spawnHappyCLI-D3EkTFIn.mjs').then(function (n) { return n.a; });
739
+ const { runClaude } = await import('./runClaude-CWux2RDq.mjs');
725
740
  const {
726
741
  credentials
727
742
  } = await authAndSetupMachineIfNeeded();
@@ -795,7 +810,7 @@ ${chalk.bold("Examples:")}
795
810
  }
796
811
  console.log(chalk.blue("\u{1F4F1} Sending push notification..."));
797
812
  try {
798
- const { ApiClient } = await import('./api-D6WL40-U.mjs').then(function (n) { return n.m; });
813
+ const { ApiClient } = await import('./api-K2-jr9ar.mjs').then(function (n) { return n.m; });
799
814
  const api = await ApiClient.create(credentials);
800
815
  const notificationTitle = title || "Happy AI";
801
816
  api.push().sendToAllDevices(
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var logger = require('./persistence-CBTtC_dm.cjs');
4
- var install$2 = require('./install-DSDufaPd.cjs');
3
+ var logger = require('./persistence-DrfN7TzY.cjs');
4
+ var install$2 = require('./install-Ck22tYHP.cjs');
5
5
  var fs = require('fs');
6
6
  var child_process = require('child_process');
7
7
  var path = require('path');
@@ -2,7 +2,7 @@ import { existsSync, mkdirSync, writeFileSync } from 'fs';
2
2
  import { execSync } from 'child_process';
3
3
  import os from 'os';
4
4
  import { join } from 'path';
5
- import { l as logger } from './persistence-DKfF81pd.mjs';
5
+ import { l as logger } from './persistence-CIUFyOwz.mjs';
6
6
  import { t as trimIdent } from './trimIdent-BAjmv_TG.mjs';
7
7
  import { p as projectPath } from './projectPath-BTBIMB57.mjs';
8
8
 
@@ -4,7 +4,7 @@ var fs = require('fs');
4
4
  var child_process = require('child_process');
5
5
  var os = require('os');
6
6
  var path = require('path');
7
- var logger = require('./persistence-CBTtC_dm.cjs');
7
+ var logger = require('./persistence-DrfN7TzY.cjs');
8
8
  var trimIdent = require('./trimIdent-4gvk9Wk6.cjs');
9
9
  var projectPath = require('./projectPath-ChLhdOyt.cjs');
10
10
 
@@ -1,5 +1,5 @@
1
- import { l as logger, r as readCredentials } from './persistence-DKfF81pd.mjs';
2
- import { i as install$2 } from './install-CgUPGIoF.mjs';
1
+ import { l as logger, r as readCredentials } from './persistence-CIUFyOwz.mjs';
2
+ import { i as install$2 } from './install-B3mMGISS.mjs';
3
3
  import { existsSync, mkdirSync, writeFileSync } from 'fs';
4
4
  import { execSync } from 'child_process';
5
5
  import path from 'path';
package/dist/lib.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var api = require('./api-C7FyJfZ1.cjs');
4
- var logger = require('./persistence-CBTtC_dm.cjs');
3
+ var api = require('./api-XeHlmApX.cjs');
4
+ var logger = require('./persistence-DrfN7TzY.cjs');
5
5
  var types = require('./types-DWeB7aqh.cjs');
6
6
  require('axios');
7
7
  require('node:events');
@@ -30,7 +30,7 @@ require('tweetnacl');
30
30
  require('@stablelib/base64');
31
31
  require('node:readline');
32
32
  require('expo-server-sdk');
33
- require('./sessionKeyCache-CDmexJ9p.cjs');
33
+ require('./sessionKeyCache-dDquDzn0.cjs');
34
34
  require('chalk');
35
35
  require('fs');
36
36
 
package/dist/lib.mjs CHANGED
@@ -1,5 +1,5 @@
1
- export { A as ApiClient, a as ApiSessionClient } from './api-D6WL40-U.mjs';
2
- export { c as configuration, l as logger } from './persistence-DKfF81pd.mjs';
1
+ export { A as ApiClient, a as ApiSessionClient } from './api-K2-jr9ar.mjs';
2
+ export { c as configuration, l as logger } from './persistence-CIUFyOwz.mjs';
3
3
  export { R as RawJSONLinesSchema } from './types-BoJh4Qfv.mjs';
4
4
  import 'axios';
5
5
  import 'node:events';
@@ -28,6 +28,6 @@ import 'tweetnacl';
28
28
  import '@stablelib/base64';
29
29
  import 'node:readline';
30
30
  import 'expo-server-sdk';
31
- import './sessionKeyCache-B6cGadYL.mjs';
31
+ import './sessionKeyCache-D2u3JUys.mjs';
32
32
  import 'chalk';
33
33
  import 'fs';
@@ -1,11 +1,11 @@
1
- import { l as logger, c as configuration, p as packageJson } from './persistence-DKfF81pd.mjs';
1
+ import { l as logger, c as configuration, p as packageJson } from './persistence-CIUFyOwz.mjs';
2
2
  import { randomUUID } from 'node:crypto';
3
3
  import { readFileSync, existsSync, readdirSync } from 'node:fs';
4
4
  import os, { homedir } from 'node:os';
5
5
  import { join, basename, dirname } from 'node:path';
6
6
  import { p as projectPath } from './projectPath-BTBIMB57.mjs';
7
- import { r as resolveToolsDir, s as startOfflineReconnection, b as saveToolOutputRecord } from './api-D6WL40-U.mjs';
8
- import { a as detectGitWorktree } from './downloadImage-DZXI3mXL.mjs';
7
+ import { r as resolveToolsDir, s as startOfflineReconnection, b as saveToolOutputRecord } from './api-K2-jr9ar.mjs';
8
+ import { a as detectGitWorktree } from './downloadImage-ia5SzlCV.mjs';
9
9
 
10
10
  class BasePermissionHandler {
11
11
  pendingRequests = /* @__PURE__ */ new Map();
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
- var logger = require('./persistence-CBTtC_dm.cjs');
3
+ var logger = require('./persistence-DrfN7TzY.cjs');
4
4
  var node_crypto = require('node:crypto');
5
5
  var fs = require('node:fs');
6
6
  var os = require('node:os');
7
7
  var path = require('node:path');
8
8
  var projectPath = require('./projectPath-ChLhdOyt.cjs');
9
- var api = require('./api-C7FyJfZ1.cjs');
10
- var downloadImage = require('./downloadImage-cQ1Z7hkC.cjs');
9
+ var api = require('./api-XeHlmApX.cjs');
10
+ var downloadImage = require('./downloadImage-B_ygLAXY.cjs');
11
11
 
12
12
  class BasePermissionHandler {
13
13
  pendingRequests = /* @__PURE__ */ new Map();