@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
@@ -1,5 +1,5 @@
1
1
  import{createRequire as _pkgrollCR}from"node:module";const require=_pkgrollCR(import.meta.url);import axios from 'axios';
2
- import { l as logger, c as configuration, e as encodeBase64, f as encrypt, g as decrypt, h as decodeBase64, i as isDebug, B as encryptLegacy, a as readSettings, C as getRandomBytes, D as libsodiumEncryptForPublicKey } from './persistence-IdEuIeMz.mjs';
2
+ import { l as logger, c as configuration, e as encodeBase64, f as encrypt, g as decrypt, h as decodeBase64, i as isDebug, B as encryptLegacy, a as readSettings, C as getRandomBytes, D as libsodiumEncryptForPublicKey } from './persistence-Da0uhblK.mjs';
3
3
  import { EventEmitter } from 'node:events';
4
4
  import { io } from 'socket.io-client';
5
5
  import { z } from 'zod';
@@ -24,7 +24,7 @@ import { randomUUID as randomUUID$1 } from 'crypto';
24
24
  import tweetnacl from 'tweetnacl';
25
25
  import { encode, decode } from '@stablelib/base64';
26
26
  import { Expo } from 'expo-server-sdk';
27
- import { c as cacheSessionKey } from './sessionKeyCache-DDzTs7E5.mjs';
27
+ import { c as cacheSessionKey } from './sessionKeyCache-BBzsFcnN.mjs';
28
28
  import chalk from 'chalk';
29
29
 
30
30
  z.object({
@@ -2872,6 +2872,10 @@ class ApiSessionClient extends EventEmitter {
2872
2872
  logger.debug("[SOCKET] [UPDATE] [ERROR] No body in update!");
2873
2873
  return;
2874
2874
  }
2875
+ if (data.body.t === "new-message" && data.body.sid !== this.sessionId || data.body.t === "update-session" && data.body.id !== this.sessionId) {
2876
+ logger.debug(`[SOCKET] Ignoring ${data.body.t} for another session`);
2877
+ return;
2878
+ }
2875
2879
  if (data.body.t === "new-message" && data.body.message.content.t === "encrypted") {
2876
2880
  const body = decrypt(this.encryptionKey, this.encryptionVariant, decodeBase64(data.body.message.content.c));
2877
2881
  logger.debugLargeJson("[SOCKET] [UPDATE] Received update:", body);
@@ -3641,11 +3645,9 @@ class ApiSessionClient extends EventEmitter {
3641
3645
  this.metadataVersion = answer.version;
3642
3646
  this.syncedModel = this.metadata?.model?.trim() || null;
3643
3647
  } else if (answer.result === "version-mismatch") {
3644
- if (answer.version > this.metadataVersion) {
3645
- this.metadataVersion = answer.version;
3646
- this.metadata = adoptServerSessionMetadata(this.metadata, decrypt(this.encryptionKey, this.encryptionVariant, decodeBase64(answer.metadata)));
3647
- this.syncedModel = this.metadata?.model?.trim() || null;
3648
- }
3648
+ this.metadataVersion = answer.version;
3649
+ this.metadata = adoptServerSessionMetadata(this.metadata, decrypt(this.encryptionKey, this.encryptionVariant, decodeBase64(answer.metadata)));
3650
+ this.syncedModel = this.metadata?.model?.trim() || null;
3649
3651
  throw new Error("Metadata version mismatch");
3650
3652
  } else if (answer.result === "error") ;
3651
3653
  });
@@ -3666,10 +3668,8 @@ class ApiSessionClient extends EventEmitter {
3666
3668
  this.agentStateVersion = answer.version;
3667
3669
  logger.debug("Agent state updated", this.agentState);
3668
3670
  } else if (answer.result === "version-mismatch") {
3669
- if (answer.version > this.agentStateVersion) {
3670
- this.agentStateVersion = answer.version;
3671
- this.agentState = answer.agentState ? decrypt(this.encryptionKey, this.encryptionVariant, decodeBase64(answer.agentState)) : null;
3672
- }
3671
+ this.agentStateVersion = answer.version;
3672
+ this.agentState = answer.agentState ? decrypt(this.encryptionKey, this.encryptionVariant, decodeBase64(answer.agentState)) : null;
3673
3673
  throw new Error("Agent state version mismatch");
3674
3674
  } else if (answer.result === "error") ;
3675
3675
  });
