@zonease/happy 0.6.47 → 0.6.48

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 (85) hide show
  1. package/dist/{api-L9jLLtI1.mjs → api-BQORFd9R.mjs} +2 -2
  2. package/dist/{api-mv48hjhj.cjs → api-lxlaOAan.cjs} +3 -3
  3. package/dist/{auth-InL7fBsz.mjs → auth-Cch5XGgf.mjs} +4 -4
  4. package/dist/{auth-0qbD9TEm.cjs → auth-D3n2c6ef.cjs} +4 -4
  5. package/dist/{auth-BoWfky2q.mjs → auth-DEvweBty.mjs} +2 -2
  6. package/dist/{auth-DfQYhTlg.cjs → auth-DO429YIh.cjs} +2 -2
  7. package/dist/{browser-D9jMe1me.mjs → browser-C6JpWqen.mjs} +1 -1
  8. package/dist/{browser-CF-r2ami.cjs → browser-ChToh76t.cjs} +1 -1
  9. package/dist/{claudeLocal-DOfhf6VK.cjs → claudeLocal-BRkqm7Dv.cjs} +1 -1
  10. package/dist/{claudeLocal-CFEXiYts.mjs → claudeLocal-D7uEQO2e.mjs} +1 -1
  11. package/dist/codex/happyMcpStdioBridge.cjs +9 -0
  12. package/dist/codex/happyMcpStdioBridge.mjs +9 -0
  13. package/dist/{config-ByyclMMi.cjs → config-D1pd0h7A.cjs} +1 -1
  14. package/dist/{config-BBm54d_L.mjs → config-oC3LtNiN.mjs} +1 -1
  15. package/dist/{connect-B5JhnDTy.mjs → connect-CyFpNr11.mjs} +4 -4
  16. package/dist/{connect-CIOfZYj-.cjs → connect-OAvNEIm0.cjs} +4 -4
  17. package/dist/{controlClient-DMEMVw4Y.cjs → controlClient-BAJAvvWO.cjs} +1 -1
  18. package/dist/{controlClient-P5wJhu1R.mjs → controlClient-CEliu-dY.mjs} +1 -1
  19. package/dist/{cursorApprovalHook-C9mdmRIx.cjs → cursorApprovalHook-BWYkdy2I.cjs} +2 -2
  20. package/dist/{cursorApprovalHook-DplHRbGK.mjs → cursorApprovalHook-P8q2-Ot5.mjs} +2 -2
  21. package/dist/{cursorApprovalServer-C9y5dYDE.mjs → cursorApprovalServer-DNOUUpbJ.mjs} +1 -1
  22. package/dist/{cursorApprovalServer-BoI6qBTg.cjs → cursorApprovalServer-VR5ZdRqZ.cjs} +1 -1
  23. package/dist/{deviceKeys-CzqNNlG1.cjs → deviceKeys-CFpY68YY.cjs} +2 -2
  24. package/dist/{deviceKeys-tcvwm4KA.mjs → deviceKeys-CxID9XkJ.mjs} +2 -2
  25. package/dist/{doctor-CXYhUN9A.mjs → doctor-CrBPDAJR.mjs} +2 -2
  26. package/dist/{doctor-CBbj6YEl.cjs → doctor-qquYvrNu.cjs} +2 -2
  27. package/dist/{downloadImage-CRkycWIl.cjs → downloadImage-Cqy7ZDq9.cjs} +1 -1
  28. package/dist/{downloadImage-CpnQ3aS1.mjs → downloadImage-DFwUJ1-t.mjs} +1 -1
  29. package/dist/{enroll-CYNDVSIH.mjs → enroll-BS4x3OUQ.mjs} +3 -3
  30. package/dist/{enroll-CyikRwm7.cjs → enroll-CPhX2YYW.cjs} +3 -3
  31. package/dist/{evidence-DAu9vtgh.mjs → evidence-HQhiWcci.mjs} +1 -1
  32. package/dist/{evidence-CuGxhBQm.cjs → evidence-mn6vjFpr.cjs} +1 -1
  33. package/dist/{formatImageMessage-CqonqpiB.cjs → formatImageMessage-DFfcusj_.cjs} +1 -1
  34. package/dist/{formatImageMessage-ZJZza9-9.mjs → formatImageMessage-cI_AEqo1.mjs} +1 -1
  35. package/dist/index.cjs +46 -46
  36. package/dist/index.mjs +46 -46
  37. package/dist/{install-_GiK-K1X.cjs → install-Bm5eNojk.cjs} +1 -1
  38. package/dist/{install-5H5Lh58Z.mjs → install-Bn2199Kq.mjs} +2 -2
  39. package/dist/{install-Cma2vLWa.mjs → install-sbpQfY_l.mjs} +1 -1
  40. package/dist/{install-X4JLGAi3.cjs → install-tBBR7NUn.cjs} +2 -2
  41. package/dist/lib.cjs +3 -3
  42. package/dist/lib.mjs +3 -3
  43. package/dist/{loadableToolOutput-sf6E72GE.cjs → loadableToolOutput-BzTaDndK.cjs} +2 -2
  44. package/dist/{loadableToolOutput-4qF6EX0y.mjs → loadableToolOutput-DbXbVycg.mjs} +2 -2
  45. package/dist/{persistence-B_w4o5z-.cjs → persistence-ACqGUEtH.cjs} +1 -1
  46. package/dist/{persistence-D2aRTiT1.mjs → persistence-YyHJPrEJ.mjs} +1 -1
  47. package/dist/{push-BiBqn-pk.mjs → push-CICE33Pk.mjs} +6 -6
  48. package/dist/{push-Df6QabEp.cjs → push-DN6X8puN.cjs} +6 -6
  49. package/dist/{registerKillSessionHandler-DUrOhiGo.cjs → registerKillSessionHandler-BvYc-FOQ.cjs} +48 -4
  50. package/dist/{registerKillSessionHandler-AcpB6OSk.mjs → registerKillSessionHandler-CaFN7Ti_.mjs} +48 -4
  51. package/dist/{run-D6oXm1Jk.mjs → run-DEIpQXCf.mjs} +8 -8
  52. package/dist/{run-DclH1MRm.cjs → run-Djrrraug.cjs} +8 -8
  53. package/dist/{runClaude--M8lVtqr.mjs → runClaude-BuXbk4Hk.mjs} +15 -15
  54. package/dist/{runClaude-BfLi7f2N.cjs → runClaude-DEnJA94E.cjs} +16 -16
  55. package/dist/{runCodex-DatWk57y.mjs → runCodex-DDJ4ld9g.mjs} +17 -17
  56. package/dist/{runCodex-DdcEe5bM.cjs → runCodex-xfey8ybA.cjs} +17 -17
  57. package/dist/{runCursor-DxcT7Qtj.mjs → runCursor-Ea-0SqPz.mjs} +15 -15
  58. package/dist/{runCursor-CszdTKDp.cjs → runCursor-HDQXcY5a.cjs} +15 -15
  59. package/dist/{runGemini-41p6X_zo.mjs → runGemini-DNXknLIG.mjs} +24 -19
  60. package/dist/{runGemini-sAOJNh2V.cjs → runGemini-DupL8lXI.cjs} +24 -19
  61. package/dist/{runOneShot-NBUWEobi.mjs → runOneShot-C3adjQdt.mjs} +2 -2
  62. package/dist/{runOneShot-m6HO3H5c.cjs → runOneShot-ncBtn_Gm.cjs} +2 -2
  63. package/dist/{serve-B84oK7m-.mjs → serve-B8J5nW6c.mjs} +6 -6
  64. package/dist/{serve-CUNdZ2ps.cjs → serve-DS7_dJ2V.cjs} +6 -6
  65. package/dist/{session-9-fr4sTn.mjs → session-DLX5ZdxL.mjs} +5 -5
  66. package/dist/{session-De8UTFFI.cjs → session-DqtoNEcE.cjs} +5 -5
  67. package/dist/{sessionKeyCache-DYuPkw5Z.cjs → sessionKeyCache-BnR0ARqZ.cjs} +1 -1
  68. package/dist/{sessionKeyCache-CEJH5cHj.mjs → sessionKeyCache-D0Y_V05P.mjs} +1 -1
  69. package/dist/{sessionList-KhgmL10v.cjs → sessionList-B20S2H2v.cjs} +2 -2
  70. package/dist/{sessionList-Dd4fyhNe.mjs → sessionList-D1jByB-c.mjs} +2 -2
  71. package/dist/{sessionSummary-u-kSmPto.cjs → sessionSummary-BfkUnQew.cjs} +3 -3
  72. package/dist/{sessionSummary-CYsvjLpK.mjs → sessionSummary-HZWtQ6mW.mjs} +3 -3
  73. package/dist/{setupOfflineReconnection-BkAr6jAB.cjs → setupOfflineReconnection-C8Ll2khg.cjs} +3 -3
  74. package/dist/{setupOfflineReconnection-2m0GAIU5.mjs → setupOfflineReconnection-E5sAFKRm.mjs} +3 -3
  75. package/dist/{spawnHappyCLI-T9EQFmAR.cjs → spawnHappyCLI-BabByXDO.cjs} +1 -1
  76. package/dist/{spawnHappyCLI-CG_S7LH1.mjs → spawnHappyCLI-iEcKfItK.mjs} +1 -1
  77. package/dist/{ssh-BTVqCokU.mjs → ssh-BMawo5IG.mjs} +5 -5
  78. package/dist/{ssh-C4nI67Vq.cjs → ssh-BWLfu_Bu.cjs} +5 -5
  79. package/dist/{task-AWrQbs-h.cjs → task-CmzA8KBB.cjs} +6 -6
  80. package/dist/{task-DzqzVDDn.mjs → task-JIXYT6Ut.mjs} +6 -6
  81. package/dist/{uninstall-BRDV8214.cjs → uninstall-CRICQerq.cjs} +2 -2
  82. package/dist/{uninstall-394a0fgf.mjs → uninstall-DE2hMEa8.mjs} +2 -2
  83. package/dist/{update-DLqQQtYc.mjs → update-Bo6YcGpg.mjs} +3 -3
  84. package/dist/{update-CZIaB80S.cjs → update-DYLwPQB5.cjs} +3 -3
  85. package/package.json +1 -1
