very-happy-cli 0.2.198 → 0.2.200

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 (214) hide show
  1. package/dist/{AcpBackend-Bm3EodAb.mjs → AcpBackend-Cnp6WNn8.mjs} +3 -3
  2. package/dist/{AcpBackend-DOuWeCAx.cjs → AcpBackend-CwSShYPI.cjs} +3 -3
  3. package/dist/{AcpSessionManager-BiwuXpbx.mjs → AcpSessionManager-C4O3jhT_.mjs} +2 -2
  4. package/dist/{AcpSessionManager-DvsZWTXp.cjs → AcpSessionManager-DqW99tOL.cjs} +2 -2
  5. package/dist/{BasePermissionHandler-1QcavYFn.mjs → BasePermissionHandler-8Msj0Z8j.mjs} +1 -1
  6. package/dist/{BasePermissionHandler-25RmI4dK.cjs → BasePermissionHandler-CgqjIUyG.cjs} +1 -1
  7. package/dist/{account-DA4mbX3-.mjs → account-BIxPuBEs.mjs} +11 -11
  8. package/dist/{account-ChUtFYld.cjs → account-DcNh2_SN.cjs} +11 -11
  9. package/dist/{accountService-BWUjgHl0.cjs → accountService-BDJo14mY.cjs} +4 -4
  10. package/dist/{accountService-D7NZrnQd.mjs → accountService-ELazcp3V.mjs} +4 -4
  11. package/dist/{acpSessionResume-CeQu84Ol.cjs → acpSessionResume-B_W8uTI6.cjs} +1 -1
  12. package/dist/{acpSessionResume-D6YgeofW.mjs → acpSessionResume-De_sTG30.mjs} +1 -1
  13. package/dist/{agentHome-DM6mC64c.mjs → agentHome-C-900jC1.mjs} +4 -4
  14. package/dist/{agentHome-DevJCRG9.cjs → agentHome-C-usjJwB.cjs} +4 -4
  15. package/dist/{api-te19Pzi3.cjs → api-BPWRzeNF.cjs} +16 -10
  16. package/dist/{api-oceym3w6.mjs → api-DCUiAds-.mjs} +16 -10
  17. package/dist/{apiMachine-DCHsqtFQ.mjs → apiMachine-CJl4m3V3.mjs} +18 -18
  18. package/dist/{apiMachine-BjhCXg6C.cjs → apiMachine-DjhbA1rL.cjs} +18 -18
  19. package/dist/{attachmentContent-Dl29U1v1.mjs → attachmentContent-BKIq6EXR.mjs} +2 -2
  20. package/dist/{attachmentContent-BfCEgPTP.cjs → attachmentContent-C2f1UEP9.cjs} +2 -2
  21. package/dist/{auth-BIkCWkRV.mjs → auth-8jKFCZOX.mjs} +5 -5
  22. package/dist/{auth-SshU0tNW.cjs → auth-h6oU63Ni.cjs} +8 -8
  23. package/dist/{auth-SH0o7ue7.cjs → auth-oAnLi4Tl.cjs} +5 -5
  24. package/dist/{auth-BJ8Tej9L.mjs → auth-uLRHXOGY.mjs} +8 -8
  25. package/dist/{auto-Bdr4sSJk.mjs → auto-A5arQ-bI.mjs} +17 -17
  26. package/dist/{auto-t1B1Yzb3.cjs → auto-Bpa5iA1A.cjs} +17 -17
  27. package/dist/{bootstrap-D8DYLUId.mjs → bootstrap-BkLFgEGF.mjs} +2 -2
  28. package/dist/{bootstrap-GZDknvPy.cjs → bootstrap-DUKAKxrJ.cjs} +2 -2
  29. package/dist/{browser-C-H3QYV2.mjs → browser-BAlw0rns.mjs} +1 -1
  30. package/dist/{browser-DwCi-9Ya.cjs → browser-Ds-N-Dup.cjs} +1 -1
  31. package/dist/{claudeAccountEnv-DmVbGhZb.mjs → claudeAccountEnv-CI8RlIB9.mjs} +1 -1
  32. package/dist/{claudeAccountEnv-DSaFKajJ.cjs → claudeAccountEnv-D33xXRE7.cjs} +1 -1
  33. package/dist/{claudeLocal-Ck1jTve1.cjs → claudeLocal-BbsOT-EF.cjs} +5 -5
  34. package/dist/{claudeLocal-BiM2x9DJ.mjs → claudeLocal-X48n0RhP.mjs} +5 -5
  35. package/dist/{claudeLocalLauncher-DzvM0jBo.mjs → claudeLocalLauncher-D18gRtxz.mjs} +10 -10
  36. package/dist/{claudeLocalLauncher-Jsupvl4V.cjs → claudeLocalLauncher-D1jS3iK4.cjs} +10 -10
  37. package/dist/{claudeSessionFork-CDTbQmYi.cjs → claudeSessionFork-Bkxn40Y8.cjs} +1 -1
  38. package/dist/{claudeSessionFork-D-BhXkRa.mjs → claudeSessionFork-n1vMiFcP.mjs} +1 -1
  39. package/dist/client-1zIbVVX5.cjs +120 -0
  40. package/dist/{client-BRuFIwki.mjs → client-BXwIqRha.mjs} +2 -2
  41. package/dist/client-BgxQ9aej.mjs +114 -0
  42. package/dist/{client-CISkP897.mjs → client-Blpuk2Hr.mjs} +2 -2
  43. package/dist/{client-D-HEr922.cjs → client-BnoN4P4t.cjs} +2 -2
  44. package/dist/{client-E4kW5qjR.mjs → client-C0qjAgZ_.mjs} +4 -4
  45. package/dist/{client-v6rdLsBH.cjs → client-C8BTmcrh.cjs} +4 -4
  46. package/dist/{client-oqSAKwmy.cjs → client-D0_UOmC1.cjs} +2 -2
  47. package/dist/codex/happyMcpStdioBridge.cjs +25 -16
  48. package/dist/codex/happyMcpStdioBridge.mjs +25 -16
  49. package/dist/{codexAccount-CnbDfCOM.mjs → codexAccount-BAezf1fY.mjs} +1 -1
  50. package/dist/{codexAccount-CQ4W1Ax8.cjs → codexAccount-DfeCHUOU.cjs} +1 -1
  51. package/dist/{codexAppServerClient-BLasFGTm.mjs → codexAppServerClient-By4ntTIr.mjs} +3 -3
  52. package/dist/{codexAppServerClient--K-ILfqM.cjs → codexAppServerClient-xBeqblCj.cjs} +3 -3
  53. package/dist/{codexCommand-Wv1WVNtM.mjs → codexCommand-C7BVsmPu.mjs} +58 -47
  54. package/dist/{codexCommand-M1uNblJx.cjs → codexCommand-CgzJe-Ti.cjs} +62 -51
  55. package/dist/{codexTermination-DigTBSJE.mjs → codexTermination-BS0sLBKS.mjs} +1 -1
  56. package/dist/{codexTermination-BumRIUqm.cjs → codexTermination-DVrdQx3Q.cjs} +1 -1
  57. package/dist/{config-Czs0Tucv.cjs → config-4R0rnthZ.cjs} +3 -3
  58. package/dist/{config-Br2fCFwB.mjs → config-D3jidXDu.mjs} +3 -3
  59. package/dist/{configuration-JBFF7432.mjs → configuration-4pG95tsq.mjs} +1 -1
  60. package/dist/{configuration-DfRs3WLd.cjs → configuration-ClUt7pqs.cjs} +1 -1
  61. package/dist/{connect-Cr--b0yl.cjs → connect-Da2NQJ3K.cjs} +13 -13
  62. package/dist/{connect-CbCqv-MV.mjs → connect-Do5qcqmg.mjs} +13 -13
  63. package/dist/{context-DLIjT5qU.mjs → context-Cf05DtNM.mjs} +1 -1
  64. package/dist/{context-C5WWlHOl.cjs → context-wMsIGwBw.cjs} +1 -1
  65. package/dist/{controlClient-B61crTpk.cjs → controlClient-SYDFcIkk.cjs} +3 -3
  66. package/dist/{controlClient-D5BYm3PU.mjs → controlClient-bqCKl9Nv.mjs} +3 -3
  67. package/dist/{createSessionMetadata-OMKj3e48.mjs → createSessionMetadata-CQkxe_4T.mjs} +3 -2
  68. package/dist/{createSessionMetadata-BwYysMTH.cjs → createSessionMetadata-msQTEvvn.cjs} +3 -2
  69. package/dist/{daemonAccounts-asWvoPKG.mjs → daemonAccounts-B8xnkprW.mjs} +3 -3
  70. package/dist/{daemonAccounts-CqAnPXDJ.cjs → daemonAccounts-Ch_rSTSX.cjs} +2 -2
  71. package/dist/{defaultPermissionMode-BItpIZML.cjs → defaultPermissionMode-BETWd5Lf.cjs} +1 -1
  72. package/dist/{defaultPermissionMode-4KYZA4WF.mjs → defaultPermissionMode-Cl3OvdHp.mjs} +1 -1
  73. package/dist/{deterministicJson-DnTSkEgb.mjs → deterministicJson-BRAeReBK.mjs} +67 -17
  74. package/dist/{deterministicJson-DIzyb1dQ.cjs → deterministicJson-CQ8jkArF.cjs} +72 -22
  75. package/dist/{doctor-Dn1G6QhF.cjs → doctor-C9D-t20z.cjs} +7 -7
  76. package/dist/{doctor-jrvm-tl3.mjs → doctor-Dy7z3qvy.mjs} +7 -7
  77. package/dist/{downloadTarget-DGnCGrDZ.cjs → downloadTarget-DfoOSrYi.cjs} +6 -6
  78. package/dist/{downloadTarget-BtsN_-LN.mjs → downloadTarget-Diq-GBu4.mjs} +6 -6
  79. package/dist/{ensureDaemonRunning-DsvcjXb4.cjs → ensureDaemonRunning-Df76EtKd.cjs} +5 -5
  80. package/dist/{ensureDaemonRunning-DCmXUwNi.mjs → ensureDaemonRunning-LqrgqVG3.mjs} +5 -5
  81. package/dist/format-CbliQN8V.mjs +70 -0
  82. package/dist/format-P9_M_7ga.cjs +74 -0
  83. package/dist/{handleResumeCommand-hzho-lp7.cjs → handleResumeCommand-CjCtwrrm.cjs} +5 -5
  84. package/dist/{handleResumeCommand-CFupxyHT.mjs → handleResumeCommand-Dz4Aw_aZ.mjs} +5 -5
  85. package/dist/{index-BMFLwBCd.mjs → index-BNBXrqRE.mjs} +4 -4
  86. package/dist/{index-BknTkVnR.cjs → index-BiutHOAO.cjs} +62 -1
  87. package/dist/{index-CRI-_-YH.cjs → index-ByBOdEvG.cjs} +48 -44
  88. package/dist/{index-DCfEzudP.cjs → index-CbzettaI.cjs} +4 -4
  89. package/dist/{index-5TDKOvkU.cjs → index-CdOnhx2X.cjs} +4 -4
  90. package/dist/{index-CHk8F9OY.mjs → index-CjMA70-R.mjs} +47 -43
  91. package/dist/{index-EGwuuFdL.cjs → index-DUwOmhnq.cjs} +3 -3
  92. package/dist/{index-CZpFhEmE.mjs → index-Sdvy1Lsf.mjs} +3 -3
  93. package/dist/{index-CofTgtQ3.mjs → index-XP-qcJQ3.mjs} +4 -4
  94. package/dist/{index-CxiisoO1.mjs → index-kwsivEs-.mjs} +49 -2
  95. package/dist/index.cjs +2 -2
  96. package/dist/index.mjs +2 -2
  97. package/dist/{install-CB5eTmzm.cjs → install-C4dKrmxR.cjs} +3 -3
  98. package/dist/{install-CeDqNGxI.mjs → install-DMXd8Z4c.mjs} +3 -3
  99. package/dist/issue-BijeNKIT.cjs +237 -0
  100. package/dist/issue-COytLvGE.mjs +229 -0
  101. package/dist/lib.cjs +12 -12
  102. package/dist/lib.d.cts +6 -0
  103. package/dist/lib.d.mts +6 -0
  104. package/dist/lib.mjs +12 -12
  105. package/dist/{localHappyAgentAuth-B6xdH-Fr.cjs → localHappyAgentAuth-CjtNcaI0.cjs} +1 -1
  106. package/dist/{localHappyAgentAuth-BiIyMoiG.mjs → localHappyAgentAuth-DeDQjw24.mjs} +1 -1
  107. package/dist/{logger-BHfBDOsy.mjs → logger-BLMi8oJK.mjs} +2 -2
  108. package/dist/{logger-BrAF4iuT.cjs → logger-D28MY1Bv.cjs} +2 -2
  109. package/dist/{machineMetadata-D5PO2ylb.cjs → machineMetadata-BzjrIn_N.cjs} +3 -3
  110. package/dist/{machineMetadata-Ekniv5o4.mjs → machineMetadata-D8OWVD4l.mjs} +3 -3
  111. package/dist/{main-C8lsRSYS.cjs → main-DoJIcSOh.cjs} +57 -47
  112. package/dist/{main-HXdcnexS.mjs → main-c0fCuBON.mjs} +57 -47
  113. package/dist/{mcp-D9sglL02.cjs → mcp-CEtvR6tG.cjs} +18 -18
  114. package/dist/{mcp-C2YD6mq4.mjs → mcp-DKkBFGUa.mjs} +18 -18
  115. package/dist/{mirrorProtocol-CNF1eHsm.cjs → mirrorProtocol-CCl9dtzh.cjs} +3 -3
  116. package/dist/{mirrorProtocol-BLhArCS9.mjs → mirrorProtocol-DFQLXDBI.mjs} +3 -3
  117. package/dist/{package-CStJrLG3.cjs → package-BFSsS_dl.cjs} +7 -7
  118. package/dist/{package-BGZo2vAj.mjs → package-DbGqY8Ej.mjs} +7 -7
  119. package/dist/{panels-GVnnEsow.mjs → panels-2yIO9FxQ.mjs} +5 -5
  120. package/dist/{panels-D4_yGw4n.cjs → panels-BqLXIQif.cjs} +5 -5
  121. package/dist/{peerTools-BO-H0wNj.mjs → peerTools-4GYKxr8J.mjs} +5 -5
  122. package/dist/{peerTools-Drow2-P4.cjs → peerTools-Z8V2E0AF.cjs} +5 -5
  123. package/dist/{persistence-DvD-irLh.mjs → persistence-DbOKjdUD.mjs} +3 -3
  124. package/dist/{persistence-DGfEdbA5.cjs → persistence-TpVFA5-I.cjs} +2 -2
  125. package/dist/{piRunnerArgs-DwcAwwzm.mjs → piRunnerArgs-Bdj0sjAT.mjs} +1 -1
  126. package/dist/{piRunnerArgs-C1dLsoXF.cjs → piRunnerArgs-DOEJJymf.cjs} +1 -1
  127. package/dist/{piRuntime-_yRSPgnR.mjs → piRuntime-B0QZykV7.mjs} +1 -1
  128. package/dist/{piRuntime-d2h0Cska.cjs → piRuntime-DiRayy91.cjs} +1 -1
  129. package/dist/{piTerminal-WN0AMv9u.mjs → piTerminal-DGF4X7C-.mjs} +20 -20
  130. package/dist/{piTerminal-CVB4fa5R.cjs → piTerminal-DciFqPEi.cjs} +20 -20
  131. package/dist/{pushNotifications-3YsyCEfY.cjs → pushNotifications-C1i2W1GQ.cjs} +3 -3
  132. package/dist/{pushNotifications-D2UZnoTB.mjs → pushNotifications-CrCTpDiN.mjs} +3 -3
  133. package/dist/{query-Ba7UXc_y.cjs → query-BkOpCpRo.cjs} +1 -1
  134. package/dist/{query-_sw0hG6A.mjs → query-CrSvcV32.mjs} +1 -1
  135. package/dist/{rateLimitWindows-DiiGHS9r.cjs → rateLimitWindows-BREA7OZj.cjs} +1 -1
  136. package/dist/{rateLimitWindows-DzXv6p_W.mjs → rateLimitWindows-DZVrafmm.mjs} +1 -1
  137. package/dist/{reconnectGate-CxLgZCBh.mjs → reconnectGate-COxAZTv8.mjs} +1 -1
  138. package/dist/{reconnectGate-BpePVLPu.cjs → reconnectGate-YQ5jXJfY.cjs} +1 -1
  139. package/dist/{registerCommonHandlers-ChdVwZW6.mjs → registerCommonHandlers-Cfl_dEWs.mjs} +2 -2
  140. package/dist/{registerCommonHandlers-6iKpECuR.cjs → registerCommonHandlers-D95IxqDN.cjs} +2 -2
  141. package/dist/{registerKillSessionHandler-BDTgrstx.cjs → registerKillSessionHandler-DJJXtc_L.cjs} +6 -6
  142. package/dist/{registerKillSessionHandler-D6wYbAIt.mjs → registerKillSessionHandler-DoE6xgH3.mjs} +6 -6
  143. package/dist/{registerSideQuestionHandler-U4LGga_Z.cjs → registerSideQuestionHandler-DsRz-aD9.cjs} +4 -4
  144. package/dist/{registerSideQuestionHandler-C3K_qKwA.mjs → registerSideQuestionHandler-Dv00rqcy.mjs} +4 -4
  145. package/dist/{remoteSessionClient-CFNM8UEh.mjs → remoteSessionClient-BFd_D9ka.mjs} +5 -5
  146. package/dist/{remoteSessionClient-DSC5Cj21.cjs → remoteSessionClient-DleOeQlN.cjs} +5 -5
  147. package/dist/{reportProgressTool-CFmDK8ag.mjs → reportProgressTool-D4xKY9Ur.mjs} +111 -4
  148. package/dist/{reportProgressTool-Cr25LWeW.cjs → reportProgressTool-DtEpDqv3.cjs} +113 -3
  149. package/dist/{run-Be0yicft.cjs → run-CVAIFpsp.cjs} +391 -42
  150. package/dist/{run-D0D73Dam.mjs → run-iDEMW4js.mjs} +391 -42
  151. package/dist/{runClaude-1NP467UM.mjs → runClaude-DvHdLJaV.mjs} +27 -25
  152. package/dist/{runClaude-BOxvKK4H.cjs → runClaude-gucCQBma.cjs} +30 -28
  153. package/dist/{runClaudeDeps-CkRlQx2Y.cjs → runClaudeDeps-CQ8vvqUQ.cjs} +42 -40
  154. package/dist/{runClaudeDeps-BPzLoWyT.mjs → runClaudeDeps-DkFWFwVc.mjs} +48 -46
  155. package/dist/{runGemini-j2n5ZlOL.mjs → runGemini-B2lXQDru.mjs} +35 -33
  156. package/dist/{runGemini-BowXJRXb.cjs → runGemini-C0vqJYtS.cjs} +35 -33
  157. package/dist/{runOpenClaw-DLsnZnFM.cjs → runOpenClaw-DNV7GX73.cjs} +18 -18
  158. package/dist/{runOpenClaw-6zrT8dPO.mjs → runOpenClaw-Ddb6sOkY.mjs} +18 -18
  159. package/dist/{sandbox-BFbT6HDl.mjs → sandbox-Cw0cPDDh.mjs} +4 -4
  160. package/dist/{sandbox-DLijcRKk.cjs → sandbox-FA0RlaZg.cjs} +4 -4
  161. package/dist/selfCheck-B-hKig8I.mjs +89 -0
  162. package/dist/{selfCheck-U-A1DCi9.cjs → selfCheck-DFC8fzhF.cjs} +40 -39
  163. package/dist/{send-CGxo_QUR.cjs → send-BFd-5b_Q.cjs} +8 -8
  164. package/dist/{send-CQGKb3Kb.mjs → send-CwgqPftE.mjs} +8 -8
  165. package/dist/{server-DR5bQzTq.mjs → server-C_4Fk45r.mjs} +4 -4
  166. package/dist/{server-CWbcDBjV.cjs → server-DwOdMGAP.cjs} +6 -6
  167. package/dist/{sessionLock-DqFKSW8u.mjs → sessionLock-CphKQyav.mjs} +3 -3
  168. package/dist/{sessionLock-CJiayMcZ.cjs → sessionLock-DglhFHzB.cjs} +3 -3
  169. package/dist/{startupSessionCreate-s1ekIs2Z.cjs → sessionMetadata-DyTJ0Ki5.cjs} +14 -3
  170. package/dist/{startupSessionCreate-CfBajt2k.mjs → sessionMetadata-V7Z7F-cj.mjs} +14 -4
  171. package/dist/{sessionOps-Cw_JivR2.cjs → sessionOps-CIFvoFPA.cjs} +4 -4
  172. package/dist/{sessionOps-D-SDNs-D.mjs → sessionOps-D-uFSTHk.mjs} +4 -4
  173. package/dist/{sessionProvider-JEAWxBF6.cjs → sessionProvider-B0daO-Ln.cjs} +10 -10
  174. package/dist/{sessionProvider-Cb-LtbFQ.mjs → sessionProvider-D8y7K8bK.mjs} +10 -10
  175. package/dist/{sessionScanner-zJrc_Oe0.cjs → sessionScanner-CWflbWoH.cjs} +3 -3
  176. package/dist/{sessionScanner-C2M697xz.mjs → sessionScanner-DQAOP6pU.mjs} +3 -3
  177. package/dist/{sessions-CIxnjpCM.mjs → sessions-CaO_-AI7.mjs} +10 -10
  178. package/dist/{sessions-D2yLkE5R.cjs → sessions-CzpI76qj.cjs} +10 -10
  179. package/dist/{setupOfflineReconnection-Uu3tqISz.cjs → setupOfflineReconnection-BZHRoKDx.cjs} +2 -2
  180. package/dist/{setupOfflineReconnection-DzV1wB4y.mjs → setupOfflineReconnection-Ck-p0YPb.mjs} +2 -2
  181. package/dist/{spawn-CeeM-Piz.mjs → spawn-BEJxfj60.mjs} +14 -14
  182. package/dist/{spawn-DD1Sv8Ri.cjs → spawn-DyjOa4nf.cjs} +14 -14
  183. package/dist/{spawnAgents-CrHgpAzU.cjs → spawnAgents-IiuqX0S5.cjs} +1 -1
  184. package/dist/{spawnAgents-DEBfpoPZ.mjs → spawnAgents-XObVj6zN.mjs} +1 -1
  185. package/dist/{spawnHappyCLI-CYzlz9Sl.cjs → spawnHappyCLI-C3XuIB2N.cjs} +1 -1
  186. package/dist/{spawnHappyCLI-CUfe8n_m.mjs → spawnHappyCLI-Cc9kKpcq.mjs} +1 -1
  187. package/dist/{startFileWatcher-C0u3J6Bj.cjs → startFileWatcher-CeDJl9mN.cjs} +1 -1
  188. package/dist/{startFileWatcher-JdO3v65I.mjs → startFileWatcher-t3K1y9kY.mjs} +1 -1
  189. package/dist/{store-DEhdblkI.mjs → store-CqNAE-0v.mjs} +1 -1
  190. package/dist/{store-QBBJB5Ox.cjs → store-DOZAMV4W.cjs} +1 -1
  191. package/dist/{streamRelay-DymKR1Rk.mjs → streamRelay-7D7v0hvk.mjs} +1 -1
  192. package/dist/{streamRelay-BVrCYh2G.cjs → streamRelay-Dyp4x44P.cjs} +1 -1
  193. package/dist/{sync-BO4DRSub.cjs → sync-BvxhuW9R.cjs} +1 -1
  194. package/dist/{sync-BLGrIKN9.mjs → sync-s1pUqWGm.mjs} +1 -1
  195. package/dist/{systemPrompt-DTUJZOn6.cjs → systemPrompt-CCdSrtn3.cjs} +2 -2
  196. package/dist/{systemPrompt-YylizkJs.mjs → systemPrompt-CLYTbBhV.mjs} +2 -2
  197. package/dist/{teams-zkGFcwsG.mjs → teams-BVp5F_xN.mjs} +7 -7
  198. package/dist/{teams-DnLPBPKx.cjs → teams-D2q1DQWz.cjs} +7 -7
  199. package/dist/{template-uSKZ53Sv.cjs → template-M1YGFYUT.cjs} +1 -1
  200. package/dist/{template-BGlDAjbM.mjs → template-oBrR0saD.mjs} +1 -1
  201. package/dist/{time-Cv4hbCLT.cjs → time-D-v2Cd9e.cjs} +1 -1
  202. package/dist/{time-DZE0879N.mjs → time-qd46L189.mjs} +1 -1
  203. package/dist/{titleGenerator-B2BbmJuc.mjs → titleGenerator-BdeHi3IY.mjs} +2 -2
  204. package/dist/{titleGenerator-D2ehxbvK.cjs → titleGenerator-CSYqcorn.cjs} +3 -3
  205. package/dist/{todo-DUpW9d8p.mjs → todo-DiEhLgUZ.mjs} +95 -12
  206. package/dist/{todo-9kn_9N-H.cjs → todo-Dq_YuJvj.cjs} +101 -18
  207. package/dist/{tools-rMr-wPIc.cjs → tools-CY2zrdd5.cjs} +1 -1
  208. package/dist/{tools-gIDXwAzk.mjs → tools-DR7GWBBV.mjs} +1 -1
  209. package/dist/{uninstall-CHx5TOHi.cjs → uninstall-BHhHjbzE.cjs} +3 -3
  210. package/dist/{uninstall-CBlRzvNa.mjs → uninstall-BvwDZVU9.mjs} +3 -3
  211. package/dist/{wrapperAccount-Ce78kKMo.mjs → wrapperAccount-CpDsQL15.mjs} +2 -2
  212. package/dist/{wrapperAccount-EkmR4V-v.cjs → wrapperAccount-ejUjAQaM.cjs} +2 -2
  213. package/package.json +7 -7
  214. package/dist/selfCheck-DCIqaiMu.mjs +0 -88