@@ -7452,6 +7452,41 @@ class ApiClient {
7452
7452
  return [];
7453
7453
  }
7454
7454
  }
7455
+ /**
7456
+ * Sessions whose row changed since `sinceMs`, newest change last (server
7457
+ * caps at 500). Rows come back encrypted; see decryptSessionRow.
7458
+ */
7459
+ async listSessionsUpdatedSince(sinceMs) {
7460
+ const response = await axios.get(
7461
+ `${configuration.serverUrl}/v1/sessions`,
7462
+ {
7463
+ params: { since: sinceMs },
7464
+ headers: { "Authorization": `Bearer ${this.credential.token}` },
7465
+ timeout: 2e4
7466
+ }
7467
+ );
7468
+ return Array.isArray(response.data?.sessions) ? response.data.sessions : [];
7469
+ }
7470
+ /**
7471
+ * Mark a session inactive on the server. For sessions whose process is
7472
+ * gone and so will never send session-end itself.
7473
+ */
7474
+ async archiveSession(sessionId) {
7475
+ try {
7476
+ const response = await axios.post(
7477
+ `${configuration.serverUrl}/v1/sessions/${sessionId}/archive`,
7478
+ {},
7479
+ {
7480
+ headers: { "Authorization": `Bearer ${this.credential.token}` },
7481
+ timeout: 1e4
7482
+ }
7483
+ );
7484
+ return response.status === 200 && response.data?.success === true;
7485
+ } catch (err) {
7486
+ logger.debug("[API] archiveSession failed:", err);
7487
+ return false;
7488
+ }
7489
+ }
7455
7490
  /**
7456
7491
  * Get vendor API token from the server
7457
7492
  * Returns the token if it exists, null otherwise
@@ -7528,4 +7563,4 @@ var api = /*#__PURE__*/Object.freeze({
7528
7563
  ApiClient: ApiClient
7529
7564
  });
7530
7565
 
7531
- export { ApiClient as A, GeminiSessionWriter as G, InvalidateSync as I, ApiSessionClient as a, startOfflineReconnection as b, saveDiffRecords as c, connectionState as d, extractUserText as e, findCodexSessionFile as f, generateStableUuid as g, readGeminiSessionLog as h, isSystemMessage as i, buildResumeContextFromSessionLog as j, AsyncLock as k, findClaudeProjectId as l, api as m, resolveToolsDir as r, saveToolOutputRecord as s };
7566
+ export { ApiClient as A, GeminiSessionWriter as G, InvalidateSync as I, ApiSessionClient as a, startOfflineReconnection as b, forkGeminiSession as c, forkCodexSession as d, findClaudeProjectId as e, forkCursorSession as f, forkSession as g, saveDiffRecords as h, extractUserText as i, isSystemMessage as j, generateStableUuid as k, findCodexSessionFile as l, connectionState as m, readGeminiSessionLog as n, buildResumeContextFromSessionLog as o, AsyncLock as p, api as q, resolveToolsDir as r, saveToolOutputRecord as s };
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var axios = require('axios');
4
- var logger = require('./persistence-CNXsXPLm.cjs');
4
+ var logger = require('./persistence-50wmDoBE.cjs');
5
5
  var node_events = require('node:events');
6
6
  var socket_ioClient = require('socket.io-client');
7
7
  var z = require('zod');
@@ -26,7 +26,7 @@ var crypto = require('crypto');
26
26
  var tweetnacl = require('tweetnacl');
27
27
  var base64 = require('@stablelib/base64');
28
28
  var expoServerSdk = require('expo-server-sdk');
29
- var sessionKeyCache = require('./sessionKeyCache-JjjYAxdf.cjs');
29
+ var sessionKeyCache = require('./sessionKeyCache-CmORI8jN.cjs');
30
30
  var chalk = require('chalk');
31
31
 
32
32
  var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
@@ -1407,7 +1407,7 @@ function resolveToolsDir() {
1407
1407
  }
1408
1408
  function findToolsDir() {
1409
1409
  try {
1410
- const manifest = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('api-BGc484qf.cjs', document.baseURI).href))).resolve(`${toolsPackageName()}/package.json`);
1410
+ const manifest = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('api-ByiU9yXy.cjs', document.baseURI).href))).resolve(`${toolsPackageName()}/package.json`);
1411
1411
  return path.dirname(manifest);