@@ -1,13 +1,13 @@
1
1
  import { randomUUID } from 'node:crypto';
2
2
  import chalk from 'chalk';
3
- import { A as ApiClient } from './api-L9jLLtI1.mjs';
4
- import { l as logger, a as readSettings } from './persistence-D2aRTiT1.mjs';
5
- import { i as initialMachineMetadata } from './run-D6oXm1Jk.mjs';
6
- import { B as BasePermissionHandler, c as createSessionMetadata, s as setupOfflineReconnection } from './setupOfflineReconnection-2m0GAIU5.mjs';
7
- import { notifyDaemonSessionStarted } from './controlClient-P5wJhu1R.mjs';
8
- import { c as createMcpContext, r as registerKillSessionHandler } from './registerKillSessionHandler-AcpB6OSk.mjs';
3
+ import { A as ApiClient } from './api-BQORFd9R.mjs';
4
+ import { l as logger, a as readSettings } from './persistence-YyHJPrEJ.mjs';
5
+ import { i as initialMachineMetadata } from './run-DEIpQXCf.mjs';
6
+ import { B as BasePermissionHandler, c as createSessionMetadata, s as setupOfflineReconnection } from './setupOfflineReconnection-E5sAFKRm.mjs';
7
+ import { notifyDaemonSessionStarted } from './controlClient-CEliu-dY.mjs';
8
+ import { c as createMcpContext, r as registerKillSessionHandler } from './registerKillSessionHandler-CaFN7Ti_.mjs';
9
9
  import { spawn } from 'node:child_process';
