@zonease/happy 0.6.41 → 0.6.43

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-XeHlmApX.cjs → api-B-PlVQY6.cjs} +50 -4
  2. package/dist/{api-K2-jr9ar.mjs → api-BUCtd3cB.mjs} +51 -5
  3. package/dist/{auth-BQvEuSs5.cjs → auth-BqGkUXvq.cjs} +2 -2
  4. package/dist/{auth-CjLkoM3m.mjs → auth-DQH6q_q-.mjs} +4 -4
  5. package/dist/{auth-BbvPcnkY.cjs → auth-OL3nNcDX.cjs} +4 -4
  6. package/dist/{auth-DS8fzlin.mjs → auth-qM2eojWx.mjs} +2 -2
  7. package/dist/{browser-C05SP_Tt.cjs → browser-CY7VNU0C.cjs} +1 -1
  8. package/dist/{browser-C05Ak6RL.mjs → browser-D5RN_Axa.mjs} +1 -1
  9. package/dist/{claudeLocal-DJNRlHIC.mjs → claudeLocal-BXK_vQXS.mjs} +1 -1
  10. package/dist/{claudeLocal-CpDhLCcZ.cjs → claudeLocal-HAXk0deK.cjs} +1 -1
  11. package/dist/{config-DWWtjKQx.mjs → config-2wMjzcHl.mjs} +1 -1
  12. package/dist/{config-B0mns9fF.cjs → config-CaKxWGVe.cjs} +1 -1
  13. package/dist/{connect-DXQC1CJe.mjs → connect-BAunPyp_.mjs} +5 -5
  14. package/dist/{connect-BxCScVNX.cjs → connect-Dt1vY1BC.cjs} +5 -5
  15. package/dist/{controlClient-DgjVRN8D.mjs → controlClient-BzzTNSfl.mjs} +1 -1
  16. package/dist/{controlClient-DgELDZgM.cjs → controlClient-yTkpwcOq.cjs} +1 -1
  17. package/dist/cursorApprovalHook-B2chnVni.cjs +115 -0
  18. package/dist/cursorApprovalHook-BDLPzI5l.mjs +113 -0
  19. package/dist/cursorApprovalServer-Ba1yOUCA.mjs +263 -0
  20. package/dist/cursorApprovalServer-xwxVGL3u.cjs +268 -0
  21. package/dist/{deviceKeys-CejCdWpw.mjs → deviceKeys-CQyFFPtt.mjs} +2 -2
  22. package/dist/{deviceKeys-BpIAWz13.cjs → deviceKeys-CdW-HPnz.cjs} +2 -2
  23. package/dist/{doctor-DznasgP3.cjs → doctor-D4xWXiE7.cjs} +2 -2
  24. package/dist/{doctor-B-LCMVN9.mjs → doctor-DDT2TXHH.mjs} +2 -2
  25. package/dist/downloadImage-3A6zY5AX.cjs +492 -0
  26. package/dist/downloadImage-BqNp0l7y.mjs +485 -0
  27. package/dist/{enroll-HjUqyGnD.mjs → enroll-BlZ0giJI.mjs} +3 -3
  28. package/dist/{enroll-BvfpRUGJ.cjs → enroll-DeYs89Ic.cjs} +3 -3
  29. package/dist/{evidence-CVgTjBrq.cjs → evidence-Bn1JXtdz.cjs} +1 -1
  30. package/dist/{evidence-BEQd1dCh.mjs → evidence-PUnN9yPK.mjs} +1 -1
  31. package/dist/{formatImageMessage-DVs57t3x.mjs → formatImageMessage-BRHeLf0-.mjs} +1 -1
  32. package/dist/{formatImageMessage-CmJTP_hU.cjs → formatImageMessage-bVFGFDJl.cjs} +1 -1
  33. package/dist/{index-CDTNgfUf.cjs → index-BeKrqPYR.cjs} +25 -1
  34. package/dist/{index-CPKdvi7J.mjs → index-DTV7drqs.mjs} +25 -1
  35. package/dist/index.cjs +95 -41
  36. package/dist/index.mjs +95 -41
  37. package/dist/{install-UTz_vYvB.mjs → install-BLPNuSeM.mjs} +2 -2
  38. package/dist/{install-B3mMGISS.mjs → install-BOIcR_Wr.mjs} +1 -1
  39. package/dist/{install-Ck22tYHP.cjs → install-Jrs6YUu8.cjs} +1 -1
  40. package/dist/{install-2Yl_L582.cjs → install-Q-YMwwwg.cjs} +2 -2
  41. package/dist/lib.cjs +4 -4
  42. package/dist/lib.d.cts +4 -2
  43. package/dist/lib.d.mts +4 -2
  44. package/dist/lib.mjs +4 -4
  45. package/dist/{loadableToolOutput-BZYlaqHn.cjs → loadableToolOutput-B3qpMqXT.cjs} +2 -458
  46. package/dist/{loadableToolOutput-4EvraaNY.mjs → loadableToolOutput-DzReWITb.mjs} +3 -456
  47. package/dist/{persistence-DrfN7TzY.cjs → persistence-D7zNFI-d.cjs} +7 -4
  48. package/dist/{persistence-CIUFyOwz.mjs → persistence-DbLMvLvk.mjs} +7 -4
  49. package/dist/{push-CCOXCcM_.cjs → push-RT6Y0Hr3.cjs} +6 -6
  50. package/dist/{push-USXj_pv0.mjs → push-z5wQ4Ki_.mjs} +6 -6
  51. package/dist/{downloadImage-ia5SzlCV.mjs → registerKillSessionHandler-DmfnJ0zq.mjs} +7 -487
  52. package/dist/{downloadImage-B_ygLAXY.cjs → registerKillSessionHandler-MoLdSQxM.cjs} +6 -492
  53. package/dist/{run-Dy6KX6m-.mjs → run-BFnSUK1o.mjs} +14 -9
  54. package/dist/{run-D3CopmEb.cjs → run-C5StYRIB.cjs} +14 -9
  55. package/dist/{runClaude-aHzvx6Ha.cjs → runClaude-ChRp6f5G.cjs} +27 -26
  56. package/dist/{runClaude-CWux2RDq.mjs → runClaude-CjENBdrX.mjs} +22 -21
  57. package/dist/{runCodex-D0ZxSj3O.mjs → runCodex-BzQWlRoj.mjs} +27 -25
  58. package/dist/{runCodex-G-Aq531U.cjs → runCodex-DcQGyotH.cjs} +32 -30
  59. package/dist/runCursor-B73z6MCN.mjs +752 -0
  60. package/dist/runCursor-BlPAxaTy.cjs +754 -0
  61. package/dist/{runGemini-DZC2i6vA.mjs → runGemini-BPv4UzuF.mjs} +18 -16
  62. package/dist/{runGemini-DxGgDAIM.cjs → runGemini-JFqaIC3u.cjs} +23 -21
  63. package/dist/{runOneShot-BgT-JNMA.cjs → runOneShot-2iV11e9L.cjs} +3 -3
  64. package/dist/{runOneShot-cxlk7VKA.mjs → runOneShot-DTukim2A.mjs} +3 -3
  65. package/dist/{serve-Dr3wPrtK.cjs → serve-BDwuAIK4.cjs} +7 -7
  66. package/dist/{serve-CKyvJNs0.mjs → serve-BnlYj5ek.mjs} +7 -7
  67. package/dist/{session-dYzbOo_W.cjs → session-Cp9LEESM.cjs} +5 -5
  68. package/dist/{session-vf2ZjFto.mjs → session-gfeFU8CA.mjs} +5 -5
  69. package/dist/{sessionKeyCache-dDquDzn0.cjs → sessionKeyCache-3Pme04yL.cjs} +1 -1
  70. package/dist/{sessionKeyCache-D2u3JUys.mjs → sessionKeyCache-DtBS_Sb3.mjs} +1 -1
  71. package/dist/{sessionList-C1k2PNg_.mjs → sessionList-B1w4BUdv.mjs} +2 -2
  72. package/dist/{sessionList-DmmtC7uR.cjs → sessionList-BR_5UDZJ.cjs} +2 -2
  73. package/dist/{sessionSummary-DGLoVOxd.cjs → sessionSummary-DLweYgHO.cjs} +3 -3
  74. package/dist/{sessionSummary-5a1QtFVS.mjs → sessionSummary-E-a2bg8W.mjs} +3 -3
  75. package/dist/setupOfflineReconnection-DHwthFtd.mjs +459 -0
  76. package/dist/setupOfflineReconnection-Dkp00dC9.cjs +463 -0
  77. package/dist/{spawnHappyCLI-CarRI4GM.cjs → spawnHappyCLI-C2uY9WV-.cjs} +1 -1
  78. package/dist/{spawnHappyCLI-D3EkTFIn.mjs → spawnHappyCLI-Dt7fbmbk.mjs} +1 -1
  79. package/dist/{ssh-B0hvEYIl.mjs → ssh-C-nEZiGP.mjs} +5 -5
  80. package/dist/{ssh-CBgVwKsB.cjs → ssh-CsnS89Lr.cjs} +5 -5
  81. package/dist/{task-CRo6W-3_.mjs → task-B-8_QGGX.mjs} +6 -6
  82. package/dist/{task-CMunPKCV.cjs → task-lrLb4FCL.cjs} +6 -6
  83. package/dist/{uninstall-BALE2up0.mjs → uninstall-CirMt_WC.mjs} +2 -2
  84. package/dist/{uninstall-BJ3eEGM4.cjs → uninstall-DMjUlEXT.cjs} +2 -2
  85. package/dist/{update-BfjtLrhO.mjs → update-CfXbYshs.mjs} +3 -3
  86. package/dist/{update-Bb3iijy8.cjs → update-mx2p28IP.cjs} +3 -3
  87. package/package.json +1 -1