@@ -1,9 +1,12 @@
1
1
  import { z } from 'zod';
2
- import { x as AutomationNameSchema, h as AUTOMATION_ATTENTION_REASON_MAX_CHARS, j as AUTOMATION_SUMMARY_MAX_CHARS, e as AutomationPrecheckSchema, y as AutomationConcurrencySchema, z as AutomationActionSchema, D as AutomationTriggerSchema } from './index-CxiisoO1.mjs';
3
- import { a as authenticatedAutomationsClient, b as automationRunIdFromEnv } from './client-CISkP897.mjs';
2
+ import { Y as AutomationNameSchema, o as AUTOMATION_ATTENTION_REASON_MAX_CHARS, q as AUTOMATION_SUMMARY_MAX_CHARS, e as AutomationPrecheckSchema, Z as AutomationConcurrencySchema, _ as AutomationActionSchema, $ as AutomationTriggerSchema, g as ISSUE_STATUSES, F as ISSUE_LIMITS, a0 as ISSUE_AGENT_STATUSES, p as parseIssueRef } from './index-kwsivEs-.mjs';
3
+ import { a as authenticatedAutomationsClient, b as automationRunIdFromEnv } from './client-Blpuk2Hr.mjs';
4
4
  import { u as updateAutomationChecked, c as createAutomationChecked } from './precheckCompat-DeEbilbr.mjs';