10
- import { n as normalizeCursorTool, C as CursorApprovalBridge } from './cursorApprovalServer-C9y5dYDE.mjs';
10
+ import { n as normalizeCursorTool, C as CursorApprovalBridge } from './cursorApprovalServer-DNOUUpbJ.mjs';
11
11
  import 'axios';
12
12
  import 'node:events';
13
13
  import 'socket.io-client';
@@ -33,23 +33,23 @@ import 'tweetnacl';
33
33
  import '@stablelib/base64';
34
34
  import 'node:readline';
35
35
  import 'expo-server-sdk';
36
- import './sessionKeyCache-CEJH5cHj.mjs';
36
+ import './sessionKeyCache-D0Y_V05P.mjs';
37
37
  import 'fs';
38
38
  import 'os';
39
39
  import 'tmp';
40
- import './auth-BoWfky2q.mjs';
40
+ import './auth-DEvweBty.mjs';
41
41
  import 'qrcode-terminal';
42
- import './browser-D9jMe1me.mjs';
42
+ import './browser-C6JpWqen.mjs';
43
43
  import 'open';
44
44
  import 'react';
45
45
  import 'ink';
46
- import './doctor-CXYhUN9A.mjs';
46
+ import './doctor-CrBPDAJR.mjs';
47
47
  import './doctor-ON7pN5G5.mjs';
48
48
  import 'ps-list';
49
49
  import 'cross-spawn';
50
- import './spawnHappyCLI-CG_S7LH1.mjs';
51
- import './deviceKeys-tcvwm4KA.mjs';
52
- import './install-Cma2vLWa.mjs';
50
+ import './spawnHappyCLI-iEcKfItK.mjs';
51
+ import './deviceKeys-CxID9XkJ.mjs';
52
+ import './install-sbpQfY_l.mjs';
53
53
  import './trimIdent-BAjmv_TG.mjs';
54
54
  import 'fastify';
55
55
  import 'fastify-type-provider-zod';
@@ -464,7 +464,7 @@ function agentMessageToAcp(message, newId) {
464
464
  }
465
465
  }
466
466
 
467
- const ALWAYS_ALLOWED_TOOLS = ["change_title", "happy__change_title", "preview_html", "happy__preview_html"];
467
+ const ALWAYS_ALLOWED_TOOLS = ["change_title", "happy__change_title", "preview_html", "happy__preview_html", "list_bugs", "happy__list_bugs"];
468
468
  const UNATTENDED_MODES = ["yolo", "safe-yolo", "bypassPermissions"];
469
469
  class CursorPermissionHandler extends BasePermissionHandler {
470
470
  /** Set by "allow all tools for this session", or by an unattended mode. */
@@ -2,14 +2,14 @@
2
2
 
3
3
  var node_crypto = require('node:crypto');
4
4
  var chalk = require('chalk');
5
- var api = require('./api-mv48hjhj.cjs');
6
- var logger = require('./persistence-B_w4o5z-.cjs');
7
- var run = require('./run-DclH1MRm.cjs');
8
- var setupOfflineReconnection = require('./setupOfflineReconnection-BkAr6jAB.cjs');
9
- var controlClient = require('./controlClient-DMEMVw4Y.cjs');
10
- var registerKillSessionHandler = require('./registerKillSessionHandler-DUrOhiGo.cjs');
5
+ var api = require('./api-lxlaOAan.cjs');
6
+ var logger = require('./persistence-ACqGUEtH.cjs');
7
+ var run = require('./run-Djrrraug.cjs');
8
+ var setupOfflineReconnection = require('./setupOfflineReconnection-C8Ll2khg.cjs');
9
+ var controlClient = require('./controlClient-BAJAvvWO.cjs');
10
+ var registerKillSessionHandler = require('./registerKillSessionHandler-BvYc-FOQ.cjs');
11
11
  var node_child_process = require('node:child_process');
12
- var cursorApprovalServer = require('./cursorApprovalServer-BoI6qBTg.cjs');
12
+ var cursorApprovalServer = require('./cursorApprovalServer-VR5ZdRqZ.cjs');
13
13
  require('axios');
14
14
  require('node:events');
15
15
  require('socket.io-client');
@@ -35,23 +35,23 @@ require('tweetnacl');
35
35
  require('@stablelib/base64');
36
36
  require('node:readline');
37
37
  require('expo-server-sdk');
38
- require('./sessionKeyCache-DYuPkw5Z.cjs');
38
+ require('./sessionKeyCache-BnR0ARqZ.cjs');
39
39
  require('fs');
40
40
  require('os');
41
41
  require('tmp');
42
- require('./auth-DfQYhTlg.cjs');
42
+ require('./auth-DO429YIh.cjs');
43
43
  require('qrcode-terminal');
44
- require('./browser-CF-r2ami.cjs');
44
+ require('./browser-ChToh76t.cjs');
45
45
  require('open');
46
46
  require('react');
47
47
  require('ink');
48
- require('./doctor-CBbj6YEl.cjs');
48
+ require('./doctor-qquYvrNu.cjs');
49
49
  require('./doctor-C08m5Z9f.cjs');
50
50
  require('ps-list');
51
51
  require('cross-spawn');
52
- require('./spawnHappyCLI-T9EQFmAR.cjs');
53
- require('./deviceKeys-CzqNNlG1.cjs');
54
- require('./install-_GiK-K1X.cjs');
52
+ require('./spawnHappyCLI-BabByXDO.cjs');
53
+ require('./deviceKeys-CFpY68YY.cjs');
54
+ require('./install-Bm5eNojk.cjs');
55
55
  require('./trimIdent-4gvk9Wk6.cjs');
56
56
  require('fastify');
57
57
  require('fastify-type-provider-zod');
@@ -466,7 +466,7 @@ function agentMessageToAcp(message, newId) {
466
466
  }
467
467
  }
