@zonease/happy 0.6.58 → 0.6.60

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-B9shq-xZ.mjs → api--fA9drop.mjs} +2 -2
  2. package/dist/{api-ByiU9yXy.cjs → api-DwiOsTuU.cjs} +3 -3
  3. package/dist/{auth-DnRtIM3d.mjs → auth-B1Qy9v3F.mjs} +2 -2
  4. package/dist/{auth-DnFrlXqp.cjs → auth-D2z0WId5.cjs} +2 -2
  5. package/dist/{auth-BG6e5Uem.cjs → auth-TOfB7aIs.cjs} +4 -4
  6. package/dist/{auth-BRh7v1qh.mjs → auth-ZsDiF0iS.mjs} +4 -4
  7. package/dist/{browser-BeERlPhN.mjs → browser-ChGfY23u.mjs} +1 -1
  8. package/dist/{browser-DjONS-B5.cjs → browser-DPXZcBi-.cjs} +1 -1
  9. package/dist/{claudeLocal-CuHH7tvQ.cjs → claudeLocal-BtbtPj3C.cjs} +1 -1
  10. package/dist/{claudeLocal-CYtFfvTZ.mjs → claudeLocal-Cs-BIAw0.mjs} +1 -1
  11. package/dist/codex/happyMcpStdioBridge.cjs +9 -0
  12. package/dist/codex/happyMcpStdioBridge.mjs +9 -0
  13. package/dist/{config-BHwOLuFT.cjs → config-BHH3wR9_.cjs} +1 -1
  14. package/dist/{config-BkUfgaM5.mjs → config-Bgg5VgXT.mjs} +1 -1
  15. package/dist/{connect-B9rWe2GY.cjs → connect-BqLN8m_j.cjs} +4 -4
  16. package/dist/{connect-BoTU3RCi.mjs → connect-CYcS7eHZ.mjs} +4 -4
  17. package/dist/{controlClient-BuKaeD-y.mjs → controlClient-COoWtF6Y.mjs} +1 -1
  18. package/dist/{controlClient-BqCwo6Pm.cjs → controlClient-DMxcJC-j.cjs} +1 -1
  19. package/dist/{cursorApprovalHook-BADH_Ul1.mjs → cursorApprovalHook-BFXFD77c.mjs} +2 -2
  20. package/dist/{cursorApprovalHook-Ckdd65co.cjs → cursorApprovalHook-DcyH8JX5.cjs} +2 -2
  21. package/dist/{cursorApprovalServer--suu8J98.cjs → cursorApprovalServer-dAADRfXB.cjs} +1 -1
  22. package/dist/{cursorApprovalServer-BeTT3FNN.mjs → cursorApprovalServer-mFYKPgz8.mjs} +1 -1
  23. package/dist/{deviceKeys-CSfs6juX.cjs → deviceKeys-Ttjgv9qm.cjs} +2 -2
  24. package/dist/{deviceKeys-DSXcQgLf.mjs → deviceKeys-chmGamFc.mjs} +2 -2
  25. package/dist/{doctor-C77QV3rd.mjs → doctor-BxY-J5MM.mjs} +2 -2
  26. package/dist/{doctor-CxWWwoLX.cjs → doctor-CX5edsk3.cjs} +2 -2
  27. package/dist/{downloadImage-C3FHGZDr.mjs → downloadImage-DJ0qW4xQ.mjs} +1 -1
  28. package/dist/{downloadImage-DZBxkdwy.cjs → downloadImage-DvHbBiN2.cjs} +1 -1
  29. package/dist/{enroll-D5V8LH6P.mjs → enroll-Cq4SU81g.mjs} +3 -3
  30. package/dist/{enroll-BjZCaXT4.cjs → enroll-CrHKoQhQ.cjs} +3 -3
  31. package/dist/{evidence-DbFF210m.cjs → evidence-BaKd7bX-.cjs} +1 -1
  32. package/dist/{evidence-DL-E4Qfd.mjs → evidence-Uz0vrlbA.mjs} +1 -1
  33. package/dist/{formatImageMessage-C6glTFta.mjs → formatImageMessage-Ck_SVHgI.mjs} +1 -1
  34. package/dist/{formatImageMessage-CHjdeDGM.cjs → formatImageMessage-DE96y8-H.cjs} +1 -1
  35. package/dist/index.cjs +46 -46
  36. package/dist/index.mjs +46 -46
  37. package/dist/{install-BPCWw2Vc.mjs → install-BZRHw4E1.mjs} +2 -2
  38. package/dist/{install-DbRGuSWv.mjs → install-CYdjwe-t.mjs} +1 -1
  39. package/dist/{install-Td8RvuEV.cjs → install-Ce6JldUY.cjs} +1 -1
  40. package/dist/{install-9E-3IeF3.cjs → install-PYgh1lAM.cjs} +2 -2
  41. package/dist/lib.cjs +3 -3
  42. package/dist/lib.mjs +3 -3
  43. package/dist/{loadableToolOutput-C0tAWFJM.mjs → loadableToolOutput-D5HoFtRR.mjs} +2 -2
  44. package/dist/{loadableToolOutput-C5EQglQm.cjs → loadableToolOutput-tPvkyCoE.cjs} +2 -2
  45. package/dist/{persistence-50wmDoBE.cjs → persistence-CZptiAaZ.cjs} +1 -1
  46. package/dist/{persistence-Da0uhblK.mjs → persistence-CcOX4WLf.mjs} +1 -1
  47. package/dist/{push-Bbf139Sy.cjs → push-BAENK6I6.cjs} +6 -6
  48. package/dist/{push-BR82p4YC.mjs → push-BSoeS633.mjs} +6 -6
  49. package/dist/{registerKillSessionHandler-CxHjAcQu.mjs → registerKillSessionHandler-CKWBWTcY.mjs} +62 -7
  50. package/dist/{registerKillSessionHandler-CHPzUrtO.cjs → registerKillSessionHandler-DIFqoCCd.cjs} +62 -7
  51. package/dist/{run-C6hmGRwH.cjs → run-38zHldyV.cjs} +9 -9
  52. package/dist/{run-DjaUrH7x.mjs → run-Cjw5klTK.mjs} +9 -9
  53. package/dist/{runClaude-CKFHv0nI.mjs → runClaude-B_CIlNN4.mjs} +16 -16
  54. package/dist/{runClaude-BR15B5bw.cjs → runClaude-CBEEtvJr.cjs} +17 -17
  55. package/dist/{runCodex-BAlT1EGt.mjs → runCodex-BDwhTF1q.mjs} +16 -16
  56. package/dist/{runCodex-BpVY3LQi.cjs → runCodex-C7lK__L-.cjs} +16 -16
  57. package/dist/{runCursor-BUx34tPB.cjs → runCursor--yWGI0To.cjs} +15 -15
  58. package/dist/{runCursor-Dj3orwMw.mjs → runCursor-P37XaTHj.mjs} +15 -15
  59. package/dist/{runGemini-SEsV1VfH.mjs → runGemini-2371Fh4z.mjs} +22 -18
  60. package/dist/{runGemini-Bdzns1qW.cjs → runGemini-eqHuZV15.cjs} +22 -18
  61. package/dist/{runOneShot-CK10IG0U.cjs → runOneShot-B9isSc3w.cjs} +2 -2
  62. package/dist/{runOneShot-BTHgA1q4.mjs → runOneShot-BPrFFCeI.mjs} +2 -2
  63. package/dist/{serve-BErPXI_R.mjs → serve-C_lMTDXi.mjs} +7 -7
  64. package/dist/{serve-BHe5QkCA.cjs → serve-DaL6Qn8d.cjs} +7 -7
  65. package/dist/{session-FttaWXf3.cjs → session-BulXwxs1.cjs} +6 -6
  66. package/dist/{session-CZyeSNaA.mjs → session-hdOJQKlO.mjs} +6 -6
  67. package/dist/{sessionDecrypt-BsOlrqRs.mjs → sessionDecrypt-BQnoJy4t.mjs} +3 -3
  68. package/dist/{sessionDecrypt-DWm_k5dq.cjs → sessionDecrypt-Bscb-Kfw.cjs} +3 -3
  69. package/dist/{sessionKeyCache-CmORI8jN.cjs → sessionKeyCache-By8_OSDl.cjs} +1 -1
  70. package/dist/{sessionKeyCache-BBzsFcnN.mjs → sessionKeyCache-DxPdM8uz.mjs} +1 -1
  71. package/dist/{sessionList-D_Y-1Cir.mjs → sessionList-BEBpDXjL.mjs} +2 -2
  72. package/dist/{sessionList-lxpW_76R.cjs → sessionList-BoyXqg6y.cjs} +2 -2
  73. package/dist/{sessionSummary-YLlUeUre.mjs → sessionSummary-C9zR15PT.mjs} +2 -2
  74. package/dist/{sessionSummary-BP2T8GHr.cjs → sessionSummary-PwepM55y.cjs} +2 -2
  75. package/dist/{setupOfflineReconnection-CldeNWUW.cjs → setupOfflineReconnection-B_vI2UBK.cjs} +11 -6
  76. package/dist/{setupOfflineReconnection-B4aU1Nix.mjs → setupOfflineReconnection-HnT3f6i6.mjs} +11 -6
  77. package/dist/{spawnHappyCLI-BNUBk0w5.cjs → spawnHappyCLI-C3WkMK2n.cjs} +1 -1
  78. package/dist/{spawnHappyCLI-Cv2VARTw.mjs → spawnHappyCLI-CgVBVqUH.mjs} +1 -1
  79. package/dist/{ssh-DXOMR-gb.cjs → ssh-Cfv2KOik.cjs} +5 -5
  80. package/dist/{ssh-CBvM1RVJ.mjs → ssh-CirivsXx.mjs} +5 -5
  81. package/dist/{task-DrX3H3_Y.cjs → task-CdYJn3YO.cjs} +7 -7
  82. package/dist/{task-CQonykFe.mjs → task-D8bPWquQ.mjs} +7 -7
  83. package/dist/{uninstall-BijW1rTR.mjs → uninstall-BNC1O3n5.mjs} +2 -2
  84. package/dist/{uninstall-CPQjax_f.cjs → uninstall-C4s6P4_x.cjs} +2 -2
  85. package/dist/{update-DaJjoz93.mjs → update--zUf8Pu-.mjs} +3 -3
  86. package/dist/{update-g3D05Tvv.cjs → update-CY67NiY0.cjs} +3 -3
  87. package/package.json +1 -1