5
- import { P as ProjectsUnsupportedError, a as ProjectRequestError, s as sharedProjectsClient } from './client-BRuFIwki.mjs';
5
+ import { P as ProjectsUnsupportedError, a as ProjectRequestError, s as sharedProjectsClient } from './client-BXwIqRha.mjs';
6
6
  import { f as formatContextForTool } from './prompt-QHuFx9j6.mjs';
7
+ import { randomUUID } from 'node:crypto';
8
+ import { s as sharedIssuesClient } from './client-BgxQ9aej.mjs';
9
+ import { d as describeIssueError, a as formatIssueDetail, f as formatIssueLine } from './format-CbliQN8V.mjs';
7
10
  import { R as REPORT_PROGRESS_TOOL_NAME, d as REPORT_PROGRESS_TOOL_TITLE, e as REPORT_PROGRESS_TOOL_DESCRIPTION } from './agentGuidance-BDYt2Qy2.mjs';
8
11
 
9
12
  const AUTOMATION_TOOL_NAMES = [
@@ -260,6 +263,110 @@ function registerProjectTools(server, execute) {
260
263
  }
261
264
  }
262
265
 
266
+ const ISSUE_TOOL_NAMES = ["issue_get", "issue_update", "issue_comment", "issue_list"];
267
+ const ISSUE_TOOL_SCHEMAS = {
268
+ issue_get: {
269
+ title: "Read Issue",
270
+ readOnly: true,
271
+ description: "Read a Very Happy issue: title, status, description, recent timeline and runs. Without `issue` it reads the issue this session is working on.",
272
+ inputSchema: {
273
+ issue: z.string().min(1).max(128).optional().describe("Issue key (VH-12) or id; omit for this session's issue")
274
+ }
275
+ },
276
+ issue_update: {
277
+ title: "Update Issue Status",
278
+ readOnly: false,
279
+ description: `Set this session's issue status and/or add a comment. Agents may set only ${ISSUE_AGENT_STATUSES.join(", ")}; in_review and blocked need a comment (what you delivered and how it was verified / exactly what you need). Never done or cancelled: only the owner closes an issue.`,
280
+ inputSchema: {
281
+ status: z.string().min(1).max(64).optional().describe(ISSUE_AGENT_STATUSES.join(" | ")),
282
+ comment: z.string().min(1).max(ISSUE_LIMITS.commentBytes).optional().describe("Comment posted on the issue with this change")
283
+ }
284
+ },
285
+ issue_comment: {
286
+ title: "Comment on Issue",
287
+ readOnly: false,
288
+ description: "Comment on the issue this session is working on. Set mention_owner=true only when the owner must answer or decide something; it lands in their \u300C\u9700\u8981\u6211\u51B3\u7B56\u300D list.",
289
+ inputSchema: {
290
+ body: z.string().min(1).max(ISSUE_LIMITS.commentBytes).describe("Markdown comment"),
291
+ mention_owner: z.boolean().optional().describe("Ask the owner (@me)")
292
+ }
293
+ },
294
+ issue_list: {
295
+ title: "List Issues",
296
+ readOnly: true,
297
+ description: "List this account's issues (read only), newest first.",
298
+ inputSchema: {
299
+ status: z.array(z.enum(ISSUE_STATUSES)).max(ISSUE_STATUSES.length).optional().describe("Only these statuses"),
300
+ project: z.enum(["current", "any"]).optional().describe("current = this session's project only"),
301
+ limit: z.number().int().min(1).max(50).optional()
302
+ }
303
+ }
304
+ };
305
+ function createIssueToolExecutor(sessionId, deps = {}) {
306
+ const client = deps.client ?? sharedIssuesClient();
307
+ const scoped = deps.scoped ?? (() => process.env.VH_TEAM_SCOPE_FILE !== void 0);
308
+ return async (name, args) => {
309
+ const sid = sessionId();
310
+ if (name === "issue_get") {
311
+ const ref = typeof args?.issue === "string" ? args.issue.trim() : "";
312
+ const ctx = await client.session(sid);
313
+ const bound = ctx.issue && (!ref || matchesRef(ref, ctx.issue));
314
+ if (bound && ctx.issue) {
315
+ const detail2 = await client.get(ctx.issue.id).catch(() => null);
316
+ return { text: formatIssueDetail({ issue: ctx.issue, comments: ctx.comments, runs: detail2?.runs, current: ctx.current, bound: true }) };
317
+ }
318
+ if (!ref) throw new Error('issue_not_bound: This session is not working on an issue (it was not started from one). Pass issue="VH-N" to read another.');
319
+ if (scoped()) throw new Error("issue_not_bound: Scoped Teams sessions can read only the issue they are working on.");
320
+ const detail = await client.get(ref);
321
+ return { text: formatIssueDetail({ issue: detail.issue, comments: detail.comments, runs: detail.runs }) };
322
+ }
323
+ if (name === "issue_update") {
324
+ const result = await client.agentUpdate({
325
+ sessionId: sid,
326
+ requestId: randomUUID(),
327
+ ...typeof args?.status === "string" ? { status: args.status } : {},
328
+ ...typeof args?.comment === "string" ? { comment: args.comment } : {}
329
+ });
330
+ return { text: `${result.issue.key} is ${result.issue.status}${result.comment ? " (comment posted)" : ""}` };
331
+ }
332
+ if (name === "issue_comment") {
333
+ const result = await client.agentComment({ sessionId: sid, body: String(args?.body ?? ""), requestId: randomUUID(), ...args?.mention_owner === true ? { mentionOwner: true } : {} });
334
+ return { text: `commented on ${result.issue.key}${args?.mention_owner === true ? " (owner notified)" : ""}` };
335
+ }
336
+ if (scoped()) throw new Error("issue_not_bound: Scoped Teams sessions can read only the issue they are working on (use issue_get).");
337
+ let projectId;
338
+ if (args?.project === "current") {
339
+ const membership = await (deps.projects ?? sharedProjectsClient()).membership(sid).catch(() => ({ projectId: null }));
340
+ if (!membership.projectId) return { text: "not in a project" };
341
+ projectId = membership.projectId;
342
+ }
343
+ const list = await client.list({ ...Array.isArray(args?.status) && args.status.length ? { status: args.status.join(",") } : {}, ...projectId ? { projectId } : {}, limit: typeof args?.limit === "number" ? args.limit : 20 });
344
+ return { text: list.issues.length ? list.issues.map(formatIssueLine).join("\n") : "no issues" };
345
+ };
346
+ }
347
+ function matchesRef(ref, issue) {
348
+ const parsed = parseIssueRef(ref);
349
+ if (!parsed) return false;
350
+ return "number" in parsed ? parsed.number === issue.number : parsed.id === issue.id;
351
+ }
352
+ function registerIssueTools(server, execute) {
353
+ for (const name of ISSUE_TOOL_NAMES) {
354
+ const spec = ISSUE_TOOL_SCHEMAS[name];
355
+ server.registerTool(name, {
356
+ description: spec.description,
357
+ title: spec.title,
358
+ inputSchema: spec.inputSchema,
359
+ annotations: { readOnlyHint: spec.readOnly, idempotentHint: spec.readOnly, openWorldHint: false, destructiveHint: false }
360
+ }, async (args) => {
361
+ try {
362
+ return { content: [{ type: "text", text: (await execute(name, args ?? {})).text }], isError: false };
363
+ } catch (error) {
364
+ return { content: [{ type: "text", text: describeIssueError(error) }], isError: true };
365
+ }
366
+ });
367
+ }
368
+ }
369
+
263
370
  const SELF_REPORT_MIN_INTERVAL_MS = 30 * 1e3;