@@ -1,19 +1,21 @@
1
1
  import { useStdout, useInput, Box, Text, render } from 'ink';
2
2
  import React, { useState, useRef, useEffect, useCallback } from 'react';
3
3
  import { randomUUID } from 'node:crypto';
4
- import { c as saveDiffRecords, h as readGeminiSessionLog, d as connectionState, A as ApiClient, G as GeminiSessionWriter, j as buildResumeContextFromSessionLog } from './api-K2-jr9ar.mjs';
5
- import { l as logger, p as packageJson, i as isDebug, a as readSettings } from './persistence-CIUFyOwz.mjs';
6
- import { d as handleAgentMessageChunk, e as handleToolCallUpdate, f as handleAgentThoughtChunk, g as handleToolCall, i as handleLegacyMessageChunk, j as handlePlanUpdate, k as handleThinkingUpdate, B as BasePermissionHandler, a as BaseReasoningProcessor, b as summarizeBashToolOutput, c as createSessionMetadata, s as setupOfflineReconnection, h as handleConfigMetadataEvent } from './loadableToolOutput-4EvraaNY.mjs';
7
- import { i as initialMachineMetadata, s as stopCaffeinate } from './run-Dy6KX6m-.mjs';
8
- import { M as MessageQueue2, h as hashObject, b as MessageBuffer, r as registerKillSessionHandler, c as createMcpContext, p as parseClear } from './downloadImage-ia5SzlCV.mjs';
9
- import { notifyDaemonSessionStarted } from './controlClient-DgjVRN8D.mjs';
4
+ import { c as saveDiffRecords, h as readGeminiSessionLog, d as connectionState, A as ApiClient, G as GeminiSessionWriter, j as buildResumeContextFromSessionLog } from './api-BUCtd3cB.mjs';
5
+ import { l as logger, p as packageJson, i as isDebug, a as readSettings } from './persistence-DbLMvLvk.mjs';
6
+ import { B as BasePermissionHandler, c as createSessionMetadata, s as setupOfflineReconnection } from './setupOfflineReconnection-DHwthFtd.mjs';
7
+ import { i as initialMachineMetadata, s as stopCaffeinate } from './run-BFnSUK1o.mjs';
8
+ import { M as MessageQueue2, h as hashObject, a as MessageBuffer, p as parseClear } from './downloadImage-BqNp0l7y.mjs';
9
+ import { r as registerKillSessionHandler, c as createMcpContext } from './registerKillSessionHandler-DmfnJ0zq.mjs';
10
+ import { notifyDaemonSessionStarted } from './controlClient-BzzTNSfl.mjs';
10
11
  import { spawn } from 'node:child_process';