@@ -2,18 +2,18 @@
2
2
 
3
3
  var ink = require('ink');
4
4
  var React = require('react');
5
- var api = require('./api-ByiU9yXy.cjs');
5
+ var api = require('./api-DwiOsTuU.cjs');
6
6
  var node_child_process = require('node:child_process');
7
7
  var node_readline = require('node:readline');
8
- var logger = require('./persistence-50wmDoBE.cjs');
9
- var setupOfflineReconnection = require('./setupOfflineReconnection-CldeNWUW.cjs');
10
- var loadableToolOutput = require('./loadableToolOutput-C5EQglQm.cjs');
8
+ var logger = require('./persistence-CZptiAaZ.cjs');
9
+ var setupOfflineReconnection = require('./setupOfflineReconnection-B_vI2UBK.cjs');
10
+ var loadableToolOutput = require('./loadableToolOutput-tPvkyCoE.cjs');
11
11
  var node_crypto = require('node:crypto');
12
- var downloadImage = require('./downloadImage-DZBxkdwy.cjs');
13
- var run = require('./run-C6hmGRwH.cjs');
14
- var registerKillSessionHandler = require('./registerKillSessionHandler-CHPzUrtO.cjs');
12
+ var downloadImage = require('./downloadImage-DvHbBiN2.cjs');
13
+ var run = require('./run-38zHldyV.cjs');
14
+ var registerKillSessionHandler = require('./registerKillSessionHandler-DIFqoCCd.cjs');
15
15
  var constants = require('./constants-E_UWYTo3.cjs');