1412
1412
  } catch {
1413
1413
  }
@@ -2875,6 +2875,10 @@ class ApiSessionClient extends node_events.EventEmitter {
2875
2875
  logger.logger.debug("[SOCKET] [UPDATE] [ERROR] No body in update!");
2876
2876
  return;
2877
2877
  }
2878
+ if (data.body.t === "new-message" && data.body.sid !== this.sessionId || data.body.t === "update-session" && data.body.id !== this.sessionId) {
2879
+ logger.logger.debug(`[SOCKET] Ignoring ${data.body.t} for another session`);
2880
+ return;
2881
+ }
2878
2882
  if (data.body.t === "new-message" && data.body.message.content.t === "encrypted") {
2879
2883
  const body = logger.decrypt(this.encryptionKey, this.encryptionVariant, logger.decodeBase64(data.body.message.content.c));
2880
2884
  logger.logger.debugLargeJson("[SOCKET] [UPDATE] Received update:", body);
@@ -3644,11 +3648,9 @@ class ApiSessionClient extends node_events.EventEmitter {
3644
3648
  this.metadataVersion = answer.version;
3645
3649
  this.syncedModel = this.metadata?.model?.trim() || null;
3646
3650
  } else if (answer.result === "version-mismatch") {
3647
- if (answer.version > this.metadataVersion) {
3648
- this.metadataVersion = answer.version;
3649
- this.metadata = adoptServerSessionMetadata(this.metadata, logger.decrypt(this.encryptionKey, this.encryptionVariant, logger.decodeBase64(answer.metadata)));
3650
- this.syncedModel = this.metadata?.model?.trim() || null;
3651
- }
3651
+ this.metadataVersion = answer.version;
3652
+ this.metadata = adoptServerSessionMetadata(this.metadata, logger.decrypt(this.encryptionKey, this.encryptionVariant, logger.decodeBase64(answer.metadata)));
3653
+ this.syncedModel = this.metadata?.model?.trim() || null;
3652
3654
  throw new Error("Metadata version mismatch");
3653
3655
  } else if (answer.result === "error") ;
3654
3656
  });
@@ -3669,10 +3671,8 @@ class ApiSessionClient extends node_events.EventEmitter {
3669
3671
  this.agentStateVersion = answer.version;
3670
3672
  logger.logger.debug("Agent state updated", this.agentState);
3671
3673
  } else if (answer.result === "version-mismatch") {
3672
- if (answer.version > this.agentStateVersion) {
3673
- this.agentStateVersion = answer.version;
3674
- this.agentState = answer.agentState ? logger.decrypt(this.encryptionKey, this.encryptionVariant, logger.decodeBase64(answer.agentState)) : null;
3675
- }
3674
+ this.agentStateVersion = answer.version;
3675
+ this.agentState = answer.agentState ? logger.decrypt(this.encryptionKey, this.encryptionVariant, logger.decodeBase64(answer.agentState)) : null;
3676
3676
  throw new Error("Agent state version mismatch");
3677
3677
  } else if (answer.result === "error") ;
3678
3678
  });
@@ -7455,6 +7455,41 @@ class ApiClient {
7455
7455
  return [];
7456
7456
  }
7457
7457
  }