11
12
  import { ndJsonStream, ClientSideConnection } from '@agentclientprotocol/sdk';
12
13
  import { d as delay } from './time-DgsBLJA_.mjs';
13
- import { G as GEMINI_MODEL_MODES } from './index-CPKdvi7J.mjs';
14
+ import { G as GEMINI_MODEL_MODES } from './index-DTV7drqs.mjs';
15
+ import { a as handleAgentMessageChunk, b as handleToolCallUpdate, c as handleAgentThoughtChunk, d as handleToolCall, e as handleLegacyMessageChunk, f as handlePlanUpdate, g as handleThinkingUpdate, B as BaseReasoningProcessor, s as summarizeBashToolOutput, h as handleConfigMetadataEvent } from './loadableToolOutput-DzReWITb.mjs';
14
16
  import { a as GEMINI_API_KEY_ENV, b as GOOGLE_API_KEY_ENV, G as GEMINI_MODEL_ENV, g as getFirstTurnInstruction } from './constants-pmXZGibX.mjs';
15
- import { readGeminiLocalConfig, determineGeminiModel, getGeminiModelSource, getInitialGeminiModel, saveGeminiModelToConfig } from './config-DWWtjKQx.mjs';
16
- import { f as formatMessageForGemini } from './formatImageMessage-DVs57t3x.mjs';
17
+ import { readGeminiLocalConfig, determineGeminiModel, getGeminiModelSource, getInitialGeminiModel, saveGeminiModelToConfig } from './config-2wMjzcHl.mjs';
18
+ import { f as formatMessageForGemini } from './formatImageMessage-BRHeLf0-.mjs';
17
19
  import 'axios';
