@zonease/happy 0.6.56 → 0.6.58

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 (87) hide show
  1. package/dist/{api-9wvM_aF-.mjs → api-B9shq-xZ.mjs} +47 -12
  2. package/dist/{api-BGc484qf.cjs → api-ByiU9yXy.cjs} +51 -12
  3. package/dist/{auth-CPfJalJM.cjs → auth-BG6e5Uem.cjs} +4 -4
  4. package/dist/{auth-DqAM-lIh.mjs → auth-BRh7v1qh.mjs} +4 -4
  5. package/dist/{auth-B6vskzfm.cjs → auth-DnFrlXqp.cjs} +2 -2
  6. package/dist/{auth-BnEa31tI.mjs → auth-DnRtIM3d.mjs} +2 -2
  7. package/dist/{browser-CkQP96Zi.mjs → browser-BeERlPhN.mjs} +1 -1
  8. package/dist/{browser-CnxzD1lA.cjs → browser-DjONS-B5.cjs} +1 -1
  9. package/dist/{claudeLocal-B5uxtoit.mjs → claudeLocal-CYtFfvTZ.mjs} +1 -1
  10. package/dist/{claudeLocal-CV4fT0Gg.cjs → claudeLocal-CuHH7tvQ.cjs} +1 -1
  11. package/dist/{config-C__p7EWC.cjs → config-BHwOLuFT.cjs} +1 -1
  12. package/dist/{config-C9hdBdfj.mjs → config-BkUfgaM5.mjs} +1 -1
  13. package/dist/{connect-DQjpjfYn.cjs → connect-B9rWe2GY.cjs} +4 -4
  14. package/dist/{connect-BeORCRXq.mjs → connect-BoTU3RCi.mjs} +4 -4
  15. package/dist/{controlClient-DWBW6jRF.cjs → controlClient-BqCwo6Pm.cjs} +1 -1
  16. package/dist/{controlClient-VY0CGL8k.mjs → controlClient-BuKaeD-y.mjs} +1 -1
  17. package/dist/{cursorApprovalHook-D_8btpsY.mjs → cursorApprovalHook-BADH_Ul1.mjs} +2 -2
  18. package/dist/{cursorApprovalHook-BuDSRM-6.cjs → cursorApprovalHook-Ckdd65co.cjs} +2 -2
  19. package/dist/{cursorApprovalServer-j9RphnEG.cjs → cursorApprovalServer--suu8J98.cjs} +1 -1
  20. package/dist/{cursorApprovalServer-BOUd2-Fg.mjs → cursorApprovalServer-BeTT3FNN.mjs} +1 -1
  21. package/dist/{deviceKeys-c_sN01Mm.cjs → deviceKeys-CSfs6juX.cjs} +2 -2
  22. package/dist/{deviceKeys-DvfaTff3.mjs → deviceKeys-DSXcQgLf.mjs} +2 -2
  23. package/dist/{doctor-DQtQbfG-.mjs → doctor-C77QV3rd.mjs} +2 -2
  24. package/dist/{doctor-CD46A-_Y.cjs → doctor-CxWWwoLX.cjs} +2 -2
  25. package/dist/{downloadImage-B6A4x8Jw.mjs → downloadImage-C3FHGZDr.mjs} +1 -1
  26. package/dist/{downloadImage-DGdHCFi3.cjs → downloadImage-DZBxkdwy.cjs} +1 -1
  27. package/dist/{enroll-D9CEuRI_.cjs → enroll-BjZCaXT4.cjs} +3 -3
  28. package/dist/{enroll-CyHWNKNt.mjs → enroll-D5V8LH6P.mjs} +3 -3
  29. package/dist/{evidence-BuYebdrN.mjs → evidence-DL-E4Qfd.mjs} +1 -1
  30. package/dist/{evidence-CCrpzsTA.cjs → evidence-DbFF210m.cjs} +1 -1
  31. package/dist/{formatImageMessage-5qaaT_Wq.mjs → formatImageMessage-C6glTFta.mjs} +1 -1
  32. package/dist/{formatImageMessage-DttKW75w.cjs → formatImageMessage-CHjdeDGM.cjs} +1 -1
  33. package/dist/index.cjs +46 -46
  34. package/dist/index.mjs +46 -46
  35. package/dist/{install-B0hT_tLv.cjs → install-9E-3IeF3.cjs} +2 -2
  36. package/dist/{install-eIXFuZbC.mjs → install-BPCWw2Vc.mjs} +2 -2
  37. package/dist/{install-1Y6dAcMp.mjs → install-DbRGuSWv.mjs} +1 -1
  38. package/dist/{install-C4cwObCN.cjs → install-Td8RvuEV.cjs} +1 -1
  39. package/dist/lib.cjs +3 -3
  40. package/dist/lib.d.cts +10 -0
  41. package/dist/lib.d.mts +10 -0
  42. package/dist/lib.mjs +3 -3
  43. package/dist/{loadableToolOutput-BKDTnyoF.mjs → loadableToolOutput-C0tAWFJM.mjs} +2 -2
  44. package/dist/{loadableToolOutput-Cb-18__b.cjs → loadableToolOutput-C5EQglQm.cjs} +2 -2
  45. package/dist/{persistence-CNXsXPLm.cjs → persistence-50wmDoBE.cjs} +1 -1
  46. package/dist/{persistence-IdEuIeMz.mjs → persistence-Da0uhblK.mjs} +2 -2
  47. package/dist/{push-tXs96IyG.mjs → push-BR82p4YC.mjs} +6 -6
  48. package/dist/{push-XL6Sb0Vw.cjs → push-Bbf139Sy.cjs} +6 -6
  49. package/dist/{registerKillSessionHandler-D9tmPdw5.cjs → registerKillSessionHandler-CHPzUrtO.cjs} +3 -3
  50. package/dist/{registerKillSessionHandler-vF5c8YZF.mjs → registerKillSessionHandler-CxHjAcQu.mjs} +3 -3
  51. package/dist/{run-BKfeeheJ.cjs → run-C6hmGRwH.cjs} +167 -8
  52. package/dist/{run-BvpCwXkt.mjs → run-DjaUrH7x.mjs} +167 -8
  53. package/dist/{runClaude-DDsG7eMR.cjs → runClaude-BR15B5bw.cjs} +20 -19
  54. package/dist/{runClaude-BiVqZQOm.mjs → runClaude-CKFHv0nI.mjs} +19 -18
  55. package/dist/{runCodex-C-8SvnpP.mjs → runCodex-BAlT1EGt.mjs} +18 -17
  56. package/dist/{runCodex-Bh519-dW.cjs → runCodex-BpVY3LQi.cjs} +18 -17
  57. package/dist/{runCursor-CYbvOqUa.cjs → runCursor-BUx34tPB.cjs} +18 -17
  58. package/dist/{runCursor-3AFNF0y2.mjs → runCursor-Dj3orwMw.mjs} +18 -17
  59. package/dist/{runGemini-ExHXGZBY.cjs → runGemini-Bdzns1qW.cjs} +20 -19
  60. package/dist/{runGemini-Dh2JRfOJ.mjs → runGemini-SEsV1VfH.mjs} +20 -19
  61. package/dist/{runOneShot-CVcw-K0_.mjs → runOneShot-BTHgA1q4.mjs} +2 -2
  62. package/dist/{runOneShot-CEVKtkx_.cjs → runOneShot-CK10IG0U.cjs} +2 -2
  63. package/dist/{serve-C4dOQ0jP.mjs → serve-BErPXI_R.mjs} +7 -6
  64. package/dist/{serve-D0IhhySV.cjs → serve-BHe5QkCA.cjs} +7 -6
  65. package/dist/{session-CwMxRPXS.mjs → session-CZyeSNaA.mjs} +6 -5
  66. package/dist/{session-DK9eudJT.cjs → session-FttaWXf3.cjs} +6 -5
  67. package/dist/sessionDecrypt-BsOlrqRs.mjs +64 -0
  68. package/dist/sessionDecrypt-DWm_k5dq.cjs +66 -0
  69. package/dist/{sessionKeyCache-DDzTs7E5.mjs → sessionKeyCache-BBzsFcnN.mjs} +1 -1
  70. package/dist/{sessionKeyCache-JjjYAxdf.cjs → sessionKeyCache-CmORI8jN.cjs} +1 -1
  71. package/dist/{sessionList-IYAtPIev.mjs → sessionList-D_Y-1Cir.mjs} +2 -2
  72. package/dist/{sessionList-DZmmAP3q.cjs → sessionList-lxpW_76R.cjs} +3 -3
  73. package/dist/{sessionSummary-CsIfkyZA.cjs → sessionSummary-BP2T8GHr.cjs} +3 -64
  74. package/dist/{sessionSummary-CQQyTHRC.mjs → sessionSummary-YLlUeUre.mjs} +3 -63
  75. package/dist/{setupOfflineReconnection-C1yzDMt6.mjs → setupOfflineReconnection-B4aU1Nix.mjs} +3 -3
  76. package/dist/{setupOfflineReconnection-DwtIEUeJ.cjs → setupOfflineReconnection-CldeNWUW.cjs} +3 -3
  77. package/dist/{spawnHappyCLI-BbMkZhMk.cjs → spawnHappyCLI-BNUBk0w5.cjs} +1 -1
  78. package/dist/{spawnHappyCLI-DlTg87jS.mjs → spawnHappyCLI-Cv2VARTw.mjs} +1 -1
  79. package/dist/{ssh-DSVjanff.mjs → ssh-CBvM1RVJ.mjs} +5 -5
  80. package/dist/{ssh-D31o750w.cjs → ssh-DXOMR-gb.cjs} +5 -5
  81. package/dist/{task-D9ZjWCcw.mjs → task-CQonykFe.mjs} +7 -6
  82. package/dist/{task--Apxd9oF.cjs → task-DrX3H3_Y.cjs} +7 -6
  83. package/dist/{uninstall-Bo2uaLRP.mjs → uninstall-BijW1rTR.mjs} +2 -2
  84. package/dist/{uninstall-CZJcoC06.cjs → uninstall-CPQjax_f.cjs} +2 -2
  85. package/dist/{update-BiV4YqG3.mjs → update-DaJjoz93.mjs} +3 -3
  86. package/dist/{update-D-bTjP2k.cjs → update-g3D05Tvv.cjs} +3 -3
  87. 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-CNXsXPLm.cjs');