264
371
  const SELF_REPORT_FRESH_MS = 15 * 60 * 1e3;
265
372
  const ATTENTION_VALUES = ["none", "review", "blocked"];
@@ -310,4 +417,4 @@ function registerReportProgressTool(server, execute) {
310
417
  });
311
418
  }
312
419
 
313
- export { AUTOMATION_TOOL_NAMES as A, PROJECT_TOOL_NAMES as P, registerProjectTools as a, registerReportProgressTool as b, createSelfReportState as c, createProjectToolExecutor as d, normalizePhase as e, normalizeProgress as f, isSelfReportFresh as i, normalizeAttention as n, registerAutomationTools as r, shouldAcceptSelfReport as s };
420
+ export { AUTOMATION_TOOL_NAMES as A, ISSUE_TOOL_NAMES as I, PROJECT_TOOL_NAMES as P, registerProjectTools as a, registerIssueTools as b, registerReportProgressTool as c, createSelfReportState as d, createProjectToolExecutor as e, createIssueToolExecutor as f, normalizePhase as g, normalizeProgress as h, isSelfReportFresh as i, normalizeAttention as n, registerAutomationTools as r, shouldAcceptSelfReport as s };
@@ -1,11 +1,14 @@
1
1
  'use strict';
2
2
 
3
3
  var z = require('zod');