18
20
  import 'node:events';
19
21
  import 'socket.io-client';
@@ -36,22 +38,22 @@ import 'tweetnacl';
36
38
  import '@stablelib/base64';
37
39
  import 'node:readline';
38
40
  import 'expo-server-sdk';
39
- import './sessionKeyCache-D2u3JUys.mjs';
41
+ import './sessionKeyCache-DtBS_Sb3.mjs';
40
42
  import 'chalk';
41
43
  import 'fs';
42
44
  import 'os';
43
45
  import 'tmp';
44
- import './auth-DS8fzlin.mjs';
46
+ import './auth-qM2eojWx.mjs';
45
47
  import 'qrcode-terminal';
46
- import './browser-C05Ak6RL.mjs';
48
+ import './browser-D5RN_Axa.mjs';
47
49
  import 'open';
48
- import './doctor-B-LCMVN9.mjs';
50
+ import './doctor-DDT2TXHH.mjs';
49
51
  import './doctor-ON7pN5G5.mjs';
50
52
  import 'ps-list';
51
53
  import 'cross-spawn';
52
- import './spawnHappyCLI-D3EkTFIn.mjs';
53
- import './deviceKeys-CejCdWpw.mjs';
54
- import './install-B3mMGISS.mjs';
54
+ import './spawnHappyCLI-Dt7fbmbk.mjs';
55
+ import './deviceKeys-CQyFFPtt.mjs';
56
+ import './install-BOIcR_Wr.mjs';
55
57
  import './trimIdent-BAjmv_TG.mjs';
56
58
  import 'fastify';
57
59
  import 'fastify-type-provider-zod';
@@ -3,19 +3,21 @@
3
3
  var ink = require('ink');
4
4
  var React = require('react');
5
5
  var node_crypto = require('node:crypto');
6
- var api = require('./api-XeHlmApX.cjs');
7
- var logger = require('./persistence-DrfN7TzY.cjs');
8
- var loadableToolOutput = require('./loadableToolOutput-BZYlaqHn.cjs');
9
- var run = require('./run-D3CopmEb.cjs');
10
- var downloadImage = require('./downloadImage-B_ygLAXY.cjs');
11
- var controlClient = require('./controlClient-DgELDZgM.cjs');
6
+ var api = require('./api-B-PlVQY6.cjs');
7
+ var logger = require('./persistence-D7zNFI-d.cjs');
8
+ var setupOfflineReconnection = require('./setupOfflineReconnection-Dkp00dC9.cjs');
9
+ var run = require('./run-C5StYRIB.cjs');
10
+ var downloadImage = require('./downloadImage-3A6zY5AX.cjs');
11
+ var registerKillSessionHandler = require('./registerKillSessionHandler-MoLdSQxM.cjs');
12
+ var controlClient = require('./controlClient-yTkpwcOq.cjs');
12
13
  var node_child_process = require('node:child_process');
13
14
  var sdk = require('@agentclientprotocol/sdk');
14
15
  var time = require('./time-Bj2HRkKH.cjs');
15
- var index = require('./index-CDTNgfUf.cjs');
16
+ var index = require('./index-BeKrqPYR.cjs');
17
+ var loadableToolOutput = require('./loadableToolOutput-B3qpMqXT.cjs');
16
18
  var constants = require('./constants-E_UWYTo3.cjs');
17
- var config = require('./config-B0mns9fF.cjs');
18
- var formatImageMessage = require('./formatImageMessage-CmJTP_hU.cjs');
19
+ var config = require('./config-CaKxWGVe.cjs');
20
+ var formatImageMessage = require('./formatImageMessage-bVFGFDJl.cjs');
19
21
  require('axios');
20
22
  require('node:events');
21
23
  require('socket.io-client');
@@ -38,22 +40,22 @@ require('tweetnacl');
38
40
  require('@stablelib/base64');
39
41
  require('node:readline');
40
42
  require('expo-server-sdk');
41
- require('./sessionKeyCache-dDquDzn0.cjs');
43
+ require('./sessionKeyCache-3Pme04yL.cjs');
42
44
  require('chalk');
43
45
  require('fs');