4
+ var logger = require('./persistence-50wmDoBE.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-BbMkZhMk.cjs'); }).then(function (n) { return n.spawnHappyCLI$1; });
17
- const { checkIfDaemonRunningAndCleanupStaleState } = await Promise.resolve().then(function () { return require('./controlClient-DWBW6jRF.cjs'); });
16
+ const { spawnHappyCLI } = await Promise.resolve().then(function () { return require('./spawnHappyCLI-BNUBk0w5.cjs'); }).then(function (n) { return n.spawnHappyCLI$1; });
17
+ const { checkIfDaemonRunningAndCleanupStaleState } = await Promise.resolve().then(function () { return require('./controlClient-BqCwo6Pm.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-CEVKtkx_.cjs'); });
40
+ const { runOrchestratorOneShot } = await Promise.resolve().then(function () { return require('./runOneShot-CK10IG0U.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-CD46A-_Y.cjs'); });
53
+ const { runDoctorCommand } = await Promise.resolve().then(function () { return require('./doctor-CxWWwoLX.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-CPfJalJM.cjs'); });
66
+ const { handleAuthCommand } = await Promise.resolve().then(function () { return require('./auth-BG6e5Uem.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-DQjpjfYn.cjs'); });
78
+ const { handleConnectCommand } = await Promise.resolve().then(function () { return require('./connect-B9rWe2GY.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-B6vskzfm.cjs'); });
90
- const { isDaemonRunningCurrentlyInstalledHappyVersion } = await Promise.resolve().then(function () { return require('./controlClient-DWBW6jRF.cjs'); });
91
- const { spawnHappyCLI } = await Promise.resolve().then(function () { return require('./spawnHappyCLI-BbMkZhMk.cjs'); }).then(function (n) { return n.spawnHappyCLI$1; });
89
+ const { authAndSetupMachineIfNeeded } = await Promise.resolve().then(function () { return require('./auth-DnFrlXqp.cjs'); });
90
+ const { isDaemonRunningCurrentlyInstalledHappyVersion } = await Promise.resolve().then(function () { return require('./controlClient-BqCwo6Pm.cjs'); });
91
+ const { spawnHappyCLI } = await Promise.resolve().then(function () { return require('./spawnHappyCLI-BNUBk0w5.cjs'); }).then(function (n) { return n.spawnHappyCLI$1; });
92
92
  try {
93
- const { runCodex } = await Promise.resolve().then(function () { return require('./runCodex-Bh519-dW.cjs'); });
93
+ const { runCodex } = await Promise.resolve().then(function () { return require('./runCodex-BpVY3LQi.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,15 +121,15 @@ async function spawnAndWaitForDaemon() {
121
121
  }
122
122
  return;
123
123
  } else if (subcommand === "cursor-approval-hook") {
124
- const { runCursorApprovalHook } = await Promise.resolve().then(function () { return require('./cursorApprovalHook-BuDSRM-6.cjs'); });
124
+ const { runCursorApprovalHook } = await Promise.resolve().then(function () { return require('./cursorApprovalHook-Ckdd65co.cjs'); });
125
125
  await runCursorApprovalHook();
126
126
  return;
127
127
  } else if (subcommand === "cursor") {
128
- const { authAndSetupMachineIfNeeded } = await Promise.resolve().then(function () { return require('./auth-B6vskzfm.cjs'); });
129
- const { isDaemonRunningCurrentlyInstalledHappyVersion } = await Promise.resolve().then(function () { return require('./controlClient-DWBW6jRF.cjs'); });
130
- const { spawnHappyCLI } = await Promise.resolve().then(function () { return require('./spawnHappyCLI-BbMkZhMk.cjs'); }).then(function (n) { return n.spawnHappyCLI$1; });
128
+ const { authAndSetupMachineIfNeeded } = await Promise.resolve().then(function () { return require('./auth-DnFrlXqp.cjs'); });
129
+ const { isDaemonRunningCurrentlyInstalledHappyVersion } = await Promise.resolve().then(function () { return require('./controlClient-BqCwo6Pm.cjs'); });
130
+ const { spawnHappyCLI } = await Promise.resolve().then(function () { return require('./spawnHappyCLI-BNUBk0w5.cjs'); }).then(function (n) { return n.spawnHappyCLI$1; });
131
131
  try {
132
- const { runCursor } = await Promise.resolve().then(function () { return require('./runCursor-CYbvOqUa.cjs'); });
132
+ const { runCursor } = await Promise.resolve().then(function () { return require('./runCursor-BUx34tPB.cjs'); });
133
133
  let startedBy = void 0;
134
134
  let model = null;
135
135
  let resumeChatId = null;
@@ -175,9 +175,9 @@ async function spawnAndWaitForDaemon() {
175
175
  }
176
176
  return;
177
177
  } else if (subcommand === "gemini") {
178
- const { authAndSetupMachineIfNeeded } = await Promise.resolve().then(function () { return require('./auth-B6vskzfm.cjs'); });
179
- const { isDaemonRunningCurrentlyInstalledHappyVersion } = await Promise.resolve().then(function () { return require('./controlClient-DWBW6jRF.cjs'); });
180
- const { spawnHappyCLI } = await Promise.resolve().then(function () { return require('./spawnHappyCLI-BbMkZhMk.cjs'); }).then(function (n) { return n.spawnHappyCLI$1; });
178
+ const { authAndSetupMachineIfNeeded } = await Promise.resolve().then(function () { return require('./auth-DnFrlXqp.cjs'); });
179
+ const { isDaemonRunningCurrentlyInstalledHappyVersion } = await Promise.resolve().then(function () { return require('./controlClient-BqCwo6Pm.cjs'); });
180
+ const { spawnHappyCLI } = await Promise.resolve().then(function () { return require('./spawnHappyCLI-BNUBk0w5.cjs'); }).then(function (n) { return n.spawnHappyCLI$1; });
181
181
  const geminiSubcommand = args[1];
182
182
  if (geminiSubcommand === "model" && args[2] === "set" && args[3]) {
183
183
  const modelName = args[3];
@@ -251,9 +251,9 @@ async function spawnAndWaitForDaemon() {
251
251
  if (geminiSubcommand === "project" && args[2] === "set" && args[3]) {
252
252
  const projectId = args[3];
253
253
  try {
254
- const { saveGoogleCloudProjectToConfig } = await Promise.resolve().then(function () { return require('./config-C__p7EWC.cjs'); });
255
- const { readCredentials: readCredentials2 } = await Promise.resolve().then(function () { return require('./persistence-CNXsXPLm.cjs'); }).then(function (n) { return n.persistence; });
256
- const { ApiClient } = await Promise.resolve().then(function () { return require('./api-BGc484qf.cjs'); }).then(function (n) { return n.api; });
254
+ const { saveGoogleCloudProjectToConfig } = await Promise.resolve().then(function () { return require('./config-BHwOLuFT.cjs'); });
255
+ const { readCredentials: readCredentials2 } = await Promise.resolve().then(function () { return require('./persistence-50wmDoBE.cjs'); }).then(function (n) { return n.persistence; });
256
+ const { ApiClient } = await Promise.resolve().then(function () { return require('./api-ByiU9yXy.cjs'); }).then(function (n) { return n.api; });
257
257
  let userEmail = void 0;
258
258
  try {
259
259
  const credentials = await readCredentials2();
@@ -284,7 +284,7 @@ async function spawnAndWaitForDaemon() {
284
284
  }
285
285
  if (geminiSubcommand === "project" && args[2] === "get") {
286
286
  try {
287
- const { readGeminiLocalConfig } = await Promise.resolve().then(function () { return require('./config-C__p7EWC.cjs'); });
287
+ const { readGeminiLocalConfig } = await Promise.resolve().then(function () { return require('./config-BHwOLuFT.cjs'); });
288
288
  const config = readGeminiLocalConfig();
289
289
  if (config.googleCloudProject) {
290
290
  console.log(`Current Google Cloud Project: ${config.googleCloudProject}`);
@@ -324,7 +324,7 @@ async function spawnAndWaitForDaemon() {
324
324
  process.exit(0);
325
325
  }
326
326
  try {
327
- const { runGemini } = await Promise.resolve().then(function () { return require('./runGemini-ExHXGZBY.cjs'); });
327
+ const { runGemini } = await Promise.resolve().then(function () { return require('./runGemini-Bdzns1qW.cjs'); });
328
328
  let startedBy = void 0;
329
329
  for (let i = 1; i < args.length; i++) {
330
330
  if (args[i] === "--started-by") {
@@ -356,7 +356,7 @@ async function spawnAndWaitForDaemon() {
356
356
  return;
357
357
  } else if (subcommand === "update") {
358
358
  try {
359
- const { handleUpdateCommand } = await Promise.resolve().then(function () { return require('./update-D-bTjP2k.cjs'); });
359
+ const { handleUpdateCommand } = await Promise.resolve().then(function () { return require('./update-g3D05Tvv.cjs'); });
360
360
  await handleUpdateCommand();
361
361
  } catch (error) {
362
362
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -369,7 +369,7 @@ async function spawnAndWaitForDaemon() {
369
369
  } else if (subcommand === "logout") {
370
370
  console.log(chalk.yellow('Note: "happy logout" is deprecated. Use "happy auth logout" instead.\n'));
371
371
  try {
372
- const { handleAuthCommand } = await Promise.resolve().then(function () { return require('./auth-CPfJalJM.cjs'); });
372
+ const { handleAuthCommand } = await Promise.resolve().then(function () { return require('./auth-BG6e5Uem.cjs'); });
373
373
  await handleAuthCommand(["logout"]);
374
374
  } catch (error) {
375
375
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -392,7 +392,7 @@ async function spawnAndWaitForDaemon() {
392
392
  return;
393
393
  } else if (subcommand === "session") {
394
394
  try {
395
- const { handleSessionCommand } = await Promise.resolve().then(function () { return require('./session-DK9eudJT.cjs'); });
395
+ const { handleSessionCommand } = await Promise.resolve().then(function () { return require('./session-FttaWXf3.cjs'); });
396
396
  await handleSessionCommand(args.slice(1));
397
397
  } catch (error) {
398
398
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -404,7 +404,7 @@ async function spawnAndWaitForDaemon() {
404
404
  return;
405
405
  } else if (subcommand === "task") {
406
406
  try {
407
- const { handleTaskCommand } = await Promise.resolve().then(function () { return require('./task--Apxd9oF.cjs'); });
407
+ const { handleTaskCommand } = await Promise.resolve().then(function () { return require('./task-DrX3H3_Y.cjs'); });
408
408
  await handleTaskCommand(args.slice(1));
409
409
  } catch (error) {
410
410
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -452,7 +452,7 @@ async function spawnAndWaitForDaemon() {
452
452
  return;
453
453
  } else if (subcommand === "evidence") {
454
454
  try {
455
- const { handleEvidenceCommand } = await Promise.resolve().then(function () { return require('./evidence-CCrpzsTA.cjs'); });
455
+ const { handleEvidenceCommand } = await Promise.resolve().then(function () { return require('./evidence-DbFF210m.cjs'); });
456
456
  await handleEvidenceCommand(args.slice(1));
457
457
  } catch (error) {
458
458
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -469,7 +469,7 @@ async function spawnAndWaitForDaemon() {
469
469
  process.exit(1);
470
470
  }
471
471
  try {
472
- const { runMcpServe } = await Promise.resolve().then(function () { return require('./serve-D0IhhySV.cjs'); });
472
+ const { runMcpServe } = await Promise.resolve().then(function () { return require('./serve-BHe5QkCA.cjs'); });
473
473
  await runMcpServe();
474
474
  } catch (error) {
475
475
  process.stderr.write(`[happy-mcp] fatal: ${error instanceof Error ? error.message : "unknown error"}
@@ -483,7 +483,7 @@ async function spawnAndWaitForDaemon() {
483
483
  console.error(chalk.red("Error:"), 'Not authenticated. Run "happy auth" first.');
484
484
  process.exit(1);
485
485
  }
486
- const { parseSshArgs, runOnDevice, sshDevice, sshPickAndConnect } = await Promise.resolve().then(function () { return require('./ssh-D31o750w.cjs'); });
486
+ const { parseSshArgs, runOnDevice, sshDevice, sshPickAndConnect } = await Promise.resolve().then(function () { return require('./ssh-DXOMR-gb.cjs'); });
487
487
  const { target, command, timeoutMs, stream } = parseSshArgs(args.slice(1));
488
488
  try {
489
489
  if (command) {
@@ -506,7 +506,7 @@ async function spawnAndWaitForDaemon() {
506
506
  } else if (subcommand === "device") {
507
507
  const deviceSubcommand = args[1];
508
508
  if (deviceSubcommand === "push") {
509
- const { pushToDevice } = await Promise.resolve().then(function () { return require('./push-XL6Sb0Vw.cjs'); });
509
+ const { pushToDevice } = await Promise.resolve().then(function () { return require('./push-Bbf139Sy.cjs'); });
510
510
  const credentials = await logger.readCredentials();
511
511
  if (!credentials) {
512
512
  console.error(chalk.red("Error:"), 'Not authenticated. Run "happy auth" first.');
@@ -520,8 +520,8 @@ async function spawnAndWaitForDaemon() {
520
520
  process.exit(await pushToDevice(credentials, target, localPath, remotePath));
521
521
  }
522
522
  if (deviceSubcommand === "enroll") {
523
- const { enrollDevice } = await Promise.resolve().then(function () { return require('./enroll-D9CEuRI_.cjs'); });
524
- const { install } = await Promise.resolve().then(function () { return require('./install-B0hT_tLv.cjs'); });
523
+ const { enrollDevice } = await Promise.resolve().then(function () { return require('./enroll-BjZCaXT4.cjs'); });
524
+ const { install } = await Promise.resolve().then(function () { return require('./install-9E-3IeF3.cjs'); });
525
525
  const token = args[2];
526
526
  if (!token) {
527
527
  console.error(chalk.red("Error:"), "Missing enrollment token. Usage: happy device enroll <token>");
@@ -551,12 +551,12 @@ ${chalk.bold("Usage:")}
551
551
  `);
552
552
  process.exit(0);
553
553
  } else if (subcommand === "daemon") {
554
- const { startDaemon } = await Promise.resolve().then(function () { return require('./run-BKfeeheJ.cjs'); }).then(function (n) { return n.run; });
555
- const { install } = await Promise.resolve().then(function () { return require('./install-B0hT_tLv.cjs'); });
556
- const { uninstall } = await Promise.resolve().then(function () { return require('./uninstall-CZJcoC06.cjs'); });
557
- const { runDoctorCommand } = await Promise.resolve().then(function () { return require('./doctor-CD46A-_Y.cjs'); });
558
- const { getLatestDaemonLog } = await Promise.resolve().then(function () { return require('./persistence-CNXsXPLm.cjs'); }).then(function (n) { return n.logger$1; });
559
- const { listDaemonSessions, stopDaemonSession, stopDaemon } = await Promise.resolve().then(function () { return require('./controlClient-DWBW6jRF.cjs'); });
554
+ const { startDaemon } = await Promise.resolve().then(function () { return require('./run-C6hmGRwH.cjs'); }).then(function (n) { return n.run; });
555
+ const { install } = await Promise.resolve().then(function () { return require('./install-9E-3IeF3.cjs'); });
556
+ const { uninstall } = await Promise.resolve().then(function () { return require('./uninstall-CPQjax_f.cjs'); });
557
+ const { runDoctorCommand } = await Promise.resolve().then(function () { return require('./doctor-CxWWwoLX.cjs'); });
558
+ const { getLatestDaemonLog } = await Promise.resolve().then(function () { return require('./persistence-50wmDoBE.cjs'); }).then(function (n) { return n.logger$1; });
559
+ const { listDaemonSessions, stopDaemonSession, stopDaemon } = await Promise.resolve().then(function () { return require('./controlClient-BqCwo6Pm.cjs'); });
560
560
  const daemonSubcommand = args[1];
561
561
  if (daemonSubcommand === "list") {
562
562
  try {
@@ -761,7 +761,7 @@ ${chalk.gray("\u2500".repeat(60))}
761
761
  ${chalk.bold.cyan("Claude Code Options (from `claude --help`):")}
762
762
  `);
763
763
  try {
764
- const { claudeCliPath } = await Promise.resolve().then(function () { return require('./claudeLocal-CV4fT0Gg.cjs'); }).then(function (n) { return n.claudeLocal$1; });
764
+ const { claudeCliPath } = await Promise.resolve().then(function () { return require('./claudeLocal-CuHH7tvQ.cjs'); }).then(function (n) { return n.claudeLocal$1; });
765
765
  const claudeHelp = node_child_process.execFileSync(claudeCliPath, ["--help"], { encoding: "utf8" });
766
766
  console.log(claudeHelp);
767
767
  } catch (e) {
@@ -791,10 +791,10 @@ ${chalk.bold.cyan("Claude Code Options (from `claude --help`):")}
791
791
  }
792
792
  process.exit(0);
793
793
  }
794
- const { authAndSetupMachineIfNeeded } = await Promise.resolve().then(function () { return require('./auth-B6vskzfm.cjs'); });
795
- const { isDaemonRunningCurrentlyInstalledHappyVersion } = await Promise.resolve().then(function () { return require('./controlClient-DWBW6jRF.cjs'); });
796
- const { spawnHappyCLI } = await Promise.resolve().then(function () { return require('./spawnHappyCLI-BbMkZhMk.cjs'); }).then(function (n) { return n.spawnHappyCLI$1; });
797
- const { runClaude } = await Promise.resolve().then(function () { return require('./runClaude-DDsG7eMR.cjs'); });
794
+ const { authAndSetupMachineIfNeeded } = await Promise.resolve().then(function () { return require('./auth-DnFrlXqp.cjs'); });
795
+ const { isDaemonRunningCurrentlyInstalledHappyVersion } = await Promise.resolve().then(function () { return require('./controlClient-BqCwo6Pm.cjs'); });
796
+ const { spawnHappyCLI } = await Promise.resolve().then(function () { return require('./spawnHappyCLI-BNUBk0w5.cjs'); }).then(function (n) { return n.spawnHappyCLI$1; });
797
+ const { runClaude } = await Promise.resolve().then(function () { return require('./runClaude-BR15B5bw.cjs'); });
798
798
  const {
799
799
  credentials
800
800
  } = await authAndSetupMachineIfNeeded();
@@ -868,7 +868,7 @@ ${chalk.bold("Examples:")}
868
868
  }
869
869
  console.log(chalk.blue("\u{1F4F1} Sending push notification..."));
870
870
  try {
871
- const { ApiClient } = await Promise.resolve().then(function () { return require('./api-BGc484qf.cjs'); }).then(function (n) { return n.api; });
871
+ const { ApiClient } = await Promise.resolve().then(function () { return require('./api-ByiU9yXy.cjs'); }).then(function (n) { return n.api; });
872
872
  const api = await ApiClient.create(credentials);
873
873
  const notificationTitle = title || "Happy AI";
874
874
  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-IdEuIeMz.mjs';
2
+ import { l as logger, i as isDebug, r as readCredentials, a as readSettings, p as packageJson } from './persistence-Da0uhblK.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-DlTg87jS.mjs').then(function (n) { return n.a; });
15
- const { checkIfDaemonRunningAndCleanupStaleState } = await import('./controlClient-VY0CGL8k.mjs');
14
+ const { spawnHappyCLI } = await import('./spawnHappyCLI-Cv2VARTw.mjs').then(function (n) { return n.a; });
15
+ const { checkIfDaemonRunningAndCleanupStaleState } = await import('./controlClient-BuKaeD-y.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-CVcw-K0_.mjs');
38
+ const { runOrchestratorOneShot } = await import('./runOneShot-BTHgA1q4.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-DQtQbfG-.mjs');
51
+ const { runDoctorCommand } = await import('./doctor-C77QV3rd.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-DqAM-lIh.mjs');
64
+ const { handleAuthCommand } = await import('./auth-BRh7v1qh.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-BeORCRXq.mjs');
76
+ const { handleConnectCommand } = await import('./connect-BoTU3RCi.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-BnEa31tI.mjs');
88
- const { isDaemonRunningCurrentlyInstalledHappyVersion } = await import('./controlClient-VY0CGL8k.mjs');
89
- const { spawnHappyCLI } = await import('./spawnHappyCLI-DlTg87jS.mjs').then(function (n) { return n.a; });
87
+ const { authAndSetupMachineIfNeeded } = await import('./auth-DnRtIM3d.mjs');
88
+ const { isDaemonRunningCurrentlyInstalledHappyVersion } = await import('./controlClient-BuKaeD-y.mjs');
89
+ const { spawnHappyCLI } = await import('./spawnHappyCLI-Cv2VARTw.mjs').then(function (n) { return n.a; });
90
90
  try {
91
- const { runCodex } = await import('./runCodex-C-8SvnpP.mjs');
91
+ const { runCodex } = await import('./runCodex-BAlT1EGt.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,15 +119,15 @@ async function spawnAndWaitForDaemon() {
119
119
  }
120
120
  return;
121
121
  } else if (subcommand === "cursor-approval-hook") {
122
- const { runCursorApprovalHook } = await import('./cursorApprovalHook-D_8btpsY.mjs');
122
+ const { runCursorApprovalHook } = await import('./cursorApprovalHook-BADH_Ul1.mjs');
123
123
  await runCursorApprovalHook();
124
124
  return;
125
125
  } else if (subcommand === "cursor") {
126
- const { authAndSetupMachineIfNeeded } = await import('./auth-BnEa31tI.mjs');
127
- const { isDaemonRunningCurrentlyInstalledHappyVersion } = await import('./controlClient-VY0CGL8k.mjs');
128
- const { spawnHappyCLI } = await import('./spawnHappyCLI-DlTg87jS.mjs').then(function (n) { return n.a; });
126
+ const { authAndSetupMachineIfNeeded } = await import('./auth-DnRtIM3d.mjs');
127
+ const { isDaemonRunningCurrentlyInstalledHappyVersion } = await import('./controlClient-BuKaeD-y.mjs');
128
+ const { spawnHappyCLI } = await import('./spawnHappyCLI-Cv2VARTw.mjs').then(function (n) { return n.a; });
129
129
  try {
130
- const { runCursor } = await import('./runCursor-3AFNF0y2.mjs');
130
+ const { runCursor } = await import('./runCursor-Dj3orwMw.mjs');
131
131
  let startedBy = void 0;
132
132
  let model = null;
133
133
  let resumeChatId = null;
@@ -173,9 +173,9 @@ async function spawnAndWaitForDaemon() {
173
173
  }
174
174
  return;
175
175
  } else if (subcommand === "gemini") {
176
- const { authAndSetupMachineIfNeeded } = await import('./auth-BnEa31tI.mjs');
177
- const { isDaemonRunningCurrentlyInstalledHappyVersion } = await import('./controlClient-VY0CGL8k.mjs');
178
- const { spawnHappyCLI } = await import('./spawnHappyCLI-DlTg87jS.mjs').then(function (n) { return n.a; });
176
+ const { authAndSetupMachineIfNeeded } = await import('./auth-DnRtIM3d.mjs');
177
+ const { isDaemonRunningCurrentlyInstalledHappyVersion } = await import('./controlClient-BuKaeD-y.mjs');
178
+ const { spawnHappyCLI } = await import('./spawnHappyCLI-Cv2VARTw.mjs').then(function (n) { return n.a; });
179
179
  const geminiSubcommand = args[1];
180
180
  if (geminiSubcommand === "model" && args[2] === "set" && args[3]) {
181
181
  const modelName = args[3];
@@ -249,9 +249,9 @@ async function spawnAndWaitForDaemon() {
249
249
  if (geminiSubcommand === "project" && args[2] === "set" && args[3]) {
250
250
  const projectId = args[3];
251
251
  try {
252
- const { saveGoogleCloudProjectToConfig } = await import('./config-C9hdBdfj.mjs');
253
- const { readCredentials: readCredentials2 } = await import('./persistence-IdEuIeMz.mjs').then(function (n) { return n.F; });
254
- const { ApiClient } = await import('./api-9wvM_aF-.mjs').then(function (n) { return n.m; });
252
+ const { saveGoogleCloudProjectToConfig } = await import('./config-BkUfgaM5.mjs');
253
+ const { readCredentials: readCredentials2 } = await import('./persistence-Da0uhblK.mjs').then(function (n) { return n.F; });
254
+ const { ApiClient } = await import('./api-B9shq-xZ.mjs').then(function (n) { return n.q; });
255
255
  let userEmail = void 0;
256
256
  try {
257
257
  const credentials = await readCredentials2();
@@ -282,7 +282,7 @@ async function spawnAndWaitForDaemon() {
282
282
  }
283
283
  if (geminiSubcommand === "project" && args[2] === "get") {
284
284
  try {
285
- const { readGeminiLocalConfig } = await import('./config-C9hdBdfj.mjs');
285
+ const { readGeminiLocalConfig } = await import('./config-BkUfgaM5.mjs');
286
286
  const config = readGeminiLocalConfig();
287
287
  if (config.googleCloudProject) {
288
288
  console.log(`Current Google Cloud Project: ${config.googleCloudProject}`);
@@ -322,7 +322,7 @@ async function spawnAndWaitForDaemon() {
322
322
  process.exit(0);
323
323
  }
324
324
  try {
325
- const { runGemini } = await import('./runGemini-Dh2JRfOJ.mjs');
325
+ const { runGemini } = await import('./runGemini-SEsV1VfH.mjs');
326
326
  let startedBy = void 0;
327
327
  for (let i = 1; i < args.length; i++) {
328
328
  if (args[i] === "--started-by") {
@@ -354,7 +354,7 @@ async function spawnAndWaitForDaemon() {
354
354
  return;
355
355
  } else if (subcommand === "update") {
356
356
  try {
357
- const { handleUpdateCommand } = await import('./update-BiV4YqG3.mjs');
357
+ const { handleUpdateCommand } = await import('./update-DaJjoz93.mjs');
358
358
  await handleUpdateCommand();
359
359
  } catch (error) {
360
360
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -367,7 +367,7 @@ async function spawnAndWaitForDaemon() {
367
367
  } else if (subcommand === "logout") {
368
368
  console.log(chalk.yellow('Note: "happy logout" is deprecated. Use "happy auth logout" instead.\n'));
369
369
  try {
370
- const { handleAuthCommand } = await import('./auth-DqAM-lIh.mjs');
370
+ const { handleAuthCommand } = await import('./auth-BRh7v1qh.mjs');
371
371
  await handleAuthCommand(["logout"]);
372
372
  } catch (error) {
373
373
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -390,7 +390,7 @@ async function spawnAndWaitForDaemon() {
390
390
  return;
391
391
  } else if (subcommand === "session") {
392
392
  try {
393
- const { handleSessionCommand } = await import('./session-CwMxRPXS.mjs');
393
+ const { handleSessionCommand } = await import('./session-CZyeSNaA.mjs');
394
394
  await handleSessionCommand(args.slice(1));
395
395
  } catch (error) {
396
396
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -402,7 +402,7 @@ async function spawnAndWaitForDaemon() {
402
402
  return;
403
403
  } else if (subcommand === "task") {
404
404
  try {
405
- const { handleTaskCommand } = await import('./task-D9ZjWCcw.mjs');
405
+ const { handleTaskCommand } = await import('./task-CQonykFe.mjs');
406
406
  await handleTaskCommand(args.slice(1));
407
407
  } catch (error) {
408
408
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -450,7 +450,7 @@ async function spawnAndWaitForDaemon() {
450
450
  return;
451
451
  } else if (subcommand === "evidence") {
452
452
  try {
453
- const { handleEvidenceCommand } = await import('./evidence-BuYebdrN.mjs');
453
+ const { handleEvidenceCommand } = await import('./evidence-DL-E4Qfd.mjs');
454
454
  await handleEvidenceCommand(args.slice(1));
455
455
  } catch (error) {
456
456
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -467,7 +467,7 @@ async function spawnAndWaitForDaemon() {
467
467
  process.exit(1);
468
468
  }
469
469
  try {
470
- const { runMcpServe } = await import('./serve-C4dOQ0jP.mjs');
470
+ const { runMcpServe } = await import('./serve-BErPXI_R.mjs');
471
471
  await runMcpServe();
472
472
  } catch (error) {
473
473
  process.stderr.write(`[happy-mcp] fatal: ${error instanceof Error ? error.message : "unknown error"}
@@ -481,7 +481,7 @@ async function spawnAndWaitForDaemon() {
481
481
  console.error(chalk.red("Error:"), 'Not authenticated. Run "happy auth" first.');
482
482
  process.exit(1);
483
483
  }
484
- const { parseSshArgs, runOnDevice, sshDevice, sshPickAndConnect } = await import('./ssh-DSVjanff.mjs');
484
+ const { parseSshArgs, runOnDevice, sshDevice, sshPickAndConnect } = await import('./ssh-CBvM1RVJ.mjs');
485
485
  const { target, command, timeoutMs, stream } = parseSshArgs(args.slice(1));
486
486
  try {
487
487
  if (command) {
@@ -504,7 +504,7 @@ async function spawnAndWaitForDaemon() {
504
504
  } else if (subcommand === "device") {
505
505
  const deviceSubcommand = args[1];
506
506
  if (deviceSubcommand === "push") {
507
- const { pushToDevice } = await import('./push-tXs96IyG.mjs');
507
+ const { pushToDevice } = await import('./push-BR82p4YC.mjs');
508
508
  const credentials = await readCredentials();
509
509
  if (!credentials) {
510
510
  console.error(chalk.red("Error:"), 'Not authenticated. Run "happy auth" first.');
@@ -518,8 +518,8 @@ async function spawnAndWaitForDaemon() {
518
518
  process.exit(await pushToDevice(credentials, target, localPath, remotePath));
519
519
  }
520
520
  if (deviceSubcommand === "enroll") {
521
- const { enrollDevice } = await import('./enroll-CyHWNKNt.mjs');
522
- const { install } = await import('./install-eIXFuZbC.mjs');
521
+ const { enrollDevice } = await import('./enroll-D5V8LH6P.mjs');
522
+ const { install } = await import('./install-BPCWw2Vc.mjs');
523
523
  const token = args[2];
524
524
  if (!token) {
525
525
  console.error(chalk.red("Error:"), "Missing enrollment token. Usage: happy device enroll <token>");
@@ -549,12 +549,12 @@ ${chalk.bold("Usage:")}
549
549
  `);
550
550
  process.exit(0);
551
551
  } else if (subcommand === "daemon") {
552
- const { startDaemon } = await import('./run-BvpCwXkt.mjs').then(function (n) { return n.r; });
553
- const { install } = await import('./install-eIXFuZbC.mjs');
554
- const { uninstall } = await import('./uninstall-Bo2uaLRP.mjs');
555
- const { runDoctorCommand } = await import('./doctor-DQtQbfG-.mjs');
556
- const { getLatestDaemonLog } = await import('./persistence-IdEuIeMz.mjs').then(function (n) { return n.E; });
557
- const { listDaemonSessions, stopDaemonSession, stopDaemon } = await import('./controlClient-VY0CGL8k.mjs');
552
+ const { startDaemon } = await import('./run-DjaUrH7x.mjs').then(function (n) { return n.r; });
553
+ const { install } = await import('./install-BPCWw2Vc.mjs');
554
+ const { uninstall } = await import('./uninstall-BijW1rTR.mjs');
555
+ const { runDoctorCommand } = await import('./doctor-C77QV3rd.mjs');
556
+ const { getLatestDaemonLog } = await import('./persistence-Da0uhblK.mjs').then(function (n) { return n.E; });
557
+ const { listDaemonSessions, stopDaemonSession, stopDaemon } = await import('./controlClient-BuKaeD-y.mjs');
558
558
  const daemonSubcommand = args[1];
559
559
  if (daemonSubcommand === "list") {
560
560
  try {
@@ -759,7 +759,7 @@ ${chalk.gray("\u2500".repeat(60))}
759
759
  ${chalk.bold.cyan("Claude Code Options (from `claude --help`):")}
760
760
  `);
761
761
  try {
762
- const { claudeCliPath } = await import('./claudeLocal-B5uxtoit.mjs').then(function (n) { return n.d; });
762
+ const { claudeCliPath } = await import('./claudeLocal-CYtFfvTZ.mjs').then(function (n) { return n.d; });
763
763
  const claudeHelp = execFileSync(claudeCliPath, ["--help"], { encoding: "utf8" });
764
764
  console.log(claudeHelp);
765
765
  } catch (e) {
@@ -789,10 +789,10 @@ ${chalk.bold.cyan("Claude Code Options (from `claude --help`):")}
789
789
  }
790
790
  process.exit(0);
791
791
  }
792
- const { authAndSetupMachineIfNeeded } = await import('./auth-BnEa31tI.mjs');
793
- const { isDaemonRunningCurrentlyInstalledHappyVersion } = await import('./controlClient-VY0CGL8k.mjs');
794
- const { spawnHappyCLI } = await import('./spawnHappyCLI-DlTg87jS.mjs').then(function (n) { return n.a; });
795
- const { runClaude } = await import('./runClaude-BiVqZQOm.mjs');
792
+ const { authAndSetupMachineIfNeeded } = await import('./auth-DnRtIM3d.mjs');
793
+ const { isDaemonRunningCurrentlyInstalledHappyVersion } = await import('./controlClient-BuKaeD-y.mjs');
794
+ const { spawnHappyCLI } = await import('./spawnHappyCLI-Cv2VARTw.mjs').then(function (n) { return n.a; });
795
+ const { runClaude } = await import('./runClaude-CKFHv0nI.mjs');
796
796
  const {
797
797
  credentials
798
798
  } = await authAndSetupMachineIfNeeded();
@@ -866,7 +866,7 @@ ${chalk.bold("Examples:")}
866
866
  }
867
867
  console.log(chalk.blue("\u{1F4F1} Sending push notification..."));
868
868
  try {
869
- const { ApiClient } = await import('./api-9wvM_aF-.mjs').then(function (n) { return n.m; });
869
+ const { ApiClient } = await import('./api-B9shq-xZ.mjs').then(function (n) { return n.q; });
870
870
  const api = await ApiClient.create(credentials);
871
871
  const notificationTitle = title || "Happy AI";
872
872
  api.push().sendToAllDevices(
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var logger = require('./persistence-CNXsXPLm.cjs');
4
- var install$2 = require('./install-C4cwObCN.cjs');
3
+ var logger = require('./persistence-50wmDoBE.cjs');
4
+ var install$2 = require('./install-Td8RvuEV.cjs');
5
5
  var fs = require('fs');
6
6
  var child_process = require('child_process');
7
7
  var path = require('path');
@@ -1,5 +1,5 @@
1
- import { l as logger, r as readCredentials } from './persistence-IdEuIeMz.mjs';
2
- import { i as install$2 } from './install-1Y6dAcMp.mjs';
1
+ import { l as logger, r as readCredentials } from './persistence-Da0uhblK.mjs';
2
+ import { i as install$2 } from './install-DbRGuSWv.mjs';
3
3
  import { existsSync, mkdirSync, writeFileSync } from 'fs';
4
4
  import { execSync } from 'child_process';
5
5
  import path from '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-IdEuIeMz.mjs';
5
+ import { l as logger } from './persistence-Da0uhblK.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-CNXsXPLm.cjs');
7
+ var logger = require('./persistence-50wmDoBE.cjs');
8
8
  var trimIdent = require('./trimIdent-4gvk9Wk6.cjs');
9
9
  var projectPath = require('./projectPath-ChLhdOyt.cjs');
10
10
 
package/dist/lib.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var api = require('./api-BGc484qf.cjs');
4
- var logger = require('./persistence-CNXsXPLm.cjs');
3
+ var api = require('./api-ByiU9yXy.cjs');
4
+ var logger = require('./persistence-50wmDoBE.cjs');
5
5
  var types = require('./types-DWeB7aqh.cjs');
6
6
  require('axios');
7
7
  require('node:events');
@@ -30,7 +30,7 @@ require('crypto');
30
30
  require('tweetnacl');
31
31
  require('@stablelib/base64');
32
32
  require('expo-server-sdk');
33
- require('./sessionKeyCache-JjjYAxdf.cjs');
33
+ require('./sessionKeyCache-CmORI8jN.cjs');
34
34
  require('chalk');
35
35
  require('fs');
36
36
 
package/dist/lib.d.cts CHANGED
@@ -1865,6 +1865,16 @@ declare class ApiClient {
1865
1865
  content: string;
1866
1866
  source: string;
1867
1867
  }>>;
1868
+ /**
1869
+ * Sessions whose row changed since `sinceMs`, newest change last (server
1870
+ * caps at 500). Rows come back encrypted; see decryptSessionRow.
1871
+ */
1872
+ listSessionsUpdatedSince(sinceMs: number): Promise<any[]>;
1873
+ /**
1874
+ * Mark a session inactive on the server. For sessions whose process is
1875
+ * gone and so will never send session-end itself.
1876
+ */
1877
+ archiveSession(sessionId: string): Promise<boolean>;
1868
1878
  /**
1869
1879
  * Get vendor API token from the server
1870
1880
  * Returns the token if it exists, null otherwise
package/dist/lib.d.mts CHANGED
@@ -1865,6 +1865,16 @@ declare class ApiClient {
1865
1865
  content: string;
1866
1866
  source: string;
1867
1867
  }>>;
1868
+ /**
1869
+ * Sessions whose row changed since `sinceMs`, newest change last (server
1870
+ * caps at 500). Rows come back encrypted; see decryptSessionRow.
1871
+ */
1872
+ listSessionsUpdatedSince(sinceMs: number): Promise<any[]>;
1873
+ /**
1874
+ * Mark a session inactive on the server. For sessions whose process is
1875
+ * gone and so will never send session-end itself.
1876
+ */
1877
+ archiveSession(sessionId: string): Promise<boolean>;
1868
1878
  /**
1869
1879
  * Get vendor API token from the server
1870
1880
  * Returns the token if it exists, null otherwise