4
- var index = require('./index-BknTkVnR.cjs');
5
- var client = require('./client-oqSAKwmy.cjs');
4
+ var index = require('./index-BiutHOAO.cjs');
5
+ var client = require('./client-D0_UOmC1.cjs');
6
6
  var precheckCompat = require('./precheckCompat-CWOi5c9L.cjs');
7
- var client$1 = require('./client-D-HEr922.cjs');
7
+ var client$1 = require('./client-BnoN4P4t.cjs');
8
8
  var prompt = require('./prompt-Bof2aQkI.cjs');
9
+ var node_crypto = require('node:crypto');
10
+ var client$2 = require('./client-1zIbVVX5.cjs');
11
+ var format = require('./format-P9_M_7ga.cjs');
9
12
  var agentGuidance = require('./agentGuidance-BtBx2xxE.cjs');
10
13
 
11
14
  const AUTOMATION_TOOL_NAMES = [
@@ -262,6 +265,110 @@ function registerProjectTools(server, execute) {
262
265
  }
263
266
  }
264
267
 
268
+ const ISSUE_TOOL_NAMES = ["issue_get", "issue_update", "issue_comment", "issue_list"];
269
+ const ISSUE_TOOL_SCHEMAS = {
270
+ issue_get: {
271
+ title: "Read Issue",
272
+ readOnly: true,
273
+ description: "Read a Very Happy issue: title, status, description, recent timeline and runs. Without `issue` it reads the issue this session is working on.",
274
+ inputSchema: {
275
+ issue: z.z.string().min(1).max(128).optional().describe("Issue key (VH-12) or id; omit for this session's issue")
276
+ }
277
+ },
278
+ issue_update: {
279
+ title: "Update Issue Status",
280
+ readOnly: false,
281
+ description: `Set this session's issue status and/or add a comment. Agents may set only ${index.ISSUE_AGENT_STATUSES.join(", ")}; in_review and blocked need a comment (what you delivered and how it was verified / exactly what you need). Never done or cancelled: only the owner closes an issue.`,
282
+ inputSchema: {
283
+ status: z.z.string().min(1).max(64).optional().describe(index.ISSUE_AGENT_STATUSES.join(" | ")),
284
+ comment: z.z.string().min(1).max(index.ISSUE_LIMITS.commentBytes).optional().describe("Comment posted on the issue with this change")
285
+ }
286
+ },
287
+ issue_comment: {
288
+ title: "Comment on Issue",
289
+ readOnly: false,
290
+ description: "Comment on the issue this session is working on. Set mention_owner=true only when the owner must answer or decide something; it lands in their \u300C\u9700\u8981\u6211\u51B3\u7B56\u300D list.",
291
+ inputSchema: {
292
+ body: z.z.string().min(1).max(index.ISSUE_LIMITS.commentBytes).describe("Markdown comment"),
293
+ mention_owner: z.z.boolean().optional().describe("Ask the owner (@me)")
294
+ }
295
+ },
296
+ issue_list: {
297
+ title: "List Issues",
298
+ readOnly: true,
299
+ description: "List this account's issues (read only), newest first.",
300
+ inputSchema: {
301
+ status: z.z.array(z.z.enum(index.ISSUE_STATUSES)).max(index.ISSUE_STATUSES.length).optional().describe("Only these statuses"),
302
+ project: z.z.enum(["current", "any"]).optional().describe("current = this session's project only"),
303
+ limit: z.z.number().int().min(1).max(50).optional()
304
+ }
305
+ }
306
+ };
307
+ function createIssueToolExecutor(sessionId, deps = {}) {
308
+ const client = deps.client ?? client$2.sharedIssuesClient();
309
+ const scoped = deps.scoped ?? (() => process.env.VH_TEAM_SCOPE_FILE !== void 0);
310
+ return async (name, args) => {
311
+ const sid = sessionId();
312
+ if (name === "issue_get") {
313
+ const ref = typeof args?.issue === "string" ? args.issue.trim() : "";
314
+ const ctx = await client.session(sid);
315
+ const bound = ctx.issue && (!ref || matchesRef(ref, ctx.issue));
316
+ if (bound && ctx.issue) {
317
+ const detail2 = await client.get(ctx.issue.id).catch(() => null);
318
+ return { text: format.formatIssueDetail({ issue: ctx.issue, comments: ctx.comments, runs: detail2?.runs, current: ctx.current, bound: true }) };
319
+ }
320
+ if (!ref) throw new Error('issue_not_bound: This session is not working on an issue (it was not started from one). Pass issue="VH-N" to read another.');
321
+ if (scoped()) throw new Error("issue_not_bound: Scoped Teams sessions can read only the issue they are working on.");
322
+ const detail = await client.get(ref);
323
+ return { text: format.formatIssueDetail({ issue: detail.issue, comments: detail.comments, runs: detail.runs }) };
324
+ }
325
+ if (name === "issue_update") {
326
+ const result = await client.agentUpdate({
327
+ sessionId: sid,
328
+ requestId: node_crypto.randomUUID(),
329
+ ...typeof args?.status === "string" ? { status: args.status } : {},
330
+ ...typeof args?.comment === "string" ? { comment: args.comment } : {}
331
+ });
332
+ return { text: `${result.issue.key} is ${result.issue.status}${result.comment ? " (comment posted)" : ""}` };
333
+ }
334
+ if (name === "issue_comment") {
335
+ const result = await client.agentComment({ sessionId: sid, body: String(args?.body ?? ""), requestId: node_crypto.randomUUID(), ...args?.mention_owner === true ? { mentionOwner: true } : {} });
336
+ return { text: `commented on ${result.issue.key}${args?.mention_owner === true ? " (owner notified)" : ""}` };
337
+ }
338
+ if (scoped()) throw new Error("issue_not_bound: Scoped Teams sessions can read only the issue they are working on (use issue_get).");
339
+ let projectId;
340
+ if (args?.project === "current") {
341
+ const membership = await (deps.projects ?? client$1.sharedProjectsClient()).membership(sid).catch(() => ({ projectId: null }));
342
+ if (!membership.projectId) return { text: "not in a project" };
343
+ projectId = membership.projectId;
344
+ }
345
+ const list = await client.list({ ...Array.isArray(args?.status) && args.status.length ? { status: args.status.join(",") } : {}, ...projectId ? { projectId } : {}, limit: typeof args?.limit === "number" ? args.limit : 20 });
346
+ return { text: list.issues.length ? list.issues.map(format.formatIssueLine).join("\n") : "no issues" };
347
+ };
348
+ }
349
+ function matchesRef(ref, issue) {
350
+ const parsed = index.parseIssueRef(ref);
351
+ if (!parsed) return false;
352
+ return "number" in parsed ? parsed.number === issue.number : parsed.id === issue.id;
353
+ }
354
+ function registerIssueTools(server, execute) {
355
+ for (const name of ISSUE_TOOL_NAMES) {
356
+ const spec = ISSUE_TOOL_SCHEMAS[name];
357
+ server.registerTool(name, {
358
+ description: spec.description,
359
+ title: spec.title,
360
+ inputSchema: spec.inputSchema,
361
+ annotations: { readOnlyHint: spec.readOnly, idempotentHint: spec.readOnly, openWorldHint: false, destructiveHint: false }
362
+ }, async (args) => {
363
+ try {
364
+ return { content: [{ type: "text", text: (await execute(name, args ?? {})).text }], isError: false };
365
+ } catch (error) {
366
+ return { content: [{ type: "text", text: format.describeIssueError(error) }], isError: true };
367
+ }
368
+ });
369
+ }
370
+ }
371
+
265
372
  const SELF_REPORT_MIN_INTERVAL_MS = 30 * 1e3;