7458
+ /**
7459
+ * Sessions whose row changed since `sinceMs`, newest change last (server
7460
+ * caps at 500). Rows come back encrypted; see decryptSessionRow.
7461
+ */
7462
+ async listSessionsUpdatedSince(sinceMs) {
7463
+ const response = await axios.get(
7464
+ `${logger.configuration.serverUrl}/v1/sessions`,
7465
+ {
7466
+ params: { since: sinceMs },
7467
+ headers: { "Authorization": `Bearer ${this.credential.token}` },
7468
+ timeout: 2e4
7469
+ }
7470
+ );
7471
+ return Array.isArray(response.data?.sessions) ? response.data.sessions : [];
7472
+ }
7473
+ /**
7474
+ * Mark a session inactive on the server. For sessions whose process is
7475
+ * gone and so will never send session-end itself.
7476
+ */
7477
+ async archiveSession(sessionId) {
7478
+ try {
7479
+ const response = await axios.post(
7480
+ `${logger.configuration.serverUrl}/v1/sessions/${sessionId}/archive`,
7481
+ {},
7482
+ {
7483
+ headers: { "Authorization": `Bearer ${this.credential.token}` },
7484
+ timeout: 1e4
7485
+ }
7486
+ );
7487
+ return response.status === 200 && response.data?.success === true;
7488
+ } catch (err) {
7489
+ logger.logger.debug("[API] archiveSession failed:", err);
7490
+ return false;
7491
+ }
7492
+ }
7458
7493
  /**
7459
7494
  * Get vendor API token from the server
7460
7495
  * Returns the token if it exists, null otherwise
@@ -7542,6 +7577,10 @@ exports.connectionState = connectionState;
7542
7577
  exports.extractUserText = extractUserText;
7543
7578
  exports.findClaudeProjectId = findClaudeProjectId;
7544
7579
  exports.findCodexSessionFile = findCodexSessionFile;
7580
+ exports.forkCodexSession = forkCodexSession;
7581
+ exports.forkCursorSession = forkCursorSession;
7582
+ exports.forkGeminiSession = forkGeminiSession;
7583
+ exports.forkSession = forkSession;
7545
7584
  exports.generateStableUuid = generateStableUuid;
7546
7585
  exports.isSystemMessage = isSystemMessage;
7547
7586
  exports.readGeminiSessionLog = readGeminiSessionLog;
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
3
  var chalk = require('chalk');
4
- var logger = require('./persistence-CNXsXPLm.cjs');
5
- var auth = require('./auth-B6vskzfm.cjs');
4
+ var logger = require('./persistence-50wmDoBE.cjs');
5
+ var auth = require('./auth-DnFrlXqp.cjs');
6
6
  var fs = require('node:fs');
7
7
  var node_readline = require('node:readline');
8
- var controlClient = require('./controlClient-DWBW6jRF.cjs');
8
+ var controlClient = require('./controlClient-BqCwo6Pm.cjs');
9
9
  var os = require('node:os');
10
10
  require('node:fs/promises');
11
11
  require('node:path');
@@ -16,7 +16,7 @@ require('fs');
16
16
  require('axios');
17
17
  require('qrcode-terminal');
18
18
  require('./time-Bj2HRkKH.cjs');
19
- require('./browser-CnxzD1lA.cjs');
19
+ require('./browser-DjONS-B5.cjs');
20
20
  require('open');
21
21
  require('react');
22
22
  require('ink');
@@ -1,9 +1,9 @@
1
1
  import chalk from 'chalk';
2
- import { r as readCredentials, a as readSettings, c as configuration, l as logger, b as clearCredentials, d as clearMachineId } from './persistence-IdEuIeMz.mjs';
3
- import { authAndSetupMachineIfNeeded } from './auth-BnEa31tI.mjs';
2
+ import { r as readCredentials, a as readSettings, c as configuration, l as logger, b as clearCredentials, d as clearMachineId } from './persistence-Da0uhblK.mjs';
3
+ import { authAndSetupMachineIfNeeded } from './auth-DnRtIM3d.mjs';
4
4
  import { existsSync, rmSync } from 'node:fs';
5
5
  import { createInterface } from 'node:readline';
6
- import { checkIfDaemonRunningAndCleanupStaleState, stopDaemon } from './controlClient-VY0CGL8k.mjs';
6
+ import { checkIfDaemonRunningAndCleanupStaleState, stopDaemon } from './controlClient-BuKaeD-y.mjs';
7
7
  import os from 'node:os';
8
8
  import 'node:fs/promises';
9
9
  import 'node:path';
@@ -14,7 +14,7 @@ import 'fs';
14
14
  import 'axios';
15
15
  import 'qrcode-terminal';
16
16
  import './time-DgsBLJA_.mjs';
17
- import './browser-CkQP96Zi.mjs';
17
+ import './browser-BeERlPhN.mjs';
18
18
  import 'open';
19
19
  import 'react';
20
20
  import 'ink';
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var logger = require('./persistence-CNXsXPLm.cjs');
3
+ var logger = require('./persistence-50wmDoBE.cjs');
4
4
  var node_crypto = require('node:crypto');
5
5
  var tweetnacl = require('tweetnacl');
6
6
  var axios = require('axios');
7
7
  var qrcode = require('qrcode-terminal');
8
8
  var time = require('./time-Bj2HRkKH.cjs');
9
- var browser = require('./browser-CnxzD1lA.cjs');
9
+ var browser = require('./browser-DjONS-B5.cjs');
10
10
  var React = require('react');
11
11
  var ink = require('ink');
12
12
  require('node:fs/promises');
@@ -1,10 +1,10 @@
1
- import { e as encodeBase64, c as configuration, l as logger, r as readCredentials, u as updateSettings, i as isDebug, s as encodeBase64Url, h as decodeBase64, t as writeCredentialsLegacy, w as writeCredentialsDataKey } from './persistence-IdEuIeMz.mjs';
1
+ import { e as encodeBase64, c as configuration, l as logger, r as readCredentials, u as updateSettings, i as isDebug, s as encodeBase64Url, h as decodeBase64, t as writeCredentialsLegacy, w as writeCredentialsDataKey } from './persistence-Da0uhblK.mjs';
2
2
  import { randomBytes, randomUUID } from 'node:crypto';
3
3
  import tweetnacl from 'tweetnacl';
4
4
  import axios from 'axios';
5
5
  import qrcode from 'qrcode-terminal';
6
6
  import { d as delay } from './time-DgsBLJA_.mjs';
7
- import { o as openBrowser } from './browser-CkQP96Zi.mjs';
7
+ import { o as openBrowser } from './browser-BeERlPhN.mjs';
8
8
  import React, { useState } from 'react';
9
9
  import { useInput, Box, Text, render } from 'ink';
10
10
  import 'node:fs/promises';
@@ -1,5 +1,5 @@
1
1
  import open from 'open';
2
- import { l as logger } from './persistence-IdEuIeMz.mjs';
2
+ import { l as logger } from './persistence-Da0uhblK.mjs';
3
3
 
4
4
  async function openBrowser(url) {
5
5
  try {
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var open = require('open');
4
- var logger = require('./persistence-CNXsXPLm.cjs');
4
+ var logger = require('./persistence-50wmDoBE.cjs');
5
5
 
6
6
  async function openBrowser(url) {
7
7
  try {
@@ -3,7 +3,7 @@ import { resolve, join } from 'node:path';
3
3
  import { createInterface } from 'node:readline';
4
4
  import { existsSync, readFileSync, readdirSync, statSync, mkdirSync } from 'node:fs';
5
5
  import { randomUUID } from 'node:crypto';
6
- import { l as logger } from './persistence-IdEuIeMz.mjs';
6
+ import { l as logger } from './persistence-Da0uhblK.mjs';
7
7
  import { homedir } from 'node:os';
8
8
  import { p as projectPath } from './projectPath-BTBIMB57.mjs';
9
9
  import { g as getBaseSystemPrompt } from './prompt-BsAZsPbo.mjs';
@@ -5,7 +5,7 @@ var path = require('node:path');
5
5
  var node_readline = require('node:readline');
6
6
  var fs = require('node:fs');
7
7
  var node_crypto = require('node:crypto');
8
- var logger = require('./persistence-CNXsXPLm.cjs');
8
+ var logger = require('./persistence-50wmDoBE.cjs');
9
9
  var os = require('node:os');
10
10
  var projectPath = require('./projectPath-ChLhdOyt.cjs');
11
11
  var prompt = require('./prompt-BTWDZZO0.cjs');
@@ -4,7 +4,7 @@ var fs = require('fs');
4
4
  var path = require('path');
5
5
  var os = require('os');
6
6
  var child_process = require('child_process');
7
- var logger = require('./persistence-CNXsXPLm.cjs');
7
+ var logger = require('./persistence-50wmDoBE.cjs');
8
8
  var constants = require('./constants-E_UWYTo3.cjs');
9
9
  require('node:fs/promises');
10
10
  require('node:fs');
@@ -2,7 +2,7 @@ import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
2
2
  import { join } from 'path';
3
3
  import { homedir } from 'os';
4
4
  import { execSync } from 'child_process';
5
- import { l as logger } from './persistence-IdEuIeMz.mjs';
5
+ import { l as logger } from './persistence-Da0uhblK.mjs';
6
6
  import { D as DEFAULT_GEMINI_MODEL, G as GEMINI_MODEL_ENV } from './constants-pmXZGibX.mjs';
7
7
  import 'node:fs/promises';
8
8
  import 'node:fs';
@@ -4,11 +4,11 @@ var chalk = require('chalk');
4
4
  var fs = require('fs');
5
5
  var os = require('os');
6
6
  var path = require('path');
7
- var logger = require('./persistence-CNXsXPLm.cjs');
8
- var api = require('./api-BGc484qf.cjs');
7
+ var logger = require('./persistence-50wmDoBE.cjs');
8
+ var api = require('./api-ByiU9yXy.cjs');
9
9
  var http = require('http');
10
10
  var crypto = require('crypto');
11
- var browser = require('./browser-CnxzD1lA.cjs');
11
+ var browser = require('./browser-DjONS-B5.cjs');
12
12
  var child_process = require('child_process');
13
13
  var util = require('util');
14
14
  require('node:fs/promises');
@@ -34,7 +34,7 @@ require('node:module');
34
34
  require('ws');
35
35
  require('@stablelib/base64');
36
36
  require('expo-server-sdk');
37
- require('./sessionKeyCache-JjjYAxdf.cjs');
37
+ require('./sessionKeyCache-CmORI8jN.cjs');
38
38
  require('open');
39
39
 
40
40
  const CLIENT_ID$2 = "app_EMoamEEZ73f0CkXaXp7hrann";
@@ -2,11 +2,11 @@ import chalk from 'chalk';
2
2
  import { existsSync, mkdirSync, writeFileSync } from 'fs';
3
3
  import { homedir } from 'os';
4
4
  import { join } from 'path';
5
- import { r as readCredentials } from './persistence-IdEuIeMz.mjs';
6
- import { A as ApiClient } from './api-9wvM_aF-.mjs';
5
+ import { r as readCredentials } from './persistence-Da0uhblK.mjs';
6
+ import { A as ApiClient } from './api-B9shq-xZ.mjs';
7
7
  import { createServer } from 'http';
8
8
  import { randomBytes, createHash } from 'crypto';
9
- import { o as openBrowser } from './browser-CkQP96Zi.mjs';
9
+ import { o as openBrowser } from './browser-BeERlPhN.mjs';
10
10
  import { exec } from 'child_process';
11
11
  import { promisify } from 'util';
12
12
  import 'node:fs/promises';
@@ -32,7 +32,7 @@ import 'node:module';
32
32
  import 'ws';
33
33
  import '@stablelib/base64';
34
34
  import 'expo-server-sdk';
35
- import './sessionKeyCache-DDzTs7E5.mjs';
35
+ import './sessionKeyCache-BBzsFcnN.mjs';
36
36
  import 'open';
37
37
 
38
38
  const CLIENT_ID$2 = "app_EMoamEEZ73f0CkXaXp7hrann";
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var logger = require('./persistence-CNXsXPLm.cjs');
3
+ var logger = require('./persistence-50wmDoBE.cjs');
4
4
  var projectPath = require('./projectPath-ChLhdOyt.cjs');
5
5
  var fs = require('fs');
6
6
  var path = require('path');
@@ -1,4 +1,4 @@
1
- import { l as logger, m as readDaemonState, n as clearDaemonState } from './persistence-IdEuIeMz.mjs';
1
+ import { l as logger, m as readDaemonState, n as clearDaemonState } from './persistence-Da0uhblK.mjs';
2
2
  import { p as projectPath } from './projectPath-BTBIMB57.mjs';
3
3
  import { readFileSync } from 'fs';
4
4
  import { join } from 'path';
@@ -1,11 +1,11 @@
1
1
  import { existsSync, readFileSync } from 'node:fs';
2
2
  import { join } from 'node:path';
3
- import { a as approvalRegistryDir, A as APPROVAL_ENDPOINT_FILE } from './cursorApprovalServer-BOUd2-Fg.mjs';
3
+ import { a as approvalRegistryDir, A as APPROVAL_ENDPOINT_FILE } from './cursorApprovalServer-BeTT3FNN.mjs';
4
4
  import 'node:http';
5
5
  import 'node:crypto';
6
6
  import 'node:fs/promises';
7
7
  import 'node:os';
8
- import './persistence-IdEuIeMz.mjs';
8
+ import './persistence-Da0uhblK.mjs';
9
9
  import 'zod';
10
10
  import 'tweetnacl';
11
11
  import 'chalk';
@@ -2,12 +2,12 @@
2
2
 
3
3
  var fs = require('node:fs');
4
4
  var path = require('node:path');
5
- var cursorApprovalServer = require('./cursorApprovalServer-j9RphnEG.cjs');
5
+ var cursorApprovalServer = require('./cursorApprovalServer--suu8J98.cjs');
6
6
  require('node:http');
7
7
  require('node:crypto');
8
8
  require('node:fs/promises');
9
9
  require('node:os');
10
- require('./persistence-CNXsXPLm.cjs');
10
+ require('./persistence-50wmDoBE.cjs');
11
11
  require('zod');
12
12
  require('tweetnacl');
13
13
  require('chalk');
@@ -6,7 +6,7 @@ var promises = require('node:fs/promises');
6
6
  var fs = require('node:fs');
7
7
  var path = require('node:path');
8
8
  var os = require('node:os');
9
- var logger = require('./persistence-CNXsXPLm.cjs');
9
+ var logger = require('./persistence-50wmDoBE.cjs');
10
10
 
11
11
  const TOOL_NAME_MAP = {
12
12
  read: "Read",
@@ -4,7 +4,7 @@ import { mkdir, writeFile, rename, readFile, rm, readdir, rmdir } from 'node:fs/
4
4
  import { existsSync } from 'node:fs';
5
5
  import { join } from 'node:path';
6
6
  import { homedir } from 'node:os';
7
- import { l as logger } from './persistence-IdEuIeMz.mjs';
7
+ import { l as logger } from './persistence-Da0uhblK.mjs';
8
8
 
9
9
  const TOOL_NAME_MAP = {
10
10
  read: "Read",
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  var axios = require('axios');
4
- var logger = require('./persistence-CNXsXPLm.cjs');
5
- var auth = require('./auth-B6vskzfm.cjs');
4
+ var logger = require('./persistence-50wmDoBE.cjs');
5
+ var auth = require('./auth-DnFrlXqp.cjs');
6
6
  var tweetnacl = require('tweetnacl');
7
7
  var fs = require('node:fs');
8
8
  var promises = require('node:fs/promises');
@@ -1,6 +1,6 @@
1
1
  import axios from 'axios';
2
- import { h as decodeBase64, e as encodeBase64, f as encrypt, g as decrypt, c as configuration } from './persistence-IdEuIeMz.mjs';
3
- import { decryptWithEphemeralKey } from './auth-BnEa31tI.mjs';
2
+ import { h as decodeBase64, e as encodeBase64, f as encrypt, g as decrypt, c as configuration } from './persistence-Da0uhblK.mjs';
3
+ import { decryptWithEphemeralKey } from './auth-DnRtIM3d.mjs';
4
4
  import tweetnacl from 'tweetnacl';
5
5
  import { existsSync } from 'node:fs';
6
6
  import { writeFile, mkdir, readFile } from 'node:fs/promises';
@@ -1,6 +1,6 @@
1
1
  import chalk from 'chalk';
2
- import { p as packageJson, c as configuration, a as readSettings, r as readCredentials, m as readDaemonState } from './persistence-IdEuIeMz.mjs';
3
- import { checkIfDaemonRunningAndCleanupStaleState } from './controlClient-VY0CGL8k.mjs';
2
+ import { p as packageJson, c as configuration, a as readSettings, r as readCredentials, m as readDaemonState } from './persistence-Da0uhblK.mjs';
3
+ import { checkIfDaemonRunningAndCleanupStaleState } from './controlClient-BuKaeD-y.mjs';
4
4
  import { findAllHappyProcesses } from './doctor-ON7pN5G5.mjs';
5
5
  import { existsSync, readdirSync, statSync } from 'node:fs';
6
6
  import { join } from 'node:path';
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  var chalk = require('chalk');
4
- var logger = require('./persistence-CNXsXPLm.cjs');
5
- var controlClient = require('./controlClient-DWBW6jRF.cjs');
4
+ var logger = require('./persistence-50wmDoBE.cjs');
5
+ var controlClient = require('./controlClient-BqCwo6Pm.cjs');
6
6
  var doctor = require('./doctor-C08m5Z9f.cjs');
7
7
  var fs = require('node:fs');
8
8
  var path = require('node:path');
@@ -1,4 +1,4 @@
1
- import { l as logger } from './persistence-IdEuIeMz.mjs';
1
+ import { l as logger } from './persistence-Da0uhblK.mjs';
2
2
  import { createHash } from 'crypto';
3
3
  import axios from 'axios';
4
4
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var logger = require('./persistence-CNXsXPLm.cjs');
3
+ var logger = require('./persistence-50wmDoBE.cjs');
4
4
  var crypto = require('crypto');
5
5
  var axios = require('axios');
6
6
 
@@ -3,8 +3,8 @@
3
3
  var axios = require('axios');
4
4
  var tweetnacl = require('tweetnacl');
5
5
  var node_crypto = require('node:crypto');
6
- var logger = require('./persistence-CNXsXPLm.cjs');
7
- var auth = require('./auth-B6vskzfm.cjs');
6
+ var logger = require('./persistence-50wmDoBE.cjs');
7
+ var auth = require('./auth-DnFrlXqp.cjs');
8
8
  require('node:fs/promises');
9
9
  require('node:fs');
10
10
  require('node:os');
@@ -14,7 +14,7 @@ require('chalk');
14
14
  require('fs');
15
15
  require('qrcode-terminal');
16
16
  require('./time-Bj2HRkKH.cjs');
17
- require('./browser-CnxzD1lA.cjs');
17
+ require('./browser-DjONS-B5.cjs');
18
18
  require('open');
19
19
  require('react');
20
20
  require('ink');
@@ -1,8 +1,8 @@
1
1
  import axios from 'axios';
2
2
  import tweetnacl from 'tweetnacl';
3
3
  import { createHmac, randomBytes } from 'node:crypto';
4
- import { r as readCredentials, c as configuration, h as decodeBase64, u as updateSettings, w as writeCredentialsDataKey, o as libsodiumPublicKeyFromSecretKey } from './persistence-IdEuIeMz.mjs';
5
- import { decryptWithEphemeralKey } from './auth-BnEa31tI.mjs';
4
+ import { r as readCredentials, c as configuration, h as decodeBase64, u as updateSettings, w as writeCredentialsDataKey, q as libsodiumPublicKeyFromSecretKey } from './persistence-Da0uhblK.mjs';
5
+ import { decryptWithEphemeralKey } from './auth-DnRtIM3d.mjs';
6
6
  import 'node:fs/promises';
7
7
  import 'node:fs';
8
8
  import 'node:os';
@@ -12,7 +12,7 @@ import 'chalk';
12
12
  import 'fs';
13
13
  import 'qrcode-terminal';
14
14
  import './time-DgsBLJA_.mjs';
15
- import './browser-CkQP96Zi.mjs';
15
+ import './browser-BeERlPhN.mjs';
16
16
  import 'open';
17
17
  import 'react';
18
18
  import 'ink';
@@ -3,7 +3,7 @@ import { constants } from 'node:fs';
3
3
  import { mkdir, appendFile, access, readFile } from 'node:fs/promises';
4
4
  import { randomUUID } from 'node:crypto';
5
5
  import { basename, dirname, resolve } from 'node:path';
6
- import { c as configuration } from './persistence-IdEuIeMz.mjs';
6
+ import { c as configuration } from './persistence-Da0uhblK.mjs';
7
7
  import { r as renderEvidenceReport, i as inferEvidenceKind } from './workflowReports-Dd8-4-8f.mjs';
8
8
  import { p as parseWorkflowArgs, s as stringFlag, b as booleanFlag, a as printOrWriteOutput } from './workflowCommon-B0d01Y_a.mjs';
9
9
  import 'node:os';
@@ -5,7 +5,7 @@ var fs = require('node:fs');
5
5
  var promises = require('node:fs/promises');
6
6
  var node_crypto = require('node:crypto');
7
7
  var path = require('node:path');
8
- var logger = require('./persistence-CNXsXPLm.cjs');
8
+ var logger = require('./persistence-50wmDoBE.cjs');
9
9
  var workflowReports = require('./workflowReports-BEWuQesA.cjs');
10
10
  var workflowCommon = require('./workflowCommon-Bl568-rt.cjs');
11
11
  require('node:os');
@@ -1,4 +1,4 @@
1
- import { d as downloadImage } from './downloadImage-B6A4x8Jw.mjs';
1
+ import { d as downloadImage } from './downloadImage-C3FHGZDr.mjs';
2
2
 
3
3
  async function formatMessageForClaude(text, images) {
4
4
  const content = [];
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var downloadImage = require('./downloadImage-DGdHCFi3.cjs');
3
+ var downloadImage = require('./downloadImage-DZBxkdwy.cjs');
4
4
 
5
5
  async function formatMessageForClaude(text, images) {
6
6
  const content = [];