44
46
  require('os');
45
47
  require('tmp');
46
- require('./auth-BQvEuSs5.cjs');
48
+ require('./auth-BqGkUXvq.cjs');
47
49
  require('qrcode-terminal');
48
- require('./browser-C05SP_Tt.cjs');
50
+ require('./browser-CY7VNU0C.cjs');
49
51
  require('open');
50
- require('./doctor-DznasgP3.cjs');
52
+ require('./doctor-D4xWXiE7.cjs');
51
53
  require('./doctor-C08m5Z9f.cjs');
52
54
  require('ps-list');
53
55
  require('cross-spawn');
54
- require('./spawnHappyCLI-CarRI4GM.cjs');
55
- require('./deviceKeys-BpIAWz13.cjs');
56
- require('./install-Ck22tYHP.cjs');
56
+ require('./spawnHappyCLI-C2uY9WV-.cjs');
57
+ require('./deviceKeys-CdW-HPnz.cjs');
58
+ require('./install-Jrs6YUu8.cjs');
57
59
  require('./trimIdent-4gvk9Wk6.cjs');
58
60
  require('fastify');
59
61
  require('fastify-type-provider-zod');
@@ -1528,7 +1530,7 @@ const GeminiDisplay = ({ messageBuffer, logPath, currentModel, onExit }) => {
1528
1530
  ));
1529
1531
  };
1530
1532
 