266
373
  const SELF_REPORT_FRESH_MS = 15 * 60 * 1e3;
267
374
  const ATTENTION_VALUES = ["none", "review", "blocked"];
@@ -313,7 +420,9 @@ function registerReportProgressTool(server, execute) {
313
420
  }
314
421
 
315
422
  exports.AUTOMATION_TOOL_NAMES = AUTOMATION_TOOL_NAMES;
423
+ exports.ISSUE_TOOL_NAMES = ISSUE_TOOL_NAMES;
316
424
  exports.PROJECT_TOOL_NAMES = PROJECT_TOOL_NAMES;
425
+ exports.createIssueToolExecutor = createIssueToolExecutor;
317
426
  exports.createProjectToolExecutor = createProjectToolExecutor;
318
427
  exports.createSelfReportState = createSelfReportState;
319
428
  exports.isSelfReportFresh = isSelfReportFresh;
@@ -321,6 +430,7 @@ exports.normalizeAttention = normalizeAttention;
321
430
  exports.normalizePhase = normalizePhase;
322
431
  exports.normalizeProgress = normalizeProgress;
323
432
  exports.registerAutomationTools = registerAutomationTools;
433
+ exports.registerIssueTools = registerIssueTools;
324
434
  exports.registerProjectTools = registerProjectTools;
325
435
  exports.registerReportProgressTool = registerReportProgressTool;
326
436
  exports.shouldAcceptSelfReport = shouldAcceptSelfReport;