468
468
 
469
- const ALWAYS_ALLOWED_TOOLS = ["change_title", "happy__change_title", "preview_html", "happy__preview_html"];
469
+ const ALWAYS_ALLOWED_TOOLS = ["change_title", "happy__change_title", "preview_html", "happy__preview_html", "list_bugs", "happy__list_bugs"];
470
470
  const UNATTENDED_MODES = ["yolo", "safe-yolo", "bypassPermissions"];
471
471
  class CursorPermissionHandler extends setupOfflineReconnection.BasePermissionHandler {
472
472
  /** Set by "allow all tools for this session", or by an unattended mode. */
@@ -1,21 +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-L9jLLtI1.mjs';
5
- import { l as logger, p as packageJson, i as isDebug, a as readSettings } from './persistence-D2aRTiT1.mjs';
6
- import { B as BasePermissionHandler, c as createSessionMetadata, s as setupOfflineReconnection } from './setupOfflineReconnection-2m0GAIU5.mjs';
7
- import { i as initialMachineMetadata, s as stopCaffeinate } from './run-D6oXm1Jk.mjs';
8
- import { M as MessageQueue2, h as hashObject, a as MessageBuffer, p as parseClear } from './downloadImage-CpnQ3aS1.mjs';
9
- import { r as registerKillSessionHandler, c as createMcpContext } from './registerKillSessionHandler-AcpB6OSk.mjs';
10
- import { notifyDaemonSessionStarted } from './controlClient-P5wJhu1R.mjs';
4
+ import { c as saveDiffRecords, h as readGeminiSessionLog, d as connectionState, A as ApiClient, G as GeminiSessionWriter, j as buildResumeContextFromSessionLog } from './api-BQORFd9R.mjs';
5
+ import { l as logger, p as packageJson, i as isDebug, a as readSettings } from './persistence-YyHJPrEJ.mjs';
6
+ import { B as BasePermissionHandler, c as createSessionMetadata, s as setupOfflineReconnection } from './setupOfflineReconnection-E5sAFKRm.mjs';
7
+ import { i as initialMachineMetadata, s as stopCaffeinate } from './run-DEIpQXCf.mjs';
8
+ import { M as MessageQueue2, h as hashObject, a as MessageBuffer, p as parseClear } from './downloadImage-DFwUJ1-t.mjs';
9
+ import { r as registerKillSessionHandler, c as createMcpContext } from './registerKillSessionHandler-CaFN7Ti_.mjs';
10
+ import { notifyDaemonSessionStarted } from './controlClient-CEliu-dY.mjs';
11
11
  import { spawn } from 'node:child_process';
12
12
  import { ndJsonStream, ClientSideConnection } from '@agentclientprotocol/sdk';
13
13
  import { d as delay } from './time-DgsBLJA_.mjs';
14
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-4qF6EX0y.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-DbXbVycg.mjs';
16
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';
17
- import { readGeminiLocalConfig, determineGeminiModel, getGeminiModelSource, getInitialGeminiModel, saveGeminiModelToConfig } from './config-BBm54d_L.mjs';
18
- import { f as formatMessageForGemini } from './formatImageMessage-ZJZza9-9.mjs';
17
+ import { readGeminiLocalConfig, determineGeminiModel, getGeminiModelSource, getInitialGeminiModel, saveGeminiModelToConfig } from './config-oC3LtNiN.mjs';
18
+ import { f as formatMessageForGemini } from './formatImageMessage-cI_AEqo1.mjs';
19
19
  import 'axios';
20
20
  import 'node:events';
21
21
  import 'socket.io-client';
@@ -38,22 +38,22 @@ import 'tweetnacl';
38
38
  import '@stablelib/base64';
39
39
  import 'node:readline';
40
40
  import 'expo-server-sdk';
41
- import './sessionKeyCache-CEJH5cHj.mjs';
41
+ import './sessionKeyCache-D0Y_V05P.mjs';
42
42
  import 'chalk';
43
43
  import 'fs';
44
44
  import 'os';
45
45
  import 'tmp';
46
- import './auth-BoWfky2q.mjs';
46
+ import './auth-DEvweBty.mjs';
47
47
  import 'qrcode-terminal';
48
- import './browser-D9jMe1me.mjs';
48
+ import './browser-C6JpWqen.mjs';
49
49
  import 'open';
50
- import './doctor-CXYhUN9A.mjs';
50
+ import './doctor-CrBPDAJR.mjs';
51
51
  import './doctor-ON7pN5G5.mjs';
52
52
  import 'ps-list';
53
53
  import 'cross-spawn';
54
- import './spawnHappyCLI-CG_S7LH1.mjs';
55
- import './deviceKeys-tcvwm4KA.mjs';
56
- import './install-Cma2vLWa.mjs';
54
+ import './spawnHappyCLI-iEcKfItK.mjs';
55
+ import './deviceKeys-CxID9XkJ.mjs';
56
+ import './install-sbpQfY_l.mjs';
57
57
  import './trimIdent-BAjmv_TG.mjs';
58
58
  import 'fastify';
59
59
  import 'fastify-type-provider-zod';
@@ -179,6 +179,11 @@ const GEMINI_TOOL_PATTERNS = [
179
179
  name: "preview_html",
180
180
  inputFields: ["html"]
181
181
  }),