16
- var controlClient = require('./controlClient-BqCwo6Pm.cjs');
16
+ var controlClient = require('./controlClient-DMxcJC-j.cjs');
17
17
  var node_util = require('node:util');
18
18
  var promises = require('node:fs/promises');
19
19
  var path = require('node:path');
@@ -38,7 +38,7 @@ require('crypto');
38
38
  require('tweetnacl');
39
39
  require('@stablelib/base64');
40
40
  require('expo-server-sdk');
41
- require('./sessionKeyCache-CmORI8jN.cjs');
41
+ require('./sessionKeyCache-By8_OSDl.cjs');
42
42
  require('chalk');
43
43
  require('fs');
44
44
  require('os');
@@ -46,15 +46,15 @@ require('tmp');
46
46
  require('./doctor-C08m5Z9f.cjs');
47
47
  require('ps-list');
48
48
  require('cross-spawn');
49
- require('./sessionDecrypt-DWm_k5dq.cjs');
50
- require('./auth-DnFrlXqp.cjs');
49
+ require('./sessionDecrypt-Bscb-Kfw.cjs');
50
+ require('./auth-D2z0WId5.cjs');
51
51
  require('qrcode-terminal');
52
- require('./browser-DjONS-B5.cjs');
52
+ require('./browser-DPXZcBi-.cjs');
53
53
  require('open');
54
- require('./doctor-CxWWwoLX.cjs');
55
- require('./spawnHappyCLI-BNUBk0w5.cjs');
56
- require('./deviceKeys-CSfs6juX.cjs');
57
- require('./install-Td8RvuEV.cjs');
54
+ require('./doctor-CX5edsk3.cjs');
55
+ require('./spawnHappyCLI-C3WkMK2n.cjs');
56
+ require('./deviceKeys-Ttjgv9qm.cjs');
57
+ require('./install-Ce6JldUY.cjs');
58
58
  require('./trimIdent-4gvk9Wk6.cjs');
59
59
  require('fastify');
60
60
  require('fastify-type-provider-zod');
@@ -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-ByiU9yXy.cjs');
6
- var logger = require('./persistence-50wmDoBE.cjs');
7
- var run = require('./run-C6hmGRwH.cjs');
8
- var setupOfflineReconnection = require('./setupOfflineReconnection-CldeNWUW.cjs');
9
- var controlClient = require('./controlClient-BqCwo6Pm.cjs');
10
- var registerKillSessionHandler = require('./registerKillSessionHandler-CHPzUrtO.cjs');
5
+ var api = require('./api-DwiOsTuU.cjs');
6
+ var logger = require('./persistence-CZptiAaZ.cjs');
7
+ var run = require('./run-38zHldyV.cjs');
8
+ var setupOfflineReconnection = require('./setupOfflineReconnection-B_vI2UBK.cjs');
9
+ var controlClient = require('./controlClient-DMxcJC-j.cjs');
10
+ var registerKillSessionHandler = require('./registerKillSessionHandler-DIFqoCCd.cjs');
11
11
  var node_child_process = require('node:child_process');
12
- var cursorApprovalServer = require('./cursorApprovalServer--suu8J98.cjs');
12
+ var cursorApprovalServer = require('./cursorApprovalServer-dAADRfXB.cjs');
13
13
  require('axios');
14
14
  require('node:events');
15
15
  require('socket.io-client');
@@ -35,24 +35,24 @@ require('crypto');
35
35
  require('tweetnacl');
36
36
  require('@stablelib/base64');
37
37
  require('expo-server-sdk');
38
- require('./sessionKeyCache-CmORI8jN.cjs');
38
+ require('./sessionKeyCache-By8_OSDl.cjs');
39
39
  require('fs');
40
40
  require('os');
41
41
  require('tmp');
42
42
  require('./doctor-C08m5Z9f.cjs');
43
43
  require('ps-list');
44
44
  require('cross-spawn');
45
- require('./sessionDecrypt-DWm_k5dq.cjs');
46
- require('./auth-DnFrlXqp.cjs');
45
+ require('./sessionDecrypt-Bscb-Kfw.cjs');
46
+ require('./auth-D2z0WId5.cjs');
47
47
  require('qrcode-terminal');