1531
- class GeminiPermissionHandler extends loadableToolOutput.BasePermissionHandler {
1533
+ class GeminiPermissionHandler extends setupOfflineReconnection.BasePermissionHandler {
1532
1534
  currentPermissionMode = "default";
1533
1535
  constructor(session, pushClient) {
1534
1536
  super(session, pushClient);
@@ -2130,7 +2132,7 @@ async function runGemini(opts) {
2130
2132
  } catch (error) {
2131
2133
  logger.logger.debug("[Gemini] Failed to fetch cloud token:", error);
2132
2134
  }
2133
- const { state, metadata } = loadableToolOutput.createSessionMetadata({
2135
+ const { state, metadata } = setupOfflineReconnection.createSessionMetadata({
2134
2136
  flavor: "gemini",
2135
2137
  machineId,
2136
2138
  startedBy: opts.startedBy
@@ -2152,7 +2154,7 @@ async function runGemini(opts) {
2152
2154
  pendingSessionSwap = null;
2153
2155
  }
2154
2156
  };
2155
- const { session: initialSession, reconnectionHandle } = loadableToolOutput.setupOfflineReconnection({
2157
+ const { session: initialSession, reconnectionHandle } = setupOfflineReconnection.setupOfflineReconnection({
2156
2158
  api: api$1,
2157
2159
  sessionTag,
2158
2160
  metadata,
@@ -2395,7 +2397,7 @@ async function runGemini(opts) {
2395
2397
  }
2396
2398
  };
2397
2399
  session.rpcHandlerManager.registerHandler("abort", handleAbort);
2398
- downloadImage.registerKillSessionHandler(session.rpcHandlerManager, handleKillSession);
2400
+ registerKillSessionHandler.registerKillSessionHandler(session.rpcHandlerManager, handleKillSession);
2399
2401
  const messageBuffer = new downloadImage.MessageBuffer();
2400
2402
  const hasTTY = process.stdout.isTTY && process.stdin.isTTY;
2401
2403
  let inkInstance = null;
@@ -2451,7 +2453,7 @@ async function runGemini(opts) {
2451
2453
  }
2452
2454
  process.stdin.setEncoding("utf8");
2453
2455
  }
2454
- const mcp = await downloadImage.createMcpContext(session);
2456
+ const mcp = await registerKillSessionHandler.createMcpContext(session);
2455
2457
  const mcpServers = mcp.configForHttp();
2456
2458
  permissionHandler = new GeminiPermissionHandler(session, api$1.push());
2457
2459
  const reasoningProcessor = new GeminiReasoningProcessor((message) => {
@@ -2,9 +2,9 @@
2
2
 
3
3
  var node_child_process = require('node:child_process');
4
4
  var fs = require('node:fs');
5
- var claudeLocal = require('./claudeLocal-CpDhLCcZ.cjs');
6
- var logger = require('./persistence-DrfN7TzY.cjs');
7
- var index = require('./index-CDTNgfUf.cjs');
5
+ var claudeLocal = require('./claudeLocal-HAXk0deK.cjs');
6
+ var logger = require('./persistence-D7zNFI-d.cjs');
7
+ var index = require('./index-BeKrqPYR.cjs');
8
8
  var common = require('./common-CZvSRU4p.cjs');
9
9
  require('node:path');
10
10
  require('node:readline');
@@ -1,8 +1,8 @@
1
1
  import { spawn } from 'node:child_process';
2
2
  import { existsSync } from 'node:fs';
3
- import { c as claudeCliPath } from './claudeLocal-DJNRlHIC.mjs';
4
- import { l as logger } from './persistence-CIUFyOwz.mjs';
5
- import { i as isModelModeForAgent, M as MODEL_MODE_DEFAULT, p as parseCodexModelMode, a as parseClaudeModelMode } from './index-CPKdvi7J.mjs';
3
+ import { c as claudeCliPath } from './claudeLocal-BXK_vQXS.mjs';
4
+ import { l as logger } from './persistence-DbLMvLvk.mjs';
5
+ import { i as isModelModeForAgent, M as MODEL_MODE_DEFAULT, p as parseCodexModelMode, a as parseClaudeModelMode } from './index-DTV7drqs.mjs';
6
6
  import { i as isOrchestratorProvider, O as ORCHESTRATOR_ENV_KEYS, d as decodePromptFromBase64 } from './common-BdNgghUJ.mjs';
7
7
  import 'node:path';
8
8
  import 'node:readline';
@@ -2,11 +2,11 @@
2
2
 
3
3
  var mcp_js = require('@modelcontextprotocol/sdk/server/mcp.js');
4
4
  var stdio_js = require('@modelcontextprotocol/sdk/server/stdio.js');
5
- var logger = require('./persistence-DrfN7TzY.cjs');
6
- var sessionList = require('./sessionList-DmmtC7uR.cjs');
5
+ var logger = require('./persistence-D7zNFI-d.cjs');
6
+ var sessionList = require('./sessionList-BR_5UDZJ.cjs');
7
7
  var axios = require('axios');
8
8
  var z = require('zod');
9
- var sessionSummary = require('./sessionSummary-DGLoVOxd.cjs');
9
+ var sessionSummary = require('./sessionSummary-DLweYgHO.cjs');
10
10
  var node_crypto = require('node:crypto');
11
11
  require('node:fs/promises');
12
12
  require('node:fs');
@@ -15,14 +15,14 @@ require('node:path');
15
15
  require('tweetnacl');
16
16
  require('chalk');
17
17
  require('fs');
18
- require('./auth-BQvEuSs5.cjs');
18
+ require('./auth-BqGkUXvq.cjs');
19
19
  require('qrcode-terminal');
20
20
  require('./time-Bj2HRkKH.cjs');
21
- require('./browser-C05SP_Tt.cjs');
21
+ require('./browser-CY7VNU0C.cjs');
22
22
  require('open');
23
23
  require('react');
24
24
  require('ink');
25
- require('./sessionKeyCache-dDquDzn0.cjs');
25
+ require('./sessionKeyCache-3Pme04yL.cjs');
26
26
 
27
27
  const PREVIEW_LIMIT = 200;
28
28
  const TAIL_MESSAGES = 5;
@@ -223,7 +223,7 @@ async function runSessionCancel(credentials, input) {
223
223
  const sessionSpawnInputSchema = {
224
224
  machineId: z.z.string().min(1).describe("Target machine ID (from happy_session_list .machineId or the daemon registration)."),
225
225
  directory: z.z.string().min(1).describe("Absolute path on the target machine where the agent should run."),
226
- agent: z.z.enum(["claude", "gemini", "codex"]).describe("Which agent flavor to spawn."),
226
+ agent: z.z.enum(["claude", "gemini", "codex", "cursor"]).describe("Which agent flavor to spawn."),
227
227
  sessionTitle: z.z.string().optional().describe("Optional human-readable title shown in the happy-app session list."),
228
228
  approvedNewDirectoryCreation: z.z.boolean().optional().default(false).describe(
229
229
  "When false (default) and `directory` does not exist on the machine, the daemon refuses and this tool throws. Set to true to approve directory creation."
@@ -1,10 +1,10 @@
1
1
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
3
- import { c as configuration, e as encodeBase64, f as encrypt, h as decodeBase64, g as decrypt, r as readCredentials } from './persistence-CIUFyOwz.mjs';
4
- import { s as sessionListInputSchema, r as runSessionList } from './sessionList-C1k2PNg_.mjs';
3
+ import { c as configuration, e as encodeBase64, f as encrypt, h as decodeBase64, g as decrypt, r as readCredentials } from './persistence-DbLMvLvk.mjs';
4
+ import { s as sessionListInputSchema, r as runSessionList } from './sessionList-B1w4BUdv.mjs';
5
5
  import axios from 'axios';
6
6
  import { z } from 'zod';
7
- import { f as fetchSessionById, a as decryptMessage, s as sessionSummaryInputSchema, r as runSessionSummary } from './sessionSummary-5a1QtFVS.mjs';
7
+ import { f as fetchSessionById, a as decryptMessage, s as sessionSummaryInputSchema, r as runSessionSummary } from './sessionSummary-E-a2bg8W.mjs';
8
8
  import { randomUUID } from 'node:crypto';
9
9
  import 'node:fs/promises';
10
10
  import 'node:fs';
@@ -13,14 +13,14 @@ import 'node:path';
13
13
  import 'tweetnacl';
14
14
  import 'chalk';
15
15
  import 'fs';
16
- import './auth-DS8fzlin.mjs';
16
+ import './auth-qM2eojWx.mjs';
17
17
  import 'qrcode-terminal';
18
18
  import './time-DgsBLJA_.mjs';
19
- import './browser-C05Ak6RL.mjs';
19
+ import './browser-D5RN_Axa.mjs';
20
20
  import 'open';
21
21
  import 'react';
22
22
  import 'ink';
23
- import './sessionKeyCache-D2u3JUys.mjs';
23
+ import './sessionKeyCache-DtBS_Sb3.mjs';
24
24
 
25
25
  const PREVIEW_LIMIT = 200;
26
26
  const TAIL_MESSAGES = 5;
@@ -221,7 +221,7 @@ async function runSessionCancel(credentials, input) {
221
221
  const sessionSpawnInputSchema = {
222
222
  machineId: z.string().min(1).describe("Target machine ID (from happy_session_list .machineId or the daemon registration)."),
223
223
  directory: z.string().min(1).describe("Absolute path on the target machine where the agent should run."),
224
- agent: z.enum(["claude", "gemini", "codex"]).describe("Which agent flavor to spawn."),
224
+ agent: z.enum(["claude", "gemini", "codex", "cursor"]).describe("Which agent flavor to spawn."),
225
225
  sessionTitle: z.string().optional().describe("Optional human-readable title shown in the happy-app session list."),
226
226
  approvedNewDirectoryCreation: z.boolean().optional().default(false).describe(
227
227
  "When false (default) and `directory` does not exist on the machine, the daemon refuses and this tool throws. Set to true to approve directory creation."
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  var chalk = require('chalk');
4
- var logger = require('./persistence-DrfN7TzY.cjs');
5
- var sessionSummary = require('./sessionSummary-DGLoVOxd.cjs');
4
+ var logger = require('./persistence-D7zNFI-d.cjs');
5
+ var sessionSummary = require('./sessionSummary-DLweYgHO.cjs');
6
6
  require('node:fs/promises');
7
7
  require('node:fs');
8
8
  require('node:os');
@@ -12,14 +12,14 @@ require('node:crypto');
12
12
  require('tweetnacl');
13
13
  require('fs');
14
14
  require('axios');
15
- require('./auth-BQvEuSs5.cjs');
15
+ require('./auth-BqGkUXvq.cjs');
16
16
  require('qrcode-terminal');
17
17
  require('./time-Bj2HRkKH.cjs');
18
- require('./browser-C05SP_Tt.cjs');
18
+ require('./browser-CY7VNU0C.cjs');
19
19
  require('open');
20
20
  require('react');
21
21
  require('ink');
22
- require('./sessionKeyCache-dDquDzn0.cjs');
22
+ require('./sessionKeyCache-3Pme04yL.cjs');
23
23
 
24
24
  function printSessionHelp() {
25
25
  console.log(`
@@ -1,6 +1,6 @@
1
1
  import chalk from 'chalk';
2
- import { r as readCredentials } from './persistence-CIUFyOwz.mjs';
3
- import { r as runSessionSummary } from './sessionSummary-5a1QtFVS.mjs';
2
+ import { r as readCredentials } from './persistence-DbLMvLvk.mjs';
3
+ import { r as runSessionSummary } from './sessionSummary-E-a2bg8W.mjs';
4
4
  import 'node:fs/promises';
5
5
  import 'node:fs';
6
6
  import 'node:os';
@@ -10,14 +10,14 @@ import 'node:crypto';
10
10
  import 'tweetnacl';
11
11
  import 'fs';
12
12
  import 'axios';
13
- import './auth-DS8fzlin.mjs';
13
+ import './auth-qM2eojWx.mjs';
14
14
  import 'qrcode-terminal';
15
15
  import './time-DgsBLJA_.mjs';
16
- import './browser-C05Ak6RL.mjs';
16
+ import './browser-D5RN_Axa.mjs';
17
17
  import 'open';
18
18
  import 'react';
19
19
  import 'ink';
20
- import './sessionKeyCache-D2u3JUys.mjs';
20
+ import './sessionKeyCache-DtBS_Sb3.mjs';
21
21
 
22
22
  function printSessionHelp() {
23
23
  console.log(`
@@ -3,7 +3,7 @@
3
3
  var fs = require('node:fs');
4
4
  var promises = require('node:fs/promises');
5
5
  var path = require('node:path');
6
- var logger = require('./persistence-DrfN7TzY.cjs');
6
+ var logger = require('./persistence-D7zNFI-d.cjs');
7
7
 
8
8
  function keyPath(sessionId) {
9
9
  return path.join(logger.configuration.sessionKeysDir, `${sessionId}.key`);
@@ -1,7 +1,7 @@
1
1
  import { existsSync, mkdirSync, readFileSync } from 'node:fs';
2
2
  import { writeFile } from 'node:fs/promises';
3
3
  import { join } from 'node:path';
4
- import { c as configuration, j as encryptWithDataKey, e as encodeBase64, k as decryptWithDataKey, h as decodeBase64 } from './persistence-CIUFyOwz.mjs';
4
+ import { c as configuration, j as encryptWithDataKey, e as encodeBase64, k as decryptWithDataKey, h as decodeBase64 } from './persistence-DbLMvLvk.mjs';
5
5
 
6
6
  function keyPath(sessionId) {
7
7
  return join(configuration.sessionKeysDir, `${sessionId}.key`);
@@ -1,7 +1,7 @@
1
1
  import axios from 'axios';
2
2
  import { z } from 'zod';
3
- import { c as configuration } from './persistence-CIUFyOwz.mjs';
4
- import { d as decryptSessionRow } from './sessionSummary-5a1QtFVS.mjs';
3
+ import { c as configuration } from './persistence-DbLMvLvk.mjs';
4
+ import { d as decryptSessionRow } from './sessionSummary-E-a2bg8W.mjs';
5
5
 
6
6
  const sessionListInputSchema = {
7
7
  status: z.enum(["active", "archived", "all"]).optional().describe("Filter by session state. Default: all."),
@@ -2,8 +2,8 @@
2
2
 
3
3
  var axios = require('axios');
4
4
  var z = require('zod');
5
- var logger = require('./persistence-DrfN7TzY.cjs');
6
- var sessionSummary = require('./sessionSummary-DGLoVOxd.cjs');
5
+ var logger = require('./persistence-D7zNFI-d.cjs');
6
+ var sessionSummary = require('./sessionSummary-DLweYgHO.cjs');
7
7
 
8
8
  const sessionListInputSchema = {
9
9
  status: z.z.enum(["active", "archived", "all"]).optional().describe("Filter by session state. Default: all."),
@@ -2,9 +2,9 @@
2
2
 
3
3
  var axios = require('axios');
4
4
  var z = require('zod');
5
- var logger = require('./persistence-DrfN7TzY.cjs');
6
- var auth = require('./auth-BQvEuSs5.cjs');
7
- var sessionKeyCache = require('./sessionKeyCache-dDquDzn0.cjs');
5
+ var logger = require('./persistence-D7zNFI-d.cjs');
6
+ var auth = require('./auth-BqGkUXvq.cjs');
7
+ var sessionKeyCache = require('./sessionKeyCache-3Pme04yL.cjs');
8
8
 
9
9
  function resolveSessionKey(credentials, dataEncryptionKey, sessionId) {
10
10
  if (credentials.encryption.type === "legacy") {
@@ -1,8 +1,8 @@
1
1
  import axios from 'axios';
2
2
  import { z } from 'zod';
3
- import { q as decryptLegacy, h as decodeBase64, k as decryptWithDataKey, c as configuration } from './persistence-CIUFyOwz.mjs';
4
- import { decryptWithEphemeralKey } from './auth-DS8fzlin.mjs';
5
- import { r as readCachedSessionKey } from './sessionKeyCache-D2u3JUys.mjs';
3
+ import { q as decryptLegacy, h as decodeBase64, k as decryptWithDataKey, c as configuration } from './persistence-DbLMvLvk.mjs';
4
+ import { decryptWithEphemeralKey } from './auth-qM2eojWx.mjs';
5
+ import { r as readCachedSessionKey } from './sessionKeyCache-DtBS_Sb3.mjs';
6
6
 
7
7
  function resolveSessionKey(credentials, dataEncryptionKey, sessionId) {
8
8
  if (credentials.encryption.type === "legacy") {