182
+ createTool({
183
+ name: "list_bugs",
184
+ inputFields: ["query", "status"],
185
+ emptyInputDefault: true
186
+ }),
182
187
  createTool({
183
188
  name: "submit_bug",
184
189
  inputFields: ["description", "images"]
@@ -1569,8 +1574,8 @@ class GeminiPermissionHandler extends BasePermissionHandler {
1569
1574
  * Check if a tool should be auto-approved based on permission mode
1570
1575
  */
1571
1576
  shouldAutoApprove(toolName, toolCallId, input) {
1572
- const alwaysAutoApproveNames = ["change_title", "preview_html", "GeminiReasoning", "CodexReasoning", "think", "save_memory"];
1573
- const alwaysAutoApproveIds = ["change_title", "preview_html", "save_memory"];
1577
+ const alwaysAutoApproveNames = ["change_title", "preview_html", "list_bugs", "GeminiReasoning", "CodexReasoning", "think", "save_memory"];
1578
+ const alwaysAutoApproveIds = ["change_title", "preview_html", "list_bugs", "save_memory"];
1574
1579
  if (alwaysAutoApproveNames.some((name) => toolName.toLowerCase().includes(name.toLowerCase()))) {
1575
1580
  return true;
1576
1581
  }
@@ -3,21 +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-mv48hjhj.cjs');
7
- var logger = require('./persistence-B_w4o5z-.cjs');
8
- var setupOfflineReconnection = require('./setupOfflineReconnection-BkAr6jAB.cjs');
9
- var run = require('./run-DclH1MRm.cjs');
10
- var downloadImage = require('./downloadImage-CRkycWIl.cjs');
11
- var registerKillSessionHandler = require('./registerKillSessionHandler-DUrOhiGo.cjs');
12
- var controlClient = require('./controlClient-DMEMVw4Y.cjs');
6
+ var api = require('./api-lxlaOAan.cjs');
7
+ var logger = require('./persistence-ACqGUEtH.cjs');
8
+ var setupOfflineReconnection = require('./setupOfflineReconnection-C8Ll2khg.cjs');
9
+ var run = require('./run-Djrrraug.cjs');
10
+ var downloadImage = require('./downloadImage-Cqy7ZDq9.cjs');
11
+ var registerKillSessionHandler = require('./registerKillSessionHandler-BvYc-FOQ.cjs');
12
+ var controlClient = require('./controlClient-BAJAvvWO.cjs');
13
13
  var node_child_process = require('node:child_process');
14
14
  var sdk = require('@agentclientprotocol/sdk');
15
15
  var time = require('./time-Bj2HRkKH.cjs');
16
16
  var index = require('./index-BeKrqPYR.cjs');
17
- var loadableToolOutput = require('./loadableToolOutput-sf6E72GE.cjs');
17
+ var loadableToolOutput = require('./loadableToolOutput-BzTaDndK.cjs');
18
18
  var constants = require('./constants-E_UWYTo3.cjs');
19
- var config = require('./config-ByyclMMi.cjs');
20
- var formatImageMessage = require('./formatImageMessage-CqonqpiB.cjs');
19
+ var config = require('./config-D1pd0h7A.cjs');
20
+ var formatImageMessage = require('./formatImageMessage-DFfcusj_.cjs');
21
21
  require('axios');
22
22
  require('node:events');
23
23
  require('socket.io-client');
@@ -40,22 +40,22 @@ require('tweetnacl');
40
40
  require('@stablelib/base64');
41
41
  require('node:readline');
42
42
  require('expo-server-sdk');
43
- require('./sessionKeyCache-DYuPkw5Z.cjs');
43
+ require('./sessionKeyCache-BnR0ARqZ.cjs');
44
44
  require('chalk');
45
45
  require('fs');
46
46
  require('os');
47
47
  require('tmp');
48
- require('./auth-DfQYhTlg.cjs');
48
+ require('./auth-DO429YIh.cjs');
49
49
  require('qrcode-terminal');
50
- require('./browser-CF-r2ami.cjs');
50
+ require('./browser-ChToh76t.cjs');
51
51
  require('open');
52
- require('./doctor-CBbj6YEl.cjs');
52
+ require('./doctor-qquYvrNu.cjs');
53
53
  require('./doctor-C08m5Z9f.cjs');
54
54
  require('ps-list');
55
55
  require('cross-spawn');
56
- require('./spawnHappyCLI-T9EQFmAR.cjs');
57
- require('./deviceKeys-CzqNNlG1.cjs');
58
- require('./install-_GiK-K1X.cjs');
56
+ require('./spawnHappyCLI-BabByXDO.cjs');
57
+ require('./deviceKeys-CFpY68YY.cjs');
58
+ require('./install-Bm5eNojk.cjs');
59
59
  require('./trimIdent-4gvk9Wk6.cjs');
60
60
  require('fastify');
61
61
  require('fastify-type-provider-zod');
@@ -181,6 +181,11 @@ const GEMINI_TOOL_PATTERNS = [
181
181
  name: "preview_html",
182
182
  inputFields: ["html"]
183
183
  }),
184
+ createTool({
185
+ name: "list_bugs",
186
+ inputFields: ["query", "status"],
187
+ emptyInputDefault: true
188
+ }),
184
189
  createTool({
185
190
  name: "submit_bug",
186
191
  inputFields: ["description", "images"]
@@ -1571,8 +1576,8 @@ class GeminiPermissionHandler extends setupOfflineReconnection.BasePermissionHan
1571
1576
  * Check if a tool should be auto-approved based on permission mode
1572
1577
  */
1573
1578
  shouldAutoApprove(toolName, toolCallId, input) {
1574
- const alwaysAutoApproveNames = ["change_title", "preview_html", "GeminiReasoning", "CodexReasoning", "think", "save_memory"];
1575
- const alwaysAutoApproveIds = ["change_title", "preview_html", "save_memory"];
1579
+ const alwaysAutoApproveNames = ["change_title", "preview_html", "list_bugs", "GeminiReasoning", "CodexReasoning", "think", "save_memory"];
1580
+ const alwaysAutoApproveIds = ["change_title", "preview_html", "list_bugs", "save_memory"];
1576
1581
  if (alwaysAutoApproveNames.some((name) => toolName.toLowerCase().includes(name.toLowerCase()))) {
1577
1582
  return true;
1578
1583
  }
@@ -1,7 +1,7 @@
1
1
  import { spawn } from 'node:child_process';
2
2
  import { existsSync } from 'node:fs';
3
- import { c as claudeCliPath } from './claudeLocal-CFEXiYts.mjs';
4
- import { l as logger } from './persistence-D2aRTiT1.mjs';
3
+ import { c as claudeCliPath } from './claudeLocal-D7uEQO2e.mjs';
4
+ import { l as logger } from './persistence-YyHJPrEJ.mjs';
5
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';
@@ -2,8 +2,8 @@
2
2
 
3
3
  var node_child_process = require('node:child_process');
4
4
  var fs = require('node:fs');
5
- var claudeLocal = require('./claudeLocal-DOfhf6VK.cjs');
6
- var logger = require('./persistence-B_w4o5z-.cjs');
5
+ var claudeLocal = require('./claudeLocal-BRkqm7Dv.cjs');
6
+ var logger = require('./persistence-ACqGUEtH.cjs');
7
7
  var index = require('./index-BeKrqPYR.cjs');
8
8
  var common = require('./common-CZvSRU4p.cjs');
9
9
  require('node:path');
@@ -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-D2aRTiT1.mjs';
4
- import { s as sessionListInputSchema, r as runSessionList } from './sessionList-Dd4fyhNe.mjs';
3
+ import { c as configuration, e as encodeBase64, f as encrypt, h as decodeBase64, g as decrypt, r as readCredentials } from './persistence-YyHJPrEJ.mjs';
4
+ import { s as sessionListInputSchema, r as runSessionList } from './sessionList-D1jByB-c.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-CYsvjLpK.mjs';
7
+ import { f as fetchSessionById, a as decryptMessage, s as sessionSummaryInputSchema, r as runSessionSummary } from './sessionSummary-HZWtQ6mW.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-BoWfky2q.mjs';
16
+ import './auth-DEvweBty.mjs';
17
17
  import 'qrcode-terminal';
18
18
  import './time-DgsBLJA_.mjs';
19
- import './browser-D9jMe1me.mjs';
19
+ import './browser-C6JpWqen.mjs';
20
20
  import 'open';
21
21
  import 'react';
22
22
  import 'ink';
23
- import './sessionKeyCache-CEJH5cHj.mjs';
23
+ import './sessionKeyCache-D0Y_V05P.mjs';
24
24
 
25
25
  const PREVIEW_LIMIT = 200;
26
26
  const TAIL_MESSAGES = 5;
@@ -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-B_w4o5z-.cjs');
6
- var sessionList = require('./sessionList-KhgmL10v.cjs');
5
+ var logger = require('./persistence-ACqGUEtH.cjs');
6
+ var sessionList = require('./sessionList-B20S2H2v.cjs');
7
7
  var axios = require('axios');
8
8
  var z = require('zod');
9
- var sessionSummary = require('./sessionSummary-u-kSmPto.cjs');
9
+ var sessionSummary = require('./sessionSummary-BfkUnQew.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-DfQYhTlg.cjs');
18
+ require('./auth-DO429YIh.cjs');
19
19
  require('qrcode-terminal');
20
20
  require('./time-Bj2HRkKH.cjs');
21
- require('./browser-CF-r2ami.cjs');
21
+ require('./browser-ChToh76t.cjs');
22
22
  require('open');
23
23
  require('react');
24
24
  require('ink');
25
- require('./sessionKeyCache-DYuPkw5Z.cjs');
25
+ require('./sessionKeyCache-BnR0ARqZ.cjs');
26
26
 
27
27
  const PREVIEW_LIMIT = 200;
28
28
  const TAIL_MESSAGES = 5;
@@ -1,6 +1,6 @@
1
1
  import chalk from 'chalk';
2
- import { r as readCredentials } from './persistence-D2aRTiT1.mjs';
3
- import { r as runSessionSummary } from './sessionSummary-CYsvjLpK.mjs';
2
+ import { r as readCredentials } from './persistence-YyHJPrEJ.mjs';
3
+ import { r as runSessionSummary } from './sessionSummary-HZWtQ6mW.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-BoWfky2q.mjs';
13
+ import './auth-DEvweBty.mjs';
14
14
  import 'qrcode-terminal';
15
15
  import './time-DgsBLJA_.mjs';
16
- import './browser-D9jMe1me.mjs';
16
+ import './browser-C6JpWqen.mjs';
17
17
  import 'open';
18
18
  import 'react';
19
19
  import 'ink';
20
- import './sessionKeyCache-CEJH5cHj.mjs';
20
+ import './sessionKeyCache-D0Y_V05P.mjs';
21
21
 
22
22
  function printSessionHelp() {
23
23
  console.log(`
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  var chalk = require('chalk');
4
- var logger = require('./persistence-B_w4o5z-.cjs');
5
- var sessionSummary = require('./sessionSummary-u-kSmPto.cjs');
4
+ var logger = require('./persistence-ACqGUEtH.cjs');
5
+ var sessionSummary = require('./sessionSummary-BfkUnQew.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-DfQYhTlg.cjs');
15
+ require('./auth-DO429YIh.cjs');
16
16
  require('qrcode-terminal');
17
17
  require('./time-Bj2HRkKH.cjs');
18
- require('./browser-CF-r2ami.cjs');
18
+ require('./browser-ChToh76t.cjs');
19
19
  require('open');
20
20
  require('react');
21
21
  require('ink');
22
- require('./sessionKeyCache-DYuPkw5Z.cjs');
22
+ require('./sessionKeyCache-BnR0ARqZ.cjs');
23
23
 
24
24
  function printSessionHelp() {
25
25
  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-B_w4o5z-.cjs');
6
+ var logger = require('./persistence-ACqGUEtH.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-D2aRTiT1.mjs';
4
+ import { c as configuration, j as encryptWithDataKey, e as encodeBase64, k as decryptWithDataKey, h as decodeBase64 } from './persistence-YyHJPrEJ.mjs';
5
5
 
6
6
  function keyPath(sessionId) {
7
7
  return join(configuration.sessionKeysDir, `${sessionId}.key`);
@@ -2,8 +2,8 @@
2
2
 
3
3
  var axios = require('axios');
4
4
  var z = require('zod');
5
- var logger = require('./persistence-B_w4o5z-.cjs');
6
- var sessionSummary = require('./sessionSummary-u-kSmPto.cjs');
5
+ var logger = require('./persistence-ACqGUEtH.cjs');
6
+ var sessionSummary = require('./sessionSummary-BfkUnQew.cjs');
7
7
 
8
8
  const sessionListInputSchema = {
9
9
  status: z.z.enum(["active", "archived", "all"]).optional().describe("Filter by session state. Default: all."),
@@ -1,7 +1,7 @@
1
1
  import axios from 'axios';
2
2
  import { z } from 'zod';
3
- import { c as configuration } from './persistence-D2aRTiT1.mjs';
4
- import { d as decryptSessionRow } from './sessionSummary-CYsvjLpK.mjs';
3
+ import { c as configuration } from './persistence-YyHJPrEJ.mjs';
4
+ import { d as decryptSessionRow } from './sessionSummary-HZWtQ6mW.mjs';
5
5
 
6
6
  const sessionListInputSchema = {
7
7
  status: 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-B_w4o5z-.cjs');
6
- var auth = require('./auth-DfQYhTlg.cjs');
7
- var sessionKeyCache = require('./sessionKeyCache-DYuPkw5Z.cjs');
5
+ var logger = require('./persistence-ACqGUEtH.cjs');
6
+ var auth = require('./auth-DO429YIh.cjs');
7
+ var sessionKeyCache = require('./sessionKeyCache-BnR0ARqZ.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-D2aRTiT1.mjs';
4
- import { decryptWithEphemeralKey } from './auth-BoWfky2q.mjs';
5
- import { r as readCachedSessionKey } from './sessionKeyCache-CEJH5cHj.mjs';
3
+ import { q as decryptLegacy, h as decodeBase64, k as decryptWithDataKey, c as configuration } from './persistence-YyHJPrEJ.mjs';
4
+ import { decryptWithEphemeralKey } from './auth-DEvweBty.mjs';
5
+ import { r as readCachedSessionKey } from './sessionKeyCache-D0Y_V05P.mjs';
6
6
 
7
7
  function resolveSessionKey(credentials, dataEncryptionKey, sessionId) {
8
8
  if (credentials.encryption.type === "legacy") {
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var logger = require('./persistence-B_w4o5z-.cjs');
3
+ var logger = require('./persistence-ACqGUEtH.cjs');
4
4
  var fs = require('node:fs');
5
5
  var os = require('node:os');
6
6
  var path = require('node:path');
7
7
  var projectPath = require('./projectPath-ChLhdOyt.cjs');
8
- var api = require('./api-mv48hjhj.cjs');
9
- var registerKillSessionHandler = require('./registerKillSessionHandler-DUrOhiGo.cjs');
8
+ var api = require('./api-lxlaOAan.cjs');
9
+ var registerKillSessionHandler = require('./registerKillSessionHandler-BvYc-FOQ.cjs');
10
10
 
11
11
  class BasePermissionHandler {
12
12
  pendingRequests = /* @__PURE__ */ new Map();
@@ -1,10 +1,10 @@
1
- import { l as logger, c as configuration, p as packageJson } from './persistence-D2aRTiT1.mjs';
1
+ import { l as logger, c as configuration, p as packageJson } from './persistence-YyHJPrEJ.mjs';
2
2
  import { readFileSync, existsSync, readdirSync } from 'node:fs';
3
3
  import os, { homedir } from 'node:os';
4
4
  import { join, basename, dirname } from 'node:path';
5
5
  import { p as projectPath } from './projectPath-BTBIMB57.mjs';
6
- import { r as resolveToolsDir, b as startOfflineReconnection } from './api-L9jLLtI1.mjs';
7
- import { d as detectGitWorktree } from './registerKillSessionHandler-AcpB6OSk.mjs';
6
+ import { r as resolveToolsDir, b as startOfflineReconnection } from './api-BQORFd9R.mjs';
7
+ import { d as detectGitWorktree } from './registerKillSessionHandler-CaFN7Ti_.mjs';
8
8
 
9
9
  class BasePermissionHandler {
10
10
  pendingRequests = /* @__PURE__ */ new Map();
@@ -3,7 +3,7 @@
3
3
  var child_process = require('child_process');
4
4
  var path = require('node:path');
5
5
  var projectPath = require('./projectPath-ChLhdOyt.cjs');
6
- var logger = require('./persistence-B_w4o5z-.cjs');
6
+ var logger = require('./persistence-ACqGUEtH.cjs');
7
7
  var fs = require('node:fs');
8
8
 
9
9
  let cachedRuntime = null;
@@ -1,7 +1,7 @@
1
1
  import { spawn } from 'child_process';
2
2
  import { join } from 'node:path';
3
3
  import { p as projectPath } from './projectPath-BTBIMB57.mjs';
4
- import { l as logger } from './persistence-D2aRTiT1.mjs';
4
+ import { l as logger } from './persistence-YyHJPrEJ.mjs';
5
5
  import { existsSync } from 'node:fs';
6
6
 
7
7
  let cachedRuntime = null;
@@ -1,7 +1,7 @@
1
1
  import { io } from 'socket.io-client';
2
- import { c as configuration, g as decrypt, h as decodeBase64, e as encodeBase64, f as encrypt } from './persistence-D2aRTiT1.mjs';
3
- import { e as ensureDeviceKey, l as listDevices, r as readCachedDeviceNames, a as readCachedDeviceKey, p as pruneDeviceAliases, d as deviceExec } from './deviceKeys-tcvwm4KA.mjs';
4
- import { execOnDeviceViaDaemon } from './controlClient-P5wJhu1R.mjs';
2
+ import { c as configuration, g as decrypt, h as decodeBase64, e as encodeBase64, f as encrypt } from './persistence-YyHJPrEJ.mjs';
3
+ import { e as ensureDeviceKey, l as listDevices, r as readCachedDeviceNames, a as readCachedDeviceKey, p as pruneDeviceAliases, d as deviceExec } from './deviceKeys-CxID9XkJ.mjs';
4
+ import { execOnDeviceViaDaemon } from './controlClient-CEliu-dY.mjs';
5
5
  import 'node:fs/promises';
6
6
  import 'node:fs';
7
7
  import 'node:os';
@@ -12,10 +12,10 @@ import 'tweetnacl';
12
12
  import 'chalk';
13
13
  import 'fs';
14
14
  import 'axios';
15
- import './auth-BoWfky2q.mjs';
15
+ import './auth-DEvweBty.mjs';
16
16
  import 'qrcode-terminal';
17
17
  import './time-DgsBLJA_.mjs';
18
- import './browser-D9jMe1me.mjs';
18
+ import './browser-C6JpWqen.mjs';
19
19
  import 'open';
20
20
  import 'react';
21
21
  import 'ink';
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
3
  var socket_ioClient = require('socket.io-client');
4
- var logger = require('./persistence-B_w4o5z-.cjs');
5
- var deviceKeys = require('./deviceKeys-CzqNNlG1.cjs');
6
- var controlClient = require('./controlClient-DMEMVw4Y.cjs');
4
+ var logger = require('./persistence-ACqGUEtH.cjs');
5
+ var deviceKeys = require('./deviceKeys-CFpY68YY.cjs');
6
+ var controlClient = require('./controlClient-BAJAvvWO.cjs');
7
7
  require('node:fs/promises');
8
8
  require('node:fs');
9
9
  require('node:os');
@@ -14,10 +14,10 @@ require('tweetnacl');
14
14
  require('chalk');
15
15
  require('fs');
16
16
  require('axios');
17
- require('./auth-DfQYhTlg.cjs');
17
+ require('./auth-DO429YIh.cjs');
18
18
  require('qrcode-terminal');
19
19
  require('./time-Bj2HRkKH.cjs');
20
- require('./browser-CF-r2ami.cjs');
20
+ require('./browser-ChToh76t.cjs');
21
21
  require('open');
22
22
  require('react');
23
23
  require('ink');