48
- require('./browser-DjONS-B5.cjs');
48
+ require('./browser-DPXZcBi-.cjs');
49
49
  require('open');
50
50
  require('react');
51
51
  require('ink');
52
- require('./doctor-CxWWwoLX.cjs');
53
- require('./spawnHappyCLI-BNUBk0w5.cjs');
54
- require('./deviceKeys-CSfs6juX.cjs');
55
- require('./install-Td8RvuEV.cjs');
52
+ require('./doctor-CX5edsk3.cjs');
53
+ require('./spawnHappyCLI-C3WkMK2n.cjs');
54
+ require('./deviceKeys-Ttjgv9qm.cjs');
55
+ require('./install-Ce6JldUY.cjs');
56
56
  require('./trimIdent-4gvk9Wk6.cjs');
57
57
  require('fastify');
58
58
  require('fastify-type-provider-zod');
@@ -1,13 +1,13 @@
1
1
  import { randomUUID } from 'node:crypto';
2
2
  import chalk from 'chalk';
3
- import { A as ApiClient } from './api-B9shq-xZ.mjs';
4
- import { l as logger, a as readSettings } from './persistence-Da0uhblK.mjs';
5
- import { i as initialMachineMetadata } from './run-DjaUrH7x.mjs';
6
- import { B as BasePermissionHandler, c as createSessionMetadata, s as setupOfflineReconnection } from './setupOfflineReconnection-B4aU1Nix.mjs';
7
- import { notifyDaemonSessionStarted } from './controlClient-BuKaeD-y.mjs';
8
- import { c as createMcpContext, r as registerKillSessionHandler } from './registerKillSessionHandler-CxHjAcQu.mjs';
3
+ import { A as ApiClient } from './api--fA9drop.mjs';
4
+ import { l as logger, a as readSettings } from './persistence-CcOX4WLf.mjs';
5
+ import { i as initialMachineMetadata } from './run-Cjw5klTK.mjs';
6
+ import { B as BasePermissionHandler, c as createSessionMetadata, s as setupOfflineReconnection } from './setupOfflineReconnection-HnT3f6i6.mjs';
7
+ import { notifyDaemonSessionStarted } from './controlClient-COoWtF6Y.mjs';
8
+ import { c as createMcpContext, r as registerKillSessionHandler } from './registerKillSessionHandler-CKWBWTcY.mjs';
9
9
  import { spawn } from 'node:child_process';
10
- import { n as normalizeCursorTool, C as CursorApprovalBridge } from './cursorApprovalServer-BeTT3FNN.mjs';
10
+ import { n as normalizeCursorTool, C as CursorApprovalBridge } from './cursorApprovalServer-mFYKPgz8.mjs';
11
11
  import 'axios';
12
12
  import 'node:events';
13
13
  import 'socket.io-client';
@@ -33,24 +33,24 @@ import 'crypto';
33
33
  import 'tweetnacl';
34
34
  import '@stablelib/base64';
35
35
  import 'expo-server-sdk';
36
- import './sessionKeyCache-BBzsFcnN.mjs';
36
+ import './sessionKeyCache-DxPdM8uz.mjs';
37
37
  import 'fs';
38
38
  import 'os';
39
39
  import 'tmp';
40
40
  import './doctor-ON7pN5G5.mjs';
41
41
  import 'ps-list';
42
42
  import 'cross-spawn';
43
- import './sessionDecrypt-BsOlrqRs.mjs';
44
- import './auth-DnRtIM3d.mjs';
43
+ import './sessionDecrypt-BQnoJy4t.mjs';
44
+ import './auth-B1Qy9v3F.mjs';
45
45
  import 'qrcode-terminal';
46
- import './browser-BeERlPhN.mjs';
46
+ import './browser-ChGfY23u.mjs';
47
47
  import 'open';
48
48
  import 'react';
49
49
  import 'ink';
50
- import './doctor-C77QV3rd.mjs';
51
- import './spawnHappyCLI-Cv2VARTw.mjs';
52
- import './deviceKeys-DSXcQgLf.mjs';
53
- import './install-DbRGuSWv.mjs';
50
+ import './doctor-BxY-J5MM.mjs';
51
+ import './spawnHappyCLI-CgVBVqUH.mjs';
52
+ import './deviceKeys-chmGamFc.mjs';
53
+ import './install-CYdjwe-t.mjs';
54
54
  import './trimIdent-BAjmv_TG.mjs';
55
55
  import 'fastify';
56
56
  import 'fastify-type-provider-zod';
@@ -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 { h as saveDiffRecords, n as readGeminiSessionLog, m as connectionState, A as ApiClient, G as GeminiSessionWriter, o as buildResumeContextFromSessionLog } from './api-B9shq-xZ.mjs';
5
- import { l as logger, p as packageJson, i as isDebug, a as readSettings } from './persistence-Da0uhblK.mjs';
6
- import { B as BasePermissionHandler, c as createSessionMetadata, s as setupOfflineReconnection } from './setupOfflineReconnection-B4aU1Nix.mjs';
7
- import { i as initialMachineMetadata, s as stopCaffeinate } from './run-DjaUrH7x.mjs';
8
- import { M as MessageQueue2, h as hashObject, a as MessageBuffer, p as parseClear } from './downloadImage-C3FHGZDr.mjs';
9
- import { r as registerKillSessionHandler, c as createMcpContext } from './registerKillSessionHandler-CxHjAcQu.mjs';
10
- import { notifyDaemonSessionStarted } from './controlClient-BuKaeD-y.mjs';
4
+ import { h as saveDiffRecords, n as readGeminiSessionLog, m as connectionState, A as ApiClient, G as GeminiSessionWriter, o as buildResumeContextFromSessionLog } from './api--fA9drop.mjs';
5
+ import { l as logger, p as packageJson, i as isDebug, a as readSettings } from './persistence-CcOX4WLf.mjs';
6
+ import { B as BasePermissionHandler, c as createSessionMetadata, s as setupOfflineReconnection } from './setupOfflineReconnection-HnT3f6i6.mjs';
7
+ import { i as initialMachineMetadata, s as stopCaffeinate } from './run-Cjw5klTK.mjs';
8
+ import { M as MessageQueue2, h as hashObject, a as MessageBuffer, p as parseClear } from './downloadImage-DJ0qW4xQ.mjs';
9
+ import { r as registerKillSessionHandler, c as createMcpContext } from './registerKillSessionHandler-CKWBWTcY.mjs';
10
+ import { notifyDaemonSessionStarted } from './controlClient-COoWtF6Y.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-7P6T8CE4.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-C0tAWFJM.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-D5HoFtRR.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-BkUfgaM5.mjs';
18
- import { f as formatMessageForGemini } from './formatImageMessage-C6glTFta.mjs';
17
+ import { readGeminiLocalConfig, determineGeminiModel, getGeminiModelSource, getInitialGeminiModel, saveGeminiModelToConfig } from './config-Bgg5VgXT.mjs';
18
+ import { f as formatMessageForGemini } from './formatImageMessage-Ck_SVHgI.mjs';
19
19
  import 'axios';
20
20
  import 'node:events';
21
21
  import 'socket.io-client';
@@ -38,7 +38,7 @@ import 'crypto';
38
38
  import 'tweetnacl';
39
39
  import '@stablelib/base64';
40
40
  import 'expo-server-sdk';
41
- import './sessionKeyCache-BBzsFcnN.mjs';
41
+ import './sessionKeyCache-DxPdM8uz.mjs';
42
42
  import 'chalk';
43
43
  import 'fs';
44
44
  import 'os';
@@ -46,15 +46,15 @@ import 'tmp';
46
46
  import './doctor-ON7pN5G5.mjs';
47
47
  import 'ps-list';
48
48
  import 'cross-spawn';
49
- import './sessionDecrypt-BsOlrqRs.mjs';
50
- import './auth-DnRtIM3d.mjs';
49
+ import './sessionDecrypt-BQnoJy4t.mjs';
50
+ import './auth-B1Qy9v3F.mjs';
51
51
  import 'qrcode-terminal';
52
- import './browser-BeERlPhN.mjs';
52
+ import './browser-ChGfY23u.mjs';
53
53
  import 'open';
54
- import './doctor-C77QV3rd.mjs';
55
- import './spawnHappyCLI-Cv2VARTw.mjs';
56
- import './deviceKeys-DSXcQgLf.mjs';
57
- import './install-DbRGuSWv.mjs';
54
+ import './doctor-BxY-J5MM.mjs';
55
+ import './spawnHappyCLI-CgVBVqUH.mjs';
56
+ import './deviceKeys-chmGamFc.mjs';
57
+ import './install-CYdjwe-t.mjs';
58
58
  import './trimIdent-BAjmv_TG.mjs';
59
59
  import 'fastify';
60
60
  import 'fastify-type-provider-zod';
@@ -205,6 +205,10 @@ const GEMINI_TOOL_PATTERNS = [
205
205
  name: "set_bug_status",
206
206
  inputFields: ["bug", "status"]
207
207
  }),
208
+ createTool({
209
+ name: "comment_bug",
210
+ inputFields: ["bug", "body", "images"]
211
+ }),
208
212
  // Gemini built-in
209
213
  createTool({
210
214
  name: "save_memory",
@@ -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-ByiU9yXy.cjs');
7
- var logger = require('./persistence-50wmDoBE.cjs');
8
- var setupOfflineReconnection = require('./setupOfflineReconnection-CldeNWUW.cjs');
9
- var run = require('./run-C6hmGRwH.cjs');
10
- var downloadImage = require('./downloadImage-DZBxkdwy.cjs');
11
- var registerKillSessionHandler = require('./registerKillSessionHandler-CHPzUrtO.cjs');
12
- var controlClient = require('./controlClient-BqCwo6Pm.cjs');
6
+ var api = require('./api-DwiOsTuU.cjs');
7
+ var logger = require('./persistence-CZptiAaZ.cjs');
8
+ var setupOfflineReconnection = require('./setupOfflineReconnection-B_vI2UBK.cjs');
9
+ var run = require('./run-38zHldyV.cjs');
10
+ var downloadImage = require('./downloadImage-DvHbBiN2.cjs');
11
+ var registerKillSessionHandler = require('./registerKillSessionHandler-DIFqoCCd.cjs');
12
+ var controlClient = require('./controlClient-DMxcJC-j.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-DBev4hhV.cjs');
17
- var loadableToolOutput = require('./loadableToolOutput-C5EQglQm.cjs');
17
+ var loadableToolOutput = require('./loadableToolOutput-tPvkyCoE.cjs');
18
18
  var constants = require('./constants-E_UWYTo3.cjs');
19
- var config = require('./config-BHwOLuFT.cjs');
20
- var formatImageMessage = require('./formatImageMessage-CHjdeDGM.cjs');
19
+ var config = require('./config-BHH3wR9_.cjs');
20
+ var formatImageMessage = require('./formatImageMessage-DE96y8-H.cjs');
21
21
  require('axios');
22
22
  require('node:events');
23
23
  require('socket.io-client');
@@ -40,7 +40,7 @@ require('crypto');
40
40
  require('tweetnacl');
41
41
  require('@stablelib/base64');
42
42
  require('expo-server-sdk');
43
- require('./sessionKeyCache-CmORI8jN.cjs');
43
+ require('./sessionKeyCache-By8_OSDl.cjs');
44
44
  require('chalk');
45
45
  require('fs');
46
46
  require('os');
@@ -48,15 +48,15 @@ require('tmp');
48
48
  require('./doctor-C08m5Z9f.cjs');
49
49
  require('ps-list');
50
50
  require('cross-spawn');
51
- require('./sessionDecrypt-DWm_k5dq.cjs');
52
- require('./auth-DnFrlXqp.cjs');
51
+ require('./sessionDecrypt-Bscb-Kfw.cjs');
52
+ require('./auth-D2z0WId5.cjs');
53
53
  require('qrcode-terminal');
54
- require('./browser-DjONS-B5.cjs');
54
+ require('./browser-DPXZcBi-.cjs');
55
55
  require('open');
56
- require('./doctor-CxWWwoLX.cjs');
57
- require('./spawnHappyCLI-BNUBk0w5.cjs');
58
- require('./deviceKeys-CSfs6juX.cjs');
59
- require('./install-Td8RvuEV.cjs');
56
+ require('./doctor-CX5edsk3.cjs');
57
+ require('./spawnHappyCLI-C3WkMK2n.cjs');
58
+ require('./deviceKeys-Ttjgv9qm.cjs');
59
+ require('./install-Ce6JldUY.cjs');
60
60
  require('./trimIdent-4gvk9Wk6.cjs');
61
61
  require('fastify');
62
62
  require('fastify-type-provider-zod');
@@ -207,6 +207,10 @@ const GEMINI_TOOL_PATTERNS = [
207
207
  name: "set_bug_status",
208
208
  inputFields: ["bug", "status"]
209
209
  }),
210
+ createTool({
211
+ name: "comment_bug",
212
+ inputFields: ["bug", "body", "images"]
213
+ }),
210
214
  // Gemini built-in
211
215
  createTool({
212
216
  name: "save_memory",
@@ -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-CuHH7tvQ.cjs');
6
- var logger = require('./persistence-50wmDoBE.cjs');
5
+ var claudeLocal = require('./claudeLocal-BtbtPj3C.cjs');
6
+ var logger = require('./persistence-CZptiAaZ.cjs');
7
7
  var index = require('./index-DBev4hhV.cjs');
8
8
  var common = require('./common-CZvSRU4p.cjs');
9
9
  require('node:path');
@@ -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-CYtFfvTZ.mjs';
4
- import { l as logger } from './persistence-Da0uhblK.mjs';
3
+ import { c as claudeCliPath } from './claudeLocal-Cs-BIAw0.mjs';
4
+ import { l as logger } from './persistence-CcOX4WLf.mjs';
5
5
  import { i as isModelModeForAgent, M as MODEL_MODE_DEFAULT, p as parseCodexModelMode, a as parseClaudeModelMode } from './index-7P6T8CE4.mjs';
6
6
  import { i as isOrchestratorProvider, O as ORCHESTRATOR_ENV_KEYS, d as decodePromptFromBase64 } from './common-BdNgghUJ.mjs';
7
7
  import '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-Da0uhblK.mjs';
4
- import { s as sessionListInputSchema, r as runSessionList } from './sessionList-D_Y-1Cir.mjs';
3
+ import { c as configuration, e as encodeBase64, f as encrypt, h as decodeBase64, g as decrypt, r as readCredentials } from './persistence-CcOX4WLf.mjs';
4
+ import { s as sessionListInputSchema, r as runSessionList } from './sessionList-BEBpDXjL.mjs';
5
5
  import axios from 'axios';
6
6
  import { z } from 'zod';
7
- import { f as fetchSessionById, d as decryptMessage, s as sessionSummaryInputSchema, r as runSessionSummary } from './sessionSummary-YLlUeUre.mjs';
7
+ import { f as fetchSessionById, d as decryptMessage, s as sessionSummaryInputSchema, r as runSessionSummary } from './sessionSummary-C9zR15PT.mjs';
8
8
  import { randomUUID } from 'node:crypto';
9
9
  import 'node:fs/promises';
10
10
  import 'node:fs';
@@ -13,15 +13,15 @@ import 'node:path';
13
13
  import 'tweetnacl';
14
14
  import 'chalk';
15
15
  import 'fs';
16
- import './sessionDecrypt-BsOlrqRs.mjs';
17
- import './auth-DnRtIM3d.mjs';
16
+ import './sessionDecrypt-BQnoJy4t.mjs';
17
+ import './auth-B1Qy9v3F.mjs';
18
18
  import 'qrcode-terminal';
19
19
  import './time-DgsBLJA_.mjs';
20
- import './browser-BeERlPhN.mjs';
20
+ import './browser-ChGfY23u.mjs';
21
21
  import 'open';
22
22
  import 'react';
23
23
  import 'ink';
24
- import './sessionKeyCache-BBzsFcnN.mjs';
24
+ import './sessionKeyCache-DxPdM8uz.mjs';
25
25
 
26
26
  const PREVIEW_LIMIT = 200;
27
27
  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-50wmDoBE.cjs');
6
- var sessionList = require('./sessionList-lxpW_76R.cjs');
5
+ var logger = require('./persistence-CZptiAaZ.cjs');
6
+ var sessionList = require('./sessionList-BoyXqg6y.cjs');
7
7
  var axios = require('axios');
8
8
  var z = require('zod');
9
- var sessionSummary = require('./sessionSummary-BP2T8GHr.cjs');
9
+ var sessionSummary = require('./sessionSummary-PwepM55y.cjs');
10
10
  var node_crypto = require('node:crypto');
11
11
  require('node:fs/promises');
12
12
  require('node:fs');
@@ -15,15 +15,15 @@ require('node:path');
15
15
  require('tweetnacl');
16
16
  require('chalk');
17
17
  require('fs');
18
- require('./sessionDecrypt-DWm_k5dq.cjs');
19
- require('./auth-DnFrlXqp.cjs');
18
+ require('./sessionDecrypt-Bscb-Kfw.cjs');
19
+ require('./auth-D2z0WId5.cjs');
20
20
  require('qrcode-terminal');
21
21
  require('./time-Bj2HRkKH.cjs');
22
- require('./browser-DjONS-B5.cjs');
22
+ require('./browser-DPXZcBi-.cjs');
23
23
  require('open');
24
24
  require('react');
25
25
  require('ink');
26
- require('./sessionKeyCache-CmORI8jN.cjs');
26
+ require('./sessionKeyCache-By8_OSDl.cjs');
27
27
 
28
28
  const PREVIEW_LIMIT = 200;
29
29
  const TAIL_MESSAGES = 5;
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  var chalk = require('chalk');
4
- var logger = require('./persistence-50wmDoBE.cjs');
5
- var sessionSummary = require('./sessionSummary-BP2T8GHr.cjs');
4
+ var logger = require('./persistence-CZptiAaZ.cjs');
5
+ var sessionSummary = require('./sessionSummary-PwepM55y.cjs');
6
6
  require('node:fs/promises');
7
7
  require('node:fs');
8
8
  require('node:os');
@@ -12,15 +12,15 @@ require('node:crypto');
12
12
  require('tweetnacl');
13
13
  require('fs');
14
14
  require('axios');
15
- require('./sessionDecrypt-DWm_k5dq.cjs');
16
- require('./auth-DnFrlXqp.cjs');
15
+ require('./sessionDecrypt-Bscb-Kfw.cjs');
16
+ require('./auth-D2z0WId5.cjs');
17
17
  require('qrcode-terminal');
18
18
  require('./time-Bj2HRkKH.cjs');
19
- require('./browser-DjONS-B5.cjs');
19
+ require('./browser-DPXZcBi-.cjs');
20
20
  require('open');
21
21
  require('react');
22
22
  require('ink');
23
- require('./sessionKeyCache-CmORI8jN.cjs');
23
+ require('./sessionKeyCache-By8_OSDl.cjs');
24
24
 
25
25
  function printSessionHelp() {
26
26
  console.log(`
@@ -1,6 +1,6 @@
1
1
  import chalk from 'chalk';
2
- import { r as readCredentials } from './persistence-Da0uhblK.mjs';
3
- import { r as runSessionSummary } from './sessionSummary-YLlUeUre.mjs';
2
+ import { r as readCredentials } from './persistence-CcOX4WLf.mjs';
3
+ import { r as runSessionSummary } from './sessionSummary-C9zR15PT.mjs';
4
4
  import 'node:fs/promises';
5
5
  import 'node:fs';
6
6
  import 'node:os';
@@ -10,15 +10,15 @@ import 'node:crypto';
10
10
  import 'tweetnacl';
11
11
  import 'fs';
12
12
  import 'axios';
13
- import './sessionDecrypt-BsOlrqRs.mjs';
14
- import './auth-DnRtIM3d.mjs';
13
+ import './sessionDecrypt-BQnoJy4t.mjs';
14
+ import './auth-B1Qy9v3F.mjs';
15
15
  import 'qrcode-terminal';
16
16
  import './time-DgsBLJA_.mjs';
17
- import './browser-BeERlPhN.mjs';
17
+ import './browser-ChGfY23u.mjs';
18
18
  import 'open';
19
19
  import 'react';
20
20
  import 'ink';
21
- import './sessionKeyCache-BBzsFcnN.mjs';
21
+ import './sessionKeyCache-DxPdM8uz.mjs';
22
22
 
23
23
  function printSessionHelp() {
24
24
  console.log(`
@@ -1,6 +1,6 @@
1
- import { o as decryptLegacy, h as decodeBase64, k as decryptWithDataKey } from './persistence-Da0uhblK.mjs';
2
- import { decryptWithEphemeralKey } from './auth-DnRtIM3d.mjs';
3
- import { r as readCachedSessionKey } from './sessionKeyCache-BBzsFcnN.mjs';
1
+ import { o as decryptLegacy, h as decodeBase64, k as decryptWithDataKey } from './persistence-CcOX4WLf.mjs';
2
+ import { decryptWithEphemeralKey } from './auth-B1Qy9v3F.mjs';
3
+ import { r as readCachedSessionKey } from './sessionKeyCache-DxPdM8uz.mjs';
4
4
 
5
5
  function resolveSessionKey(credentials, dataEncryptionKey, sessionId) {
6
6
  if (credentials.encryption.type === "legacy") {
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var logger = require('./persistence-50wmDoBE.cjs');
4
- var auth = require('./auth-DnFrlXqp.cjs');
5
- var sessionKeyCache = require('./sessionKeyCache-CmORI8jN.cjs');
3
+ var logger = require('./persistence-CZptiAaZ.cjs');
4
+ var auth = require('./auth-D2z0WId5.cjs');
5
+ var sessionKeyCache = require('./sessionKeyCache-By8_OSDl.cjs');
6
6
 
7
7
  function resolveSessionKey(credentials, dataEncryptionKey, sessionId) {
8
8
  if (credentials.encryption.type === "legacy") {
@@ -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-50wmDoBE.cjs');
6
+ var logger = require('./persistence-CZptiAaZ.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-Da0uhblK.mjs';
4
+ import { c as configuration, j as encryptWithDataKey, e as encodeBase64, k as decryptWithDataKey, h as decodeBase64 } from './persistence-CcOX4WLf.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-Da0uhblK.mjs';
4
- import { d as decryptSessionRow } from './sessionDecrypt-BsOlrqRs.mjs';
3
+ import { c as configuration } from './persistence-CcOX4WLf.mjs';
4
+ import { d as decryptSessionRow } from './sessionDecrypt-BQnoJy4t.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-50wmDoBE.cjs');
6
- var sessionDecrypt = require('./sessionDecrypt-DWm_k5dq.cjs');
5
+ var logger = require('./persistence-CZptiAaZ.cjs');
6
+ var sessionDecrypt = require('./sessionDecrypt-Bscb-Kfw.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, h as decodeBase64, o as decryptLegacy, k as decryptWithDataKey } from './persistence-Da0uhblK.mjs';
4
- import { d as decryptSessionRow } from './sessionDecrypt-BsOlrqRs.mjs';
3
+ import { c as configuration, h as decodeBase64, o as decryptLegacy, k as decryptWithDataKey } from './persistence-CcOX4WLf.mjs';
4
+ import { d as decryptSessionRow } from './sessionDecrypt-BQnoJy4t.mjs';
5
5
 
6
6
  async function fetchSessionById(credentials, sessionId) {
7
7
  const response = await axios.get(
@@ -2,8 +2,8 @@
2
2
 
3
3
  var axios = require('axios');
4
4
  var z = require('zod');
5
- var logger = require('./persistence-50wmDoBE.cjs');
6
- var sessionDecrypt = require('./sessionDecrypt-DWm_k5dq.cjs');
5
+ var logger = require('./persistence-CZptiAaZ.cjs');
6
+ var sessionDecrypt = require('./sessionDecrypt-Bscb-Kfw.cjs');
7
7
 
8
8
  async function fetchSessionById(credentials, sessionId) {
9
9
  const response = await axios.get(
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var logger = require('./persistence-50wmDoBE.cjs');
3
+ var logger = require('./persistence-CZptiAaZ.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-ByiU9yXy.cjs');
9
- var registerKillSessionHandler = require('./registerKillSessionHandler-CHPzUrtO.cjs');
8
+ var api = require('./api-DwiOsTuU.cjs');
9
+ var registerKillSessionHandler = require('./registerKillSessionHandler-DIFqoCCd.cjs');
10
10
 
11
11
  class BasePermissionHandler {
12
12
  pendingRequests = /* @__PURE__ */ new Map();
@@ -192,6 +192,7 @@ class BasePermissionHandler {
192
192
  }
193
193
 
194
194
  const DEFAULT_MAX_SKILLS = 400;
195
+ const MAX_DESCRIPTION_LENGTH = 120;
195
196
  const DEFAULT_MAX_DEPTH = 10;
196
197
  const SKILL_FILE = "SKILL.md";
197
198
  const IGNORED_DIRECTORIES = /* @__PURE__ */ new Set([
@@ -266,12 +267,16 @@ function skillRoots(homeDir, includePluginCache) {
266
267
  ];
267
268
  if (includePluginCache) {
268
269
  roots.push(
269
- { path: path.join(homeDir, ".codex", "plugins", "cache"), source: "codex-plugin-cache" },
270
- { path: path.join(homeDir, ".codex", ".tmp", "plugins", "plugins"), source: "codex-plugin-marketplace" }
270
+ { path: path.join(homeDir, ".codex", "plugins", "cache"), source: "codex-plugin-cache" }
271
271
  );
272
272
  }
273
273
  return roots;
274
274
  }
275
+ function shortenDescription(description) {
276
+ if (!description) return description;
277
+ const oneLine = description.replace(/\s+/g, " ").trim();
278
+ return oneLine.length > MAX_DESCRIPTION_LENGTH ? `${oneLine.slice(0, MAX_DESCRIPTION_LENGTH - 1)}\u2026` : oneLine;
279
+ }
275
280
  function discoverCodexSkills(options = {}) {
276
281
  const homeDir = options.homeDir ?? os.homedir();
277
282
  const maxSkills = options.maxSkills ?? DEFAULT_MAX_SKILLS;
@@ -298,7 +303,7 @@ function discoverCodexSkills(options = {}) {
298
303
  seen.add(key);
299
304
  result.push({
300
305
  name,
301
- description: frontMatter.description,
306
+ description: shortenDescription(frontMatter.description),
302
307
  source: root.source
303
308
  });
304
309
  }