claude-code-best 2.6.9 → 2.6.11

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 (400) hide show
  1. package/dist/chunks/{AddWorkspaceDirectory-_RSNUS7K.js → AddWorkspaceDirectory-CGKtPsTK.js} +1 -1
  2. package/dist/chunks/{App-4VqMMjIu.js → App-DF28Bpg9.js} +1 -1
  3. package/dist/chunks/ApproveApiKey-BtiWOryM.js +1 -0
  4. package/dist/chunks/{ApproveApiKey-B7oSxzWc.js → ApproveApiKey-D21kbmQj.js} +1 -1
  5. package/dist/chunks/{AssistantSessionChooser-Lf5l_1Dh.js → AssistantSessionChooser-CDfwNVi5.js} +1 -1
  6. package/dist/chunks/{BackgroundTasksDialog-Ckgmqm6u.js → BackgroundTasksDialog-5RpkAbJz.js} +1 -1
  7. package/dist/chunks/{BypassPermissionsModeDialog-DNqPpiPC.js → BypassPermissionsModeDialog-BDWFw61G.js} +1 -1
  8. package/dist/chunks/{ClaudeInChromeOnboarding-BODZ64gw.js → ClaudeInChromeOnboarding-CpN0yIU_.js} +1 -1
  9. package/dist/chunks/{ClaudeMdExternalIncludesDialog-DLI6ey3G.js → ClaudeMdExternalIncludesDialog-CWRHpy22.js} +1 -1
  10. package/dist/chunks/ClaudeMdExternalIncludesDialog-Dje7A0F2.js +1 -0
  11. package/dist/chunks/ConsoleOAuthFlow-DQf3dmj6.js +1 -0
  12. package/dist/chunks/{DesktopHandoff--xyI5kTQ.js → DesktopHandoff-CKHLXiwc.js} +1 -1
  13. package/dist/chunks/{DevChannelsDialog-DJ4mHsA_.js → DevChannelsDialog-BwMFW7Wt.js} +1 -1
  14. package/dist/chunks/{DiffDialog-CVWUlOjm.js → DiffDialog-oA1v0BMo.js} +1 -1
  15. package/dist/chunks/Doctor-ButdpAkf.js +1 -0
  16. package/dist/chunks/{Doctor-DVoFX-9y.js → Doctor-QVMo0fIh.js} +1 -1
  17. package/dist/chunks/{ExitFlow-BKzQPr75.js → ExitFlow-DJLYN-Bd.js} +1 -1
  18. package/dist/chunks/Feedback-CpfhqIEv.js +2 -0
  19. package/dist/chunks/{Grove-G0DtwY22.js → Grove-BugC6ssx.js} +1 -1
  20. package/dist/chunks/Grove-CmdRVv9F.js +1 -0
  21. package/dist/chunks/{HybridTransport-xN03sWrt.js → HybridTransport-PeXWuYfl.js} +1 -1
  22. package/dist/chunks/{ITermBackend-DzN3ZWds.js → ITermBackend-dcs68DGS.js} +1 -1
  23. package/dist/chunks/{InvalidConfigDialog-Iy4Su1Lm.js → InvalidConfigDialog-DdB9_Ve0.js} +1 -1
  24. package/dist/chunks/{InvalidSettingsDialog-dx4y_nY-.js → InvalidSettingsDialog-BL8nxwWQ.js} +1 -1
  25. package/dist/chunks/{MCPConnectionManager-kVO-4BcA.js → MCPConnectionManager-D2eAGUME.js} +1 -1
  26. package/dist/chunks/{McpParsingWarnings-D420-W8M.js → McpParsingWarnings-BYPXpmte.js} +1 -1
  27. package/dist/chunks/MessageSelector-Bzq8CYAH.js +3 -0
  28. package/dist/chunks/{Messages-C5gVVVmY.js → Messages-uRxxAMW-.js} +2 -2
  29. package/dist/chunks/{Onboarding-BkidUre_.js → Onboarding-ByLnHSnW.js} +1 -1
  30. package/dist/chunks/{OverageCreditUpsell-DoRUucoN.js → OverageCreditUpsell-CVNfTSKG.js} +1 -1
  31. package/dist/chunks/{PluginSettings-DhpNtjTm.js → PluginSettings-h9Lj0vW6.js} +1 -1
  32. package/dist/chunks/{PromptInputFooterSuggestions-BnpXzkW9.js → PromptInputFooterSuggestions-CYWSLCgA.js} +1 -1
  33. package/dist/chunks/{PromptInputHelpMenu-DKbiO4C0.js → PromptInputHelpMenu-BsYNhZCw.js} +1 -1
  34. package/dist/chunks/{QueryEngine-J15EOjWx.js → QueryEngine-CxP2S3qi.js} +1 -1
  35. package/dist/chunks/{REPL-nrJ13J1o.js → REPL-CV12-ns7.js} +6 -6
  36. package/dist/chunks/REPL-h1bwm8ee.js +1 -0
  37. package/dist/chunks/{RemoteCallout-DGXIcTKv.js → RemoteCallout-WWO84za-.js} +1 -1
  38. package/dist/chunks/{RemoteSessionManager-3KsuTCZM.js → RemoteSessionManager-Dx2skKnM.js} +1 -1
  39. package/dist/chunks/{ResumeConversation-kS7lkjJm.js → ResumeConversation-CagiCg7-.js} +1 -1
  40. package/dist/chunks/{SSETransport-Cy1rXP6E.js → SSETransport-BHdzk1HO.js} +1 -1
  41. package/dist/chunks/SearchExtraToolsTool-BJ2d8mtx.js +1 -0
  42. package/dist/chunks/SentryErrorBoundary-CYiFofRZ.js +1 -0
  43. package/dist/chunks/{SentryErrorBoundary-B_6MfzRa.js → SentryErrorBoundary-CmewX8Dv.js} +1 -1
  44. package/dist/chunks/Settings-BcgtW60l.js +2 -0
  45. package/dist/chunks/{TeleportProgress-CQUN_zoe.js → TeleportProgress-BmbhZlOg.js} +1 -1
  46. package/dist/chunks/{TeleportRepoMismatchDialog-CPquWrd-.js → TeleportRepoMismatchDialog-BAwtgUhR.js} +1 -1
  47. package/dist/chunks/{TeleportResumeWrapper-NIFNCHIO.js → TeleportResumeWrapper-BlkvOdYn.js} +1 -1
  48. package/dist/chunks/{ThemePicker-DnK0DStD.js → ThemePicker-v_3lh136.js} +1 -1
  49. package/dist/chunks/{TmuxBackend-C00k5RF9.js → TmuxBackend-B7Nabc5t.js} +1 -1
  50. package/dist/chunks/{TrustDialog-CUnvtDeS.js → TrustDialog-CHu5eoeR.js} +1 -1
  51. package/dist/chunks/{ValidationErrorsList-CJbO1qub.js → ValidationErrorsList-BSMetgqr.js} +1 -1
  52. package/dist/chunks/WelcomeV2-DZfBSTu5.js +1 -0
  53. package/dist/chunks/{WindowsTerminalBackend-DSsgxuNK.js → WindowsTerminalBackend-CeSoQ_Nk.js} +1 -1
  54. package/dist/chunks/{add-dir-BPqd010H.js → add-dir-7UeFZkdv.js} +1 -1
  55. package/dist/chunks/{agentDisplay-C0B1b_90.js → agentDisplay-DJgsfIlm.js} +1 -1
  56. package/dist/chunks/{agents-CYs7WGHP.js → agents-DD7gQVZD.js} +1 -1
  57. package/dist/chunks/{agents-DMzVeRly.js → agents-DK0y9jId.js} +1 -1
  58. package/dist/chunks/{ant-BO0Hmoii.js → ant-PhgMZT08.js} +1 -1
  59. package/dist/chunks/api-D4aCzJS-.js +1 -0
  60. package/dist/chunks/{api-DLLVkmRJ.js → api-nHsRf03G.js} +1 -1
  61. package/dist/chunks/{assistant-_dIpsqHM.js → assistant-BJbeizyH.js} +1 -1
  62. package/dist/chunks/{assistant-CHp4-EaF.js → assistant-DO7RAhd3.js} +1 -1
  63. package/dist/chunks/assistant-Dvx-UrTi.js +1 -0
  64. package/dist/chunks/auth-Cp7Nt0ik.js +1 -0
  65. package/dist/chunks/{auth-DelyQc8g.js → auth-DxRiJwZ-.js} +1 -1
  66. package/dist/chunks/{autoMode-D3-o7xPK.js → autoMode-BswSpjo5.js} +1 -1
  67. package/dist/chunks/{autonomy-tTAucjip.js → autonomy-CNJQwoAQ.js} +1 -1
  68. package/dist/chunks/{autonomy-CzSRoxjl.js → autonomy-Lc78acHX.js} +1 -1
  69. package/dist/chunks/{autonomyPanel-DcK8N52K.js → autonomyPanel-DxcumRp-.js} +1 -1
  70. package/dist/chunks/{backgroundHousekeeping-Bbkz61_-.js → backgroundHousekeeping-BkfWgzIP.js} +2 -2
  71. package/dist/chunks/backgroundHousekeeping-BxBI2KkX.js +1 -0
  72. package/dist/chunks/{branch-ZJF4xAh9.js → branch-BPsUW1dk.js} +1 -1
  73. package/dist/chunks/{bridge-C6gSt_32.js → bridge-DcOGvDbb.js} +2 -2
  74. package/dist/chunks/{bridgeConfig-DXUNQp2l.js → bridgeConfig-CvKdNJOg.js} +1 -1
  75. package/dist/chunks/bridgeConfig-Dkn5GGec.js +1 -0
  76. package/dist/chunks/bridgeEnabled-CjaYKTo5.js +1 -0
  77. package/dist/chunks/{bridgeEnabled-G6vxQV-7.js → bridgeEnabled-D01faWms.js} +1 -1
  78. package/dist/chunks/{bridgeMain-DlnIQOtX.js → bridgeMain-Bu2oOX31.js} +6 -6
  79. package/dist/chunks/bridgeMain-CEpOBx8Z.js +1 -0
  80. package/dist/chunks/{bridgeMessaging-mek-AaFi.js → bridgeMessaging-BZMDSZAN.js} +1 -1
  81. package/dist/chunks/{btw-Cz2lyle-.js → btw-B8s-X_cm.js} +1 -1
  82. package/dist/chunks/{buddy-BMqKttFw.js → buddy-DkB1xU1o.js} +1 -1
  83. package/dist/chunks/{bypassPermissionsKillswitch-BxvX48jr.js → bypassPermissionsKillswitch-B9Qz9zKO.js} +1 -1
  84. package/dist/chunks/{caches-wtRUk5y5.js → caches-BuSzLvN9.js} +2 -2
  85. package/dist/chunks/caches-Bvl2jdxF.js +1 -0
  86. package/dist/chunks/{ccrClient-BOrmrmgF.js → ccrClient-CMZXfu9P.js} +1 -1
  87. package/dist/chunks/changeDetector-DTXMv7gH.js +1 -0
  88. package/dist/chunks/channelNotification-B7s1OoRK.js +1 -0
  89. package/dist/chunks/{channelNotification-D8do6HUN.js → channelNotification-t6Kgu-vX.js} +1 -1
  90. package/dist/chunks/{chrome-JF2BXNK6.js → chrome-Cvkozg2F.js} +1 -1
  91. package/dist/chunks/clear-C9pufI6F.js +1 -0
  92. package/dist/chunks/client-CqJ5gRGj.js +1 -0
  93. package/dist/chunks/{color-oh8CGhkI.js → color-AYeAYKyq.js} +1 -1
  94. package/dist/chunks/commands-LcLR5Vgx.js +1 -0
  95. package/dist/chunks/commitAttribution-BZupnGMc.js +1 -0
  96. package/dist/chunks/{commitAttribution-CUdm_sRl.js → commitAttribution-CUqUEjsh.js} +1 -1
  97. package/dist/chunks/{compact-R6vMbGQQ.js → compact-BF0-0_qh.js} +1 -1
  98. package/dist/chunks/{companion-ClxqTyG9.js → companion-Cf_kYtOD.js} +1 -1
  99. package/dist/chunks/{config-CPK9PlWS.js → config-45GLd-lt.js} +1 -1
  100. package/dist/chunks/{config-BQ-MayP6.js → config-JGm0O-ZQ.js} +1 -1
  101. package/dist/chunks/{context-CWfsKYEB.js → context-Bl5VUX5M.js} +1 -1
  102. package/dist/chunks/context-noninteractive-BtzPsJ8k.js +1 -0
  103. package/dist/chunks/{context-noninteractive-BJ4hE3MX.js → context-noninteractive-DdPFYYO9.js} +1 -1
  104. package/dist/chunks/{conversation-DizpkPtq.js → conversation-C3NWyOB3.js} +1 -1
  105. package/dist/chunks/conversation-oX932vBQ.js +1 -0
  106. package/dist/chunks/{copy-BuPCS2HG.js → copy-CbhxPqw4.js} +1 -1
  107. package/dist/chunks/{createSSHSession-Di9Je4Th.js → createSSHSession-Dq2nMChz.js} +1 -1
  108. package/dist/chunks/createSession-1ewHG3eq.js +1 -0
  109. package/dist/chunks/{createSession-D6v0lBtG.js → createSession-DTHPUie-.js} +1 -1
  110. package/dist/chunks/{cronJitterConfig-By18m-PD.js → cronJitterConfig-IGWCRDrv.js} +1 -1
  111. package/dist/chunks/{crossProjectResume-C4YT2T6P.js → crossProjectResume-WmabPBTO.js} +1 -1
  112. package/dist/chunks/datadog-Da7KYZNF.js +1 -0
  113. package/dist/chunks/{datadog-BFSdlK6C.js → datadog-FKvRNyFi.js} +1 -1
  114. package/dist/chunks/{desktop-Bd-JHrBo.js → desktop-ZASE3YWy.js} +1 -1
  115. package/dist/chunks/{diff-DGmINgOc.js → diff-QP-TbxuD.js} +1 -1
  116. package/dist/chunks/{doctor-DQ42RQPx.js → doctor-DVkgmkRb.js} +1 -1
  117. package/dist/chunks/{effort-E6XjzPYR.js → effort-DbryQCua.js} +1 -1
  118. package/dist/chunks/entry-D8y42iuM.js +14 -0
  119. package/dist/chunks/envLessBridgeConfig-CpW0G4Eh.js +1 -0
  120. package/dist/chunks/envLessBridgeConfig-D4bSwf7w.js +1 -0
  121. package/dist/chunks/{exit-CVlpMwCq.js → exit-BsNW67F9.js} +1 -1
  122. package/dist/chunks/{export-CXcPQd0T.js → export-C9A9nOA1.js} +1 -1
  123. package/dist/chunks/{exportRenderer-B9WXgMV2.js → exportRenderer-CyTuZFFF.js} +1 -1
  124. package/dist/chunks/{extra-usage-B2KmuAZe.js → extra-usage-C6s5mXW0.js} +1 -1
  125. package/dist/chunks/extra-usage-DL2C0_BM.js +1 -0
  126. package/dist/chunks/{extra-usage-core-B20tawuN.js → extra-usage-core-BFCwz3XM.js} +1 -1
  127. package/dist/chunks/{extra-usage-noninteractive-DZRe98BZ.js → extra-usage-noninteractive-IHq7s6wm.js} +1 -1
  128. package/dist/chunks/{extraUsage-CxqJdnGC.js → extraUsage-CIrG_Lbw.js} +1 -1
  129. package/dist/chunks/extractMemories-CA2eJwHy.js +1 -0
  130. package/dist/chunks/fast-B01NO2uA.js +1 -0
  131. package/dist/chunks/{fast-CPmJ2bp3.js → fast-NEKXVZqQ.js} +1 -1
  132. package/dist/chunks/{feedback-4GY3ahvw.js → feedback-D5iWO16P.js} +1 -1
  133. package/dist/chunks/{firstPartyEventLogger-CISUrAsf.js → firstPartyEventLogger-Dr3TK3IU.js} +1 -1
  134. package/dist/chunks/{flushGate-Dr8sMjB7.js → flushGate-DygHyqmB.js} +1 -1
  135. package/dist/chunks/gates-BSpXbh9s.js +1 -0
  136. package/dist/chunks/{gates-DI4pxvrD.js → gates-Dyz_t5zJ.js} +1 -1
  137. package/dist/chunks/{gemini-Dcfosr2Z.js → gemini-BEmbnRQR.js} +1 -1
  138. package/dist/chunks/{generateRecap-CH_fgtxk.js → generateRecap-DZiXeYWn.js} +1 -1
  139. package/dist/chunks/{generateSessionName-DO0R__8w.js → generateSessionName-EbB2vl9t.js} +1 -1
  140. package/dist/chunks/{githubRepoPathMapping-D5I8CVDz.js → githubRepoPathMapping-dky2fPeU.js} +1 -1
  141. package/dist/chunks/{grok-X0FzcE6Y.js → grok-BM6ZJ4w2.js} +1 -1
  142. package/dist/chunks/{growthbook-DZPT2JzB.js → growthbook-JD-WW3yV.js} +1 -1
  143. package/dist/chunks/{heapdump-Cq6i0wJH.js → heapdump-8vyFTWly.js} +1 -1
  144. package/dist/chunks/{help-B8ddA-Ec.js → help-C2DM0p8U.js} +1 -1
  145. package/dist/chunks/{hooks-CvFNccdv.js → hooks-CMh0a2pT.js} +1 -1
  146. package/dist/chunks/hooks-QXGwOfWj.js +1 -0
  147. package/dist/chunks/{hostAdapter-D3s4JFk-.js → hostAdapter-CmbGfgNV.js} +1 -1
  148. package/dist/chunks/{ide-CzxV5_D7.js → ide-Bn8R7397.js} +1 -1
  149. package/dist/chunks/{inboundAttachments-B3ZTyNKF.js → inboundAttachments-BweY9sYo.js} +1 -1
  150. package/dist/chunks/inboundAttachments-N5DKbZSl.js +1 -0
  151. package/dist/chunks/initReplBridge-3CfmzjJL.js +1 -0
  152. package/dist/chunks/{insights-DiWlKgVQ.js → insights-NOl_PxhN.js} +1 -1
  153. package/dist/chunks/{install-BFpg1zm1.js → install-BoT2GIcz.js} +1 -1
  154. package/dist/chunks/{install-github-app-BUCGGSw0.js → install-github-app-SD4PvrTR.js} +1 -1
  155. package/dist/chunks/{install-slack-app-D5JDqzbs.js → install-slack-app-DLQXpOCt.js} +1 -1
  156. package/dist/chunks/{instrumentation--BToLJT9.js → instrumentation-BXJk0mxI.js} +3 -3
  157. package/dist/chunks/{job-mUyxSEc2.js → job-CnlMlm3t.js} +1 -1
  158. package/dist/chunks/{keybindings-D4DbE4G0.js → keybindings-BjaRqcbD.js} +1 -1
  159. package/dist/chunks/{lang-cMcnaxAR.js → lang-BI8CzjL6.js} +1 -1
  160. package/dist/chunks/{language-sTn9sA3E.js → language-CRIdgj2F.js} +1 -1
  161. package/dist/chunks/language-DmbRGIs8.js +1 -0
  162. package/dist/chunks/{launchAgentsPlatform-CAfyCAsQ.js → launchAgentsPlatform-Bg9guiqy.js} +1 -1
  163. package/dist/chunks/{launchAutofixPr-CSMamZS6.js → launchAutofixPr-BMfXGXwN.js} +1 -1
  164. package/dist/chunks/{launchLocalMemory-nYAwNsNT.js → launchLocalMemory-lgnXOi6U.js} +1 -1
  165. package/dist/chunks/{launchLocalVault-yPp8S-tG.js → launchLocalVault-C0Oz-lto.js} +1 -1
  166. package/dist/chunks/{launchMemoryStores-Dk3SXucB.js → launchMemoryStores-Bw11ruRi.js} +1 -1
  167. package/dist/chunks/{launchOnboarding-BoqmHyRx.js → launchOnboarding-WEW34cnl.js} +1 -1
  168. package/dist/chunks/{launchSchedule-C2HBjD6C.js → launchSchedule-X0rcM_kM.js} +1 -1
  169. package/dist/chunks/{launchSkillStore-B5Yjvi-k.js → launchSkillStore-DpxSlMCU.js} +1 -1
  170. package/dist/chunks/{launchTeleport-BayvAnwh.js → launchTeleport-uOtMsYcI.js} +1 -1
  171. package/dist/chunks/{launchVault-BszsgPbZ.js → launchVault-CJyJaPqH.js} +1 -1
  172. package/dist/chunks/{loadAgentsDir-Cl2w3uvH.js → loadAgentsDir-D-xcJ22-.js} +45 -45
  173. package/dist/chunks/loadAgentsDir-ILQxk_4G.js +1 -0
  174. package/dist/chunks/{loadPluginHooks-YHtjByxm.js → loadPluginHooks-BC1Ea7_D.js} +1 -1
  175. package/dist/chunks/{localSearch-CpeqVibs.js → localSearch-B6Ho7Vfj.js} +1 -1
  176. package/dist/chunks/localSearch-COyJeP9E.js +1 -0
  177. package/dist/chunks/login-Cf89biEK.js +1 -0
  178. package/dist/chunks/{login-TVtq34WQ.js → login-uOvq1xN_.js} +1 -1
  179. package/dist/chunks/{logoV2Utils-DwaRnvOY.js → logoV2Utils-C2cdcgtp.js} +1 -1
  180. package/dist/chunks/logout-CEXwTlEX.js +1 -0
  181. package/dist/chunks/{magicDocs-_yNWB88A.js → magicDocs-BBjAhGN1.js} +1 -1
  182. package/dist/chunks/{main-gTbhsbIs.js → main-DGsAUuG_.js} +15 -15
  183. package/dist/chunks/{mappers-COd8OOml.js → mappers-CO6koWDa.js} +1 -1
  184. package/dist/chunks/{mcp-CChzTC5v.js → mcp-BrN_Tbq5.js} +2 -2
  185. package/dist/chunks/{mcp-DoraEndj.js → mcp-CZltNml5.js} +1 -1
  186. package/dist/chunks/mcp-D6JOqdT8.js +2 -0
  187. package/dist/chunks/{mcpServer-Wd9rZG_E.js → mcpServer-C-0K3Azg.js} +1 -1
  188. package/dist/chunks/{mcpServer-CpBN77YB.js → mcpServer-C_aDoLMg.js} +1 -1
  189. package/dist/chunks/{memory-I21QZZ9h.js → memory-BYYOgo4e.js} +1 -1
  190. package/dist/chunks/model-CHgqwg6N.js +1 -0
  191. package/dist/chunks/{model-BrHh21Db.js → model-CrAPXYZA.js} +1 -1
  192. package/dist/chunks/{onChangeAppState-Cn_HSmmQ.js → onChangeAppState-C6ZIU1SD.js} +1 -1
  193. package/dist/chunks/{openai-BD2V4lHN.js → openai-Cm4gozk8.js} +1 -1
  194. package/dist/chunks/{overageCreditGrant-B47t5a73.js → overageCreditGrant-Pe7C_4Qi.js} +1 -1
  195. package/dist/chunks/{passes-DAOPYX0C.js → passes-BpI6azLG.js} +1 -1
  196. package/dist/chunks/{paths-q1-Ni8Oh.js → paths-D9CVAtXU.js} +2 -2
  197. package/dist/chunks/{permissions-BmxTU-Pk.js → permissions-C7wcAYOc.js} +1 -1
  198. package/dist/chunks/{pipeTransport-DnHE3axn.js → pipeTransport-wjeyTgon.js} +1 -1
  199. package/dist/chunks/{plan-4dmnQ9bv.js → plan-DA8IRpHQ.js} +1 -1
  200. package/dist/chunks/{plugin-CG7lJIpf.js → plugin-N2pTkzOz.js} +1 -1
  201. package/dist/chunks/{pluginAutoupdate-CPLuidh-.js → pluginAutoupdate-DCc5qDvo.js} +1 -1
  202. package/dist/chunks/{pluginBlocklist-BHxIUqu4.js → pluginBlocklist-C_Veew3p.js} +1 -1
  203. package/dist/chunks/{pluginCliCommands-BcDIvxR3.js → pluginCliCommands-BN7loc5T.js} +1 -1
  204. package/dist/chunks/{pluginFlagging-Dh6rYOvj.js → pluginFlagging-Dpu1cvMo.js} +1 -1
  205. package/dist/chunks/{pluginOperations-fdLcp72i.js → pluginOperations-CP6NFNog.js} +1 -1
  206. package/dist/chunks/pluginStartupCheck-BF0xUEJG.js +1 -0
  207. package/dist/chunks/{pluginStartupCheck-Dy7EckW4.js → pluginStartupCheck-DvWHwNnD.js} +1 -1
  208. package/dist/chunks/{plugins-C3-iYKTp.js → plugins-BHoniP5f.js} +1 -1
  209. package/dist/chunks/policyLimits-sh7ywop0.js +1 -0
  210. package/dist/chunks/{pollConfig-BGXMaSla.js → pollConfig-xYxAmuXi.js} +1 -1
  211. package/dist/chunks/{poor-CxAil0Mi.js → poor-C0KwfFF0.js} +1 -1
  212. package/dist/chunks/{poorMode-DFcYVnMT.js → poorMode-D7WXWZtJ.js} +1 -1
  213. package/dist/chunks/poorMode-DZQXZ_zu.js +1 -0
  214. package/dist/chunks/{print-Cog1o-Tw.js → print-BcRG8gkQ.js} +4 -4
  215. package/dist/chunks/{privacy-settings-D6g7p6sB.js → privacy-settings-DT3LGgsH.js} +1 -1
  216. package/dist/chunks/{processBashCommand-DqgujTR4.js → processBashCommand-DPfJ9lrj.js} +1 -1
  217. package/dist/chunks/{processSlashCommand-DUPS9Xx3.js → processSlashCommand-DyPCeZux.js} +1 -1
  218. package/dist/chunks/{prompt-BmOnuQfF.js → prompt-C69iv9cI.js} +1 -1
  219. package/dist/chunks/prompt-DaIJzI1P.js +1 -0
  220. package/dist/chunks/prompt-DnLsyywj.js +1 -0
  221. package/dist/chunks/{promptEditor-ClGwMkWl.js → promptEditor-BZqpLrcZ.js} +1 -1
  222. package/dist/chunks/{protocolHandler--b0d38gF.js → protocolHandler-CfmBTg36.js} +1 -1
  223. package/dist/chunks/{rate-limit-options-DD2ZRREl.js → rate-limit-options-P7oQuwrl.js} +1 -1
  224. package/dist/chunks/{rcDebugLog-fhwD4wm-.js → rcDebugLog-CTOZ2K3E.js} +1 -1
  225. package/dist/chunks/{referral-rRvT6UDX.js → referral-D26orIXE.js} +1 -1
  226. package/dist/chunks/{refresh-C7S_6LOQ.js → refresh-BeSXaVya.js} +1 -1
  227. package/dist/chunks/{registerProtocol-Bu_tz5Au.js → registerProtocol-DSQh-I21.js} +1 -1
  228. package/dist/chunks/{registry-Bk0vdx_8.js → registry-Dp5W2V8B.js} +1 -1
  229. package/dist/chunks/{release-notes-BShc_V-B.js → release-notes-Cg85UVo8.js} +1 -1
  230. package/dist/chunks/{releaseNotes-D3wZdQVZ.js → releaseNotes-Dps4SeVh.js} +2 -2
  231. package/dist/chunks/{reload-plugins-CpytFAAC.js → reload-plugins-Bo-R1CF3.js} +1 -1
  232. package/dist/chunks/{remote-env-B9Of1v31.js → remote-env-ChQuV3rO.js} +1 -1
  233. package/dist/chunks/{remoteBridgeCore-BXp6nJ8q.js → remoteBridgeCore-BXtygJA-.js} +1 -1
  234. package/dist/chunks/{remoteControlServer-BvlTaHu4.js → remoteControlServer-sqW_JLwC.js} +1 -1
  235. package/dist/chunks/{rename-DhTddAd7.js → rename-Bigaipiq.js} +1 -1
  236. package/dist/chunks/{resume-DwVeFqnc.js → resume-CtOI2pOJ.js} +1 -1
  237. package/dist/chunks/{runtimeObserver-dtT0QHYO.js → runtimeObserver-CJ955XSo.js} +2 -2
  238. package/dist/chunks/{runtimeObserver-BtgDP8Gz.js → runtimeObserver-DojpbVgU.js} +1 -1
  239. package/dist/chunks/sandbox-adapter-BbrJOJNZ.js +1 -0
  240. package/dist/chunks/{sandbox-toggle-CG2vZNAb.js → sandbox-toggle-B9dn09gt.js} +1 -1
  241. package/dist/chunks/searchExtraTools-Denn1c1E.js +1 -0
  242. package/dist/chunks/{sentry-DFk8bzvt.js → sentry-B6tWUNGj.js} +1 -1
  243. package/dist/chunks/{session-DifFcUdR.js → session-C5yIf_zV.js} +1 -1
  244. package/dist/chunks/{sessionDiscovery-CRbLIQv1.js → sessionDiscovery-CQ3iMN4s.js} +1 -1
  245. package/dist/chunks/sessionFileAccessHooks-1IAwziOQ.js +1 -0
  246. package/dist/chunks/sessionMemory-3TAJyNuJ.js +1 -0
  247. package/dist/chunks/{sessionMemory-BdptRKL8.js → sessionMemory-HZNzEOLd.js} +1 -1
  248. package/dist/chunks/sessionMemoryUtils-BAkA4sGG.js +1 -0
  249. package/dist/chunks/sessionObserver-DqLMFMLM.js +1 -0
  250. package/dist/chunks/{sessionObserver-D3vw6SJ_.js → sessionObserver-MQA9_wZw.js} +1 -1
  251. package/dist/chunks/sessionStorage-CFfMypMQ.js +1 -0
  252. package/dist/chunks/{sessionTitle-DnvlYJ-c.js → sessionTitle-BafqFHLc.js} +1 -1
  253. package/dist/chunks/{sessionTracing-BkzKJi0v.js → sessionTracing-_obALZbi.js} +1 -1
  254. package/dist/chunks/{settingsSync-CHZVpM34.js → settingsSync-DBWi-NXU.js} +1 -1
  255. package/dist/chunks/{setup-GxlEx1KG.js → setup-C_GrS0Rd.js} +1 -1
  256. package/dist/chunks/{setup-BpwYOhci.js → setup-D1sQnli9.js} +2 -2
  257. package/dist/chunks/{setup-BfecYO-n.js → setup-DIxsjw17.js} +1 -1
  258. package/dist/chunks/{shadowedRuleDetection-FNzEipG0.js → shadowedRuleDetection-CwMwv9uM.js} +1 -1
  259. package/dist/chunks/{sideQuestion-Bfa0SZn5.js → sideQuestion-CI5pyoQF.js} +1 -1
  260. package/dist/chunks/{sink-DpAjuilF.js → sink-BSTUubjl.js} +1 -1
  261. package/dist/chunks/sink-fGBOXJab.js +1 -0
  262. package/dist/chunks/sinks-B9EsWFeb.js +2 -0
  263. package/dist/chunks/sinks-BCl9slVM.js +1 -0
  264. package/dist/chunks/{skill-learning-BSeEbCnP.js → skill-learning-DThetLpo.js} +1 -1
  265. package/dist/chunks/{skillChangeDetector-BEDBRGbY.js → skillChangeDetector-BOH-fyEn.js} +1 -1
  266. package/dist/chunks/{skillGapStore-B4GmZRJ0.js → skillGapStore-BmjCK9ZR.js} +2 -2
  267. package/dist/chunks/{skillGapStore-BCO6YB3H.js → skillGapStore-ax0GuSmd.js} +1 -1
  268. package/dist/chunks/{skillGenerator-QgDWAvzK.js → skillGenerator-Dj3xInwG.js} +2 -2
  269. package/dist/chunks/skillLearning-BDsjN-u-.js +1 -0
  270. package/dist/chunks/skillLearning-CXUsWxdi.js +1 -0
  271. package/dist/chunks/{skillPanel-srZjMIbC.js → skillPanel-CJ4tvX7A.js} +3 -3
  272. package/dist/chunks/{skillSearchPanel-DTvHcwNK.js → skillSearchPanel-hwZvXKZ4.js} +2 -2
  273. package/dist/chunks/{skills-BlVUkWg4.js → skills-BVWDDcD9.js} +1 -1
  274. package/dist/chunks/{sprites-QO9r_mXk.js → sprites-B-V9otkt.js} +1 -1
  275. package/dist/chunks/{stats-DdXM-u7l.js → stats-DcS6ZnsX.js} +1 -1
  276. package/dist/chunks/{status-BIZWtZqI.js → status-DZKjK9CE.js} +1 -1
  277. package/dist/chunks/{statusNoticeHelpers-9sIAjiE6.js → statusNoticeHelpers-reCcymMR.js} +1 -1
  278. package/dist/chunks/{tag-DDJ8pAsl.js → tag-B5b-waIf.js} +1 -1
  279. package/dist/chunks/{tasks-DYt6udr3.js → tasks-vXM-vULI.js} +1 -1
  280. package/dist/chunks/teamHelpers-BBhol4dD.js +1 -0
  281. package/dist/chunks/{teamHelpers-BJuKEuyS.js → teamHelpers-CbFFdvPw.js} +1 -1
  282. package/dist/chunks/{teammateModeSnapshot-Zp1weNIZ.js → teammateModeSnapshot-DkkMv2-b.js} +1 -1
  283. package/dist/chunks/teammateModeSnapshot-W5G22rwQ.js +1 -0
  284. package/dist/chunks/{teleport-DkoFG3EI.js → teleport-Da0rKwCo.js} +1 -1
  285. package/dist/chunks/{templateJobs-V2-TVeGE.js → templateJobs-BLQqrGjb.js} +1 -1
  286. package/dist/chunks/{terminalSetup-l0Vv_v1c.js → terminalSetup-BKfVYk3w.js} +1 -1
  287. package/dist/chunks/{terminalSetup-DMUDhXur.js → terminalSetup-BLU99dau.js} +1 -1
  288. package/dist/chunks/{theme-Dm1yCDce.js → theme-BM2CXWYE.js} +1 -1
  289. package/dist/chunks/{thinkback-DQAZE5SA.js → thinkback-Cd1g_2A9.js} +1 -1
  290. package/dist/chunks/thinkback-ChP6pvCS.js +1 -0
  291. package/dist/chunks/{thinkback-play-BJcGmc9X.js → thinkback-play-Cg8Ys2dq.js} +1 -1
  292. package/dist/chunks/{toolEventObserver-C-BImvCz.js → toolEventObserver-71WYUega.js} +1 -1
  293. package/dist/chunks/{toolEventObserver-BgkqkNwy.js → toolEventObserver-nxcfjaur.js} +1 -1
  294. package/dist/chunks/{toolPool-DYvz_Mjt.js → toolPool-CN1cPGQz.js} +1 -1
  295. package/dist/chunks/toolPool-CygNb5cr.js +1 -0
  296. package/dist/chunks/{trustedDevice-CXsk3eij.js → trustedDevice-Brc9B8cZ.js} +1 -1
  297. package/dist/chunks/{trustedDevice-BDrK9AQ6.js → trustedDevice-C0KJ0qiK.js} +1 -1
  298. package/dist/chunks/{ultrareviewCommand-Bc8hMzHz.js → ultrareviewCommand-BY0T8Pzl.js} +1 -1
  299. package/dist/chunks/undercover-bx8TwG9W.js +1 -0
  300. package/dist/chunks/{undercover-kRoI_nlN.js → undercover-j27F8p49.js} +1 -1
  301. package/dist/chunks/{updateCCB-BPGNN7VA.js → updateCCB-Dgb2ed9v.js} +1 -1
  302. package/dist/chunks/upgrade-BkHztwGA.js +1 -0
  303. package/dist/chunks/{upgrade-DmEGLk6v.js → upgrade-zs7K9UkG.js} +1 -1
  304. package/dist/chunks/{upload-49qk5TBL.js → upload-Df84yCBz.js} +1 -1
  305. package/dist/chunks/{usage-DhJDFJVx.js → usage-DKENFl_k.js} +1 -1
  306. package/dist/chunks/{usage-sYgTL8wR.js → usage-lTILrQJV.js} +1 -1
  307. package/dist/chunks/{useMainLoopModel-CJaR_qEJ.js → useMainLoopModel-X1PW9z5A.js} +1 -1
  308. package/dist/chunks/{useManagePlugins-B1FpmxFo.js → useManagePlugins-DDKeDfIv.js} +1 -1
  309. package/dist/chunks/{useMergedTools-eMPZ95TX.js → useMergedTools-CC3XwtOR.js} +1 -1
  310. package/dist/chunks/{useSearchInput-CR-b0Qi6.js → useSearchInput-DNpNG36H.js} +1 -1
  311. package/dist/chunks/{useSettingsErrors-p-PFBeaC.js → useSettingsErrors-vGzCYpIA.js} +1 -1
  312. package/dist/chunks/{useVoice-D3PqTfCK.js → useVoice-DmObXoAh.js} +1 -1
  313. package/dist/chunks/{util-BZ2fS3PR.js → util-9vJ9WIeZ.js} +1 -1
  314. package/dist/chunks/utils-Dg0S2Vfn.js +1 -0
  315. package/dist/chunks/{validatePlugin-QtcXXmZu.js → validatePlugin-_Z4zhjSx.js} +1 -1
  316. package/dist/chunks/{vim-LmepJftY.js → vim-CK7lReJi.js} +1 -1
  317. package/dist/chunks/{voice-CNRTt4gH.js → voice-BLVF7E3Q.js} +1 -1
  318. package/dist/chunks/{voiceModeEnabled-wWM929QG.js → voiceModeEnabled-BpLBjY2-.js} +1 -1
  319. package/dist/chunks/voiceModeEnabled-BqFYzoXw.js +1 -0
  320. package/dist/chunks/voiceStreamSTT-C0pkuXGm.js +1 -0
  321. package/dist/chunks/{voiceStreamSTT-CnK9GN6Q.js → voiceStreamSTT-i4tUq3Hu.js} +1 -1
  322. package/dist/chunks/{workerRegistry-CrIpKIZe.js → workerRegistry-Bg7dWLHf.js} +1 -1
  323. package/dist/chunks/worktree-Cg4p1J__.js +1 -0
  324. package/dist/chunks/{xml-CMdTGiv6.js → xml-K_hNNh2b.js} +1 -1
  325. package/dist/cli.js +1 -1
  326. package/package.json +1 -1
  327. package/dist/chunks/ApproveApiKey-Bmcop2Do.js +0 -1
  328. package/dist/chunks/ClaudeMdExternalIncludesDialog-DO61Zz-S.js +0 -1
  329. package/dist/chunks/ConsoleOAuthFlow-FSHC5mxO.js +0 -1
  330. package/dist/chunks/Doctor-Dcntgp5Z.js +0 -1
  331. package/dist/chunks/Feedback-hFZwDSRp.js +0 -2
  332. package/dist/chunks/Grove-Cmcsx2UE.js +0 -1
  333. package/dist/chunks/MessageSelector-CDVC2CAj.js +0 -3
  334. package/dist/chunks/REPL-Dk3Ics9i.js +0 -1
  335. package/dist/chunks/SearchExtraToolsTool-C998WSxs.js +0 -1
  336. package/dist/chunks/SentryErrorBoundary-BJLT-ebr.js +0 -1
  337. package/dist/chunks/Settings-DBopjMkN.js +0 -2
  338. package/dist/chunks/WelcomeV2-BBFGft_e.js +0 -1
  339. package/dist/chunks/api-B2HW-oZI.js +0 -1
  340. package/dist/chunks/assistant-BmM44yln.js +0 -1
  341. package/dist/chunks/auth-ndSNSeqS.js +0 -1
  342. package/dist/chunks/backgroundHousekeeping-DVo3ndZr.js +0 -1
  343. package/dist/chunks/bridgeConfig-ZcbBdhji.js +0 -1
  344. package/dist/chunks/bridgeEnabled-D5qCI5v2.js +0 -1
  345. package/dist/chunks/bridgeMain-B4Zv8UOe.js +0 -1
  346. package/dist/chunks/caches-D_W3nCFE.js +0 -1
  347. package/dist/chunks/changeDetector-CUsHUdul.js +0 -1
  348. package/dist/chunks/channelNotification-CLVU5AuO.js +0 -1
  349. package/dist/chunks/clear-BP-G1JWa.js +0 -1
  350. package/dist/chunks/client-BHfY6SC5.js +0 -1
  351. package/dist/chunks/commands-E0eNJ_XZ.js +0 -1
  352. package/dist/chunks/commitAttribution-B4DOgUS7.js +0 -1
  353. package/dist/chunks/context-noninteractive-D1Kxn5e0.js +0 -1
  354. package/dist/chunks/conversation-C23rDJe3.js +0 -1
  355. package/dist/chunks/createSession-Bsa0VJKS.js +0 -1
  356. package/dist/chunks/datadog-MUvg76p3.js +0 -1
  357. package/dist/chunks/entry-Di8oWZUk.js +0 -14
  358. package/dist/chunks/envLessBridgeConfig-BNvozi46.js +0 -1
  359. package/dist/chunks/envLessBridgeConfig-CUTBQKDY.js +0 -1
  360. package/dist/chunks/extra-usage-DVtAa1zD.js +0 -1
  361. package/dist/chunks/extractMemories-8uB606Y0.js +0 -1
  362. package/dist/chunks/fast-DTGg3pRh.js +0 -1
  363. package/dist/chunks/gates-BbF5S-Dy.js +0 -1
  364. package/dist/chunks/hooks-gwB4Eotj.js +0 -1
  365. package/dist/chunks/inboundAttachments-DxrrrqBW.js +0 -1
  366. package/dist/chunks/initReplBridge-DWpGy3aE.js +0 -1
  367. package/dist/chunks/language-DC6bsdvI.js +0 -1
  368. package/dist/chunks/loadAgentsDir-6_9ZFegv.js +0 -1
  369. package/dist/chunks/localSearch-DbEm6f3k.js +0 -1
  370. package/dist/chunks/login-D2x89UCR.js +0 -1
  371. package/dist/chunks/logout-BBPihkXp.js +0 -1
  372. package/dist/chunks/mcp-D-0wE0nJ.js +0 -2
  373. package/dist/chunks/model-C6_WjCy0.js +0 -1
  374. package/dist/chunks/pluginStartupCheck-fyqW-stg.js +0 -1
  375. package/dist/chunks/policyLimits-DUGrXcje.js +0 -1
  376. package/dist/chunks/poorMode-BkPHRLuG.js +0 -1
  377. package/dist/chunks/prompt-B-8CD-W_.js +0 -1
  378. package/dist/chunks/prompt-Da3gIGA8.js +0 -1
  379. package/dist/chunks/sandbox-adapter-Cm8kCM_U.js +0 -1
  380. package/dist/chunks/searchExtraTools-D-RZ9DId.js +0 -1
  381. package/dist/chunks/sessionFileAccessHooks-Bixkjai4.js +0 -1
  382. package/dist/chunks/sessionMemory-T1K_mJRE.js +0 -1
  383. package/dist/chunks/sessionMemoryUtils-q3xRtP-z.js +0 -1
  384. package/dist/chunks/sessionObserver-i_3day_6.js +0 -1
  385. package/dist/chunks/sessionStorage-CusaYoh0.js +0 -1
  386. package/dist/chunks/sink-BSwQ045N.js +0 -1
  387. package/dist/chunks/sinks-C37Xl5c3.js +0 -2
  388. package/dist/chunks/sinks-DHHmQJi-.js +0 -1
  389. package/dist/chunks/skillLearning-CFYgFRPE.js +0 -1
  390. package/dist/chunks/skillLearning-en7AuVDZ.js +0 -1
  391. package/dist/chunks/teamHelpers-Cw5dPQor.js +0 -1
  392. package/dist/chunks/teammateModeSnapshot-BXC7ssXX.js +0 -1
  393. package/dist/chunks/thinkback-D1mk7cq1.js +0 -1
  394. package/dist/chunks/toolPool-DNH5H4Jg.js +0 -1
  395. package/dist/chunks/undercover-DUrQYxYo.js +0 -1
  396. package/dist/chunks/upgrade-BTI562Ce.js +0 -1
  397. package/dist/chunks/utils-hhztcb0b.js +0 -1
  398. package/dist/chunks/voiceModeEnabled-B57V7REx.js +0 -1
  399. package/dist/chunks/voiceStreamSTT-Dp-1uSjP.js +0 -1
  400. package/dist/chunks/worktree-YbEK6b36.js +0 -1
@@ -1 +1 @@
1
- import{n as e}from"./chunk-DR8-3Aex.js";import{ai as t,ci as n}from"./paths-q1-Ni8Oh.js";import{d as r,s as i}from"./debug-UI3T040K.js";import{BE as a,Ko as o,Lo as s,Wo as c,b_ as l,co as u,fm as d,gm as f,h_ as p,m_ as m,st as h,ut as g,v_ as _,x_ as v,y_ as y,zE as b}from"./loadAgentsDir-Cl2w3uvH.js";import{F as x,I as S,J as C,L as w,P as T,R as E}from"./rcDebugLog-fhwD4wm-.js";import{n as D,t as O}from"./openaiShared-Bjrci9n8.js";import{randomUUID as k}from"crypto";async function*A(e,n,i,s,f){try{let u=C(f.model),p=o(e,i),h=await Promise.all(i.map(e=>g(e,{getToolPermissionContext:f.getToolPermissionContext,tools:i,agents:f.agents,allowedAgentTypes:f.allowedAgentTypes,model:f.model}))),v=h.filter(e=>{let t=e;return t.type!==`advisor_20260301`&&t.type!==`computer_20250124`}),b=E(p,n),T=w(v),O=S(f.toolChoice),A=m({maxRetries:0,fetchOverride:f.fetchOverride,source:f.querySource});r(`[Grok] Calling model=${u}, messages=${b.length}, tools=${T.length}`);let j=x(await A.chat.completions.create({model:u,messages:b,...T.length>0&&{tools:T,...O&&{tool_choice:O}},stream:!0,stream_options:{include_usage:!0},...f.temperatureOverride!==void 0&&{temperature:f.temperatureOverride}},{signal:s}),u),M={},N=[],P,F={input_tokens:0,output_tokens:0,cache_creation_input_tokens:0,cache_read_input_tokens:0},I=0,L=Date.now();for await(let e of j){switch(e.type){case`message_start`:P=e.message,I=Date.now()-L,e.message?.usage&&(F=D(F,e.message.usage));break;case`content_block_start`:{let t=e.index,n=e.content_block;n.type===`tool_use`?M[t]={...n,input:``}:n.type===`text`?M[t]={...n,text:``}:n.type===`thinking`?M[t]={...n,thinking:``,signature:``}:M[t]={...n};break}case`content_block_delta`:{let t=e.index,n=e.delta,r=M[t];if(!r)break;n.type===`text_delta`?r.text=(r.text||``)+n.text:n.type===`input_json_delta`?r.input=(r.input||``)+n.partial_json:n.type===`thinking_delta`?r.thinking=(r.thinking||``)+n.thinking:n.type===`signature_delta`&&(r.signature=n.signature);break}case`content_block_stop`:{let t=M[e.index];if(!t||!P)break;let n={message:{...P,content:c([t],i,f.agentId)},requestId:void 0,type:`assistant`,uuid:k(),timestamp:new Date().toISOString()};N.push(n),yield n;break}case`message_delta`:{let t=e.usage;t&&(F=D(F,t));break}case`message_stop`:break}e.type===`message_stop`&&F.input_tokens+F.output_tokens>0&&d(t(u,F),F,f.model),yield{type:`stream_event`,event:e,...e.type===`message_start`?{ttftMs:I}:void 0}}a(f.langfuseTrace??null,{model:u,provider:`grok`,input:_(p,n),output:y(N),usage:{input_tokens:F.input_tokens,output_tokens:F.output_tokens,cache_creation_input_tokens:F.cache_creation_input_tokens,cache_read_input_tokens:F.cache_read_input_tokens},startTime:new Date(L),endTime:new Date,completionStartTime:I>0?new Date(L+I):void 0,tools:l(h)})}catch(e){let t=e instanceof Error?e.message:String(e);r(`[Grok] Error: ${t}`,{level:`error`}),yield u({content:`API Error: ${t}`,apiError:`api_error`,error:e instanceof Error?e:Error(String(e))})}}e((()=>{p(),O(),T(),s(),h(),i(),f(),n(),b(),v()}))();export{A as queryModelGrok};
1
+ import{n as e}from"./chunk-DR8-3Aex.js";import{ai as t,ci as n}from"./paths-D9CVAtXU.js";import{d as r,s as i}from"./debug-UI3T040K.js";import{BE as a,Ko as o,Lo as s,Wo as c,b_ as l,co as u,fm as d,gm as f,h_ as p,m_ as m,st as h,ut as g,v_ as _,x_ as v,y_ as y,zE as b}from"./loadAgentsDir-D-xcJ22-.js";import{F as x,I as S,J as C,L as w,P as T,R as E}from"./rcDebugLog-CTOZ2K3E.js";import{n as D,t as O}from"./openaiShared-Bjrci9n8.js";import{randomUUID as k}from"crypto";async function*A(e,n,i,s,f){try{let u=C(f.model),p=o(e,i),h=await Promise.all(i.map(e=>g(e,{getToolPermissionContext:f.getToolPermissionContext,tools:i,agents:f.agents,allowedAgentTypes:f.allowedAgentTypes,model:f.model}))),v=h.filter(e=>{let t=e;return t.type!==`advisor_20260301`&&t.type!==`computer_20250124`}),b=E(p,n),T=w(v),O=S(f.toolChoice),A=m({maxRetries:0,fetchOverride:f.fetchOverride,source:f.querySource});r(`[Grok] Calling model=${u}, messages=${b.length}, tools=${T.length}`);let j=x(await A.chat.completions.create({model:u,messages:b,...T.length>0&&{tools:T,...O&&{tool_choice:O}},stream:!0,stream_options:{include_usage:!0},...f.temperatureOverride!==void 0&&{temperature:f.temperatureOverride}},{signal:s}),u),M={},N=[],P,F={input_tokens:0,output_tokens:0,cache_creation_input_tokens:0,cache_read_input_tokens:0},I=0,L=Date.now();for await(let e of j){switch(e.type){case`message_start`:P=e.message,I=Date.now()-L,e.message?.usage&&(F=D(F,e.message.usage));break;case`content_block_start`:{let t=e.index,n=e.content_block;n.type===`tool_use`?M[t]={...n,input:``}:n.type===`text`?M[t]={...n,text:``}:n.type===`thinking`?M[t]={...n,thinking:``,signature:``}:M[t]={...n};break}case`content_block_delta`:{let t=e.index,n=e.delta,r=M[t];if(!r)break;n.type===`text_delta`?r.text=(r.text||``)+n.text:n.type===`input_json_delta`?r.input=(r.input||``)+n.partial_json:n.type===`thinking_delta`?r.thinking=(r.thinking||``)+n.thinking:n.type===`signature_delta`&&(r.signature=n.signature);break}case`content_block_stop`:{let t=M[e.index];if(!t||!P)break;let n={message:{...P,content:c([t],i,f.agentId)},requestId:void 0,type:`assistant`,uuid:k(),timestamp:new Date().toISOString()};N.push(n),yield n;break}case`message_delta`:{let t=e.usage;t&&(F=D(F,t));break}case`message_stop`:break}e.type===`message_stop`&&F.input_tokens+F.output_tokens>0&&d(t(u,F),F,f.model),yield{type:`stream_event`,event:e,...e.type===`message_start`?{ttftMs:I}:void 0}}a(f.langfuseTrace??null,{model:u,provider:`grok`,input:_(p,n),output:y(N),usage:{input_tokens:F.input_tokens,output_tokens:F.output_tokens,cache_creation_input_tokens:F.cache_creation_input_tokens,cache_read_input_tokens:F.cache_read_input_tokens},startTime:new Date(L),endTime:new Date,completionStartTime:I>0?new Date(L+I):void 0,tools:l(h)})}catch(e){let t=e instanceof Error?e.message:String(e);r(`[Grok] Error: ${t}`,{level:`error`}),yield u({content:`API Error: ${t}`,apiError:`api_error`,error:e instanceof Error?e:Error(String(e))})}}e((()=>{p(),O(),T(),s(),h(),i(),f(),n(),b(),v()}))();export{A as queryModelGrok};
@@ -1 +1 @@
1
- import{A as e,C as t,D as n,E as r,O as i,S as a,T as o,_ as s,b as c,d as l,f as u,g as d,h as f,k as p,l as m,m as h,p as g,u as _,v,w as y,x as b,y as x}from"./paths-q1-Ni8Oh.js";a();export{m as checkGate_CACHED_OR_BLOCKING,_ as checkSecurityRestrictionGate,l as checkStatsigFeatureGate_CACHED_MAY_BE_STALE,u as clearGrowthBookConfigOverrides,g as getAllGrowthBookFeatures,h as getApiBaseUrlHost,f as getDynamicConfig_BLOCKS_ON_INIT,d as getDynamicConfig_CACHED_MAY_BE_STALE,s as getFeatureValue_CACHED_MAY_BE_STALE,v as getFeatureValue_CACHED_WITH_REFRESH,x as getFeatureValue_DEPRECATED,c as getGrowthBookConfigOverrides,b as hasGrowthBookEnvOverride,t as initializeGrowthBook,y as onGrowthBookRefresh,o as refreshGrowthBookAfterAuthChange,r as refreshGrowthBookFeatures,n as resetGrowthBook,i as setGrowthBookConfigOverride,p as setupPeriodicGrowthBookRefresh,e as stopPeriodicGrowthBookRefresh};
1
+ import{A as e,C as t,D as n,E as r,O as i,S as a,T as o,_ as s,b as c,d as l,f as u,g as d,h as f,k as p,l as m,m as h,p as g,u as _,v,w as y,x as b,y as x}from"./paths-D9CVAtXU.js";a();export{m as checkGate_CACHED_OR_BLOCKING,_ as checkSecurityRestrictionGate,l as checkStatsigFeatureGate_CACHED_MAY_BE_STALE,u as clearGrowthBookConfigOverrides,g as getAllGrowthBookFeatures,h as getApiBaseUrlHost,f as getDynamicConfig_BLOCKS_ON_INIT,d as getDynamicConfig_CACHED_MAY_BE_STALE,s as getFeatureValue_CACHED_MAY_BE_STALE,v as getFeatureValue_CACHED_WITH_REFRESH,x as getFeatureValue_DEPRECATED,c as getGrowthBookConfigOverrides,b as hasGrowthBookEnvOverride,t as initializeGrowthBook,y as onGrowthBookRefresh,o as refreshGrowthBookAfterAuthChange,r as refreshGrowthBookFeatures,n as resetGrowthBook,i as setGrowthBookConfigOverride,p as setupPeriodicGrowthBookRefresh,e as stopPeriodicGrowthBookRefresh};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./chunk-DR8-3Aex.js";import{Ct as t,cn as n}from"./state-sIHsFpDu.js";import{Xc as r,el as i}from"./paths-q1-Ni8Oh.js";import{E as a,K as o,V as s,d as c,h as l,p as u,s as d,w as f}from"./debug-UI3T040K.js";import{n as p,r as m}from"./analytics-DqMQntaB.js";import{o as h,s as g}from"./log-CzsijfHZ.js";import{join as _}from"path";import{createWriteStream as v,writeFileSync as y}from"fs";import{readFile as b,readdir as x,writeFile as S}from"fs/promises";import{pipeline as C}from"stream/promises";import{getHeapSnapshot as w,getHeapSpaceStatistics as T,getHeapStatistics as E}from"v8";async function D(e,n=0){let r=process.memoryUsage(),i=E(),a=process.resourceUsage(),o=process.uptime(),s;try{s=T()}catch{}let c=process._getActiveHandles().length,l=process._getActiveRequests().length,u;try{u=(await x(`/proc/self/fd`)).length}catch{}let d;try{d=await b(`/proc/self/smaps_rollup`,`utf8`)}catch{}let f=r.rss-r.heapUsed,p=o>0?r.rss/o:0,m=p*3600/(1024*1024),h=[];return i.number_of_detached_contexts>0&&h.push(`${i.number_of_detached_contexts} detached context(s) - possible iframe/context leak`),c>100&&h.push(`${c} active handles - possible timer/socket leak`),f>r.heapUsed&&h.push(`Native memory > heap - leak may be in native addons (node-pty, sharp, etc.)`),m>100&&h.push(`High memory growth rate: ${m.toFixed(1)} MB/hour`),u&&u>500&&h.push(`${u} open file descriptors - possible file/socket leak`),{timestamp:new Date().toISOString(),sessionId:t(),trigger:e,dumpNumber:n,uptimeSeconds:o,memoryUsage:{heapUsed:r.heapUsed,heapTotal:r.heapTotal,external:r.external,arrayBuffers:r.arrayBuffers,rss:r.rss},memoryGrowthRate:{bytesPerSecond:p,mbPerHour:m},v8HeapStats:{heapSizeLimit:i.heap_size_limit,mallocedMemory:i.malloced_memory,peakMallocedMemory:i.peak_malloced_memory,detachedContexts:i.number_of_detached_contexts,nativeContexts:i.number_of_native_contexts},v8HeapSpaces:s?.map(e=>({name:e.space_name,size:e.space_size,used:e.space_used_size,available:e.space_available_size})),resourceUsage:{maxRSS:a.maxRSS*1024,userCPUTime:a.userCPUTime,systemCPUTime:a.systemCPUTime},activeHandles:c,activeRequests:l,openFileDescriptors:u,analysis:{potentialLeaks:h,recommendation:h.length>0?`WARNING: ${h.length} potential leak indicator(s) found. See potentialLeaks array.`:`No obvious leak indicators. Check heap snapshot for retained objects.`},smapsRollup:d,platform:process.platform,nodeVersion:process.version,ccVersion:`2.6.9`}}async function O(e=`manual`,n=0){try{let i=t(),o=await D(e,n),s=e=>(e/1024/1024/1024).toFixed(3);c(`[HeapDump] Memory state:
1
+ import{n as e}from"./chunk-DR8-3Aex.js";import{Ct as t,cn as n}from"./state-sIHsFpDu.js";import{Xc as r,el as i}from"./paths-D9CVAtXU.js";import{E as a,K as o,V as s,d as c,h as l,p as u,s as d,w as f}from"./debug-UI3T040K.js";import{n as p,r as m}from"./analytics-DqMQntaB.js";import{o as h,s as g}from"./log-CzsijfHZ.js";import{join as _}from"path";import{createWriteStream as v,writeFileSync as y}from"fs";import{readFile as b,readdir as x,writeFile as S}from"fs/promises";import{pipeline as C}from"stream/promises";import{getHeapSnapshot as w,getHeapSpaceStatistics as T,getHeapStatistics as E}from"v8";async function D(e,n=0){let r=process.memoryUsage(),i=E(),a=process.resourceUsage(),o=process.uptime(),s;try{s=T()}catch{}let c=process._getActiveHandles().length,l=process._getActiveRequests().length,u;try{u=(await x(`/proc/self/fd`)).length}catch{}let d;try{d=await b(`/proc/self/smaps_rollup`,`utf8`)}catch{}let f=r.rss-r.heapUsed,p=o>0?r.rss/o:0,m=p*3600/(1024*1024),h=[];return i.number_of_detached_contexts>0&&h.push(`${i.number_of_detached_contexts} detached context(s) - possible iframe/context leak`),c>100&&h.push(`${c} active handles - possible timer/socket leak`),f>r.heapUsed&&h.push(`Native memory > heap - leak may be in native addons (node-pty, sharp, etc.)`),m>100&&h.push(`High memory growth rate: ${m.toFixed(1)} MB/hour`),u&&u>500&&h.push(`${u} open file descriptors - possible file/socket leak`),{timestamp:new Date().toISOString(),sessionId:t(),trigger:e,dumpNumber:n,uptimeSeconds:o,memoryUsage:{heapUsed:r.heapUsed,heapTotal:r.heapTotal,external:r.external,arrayBuffers:r.arrayBuffers,rss:r.rss},memoryGrowthRate:{bytesPerSecond:p,mbPerHour:m},v8HeapStats:{heapSizeLimit:i.heap_size_limit,mallocedMemory:i.malloced_memory,peakMallocedMemory:i.peak_malloced_memory,detachedContexts:i.number_of_detached_contexts,nativeContexts:i.number_of_native_contexts},v8HeapSpaces:s?.map(e=>({name:e.space_name,size:e.space_size,used:e.space_used_size,available:e.space_available_size})),resourceUsage:{maxRSS:a.maxRSS*1024,userCPUTime:a.userCPUTime,systemCPUTime:a.systemCPUTime},activeHandles:c,activeRequests:l,openFileDescriptors:u,analysis:{potentialLeaks:h,recommendation:h.length>0?`WARNING: ${h.length} potential leak indicator(s) found. See potentialLeaks array.`:`No obvious leak indicators. Check heap snapshot for retained objects.`},smapsRollup:d,platform:process.platform,nodeVersion:process.version,ccVersion:`2.6.11`}}async function O(e=`manual`,n=0){try{let i=t(),o=await D(e,n),s=e=>(e/1024/1024/1024).toFixed(3);c(`[HeapDump] Memory state:
2
2
  heapUsed: ${s(o.memoryUsage.heapUsed)} GB (in snapshot)
3
3
  external: ${s(o.memoryUsage.external)} GB (NOT in snapshot)
4
4
  rss: ${s(o.memoryUsage.rss)} GB (total process)
@@ -1 +1 @@
1
- import{n as e,o as t}from"./chunk-DR8-3Aex.js";import{F as n,Q as r,Rn as i,b as a,i as o,n as s,p as c,r as l,t as u,tt as d,x as f}from"./src-Di342QoJ.js";import{t as p}from"./jsx-runtime-D-D469L8.js";import{C as m,S as h}from"./startupProfiler-DnXZaX4A.js";import{Fi as g,Hi as _,Li as v,Nx as y,Px as b,Uw as x,Xi as S,nT as C,rT as w}from"./loadAgentsDir-Cl2w3uvH.js";import{t as T}from"./useKeybinding-FsOnjW6T.js";import{l as E,u as D}from"./referral-rRvT6UDX.js";import{n as O,r as k}from"./modalContext-CmSKRyea.js";import{n as A,t as j}from"./PromptInputHelpMenu-DKbiO4C0.js";function M({commands:e,maxHeight:t,columns:n,title:r,onCancel:i,emptyMessage:s}){let{headerFocused:c,focusHeader:l}=o(),u=Math.max(1,n-10),d=Math.max(1,Math.floor((t-10)/2)),p=(0,N.useMemo)(()=>{let t=new Set;return e.filter(e=>t.has(e.name)?!1:(t.add(e.name),!0)).sort((e,t)=>e.name.localeCompare(t.name)).map(e=>({label:`/${e.name}`,value:e.name,description:m(_(e),u,!0)}))},[e,u]);return(0,P.jsx)(f,{flexDirection:`column`,paddingY:1,children:e.length===0&&s?(0,P.jsx)(a,{dimColor:!0,children:s}):(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(a,{children:r}),(0,P.jsx)(f,{marginTop:1,children:(0,P.jsx)(y,{options:p,visibleOptionCount:d,onCancel:i,disableSelection:!0,hideIndexes:!0,layout:`compact-vertical`,onUpFromFirstItem:l,isDisabled:c})})]})})}var N,P,F=e((()=>{i(),N=t(i(),1),S(),h(),u(),b(),P=p()}));function I(){return(0,L.jsxs)(f,{flexDirection:`column`,paddingY:1,gap:1,children:[(0,L.jsxs)(f,{flexDirection:`column`,gap:1,children:[(0,L.jsx)(a,{bold:!0,children:`Getting started`}),(0,L.jsxs)(f,{flexDirection:`column`,children:[(0,L.jsxs)(a,{children:[(0,L.jsx)(a,{bold:!0,children:`1. `}),(0,L.jsx)(a,{children:`Ask a question or describe a task — Claude will explore your code and respond.`})]}),(0,L.jsxs)(a,{children:[(0,L.jsx)(a,{bold:!0,children:`2. `}),(0,L.jsx)(a,{children:`When Claude wants to edit files or run commands, you review and approve each action.`})]}),(0,L.jsxs)(a,{children:[(0,L.jsx)(a,{bold:!0,children:`3. `}),(0,L.jsx)(a,{children:`Type `}),(0,L.jsx)(a,{bold:!0,children:`/commit`}),(0,L.jsx)(a,{children:` to commit changes, `}),(0,L.jsx)(a,{bold:!0,children:`/help`}),(0,L.jsx)(a,{children:` for commands, or `}),(0,L.jsx)(a,{bold:!0,children:`?`}),(0,L.jsx)(a,{children:` for shortcuts.`})]})]})]}),(0,L.jsxs)(f,{flexDirection:`column`,children:[(0,L.jsx)(f,{children:(0,L.jsx)(a,{bold:!0,children:`Shortcuts`})}),(0,L.jsx)(j,{gap:2,fixedWidth:!0})]})]})}var L,R=e((()=>{i(),u(),A(),L=p()}));function z({onClose:e,commands:t}){let{rows:i,columns:o}=n(),u=Math.floor(i/2),p=k(),m=()=>e(`Help dialog dismissed`,{display:`system`});d(`help:dismiss`,m,{context:`Help`});let h=D(m),_=w(`help:dismiss`,`Help`,`esc`),y=v(),b=t.filter(e=>y.has(e.name)&&!e.isHidden),x=[];if(process.env.USER_TYPE===`ant`){let e=new Set(g.map(e=>e.name));b=b.filter(t=>!e.has(t.name)),x=t.filter(t=>e.has(t.name)&&!t.isHidden)}let S=t.filter(e=>!y.has(e.name)&&!e.isHidden),C=[(0,B.jsx)(s,{title:`general`,children:(0,B.jsx)(I,{})},`general`)];return C.push((0,B.jsx)(s,{title:`commands`,children:(0,B.jsx)(M,{commands:b,maxHeight:u,columns:o,title:`Browse default commands:`,onCancel:m})},`commands`)),C.push((0,B.jsx)(s,{title:`custom-commands`,children:(0,B.jsx)(M,{commands:S,maxHeight:u,columns:o,title:`Browse custom commands:`,emptyMessage:`No custom commands found`,onCancel:m})},`custom`)),process.env.USER_TYPE===`ant`&&x.length>0&&C.push((0,B.jsx)(s,{title:`[ant-only]`,children:(0,B.jsx)(M,{commands:x,maxHeight:u,columns:o,title:`Browse ant-only commands:`,onCancel:m})},`ant-only`)),(0,B.jsx)(f,{flexDirection:`column`,height:p?void 0:u,children:(0,B.jsxs)(c,{color:`professionalBlue`,children:[(0,B.jsx)(l,{title:process.env.USER_TYPE===`ant`?`/help`:`Claude Code v2.6.9`,color:`professionalBlue`,defaultTab:`general`,children:C}),(0,B.jsx)(f,{marginTop:1,children:(0,B.jsxs)(a,{children:[`For more help: `,(0,B.jsx)(r,{url:`https://code.claude.com/docs/en/overview`})]})}),(0,B.jsx)(f,{marginTop:1,children:(0,B.jsx)(a,{dimColor:!0,children:h.pending?(0,B.jsxs)(B.Fragment,{children:[`Press `,h.keyName,` again to exit`]}):(0,B.jsxs)(a,{italic:!0,children:[_,` to cancel`]})})})]})})}var B,V=e((()=>{i(),E(),C(),S(),O(),x(),u(),T(),F(),R(),B=p()})),H,U;e((()=>{V(),H=p(),U=async(e,{options:{commands:t}})=>(0,H.jsx)(z,{commands:t,onClose:e})}))();export{U as call};
1
+ import{n as e,o as t}from"./chunk-DR8-3Aex.js";import{F as n,Q as r,Rn as i,b as a,i as o,n as s,p as c,r as l,t as u,tt as d,x as f}from"./src-Di342QoJ.js";import{t as p}from"./jsx-runtime-D-D469L8.js";import{C as m,S as h}from"./startupProfiler-DnXZaX4A.js";import{Fi as g,Hi as _,Li as v,Nx as y,Px as b,Uw as x,Xi as S,nT as C,rT as w}from"./loadAgentsDir-D-xcJ22-.js";import{t as T}from"./useKeybinding-FsOnjW6T.js";import{l as E,u as D}from"./referral-D26orIXE.js";import{n as O,r as k}from"./modalContext-CmSKRyea.js";import{n as A,t as j}from"./PromptInputHelpMenu-BsYNhZCw.js";function M({commands:e,maxHeight:t,columns:n,title:r,onCancel:i,emptyMessage:s}){let{headerFocused:c,focusHeader:l}=o(),u=Math.max(1,n-10),d=Math.max(1,Math.floor((t-10)/2)),p=(0,N.useMemo)(()=>{let t=new Set;return e.filter(e=>t.has(e.name)?!1:(t.add(e.name),!0)).sort((e,t)=>e.name.localeCompare(t.name)).map(e=>({label:`/${e.name}`,value:e.name,description:m(_(e),u,!0)}))},[e,u]);return(0,P.jsx)(f,{flexDirection:`column`,paddingY:1,children:e.length===0&&s?(0,P.jsx)(a,{dimColor:!0,children:s}):(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(a,{children:r}),(0,P.jsx)(f,{marginTop:1,children:(0,P.jsx)(y,{options:p,visibleOptionCount:d,onCancel:i,disableSelection:!0,hideIndexes:!0,layout:`compact-vertical`,onUpFromFirstItem:l,isDisabled:c})})]})})}var N,P,F=e((()=>{i(),N=t(i(),1),S(),h(),u(),b(),P=p()}));function I(){return(0,L.jsxs)(f,{flexDirection:`column`,paddingY:1,gap:1,children:[(0,L.jsxs)(f,{flexDirection:`column`,gap:1,children:[(0,L.jsx)(a,{bold:!0,children:`Getting started`}),(0,L.jsxs)(f,{flexDirection:`column`,children:[(0,L.jsxs)(a,{children:[(0,L.jsx)(a,{bold:!0,children:`1. `}),(0,L.jsx)(a,{children:`Ask a question or describe a task — Claude will explore your code and respond.`})]}),(0,L.jsxs)(a,{children:[(0,L.jsx)(a,{bold:!0,children:`2. `}),(0,L.jsx)(a,{children:`When Claude wants to edit files or run commands, you review and approve each action.`})]}),(0,L.jsxs)(a,{children:[(0,L.jsx)(a,{bold:!0,children:`3. `}),(0,L.jsx)(a,{children:`Type `}),(0,L.jsx)(a,{bold:!0,children:`/commit`}),(0,L.jsx)(a,{children:` to commit changes, `}),(0,L.jsx)(a,{bold:!0,children:`/help`}),(0,L.jsx)(a,{children:` for commands, or `}),(0,L.jsx)(a,{bold:!0,children:`?`}),(0,L.jsx)(a,{children:` for shortcuts.`})]})]})]}),(0,L.jsxs)(f,{flexDirection:`column`,children:[(0,L.jsx)(f,{children:(0,L.jsx)(a,{bold:!0,children:`Shortcuts`})}),(0,L.jsx)(j,{gap:2,fixedWidth:!0})]})]})}var L,R=e((()=>{i(),u(),A(),L=p()}));function z({onClose:e,commands:t}){let{rows:i,columns:o}=n(),u=Math.floor(i/2),p=k(),m=()=>e(`Help dialog dismissed`,{display:`system`});d(`help:dismiss`,m,{context:`Help`});let h=D(m),_=w(`help:dismiss`,`Help`,`esc`),y=v(),b=t.filter(e=>y.has(e.name)&&!e.isHidden),x=[];if(process.env.USER_TYPE===`ant`){let e=new Set(g.map(e=>e.name));b=b.filter(t=>!e.has(t.name)),x=t.filter(t=>e.has(t.name)&&!t.isHidden)}let S=t.filter(e=>!y.has(e.name)&&!e.isHidden),C=[(0,B.jsx)(s,{title:`general`,children:(0,B.jsx)(I,{})},`general`)];return C.push((0,B.jsx)(s,{title:`commands`,children:(0,B.jsx)(M,{commands:b,maxHeight:u,columns:o,title:`Browse default commands:`,onCancel:m})},`commands`)),C.push((0,B.jsx)(s,{title:`custom-commands`,children:(0,B.jsx)(M,{commands:S,maxHeight:u,columns:o,title:`Browse custom commands:`,emptyMessage:`No custom commands found`,onCancel:m})},`custom`)),process.env.USER_TYPE===`ant`&&x.length>0&&C.push((0,B.jsx)(s,{title:`[ant-only]`,children:(0,B.jsx)(M,{commands:x,maxHeight:u,columns:o,title:`Browse ant-only commands:`,onCancel:m})},`ant-only`)),(0,B.jsx)(f,{flexDirection:`column`,height:p?void 0:u,children:(0,B.jsxs)(c,{color:`professionalBlue`,children:[(0,B.jsx)(l,{title:process.env.USER_TYPE===`ant`?`/help`:`Claude Code v2.6.11`,color:`professionalBlue`,defaultTab:`general`,children:C}),(0,B.jsx)(f,{marginTop:1,children:(0,B.jsxs)(a,{children:[`For more help: `,(0,B.jsx)(r,{url:`https://code.claude.com/docs/en/overview`})]})}),(0,B.jsx)(f,{marginTop:1,children:(0,B.jsx)(a,{dimColor:!0,children:h.pending?(0,B.jsxs)(B.Fragment,{children:[`Press `,h.keyName,` again to exit`]}):(0,B.jsxs)(a,{italic:!0,children:[_,` to cancel`]})})})]})})}var B,V=e((()=>{i(),E(),C(),S(),O(),x(),u(),T(),F(),R(),B=p()})),H,U;e((()=>{V(),H=p(),U=async(e,{options:{commands:t}})=>(0,H.jsx)(z,{commands:t,onClose:e})}))();export{U as call};
@@ -1,4 +1,4 @@
1
- import{n as e,o as t}from"./chunk-DR8-3Aex.js";import{n,t as r}from"./memoize-DNnuA2aU.js";import{n as i,t as a}from"./figures-gfT9mM8P.js";import{Q as o,Rn as s,b as c,f as l,t as u,tt as d,x as f}from"./src-Di342QoJ.js";import{t as p}from"./jsx-runtime-D-D469L8.js";import{cn as m,ht as h}from"./state-sIHsFpDu.js";import{Po as g,Qa as _,jo as v,no as y,oo as b}from"./paths-q1-Ni8Oh.js";import{n as x,r as S}from"./analytics-DqMQntaB.js";import{A_ as C,F_ as w,I_ as T,KS as E,Ku as D,LS as O,M_ as k,N_ as A,Nx as j,P_ as ee,Px as M,RS as N,j_ as P,qS as F,qu as te,zS as ne}from"./loadAgentsDir-Cl2w3uvH.js";import{t as re}from"./useKeybinding-FsOnjW6T.js";function ie(e,t){let n={PreToolUse:{},PostToolUse:{},PostToolUseFailure:{},PermissionDenied:{},Notification:{},UserPromptSubmit:{},SessionStart:{},SessionEnd:{},Stop:{},StopFailure:{},SubagentStart:{},SubagentStop:{},PreCompact:{},PostCompact:{},PermissionRequest:{},Setup:{},TeammateIdle:{},TaskCreated:{},TaskCompleted:{},Elicitation:{},ElicitationResult:{},ConfigChange:{},WorktreeCreate:{},WorktreeRemove:{},InstructionsLoaded:{},CwdChanged:{},FileChanged:{}},r=L(t);C(e).forEach(e=>{let t=n[e.event];if(t){let n=r[e.event].matcherMetadata===void 0?``:e.matcher||``;t[n]||(t[n]=[]),t[n].push(e)}});let i=h();if(i)for(let[e,t]of Object.entries(i)){let r=e,i=n[r];if(i)for(let e of t??[]){let t=e.matcher||``;if(`pluginRoot`in e){i[t]??(i[t]=[]);for(let n of e.hooks)i[t].push({event:r,config:n,matcher:e.matcher,source:`pluginHook`,pluginName:e.pluginId})}else if(process.env.USER_TYPE===`ant`){i[t]??(i[t]=[]);for(let n of e.hooks)i[t].push({event:r,config:{type:`command`,command:`[ANT-ONLY] Built-in Hook`},matcher:e.matcher,source:`builtinHook`})}}}return n}function ae(e,t){return T(Object.keys(e[t]||{}),e,t)}function oe(e,t,n){let r=n??``;return e[t]?.[r]??[]}function I(e,t){return L(t)[e].matcherMetadata}var L,R=e((()=>{r(),m(),w(),L=n(function(e){return{PreToolUse:{summary:`Before tool execution`,description:`Input to command is JSON of tool call arguments.
1
+ import{n as e,o as t}from"./chunk-DR8-3Aex.js";import{n,t as r}from"./memoize-DNnuA2aU.js";import{n as i,t as a}from"./figures-gfT9mM8P.js";import{Q as o,Rn as s,b as c,f as l,t as u,tt as d,x as f}from"./src-Di342QoJ.js";import{t as p}from"./jsx-runtime-D-D469L8.js";import{cn as m,ht as h}from"./state-sIHsFpDu.js";import{Po as g,Qa as _,jo as v,no as y,oo as b}from"./paths-D9CVAtXU.js";import{n as x,r as S}from"./analytics-DqMQntaB.js";import{A_ as C,F_ as w,I_ as T,KS as E,Ku as D,LS as O,M_ as k,N_ as A,Nx as j,P_ as ee,Px as M,RS as N,j_ as P,qS as F,qu as te,zS as ne}from"./loadAgentsDir-D-xcJ22-.js";import{t as re}from"./useKeybinding-FsOnjW6T.js";function ie(e,t){let n={PreToolUse:{},PostToolUse:{},PostToolUseFailure:{},PermissionDenied:{},Notification:{},UserPromptSubmit:{},SessionStart:{},SessionEnd:{},Stop:{},StopFailure:{},SubagentStart:{},SubagentStop:{},PreCompact:{},PostCompact:{},PermissionRequest:{},Setup:{},TeammateIdle:{},TaskCreated:{},TaskCompleted:{},Elicitation:{},ElicitationResult:{},ConfigChange:{},WorktreeCreate:{},WorktreeRemove:{},InstructionsLoaded:{},CwdChanged:{},FileChanged:{}},r=L(t);C(e).forEach(e=>{let t=n[e.event];if(t){let n=r[e.event].matcherMetadata===void 0?``:e.matcher||``;t[n]||(t[n]=[]),t[n].push(e)}});let i=h();if(i)for(let[e,t]of Object.entries(i)){let r=e,i=n[r];if(i)for(let e of t??[]){let t=e.matcher||``;if(`pluginRoot`in e){i[t]??(i[t]=[]);for(let n of e.hooks)i[t].push({event:r,config:n,matcher:e.matcher,source:`pluginHook`,pluginName:e.pluginId})}else if(process.env.USER_TYPE===`ant`){i[t]??(i[t]=[]);for(let n of e.hooks)i[t].push({event:r,config:{type:`command`,command:`[ANT-ONLY] Built-in Hook`},matcher:e.matcher,source:`builtinHook`})}}}return n}function ae(e,t){return T(Object.keys(e[t]||{}),e,t)}function oe(e,t,n){let r=n??``;return e[t]?.[r]??[]}function I(e,t){return L(t)[e].matcherMetadata}var L,R=e((()=>{r(),m(),w(),L=n(function(e){return{PreToolUse:{summary:`Before tool execution`,description:`Input to command is JSON of tool call arguments.
2
2
  Exit code 0 - stdout/stderr not shown
3
3
  Exit code 2 - show stderr to model and block tool call
4
4
  Other exit codes - show stderr to user only but continue with tool call`,matcherMetadata:{fieldToMatch:`tool_name`,values:e}},PostToolUse:{summary:`After tool execution`,description:`Input to command is JSON with fields "inputs" (tool call arguments) and "response" (tool call response).
@@ -0,0 +1 @@
1
+ import{Yt as e,un as t,vn as n,yn as r}from"./loadAgentsDir-D-xcJ22-.js";r();export{e as executeSessionEndHooks,t as getSessionEndHookTimeoutMs,n as hasWorktreeCreateHook};
@@ -1 +1 @@
1
- import{n as e}from"./chunk-DR8-3Aex.js";import{d as t,s as n}from"./debug-UI3T040K.js";import{o as r,r as i}from"./common-B379wT22.js";import{c as a,s as o}from"./escHotkey-Cyz0yyh1.js";import{i as s,n as c,r as l}from"./gates-DI4pxvrD.js";import{n as u,t as d}from"./executor-4EeD8GNm.js";import{format as f}from"util";function p(){try{return Bun.spawnSync({cmd:[`osascript`,`-e`,`tell application "System Events" to get name of every process whose background only is false`],stdout:`pipe`,stderr:`pipe`}).exitCode===0}catch{return!1}}function m(){try{return Bun.spawnSync({cmd:[`screencapture`,`-x`,`-R`,`0,0,1,1`,`/dev/null`],stdout:`pipe`,stderr:`pipe`}).exitCode===0}catch{return!1}}function h(){return _||(_={serverName:i,logger:new g,executor:d({getMouseAnimationEnabled:()=>l().mouseAnimation,getHideBeforeActionEnabled:()=>l().hideBeforeAction}),ensureOsPermissions:async()=>{if(process.platform!==`darwin`)return{granted:!0};let e=a().tcc;if(e){let t=e.checkAccessibility(),n=e.checkScreenRecording();return t&&n?{granted:!0}:{granted:!1,accessibility:t,screenRecording:n}}let t=p(),n=m();return t&&n?{granted:!0}:{granted:!1,accessibility:t,screenRecording:n}},isDisabled:()=>!c(),getSubGates:l,getAutoUnhideEnabled:()=>!0,cropRawPatch:()=>null},_)}var g,_,v=e((()=>{n(),r(),u(),s(),o(),g=class{silly(e,n){t(f(e,n??``),{level:`debug`})}debug(e,n){t(f(e,n??``),{level:`debug`})}info(e,n){t(f(e,n??``),{level:`info`})}warn(e,n){t(f(e,n??``),{level:`warn`})}error(e,n){t(f(e,n??``),{level:`error`})}}}));export{v as n,h as t};
1
+ import{n as e}from"./chunk-DR8-3Aex.js";import{d as t,s as n}from"./debug-UI3T040K.js";import{o as r,r as i}from"./common-B379wT22.js";import{c as a,s as o}from"./escHotkey-Cyz0yyh1.js";import{i as s,n as c,r as l}from"./gates-Dyz_t5zJ.js";import{n as u,t as d}from"./executor-4EeD8GNm.js";import{format as f}from"util";function p(){try{return Bun.spawnSync({cmd:[`osascript`,`-e`,`tell application "System Events" to get name of every process whose background only is false`],stdout:`pipe`,stderr:`pipe`}).exitCode===0}catch{return!1}}function m(){try{return Bun.spawnSync({cmd:[`screencapture`,`-x`,`-R`,`0,0,1,1`,`/dev/null`],stdout:`pipe`,stderr:`pipe`}).exitCode===0}catch{return!1}}function h(){return _||(_={serverName:i,logger:new g,executor:d({getMouseAnimationEnabled:()=>l().mouseAnimation,getHideBeforeActionEnabled:()=>l().hideBeforeAction}),ensureOsPermissions:async()=>{if(process.platform!==`darwin`)return{granted:!0};let e=a().tcc;if(e){let t=e.checkAccessibility(),n=e.checkScreenRecording();return t&&n?{granted:!0}:{granted:!1,accessibility:t,screenRecording:n}}let t=p(),n=m();return t&&n?{granted:!0}:{granted:!1,accessibility:t,screenRecording:n}},isDisabled:()=>!c(),getSubGates:l,getAutoUnhideEnabled:()=>!0,cropRawPatch:()=>null},_)}var g,_,v=e((()=>{n(),r(),u(),s(),o(),g=class{silly(e,n){t(f(e,n??``),{level:`debug`})}debug(e,n){t(f(e,n??``),{level:`debug`})}info(e,n){t(f(e,n??``),{level:`info`})}warn(e,n){t(f(e,n??``),{level:`warn`})}error(e,n){t(f(e,n??``),{level:`error`})}}}));export{v as n,h as t};
@@ -1,2 +1,2 @@
1
- import{n as e,o as t}from"./chunk-DR8-3Aex.js";import{In as n,Ln as r,Rn as i,b as a,f as o,t as s,x as c}from"./src-Di342QoJ.js";import{t as l}from"./jsx-runtime-D-D469L8.js";import{Ac as u,Pc as d,Sc as f}from"./paths-q1-Ni8Oh.js";import{n as p,r as m}from"./analytics-DqMQntaB.js";import{n as h,t as g}from"./cwd--iizewsn.js";import{r as _,t as v}from"./execFileNoThrow-CuQN1sz8.js";import{BS as y,LS as b,Nx as x,RS as S,Sx as C,Xb as w,Zb as T,cx as E,ix as D,kx as O,lx as k,my as A,px as j,sx as M,wt as N,xt as P}from"./loadAgentsDir-Cl2w3uvH.js";import*as F from"path";function I({onComplete:e}){return(0,V.jsxs)(o,{title:`Do you wish to enable auto-connect to IDE?`,color:`ide`,onCancel:e,children:[(0,V.jsx)(x,{options:[{label:`Yes`,value:`yes`},{label:`No`,value:`no`}],onChange:(0,B.useCallback)(async t=>{let n=t===`yes`;d(e=>({...e,autoConnectIde:n,hasIdeAutoConnectDialogBeenShown:!0})),e()},[e]),defaultValue:`yes`}),(0,V.jsx)(a,{dimColor:!0,children:`You can also configure this in /config or with the --ide flag`})]})}function L(){let e=f();return!k()&&e.autoConnectIde!==!0&&e.hasIdeAutoConnectDialogBeenShown!==!0}function R({onComplete:e}){let t=(0,B.useCallback)(t=>{let n=t===`yes`;n&&d(e=>({...e,autoConnectIde:!1})),e(n)},[e]);return(0,V.jsx)(o,{title:`Do you wish to disable auto-connect to IDE?`,subtitle:`You can also configure this in /config`,onCancel:(0,B.useCallback)(()=>{e(!1)},[e]),color:`ide`,children:(0,V.jsx)(x,{options:[{label:`No`,value:`no`},{label:`Yes`,value:`yes`}],onChange:t,defaultValue:`no`})})}function z(){let e=f();return!k()&&e.autoConnectIde===!0}var B,V,H=e((()=>{B=t(i(),1),s(),u(),D(),A(),V=l()}));function U({availableIDEs:e,unavailableIDEs:t,selectedIDE:n,onClose:r,onSelect:i}){let[s,l]=(0,Z.useState)(n?.port?.toString()??`None`),[u,d]=(0,Z.useState)(!1),[f,p]=(0,Z.useState)(!1),m=(0,Z.useCallback)(t=>{t!==`None`&&L()?d(!0):t===`None`&&z()?p(!0):i(e.find(e=>e.port===parseInt(t,10)))},[e,i]),h=e.reduce((e,t)=>(e[t.name]=(e[t.name]||0)+1,e),{}),g=e.map(e=>{let t=(h[e.name]||0)>1&&e.workspaceFolders.length>0;return{label:e.name,value:e.port.toString(),description:t?X(e.workspaceFolders):void 0}}).concat([{label:`None`,value:`None`,description:void 0}]);return u?(0,Q.jsx)(I,{onComplete:()=>m(s)}):f?(0,Q.jsx)(R,{onComplete:()=>{i(void 0)}}):(0,Q.jsx)(o,{title:`Select IDE`,subtitle:`Connect to an IDE for integrated development features.`,onCancel:r,color:`ide`,children:(0,Q.jsxs)(c,{flexDirection:`column`,children:[e.length===0&&(0,Q.jsx)(a,{dimColor:!0,children:E()?`No available IDEs detected. Please install the plugin and restart your IDE:
1
+ import{n as e,o as t}from"./chunk-DR8-3Aex.js";import{In as n,Ln as r,Rn as i,b as a,f as o,t as s,x as c}from"./src-Di342QoJ.js";import{t as l}from"./jsx-runtime-D-D469L8.js";import{Ac as u,Pc as d,Sc as f}from"./paths-D9CVAtXU.js";import{n as p,r as m}from"./analytics-DqMQntaB.js";import{n as h,t as g}from"./cwd--iizewsn.js";import{r as _,t as v}from"./execFileNoThrow-CuQN1sz8.js";import{BS as y,LS as b,Nx as x,RS as S,Sx as C,Xb as w,Zb as T,cx as E,ix as D,kx as O,lx as k,my as A,px as j,sx as M,wt as N,xt as P}from"./loadAgentsDir-D-xcJ22-.js";import*as F from"path";function I({onComplete:e}){return(0,V.jsxs)(o,{title:`Do you wish to enable auto-connect to IDE?`,color:`ide`,onCancel:e,children:[(0,V.jsx)(x,{options:[{label:`Yes`,value:`yes`},{label:`No`,value:`no`}],onChange:(0,B.useCallback)(async t=>{let n=t===`yes`;d(e=>({...e,autoConnectIde:n,hasIdeAutoConnectDialogBeenShown:!0})),e()},[e]),defaultValue:`yes`}),(0,V.jsx)(a,{dimColor:!0,children:`You can also configure this in /config or with the --ide flag`})]})}function L(){let e=f();return!k()&&e.autoConnectIde!==!0&&e.hasIdeAutoConnectDialogBeenShown!==!0}function R({onComplete:e}){let t=(0,B.useCallback)(t=>{let n=t===`yes`;n&&d(e=>({...e,autoConnectIde:!1})),e(n)},[e]);return(0,V.jsx)(o,{title:`Do you wish to disable auto-connect to IDE?`,subtitle:`You can also configure this in /config`,onCancel:(0,B.useCallback)(()=>{e(!1)},[e]),color:`ide`,children:(0,V.jsx)(x,{options:[{label:`No`,value:`no`},{label:`Yes`,value:`yes`}],onChange:t,defaultValue:`no`})})}function z(){let e=f();return!k()&&e.autoConnectIde===!0}var B,V,H=e((()=>{B=t(i(),1),s(),u(),D(),A(),V=l()}));function U({availableIDEs:e,unavailableIDEs:t,selectedIDE:n,onClose:r,onSelect:i}){let[s,l]=(0,Z.useState)(n?.port?.toString()??`None`),[u,d]=(0,Z.useState)(!1),[f,p]=(0,Z.useState)(!1),m=(0,Z.useCallback)(t=>{t!==`None`&&L()?d(!0):t===`None`&&z()?p(!0):i(e.find(e=>e.port===parseInt(t,10)))},[e,i]),h=e.reduce((e,t)=>(e[t.name]=(e[t.name]||0)+1,e),{}),g=e.map(e=>{let t=(h[e.name]||0)>1&&e.workspaceFolders.length>0;return{label:e.name,value:e.port.toString(),description:t?X(e.workspaceFolders):void 0}}).concat([{label:`None`,value:`None`,description:void 0}]);return u?(0,Q.jsx)(I,{onComplete:()=>m(s)}):f?(0,Q.jsx)(R,{onComplete:()=>{i(void 0)}}):(0,Q.jsx)(o,{title:`Select IDE`,subtitle:`Connect to an IDE for integrated development features.`,onCancel:r,color:`ide`,children:(0,Q.jsxs)(c,{flexDirection:`column`,children:[e.length===0&&(0,Q.jsx)(a,{dimColor:!0,children:E()?`No available IDEs detected. Please install the plugin and restart your IDE:
2
2
  https://docs.claude.com/s/claude-code-jetbrains`:`No available IDEs detected. Make sure your IDE has the Claude Code extension or plugin installed and is running.`}),e.length!==0&&(0,Q.jsx)(x,{defaultValue:s,defaultFocusValue:s,options:g,onChange:e=>{l(e),m(e)}}),e.length!==0&&e.some(e=>e.name===`VS Code`||e.name===`Visual Studio Code`)&&(0,Q.jsx)(c,{marginTop:1,children:(0,Q.jsx)(a,{color:`warning`,children:`Note: Only one Claude Code instance can be connected to VS Code at a time.`})}),e.length!==0&&!k()&&(0,Q.jsx)(c,{marginTop:1,children:(0,Q.jsx)(a,{dimColor:!0,children:`Tip: You can enable auto-connect to IDE in /config or with the --ide flag`})}),t.length>0&&(0,Q.jsxs)(c,{marginTop:1,flexDirection:`column`,children:[(0,Q.jsxs)(a,{dimColor:!0,children:[`Found `,t.length,` other running IDE(s). However, their workspace/project directories do not match the current cwd.`]}),(0,Q.jsx)(c,{marginTop:1,flexDirection:`column`,children:t.map((e,t)=>(0,Q.jsx)(c,{paddingLeft:3,children:(0,Q.jsxs)(a,{dimColor:!0,children:[`• `,e.name,`: `,X(e.workspaceFolders)]})},t))})]})]})})}async function W(e,t){let n=t?.ide;if(!n||n.type!==`sse-ide`&&n.type!==`ws-ide`)return null;for(let t of e)if(t.url===n.url)return t;return null}function G({availableIDEs:e,onSelectIDE:t,onDone:n}){let[r,i]=(0,Z.useState)(e[0]?.port?.toString()??``),a=(0,Z.useCallback)(n=>{t(e.find(e=>e.port===parseInt(n,10)))},[e,t]),s=e.map(e=>({label:e.name,value:e.port.toString()}));function c(){n(`IDE selection cancelled`,{display:`system`})}return(0,Q.jsx)(o,{title:`Select an IDE to open the project`,onCancel:c,color:`ide`,children:(0,Q.jsx)(x,{defaultValue:r,defaultFocusValue:r,options:s,onChange:e=>{i(e),a(e)}})})}function K({runningIDEs:e,onSelectIDE:t,onDone:n}){let[r,i]=(0,Z.useState)(e[0]??``),a=(0,Z.useCallback)(e=>{t(e)},[t]),s=e.map(e=>({label:j(e),value:e}));function c(){n(`IDE selection cancelled`,{display:`system`})}return(0,Q.jsx)(o,{title:`Select IDE to install extension`,onCancel:c,color:`ide`,children:(0,Q.jsx)(x,{defaultFocusValue:r,options:s,onChange:e=>{i(e),a(e)}})})}function q({ide:e,onInstall:t}){return(0,Z.useEffect)(()=>{t(e)},[e,t]),null}async function J(e,t,r){m(`tengu_ext_ide_command`,{});let{options:{dynamicMcpConfig:i},onChangeDynamicMcpConfig:a}=t;if(r?.trim()===`open`){let t=P(),r=t?t.worktreePath:g(),i=(await w(!0)).filter(e=>e.isValid);return i.length===0?(e(`No IDEs with Claude Code extension detected.`),null):(0,Q.jsx)(G,{availableIDEs:i,onSelectIDE:async i=>{if(!i){e(`No IDE selected.`);return}if(i.name.toLowerCase().includes(`vscode`)||i.name.toLowerCase().includes(`cursor`)||i.name.toLowerCase().includes(`windsurf`)){let{code:a}=await v(`code`,[r]);e(a===0?`Opened ${t?`worktree`:`project`} in ${n.bold(i.name)}`:`Failed to open in ${i.name}. Try opening manually: ${r}`)}else E(),e(`Please open the ${t?`worktree`:`project`} manually in ${n.bold(i.name)}: ${r}`)},onDone:()=>{e(`Exited without opening IDE`,{display:`system`})}})}let o=await w(!0);if(o.length===0&&t.onInstallIDEExtension&&!k()){let r=await T(),i=r=>{t.onInstallIDEExtension&&(t.onInstallIDEExtension(r),M(r)?e(`Installed plugin to ${n.bold(j(r))}\nPlease ${n.bold(`restart your IDE`)} completely for it to take effect`):e(`Installed extension to ${n.bold(j(r))}`))};if(r.length>1)return(0,Q.jsx)(K,{runningIDEs:r,onSelectIDE:i,onDone:()=>{e(`No IDE selected.`,{display:`system`})}});if(r.length===1)return(0,Q.jsx)(q,{ide:r[0],onInstall:i})}let s=o.filter(e=>e.isValid);return(0,Q.jsx)(Y,{availableIDEs:s,unavailableIDEs:o.filter(e=>!e.isValid),currentIDE:await W(s,i),dynamicMcpConfig:i,onChangeDynamicMcpConfig:a,onDone:e})}function Y({availableIDEs:e,unavailableIDEs:t,currentIDE:n,dynamicMcpConfig:r,onChangeDynamicMcpConfig:i,onDone:o}){let[s,c]=(0,Z.useState)(null),l=S(e=>e.mcp.clients.find(e=>e.name===`ide`)),u=y(),d=(0,Z.useRef)(!0);(0,Z.useEffect)(()=>{if(s){if(d.current){d.current=!1;return}!l||l.type===`pending`||(l.type===`connected`?o(`Connected to ${s.name}.`):l.type===`failed`&&o(`Failed to connect to ${s.name}.`))}},[l,s,o]),(0,Z.useEffect)(()=>{if(!s)return;let e=setTimeout(o,$,`Connection to ${s.name} timed out.`);return()=>clearTimeout(e)},[s,o]);let f=(0,Z.useCallback)(e=>{if(!i){o(`Error connecting to IDE.`);return}let t={...r||{}};if(n&&delete t.ide,!e){l&&l.type===`connected`&&n&&(l.client.onclose=()=>{},C(`ide`,l.config),u(e=>({...e,mcp:{...e.mcp,clients:e.mcp.clients.filter(e=>e.name!==`ide`),tools:e.mcp.tools.filter(e=>!e.name?.startsWith(`mcp__ide__`)),commands:e.mcp.commands.filter(e=>!e.name?.startsWith(`mcp__ide__`))}}))),i(t),o(n?`Disconnected from ${n.name}.`:`No IDE selected.`);return}let a=e.url;t.ide={type:a.startsWith(`ws:`)?`ws-ide`:`sse-ide`,url:a,ideName:e.name,authToken:e.authToken,ideRunningInWindows:e.ideRunningInWindows,scope:`dynamic`},d.current=!0,c(e),i(t)},[r,n,l,u,i,o]);return s?(0,Q.jsxs)(a,{dimColor:!0,children:[`Connecting to `,s.name,`…`]}):(0,Q.jsx)(U,{availableIDEs:e,unavailableIDEs:t,selectedIDE:n,onClose:()=>o(`IDE selection cancelled`,{display:`system`}),onSelect:f})}function X(e,t=100){if(e.length===0)return``;let n=g(),r=e.slice(0,2),i=e.length>2,a=i?3:0,o=t-(r.length-1)*2-a,s=Math.floor(o/r.length),c=n.normalize(`NFC`),l=r.map(e=>{let t=e.normalize(`NFC`);return t.startsWith(c+F.sep)&&(e=t.slice(c.length+1)),e.length<=s?e:`…`+e.slice(-(s-1))}).join(`, `);return i&&(l+=`, …`),l}var Z,Q,$;e((()=>{r(),Z=t(i(),1),p(),A(),s(),H(),O(),b(),h(),_(),D(),N(),Q=l(),$=35e3}))();export{J as call,X as formatWorkspaceFolders};
@@ -1 +1 @@
1
- import{n as e,s as t}from"./envUtils-BWeoiL4Y.js";import{n,t as r}from"./axios-DhfaybwJ.js";import{Ln as i,Tt as a,wn as o}from"./schemas-BGAvj1T4.js";import{t as s}from"./v4-f1i_CNUT.js";import{Ct as c,cn as l}from"./state-sIHsFpDu.js";import{d as u,s as d}from"./debug-UI3T040K.js";import{n as f,t as p}from"./lazySchema-2sOku3cX.js";import{a as m,n as h,t as g}from"./bridgeConfig-DXUNQp2l.js";import{basename as _,join as v}from"path";import{randomUUID as y}from"crypto";import{mkdir as b,writeFile as x}from"fs/promises";r(),s(),l(),d(),t(),p(),m();var S=3e4;function C(e){u(`[bridge:inbound-attach] ${e}`)}var w=f(()=>o({file_uuid:i(),file_name:i()})),T=f(()=>a(w()));function E(e){if(typeof e!=`object`||!e||!(`file_attachments`in e))return[];let t=T().safeParse(e.file_attachments);return t.success?t.data:[]}function D(e){return _(e).replace(/[^a-zA-Z0-9._-]/g,`_`)||`attachment`}function O(){return v(e(),`uploads`,c())}async function k(e){let t=g();if(!t){C(`skip: no oauth token`);return}let r;try{let i=`${h()}/api/oauth/files/${encodeURIComponent(e.file_uuid)}/content`,a=await n.get(i,{headers:{Authorization:`Bearer ${t}`},responseType:`arraybuffer`,timeout:S,validateStatus:()=>!0});if(a.status!==200){C(`fetch ${e.file_uuid} failed: status=${a.status}`);return}r=Buffer.from(a.data)}catch(t){C(`fetch ${e.file_uuid} threw: ${t}`);return}let i=D(e.file_name),a=(e.file_uuid.slice(0,8)||y().slice(0,8)).replace(/[^a-zA-Z0-9_-]/g,`_`),o=O(),s=v(o,`${a}-${i}`);try{await b(o,{recursive:!0}),await x(s,r)}catch(e){C(`write ${s} failed: ${e}`);return}return C(`resolved ${e.file_uuid} → ${s} (${r.length} bytes)`),s}async function A(e){if(e.length===0)return``;C(`resolving ${e.length} attachment(s)`);let t=(await Promise.all(e.map(k))).filter(e=>e!==void 0);return t.length===0?``:t.map(e=>`@"${e}"`).join(` `)+` `}function j(e,t){if(!t)return e;if(typeof e==`string`)return t+e;let n=e.findLastIndex(e=>e.type===`text`);if(n!==-1){let r=e[n];if(r.type===`text`)return[...e.slice(0,n),{...r,text:t+r.text},...e.slice(n+1)]}return[...e,{type:`text`,text:t.trimEnd()}]}async function M(e,t){let n=E(e);return n.length===0?t:j(t,await A(n))}export{A as i,j as n,M as r,E as t};
1
+ import{n as e,s as t}from"./envUtils-BWeoiL4Y.js";import{n,t as r}from"./axios-DhfaybwJ.js";import{Ln as i,Tt as a,wn as o}from"./schemas-BGAvj1T4.js";import{t as s}from"./v4-f1i_CNUT.js";import{Ct as c,cn as l}from"./state-sIHsFpDu.js";import{d as u,s as d}from"./debug-UI3T040K.js";import{n as f,t as p}from"./lazySchema-2sOku3cX.js";import{a as m,n as h,t as g}from"./bridgeConfig-CvKdNJOg.js";import{basename as _,join as v}from"path";import{randomUUID as y}from"crypto";import{mkdir as b,writeFile as x}from"fs/promises";r(),s(),l(),d(),t(),p(),m();var S=3e4;function C(e){u(`[bridge:inbound-attach] ${e}`)}var w=f(()=>o({file_uuid:i(),file_name:i()})),T=f(()=>a(w()));function E(e){if(typeof e!=`object`||!e||!(`file_attachments`in e))return[];let t=T().safeParse(e.file_attachments);return t.success?t.data:[]}function D(e){return _(e).replace(/[^a-zA-Z0-9._-]/g,`_`)||`attachment`}function O(){return v(e(),`uploads`,c())}async function k(e){let t=g();if(!t){C(`skip: no oauth token`);return}let r;try{let i=`${h()}/api/oauth/files/${encodeURIComponent(e.file_uuid)}/content`,a=await n.get(i,{headers:{Authorization:`Bearer ${t}`},responseType:`arraybuffer`,timeout:S,validateStatus:()=>!0});if(a.status!==200){C(`fetch ${e.file_uuid} failed: status=${a.status}`);return}r=Buffer.from(a.data)}catch(t){C(`fetch ${e.file_uuid} threw: ${t}`);return}let i=D(e.file_name),a=(e.file_uuid.slice(0,8)||y().slice(0,8)).replace(/[^a-zA-Z0-9_-]/g,`_`),o=O(),s=v(o,`${a}-${i}`);try{await b(o,{recursive:!0}),await x(s,r)}catch(e){C(`write ${s} failed: ${e}`);return}return C(`resolved ${e.file_uuid} → ${s} (${r.length} bytes)`),s}async function A(e){if(e.length===0)return``;C(`resolving ${e.length} attachment(s)`);let t=(await Promise.all(e.map(k))).filter(e=>e!==void 0);return t.length===0?``:t.map(e=>`@"${e}"`).join(` `)+` `}function j(e,t){if(!t)return e;if(typeof e==`string`)return t+e;let n=e.findLastIndex(e=>e.type===`text`);if(n!==-1){let r=e[n];if(r.type===`text`)return[...e.slice(0,n),{...r,text:t+r.text},...e.slice(n+1)]}return[...e,{type:`text`,text:t.trimEnd()}]}async function M(e,t){let n=E(e);return n.length===0?t:j(t,await A(n))}export{A as i,j as n,M as r,E as t};
@@ -0,0 +1 @@
1
+ import{r as e}from"./inboundAttachments-BweY9sYo.js";export{e as resolveAndPrepend};
@@ -0,0 +1 @@
1
+ import{a as e}from"./chunk-DR8-3Aex.js";import{d as t,s as n,u as r}from"./envUtils-BWeoiL4Y.js";import{Ct as i,cn as a,ot as o}from"./state-sIHsFpDu.js";import{Ac as s,Jt as c,Pc as l,Pt as u,S as d,Sc as f,la as p,nn as m,on as h,ua as g,v as _}from"./paths-D9CVAtXU.js";import{L as v,V as y,X as ee,Y as b,d as x,s as S}from"./debug-UI3T040K.js";import{n as te,r as C}from"./analytics-DqMQntaB.js";import{F as w,P as T,i as ne,m as re,v as E}from"./git-CN3qtTb_.js";import{g as D,m as O}from"./log-CzsijfHZ.js";import{n as k,t as A}from"./sleep-8Eb9j_Ly.js";import{Aa as ie,Ar as ae,Ba as j,Ca as M,Da as N,Ea as oe,Eo as se,Ka as P,Lo as ce,Ma as F,Oa as le,Oo as I,Ra as L,Sa as ue,Ta as de,Vo as fe,Xv as pe,Zv as me,cd as R,fd as he,hr as z,ja as B,ka as ge,wa as _e}from"./loadAgentsDir-D-xcJ22-.js";import{O as V,_ as ve,d as H,k as ye,n as be,t as U}from"./rcDebugLog-CTOZ2K3E.js";import{a as W,c as G,d as xe,f as Se,o as K,r as Ce,s as q,u as J}from"./debugUtils-BBMFODKH.js";import{a as we,i as Te}from"./trustedDevice-Brc9B8cZ.js";import{a as Y,i as Ee,n as X,o as Z,t as Q}from"./bridgeConfig-CvKdNJOg.js";import{a as De,o as Oe,r as ke,s as Ae,t as je}from"./bridgeEnabled-D01faWms.js";import{i as Me,t as $}from"./assistant-BJbeizyH.js";import{t as Ne}from"./capacityWake-BXlUpptF.js";import{n as Pe,t as Fe}from"./pollConfig-xYxAmuXi.js";import{a as Ie,n as Le,r as Re,t as ze}from"./workSecret-mS2OrpxF.js";import{a as Be,i as Ve,n as He,t as Ue}from"./createSession-DTHPUie-.js";import{i as We,n as Ge}from"./envLessBridgeConfig-D4bSwf7w.js";import{n as Ke,o as qe}from"./mappers-CO6koWDa.js";import{n as Je,r as Ye,t as Xe}from"./sessionTitle-BafqFHLc.js";import{a as Ze,i as Qe,n as $e,o as et,r as tt,t as nt}from"./bridgeMessaging-BZMDSZAN.js";import{t as rt}from"./HybridTransport-PeXWuYfl.js";import{n as it,r as at,t as ot}from"./flushGate-DygHyqmB.js";import{hostname as st}from"os";import{randomUUID as ct}from"crypto";a(),O(),E(),s(),g(),h(),d(),Y(),me(),ke(),ce(),L(),ae(),Ve(),We(),Ke(),Ye(),ge(),S(),U(),T(),te(),b(),G(),R(),we(),V(),H(),n(),K(),y(),A(),M();var lt=2e3,ut=6e4,dt=900*1e3,ft=0;async function pt(e){let{dir:n,machineName:i,branch:a,gitRepoUrl:o,title:s,baseUrl:c,sessionIngressUrl:l,workerType:u,getAccessToken:d,createSession:f,archiveSession:p,getCurrentTitle:m=()=>s,toSDKMessages:h=()=>{throw Error(`BridgeCoreParams.toSDKMessages not provided. Pass it if you use writeMessages() or initialMessages — daemon callers that only use writeSdkMessages() never hit this path.`)},onAuth401:g,getPollIntervalConfig:_=()=>Pe,initialHistoryCap:y=200,initialMessages:b,previouslyFlushedUUIDs:S,onInboundMessage:te,onPermissionResponse:T,onInterrupt:ne,onSetModel:re,onSetMaxThinkingTokens:E,onSetPermissionMode:D,onStateChange:O,onUserMessage:k,perpetual:A,initialSSESequenceNum:ie=0}=e,ae=++ft,{writeBridgePointer:j,clearBridgePointer:M,readBridgePointer:N}=await import(`./bridgePointer-B2FPGDWR.js`),se=A?await N(n):null,P=se?.source===`repl`?se:null;x(`[bridge:repl] initBridgeCore #${ae} starting (initialMessages=${b?.length??0}${P?` perpetual prior=env:${P.environmentId}`:``})`);let ce=le({baseUrl:c,getAccessToken:d,runnerVersion:`2.6.11`,onDebug:x,onAuth401:g,getTrustedDeviceToken:Te}),F=process.env.USER_TYPE===`ant`?oe(ce):ce,I={dir:n,machineName:i,branch:a,gitRepoUrl:o,maxSessions:1,spawnMode:`single-session`,verbose:!1,sandbox:!1,bridgeId:ct(),workerType:u,environmentId:ct(),reuseEnvironmentId:P?.environmentId,apiBaseUrl:c,sessionIngressUrl:l},L,fe;try{let e=await F.registerBridgeEnvironment(I);L=e.environment_id,fe=e.environment_secret}catch(e){return q(`registration_failed`,`[bridge:repl] Environment registration failed: ${v(e)}`),P&&await M(n),O?.(`failed`,v(e)),null}x(`[bridge:repl] Environment registered: ${L}`),w(`info`,`bridge_repl_env_registered`),C(`tengu_bridge_repl_env_registered`,{});async function pe(e,t){if(L!==e)return x(`[bridge:repl] Env mismatch (requested ${e}, got ${L}) — cannot reconnect in place`),!1;let n=Se(t),r=n===t?[t]:[t,n];for(let e of r)try{return await F.reconnectSession(L,e),x(`[bridge:repl] Reconnected session ${e} in place on env ${L}`),!0}catch(t){x(`[bridge:repl] reconnectSession(${e}) failed: ${v(t)}`)}return x(`[bridge:repl] reconnectSession exhausted — falling through to fresh session`),!1}let me=P?await pe(P.environmentId,P.sessionId):!1;P&&!me&&await M(n);let R;if(me&&P){if(R=P.sessionId,x(`[bridge:repl] Perpetual session reused: ${R}`),b&&S)for(let e of b)S.add(e.uuid)}else{let e=await f({environmentId:L,title:s,gitRepoUrl:o,branch:a,signal:AbortSignal.timeout(15e3)});if(!e)return x(`[bridge:repl] Session creation failed, deregistering environment`),C(`tengu_bridge_repl_session_failed`,{}),await F.deregisterEnvironment(L).catch(()=>{}),O?.(`failed`,`Session creation failed`),null;R=e,x(`[bridge:repl] Session created: ${R}`)}await j(n,{sessionId:R,environmentId:L,source:`repl`}),w(`info`,`bridge_repl_session_created`),C(`tengu_bridge_repl_started`,{has_initial_messages:!!(b&&b.length>0),inProtectedNamespace:t()});let z=new Set;if(b)for(let e of b)z.add(e.uuid);let B=new nt(2e3);for(let e of z)B.add(e);let ge=new nt(2e3),V=new AbortController,H=null;ve(e=>{V.signal.aborted||H?.reportMetadata(e)},{replayCurrent:!0});let U=0,W=me?ie:0,G=null,K=null,Ce=Ne(V.signal),J=Ce.wake,we=Ce.signal,Y=new ot,Ee=!k,X=0,Z=null;async function Q(){if(Z)return Z;Z=De();try{return await Z}finally{Z=null}}async function De(){if(X++,be(`doReconnect: attempt=${X}/3 envId=${L} sessionId=${R} workId=${G}`),U++,x(`[bridge:repl] Reconnecting after env lost (attempt ${X}/3)`),X>3)return x(`[bridge:repl] Environment reconnect limit reached (3), giving up`),!1;if(H){let e=H.getLastSequenceNum();e>W&&(W=e),H.close(),H=null}if(J(),Y.drop(),G){let e=G;if(await F.stopWork(L,e,!1).catch(()=>{}),G!==e)return x(`[bridge:repl] Poll loop recovered during stopWork await — deferring to it`),X=0,!0;G=null,K=null}if(V.signal.aborted)return x(`[bridge:repl] Reconnect aborted by teardown`),!1;let e=L;I.reuseEnvironmentId=e;try{let e=await F.registerBridgeEnvironment(I);L=e.environment_id,fe=e.environment_secret}catch(e){return I.reuseEnvironmentId=void 0,x(`[bridge:repl] Environment re-registration failed: ${v(e)}`),!1}if(I.reuseEnvironmentId=void 0,x(`[bridge:repl] Re-registered: requested=${e} got=${L}`),V.signal.aborted)return x(`[bridge:repl] Reconnect aborted after env registration, cleaning up`),await F.deregisterEnvironment(L).catch(()=>{}),!1;if(H!==null)return x(`[bridge:repl] Poll loop recovered during registerBridgeEnvironment await — deferring to it`),X=0,!0;if(await pe(e,R))return C(`tengu_bridge_repl_reconnected_in_place`,{}),X=0,!0;if(L!==e&&C(`tengu_bridge_repl_env_expired_fresh_session`,{}),await p(R),V.signal.aborted)return x(`[bridge:repl] Reconnect aborted after archive, cleaning up`),await F.deregisterEnvironment(L).catch(()=>{}),!1;let t=m(),r=await f({environmentId:L,title:t,gitRepoUrl:o,branch:a,signal:AbortSignal.timeout(15e3)});return r?V.signal.aborted?(x(`[bridge:repl] Reconnect aborted after session creation, cleaning up`),await p(r),!1):(R=r,he(xe(r)).catch(()=>{}),W=0,ge.clear(),Ee=!k,x(`[bridge:repl] Re-created session: ${R}`),await j(n,{sessionId:R,environmentId:L,source:`repl`}),S?.clear(),X=0,!0):(x(`[bridge:repl] Session creation failed during reconnection`),!1)}function Oe(){return d()}function ke(){let e=Y.end();if(e.length===0)return;if(!H){x(`[bridge:repl] Cannot drain ${e.length} pending message(s): no transport`);return}for(let t of e)B.add(t.uuid);let t=h(e).map(e=>({...e,session_id:R}));x(`[bridge:repl] Drained ${e.length} pending message(s) after flush`),H.writeBatch(t)}let Ae=null;function je(){Ae?.()}function Me(e){if(be(`handleTransportPermanentClose: code=${e} transport=${H?`exists`:`null`} pollAborted=${V.signal.aborted}`),x(`[bridge:repl] Transport permanently closed: code=${e}`),C(`tengu_bridge_repl_ws_closed`,{code:e}),H){let e=H.getLastSequenceNum();e>W&&(W=e),H=null}J();let t=Y.drop();if(t>0&&x(`[bridge:repl] Dropping ${t} pending message(s) on transport close (code=${e})`,{level:`warn`}),e===1e3){O?.(`failed`,`session ended`),V.abort(),je();return}O?.(`reconnecting`,`Remote Control connection lost (code ${e})`),x(`[bridge:repl] Transport reconnect budget exhausted (code=${e}), attempting env reconnect`),Q().then(t=>{t||V.signal.aborted||(x(`[bridge:repl] reconnectEnvironmentWithSession resolved false — tearing down`),C(`tengu_bridge_repl_reconnect_failed`,{close_code:e}),O?.(`failed`,`reconnection failed`),je())})}let $;process.env.USER_TYPE===`ant`&&process.platform!==`win32`&&($=()=>{x(`[bridge:repl] SIGUSR2 received — forcing doReconnect() for testing`),Q()},process.on(`SIGUSR2`,$));let Fe=null;process.env.USER_TYPE===`ant`&&de({fireClose:e=>{if(!Fe){x(`[bridge:debug] fireClose: no transport wired yet`);return}x(`[bridge:debug] fireClose(${e}) — injecting`),Fe(e)},forceReconnect:()=>{x(`[bridge:debug] forceReconnect — injecting`),Q()},injectFault:_e,wakePollLoop:J,describe:()=>`env=${L} session=${R} transport=${H?.getStateLabel()??`null`} workId=${G??`null`}`}),mt({api:F,getCredentials:()=>({environmentId:L,environmentSecret:fe}),signal:V.signal,getPollIntervalConfig:_,onStateChange:O,getWsState:()=>H?.getStateLabel()??`null`,isAtCapacity:()=>H!==null,capacitySignal:we,onFatalError:je,getHeartbeatInfo:()=>!G||!K?null:{environmentId:L,workId:G,sessionToken:K},onHeartbeatFatal:e=>{if(x(`[bridge:repl] heartbeatWork fatal (status=${e.status}) — tearing down work item for fast re-dispatch`),H){let e=H.getLastSequenceNum();e>W&&(W=e),H.close(),H=null}Y.drop(),G&&F.stopWork(L,G,!1).catch(e=>{x(`[bridge:repl] stopWork after heartbeat fatal: ${v(e)}`)}),G=null,K=null,J(),O?.(`reconnecting`,`Work item lease expired, fetching fresh token`)},async onEnvironmentLost(){return await Q()?{environmentId:L,environmentSecret:fe}:null},onWorkReceived:(e,t,i,a)=>{if(H?.isConnectedStatus()&&x(`[bridge:repl] Work received while transport connected, replacing with fresh token (workId=${i})`),x(`[bridge:repl] Work received: workId=${i} workSessionId=${e} currentSessionId=${R} match=${Ie(e,R)}`),j(n,{sessionId:R,environmentId:L,source:`repl`}),!Ie(e,R)){x(`[bridge:repl] Rejecting foreign session: expected=${R} got=${e}`);return}G=i,K=t;let o=a||r(process.env.CLAUDE_BRIDGE_USE_CCR_V2),s;if(!o){if(s=Oe(),!s){x(`[bridge:repl] No OAuth token available for session ingress, skipping work`);return}ye(s)}if(C(`tengu_bridge_repl_work_received`,{}),H){let e=H;H=null;let t=e.getLastSequenceNum();t>W&&(W=t),e.close()}Y.deactivate();let u=e=>Qe(e,{transport:H,sessionId:R,onInterrupt:ne,onSetModel:re,onSetMaxThinkingTokens:E,onSetPermissionMode:D}),d=!1,f=e=>{H=e,e.setOnConnect(()=>{if(H===e){if(x(`[bridge:repl] Ingress transport connected`),C(`tengu_bridge_repl_ws_connected`,{}),!o){let e=Oe();e&&ye(e)}if(He=!1,!d&&b&&b.length>0){d=!0;let t=y,n=b.filter(e=>Ze(e)&&!S?.has(e.uuid)),r=t>0&&n.length>t?n.slice(-t):n;r.length<n.length&&(x(`[bridge:repl] Capped initial flush: ${n.length} -> ${r.length} (cap=${t})`),C(`tengu_bridge_repl_history_capped`,{eligible_count:n.length,capped_count:r.length}));let i=h(r);if(i.length>0){x(`[bridge:repl] Flushing ${i.length} initial message(s) via transport`);let t=i.map(e=>({...e,session_id:R})),n=e.droppedBatchCount;e.writeBatch(t).then(()=>{if(e.droppedBatchCount>n){x(`[bridge:repl] Initial flush dropped ${e.droppedBatchCount-n} batch(es) — not marking ${i.length} UUID(s) as flushed`);return}if(S)for(let e of i)e.uuid&&S.add(e.uuid)}).catch(e=>x(`[bridge:repl] Initial flush failed: ${e}`)).finally(()=>{H===e&&(ke(),O?.(`connected`))})}else ke(),O?.(`connected`)}else Y.active||O?.(`connected`)}}),e.setOnData(e=>{try{let t=JSON.parse(e);be(`ingress: type=${t.type}${t.type===`control_request`?` subtype=${t.request?.subtype} request_id=${t.request_id}`:``}${t.type===`control_response`?` subtype=${t.response?.subtype} request_id=${t.response?.request_id}`:``}${t.type===`user`?` uuid=${t.uuid}`:``}${t.type===`keep_alive`?``:` len=${e.length}`}`)}catch{be(`ingress (non-JSON): ${String(e).slice(0,200)}`)}tt(e,B,ge,te,T,u)}),Fe=Me,e.setOnClose(t=>{H===e&&(be(`transport onClose: code=${t} connected=${e.isConnectedStatus()} state=${e.getStateLabel()} seq=${e.getLastSequenceNum()}`),Me(t))}),!d&&b&&b.length>0&&Y.start(),e.connect()};if(U++,o){let n=ze(c,e),r=U;x(`[bridge:repl] CCR v2: sessionUrl=${n} session=${e} gen=${r}`),at({sessionUrl:n,ingressToken:t,sessionId:e,initialSequenceNum:W}).then(e=>{if(V.signal.aborted){e.close();return}if(r!==U){x(`[bridge:repl] CCR v2: discarding stale handshake gen=${r} current=${U}`),e.close();return}f(e)},e=>{x(`[bridge:repl] CCR v2: createV2ReplTransport failed: ${v(e)}`,{level:`error`}),C(`tengu_bridge_repl_ccr_v2_init_failed`,{}),r===U&&(G&&(F.stopWork(L,G,!1).catch(e=>{x(`[bridge:repl] stopWork after v2 init failure: ${v(e)}`)}),G=null,K=null),J())})}else{let t=Le(l,e);x(`[bridge:repl] Ingress URL: ${t}`),x(`[bridge:repl] Creating HybridTransport: session=${e}`);let n=s??``;f(it(new rt(new URL(t),{Authorization:`Bearer ${n}`,"anthropic-version":`2023-06-01`},e,()=>({Authorization:`Bearer ${Oe()??n}`,"anthropic-version":`2023-06-01`}),{maxConsecutiveFailures:50,isBridge:!0,onBatchDropped:()=>{O?.(`reconnecting`,`Lost sync with Remote Control — events could not be delivered`),J()}})))}}});let Re=A?setInterval(()=>{Z||j(n,{sessionId:R,environmentId:L,source:`repl`})},60*6e4):null;Re?.unref?.();let Be=_().session_keepalive_interval_v2_ms,Ve=Be>0?setInterval(()=>{H&&(x(`[bridge:repl] keep_alive sent`),H.write({type:`keep_alive`}).catch(e=>{x(`[bridge:repl] keep_alive write failed: ${v(e)}`)}))},Be):null;Ve?.unref?.();let He=!1;Ae=async()=>{if(He){x(`[bridge:repl] Teardown already in progress, skipping duplicate call env=${L} session=${R}`);return}He=!0;let e=Date.now();if(x(`[bridge:repl] Teardown starting: env=${L} session=${R} workId=${G??`none`} transportState=${H?.getStateLabel()??`null`}`),Re!==null&&clearInterval(Re),Ve!==null&&clearInterval(Ve),$&&process.off(`SIGUSR2`,$),process.env.USER_TYPE===`ant`&&(ue(),Fe=null),V.abort(),x(`[bridge:repl] Teardown: poll loop aborted`),H){let e=H.getLastSequenceNum();e>W&&(W=e)}if(A){H=null,Y.drop(),await j(n,{sessionId:R,environmentId:L,source:`repl`}),x(`[bridge:repl] Teardown (perpetual): leaving env=${L} session=${R} alive on server, duration=${Date.now()-e}ms`);return}let t=H;if(H=null,Y.drop(),t){let e={...et(R),session_id:R};t.write(e)}let r=G?F.stopWork(L,G,!0).then(()=>{x(`[bridge:repl] Teardown: stopWork completed`)}).catch(e=>{x(`[bridge:repl] Teardown stopWork failed: ${v(e)}`)}):Promise.resolve();await Promise.all([r,p(R)]),t?.close(),x(`[bridge:repl] Teardown: transport closed`),await F.deregisterEnvironment(L).catch(e=>{x(`[bridge:repl] Teardown deregister failed: ${v(e)}`)}),await M(n),x(`[bridge:repl] Teardown complete: env=${L} duration=${Date.now()-e}ms`)};let Ue=ee(()=>Ae?.());return x(`[bridge:repl] Ready: env=${L} session=${R}`),O?.(`ready`),{get bridgeSessionId(){return R},get environmentId(){return L},getSSESequenceNum(){let e=H?.getLastSequenceNum()??0;return Math.max(W,e)},sessionIngressUrl:l,writeMessages(e){let t=e.filter(e=>Ze(e)&&!z.has(e.uuid)&&!B.has(e.uuid));if(t.length===0)return;if(!Ee)for(let e of t){let t=$e(e);if(t!==void 0&&k?.(t,R)){Ee=!0;break}}if(Y.enqueue(...t)){x(`[bridge:repl] Queued ${t.length} message(s) during initial flush`);return}if(!H){let e=t.map(e=>e.type).join(`,`);x(`[bridge:repl] Transport not configured, dropping ${t.length} message(s) [${e}] for session=${R}`,{level:`warn`});return}for(let e of t)B.add(e.uuid);x(`[bridge:repl] Sending ${t.length} message(s) via transport`);let n=h(t).map(e=>({...e,session_id:R}));H.writeBatch(n)},writeSdkMessages(e){let t=e.filter(e=>!e.uuid||!B.has(e.uuid));if(t.length===0)return;if(!H){x(`[bridge:repl] Transport not configured, dropping ${t.length} SDK message(s) for session=${R}`,{level:`warn`});return}for(let e of t)e.uuid&&B.add(e.uuid);let n=t.map(e=>({...e,session_id:R}));H.writeBatch(n)},sendControlRequest(e){if(!H){x(`[bridge:repl] Transport not configured, skipping control_request`);return}let t={...e,session_id:R};H.write(t),x(`[bridge:repl] Sent control_request request_id=${e.request_id}`)},sendControlResponse(e){if(!H){x(`[bridge:repl] Transport not configured, skipping control_response`);return}let t={...e,session_id:R};H.write(t),x(`[bridge:repl] Sent control_response`)},sendControlCancelRequest(e){if(!H){x(`[bridge:repl] Transport not configured, skipping control_cancel_request`);return}let t={type:`control_cancel_request`,request_id:e,session_id:R};H.write(t),x(`[bridge:repl] Sent control_cancel_request request_id=${e}`)},sendResult(){if(!H){x(`[bridge:repl] sendResult: skipping, transport not configured session=${R}`);return}H.reportState(`idle`);let e={...et(R),session_id:R};H.write(e),x(`[bridge:repl] Sent result for session=${R}`)},async teardown(){Ue(),await Ae?.(),x(`[bridge:repl] Torn down`),C(`tengu_bridge_repl_teardown`,{})}}}async function mt({api:e,getCredentials:t,signal:n,onStateChange:r,onWorkReceived:i,onEnvironmentLost:a,getWsState:o,isAtCapacity:s,capacitySignal:c,onFatalError:l,getPollIntervalConfig:u=()=>Pe,getHeartbeatInfo:d,onHeartbeatFatal:f}){x(`[bridge:repl] Starting work poll loop for env=${t().environmentId}`);let p=0,m=null,h=null,g=0,_=!1;for(;!n.aborted;){let{environmentId:y,environmentSecret:ee}=t(),b=u();try{let t=await e.pollForWork(y,ee,n,b.reclaim_older_than_ms);if(g=0,p>0&&(x(`[bridge:repl] Poll recovered after ${p} consecutive error(s)`),p=0,m=null,h=null,r?.(`ready`)),!t){let t=_;if(_=!1,s?.()&&c&&!t){let t=b.poll_interval_ms_at_capacity;if(b.non_exclusive_heartbeat_interval_ms>0&&d){C(`tengu_bridge_heartbeat_mode_entered`,{heartbeat_interval_ms:b.non_exclusive_heartbeat_interval_ms});let r=t>0?Date.now()+t:null,i=!1,a=0;for(;!n.aborted&&s()&&(r===null||Date.now()<r);){let t=u();if(t.non_exclusive_heartbeat_interval_ms<=0)break;let n=d();if(!n)break;let r=c();try{await e.heartbeatWork(n.environmentId,n.workId,n.sessionToken)}catch(e){if(x(`[bridge:repl:heartbeat] Failed: ${v(e)}`),e instanceof N){r.cleanup(),C(`tengu_bridge_heartbeat_error`,{status:e.status,error_type:e.status===401||e.status===403?`auth_failed`:`fatal`}),f?(f(e),x(`[bridge:repl:heartbeat] Fatal (status=${e.status}), work state cleared — fast-polling for re-dispatch`)):i=!0;break}}a++,await k(t.non_exclusive_heartbeat_interval_ms,r.signal),r.cleanup()}let o=i?`error`:n.aborted?`shutdown`:s()?r!==null&&Date.now()>=r?`poll_due`:`config_disabled`:`capacity_changed`;if(C(`tengu_bridge_heartbeat_mode_exited`,{reason:o,heartbeat_cycles:a}),!i){o===`poll_due`&&x(`[bridge:repl] Heartbeat poll_due after ${a} cycles — falling through to pollForWork`);continue}}let r=t>0?t:b.non_exclusive_heartbeat_interval_ms;if(r>0){let e=c(),t=Date.now();await k(r,e.signal),e.cleanup();let n=Date.now()-t-r;n>6e4&&(x(`[bridge:repl] At-capacity sleep overran by ${Math.round(n/1e3)}s — process suspension detected, forcing one fast-poll cycle`),C(`tengu_bridge_repl_suspension_detected`,{overrun_ms:n}),_=!0)}}else await k(b.poll_interval_ms_not_at_capacity,n);continue}let a;try{a=Re(t.secret)}catch(n){x(`[bridge:repl] Failed to decode work secret: ${v(n)}`),C(`tengu_bridge_repl_work_secret_failed`,{}),await e.stopWork(y,t.id,!1).catch(()=>{});continue}x(`[bridge:repl] Acknowledging workId=${t.id}`);try{await e.acknowledgeWork(y,t.id,a.session_ingress_token)}catch(e){x(`[bridge:repl] Acknowledge failed workId=${t.id}: ${v(e)}`)}if(t.data.type===`healthcheck`){x(`[bridge:repl] Healthcheck received`);continue}if(t.data.type===`session`){let e=t.data.id;try{F(e,`session_id`)}catch{x(`[bridge:repl] Invalid session_id in work: ${e}`);continue}i(e,a.session_ingress_token,t.id,a.use_code_sessions===!0),x(`[bridge:repl] Work accepted, continuing poll loop`)}}catch(i){if(n.aborted)break;if(i instanceof N&&i.status===404&&a){let e=t().environmentId;if(y!==e){x(`[bridge:repl] Stale poll error for old env=${y}, current env=${e} — skipping onEnvironmentLost`),p=0,m=null;continue}if(g++,x(`[bridge:repl] Environment deleted, attempting re-registration (attempt ${g}/3)`),C(`tengu_bridge_repl_env_lost`,{attempt:g}),g>3){x(`[bridge:repl] Environment re-registration limit reached (3), giving up`),r?.(`failed`,`Environment deleted and re-registration limit reached`),l?.();break}r?.(`reconnecting`,`environment lost, recreating session`);let i=await a();if(n.aborted)break;if(i){p=0,m=null,r?.(`ready`),x(`[bridge:repl] Re-registered environment: ${i.environmentId}`);continue}r?.(`failed`,`Environment deleted and re-registration failed`),l?.();break}if(i instanceof N){let e=ie(i.errorType),t=B(i);x(`[bridge:repl] Fatal poll error: ${i.message} (status=${i.status}, type=${i.errorType??`unknown`})${t?` (suppressed)`:``}`),C(`tengu_bridge_repl_fatal_error`,{status:i.status,error_type:i.errorType}),w(e?`info`:`error`,`bridge_repl_fatal_error`,{status:i.status,error_type:i.errorType}),t||r?.(`failed`,e?`session expired · /remote-control to reconnect`:i.message),l?.();break}let s=Date.now();h!==null&&s-h>6e4*2&&(x(`[bridge:repl] Detected system sleep (${Math.round((s-h)/1e3)}s gap), resetting poll error budget`),w(`info`,`bridge_repl_poll_sleep_detected`,{gapMs:s-h}),p=0,m=null),h=s,p++,m===null&&(m=s);let c=s-m,f=W(i),_=Ce(i),v=o?.()??`unknown`;if(x(`[bridge:repl] Poll error (attempt ${p}, elapsed ${Math.round(c/1e3)}s, ws=${v}): ${_}`),C(`tengu_bridge_repl_poll_error`,{status:f,consecutiveErrors:p,elapsedMs:c}),p===1&&r?.(`reconnecting`,_),c>=9e5){x(`[bridge:repl] Poll failures exceeded ${dt/1e3}s (${p} errors), giving up`),w(`info`,`bridge_repl_poll_give_up`),C(`tengu_bridge_repl_poll_give_up`,{consecutiveErrors:p,elapsedMs:c,lastStatus:f}),r?.(`failed`,`connection to server lost`);break}let ee=Math.min(lt*2**(p-1),ut);if(u().non_exclusive_heartbeat_interval_ms>0){let t=d?.();if(t)try{await e.heartbeatWork(t.environmentId,t.workId,t.sessionToken)}catch{}}await k(ee,n)}}x(`[bridge:repl] Work poll loop ended (aborted=${n.aborted}) env=${t().environmentId}`)}S(),y(),K(),G();async function ht(t){let{onInboundMessage:n,onPermissionResponse:r,onInterrupt:a,onSetModel:s,onSetMaxThinkingTokens:d,onSetPermissionMode:h,onStateChange:g,initialMessages:y,getMessages:ee,previouslyFlushedUUIDs:b,initialName:S,perpetual:te,outboundOnly:C,tags:w}=t??{};if(J(Oe),!await De())return q(`not_enabled`,`[bridge:repl] Skipping: bridge not enabled`),null;if(!Q())return q(`no_oauth`,`[bridge:repl] Skipping: no OAuth tokens`),g?.(`failed`,`/login`),null;if(await P(),!j(`allow_remote_control`))return q(`policy_denied`,`[bridge:repl] Skipping: allow_remote_control policy not allowed`),g?.(`failed`,`disabled by your organization's policy`),null;if(!Ee()){let e=f();if(e.bridgeOauthDeadExpiresAt!=null&&(e.bridgeOauthDeadFailCount??0)>=3&&c()?.expiresAt===e.bridgeOauthDeadExpiresAt)return x(`[bridge:repl] Skipping: cross-process backoff (dead token seen ${e.bridgeOauthDeadFailCount} times)`),null;await u();let t=c();if(t&&t.expiresAt!==null&&t.expiresAt<=Date.now()){q(`oauth_expired_unrefreshable`,`[bridge:repl] Skipping: OAuth token expired and refresh failed (re-login required)`),g?.(`failed`,`/login`);let e=t.expiresAt;return l(t=>({...t,bridgeOauthDeadExpiresAt:e,bridgeOauthDeadFailCount:t.bridgeOauthDeadExpiresAt===e?(t.bridgeOauthDeadFailCount??0)+1:1})),null}}let T=X(),E=`remote-control-${pe()}`,D=!1,O=!1;if(S)E=S,D=!0,O=!0;else{let e=i(),t=e?z(e):void 0;if(t)E=t,D=!0,O=!0;else if(y&&y.length>0)for(let e=y.length-1;e>=0;e--){let t=y[e];if(t.type!==`user`||t.isMeta||t.toolUseResult||t.isCompactSummary||t.origin&&t.origin.kind!==`human`||fe(t))continue;let n=se(t.message.content);if(!n)continue;let r=_t(n);if(r){E=r,D=!0;break}}}let k=0,A,ie=0,ae=(e,t,n)=>{D=!0,E=e,x(`[bridge:repl] derived title from message ${n}: ${e}`),Be(t,e,{baseUrl:T,getAccessToken:Q}).catch(()=>{})},M=(e,t)=>{let n=++ie,r=k;Je(e,AbortSignal.timeout(15e3)).then(e=>{e&&n===ie&&A===t&&!z(i())&&ae(e,t,r)})},N=(e,t)=>{if(O||z(i()))return!0;if(A!==void 0&&A!==t&&(k=0),A=t,k++,k===1&&!D){let n=_t(e);n&&ae(n,t,k),M(e,t)}else if(k===3){let n=ee?.();M(n?Xe(I(n)):e,t)}return k>=3},oe=_(`tengu_bridge_initial_history_cap`,200,300*1e3),ce=Z()?`self-hosted`:await p();if(!ce)return q(`no_org_uuid`,`[bridge:repl] Skipping: no org UUID`),g?.(`failed`,`/login`),null;if(Ae()&&!te){let e=await Ge();if(e)return q(`version_too_old`,`[bridge:repl] Skipping: ${e}`,!0),g?.(`failed`,"run `claude update` to upgrade"),null;x(`[bridge:repl] Using env-less bridge path (tengu_bridge_repl_v2)`);let{initEnvLessBridgeCore:t}=await import(`./remoteBridgeCore-BXtygJA-.js`);return t({baseUrl:T,orgUUID:ce,title:E,getAccessToken:Q,onAuth401:m,toSDKMessages:qe,initialHistoryCap:oe,initialMessages:y,onInboundMessage:n,onUserMessage:N,onPermissionResponse:r,onInterrupt:a,onSetModel:s,onSetMaxThinkingTokens:d,onSetPermissionMode:h,onStateChange:g,outboundOnly:C,tags:w})}let F=je();if(F)return q(`version_too_old`,`[bridge:repl] Skipping: ${F}`),g?.(`failed`,"run `claude update` to upgrade"),null;let le=await ne(),L=await re(),ue=process.env.CLAUDE_BRIDGE_SESSION_INGRESS_URL||T,de=`claude_code`;{let{isAssistantMode:t}=(Me(),e($));t()&&(de=`claude_code_assistant`)}return pt({dir:o(),machineName:st(),branch:le,gitRepoUrl:L,title:E,baseUrl:T,sessionIngressUrl:ue,workerType:de,getAccessToken:Q,createSession:e=>He({...e,events:[],baseUrl:T,getAccessToken:Q}),archiveSession:e=>Ue(e,{baseUrl:T,getAccessToken:Q,timeoutMs:1500}).catch(e=>{x(`[bridge:repl] archiveBridgeSession threw: ${v(e)}`,{level:`error`})}),getCurrentTitle:()=>z(i())??E,onUserMessage:N,toSDKMessages:qe,onAuth401:m,getPollIntervalConfig:Fe,initialHistoryCap:oe,initialMessages:y,previouslyFlushedUUIDs:b,onInboundMessage:n,onPermissionResponse:r,onInterrupt:a,onSetModel:s,onSetMaxThinkingTokens:d,onSetPermissionMode:h,onStateChange:g,perpetual:te})}var gt=50;function _t(e){let t=D(e),n=(/^(.*?[.!?])\s/.exec(t)?.[1]??t).replace(/\s+/g,` `).trim();if(n)return n.length>gt?n.slice(0,gt-1)+`…`:n}export{ht as initReplBridge};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./chunk-DR8-3Aex.js";import{n as t,s as n}from"./envUtils-BWeoiL4Y.js";import{Oo as r,Pr as i,Tr as a,jo as o,rs as s}from"./paths-q1-Ni8Oh.js";import{E as c,K as l,T as u,V as d,w as f}from"./debug-UI3T040K.js";import{o as p,s as m}from"./log-CzsijfHZ.js";import{r as h,t as g}from"./execFileNoThrow-CuQN1sz8.js";import{Ar as _,Co as v,Cr as y,LO as b,Lo as x,Uk as S,Wk as ee,it as C,tt as te,wr as ne,xr as re,zr as ie}from"./loadAgentsDir-Cl2w3uvH.js";import{n as w,r as ae}from"./xml-CMdTGiv6.js";import{X as T}from"./rcDebugLog-fhwD4wm-.js";import{tmpdir as oe}from"os";import{extname as se,join as E}from"path";import{constants as ce}from"fs";import{copyFile as le,mkdir as D,mkdtemp as ue,readFile as O,readdir as k,rm as de,unlink as fe,writeFile as A}from"fs/promises";import{execFileSync as pe}from"child_process";function j(){return a()}function me(){return a()}function M(){return E(t(),`usage-data`)}function N(){return E(M(),`facets`)}function P(){return E(M(),`session-meta`)}function he(e){return K[se(e).toLowerCase()]||null}function ge(e){let t={},n={},i=0,a=0,o=0,s=0,c=0,l=[],u=0,d={},f=!1,p=0,m=0,h=new Set,g=[],_=[],v=!1,y=!1,b=!1,x=null;for(let S of e.messages){let e=S.timestamp;if(S.type===`assistant`&&S.message){e&&(x=e);let c=S.message.usage;c&&(o+=c.input_tokens||0,s+=c.output_tokens||0);let l=S.message.content;if(Array.isArray(l)){for(let e of l)if(e.type===`tool_use`&&`name`in e){let o=e.name;t[o]=(t[o]||0)+1,(o===`Agent`||o===`Task`)&&(f=!0),o.startsWith(`mcp__`)&&(v=!0),o===`WebSearch`&&(y=!0),o===`WebFetch`&&(b=!0);let s=e.input;if(s){let e=s.file_path||``;if(e){let t=he(e);t&&(n[t]=(n[t]||0)+1),(o===`Edit`||o===`Write`)&&h.add(e)}if(o===`Edit`){let e=s.old_string||``,t=s.new_string||``;for(let n of ee(e,t))n.added&&(p+=n.count||0),n.removed&&(m+=n.count||0)}if(o===`Write`){let e=s.content||``;e&&(p+=r(e,`
1
+ import{n as e}from"./chunk-DR8-3Aex.js";import{n as t,s as n}from"./envUtils-BWeoiL4Y.js";import{Oo as r,Pr as i,Tr as a,jo as o,rs as s}from"./paths-D9CVAtXU.js";import{E as c,K as l,T as u,V as d,w as f}from"./debug-UI3T040K.js";import{o as p,s as m}from"./log-CzsijfHZ.js";import{r as h,t as g}from"./execFileNoThrow-CuQN1sz8.js";import{Ar as _,Co as v,Cr as y,LO as b,Lo as x,Uk as S,Wk as ee,it as C,tt as te,wr as ne,xr as re,zr as ie}from"./loadAgentsDir-D-xcJ22-.js";import{n as w,r as ae}from"./xml-K_hNNh2b.js";import{X as T}from"./rcDebugLog-CTOZ2K3E.js";import{tmpdir as oe}from"os";import{extname as se,join as E}from"path";import{constants as ce}from"fs";import{copyFile as le,mkdir as D,mkdtemp as ue,readFile as O,readdir as k,rm as de,unlink as fe,writeFile as A}from"fs/promises";import{execFileSync as pe}from"child_process";function j(){return a()}function me(){return a()}function M(){return E(t(),`usage-data`)}function N(){return E(M(),`facets`)}function P(){return E(M(),`session-meta`)}function he(e){return K[se(e).toLowerCase()]||null}function ge(e){let t={},n={},i=0,a=0,o=0,s=0,c=0,l=[],u=0,d={},f=!1,p=0,m=0,h=new Set,g=[],_=[],v=!1,y=!1,b=!1,x=null;for(let S of e.messages){let e=S.timestamp;if(S.type===`assistant`&&S.message){e&&(x=e);let c=S.message.usage;c&&(o+=c.input_tokens||0,s+=c.output_tokens||0);let l=S.message.content;if(Array.isArray(l)){for(let e of l)if(e.type===`tool_use`&&`name`in e){let o=e.name;t[o]=(t[o]||0)+1,(o===`Agent`||o===`Task`)&&(f=!0),o.startsWith(`mcp__`)&&(v=!0),o===`WebSearch`&&(y=!0),o===`WebFetch`&&(b=!0);let s=e.input;if(s){let e=s.file_path||``;if(e){let t=he(e);t&&(n[t]=(n[t]||0)+1),(o===`Edit`||o===`Write`)&&h.add(e)}if(o===`Edit`){let e=s.old_string||``,t=s.new_string||``;for(let n of ee(e,t))n.added&&(p+=n.count||0),n.removed&&(m+=n.count||0)}if(o===`Write`){let e=s.content||``;e&&(p+=r(e,`
2
2
  `)+1)}let t=s.command||``;t.includes(`git commit`)&&i++,t.includes(`git push`)&&a++}}}}if(S.type===`user`&&S.message){let t=S.message.content,n=!1;if(typeof t==`string`&&t.trim())n=!0;else if(Array.isArray(t)){for(let e of t)if(e.type===`text`&&`text`in e){n=!0;break}}if(n){if(e)try{let t=new Date(e).getHours();g.push(t),_.push(e)}catch{}if(x&&e){let t=new Date(x).getTime(),n=(new Date(e).getTime()-t)/1e3;n>2&&n<3600&&l.push(n)}}if(Array.isArray(t)){for(let e of t)if(e.type===`tool_result`&&`content`in e&&e.is_error){u++;let t=e.content,n=`Other`;if(typeof t==`string`){let e=t.toLowerCase();e.includes(`exit code`)?n=`Command Failed`:e.includes(`rejected`)||e.includes(`doesn't want`)?n=`User Rejected`:e.includes(`string to replace not found`)||e.includes(`no changes`)?n=`Edit Failed`:e.includes(`modified since read`)?n=`File Changed`:e.includes(`exceeds maximum`)||e.includes(`too large`)?n=`File Too Large`:(e.includes(`file not found`)||e.includes(`does not exist`))&&(n=`File Not Found`)}d[n]=(d[n]||0)+1}}if(typeof t==`string`)t.includes(`[Request interrupted by user`)&&c++;else if(Array.isArray(t)){for(let e of t)if(e.type===`text`&&`text`in e&&e.text.includes(`[Request interrupted by user`)){c++;break}}}}return{toolCounts:t,languages:n,gitCommits:i,gitPushes:a,inputTokens:o,outputTokens:s,userInterruptions:c,userResponseTimes:l,toolErrors:u,toolErrorCategories:d,usesTaskAgent:f,usesMcp:v,usesWebSearch:y,usesWebFetch:b,linesAdded:p,linesRemoved:m,filesModified:h,messageHours:g,userMessageTimestamps:_}}function _e(e){return!Number.isNaN(e.created.getTime())&&!Number.isNaN(e.modified.getTime())}function F(e){let t=ge(e),n=ne(e)||`unknown`,r=e.created.toISOString(),i=Math.round((e.modified.getTime()-e.created.getTime())/1e3/60),a=0,o=0;for(let t of e.messages)if(t.type===`assistant`&&o++,t.type===`user`&&t.message){let e=t.message.content,n=!1;if(typeof e==`string`&&e.trim())n=!0;else if(Array.isArray(e)){for(let t of e)if(t.type===`text`&&`text`in t){n=!0;break}}n&&a++}return{session_id:n,project_path:e.projectPath||``,start_time:r,duration_minutes:i,user_message_count:a,assistant_message_count:o,tool_counts:t.toolCounts,languages:t.languages,git_commits:t.gitCommits,git_pushes:t.gitPushes,input_tokens:t.inputTokens,output_tokens:t.outputTokens,first_prompt:e.firstPrompt||``,summary:e.summary,user_interruptions:t.userInterruptions,user_response_times:t.userResponseTimes,tool_errors:t.toolErrors,tool_error_categories:t.toolErrorCategories,uses_task_agent:t.usesTaskAgent,uses_mcp:t.usesMcp,uses_web_search:t.usesWebSearch,uses_web_fetch:t.usesWebFetch,lines_added:t.linesAdded,lines_removed:t.linesRemoved,files_modified:t.filesModified.size,message_hours:t.messageHours,user_message_timestamps:t.userMessageTimestamps}}function ve(e){let t=[],n=F(e);t.push(`Session: ${n.session_id.slice(0,8)}`),t.push(`Date: ${n.start_time}`),t.push(`Project: ${n.project_path}`),t.push(`Duration: ${n.duration_minutes} min`),t.push(``);for(let n of e.messages)if(n.type===`user`&&n.message){let e=n.message.content;if(typeof e==`string`)t.push(`[User]: ${e.slice(0,500)}`);else if(Array.isArray(e))for(let n of e)n.type===`text`&&`text`in n&&t.push(`[User]: ${n.text.slice(0,500)}`)}else if(n.type===`assistant`&&n.message){let e=n.message.content;if(Array.isArray(e))for(let n of e)n.type===`text`&&`text`in n?t.push(`[Assistant]: ${n.text.slice(0,300)}`):n.type===`tool_use`&&`name`in n&&t.push(`[Tool: ${n.name}]`)}return t.join(`
3
3
  `)}async function ye(e){try{return v((await C({systemPrompt:T([]),userPrompt:Y+e,signal:new AbortController().signal,options:{model:j(),querySource:`insights`,agents:[],isNonInteractiveSession:!0,hasAppendSystemPrompt:!1,mcpTools:[],maxOutputTokensOverride:500}})).message.content)||e.slice(0,2e3)}catch{return e.slice(0,2e3)}}async function be(e){let t=ve(e);if(t.length<=3e4)return t;let n=25e3,r=[];for(let e=0;e<t.length;e+=n)r.push(t.slice(e,e+n));let i=await Promise.all(r.map(ye)),a=F(e);return[`Session: ${a.session_id.slice(0,8)}`,`Date: ${a.start_time}`,`Project: ${a.project_path}`,`Duration: ${a.duration_minutes} min`,`[Long session - ${r.length} parts summarized]`,``].join(`
4
4
  `)+i.join(`
@@ -1 +1 @@
1
- import{o as e}from"./chunk-DR8-3Aex.js";import{Mt as t,Rn as n,b as r,o as i,t as a,x as o}from"./src-Di342QoJ.js";import{t as s}from"./jsx-runtime-D-D469L8.js";import{Ka as c,lo as l,oo as u}from"./paths-q1-Ni8Oh.js";import{L as d,V as f,d as p,s as m}from"./debug-UI3T040K.js";import{n as h,r as g}from"./analytics-DqMQntaB.js";import{a as _,n as v}from"./env-chR0gV31.js";import{Bb as y,Hb as b,Rb as x,Ub as S,zb as C}from"./loadAgentsDir-Cl2w3uvH.js";import{join as w}from"node:path";import{homedir as T}from"node:os";var E=e(n(),1);h(),a(),m(),_(),f(),x(),u();var D=s();function O(){let e=v.platform===`win32`,t=T();return e?w(t,`.local`,`bin`,`claude.exe`).replace(/\//g,`\\`):`~/.local/bin/claude`}function k({messages:e}){return e.length===0?null:(0,D.jsxs)(o,{flexDirection:`column`,gap:0,marginBottom:1,children:[(0,D.jsx)(o,{children:(0,D.jsxs)(r,{color:`warning`,children:[(0,D.jsx)(i,{status:`warning`,withSpace:!0}),`Setup notes:`]})}),e.map((e,t)=>(0,D.jsx)(o,{marginLeft:2,children:(0,D.jsxs)(r,{dimColor:!0,children:[`• `,e]})},t))]})}function A({onDone:e,force:t,target:n}){let[a,s]=(0,E.useState)({type:`checking`});return(0,E.useEffect)(()=>{async function e(){try{p(`Install: Starting installation process (force=${t}, target=${n})`);let e=n||c()?.autoUpdatesChannel||`latest`;s({type:`installing`,version:e}),p(`Install: Calling installLatest(channelOrVersion=${e}, forceReinstall=${t})`);let r=await S(e,t);if(p(`Install: installLatest returned version=${r.latestVersion}, wasUpdated=${r.wasUpdated}, lockFailed=${r.lockFailed}`),r.lockFailed)throw Error(`Could not install - another process is currently installing Claude. Please try again in a moment.`);r.latestVersion||p(`Install: Failed to retrieve version information during install`,{level:`error`}),r.wasUpdated||p(`Install: Already up to date`),s({type:`setting-up`});let i=await C(!0);p(`Install: Setup launcher completed with ${i.length} messages`),i.length>0&&i.forEach(e=>p(`Install: Setup message: ${e.message}`)),p(`Install: Cleaning up npm installations after successful install`);let{removed:a,errors:o,warnings:u}=await y();a>0&&p(`Cleaned up ${a} npm installation(s)`),o.length>0&&p(`Cleanup errors: ${o.join(`, `)}`);let d=await b();d.length>0&&p(`Shell alias cleanup: ${d.map(e=>e.message).join(`; `)}`),g(`tengu_claude_install_command`,{has_version:+!!r.latestVersion,forced:+!!t}),(n===`latest`||n===`stable`)&&(l(`userSettings`,{autoUpdatesChannel:n}),p(`Install: Saved autoUpdatesChannel=${n} to user settings`));let f=[...u,...d.map(e=>e.message)];i.length>0?(s({type:`set-up`,messages:i.map(e=>e.message)}),setTimeout(s,2e3,{type:`success`,version:r.latestVersion||`current`,setupMessages:[...i.map(e=>e.message),...f]})):(p(`Install: Shell PATH already configured`),s({type:`success`,version:r.latestVersion||`current`,setupMessages:f.length>0?f:void 0}))}catch(e){p(`Install command failed: ${e}`,{level:`error`}),s({type:`error`,message:d(e)})}}e()},[t,n]),(0,E.useEffect)(()=>{a.type===`success`?setTimeout(e,2e3,`Claude Code installation completed successfully`,{display:`system`}):a.type===`error`&&setTimeout(e,3e3,`Claude Code installation failed`,{display:`system`})},[a,e]),(0,D.jsxs)(o,{flexDirection:`column`,marginTop:1,children:[a.type===`checking`&&(0,D.jsx)(r,{color:`claude`,children:`Checking installation status...`}),a.type===`cleaning-npm`&&(0,D.jsx)(r,{color:`warning`,children:`Cleaning up old npm installations...`}),a.type===`installing`&&(0,D.jsxs)(r,{color:`claude`,children:[`Installing Claude Code native build `,a.version,`...`]}),a.type===`setting-up`&&(0,D.jsx)(r,{color:`claude`,children:`Setting up launcher and shell integration...`}),a.type===`set-up`&&(0,D.jsx)(k,{messages:a.messages}),a.type===`success`&&(0,D.jsxs)(o,{flexDirection:`column`,gap:1,children:[(0,D.jsxs)(o,{children:[(0,D.jsx)(i,{status:`success`,withSpace:!0}),(0,D.jsx)(r,{color:`success`,bold:!0,children:`Claude Code successfully installed!`})]}),(0,D.jsxs)(o,{marginLeft:2,flexDirection:`column`,gap:1,children:[a.version!==`current`&&(0,D.jsxs)(o,{children:[(0,D.jsx)(r,{dimColor:!0,children:`Version: `}),(0,D.jsx)(r,{color:`claude`,children:a.version})]}),(0,D.jsxs)(o,{children:[(0,D.jsx)(r,{dimColor:!0,children:`Location: `}),(0,D.jsx)(r,{color:`text`,children:O()})]})]}),(0,D.jsx)(o,{marginLeft:2,flexDirection:`column`,gap:1,children:(0,D.jsxs)(o,{marginTop:1,children:[(0,D.jsx)(r,{dimColor:!0,children:`Next: Run `}),(0,D.jsx)(r,{color:`claude`,bold:!0,children:`claude --help`}),(0,D.jsx)(r,{dimColor:!0,children:` to get started`})]})}),a.setupMessages&&(0,D.jsx)(k,{messages:a.setupMessages})]}),a.type===`error`&&(0,D.jsxs)(o,{flexDirection:`column`,gap:1,children:[(0,D.jsxs)(o,{children:[(0,D.jsx)(i,{status:`error`,withSpace:!0}),(0,D.jsx)(r,{color:`error`,children:`Installation failed`})]}),(0,D.jsx)(r,{color:`error`,children:a.message}),(0,D.jsx)(o,{marginTop:1,children:(0,D.jsx)(r,{dimColor:!0,children:`Try running with --force to override checks`})})]})]})}var j={type:`local-jsx`,name:`install`,description:`Install Claude Code native build`,argumentHint:`[options]`,async call(e,n,r){let i=r.includes(`--force`),a=r.filter(e=>!e.startsWith(`--`))[0],{unmount:o}=await t((0,D.jsx)(A,{onDone:(t,n)=>{o(),e(t,n)},force:i,target:a}))}};export{j as install};
1
+ import{o as e}from"./chunk-DR8-3Aex.js";import{Mt as t,Rn as n,b as r,o as i,t as a,x as o}from"./src-Di342QoJ.js";import{t as s}from"./jsx-runtime-D-D469L8.js";import{Ka as c,lo as l,oo as u}from"./paths-D9CVAtXU.js";import{L as d,V as f,d as p,s as m}from"./debug-UI3T040K.js";import{n as h,r as g}from"./analytics-DqMQntaB.js";import{a as _,n as v}from"./env-chR0gV31.js";import{Bb as y,Hb as b,Rb as x,Ub as S,zb as C}from"./loadAgentsDir-D-xcJ22-.js";import{join as w}from"node:path";import{homedir as T}from"node:os";var E=e(n(),1);h(),a(),m(),_(),f(),x(),u();var D=s();function O(){let e=v.platform===`win32`,t=T();return e?w(t,`.local`,`bin`,`claude.exe`).replace(/\//g,`\\`):`~/.local/bin/claude`}function k({messages:e}){return e.length===0?null:(0,D.jsxs)(o,{flexDirection:`column`,gap:0,marginBottom:1,children:[(0,D.jsx)(o,{children:(0,D.jsxs)(r,{color:`warning`,children:[(0,D.jsx)(i,{status:`warning`,withSpace:!0}),`Setup notes:`]})}),e.map((e,t)=>(0,D.jsx)(o,{marginLeft:2,children:(0,D.jsxs)(r,{dimColor:!0,children:[`• `,e]})},t))]})}function A({onDone:e,force:t,target:n}){let[a,s]=(0,E.useState)({type:`checking`});return(0,E.useEffect)(()=>{async function e(){try{p(`Install: Starting installation process (force=${t}, target=${n})`);let e=n||c()?.autoUpdatesChannel||`latest`;s({type:`installing`,version:e}),p(`Install: Calling installLatest(channelOrVersion=${e}, forceReinstall=${t})`);let r=await S(e,t);if(p(`Install: installLatest returned version=${r.latestVersion}, wasUpdated=${r.wasUpdated}, lockFailed=${r.lockFailed}`),r.lockFailed)throw Error(`Could not install - another process is currently installing Claude. Please try again in a moment.`);r.latestVersion||p(`Install: Failed to retrieve version information during install`,{level:`error`}),r.wasUpdated||p(`Install: Already up to date`),s({type:`setting-up`});let i=await C(!0);p(`Install: Setup launcher completed with ${i.length} messages`),i.length>0&&i.forEach(e=>p(`Install: Setup message: ${e.message}`)),p(`Install: Cleaning up npm installations after successful install`);let{removed:a,errors:o,warnings:u}=await y();a>0&&p(`Cleaned up ${a} npm installation(s)`),o.length>0&&p(`Cleanup errors: ${o.join(`, `)}`);let d=await b();d.length>0&&p(`Shell alias cleanup: ${d.map(e=>e.message).join(`; `)}`),g(`tengu_claude_install_command`,{has_version:+!!r.latestVersion,forced:+!!t}),(n===`latest`||n===`stable`)&&(l(`userSettings`,{autoUpdatesChannel:n}),p(`Install: Saved autoUpdatesChannel=${n} to user settings`));let f=[...u,...d.map(e=>e.message)];i.length>0?(s({type:`set-up`,messages:i.map(e=>e.message)}),setTimeout(s,2e3,{type:`success`,version:r.latestVersion||`current`,setupMessages:[...i.map(e=>e.message),...f]})):(p(`Install: Shell PATH already configured`),s({type:`success`,version:r.latestVersion||`current`,setupMessages:f.length>0?f:void 0}))}catch(e){p(`Install command failed: ${e}`,{level:`error`}),s({type:`error`,message:d(e)})}}e()},[t,n]),(0,E.useEffect)(()=>{a.type===`success`?setTimeout(e,2e3,`Claude Code installation completed successfully`,{display:`system`}):a.type===`error`&&setTimeout(e,3e3,`Claude Code installation failed`,{display:`system`})},[a,e]),(0,D.jsxs)(o,{flexDirection:`column`,marginTop:1,children:[a.type===`checking`&&(0,D.jsx)(r,{color:`claude`,children:`Checking installation status...`}),a.type===`cleaning-npm`&&(0,D.jsx)(r,{color:`warning`,children:`Cleaning up old npm installations...`}),a.type===`installing`&&(0,D.jsxs)(r,{color:`claude`,children:[`Installing Claude Code native build `,a.version,`...`]}),a.type===`setting-up`&&(0,D.jsx)(r,{color:`claude`,children:`Setting up launcher and shell integration...`}),a.type===`set-up`&&(0,D.jsx)(k,{messages:a.messages}),a.type===`success`&&(0,D.jsxs)(o,{flexDirection:`column`,gap:1,children:[(0,D.jsxs)(o,{children:[(0,D.jsx)(i,{status:`success`,withSpace:!0}),(0,D.jsx)(r,{color:`success`,bold:!0,children:`Claude Code successfully installed!`})]}),(0,D.jsxs)(o,{marginLeft:2,flexDirection:`column`,gap:1,children:[a.version!==`current`&&(0,D.jsxs)(o,{children:[(0,D.jsx)(r,{dimColor:!0,children:`Version: `}),(0,D.jsx)(r,{color:`claude`,children:a.version})]}),(0,D.jsxs)(o,{children:[(0,D.jsx)(r,{dimColor:!0,children:`Location: `}),(0,D.jsx)(r,{color:`text`,children:O()})]})]}),(0,D.jsx)(o,{marginLeft:2,flexDirection:`column`,gap:1,children:(0,D.jsxs)(o,{marginTop:1,children:[(0,D.jsx)(r,{dimColor:!0,children:`Next: Run `}),(0,D.jsx)(r,{color:`claude`,bold:!0,children:`claude --help`}),(0,D.jsx)(r,{dimColor:!0,children:` to get started`})]})}),a.setupMessages&&(0,D.jsx)(k,{messages:a.setupMessages})]}),a.type===`error`&&(0,D.jsxs)(o,{flexDirection:`column`,gap:1,children:[(0,D.jsxs)(o,{children:[(0,D.jsx)(i,{status:`error`,withSpace:!0}),(0,D.jsx)(r,{color:`error`,children:`Installation failed`})]}),(0,D.jsx)(r,{color:`error`,children:a.message}),(0,D.jsx)(o,{marginTop:1,children:(0,D.jsx)(r,{dimColor:!0,children:`Try running with --force to override checks`})})]})]})}var j={type:`local-jsx`,name:`install`,description:`Install Claude Code native build`,argumentHint:`[options]`,async call(e,n,r){let i=r.includes(`--force`),a=r.filter(e=>!e.startsWith(`--`))[0],{unmount:o}=await t((0,D.jsx)(A,{onDone:(t,n)=>{o(),e(t,n)},force:i,target:a}))}};export{j as install};
@@ -1,4 +1,4 @@
1
- import{n as e,o as t}from"./chunk-DR8-3Aex.js";import{n,t as r}from"./figures-gfT9mM8P.js";import{F as i,Q as a,Rn as o,T as s,b as c,f as l,g as u,h as d,nt as f,t as p,tn as m,tt as h,v as g,x as _}from"./src-Di342QoJ.js";import{t as v}from"./jsx-runtime-D-D469L8.js";import{Ac as y,Mn as b,Pc as x,Po as ee,Vt as te,cn as S,jo as C,on as w}from"./paths-q1-Ni8Oh.js";import{n as T,r as E}from"./analytics-DqMQntaB.js";import{l as ne,v as re}from"./git-CN3qtTb_.js";import{r as ie,t as ae}from"./execa-CGue6Z3n.js";import{o as oe,s as D}from"./log-CzsijfHZ.js";import{r as se,t as O}from"./execFileNoThrow-CuQN1sz8.js";import{Bx as k,Nx as ce,OT as le,Sy as ue,Uw as A,by as j,eC as de,gy as fe,hy as pe,kT as me,my as he,tC as ge,zx as M}from"./loadAgentsDir-Cl2w3uvH.js";import{n as _e,t as ve}from"./browser-fLRXxIsQ.js";import{t as N}from"./useKeybinding-FsOnjW6T.js";import{l as ye,u as be}from"./referral-rRvT6UDX.js";function xe(e){return e.pending?(0,F.jsxs)(c,{children:[`Press `,e.keyName,` again to exit`]}):(0,F.jsxs)(d,{children:[(0,F.jsx)(u,{shortcut:`↑↓`,action:`navigate`}),(0,F.jsx)(u,{shortcut:`Space`,action:`toggle`}),(0,F.jsx)(u,{shortcut:`Enter`,action:`confirm`}),(0,F.jsx)(de,{action:`confirm:no`,context:`Confirmation`,fallback:`Esc`,description:`cancel`})]})}function Se({onSubmit:e,defaultSelections:t}){let[n,r]=(0,P.useState)(!1),i=(0,P.useCallback)(t=>{if(t.length===0){r(!0);return}r(!1),e(t)},[e]),o=(0,P.useCallback)(()=>{r(!1)},[]),s=(0,P.useCallback)(()=>{r(!0)},[]);return(0,F.jsxs)(l,{title:`Select GitHub workflows to install`,subtitle:`We'll create a workflow file in your repository for each one you select.`,onCancel:s,inputGuide:xe,children:[(0,F.jsx)(_,{children:(0,F.jsxs)(c,{dimColor:!0,children:[`More workflow examples (issue triage, CI fixes, etc.) at:`,` `,(0,F.jsx)(a,{url:`https://github.com/anthropics/claude-code-action/blob/main/examples/`,children:`https://github.com/anthropics/claude-code-action/blob/main/examples/`})]})}),(0,F.jsx)(pe,{options:Ce.map(e=>({label:e.label,value:e.value})),defaultValue:t,onSubmit:i,onChange:o,onCancel:s,hideIndexes:!0}),n&&(0,F.jsx)(_,{children:(0,F.jsx)(c,{color:`error`,children:`You must select at least one workflow to continue`})})]})}var P,F,Ce,we=e((()=>{P=t(o(),1),p(),ge(),fe(),F=v(),Ce=[{value:`claude`,label:`@Claude Code - Tag @claude in issues and PR comments`},{value:`claude-review`,label:`Claude Code Review - Automated code review on new PRs`}]})),Te,I,Ee,De,Oe,L=e((()=>{Te=`Add Claude Code GitHub Workflow`,I=`https://github.com/anthropics/claude-code-action/blob/main/docs/setup.md`,Ee=`name: Claude Code
1
+ import{n as e,o as t}from"./chunk-DR8-3Aex.js";import{n,t as r}from"./figures-gfT9mM8P.js";import{F as i,Q as a,Rn as o,T as s,b as c,f as l,g as u,h as d,nt as f,t as p,tn as m,tt as h,v as g,x as _}from"./src-Di342QoJ.js";import{t as v}from"./jsx-runtime-D-D469L8.js";import{Ac as y,Mn as b,Pc as x,Po as ee,Vt as te,cn as S,jo as C,on as w}from"./paths-D9CVAtXU.js";import{n as T,r as E}from"./analytics-DqMQntaB.js";import{l as ne,v as re}from"./git-CN3qtTb_.js";import{r as ie,t as ae}from"./execa-CGue6Z3n.js";import{o as oe,s as D}from"./log-CzsijfHZ.js";import{r as se,t as O}from"./execFileNoThrow-CuQN1sz8.js";import{Bx as k,Nx as ce,OT as le,Sy as ue,Uw as A,by as j,eC as de,gy as fe,hy as pe,kT as me,my as he,tC as ge,zx as M}from"./loadAgentsDir-D-xcJ22-.js";import{n as _e,t as ve}from"./browser-fLRXxIsQ.js";import{t as N}from"./useKeybinding-FsOnjW6T.js";import{l as ye,u as be}from"./referral-D26orIXE.js";function xe(e){return e.pending?(0,F.jsxs)(c,{children:[`Press `,e.keyName,` again to exit`]}):(0,F.jsxs)(d,{children:[(0,F.jsx)(u,{shortcut:`↑↓`,action:`navigate`}),(0,F.jsx)(u,{shortcut:`Space`,action:`toggle`}),(0,F.jsx)(u,{shortcut:`Enter`,action:`confirm`}),(0,F.jsx)(de,{action:`confirm:no`,context:`Confirmation`,fallback:`Esc`,description:`cancel`})]})}function Se({onSubmit:e,defaultSelections:t}){let[n,r]=(0,P.useState)(!1),i=(0,P.useCallback)(t=>{if(t.length===0){r(!0);return}r(!1),e(t)},[e]),o=(0,P.useCallback)(()=>{r(!1)},[]),s=(0,P.useCallback)(()=>{r(!0)},[]);return(0,F.jsxs)(l,{title:`Select GitHub workflows to install`,subtitle:`We'll create a workflow file in your repository for each one you select.`,onCancel:s,inputGuide:xe,children:[(0,F.jsx)(_,{children:(0,F.jsxs)(c,{dimColor:!0,children:[`More workflow examples (issue triage, CI fixes, etc.) at:`,` `,(0,F.jsx)(a,{url:`https://github.com/anthropics/claude-code-action/blob/main/examples/`,children:`https://github.com/anthropics/claude-code-action/blob/main/examples/`})]})}),(0,F.jsx)(pe,{options:Ce.map(e=>({label:e.label,value:e.value})),defaultValue:t,onSubmit:i,onChange:o,onCancel:s,hideIndexes:!0}),n&&(0,F.jsx)(_,{children:(0,F.jsx)(c,{color:`error`,children:`You must select at least one workflow to continue`})})]})}var P,F,Ce,we=e((()=>{P=t(o(),1),p(),ge(),fe(),F=v(),Ce=[{value:`claude`,label:`@Claude Code - Tag @claude in issues and PR comments`},{value:`claude-review`,label:`Claude Code Review - Automated code review on new PRs`}]})),Te,I,Ee,De,Oe,L=e((()=>{Te=`Add Claude Code GitHub Workflow`,I=`https://github.com/anthropics/claude-code-action/blob/main/docs/setup.md`,Ee=`name: Claude Code
2
2
 
3
3
  on:
4
4
  issue_comment:
@@ -1 +1 @@
1
- import{n as e}from"./chunk-DR8-3Aex.js";import{Ac as t,Pc as n}from"./paths-q1-Ni8Oh.js";import{n as r,r as i}from"./analytics-DqMQntaB.js";import{n as a,t as o}from"./browser-fLRXxIsQ.js";async function s(){return i(`tengu_install_slack_app_clicked`,{}),n(e=>({...e,slackAppInstallCount:(e.slackAppInstallCount??0)+1})),await a(c)?{type:`text`,value:`Opening Slack app installation page in browser…`}:{type:`text`,value:`Couldn't open browser. Visit: ${c}`}}var c;e((()=>{r(),o(),t(),c=`https://slack.com/marketplace/A08SF47R6P4-claude`}))();export{s as call};
1
+ import{n as e}from"./chunk-DR8-3Aex.js";import{Ac as t,Pc as n}from"./paths-D9CVAtXU.js";import{n as r,r as i}from"./analytics-DqMQntaB.js";import{n as a,t as o}from"./browser-fLRXxIsQ.js";async function s(){return i(`tengu_install_slack_app_clicked`,{}),n(e=>({...e,slackAppInstallCount:(e.slackAppInstallCount??0)+1})),await a(c)?{type:`text`,value:`Opening Slack app installation page in browser…`}:{type:`text`,value:`Couldn't open browser. Visit: ${c}`}}var c;e((()=>{r(),o(),t(),c=`https://slack.com/marketplace/A08SF47R6P4-claude`}))();export{s as call};
@@ -1,6 +1,6 @@
1
- import{n as e,o as t}from"./chunk-DR8-3Aex.js";import{s as n,u as r}from"./envUtils-BWeoiL4Y.js";import{n as i,t as a}from"./defineProperty-80gRi2ZW.js";import{n as o,o as s,r as c,x as ee}from"./esm-CJlBxjtx.js";import{Q as te,Z as ne,_ as l,at as u,c as d,i as re,j as f,n as ie,o as p,r as ae,t as m}from"./esm-DcdOXSzi.js";import{n as h,t as oe}from"./esm-BGQPWnJy.js";import{a as g,i as se,l as ce,n as le,r as ue}from"./esm-QgL6y---.js";import{n as de,t as fe}from"./axios-DhfaybwJ.js";import{$ as _,$n as v,Dr as pe,Gt as y,Pn as b,U as me,cn as x,ir as S,nt as he}from"./state-sIHsFpDu.js";import{Ac as C,At as w,Pc as ge,Qt as _e,Sc as T,Tt as ve,an as ye,bt as E,dn as D,dt as be,ft as O,gc as xe,jt as k,mt as A,no as Se,on as j,oo as Ce,pt as we,sn as Te,tn as M,wt as N}from"./paths-q1-Ni8Oh.js";import{E as P,K as Ee,L as F,V as I,X as L,Y as De,a as Oe,d as R,s as z,w as ke}from"./debug-UI3T040K.js";import{d as Ae,f as je,o as B,s as V}from"./log-CzsijfHZ.js";import{a as Me,i as Ne,o as Pe}from"./platform-CuyedWpe.js";import{r as Fe,t as Ie}from"./memoize-DxwLawI2.js";import{a as Le,n as Re}from"./startupProfiler-DnXZaX4A.js";import{b as H,d as ze,g as Be,m as Ve,s as He,u as Ue,v as U,x as We,y as Ge}from"./proxy-CfZp-wce.js";import{_ as Ke,b as qe,c as Je,l as Ye,r as W,v as Xe,y as Ze}from"./sessionTracing-BkzKJi0v.js";import{a as G,i as K,r as Qe,t as $e}from"./esm-C-1qL9Mn.js";async function et(){let e=E();if(e.error)throw Error(`Auth error: ${e.error}`);let t={"Content-Type":`application/json`,"User-Agent":w(),...e.headers};return(await de.get(`https://api.anthropic.com/api/claude_code/organizations/metrics_enabled`,{headers:t,timeout:5e3})).data}async function tt(){if(je())return{enabled:!1,hasError:!1};try{let e=await ve(et,{also403Revoked:!0});return R(`Metrics opt-out API response: enabled=${e.metrics_logging_enabled}`),{enabled:e.metrics_logging_enabled,hasError:!1}}catch(e){return R(`Failed to check metrics opt-out status: ${F(e)}`),V(e),{enabled:!1,hasError:!0}}}async function nt(){let e=await at();if(e.hasError)return e;let t=T().metricsStatusCache;return t!==void 0&&t.enabled===e.enabled&&Date.now()-t.timestamp<q||ge(t=>({...t,metricsStatusCache:{enabled:e.enabled,timestamp:Date.now()}})),e}async function rt(){if(D()&&!ye())return{enabled:!1,hasError:!1};let e=T().metricsStatusCache;return e?(Date.now()-e.timestamp>q&&nt().catch(V),{enabled:e.enabled,hasError:!1}):nt()}var it,q,at,ot=e((()=>{fe(),j(),C(),z(),I(),N(),B(),Ie(),Ae(),k(),it=3600*1e3,q=1440*60*1e3,at=Fe(tt,it)})),st,ct=e((()=>{d(),le(),fe(),ot(),x(),j(),C(),z(),I(),N(),B(),ke(),k(),i(),st=class{constructor(e={}){a(this,`endpoint`,void 0),a(this,`timeout`,void 0),a(this,`pendingExports`,[]),a(this,`isShutdown`,!1),process.env.USER_TYPE===`ant`&&process.env.ANT_CLAUDE_CODE_METRICS_ENDPOINT?this.endpoint=process.env.ANT_CLAUDE_CODE_METRICS_ENDPOINT+`/api/claude_code/metrics`:this.endpoint=`https://api.anthropic.com/api/claude_code/metrics`,this.timeout=e.timeout||5e3}async export(e,t){if(this.isShutdown){t({code:l.FAILED,error:Error(`Exporter has been shutdown`)});return}let n=this.doExport(e,t);this.pendingExports.push(n),n.finally(()=>{let e=this.pendingExports.indexOf(n);e>-1&&this.pendingExports.splice(e,1)})}async doExport(e,t){try{if(!(xe()||me())){R(`BigQuery metrics export: trust not established, skipping`),t({code:l.SUCCESS});return}if(!(await rt()).enabled){R(`Metrics export disabled by organization setting`),t({code:l.SUCCESS});return}let n=this.transformMetricsForInternal(e),r=E();if(r.error){R(`Metrics export failed: ${r.error}`),t({code:l.FAILED,error:Error(r.error)});return}let i={"Content-Type":`application/json`,"User-Agent":w(),...r.headers},a=await de.post(this.endpoint,n,{timeout:this.timeout,headers:i});R(`BigQuery metrics exported successfully`),R(`BigQuery API Response: ${P(a.data,null,2)}`),t({code:l.SUCCESS})}catch(e){R(`BigQuery metrics export failed: ${F(e)}`),V(e),t({code:l.FAILED,error:Ee(e)})}}transformMetricsForInternal(e){let t=e.resource.attributes,n={"service.name":t[`service.name`]||`claude-code`,"service.version":t[`service.version`]||`unknown`,"os.type":t[`os.type`]||`unknown`,"os.version":t[`os.version`]||`unknown`,"host.arch":t[`host.arch`]||`unknown`,"aggregation.temporality":this.selectAggregationTemporality()===ce.DELTA?`delta`:`cumulative`};if(t[`wsl.version`]&&(n[`wsl.version`]=t[`wsl.version`]),D()){n[`user.customer_type`]=`claude_ai`;let e=M();e&&(n[`user.subscription_type`]=e)}else n[`user.customer_type`]=`api`;return{resource_attributes:n,metrics:e.scopeMetrics.flatMap(e=>e.metrics.map(e=>({name:e.descriptor.name,description:e.descriptor.description,unit:e.descriptor.unit,data_points:this.extractDataPoints(e)})))}}extractDataPoints(e){return(e.dataPoints||[]).filter(e=>typeof e.value==`number`).map(e=>({attributes:this.convertAttributes(e.attributes),value:e.value,timestamp:this.hrTimeToISOString(e.endTime||e.startTime||[Date.now()/1e3,0])}))}async shutdown(){this.isShutdown=!0,await this.forceFlush(),R(`BigQuery metrics exporter shutdown complete`)}async forceFlush(){await Promise.all(this.pendingExports),R(`BigQuery metrics exporter flush complete`)}convertAttributes(e){let t={};if(e)for(let[n,r]of Object.entries(e))r!=null&&(t[n]=String(r));return t}hrTimeToISOString(e){let[t,n]=e;return new Date(t*1e3+n/1e6).toISOString()}selectAggregationTemporality(){return ce.DELTA}}})),lt,ut=e((()=>{z(),B(),lt=class{error(e,...t){V(Error(e)),R(`[3P telemetry] OTEL diag error: ${e}`,{level:`error`})}warn(e,...t){V(Error(e)),R(`[3P telemetry] OTEL diag warn: ${e}`,{level:`warn`})}info(e,...t){}debug(e,...t){}verbose(e,...t){}}}));function J(e,t){return new Promise((n,r)=>{setTimeout((e,t)=>e(new $(t)),e,r,t).unref()})}function dt(){process.env.USER_TYPE===`ant`&&(process.env.ANT_OTEL_METRICS_EXPORTER&&(process.env.OTEL_METRICS_EXPORTER=process.env.ANT_OTEL_METRICS_EXPORTER),process.env.ANT_OTEL_LOGS_EXPORTER&&(process.env.OTEL_LOGS_EXPORTER=process.env.ANT_OTEL_LOGS_EXPORTER),process.env.ANT_OTEL_TRACES_EXPORTER&&(process.env.OTEL_TRACES_EXPORTER=process.env.ANT_OTEL_TRACES_EXPORTER),process.env.ANT_OTEL_EXPORTER_OTLP_PROTOCOL&&(process.env.OTEL_EXPORTER_OTLP_PROTOCOL=process.env.ANT_OTEL_EXPORTER_OTLP_PROTOCOL),process.env.ANT_OTEL_EXPORTER_OTLP_ENDPOINT&&(process.env.OTEL_EXPORTER_OTLP_ENDPOINT=process.env.ANT_OTEL_EXPORTER_OTLP_ENDPOINT),process.env.ANT_OTEL_EXPORTER_OTLP_HEADERS&&(process.env.OTEL_EXPORTER_OTLP_HEADERS=process.env.ANT_OTEL_EXPORTER_OTLP_HEADERS)),process.env.OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE||(process.env.OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE=`delta`)}function Y(e){return(e||``).trim().split(`,`).filter(Boolean).map(e=>e.trim()).filter(e=>e!==`none`)}async function ft(){let e=Y(process.env.OTEL_METRICS_EXPORTER),n=parseInt(process.env.OTEL_METRIC_EXPORT_INTERVAL||St.toString(),10),r=[];for(let n of e)if(n===`console`){let e=new se,t=e.export.bind(e);e.export=(e,n)=>(e.resource&&e.resource.attributes&&(R(`
1
+ import{n as e,o as t}from"./chunk-DR8-3Aex.js";import{s as n,u as r}from"./envUtils-BWeoiL4Y.js";import{n as i,t as a}from"./defineProperty-80gRi2ZW.js";import{n as o,o as s,r as c,x as ee}from"./esm-CJlBxjtx.js";import{Q as te,Z as ne,_ as l,at as u,c as d,i as re,j as f,n as ie,o as p,r as ae,t as m}from"./esm-DcdOXSzi.js";import{n as h,t as oe}from"./esm-BGQPWnJy.js";import{a as g,i as se,l as ce,n as le,r as ue}from"./esm-QgL6y---.js";import{n as de,t as fe}from"./axios-DhfaybwJ.js";import{$ as _,$n as v,Dr as pe,Gt as y,Pn as b,U as me,cn as x,ir as S,nt as he}from"./state-sIHsFpDu.js";import{Ac as C,At as w,Pc as ge,Qt as _e,Sc as T,Tt as ve,an as ye,bt as E,dn as D,dt as be,ft as O,gc as xe,jt as k,mt as A,no as Se,on as j,oo as Ce,pt as we,sn as Te,tn as M,wt as N}from"./paths-D9CVAtXU.js";import{E as P,K as Ee,L as F,V as I,X as L,Y as De,a as Oe,d as R,s as z,w as ke}from"./debug-UI3T040K.js";import{d as Ae,f as je,o as B,s as V}from"./log-CzsijfHZ.js";import{a as Me,i as Ne,o as Pe}from"./platform-CuyedWpe.js";import{r as Fe,t as Ie}from"./memoize-DxwLawI2.js";import{a as Le,n as Re}from"./startupProfiler-DnXZaX4A.js";import{b as H,d as ze,g as Be,m as Ve,s as He,u as Ue,v as U,x as We,y as Ge}from"./proxy-CfZp-wce.js";import{_ as Ke,b as qe,c as Je,l as Ye,r as W,v as Xe,y as Ze}from"./sessionTracing-_obALZbi.js";import{a as G,i as K,r as Qe,t as $e}from"./esm-C-1qL9Mn.js";async function et(){let e=E();if(e.error)throw Error(`Auth error: ${e.error}`);let t={"Content-Type":`application/json`,"User-Agent":w(),...e.headers};return(await de.get(`https://api.anthropic.com/api/claude_code/organizations/metrics_enabled`,{headers:t,timeout:5e3})).data}async function tt(){if(je())return{enabled:!1,hasError:!1};try{let e=await ve(et,{also403Revoked:!0});return R(`Metrics opt-out API response: enabled=${e.metrics_logging_enabled}`),{enabled:e.metrics_logging_enabled,hasError:!1}}catch(e){return R(`Failed to check metrics opt-out status: ${F(e)}`),V(e),{enabled:!1,hasError:!0}}}async function nt(){let e=await at();if(e.hasError)return e;let t=T().metricsStatusCache;return t!==void 0&&t.enabled===e.enabled&&Date.now()-t.timestamp<q||ge(t=>({...t,metricsStatusCache:{enabled:e.enabled,timestamp:Date.now()}})),e}async function rt(){if(D()&&!ye())return{enabled:!1,hasError:!1};let e=T().metricsStatusCache;return e?(Date.now()-e.timestamp>q&&nt().catch(V),{enabled:e.enabled,hasError:!1}):nt()}var it,q,at,ot=e((()=>{fe(),j(),C(),z(),I(),N(),B(),Ie(),Ae(),k(),it=3600*1e3,q=1440*60*1e3,at=Fe(tt,it)})),st,ct=e((()=>{d(),le(),fe(),ot(),x(),j(),C(),z(),I(),N(),B(),ke(),k(),i(),st=class{constructor(e={}){a(this,`endpoint`,void 0),a(this,`timeout`,void 0),a(this,`pendingExports`,[]),a(this,`isShutdown`,!1),process.env.USER_TYPE===`ant`&&process.env.ANT_CLAUDE_CODE_METRICS_ENDPOINT?this.endpoint=process.env.ANT_CLAUDE_CODE_METRICS_ENDPOINT+`/api/claude_code/metrics`:this.endpoint=`https://api.anthropic.com/api/claude_code/metrics`,this.timeout=e.timeout||5e3}async export(e,t){if(this.isShutdown){t({code:l.FAILED,error:Error(`Exporter has been shutdown`)});return}let n=this.doExport(e,t);this.pendingExports.push(n),n.finally(()=>{let e=this.pendingExports.indexOf(n);e>-1&&this.pendingExports.splice(e,1)})}async doExport(e,t){try{if(!(xe()||me())){R(`BigQuery metrics export: trust not established, skipping`),t({code:l.SUCCESS});return}if(!(await rt()).enabled){R(`Metrics export disabled by organization setting`),t({code:l.SUCCESS});return}let n=this.transformMetricsForInternal(e),r=E();if(r.error){R(`Metrics export failed: ${r.error}`),t({code:l.FAILED,error:Error(r.error)});return}let i={"Content-Type":`application/json`,"User-Agent":w(),...r.headers},a=await de.post(this.endpoint,n,{timeout:this.timeout,headers:i});R(`BigQuery metrics exported successfully`),R(`BigQuery API Response: ${P(a.data,null,2)}`),t({code:l.SUCCESS})}catch(e){R(`BigQuery metrics export failed: ${F(e)}`),V(e),t({code:l.FAILED,error:Ee(e)})}}transformMetricsForInternal(e){let t=e.resource.attributes,n={"service.name":t[`service.name`]||`claude-code`,"service.version":t[`service.version`]||`unknown`,"os.type":t[`os.type`]||`unknown`,"os.version":t[`os.version`]||`unknown`,"host.arch":t[`host.arch`]||`unknown`,"aggregation.temporality":this.selectAggregationTemporality()===ce.DELTA?`delta`:`cumulative`};if(t[`wsl.version`]&&(n[`wsl.version`]=t[`wsl.version`]),D()){n[`user.customer_type`]=`claude_ai`;let e=M();e&&(n[`user.subscription_type`]=e)}else n[`user.customer_type`]=`api`;return{resource_attributes:n,metrics:e.scopeMetrics.flatMap(e=>e.metrics.map(e=>({name:e.descriptor.name,description:e.descriptor.description,unit:e.descriptor.unit,data_points:this.extractDataPoints(e)})))}}extractDataPoints(e){return(e.dataPoints||[]).filter(e=>typeof e.value==`number`).map(e=>({attributes:this.convertAttributes(e.attributes),value:e.value,timestamp:this.hrTimeToISOString(e.endTime||e.startTime||[Date.now()/1e3,0])}))}async shutdown(){this.isShutdown=!0,await this.forceFlush(),R(`BigQuery metrics exporter shutdown complete`)}async forceFlush(){await Promise.all(this.pendingExports),R(`BigQuery metrics exporter flush complete`)}convertAttributes(e){let t={};if(e)for(let[n,r]of Object.entries(e))r!=null&&(t[n]=String(r));return t}hrTimeToISOString(e){let[t,n]=e;return new Date(t*1e3+n/1e6).toISOString()}selectAggregationTemporality(){return ce.DELTA}}})),lt,ut=e((()=>{z(),B(),lt=class{error(e,...t){V(Error(e)),R(`[3P telemetry] OTEL diag error: ${e}`,{level:`error`})}warn(e,...t){V(Error(e)),R(`[3P telemetry] OTEL diag warn: ${e}`,{level:`warn`})}info(e,...t){}debug(e,...t){}verbose(e,...t){}}}));function J(e,t){return new Promise((n,r)=>{setTimeout((e,t)=>e(new $(t)),e,r,t).unref()})}function dt(){process.env.USER_TYPE===`ant`&&(process.env.ANT_OTEL_METRICS_EXPORTER&&(process.env.OTEL_METRICS_EXPORTER=process.env.ANT_OTEL_METRICS_EXPORTER),process.env.ANT_OTEL_LOGS_EXPORTER&&(process.env.OTEL_LOGS_EXPORTER=process.env.ANT_OTEL_LOGS_EXPORTER),process.env.ANT_OTEL_TRACES_EXPORTER&&(process.env.OTEL_TRACES_EXPORTER=process.env.ANT_OTEL_TRACES_EXPORTER),process.env.ANT_OTEL_EXPORTER_OTLP_PROTOCOL&&(process.env.OTEL_EXPORTER_OTLP_PROTOCOL=process.env.ANT_OTEL_EXPORTER_OTLP_PROTOCOL),process.env.ANT_OTEL_EXPORTER_OTLP_ENDPOINT&&(process.env.OTEL_EXPORTER_OTLP_ENDPOINT=process.env.ANT_OTEL_EXPORTER_OTLP_ENDPOINT),process.env.ANT_OTEL_EXPORTER_OTLP_HEADERS&&(process.env.OTEL_EXPORTER_OTLP_HEADERS=process.env.ANT_OTEL_EXPORTER_OTLP_HEADERS)),process.env.OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE||(process.env.OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE=`delta`)}function Y(e){return(e||``).trim().split(`,`).filter(Boolean).map(e=>e.trim()).filter(e=>e!==`none`)}async function ft(){let e=Y(process.env.OTEL_METRICS_EXPORTER),n=parseInt(process.env.OTEL_METRIC_EXPORT_INTERVAL||St.toString(),10),r=[];for(let n of e)if(n===`console`){let e=new se,t=e.export.bind(e);e.export=(e,n)=>(e.resource&&e.resource.attributes&&(R(`
2
2
  === Resource Attributes ===`),R(P(e.resource.attributes)),R(`===========================
3
- `)),t(e,n)),r.push(e)}else if(n===`otlp`){let e=process.env.OTEL_EXPORTER_OTLP_METRICS_PROTOCOL?.trim()||process.env.OTEL_EXPORTER_OTLP_PROTOCOL?.trim(),n=X();switch(e){case`grpc`:{let{OTLPMetricExporter:e}=await import(`./src-BRC_BuUP.js`).then(e=>t(e.default,1));r.push(new e);break}case`http/json`:{let{OTLPMetricExporter:e}=await import(`./esm-B2HIF0XY.js`);r.push(new e(n));break}case`http/protobuf`:{let{OTLPMetricExporter:e}=await import(`./esm-DxPW7qPs.js`);r.push(new e(n));break}default:throw Error(`Unknown protocol set in OTEL_EXPORTER_OTLP_METRICS_PROTOCOL or OTEL_EXPORTER_OTLP_PROTOCOL env var: ${e}`)}}else if(n===`prometheus`){let{PrometheusExporter:e}=await import(`./src-DsMd9Q9e.js`).then(e=>t(e.default,1));r.push(new e)}else throw Error(`Unknown exporter type set in OTEL_EXPORTER_OTLP_METRICS_PROTOCOL or OTEL_EXPORTER_OTLP_PROTOCOL env var: ${n}`);return r.map(e=>`export`in e?new g({exporter:e,exportIntervalMillis:n}):e)}async function pt(){let e=Y(process.env.OTEL_LOGS_EXPORTER),n=process.env.OTEL_EXPORTER_OTLP_LOGS_PROTOCOL?.trim()||process.env.OTEL_EXPORTER_OTLP_PROTOCOL?.trim(),r=process.env.OTEL_EXPORTER_OTLP_ENDPOINT;R(`[3P telemetry] getOtlpLogExporters: types=${P(e)}, protocol=${n}, endpoint=${r}`);let i=[];for(let r of e)if(r===`console`)i.push(new we);else if(r===`otlp`){let e=X();switch(n){case`grpc`:{let{OTLPLogExporter:e}=await import(`./src-CYLfL70h.js`).then(e=>t(e.default,1));i.push(new e);break}case`http/json`:{let{OTLPLogExporter:t}=await import(`./esm--xjzB1hI.js`);i.push(new t(e));break}case`http/protobuf`:{let{OTLPLogExporter:t}=await import(`./esm-v0kPjgVS.js`);i.push(new t(e));break}default:throw Error(`Unknown protocol set in OTEL_EXPORTER_OTLP_LOGS_PROTOCOL or OTEL_EXPORTER_OTLP_PROTOCOL env var: ${n}`)}}else throw Error(`Unknown exporter type set in OTEL_LOGS_EXPORTER env var: ${r}`);return i}async function mt(){let e=Y(process.env.OTEL_TRACES_EXPORTER),n=[];for(let r of e)if(r===`console`)n.push(new Qe);else if(r===`otlp`){let e=process.env.OTEL_EXPORTER_OTLP_TRACES_PROTOCOL?.trim()||process.env.OTEL_EXPORTER_OTLP_PROTOCOL?.trim(),r=X();switch(e){case`grpc`:{let{OTLPTraceExporter:e}=await import(`./src-DJXCzwyJ.js`).then(e=>t(e.default,1));n.push(new e);break}case`http/json`:{let{OTLPTraceExporter:e}=await import(`./esm-C97WL9nC.js`);n.push(new e(r));break}case`http/protobuf`:{let{OTLPTraceExporter:e}=await import(`./esm-FBUWr3vI.js`);n.push(new e(r));break}default:throw Error(`Unknown protocol set in OTEL_EXPORTER_OTLP_TRACES_PROTOCOL or OTEL_EXPORTER_OTLP_PROTOCOL env var: ${e}`)}}else throw Error(`Unknown exporter type set in OTEL_TRACES_EXPORTER env var: ${r}`);return n}function ht(){return r(process.env.CLAUDE_CODE_ENABLE_TELEMETRY)}function gt(){return new g({exporter:new st,exportIntervalMillis:300*1e3})}function _t(){let e=M(),t=D()&&(e===`enterprise`||e===`team`);return Te()||t}async function vt(e){let t=process.env.BETA_TRACING_ENDPOINT;if(!t)return;let[{OTLPTraceExporter:n},{OTLPLogExporter:r}]=await Promise.all([import(`./esm-C97WL9nC.js`),import(`./esm--xjzB1hI.js`)]),i={url:`${t}/v1/traces`},a={url:`${t}/v1/logs`},o=new K({resource:e,spanProcessors:[new G(new n(i),{scheduledDelayMillis:Q})]});c.setGlobalTracerProvider(o),pe(o);let s=new A({resource:e,processors:[new O(new r(a),{scheduledDelayMillis:Z})]});h.setGlobalLoggerProvider(s),v(s),b(h.getLogger(`com.anthropic.claude_code.events`,`2.6.9`)),process.on(`beforeExit`,async()=>{await s?.forceFlush(),await o?.forceFlush()}),process.on(`exit`,()=>{s?.forceFlush(),o?.forceFlush()})}async function yt(){if(Le(`telemetry_init_start`),dt(),Oe())for(let e of[`OTEL_METRICS_EXPORTER`,`OTEL_LOGS_EXPORTER`,`OTEL_TRACES_EXPORTER`]){let t=process.env[e];t?.includes(`console`)&&(process.env[e]=t.split(`,`).map(e=>e.trim()).filter(e=>e!==`console`).join(`,`))}s.setLogger(new lt,ee.ERROR),qe();let e=[],t=ht();R(`[3P telemetry] isTelemetryEnabled=${t} (CLAUDE_CODE_ENABLE_TELEMETRY=${process.env.CLAUDE_CODE_ENABLE_TELEMETRY})`),t&&e.push(...await ft()),_t()&&e.push(gt());let n=Ne(),r={[ne]:`claude-code`,[te]:`2.6.9`};if(n===`wsl`){let e=Me();e&&(r[`wsl.version`]=e)}let i=p(r),a=p(ie.detect().attributes||{}),o=ae.detect(),l=p(o.attributes?.[`host.arch`]?{[u]:o.attributes[u]}:{}),d=p(re.detect().attributes||{}),f=i.merge(a).merge(l).merge(d);if(Xe()){vt(f).catch(e=>R(`Beta tracing init failed: ${e}`,{level:`error`}));let t=new ue({resource:f,views:[],readers:e});return S(t),L(async()=>{let e=parseInt(process.env.CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS||`2000`,10);try{W();let n=_(),r=y(),i=[t.shutdown()];n&&i.push(n.forceFlush().then(()=>n.shutdown())),r&&i.push(r.forceFlush().then(()=>r.shutdown())),await Promise.race([Promise.all(i),J(e,`OpenTelemetry shutdown timeout`)])}catch{}}),t.getMeter(`com.anthropic.claude_code`,`2.6.9`)}let m=new ue({resource:f,views:[],readers:e});if(S(m),t){let e=await pt();if(R(`[3P telemetry] Created ${e.length} log exporter(s)`),e.length>0){let t=new A({resource:f,processors:e.map(e=>new O(e,{scheduledDelayMillis:parseInt(process.env.OTEL_LOGS_EXPORT_INTERVAL||Z.toString(),10)}))});h.setGlobalLoggerProvider(t),v(t),b(h.getLogger(`com.anthropic.claude_code.events`,`2.6.9`)),R(`[3P telemetry] Event logger set successfully`),process.on(`beforeExit`,async()=>{await t?.forceFlush(),await y()?.forceFlush()}),process.on(`exit`,()=>{t?.forceFlush(),y()?.forceFlush()})}}if(t&&Ye()){let e=await mt();if(e.length>0){let t=new K({resource:f,spanProcessors:e.map(e=>new G(e,{scheduledDelayMillis:parseInt(process.env.OTEL_TRACES_EXPORT_INTERVAL||Q.toString(),10)}))});c.setGlobalTracerProvider(t),pe(t)}}return L(async()=>{let e=parseInt(process.env.CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS||`2000`,10);try{W();let t=[m.shutdown()],n=_();n&&t.push(n.shutdown());let r=y();r&&t.push(r.shutdown()),await Promise.race([Promise.all(t),J(e,`OpenTelemetry shutdown timeout`)])}catch(t){throw t instanceof Error&&t.message.includes(`timeout`)&&R(`
3
+ `)),t(e,n)),r.push(e)}else if(n===`otlp`){let e=process.env.OTEL_EXPORTER_OTLP_METRICS_PROTOCOL?.trim()||process.env.OTEL_EXPORTER_OTLP_PROTOCOL?.trim(),n=X();switch(e){case`grpc`:{let{OTLPMetricExporter:e}=await import(`./src-BRC_BuUP.js`).then(e=>t(e.default,1));r.push(new e);break}case`http/json`:{let{OTLPMetricExporter:e}=await import(`./esm-B2HIF0XY.js`);r.push(new e(n));break}case`http/protobuf`:{let{OTLPMetricExporter:e}=await import(`./esm-DxPW7qPs.js`);r.push(new e(n));break}default:throw Error(`Unknown protocol set in OTEL_EXPORTER_OTLP_METRICS_PROTOCOL or OTEL_EXPORTER_OTLP_PROTOCOL env var: ${e}`)}}else if(n===`prometheus`){let{PrometheusExporter:e}=await import(`./src-DsMd9Q9e.js`).then(e=>t(e.default,1));r.push(new e)}else throw Error(`Unknown exporter type set in OTEL_EXPORTER_OTLP_METRICS_PROTOCOL or OTEL_EXPORTER_OTLP_PROTOCOL env var: ${n}`);return r.map(e=>`export`in e?new g({exporter:e,exportIntervalMillis:n}):e)}async function pt(){let e=Y(process.env.OTEL_LOGS_EXPORTER),n=process.env.OTEL_EXPORTER_OTLP_LOGS_PROTOCOL?.trim()||process.env.OTEL_EXPORTER_OTLP_PROTOCOL?.trim(),r=process.env.OTEL_EXPORTER_OTLP_ENDPOINT;R(`[3P telemetry] getOtlpLogExporters: types=${P(e)}, protocol=${n}, endpoint=${r}`);let i=[];for(let r of e)if(r===`console`)i.push(new we);else if(r===`otlp`){let e=X();switch(n){case`grpc`:{let{OTLPLogExporter:e}=await import(`./src-CYLfL70h.js`).then(e=>t(e.default,1));i.push(new e);break}case`http/json`:{let{OTLPLogExporter:t}=await import(`./esm--xjzB1hI.js`);i.push(new t(e));break}case`http/protobuf`:{let{OTLPLogExporter:t}=await import(`./esm-v0kPjgVS.js`);i.push(new t(e));break}default:throw Error(`Unknown protocol set in OTEL_EXPORTER_OTLP_LOGS_PROTOCOL or OTEL_EXPORTER_OTLP_PROTOCOL env var: ${n}`)}}else throw Error(`Unknown exporter type set in OTEL_LOGS_EXPORTER env var: ${r}`);return i}async function mt(){let e=Y(process.env.OTEL_TRACES_EXPORTER),n=[];for(let r of e)if(r===`console`)n.push(new Qe);else if(r===`otlp`){let e=process.env.OTEL_EXPORTER_OTLP_TRACES_PROTOCOL?.trim()||process.env.OTEL_EXPORTER_OTLP_PROTOCOL?.trim(),r=X();switch(e){case`grpc`:{let{OTLPTraceExporter:e}=await import(`./src-DJXCzwyJ.js`).then(e=>t(e.default,1));n.push(new e);break}case`http/json`:{let{OTLPTraceExporter:e}=await import(`./esm-C97WL9nC.js`);n.push(new e(r));break}case`http/protobuf`:{let{OTLPTraceExporter:e}=await import(`./esm-FBUWr3vI.js`);n.push(new e(r));break}default:throw Error(`Unknown protocol set in OTEL_EXPORTER_OTLP_TRACES_PROTOCOL or OTEL_EXPORTER_OTLP_PROTOCOL env var: ${e}`)}}else throw Error(`Unknown exporter type set in OTEL_TRACES_EXPORTER env var: ${r}`);return n}function ht(){return r(process.env.CLAUDE_CODE_ENABLE_TELEMETRY)}function gt(){return new g({exporter:new st,exportIntervalMillis:300*1e3})}function _t(){let e=M(),t=D()&&(e===`enterprise`||e===`team`);return Te()||t}async function vt(e){let t=process.env.BETA_TRACING_ENDPOINT;if(!t)return;let[{OTLPTraceExporter:n},{OTLPLogExporter:r}]=await Promise.all([import(`./esm-C97WL9nC.js`),import(`./esm--xjzB1hI.js`)]),i={url:`${t}/v1/traces`},a={url:`${t}/v1/logs`},o=new K({resource:e,spanProcessors:[new G(new n(i),{scheduledDelayMillis:Q})]});c.setGlobalTracerProvider(o),pe(o);let s=new A({resource:e,processors:[new O(new r(a),{scheduledDelayMillis:Z})]});h.setGlobalLoggerProvider(s),v(s),b(h.getLogger(`com.anthropic.claude_code.events`,`2.6.11`)),process.on(`beforeExit`,async()=>{await s?.forceFlush(),await o?.forceFlush()}),process.on(`exit`,()=>{s?.forceFlush(),o?.forceFlush()})}async function yt(){if(Le(`telemetry_init_start`),dt(),Oe())for(let e of[`OTEL_METRICS_EXPORTER`,`OTEL_LOGS_EXPORTER`,`OTEL_TRACES_EXPORTER`]){let t=process.env[e];t?.includes(`console`)&&(process.env[e]=t.split(`,`).map(e=>e.trim()).filter(e=>e!==`console`).join(`,`))}s.setLogger(new lt,ee.ERROR),qe();let e=[],t=ht();R(`[3P telemetry] isTelemetryEnabled=${t} (CLAUDE_CODE_ENABLE_TELEMETRY=${process.env.CLAUDE_CODE_ENABLE_TELEMETRY})`),t&&e.push(...await ft()),_t()&&e.push(gt());let n=Ne(),r={[ne]:`claude-code`,[te]:`2.6.11`};if(n===`wsl`){let e=Me();e&&(r[`wsl.version`]=e)}let i=p(r),a=p(ie.detect().attributes||{}),o=ae.detect(),l=p(o.attributes?.[`host.arch`]?{[u]:o.attributes[u]}:{}),d=p(re.detect().attributes||{}),f=i.merge(a).merge(l).merge(d);if(Xe()){vt(f).catch(e=>R(`Beta tracing init failed: ${e}`,{level:`error`}));let t=new ue({resource:f,views:[],readers:e});return S(t),L(async()=>{let e=parseInt(process.env.CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS||`2000`,10);try{W();let n=_(),r=y(),i=[t.shutdown()];n&&i.push(n.forceFlush().then(()=>n.shutdown())),r&&i.push(r.forceFlush().then(()=>r.shutdown())),await Promise.race([Promise.all(i),J(e,`OpenTelemetry shutdown timeout`)])}catch{}}),t.getMeter(`com.anthropic.claude_code`,`2.6.11`)}let m=new ue({resource:f,views:[],readers:e});if(S(m),t){let e=await pt();if(R(`[3P telemetry] Created ${e.length} log exporter(s)`),e.length>0){let t=new A({resource:f,processors:e.map(e=>new O(e,{scheduledDelayMillis:parseInt(process.env.OTEL_LOGS_EXPORT_INTERVAL||Z.toString(),10)}))});h.setGlobalLoggerProvider(t),v(t),b(h.getLogger(`com.anthropic.claude_code.events`,`2.6.11`)),R(`[3P telemetry] Event logger set successfully`),process.on(`beforeExit`,async()=>{await t?.forceFlush(),await y()?.forceFlush()}),process.on(`exit`,()=>{t?.forceFlush(),y()?.forceFlush()})}}if(t&&Ye()){let e=await mt();if(e.length>0){let t=new K({resource:f,spanProcessors:e.map(e=>new G(e,{scheduledDelayMillis:parseInt(process.env.OTEL_TRACES_EXPORT_INTERVAL||Q.toString(),10)}))});c.setGlobalTracerProvider(t),pe(t)}}return L(async()=>{let e=parseInt(process.env.CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS||`2000`,10);try{W();let t=[m.shutdown()],n=_();n&&t.push(n.shutdown());let r=y();r&&t.push(r.shutdown()),await Promise.race([Promise.all(t),J(e,`OpenTelemetry shutdown timeout`)])}catch(t){throw t instanceof Error&&t.message.includes(`timeout`)&&R(`
4
4
  OpenTelemetry telemetry flush timed out after ${e}ms
5
5
 
6
6
  To resolve this issue, you can:
@@ -9,4 +9,4 @@ To resolve this issue, you can:
9
9
  3. Disable OpenTelemetry by unsetting CLAUDE_CODE_ENABLE_TELEMETRY env var
10
10
 
11
11
  Current timeout: ${e}ms
12
- `,{level:`error`}),t}}),m.getMeter(`com.anthropic.claude_code`,`2.6.9`)}async function bt(){let e=he();if(!e)return;let t=parseInt(process.env.CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS||`5000`,10);try{let n=[e.forceFlush()],r=_();r&&n.push(r.forceFlush());let i=y();i&&n.push(i.forceFlush()),await Promise.race([Promise.all(n),J(t,`OpenTelemetry flush timeout`)]),R(`Telemetry flushed successfully`)}catch(e){e instanceof $?R(`Telemetry flush timed out after ${t}ms. Some metrics may not be exported.`,{level:`warn`}):R(`Telemetry flush failed: ${F(e)}`,{level:`error`})}}function xt(){let e={},t=process.env.OTEL_EXPORTER_OTLP_HEADERS;if(t)for(let n of t.split(`,`)){let[t,...r]=n.split(`=`);t&&r.length>0&&(e[t.trim()]=r.join(`=`).trim())}return e}function X(){let e=He(),t=Ve(),n=Se(),r={},i=xt();n?.otelHeadersHelper?r.headers=async()=>{let e=_e();return{...i,...e}}:Object.keys(i).length>0&&(r.headers=async()=>i);let a=process.env.OTEL_EXPORTER_OTLP_ENDPOINT;if(!e||a&&ze(a)){let e=U();return(t||e)&&(r.httpAgentOptions={...t,...e&&{ca:e}}),r}let o=U();return r.httpAgentOptions=n=>t||o?new H(e,{...t&&{cert:t.cert,key:t.key,passphrase:t.passphrase},...o&&{ca:o}}):new H(e),r}var St,Z,Q,$;e((()=>{o(),oe(),m(),be(),le(),$e(),f(),We(),x(),j(),Pe(),Ge(),De(),z(),n(),I(),Be(),Ue(),Ce(),ke(),Re(),Ke(),ct(),ut(),Ze(),Je(),St=6e4,Z=5e3,Q=5e3,$=class extends Error{}}))();export{bt as flushTelemetry,yt as initializeTelemetry};
12
+ `,{level:`error`}),t}}),m.getMeter(`com.anthropic.claude_code`,`2.6.11`)}async function bt(){let e=he();if(!e)return;let t=parseInt(process.env.CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS||`5000`,10);try{let n=[e.forceFlush()],r=_();r&&n.push(r.forceFlush());let i=y();i&&n.push(i.forceFlush()),await Promise.race([Promise.all(n),J(t,`OpenTelemetry flush timeout`)]),R(`Telemetry flushed successfully`)}catch(e){e instanceof $?R(`Telemetry flush timed out after ${t}ms. Some metrics may not be exported.`,{level:`warn`}):R(`Telemetry flush failed: ${F(e)}`,{level:`error`})}}function xt(){let e={},t=process.env.OTEL_EXPORTER_OTLP_HEADERS;if(t)for(let n of t.split(`,`)){let[t,...r]=n.split(`=`);t&&r.length>0&&(e[t.trim()]=r.join(`=`).trim())}return e}function X(){let e=He(),t=Ve(),n=Se(),r={},i=xt();n?.otelHeadersHelper?r.headers=async()=>{let e=_e();return{...i,...e}}:Object.keys(i).length>0&&(r.headers=async()=>i);let a=process.env.OTEL_EXPORTER_OTLP_ENDPOINT;if(!e||a&&ze(a)){let e=U();return(t||e)&&(r.httpAgentOptions={...t,...e&&{ca:e}}),r}let o=U();return r.httpAgentOptions=n=>t||o?new H(e,{...t&&{cert:t.cert,key:t.key,passphrase:t.passphrase},...o&&{ca:o}}):new H(e),r}var St,Z,Q,$;e((()=>{o(),oe(),m(),be(),le(),$e(),f(),We(),x(),j(),Pe(),Ge(),De(),z(),n(),I(),Be(),Ue(),Ce(),ke(),Re(),Ke(),ct(),ut(),Ze(),Je(),St=6e4,Z=5e3,Q=5e3,$=class extends Error{}}))();export{bt as flushTelemetry,yt as initializeTelemetry};
@@ -1,2 +1,2 @@
1
- import{n as e}from"./chunk-DR8-3Aex.js";async function t(e,t,n){let r=n?n.trim().split(/\s+/):[],i=r[0]||`list`,a=[],o=console.log,s=console.error;console.log=(...e)=>a.push(e.map(String).join(` `)),console.error=(...e)=>a.push(e.map(String).join(` `));try{let{templatesMain:e}=await import(`./templateJobs-V2-TVeGE.js`);await e([i,...r.slice(1)])}finally{console.log=o,console.error=s}return e(a.join(`
1
+ import{n as e}from"./chunk-DR8-3Aex.js";async function t(e,t,n){let r=n?n.trim().split(/\s+/):[],i=r[0]||`list`,a=[],o=console.log,s=console.error;console.log=(...e)=>a.push(e.map(String).join(` `)),console.error=(...e)=>a.push(e.map(String).join(` `));try{let{templatesMain:e}=await import(`./templateJobs-BLQqrGjb.js`);await e([i,...r.slice(1)])}finally{console.log=o,console.error=s}return e(a.join(`
2
2
  `)||`Done.`,{display:`system`}),null}e((()=>{}))();export{t as call};
@@ -1,2 +1,2 @@
1
- import{n as e}from"./chunk-DR8-3Aex.js";import{E as t,R as n,V as r,w as i}from"./debug-UI3T040K.js";import{_T as a,dT as o,gT as s,lT as c,mT as l,uT as u,vT as d,yT as f}from"./loadAgentsDir-Cl2w3uvH.js";import{r as p,t as m}from"./promptEditor-ClGwMkWl.js";import{dirname as h}from"path";import{mkdir as g,writeFile as _}from"fs/promises";function v(e){let t=new Set(l.map(e=>a(e.key)));return e.map(e=>{let n={};for(let[r,i]of Object.entries(e.bindings))t.has(a(r))||(n[r]=i);return{context:e.context,bindings:n}}).filter(e=>Object.keys(e.bindings).length>0)}function y(){return t({$schema:`https://www.schemastore.org/claude-code-keybindings.json`,$docs:`https://code.claude.com/docs/en/keybindings`,bindings:v(d)},null,2)+`
1
+ import{n as e}from"./chunk-DR8-3Aex.js";import{E as t,R as n,V as r,w as i}from"./debug-UI3T040K.js";import{_T as a,dT as o,gT as s,lT as c,mT as l,uT as u,vT as d,yT as f}from"./loadAgentsDir-D-xcJ22-.js";import{r as p,t as m}from"./promptEditor-BZqpLrcZ.js";import{dirname as h}from"path";import{mkdir as g,writeFile as _}from"fs/promises";function v(e){let t=new Set(l.map(e=>a(e.key)));return e.map(e=>{let n={};for(let[r,i]of Object.entries(e.bindings))t.has(a(r))||(n[r]=i);return{context:e.context,bindings:n}}).filter(e=>Object.keys(e.bindings).length>0)}function y(){return t({$schema:`https://www.schemastore.org/claude-code-keybindings.json`,$docs:`https://code.claude.com/docs/en/keybindings`,bindings:v(d)},null,2)+`
2
2
  `}var b=e((()=>{i(),f(),s()}));async function x(){if(!o())return{type:`text`,value:`Keybinding customization is not enabled. This feature is currently in preview.`};let e=c(),t=!1;await g(h(e),{recursive:!0});try{await _(e,y(),{encoding:`utf-8`,flag:`wx`})}catch(e){if(n(e)===`EEXIST`)t=!0;else throw e}let r=await m(e);return r.error?{type:`text`,value:`${t?`Opened`:`Created`} ${e}. Could not open in editor: ${r.error}`}:{type:`text`,value:t?`Opened ${e} in your editor.`:`Created ${e} with template. Opened in your editor.`}}e((()=>{u(),b(),r(),p()}))();export{x as call};
@@ -1 +1 @@
1
- import{n as e}from"./chunk-DR8-3Aex.js";import{Ac as t,Pc as n,Sc as r}from"./paths-q1-Ni8Oh.js";import{n as i,r as a,t as o}from"./language-sTn9sA3E.js";async function s(e,t,a){let s=a.trim().toLowerCase();if(!s){let t=r().preferredLanguage??`auto`,n=i(),a=t===`auto`?` → ${o(n)}`:``;return e(`Language: ${o(t)}${a}`,{display:`system`}),null}if(!c.includes(s))return e(`Invalid language "${s}". Use: en, zh, or auto`,{display:`system`}),null;let l=s;n(e=>({...e,preferredLanguage:l}));let u=i(),d=l===`auto`?` → ${o(u)}`:``;return e(`Language set to ${o(l)}${d}`,{display:`system`}),null}var c;e((()=>{t(),a(),c=[`en`,`zh`,`auto`]}))();export{s as call};
1
+ import{n as e}from"./chunk-DR8-3Aex.js";import{Ac as t,Pc as n,Sc as r}from"./paths-D9CVAtXU.js";import{n as i,r as a,t as o}from"./language-CRIdgj2F.js";async function s(e,t,a){let s=a.trim().toLowerCase();if(!s){let t=r().preferredLanguage??`auto`,n=i(),a=t===`auto`?` → ${o(n)}`:``;return e(`Language: ${o(t)}${a}`,{display:`system`}),null}if(!c.includes(s))return e(`Invalid language "${s}". Use: en, zh, or auto`,{display:`system`}),null;let l=s;n(e=>({...e,preferredLanguage:l}));let u=i(),d=l===`auto`?` → ${o(u)}`:``;return e(`Language set to ${o(l)}${d}`,{display:`system`}),null}var c;e((()=>{t(),a(),c=[`en`,`zh`,`auto`]}))();export{s as call};
@@ -1 +1 @@
1
- import{n as e}from"./chunk-DR8-3Aex.js";import{Ac as t,Sc as n}from"./paths-q1-Ni8Oh.js";import{i as r,s as i}from"./intl-Pse97ORk.js";function a(){let e=n().preferredLanguage??`auto`;return e===`en`||e===`zh`?e:r()===`zh`?`zh`:`en`}function o(e){return s[e]??e}var s,c=e((()=>{t(),i(),s={auto:`Auto (follow system)`,en:`English`,zh:`中文`}}));export{a as n,c as r,o as t};
1
+ import{n as e}from"./chunk-DR8-3Aex.js";import{Ac as t,Sc as n}from"./paths-D9CVAtXU.js";import{i as r,s as i}from"./intl-Pse97ORk.js";function a(){let e=n().preferredLanguage??`auto`;return e===`en`||e===`zh`?e:r()===`zh`?`zh`:`en`}function o(e){return s[e]??e}var s,c=e((()=>{t(),i(),s={auto:`Auto (follow system)`,en:`English`,zh:`中文`}}));export{a as n,c as r,o as t};
@@ -0,0 +1 @@
1
+ import{n as e,r as t}from"./language-CRIdgj2F.js";t();export{e as getResolvedLanguage};
@@ -1 +1 @@
1
- import{n as e}from"./chunk-DR8-3Aex.js";import{n as t,t as n}from"./axios-DhfaybwJ.js";import{Rn as r,b as i,t as a,x as o}from"./src-Di342QoJ.js";import{t as s}from"./jsx-runtime-D-D469L8.js";import{n as c,r as l}from"./analytics-DqMQntaB.js";import{l as u,u as d}from"./oauth-CdZEzMww.js";import{i as f,n as p,r as m}from"./cron-DiW7eIPP.js";import{o as h,u as g}from"./api-DLLVkmRJ.js";import{n as _,r as v}from"./hostGuard-zim_4F9V.js";import{n as y,t as b}from"./launchCommand-Du91jxMC.js";function x(e){return new Promise(t=>setTimeout(t,e))}async function S(){let e;try{e=(await g()).apiKey}catch(e){throw new N(e instanceof Error?e.message:String(e),501)}return _(C()),{"x-api-key":e,"anthropic-version":`2023-06-01`,"anthropic-beta":j,"content-type":`application/json`}}function C(){return`${u().BASE_API_URL}/v1/agents`}function w(e){if(t.isAxiosError(e)){let t=e.response?.status??0;if(t===401)return new N(`Authentication failed. Please run /login to re-authenticate.`,401);if(t===403)return new N(`Subscription required. Scheduled agents require a Claude Pro/Max/Team subscription.`,403);if(t===404)return new N(`Agent not found.`,404);if(t===429){let t=e.response?.headers?.[`retry-after`]??``;return new N(`Rate limit exceeded.${t?` Retry after ${t}s.`:``}`,429)}return new N((e.response?.data)?.error?.message??e.message,t)}return e instanceof N?e:new N(e instanceof Error?e.message:String(e),0)}function T(e){if(!e)return null;let t=Number(e);if(!Number.isNaN(t)&&t>=0)return t*1e3;let n=Date.parse(e);return Number.isNaN(n)?null:Math.max(0,n-Date.now())}async function E(e){let n;for(let r=0;r<M;r++)try{return await e()}catch(e){let i=w(e);if(i.statusCode>=500){n=i,r<M-1&&await x(T(t.isAxiosError(e)?e.response?.headers?.[`retry-after`]:void 0)??500*2**r);continue}throw i}throw n??new N(`Request failed after retries`,0)}async function D(){return E(async()=>{let e=await S();return(await t.get(C(),{headers:e})).data.data??[]})}async function O(e,n){return E(async()=>{let r=await S();return(await t.post(C(),{cron_expr:e,prompt:n,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone??`UTC`},{headers:r})).data})}async function k(e){return E(async()=>{let n=await S();await t.delete(`${C()}/${e}`,{headers:n})})}async function A(e){return E(async()=>{let n=await S();return(await t.post(`${C()}/${e}/run`,{},{headers:n})).data})}var j,M,N,P=e((()=>{n(),d(),v(),h(),j=`managed-agents-2026-04-01`,M=3,N=class extends Error{constructor(e,t){super(e),this.statusCode=t,this.name=`AgentsApiError`}}}));function F({agent:e}){let t=p(e.cron_expr,{utc:!0}),n=e.next_run?new Date(e.next_run).toLocaleString():`—`;return(0,L.jsxs)(o,{flexDirection:`column`,marginBottom:1,children:[(0,L.jsxs)(o,{children:[(0,L.jsx)(i,{bold:!0,children:e.id}),(0,L.jsx)(i,{dimColor:!0,children:` · `}),(0,L.jsx)(i,{color:`suggestion`,children:e.status})]}),(0,L.jsxs)(i,{children:[`Schedule: `,t]}),(0,L.jsxs)(i,{dimColor:!0,children:[`Prompt: `,e.prompt]}),(0,L.jsxs)(i,{dimColor:!0,children:[`Next run: `,n]})]})}function I(e){if(e.mode===`list`)return e.agents.length===0?(0,L.jsx)(o,{children:(0,L.jsx)(i,{dimColor:!0,children:`No scheduled agents. Use /agents-platform create <cron> <prompt> to create one.`})}):(0,L.jsxs)(o,{flexDirection:`column`,children:[(0,L.jsx)(o,{marginBottom:1,children:(0,L.jsxs)(i,{bold:!0,children:[`Scheduled Agents (`,e.agents.length,`)`]})}),e.agents.map(e=>(0,L.jsx)(F,{agent:e},e.id))]});if(e.mode===`created`){let t=p(e.agent.cron_expr,{utc:!0});return(0,L.jsxs)(o,{flexDirection:`column`,children:[(0,L.jsx)(o,{children:(0,L.jsx)(i,{bold:!0,color:`success`,children:`Agent created`})}),(0,L.jsxs)(i,{children:[`ID: `,e.agent.id]}),(0,L.jsxs)(i,{children:[`Schedule: `,t]}),(0,L.jsxs)(i,{children:[`Prompt: `,e.agent.prompt]}),(0,L.jsxs)(i,{dimColor:!0,children:[`Status: `,e.agent.status]})]})}return e.mode===`deleted`?(0,L.jsx)(o,{children:(0,L.jsxs)(i,{color:`success`,children:[`Agent `,e.id,` deleted.`]})}):e.mode===`ran`?(0,L.jsxs)(o,{flexDirection:`column`,children:[(0,L.jsx)(o,{children:(0,L.jsxs)(i,{color:`success`,children:[`Agent `,e.id,` triggered.`]})}),(0,L.jsxs)(i,{dimColor:!0,children:[`Run ID: `,e.runId]})]}):(0,L.jsx)(o,{children:(0,L.jsx)(i,{color:`error`,children:e.message})})}var L,R=e((()=>{r(),a(),m(),L=s()}));function z(e){let t=e.trim().split(/\s+/);return t.length<6?null:{cron:t.slice(0,5).join(` `),prompt:t.slice(5).join(` `)}}function B(e){let t=e.trim();if(t===``||t===`list`)return{action:`list`};let n=t.indexOf(` `),r=n===-1?t:t.slice(0,n),i=n===-1?``:t.slice(n+1).trim();if(r===`create`){if(!i)return{action:`invalid`,reason:`create requires a cron expression and prompt, e.g. create "0 9 * * 1" Run daily standup`};let e=z(i);if(!e)return{action:`invalid`,reason:`create requires at least 5 cron fields followed by a prompt, e.g. create "0 9 * * 1" Run daily standup`};let{cron:t,prompt:n}=e;return n.trim()?{action:`create`,cron:t,prompt:n.trim()}:{action:`invalid`,reason:`prompt cannot be empty`}}if(r===`delete`){if(!i)return{action:`invalid`,reason:`delete requires an agent id`};let e=i.split(/\s+/)[0];return e?{action:`delete`,id:e}:{action:`invalid`,reason:`delete requires an agent id`}}if(r===`run`){if(!i)return{action:`invalid`,reason:`run requires an agent id`};let e=i.split(/\s+/)[0];return e?{action:`run`,id:e}:{action:`invalid`,reason:`run requires an agent id`}}return{action:`invalid`,reason:`Unknown sub-command "${r}". Use: list | create CRON PROMPT | delete ID | run ID`}}var V=e((()=>{}));async function H(e,t){if(e.action===`list`){l(`tengu_agents_platform_list`,{});try{let e=await D();return t(e.length===0?`No scheduled agents found.`:`${e.length} scheduled agent(s).`,{display:`system`}),{mode:`list`,agents:e}}catch(e){let n=e instanceof Error?e.message:String(e);return l(`tengu_agents_platform_failed`,{reason:n}),t(`Failed to list agents: ${n}`,{display:`system`}),{mode:`error`,message:n}}}if(e.action===`create`){let{cron:n,prompt:r}=e;if(!f(n)){let e=`Invalid cron expression: "${n}". Expected 5 fields (minute hour day month weekday).`;return l(`tengu_agents_platform_failed`,{reason:e}),t(e,{display:`system`}),null}l(`tengu_agents_platform_create`,{cron:n});try{let e=await O(n,r);return t(`Agent created: ${e.id}`,{display:`system`}),{mode:`created`,agent:e}}catch(e){let n=e instanceof Error?e.message:String(e);return l(`tengu_agents_platform_failed`,{reason:n}),t(`Failed to create agent: ${n}`,{display:`system`}),{mode:`error`,message:n}}}if(e.action===`delete`){let{id:n}=e;l(`tengu_agents_platform_delete`,{id:n});try{return await k(n),t(`Agent ${n} deleted.`,{display:`system`}),{mode:`deleted`,id:n}}catch(e){let r=e instanceof Error?e.message:String(e);return l(`tengu_agents_platform_failed`,{reason:r}),t(`Failed to delete agent ${n}: ${r}`,{display:`system`}),{mode:`error`,message:r}}}let{id:n}=e;l(`tengu_agents_platform_run`,{id:n});try{let e=await A(n);return t(`Agent ${n} triggered. Run ID: ${e.run_id}`,{display:`system`}),{mode:`ran`,id:n,runId:e.run_id}}catch(e){let r=e instanceof Error?e.message:String(e);return l(`tengu_agents_platform_failed`,{reason:r}),t(`Failed to run agent ${n}: ${r}`,{display:`system`}),{mode:`error`,message:r}}}var U;e((()=>{c(),m(),P(),R(),V(),b(),U=y({commandName:`agents-platform`,parseArgs:e=>{l(`tengu_agents_platform_started`,{args:e});let t=B(e);return t.action===`invalid`?(l(`tengu_agents_platform_failed`,{reason:t.reason}),{action:`invalid`,reason:`Usage: /agents-platform list | create CRON PROMPT | delete ID | run ID\n${t.reason}`}):t},dispatch:H,View:I,errorView:e=>null})}))();export{U as callAgentsPlatform};
1
+ import{n as e}from"./chunk-DR8-3Aex.js";import{n as t,t as n}from"./axios-DhfaybwJ.js";import{Rn as r,b as i,t as a,x as o}from"./src-Di342QoJ.js";import{t as s}from"./jsx-runtime-D-D469L8.js";import{n as c,r as l}from"./analytics-DqMQntaB.js";import{l as u,u as d}from"./oauth-CdZEzMww.js";import{i as f,n as p,r as m}from"./cron-DiW7eIPP.js";import{o as h,u as g}from"./api-nHsRf03G.js";import{n as _,r as v}from"./hostGuard-zim_4F9V.js";import{n as y,t as b}from"./launchCommand-Du91jxMC.js";function x(e){return new Promise(t=>setTimeout(t,e))}async function S(){let e;try{e=(await g()).apiKey}catch(e){throw new N(e instanceof Error?e.message:String(e),501)}return _(C()),{"x-api-key":e,"anthropic-version":`2023-06-01`,"anthropic-beta":j,"content-type":`application/json`}}function C(){return`${u().BASE_API_URL}/v1/agents`}function w(e){if(t.isAxiosError(e)){let t=e.response?.status??0;if(t===401)return new N(`Authentication failed. Please run /login to re-authenticate.`,401);if(t===403)return new N(`Subscription required. Scheduled agents require a Claude Pro/Max/Team subscription.`,403);if(t===404)return new N(`Agent not found.`,404);if(t===429){let t=e.response?.headers?.[`retry-after`]??``;return new N(`Rate limit exceeded.${t?` Retry after ${t}s.`:``}`,429)}return new N((e.response?.data)?.error?.message??e.message,t)}return e instanceof N?e:new N(e instanceof Error?e.message:String(e),0)}function T(e){if(!e)return null;let t=Number(e);if(!Number.isNaN(t)&&t>=0)return t*1e3;let n=Date.parse(e);return Number.isNaN(n)?null:Math.max(0,n-Date.now())}async function E(e){let n;for(let r=0;r<M;r++)try{return await e()}catch(e){let i=w(e);if(i.statusCode>=500){n=i,r<M-1&&await x(T(t.isAxiosError(e)?e.response?.headers?.[`retry-after`]:void 0)??500*2**r);continue}throw i}throw n??new N(`Request failed after retries`,0)}async function D(){return E(async()=>{let e=await S();return(await t.get(C(),{headers:e})).data.data??[]})}async function O(e,n){return E(async()=>{let r=await S();return(await t.post(C(),{cron_expr:e,prompt:n,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone??`UTC`},{headers:r})).data})}async function k(e){return E(async()=>{let n=await S();await t.delete(`${C()}/${e}`,{headers:n})})}async function A(e){return E(async()=>{let n=await S();return(await t.post(`${C()}/${e}/run`,{},{headers:n})).data})}var j,M,N,P=e((()=>{n(),d(),v(),h(),j=`managed-agents-2026-04-01`,M=3,N=class extends Error{constructor(e,t){super(e),this.statusCode=t,this.name=`AgentsApiError`}}}));function F({agent:e}){let t=p(e.cron_expr,{utc:!0}),n=e.next_run?new Date(e.next_run).toLocaleString():`—`;return(0,L.jsxs)(o,{flexDirection:`column`,marginBottom:1,children:[(0,L.jsxs)(o,{children:[(0,L.jsx)(i,{bold:!0,children:e.id}),(0,L.jsx)(i,{dimColor:!0,children:` · `}),(0,L.jsx)(i,{color:`suggestion`,children:e.status})]}),(0,L.jsxs)(i,{children:[`Schedule: `,t]}),(0,L.jsxs)(i,{dimColor:!0,children:[`Prompt: `,e.prompt]}),(0,L.jsxs)(i,{dimColor:!0,children:[`Next run: `,n]})]})}function I(e){if(e.mode===`list`)return e.agents.length===0?(0,L.jsx)(o,{children:(0,L.jsx)(i,{dimColor:!0,children:`No scheduled agents. Use /agents-platform create <cron> <prompt> to create one.`})}):(0,L.jsxs)(o,{flexDirection:`column`,children:[(0,L.jsx)(o,{marginBottom:1,children:(0,L.jsxs)(i,{bold:!0,children:[`Scheduled Agents (`,e.agents.length,`)`]})}),e.agents.map(e=>(0,L.jsx)(F,{agent:e},e.id))]});if(e.mode===`created`){let t=p(e.agent.cron_expr,{utc:!0});return(0,L.jsxs)(o,{flexDirection:`column`,children:[(0,L.jsx)(o,{children:(0,L.jsx)(i,{bold:!0,color:`success`,children:`Agent created`})}),(0,L.jsxs)(i,{children:[`ID: `,e.agent.id]}),(0,L.jsxs)(i,{children:[`Schedule: `,t]}),(0,L.jsxs)(i,{children:[`Prompt: `,e.agent.prompt]}),(0,L.jsxs)(i,{dimColor:!0,children:[`Status: `,e.agent.status]})]})}return e.mode===`deleted`?(0,L.jsx)(o,{children:(0,L.jsxs)(i,{color:`success`,children:[`Agent `,e.id,` deleted.`]})}):e.mode===`ran`?(0,L.jsxs)(o,{flexDirection:`column`,children:[(0,L.jsx)(o,{children:(0,L.jsxs)(i,{color:`success`,children:[`Agent `,e.id,` triggered.`]})}),(0,L.jsxs)(i,{dimColor:!0,children:[`Run ID: `,e.runId]})]}):(0,L.jsx)(o,{children:(0,L.jsx)(i,{color:`error`,children:e.message})})}var L,R=e((()=>{r(),a(),m(),L=s()}));function z(e){let t=e.trim().split(/\s+/);return t.length<6?null:{cron:t.slice(0,5).join(` `),prompt:t.slice(5).join(` `)}}function B(e){let t=e.trim();if(t===``||t===`list`)return{action:`list`};let n=t.indexOf(` `),r=n===-1?t:t.slice(0,n),i=n===-1?``:t.slice(n+1).trim();if(r===`create`){if(!i)return{action:`invalid`,reason:`create requires a cron expression and prompt, e.g. create "0 9 * * 1" Run daily standup`};let e=z(i);if(!e)return{action:`invalid`,reason:`create requires at least 5 cron fields followed by a prompt, e.g. create "0 9 * * 1" Run daily standup`};let{cron:t,prompt:n}=e;return n.trim()?{action:`create`,cron:t,prompt:n.trim()}:{action:`invalid`,reason:`prompt cannot be empty`}}if(r===`delete`){if(!i)return{action:`invalid`,reason:`delete requires an agent id`};let e=i.split(/\s+/)[0];return e?{action:`delete`,id:e}:{action:`invalid`,reason:`delete requires an agent id`}}if(r===`run`){if(!i)return{action:`invalid`,reason:`run requires an agent id`};let e=i.split(/\s+/)[0];return e?{action:`run`,id:e}:{action:`invalid`,reason:`run requires an agent id`}}return{action:`invalid`,reason:`Unknown sub-command "${r}". Use: list | create CRON PROMPT | delete ID | run ID`}}var V=e((()=>{}));async function H(e,t){if(e.action===`list`){l(`tengu_agents_platform_list`,{});try{let e=await D();return t(e.length===0?`No scheduled agents found.`:`${e.length} scheduled agent(s).`,{display:`system`}),{mode:`list`,agents:e}}catch(e){let n=e instanceof Error?e.message:String(e);return l(`tengu_agents_platform_failed`,{reason:n}),t(`Failed to list agents: ${n}`,{display:`system`}),{mode:`error`,message:n}}}if(e.action===`create`){let{cron:n,prompt:r}=e;if(!f(n)){let e=`Invalid cron expression: "${n}". Expected 5 fields (minute hour day month weekday).`;return l(`tengu_agents_platform_failed`,{reason:e}),t(e,{display:`system`}),null}l(`tengu_agents_platform_create`,{cron:n});try{let e=await O(n,r);return t(`Agent created: ${e.id}`,{display:`system`}),{mode:`created`,agent:e}}catch(e){let n=e instanceof Error?e.message:String(e);return l(`tengu_agents_platform_failed`,{reason:n}),t(`Failed to create agent: ${n}`,{display:`system`}),{mode:`error`,message:n}}}if(e.action===`delete`){let{id:n}=e;l(`tengu_agents_platform_delete`,{id:n});try{return await k(n),t(`Agent ${n} deleted.`,{display:`system`}),{mode:`deleted`,id:n}}catch(e){let r=e instanceof Error?e.message:String(e);return l(`tengu_agents_platform_failed`,{reason:r}),t(`Failed to delete agent ${n}: ${r}`,{display:`system`}),{mode:`error`,message:r}}}let{id:n}=e;l(`tengu_agents_platform_run`,{id:n});try{let e=await A(n);return t(`Agent ${n} triggered. Run ID: ${e.run_id}`,{display:`system`}),{mode:`ran`,id:n,runId:e.run_id}}catch(e){let r=e instanceof Error?e.message:String(e);return l(`tengu_agents_platform_failed`,{reason:r}),t(`Failed to run agent ${n}: ${r}`,{display:`system`}),{mode:`error`,message:r}}}var U;e((()=>{c(),m(),P(),R(),V(),b(),U=y({commandName:`agents-platform`,parseArgs:e=>{l(`tengu_agents_platform_started`,{args:e});let t=B(e);return t.action===`invalid`?(l(`tengu_agents_platform_failed`,{reason:t.reason}),{action:`invalid`,reason:`Usage: /agents-platform list | create CRON PROMPT | delete ID | run ID\n${t.reason}`}):t},dispatch:H,View:I,errorView:e=>null})}))();export{U as callAgentsPlatform};
@@ -1,4 +1,4 @@
1
- import{n as e,o as t}from"./chunk-DR8-3Aex.js";import{Rn as n,b as r,t as i,x as a}from"./src-Di342QoJ.js";import{t as o}from"./jsx-runtime-D-D469L8.js";import{Ct as s,cn as c}from"./state-sIHsFpDu.js";import{n as l,r as u}from"./analytics-DqMQntaB.js";import{$_ as d,Q_ as f,av as ee,ev as te,iv as p,lv as m,mv as ne,nv as h,rv as g,tv as _}from"./loadAgentsDir-Cl2w3uvH.js";import{a as v,r as y}from"./detectRepository-CBk3S2zv.js";import{join as b}from"node:path";import{spawn as x}from"node:child_process";import{existsSync as S}from"node:fs";import{randomUUID as C}from"node:crypto";function re(e){return E.indexOf(e)}function ie({phase:e,target:t,sessionUrl:n,errorMessage:i}){let o=re(e),s=e===`error`;return(0,w.jsxs)(a,{flexDirection:`column`,marginTop:1,marginBottom:1,children:[(0,w.jsxs)(a,{children:[(0,w.jsx)(r,{bold:!0,children:`Autofix PR `}),(0,w.jsx)(r,{color:`claude`,children:t})]}),E.map((e,t)=>{let n=o>t,i=o===t&&!s;return(0,w.jsx)(a,{marginLeft:2,children:(0,w.jsxs)(r,{color:n?`success`:i?`warning`:`subtle`,children:[n?`✓`:i?`→`:`·`,` `,T[e]]})},e)}),s&&i&&(0,w.jsx)(a,{marginLeft:2,marginTop:1,children:(0,w.jsxs)(r,{color:`error`,children:[`✗ `,i]})}),n&&(0,w.jsxs)(a,{marginTop:1,marginLeft:2,children:[(0,w.jsx)(r,{color:`subtle`,children:`Track: `}),(0,w.jsx)(r,{color:`claude`,children:n})]})]})}var w,T,E,D=e((()=>{n(),i(),w=o(),T={detecting:`Detecting repository...`,checking_eligibility:`Checking remote agent eligibility...`,acquiring_lock:`Acquiring monitor lock...`,launching:`Launching remote session...`,registered:`Session registered`,done:`Autofix launched`,error:`Error`},E=[`detecting`,`checking_eligibility`,`acquiring_lock`,`launching`,`registered`,`done`]}));function O(e,t){return{agentId:C(),agentName:`autofix-pr`,teamName:`_autofix`,color:void 0,planModeRequired:!1,parentSessionId:s(),abortController:new AbortController,taskId:C()}}var k=e((()=>{c()}));function A(){return M}function ae(e){return M?!1:(M=e,!0)}function j(e){M&&(e&&M.taskId!==e||(M.abortController.abort(),M=null))}function oe(e){return M?(M={...M,...e},!0):!1}function se(e,t,n){return M?.owner===e&&M?.repo===t&&M?.prNumber===n}var M,N=e((()=>{M=null}));function P(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n){if(n.type===`system`&&(n.subtype===`hook_progress`||n.subtype===`hook_response`)){let e=n.stdout;if(typeof e==`string`){let t=F(e,L,R);if(t)return t}continue}if(n.type===`assistant`){let e=n.message?.content;if(!e||typeof e==`string`)continue;for(let t of e){if(t.type!==`text`||typeof t.text!=`string`||!t.text.includes(L))continue;let e=F(t.text,L,R);if(e)return e}}}}return null}function F(e,t,n){let r=e.length;for(;r>=0;){let i=e.lastIndexOf(t,r);if(i===-1)return null;let a=e.indexOf(n,i+t.length);if(a!==-1)return e.slice(i,a+n.length);r=i-1}return null}var I,L,R,z=e((()=>{I=`autofix-result`,L=`<${I}>`,R=`</${I}>`}));function B(e){if(!/^[1-9]\d{0,9}$/.test(e))return null;let t=Number(e);return Number.isSafeInteger(t)?t:null}function V(e){let t=e.trim();if(!t)return{action:`invalid`,reason:`empty`};if(t===`stop`||t===`off`)return{action:`stop`};let n=B(t);if(n!==null)return{action:`start`,prNumber:n};let r=t.match(/^([\w.-]+)\/([\w.-]+)#(\d+)$/);if(r){let e=B(r[3]);return e===null?{action:`invalid`,reason:`pr_number_out_of_range`}:{action:`start`,owner:r[1],repo:r[2],prNumber:e}}return{action:`freeform`,prompt:t}}var H=e((()=>{}));function U(e,t){let{owner:n,repo:r,prNumber:i,initialHeadSha:a}=t;if(e.state===`MERGED`)return{completed:!0,summary:`${n}/${r}#${i} merged. Autofix monitoring complete.`};if(e.state===`CLOSED`)return{completed:!0,summary:`${n}/${r}#${i} closed without merge. Autofix monitoring complete.`};if(!a||e.headRefOid===a)return{completed:!1};let o=W(e.statusCheckRollup);return o.state===`pending`?{completed:!1}:o.state===`failure`?{completed:!0,summary:`Autofix pushed commits to ${n}/${r}#${i} but CI is failing (${o.detail}).`}:{completed:!0,summary:`Autofix pushed commits to ${n}/${r}#${i}, CI green.`}}function W(e){if(!e||e.length===0)return{state:`success`,detail:`no checks configured`};let t=0,n=0,r=e.length;for(let r of e){let e=(r.status??``).toUpperCase(),i=(r.conclusion??``).toUpperCase();if(e&&e!==`COMPLETED`){t++;continue}if(!(i===`SUCCESS`||i===`NEUTRAL`||i===`SKIPPED`)){if(i===``){t++;continue}n++}}return t>0?{state:`pending`,detail:`${t}/${r} checks pending`}:n>0?{state:`failure`,detail:`${n}/${r} checks failing`}:{state:`success`,detail:`${r}/${r} checks passing`}}var G=e((()=>{}));async function ce(e){let{owner:t,repo:n,prNumber:r,initialHeadSha:i,timeoutMs:a}=e,o;try{o=await K(t,n,r,a??q)}catch{return{completed:!1}}return U(o,{owner:t,repo:n,prNumber:r,initialHeadSha:i})}async function le(e,t,n,r=q){try{return(await K(e,t,n,r)).headRefOid||null}catch{return null}}function K(e,t,n,r){return new Promise((i,a)=>{let o=x(`gh`,[`pr`,`view`,String(n),`--repo`,`${e}/${t}`,`--json`,`headRefOid,state,statusCheckRollup`],{stdio:[`ignore`,`pipe`,`pipe`]}),s=[],c=[],l=!1,u=setTimeout(()=>{l||(l=!0,o.kill(`SIGKILL`),a(Error(`gh pr view timed out after ${r}ms`)))},r);o.stdout.on(`data`,e=>s.push(e)),o.stderr.on(`data`,e=>c.push(e)),o.on(`error`,e=>{l||(l=!0,clearTimeout(u),a(e))}),o.on(`close`,e=>{if(l)return;if(l=!0,clearTimeout(u),e!==0){let t=Buffer.concat(c).toString(`utf8`).trim();a(Error(`gh pr view exited ${e}: ${t||`<no stderr>`}`));return}let t=Buffer.concat(s).toString(`utf8`).trim();try{i(JSON.parse(t))}catch(e){a(Error(`gh pr view JSON parse failed: ${e.message}`))}})})}var q,ue=e((()=>{G(),q=5e3}));function de(e){return[`AUTOFIX.md`,`.claude/skills/autofix.md`,`.claude/skills/autofix-pr/SKILL.md`].filter(t=>S(b(e,t)))}function fe(e){return e.length===0?``:` Run ${e.join(` and `)} for custom instructions on how to autofix.`}var pe=e((()=>{}));function J(e){return`${e.owner}/${e.repo}#${e.prNumber}`}function Y(e,t){return u(`tengu_autofix_pr_result`,{result:`failed`,error_code:t}),`Autofix PR failed: ${e}`}var X,Z,Q,$;e((()=>{X=t(n(),1),l(),_(),v(),m(),D(),k(),N(),z(),H(),ue(),pe(),Z=new Map,Q=5e3,h(`autofix-pr`,async e=>{let t=e;if(!t)return null;let n=J(t),r=Date.now();if(r-(Z.get(n)??0)<Q)return null;Z.set(n,r);let i=await ce({owner:t.owner,repo:t.repo,prNumber:t.prNumber,initialHeadSha:t.initialHeadSha});return i.completed?i.summary:null}),g(`autofix-pr`,(e,t)=>{j(e);let n=t;n&&Z.delete(J(n))}),p(`autofix-pr`,e=>P(e)),$=async(e,t,n)=>{try{let r=V(n);if(r.action===`stop`){let t=A();return t?(j(),e(`Stopped local monitoring of ${t.repo}#${t.prNumber}. Any already-running remote session continues until it finishes or is cancelled from claude.ai/code.`,{display:`system`}),null):(e(`No active autofix monitor.`,{display:`system`}),null)}if(r.action===`invalid`)return e(`Invalid args: ${r.reason}. Use /autofix-pr <pr-number> | stop | <owner>/<repo>#<n>`,{display:`system`}),null;if(r.action===`freeform`)return e(`Freeform prompt mode not yet supported. Use /autofix-pr <pr-number>.`,{display:`system`}),null;u(`tengu_autofix_pr_started`,{action:`start`,has_pr_number:`true`,has_repo_path:String(!!(r.owner&&r.repo))});let i;try{i=await y()}catch{return e(Y(`Cannot detect GitHub repo from current directory.`,`session_create_failed`),{display:`system`}),null}if(!i||i.host!==`github.com`)return e(Y(`Cannot detect GitHub repo from current directory.`,`session_create_failed`),{display:`system`}),null;if(r.owner&&r.owner!==i.owner||r.repo&&r.repo!==i.name)return e(Y(`Cross-repo autofix is not supported from this directory. Run from ${i.owner}/${i.name} or pass only the PR number.`,`repo_mismatch`),{display:`system`}),null;let a=i.owner,o=i.name,{prNumber:s}=r;if(se(a,o,s))return u(`tengu_autofix_pr_result`,{result:`success_rc`}),e(`Already monitoring ${o}#${s} in background.`,{display:`system`}),null;let c=await f({skipBundle:!0});if(!c.eligible){let t=c.errors.filter(e=>e.type!==`no_remote_environment`);if(t.length>0)return e(Y(`Remote agent not available:\n${t.map(d).join(`
1
+ import{n as e,o as t}from"./chunk-DR8-3Aex.js";import{Rn as n,b as r,t as i,x as a}from"./src-Di342QoJ.js";import{t as o}from"./jsx-runtime-D-D469L8.js";import{Ct as s,cn as c}from"./state-sIHsFpDu.js";import{n as l,r as u}from"./analytics-DqMQntaB.js";import{$_ as d,Q_ as f,av as ee,ev as te,iv as p,lv as m,mv as ne,nv as h,rv as g,tv as _}from"./loadAgentsDir-D-xcJ22-.js";import{a as v,r as y}from"./detectRepository-CBk3S2zv.js";import{join as b}from"node:path";import{spawn as x}from"node:child_process";import{existsSync as S}from"node:fs";import{randomUUID as C}from"node:crypto";function re(e){return E.indexOf(e)}function ie({phase:e,target:t,sessionUrl:n,errorMessage:i}){let o=re(e),s=e===`error`;return(0,w.jsxs)(a,{flexDirection:`column`,marginTop:1,marginBottom:1,children:[(0,w.jsxs)(a,{children:[(0,w.jsx)(r,{bold:!0,children:`Autofix PR `}),(0,w.jsx)(r,{color:`claude`,children:t})]}),E.map((e,t)=>{let n=o>t,i=o===t&&!s;return(0,w.jsx)(a,{marginLeft:2,children:(0,w.jsxs)(r,{color:n?`success`:i?`warning`:`subtle`,children:[n?`✓`:i?`→`:`·`,` `,T[e]]})},e)}),s&&i&&(0,w.jsx)(a,{marginLeft:2,marginTop:1,children:(0,w.jsxs)(r,{color:`error`,children:[`✗ `,i]})}),n&&(0,w.jsxs)(a,{marginTop:1,marginLeft:2,children:[(0,w.jsx)(r,{color:`subtle`,children:`Track: `}),(0,w.jsx)(r,{color:`claude`,children:n})]})]})}var w,T,E,D=e((()=>{n(),i(),w=o(),T={detecting:`Detecting repository...`,checking_eligibility:`Checking remote agent eligibility...`,acquiring_lock:`Acquiring monitor lock...`,launching:`Launching remote session...`,registered:`Session registered`,done:`Autofix launched`,error:`Error`},E=[`detecting`,`checking_eligibility`,`acquiring_lock`,`launching`,`registered`,`done`]}));function O(e,t){return{agentId:C(),agentName:`autofix-pr`,teamName:`_autofix`,color:void 0,planModeRequired:!1,parentSessionId:s(),abortController:new AbortController,taskId:C()}}var k=e((()=>{c()}));function A(){return M}function ae(e){return M?!1:(M=e,!0)}function j(e){M&&(e&&M.taskId!==e||(M.abortController.abort(),M=null))}function oe(e){return M?(M={...M,...e},!0):!1}function se(e,t,n){return M?.owner===e&&M?.repo===t&&M?.prNumber===n}var M,N=e((()=>{M=null}));function P(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n){if(n.type===`system`&&(n.subtype===`hook_progress`||n.subtype===`hook_response`)){let e=n.stdout;if(typeof e==`string`){let t=F(e,L,R);if(t)return t}continue}if(n.type===`assistant`){let e=n.message?.content;if(!e||typeof e==`string`)continue;for(let t of e){if(t.type!==`text`||typeof t.text!=`string`||!t.text.includes(L))continue;let e=F(t.text,L,R);if(e)return e}}}}return null}function F(e,t,n){let r=e.length;for(;r>=0;){let i=e.lastIndexOf(t,r);if(i===-1)return null;let a=e.indexOf(n,i+t.length);if(a!==-1)return e.slice(i,a+n.length);r=i-1}return null}var I,L,R,z=e((()=>{I=`autofix-result`,L=`<${I}>`,R=`</${I}>`}));function B(e){if(!/^[1-9]\d{0,9}$/.test(e))return null;let t=Number(e);return Number.isSafeInteger(t)?t:null}function V(e){let t=e.trim();if(!t)return{action:`invalid`,reason:`empty`};if(t===`stop`||t===`off`)return{action:`stop`};let n=B(t);if(n!==null)return{action:`start`,prNumber:n};let r=t.match(/^([\w.-]+)\/([\w.-]+)#(\d+)$/);if(r){let e=B(r[3]);return e===null?{action:`invalid`,reason:`pr_number_out_of_range`}:{action:`start`,owner:r[1],repo:r[2],prNumber:e}}return{action:`freeform`,prompt:t}}var H=e((()=>{}));function U(e,t){let{owner:n,repo:r,prNumber:i,initialHeadSha:a}=t;if(e.state===`MERGED`)return{completed:!0,summary:`${n}/${r}#${i} merged. Autofix monitoring complete.`};if(e.state===`CLOSED`)return{completed:!0,summary:`${n}/${r}#${i} closed without merge. Autofix monitoring complete.`};if(!a||e.headRefOid===a)return{completed:!1};let o=W(e.statusCheckRollup);return o.state===`pending`?{completed:!1}:o.state===`failure`?{completed:!0,summary:`Autofix pushed commits to ${n}/${r}#${i} but CI is failing (${o.detail}).`}:{completed:!0,summary:`Autofix pushed commits to ${n}/${r}#${i}, CI green.`}}function W(e){if(!e||e.length===0)return{state:`success`,detail:`no checks configured`};let t=0,n=0,r=e.length;for(let r of e){let e=(r.status??``).toUpperCase(),i=(r.conclusion??``).toUpperCase();if(e&&e!==`COMPLETED`){t++;continue}if(!(i===`SUCCESS`||i===`NEUTRAL`||i===`SKIPPED`)){if(i===``){t++;continue}n++}}return t>0?{state:`pending`,detail:`${t}/${r} checks pending`}:n>0?{state:`failure`,detail:`${n}/${r} checks failing`}:{state:`success`,detail:`${r}/${r} checks passing`}}var G=e((()=>{}));async function ce(e){let{owner:t,repo:n,prNumber:r,initialHeadSha:i,timeoutMs:a}=e,o;try{o=await K(t,n,r,a??q)}catch{return{completed:!1}}return U(o,{owner:t,repo:n,prNumber:r,initialHeadSha:i})}async function le(e,t,n,r=q){try{return(await K(e,t,n,r)).headRefOid||null}catch{return null}}function K(e,t,n,r){return new Promise((i,a)=>{let o=x(`gh`,[`pr`,`view`,String(n),`--repo`,`${e}/${t}`,`--json`,`headRefOid,state,statusCheckRollup`],{stdio:[`ignore`,`pipe`,`pipe`]}),s=[],c=[],l=!1,u=setTimeout(()=>{l||(l=!0,o.kill(`SIGKILL`),a(Error(`gh pr view timed out after ${r}ms`)))},r);o.stdout.on(`data`,e=>s.push(e)),o.stderr.on(`data`,e=>c.push(e)),o.on(`error`,e=>{l||(l=!0,clearTimeout(u),a(e))}),o.on(`close`,e=>{if(l)return;if(l=!0,clearTimeout(u),e!==0){let t=Buffer.concat(c).toString(`utf8`).trim();a(Error(`gh pr view exited ${e}: ${t||`<no stderr>`}`));return}let t=Buffer.concat(s).toString(`utf8`).trim();try{i(JSON.parse(t))}catch(e){a(Error(`gh pr view JSON parse failed: ${e.message}`))}})})}var q,ue=e((()=>{G(),q=5e3}));function de(e){return[`AUTOFIX.md`,`.claude/skills/autofix.md`,`.claude/skills/autofix-pr/SKILL.md`].filter(t=>S(b(e,t)))}function fe(e){return e.length===0?``:` Run ${e.join(` and `)} for custom instructions on how to autofix.`}var pe=e((()=>{}));function J(e){return`${e.owner}/${e.repo}#${e.prNumber}`}function Y(e,t){return u(`tengu_autofix_pr_result`,{result:`failed`,error_code:t}),`Autofix PR failed: ${e}`}var X,Z,Q,$;e((()=>{X=t(n(),1),l(),_(),v(),m(),D(),k(),N(),z(),H(),ue(),pe(),Z=new Map,Q=5e3,h(`autofix-pr`,async e=>{let t=e;if(!t)return null;let n=J(t),r=Date.now();if(r-(Z.get(n)??0)<Q)return null;Z.set(n,r);let i=await ce({owner:t.owner,repo:t.repo,prNumber:t.prNumber,initialHeadSha:t.initialHeadSha});return i.completed?i.summary:null}),g(`autofix-pr`,(e,t)=>{j(e);let n=t;n&&Z.delete(J(n))}),p(`autofix-pr`,e=>P(e)),$=async(e,t,n)=>{try{let r=V(n);if(r.action===`stop`){let t=A();return t?(j(),e(`Stopped local monitoring of ${t.repo}#${t.prNumber}. Any already-running remote session continues until it finishes or is cancelled from claude.ai/code.`,{display:`system`}),null):(e(`No active autofix monitor.`,{display:`system`}),null)}if(r.action===`invalid`)return e(`Invalid args: ${r.reason}. Use /autofix-pr <pr-number> | stop | <owner>/<repo>#<n>`,{display:`system`}),null;if(r.action===`freeform`)return e(`Freeform prompt mode not yet supported. Use /autofix-pr <pr-number>.`,{display:`system`}),null;u(`tengu_autofix_pr_started`,{action:`start`,has_pr_number:`true`,has_repo_path:String(!!(r.owner&&r.repo))});let i;try{i=await y()}catch{return e(Y(`Cannot detect GitHub repo from current directory.`,`session_create_failed`),{display:`system`}),null}if(!i||i.host!==`github.com`)return e(Y(`Cannot detect GitHub repo from current directory.`,`session_create_failed`),{display:`system`}),null;if(r.owner&&r.owner!==i.owner||r.repo&&r.repo!==i.name)return e(Y(`Cross-repo autofix is not supported from this directory. Run from ${i.owner}/${i.name} or pass only the PR number.`,`repo_mismatch`),{display:`system`}),null;let a=i.owner,o=i.name,{prNumber:s}=r;if(se(a,o,s))return u(`tengu_autofix_pr_result`,{result:`success_rc`}),e(`Already monitoring ${o}#${s} in background.`,{display:`system`}),null;let c=await f({skipBundle:!0});if(!c.eligible){let t=c.errors.filter(e=>e.type!==`no_remote_environment`);if(t.length>0)return e(Y(`Remote agent not available:\n${t.map(d).join(`
2
2
  `)}`,`session_create_failed`),{display:`system`}),null}let l=fe(de(process.cwd())),p=`${a}/${o}#${s}`,m=`refs/pull/${s}/head`,h=`Auto-fix failing CI checks on PR #${s} in ${a}/${o}.${l}
3
3
 
4
4
  When you finish (or hit a blocker you can't recover from), output the following XML tag as your final message so the local user gets a structured summary:
@@ -1,3 +1,3 @@
1
- import{n as e,o as t}from"./chunk-DR8-3Aex.js";import{Rn as n,b as r,f as i,t as a,x as o,xt as s}from"./src-Di342QoJ.js";import{t as c}from"./jsx-runtime-D-D469L8.js";import{Bx as l,Cf as u,Sf as d,Tf as f,_f as p,bf as m,gf as h,vf as g,wf as _,xf as v,yf as y,zx as b}from"./loadAgentsDir-Cl2w3uvH.js";import{n as x,t as S}from"./launchCommand-Du91jxMC.js";function C(e){return e.mode===`list`?e.stores.length===0?(0,w.jsx)(o,{children:(0,w.jsx)(r,{dimColor:!0,children:`No memory stores found. Use /local-memory create <store> to create one.`})}):(0,w.jsxs)(o,{flexDirection:`column`,children:[(0,w.jsx)(o,{marginBottom:1,children:(0,w.jsxs)(r,{bold:!0,children:[`Local Memory Stores (`,e.stores.length,`)`]})}),e.stores.map(e=>(0,w.jsxs)(o,{children:[(0,w.jsx)(r,{children:` `}),(0,w.jsx)(r,{color:`success`,children:`◆`}),(0,w.jsxs)(r,{children:[` `,e]})]},e))]}):e.mode===`created`?(0,w.jsxs)(o,{children:[(0,w.jsx)(r,{color:`success`,children:`✓`}),(0,w.jsx)(r,{children:` Store created: `}),(0,w.jsx)(r,{bold:!0,children:e.store})]}):e.mode===`stored`?(0,w.jsxs)(o,{children:[(0,w.jsx)(r,{color:`success`,children:`✓`}),(0,w.jsx)(r,{children:` Stored entry `}),(0,w.jsx)(r,{bold:!0,children:e.key}),(0,w.jsx)(r,{children:` in `}),(0,w.jsx)(r,{bold:!0,children:e.store})]}):e.mode===`fetched`?(0,w.jsxs)(o,{flexDirection:`column`,children:[(0,w.jsxs)(o,{marginBottom:1,children:[(0,w.jsx)(r,{bold:!0,children:e.store}),(0,w.jsx)(r,{dimColor:!0,children:`/`}),(0,w.jsx)(r,{bold:!0,children:e.key})]}),(0,w.jsx)(o,{children:(0,w.jsx)(r,{children:e.value})})]}):e.mode===`not-found`?(0,w.jsxs)(o,{children:[(0,w.jsx)(r,{color:`error`,children:`Not found: `}),(0,w.jsx)(r,{bold:!0,children:e.store}),e.key?(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(r,{dimColor:!0,children:`/`}),(0,w.jsx)(r,{bold:!0,children:e.key})]}):null]}):e.mode===`entries`?e.keys.length===0?(0,w.jsxs)(o,{children:[(0,w.jsx)(r,{dimColor:!0,children:`No entries in `}),(0,w.jsx)(r,{bold:!0,children:e.store}),(0,w.jsxs)(r,{dimColor:!0,children:[`. Use /local-memory store `,e.store,` <key> <value> to add one.`]})]}):(0,w.jsxs)(o,{flexDirection:`column`,children:[(0,w.jsxs)(o,{marginBottom:1,children:[(0,w.jsx)(r,{bold:!0,children:e.store}),(0,w.jsxs)(r,{dimColor:!0,children:[` (`,e.keys.length,` entries)`]})]}),e.keys.map(e=>(0,w.jsxs)(o,{children:[(0,w.jsx)(r,{children:` `}),(0,w.jsx)(r,{color:`success`,children:`·`}),(0,w.jsxs)(r,{children:[` `,e]})]},e))]}):e.mode===`archived`?(0,w.jsxs)(o,{children:[(0,w.jsx)(r,{color:`success`,children:`✓`}),(0,w.jsx)(r,{children:` Archived store: `}),(0,w.jsx)(r,{bold:!0,children:e.store}),(0,w.jsxs)(r,{dimColor:!0,children:[` (renamed to `,e.store,`.archived)`]})]}):(0,w.jsx)(o,{children:(0,w.jsxs)(r,{color:`error`,children:[`Error: `,e.message]})})}var w,T=e((()=>{n(),a(),w=c()}));function E(e){let t=e.trim();if(t===``||t===`list`)return{action:`list`};let n=t.split(/\s+/),r=n[0];if(r===`list`)return{action:`list`};if(r===`create`){let e=n[1];return e?{action:`create`,store:e}:{action:`invalid`,reason:`create requires a store name. ${D}`}}if(r===`store`){let e=n[1],t=n[2];if(!e)return{action:`invalid`,reason:`store requires a store name. ${D}`};if(!t)return{action:`invalid`,reason:`store requires a key. ${D}`};let r=n.slice(3).join(` `);return r?{action:`store`,store:e,key:t,value:r}:{action:`invalid`,reason:`store requires a value. ${D}`}}if(r===`fetch`){let e=n[1],t=n[2];return e?t?{action:`fetch`,store:e,key:t}:{action:`invalid`,reason:`fetch requires a key. ${D}`}:{action:`invalid`,reason:`fetch requires a store name. ${D}`}}if(r===`entries`){let e=n[1];return e?{action:`entries`,store:e}:{action:`invalid`,reason:`entries requires a store name. ${D}`}}if(r===`archive`){let e=n[1];return e?{action:`archive`,store:e}:{action:`invalid`,reason:`archive requires a store name. ${D}`}}return{action:`invalid`,reason:`Unknown sub-command "${r}". ${D}`}}var D,O=e((()=>{D=`Usage: /local-memory list | create STORE | store STORE KEY VALUE | fetch STORE KEY | entries STORE | archive STORE`}));function k(e){return e.length===0?`No memory stores found.`:[`Local Memory Stores`,...e.map(e=>`- ${e}`)].join(`
1
+ import{n as e,o as t}from"./chunk-DR8-3Aex.js";import{Rn as n,b as r,f as i,t as a,x as o,xt as s}from"./src-Di342QoJ.js";import{t as c}from"./jsx-runtime-D-D469L8.js";import{Bx as l,Cf as u,Sf as d,Tf as f,_f as p,bf as m,gf as h,vf as g,wf as _,xf as v,yf as y,zx as b}from"./loadAgentsDir-D-xcJ22-.js";import{n as x,t as S}from"./launchCommand-Du91jxMC.js";function C(e){return e.mode===`list`?e.stores.length===0?(0,w.jsx)(o,{children:(0,w.jsx)(r,{dimColor:!0,children:`No memory stores found. Use /local-memory create <store> to create one.`})}):(0,w.jsxs)(o,{flexDirection:`column`,children:[(0,w.jsx)(o,{marginBottom:1,children:(0,w.jsxs)(r,{bold:!0,children:[`Local Memory Stores (`,e.stores.length,`)`]})}),e.stores.map(e=>(0,w.jsxs)(o,{children:[(0,w.jsx)(r,{children:` `}),(0,w.jsx)(r,{color:`success`,children:`◆`}),(0,w.jsxs)(r,{children:[` `,e]})]},e))]}):e.mode===`created`?(0,w.jsxs)(o,{children:[(0,w.jsx)(r,{color:`success`,children:`✓`}),(0,w.jsx)(r,{children:` Store created: `}),(0,w.jsx)(r,{bold:!0,children:e.store})]}):e.mode===`stored`?(0,w.jsxs)(o,{children:[(0,w.jsx)(r,{color:`success`,children:`✓`}),(0,w.jsx)(r,{children:` Stored entry `}),(0,w.jsx)(r,{bold:!0,children:e.key}),(0,w.jsx)(r,{children:` in `}),(0,w.jsx)(r,{bold:!0,children:e.store})]}):e.mode===`fetched`?(0,w.jsxs)(o,{flexDirection:`column`,children:[(0,w.jsxs)(o,{marginBottom:1,children:[(0,w.jsx)(r,{bold:!0,children:e.store}),(0,w.jsx)(r,{dimColor:!0,children:`/`}),(0,w.jsx)(r,{bold:!0,children:e.key})]}),(0,w.jsx)(o,{children:(0,w.jsx)(r,{children:e.value})})]}):e.mode===`not-found`?(0,w.jsxs)(o,{children:[(0,w.jsx)(r,{color:`error`,children:`Not found: `}),(0,w.jsx)(r,{bold:!0,children:e.store}),e.key?(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(r,{dimColor:!0,children:`/`}),(0,w.jsx)(r,{bold:!0,children:e.key})]}):null]}):e.mode===`entries`?e.keys.length===0?(0,w.jsxs)(o,{children:[(0,w.jsx)(r,{dimColor:!0,children:`No entries in `}),(0,w.jsx)(r,{bold:!0,children:e.store}),(0,w.jsxs)(r,{dimColor:!0,children:[`. Use /local-memory store `,e.store,` <key> <value> to add one.`]})]}):(0,w.jsxs)(o,{flexDirection:`column`,children:[(0,w.jsxs)(o,{marginBottom:1,children:[(0,w.jsx)(r,{bold:!0,children:e.store}),(0,w.jsxs)(r,{dimColor:!0,children:[` (`,e.keys.length,` entries)`]})]}),e.keys.map(e=>(0,w.jsxs)(o,{children:[(0,w.jsx)(r,{children:` `}),(0,w.jsx)(r,{color:`success`,children:`·`}),(0,w.jsxs)(r,{children:[` `,e]})]},e))]}):e.mode===`archived`?(0,w.jsxs)(o,{children:[(0,w.jsx)(r,{color:`success`,children:`✓`}),(0,w.jsx)(r,{children:` Archived store: `}),(0,w.jsx)(r,{bold:!0,children:e.store}),(0,w.jsxs)(r,{dimColor:!0,children:[` (renamed to `,e.store,`.archived)`]})]}):(0,w.jsx)(o,{children:(0,w.jsxs)(r,{color:`error`,children:[`Error: `,e.message]})})}var w,T=e((()=>{n(),a(),w=c()}));function E(e){let t=e.trim();if(t===``||t===`list`)return{action:`list`};let n=t.split(/\s+/),r=n[0];if(r===`list`)return{action:`list`};if(r===`create`){let e=n[1];return e?{action:`create`,store:e}:{action:`invalid`,reason:`create requires a store name. ${D}`}}if(r===`store`){let e=n[1],t=n[2];if(!e)return{action:`invalid`,reason:`store requires a store name. ${D}`};if(!t)return{action:`invalid`,reason:`store requires a key. ${D}`};let r=n.slice(3).join(` `);return r?{action:`store`,store:e,key:t,value:r}:{action:`invalid`,reason:`store requires a value. ${D}`}}if(r===`fetch`){let e=n[1],t=n[2];return e?t?{action:`fetch`,store:e,key:t}:{action:`invalid`,reason:`fetch requires a key. ${D}`}:{action:`invalid`,reason:`fetch requires a store name. ${D}`}}if(r===`entries`){let e=n[1];return e?{action:`entries`,store:e}:{action:`invalid`,reason:`entries requires a store name. ${D}`}}if(r===`archive`){let e=n[1];return e?{action:`archive`,store:e}:{action:`invalid`,reason:`archive requires a store name. ${D}`}}return{action:`invalid`,reason:`Unknown sub-command "${r}". ${D}`}}var D,O=e((()=>{D=`Usage: /local-memory list | create STORE | store STORE KEY VALUE | fetch STORE KEY | entries STORE | archive STORE`}));function k(e){return e.length===0?`No memory stores found.`:[`Local Memory Stores`,...e.map(e=>`- ${e}`)].join(`
2
2
  `)}function A(e,t){return t.length===0?`No entries in "${e}".`:[`Entries in "${e}"`,...t.map(e=>`- ${e}`)].join(`
3
3
  `)}function j({onDone:e}){let[t,n]=N.useState({kind:`menu`}),[a,c]=N.useState(0),[l,_]=N.useState(``),[y,x]=N.useState(0),[S,C]=N.useState(null),w=N.useCallback(e=>{n(e),_(``),x(0),C(null)},[]),T=N.useCallback(t=>e(t,{display:`system`}),[e]),E=N.useCallback((e,t,n,r,i={})=>{try{if(e===`list`){T(k(d()));return}if(e===`about`){T(F);return}if(!t){C(`Internal: missing store`);return}if(e===`create`){p(t),T(`Store created: ${t}`);return}if(e===`entries`){T(A(t,v(t)));return}if(e===`archive`){h(t),T(`Archived store: ${t}`);return}if(e===`fetch`){if(!n){C(`Internal: missing key`);return}let e=g(t,n);if(e===null){T(`Entry not found: ${t}/${n}`);return}T(`Entry fetched: ${t}/${n}\n\n${e}`);return}if(e===`store`){if(!n||r===void 0){C(`Internal: missing key or value`);return}if(!i.confirmedOverwrite&&g(t,n)!==null){w({kind:`confirm-overwrite`,store:t,key:n,value:r});return}u(t,n,r),T(`Stored ${t}/${n} (${r.length} chars)`);return}}catch(e){C(e instanceof Error?e.message:String(e))}},[T,w]);if(s((e,n)=>{if(t.kind!==`menu`)return;if(n.upArrow){c(e=>Math.max(0,e-1));return}if(n.downArrow){c(e=>Math.min(L.length-1,e+1));return}if(n.return){let e=L[a];if(!e)return;if(e.kind===`list`||e.kind===`about`){E(e.kind,void 0,void 0,void 0);return}w({kind:`collect-store`,action:e.kind});return}let r=Number(e);Number.isInteger(r)&&r>=1&&r<=L.length&&c(r-1)},{isActive:t.kind===`menu`}),s((e,n)=>{if(t.kind!==`confirm-archive`&&t.kind!==`confirm-overwrite`)return;if(n.escape){w({kind:`menu`});return}let r=e.toLowerCase();r===`y`||n.return?t.kind===`confirm-archive`?E(`archive`,t.store,void 0,void 0):E(`store`,t.store,t.key,t.value,{confirmedOverwrite:!0}):r===`n`&&w({kind:`menu`})},{isActive:t.kind===`confirm-archive`||t.kind===`confirm-overwrite`}),s((e,n)=>{if(!(t.kind!==`collect-store`&&t.kind!==`collect-key`&&t.kind!==`collect-value`)&&n.escape){if(t.kind===`collect-value`){w({kind:`collect-key`,action:t.action,store:t.store});return}if(t.kind===`collect-key`){w({kind:`collect-store`,action:t.action});return}w({kind:`menu`})}},{isActive:t.kind===`collect-store`||t.kind===`collect-key`||t.kind===`collect-value`}),t.kind===`menu`)return(0,P.jsx)(i,{title:`Local Memory`,subtitle:`${L.length} actions`,onCancel:()=>T(`Local memory panel dismissed`),color:`background`,hideInputGuide:!0,children:(0,P.jsxs)(o,{flexDirection:`column`,children:[L.map((e,t)=>(0,P.jsxs)(o,{flexDirection:`row`,children:[(0,P.jsx)(r,{children:`${t===a?`›`:` `} ${e.label}`.padEnd(I)}),(0,P.jsx)(r,{dimColor:!0,children:e.description})]},e.kind)),(0,P.jsx)(o,{marginTop:1,children:(0,P.jsx)(r,{dimColor:!0,children:`↑/↓ or 1-7 select · Enter run · Esc close`})})]})});if(t.kind===`confirm-archive`)return(0,P.jsx)(i,{title:`Confirm Archive`,onCancel:()=>w({kind:`menu`}),color:`warning`,hideInputGuide:!0,children:(0,P.jsxs)(o,{flexDirection:`column`,children:[(0,P.jsxs)(r,{children:[`Archive store "`,t.store,`"? This renames it to *.archived.`]}),(0,P.jsx)(o,{marginTop:1,children:(0,P.jsx)(r,{dimColor:!0,children:`y/Enter = archive · n/Esc = cancel`})})]})});if(t.kind===`confirm-overwrite`)return(0,P.jsx)(i,{title:`Confirm Overwrite`,onCancel:()=>w({kind:`menu`}),color:`warning`,hideInputGuide:!0,children:(0,P.jsxs)(o,{flexDirection:`column`,children:[(0,P.jsxs)(r,{children:[`Entry "`,t.store,`/`,t.key,`" already exists. Overwrite with new value (`,t.value.length,` chars)?`]}),(0,P.jsx)(o,{marginTop:1,children:(0,P.jsx)(r,{dimColor:!0,children:`y/Enter = overwrite · n/Esc = cancel`})})]})});let D=t.kind===`collect-store`?`STORE NAME`:t.kind===`collect-key`?`KEY NAME`:`VALUE`,O=t.kind===`collect-store`?`e.g. my-notes`:t.kind===`collect-key`?`e.g. todo-2026-05-08`:`free text`;return(0,P.jsx)(i,{title:`Local Memory · ${t.kind.replace(`collect-`,``).toUpperCase()}`,onCancel:()=>w({kind:`menu`}),color:`background`,hideInputGuide:!0,children:(0,P.jsxs)(o,{flexDirection:`column`,children:[(0,P.jsx)(o,{children:(0,P.jsx)(r,{dimColor:!0,children:D})}),(0,P.jsxs)(o,{children:[(0,P.jsx)(r,{children:`> `}),(0,P.jsx)(b,{value:l,onChange:e=>{_(e),C(null)},cursorOffset:y,onChangeCursorOffset:x,onSubmit:e=>{let n=e.trim();if(t.kind===`collect-store`){if(!n){C(`Store name required`);return}if(!m(n)){C(`Invalid store name (no /, \\, :, null byte, or leading dot; max 255 chars)`);return}t.action===`create`||t.action===`entries`||t.action===`archive`?t.action===`archive`?w({kind:`confirm-archive`,store:n}):E(t.action,n,void 0,void 0):w({kind:`collect-key`,action:t.action,store:n});return}if(t.kind===`collect-key`){if(!n){C(`Key required`);return}if(!f(n)){C(`Invalid key (allowed: letters/digits/._- only; no leading dot; not a Windows reserved name)`);return}t.action===`fetch`?E(`fetch`,t.store,n,void 0):w({kind:`collect-value`,action:`store`,store:t.store,key:n});return}t.kind===`collect-value`&&E(`store`,t.store,t.key,e)},placeholder:O,columns:70,showCursor:!0})]}),S!==null&&(0,P.jsx)(o,{marginTop:0,children:(0,P.jsxs)(r,{color:`warning`,children:[`✗ `,S]})}),(0,P.jsx)(o,{marginTop:1,children:(0,P.jsx)(r,{dimColor:!0,children:`Enter = next · Esc = back`})})]})})}async function M(e,t){if(e.action===`list`)return t(k(d()),{display:`system`}),null;if(e.action===`create`){let{store:n}=e;return p(n),t(`Store created: ${n}`,{display:`system`}),null}if(e.action===`store`){let{store:n,key:r,value:i}=e;return u(n,r,i),t(`Stored entry "${r}" in store "${n}".`,{display:`system`}),null}if(e.action===`fetch`){let{store:n,key:r}=e,i=g(n,r);return i===null?(t(`Entry not found: ${n}/${r}`,{display:`system`}),null):(t(`Entry fetched: ${n}/${r}\n${i}`,{display:`system`}),null)}if(e.action===`entries`){let{store:n}=e;return t(A(n,v(n)),{display:`system`}),null}if(e.action===`archive`){let{store:n}=e;return h(n),t(`Archived store: ${n}`,{display:`system`}),null}return t(F,{display:`system`}),null}var N,P,F,I,L,R,z;e((()=>{N=t(n(),1),a(),y(),_(),l(),T(),O(),S(),P=c(),F=`Usage: /local-memory list | create STORE | store STORE KEY VALUE | fetch STORE KEY | entries STORE | archive STORE`,I=26,L=[{kind:`list`,label:`List`,description:`Show all stores`},{kind:`create`,label:`Create`,description:`Create a new memory store`},{kind:`store`,label:`Store`,description:`Write an entry: store name + key + value`},{kind:`fetch`,label:`Fetch`,description:`Read an entry by store name + key`},{kind:`entries`,label:`Entries`,description:`List entry keys in a store`},{kind:`archive`,label:`Archive`,description:`Archive a store (rename to *.archived)`},{kind:`about`,label:`About`,description:`Show command syntax`}],R=x({commandName:`local-memory`,parseArgs:e=>{let t=E(e);return t.action===`invalid`?{action:`invalid`,reason:`${F}\n${t.reason}`}:t},dispatch:M,View:C,errorView:e=>N.createElement(C,{mode:`error`,message:e})}),z=async(e,t,n)=>(n??``).trim()===``?(0,P.jsx)(j,{onDone:e}):R(e,t,n)}))();export{z as callLocalMemory};
@@ -1,3 +1,3 @@
1
- import{n as e,o as t}from"./chunk-DR8-3Aex.js";import{Rn as n,b as r,f as i,t as a,x as o,xt as s}from"./src-Di342QoJ.js";import{t as c}from"./jsx-runtime-D-D469L8.js";import{Bx as l,Tf as u,df as d,ff as f,hf as p,mf as m,pf as h,uf as g,wf as _,zx as v}from"./loadAgentsDir-Cl2w3uvH.js";import{n as y,t as b}from"./launchCommand-Du91jxMC.js";function x(e){return e.mode===`list`?e.keys.length===0?(0,S.jsx)(o,{children:(0,S.jsx)(r,{dimColor:!0,children:`No secrets stored. Use /local-vault set <key> <value> to add one.`})}):(0,S.jsxs)(o,{flexDirection:`column`,children:[(0,S.jsx)(o,{marginBottom:1,children:(0,S.jsxs)(r,{bold:!0,children:[`Local Vault Keys (`,e.keys.length,`)`]})}),e.keys.map(e=>(0,S.jsxs)(o,{children:[(0,S.jsx)(r,{children:` `}),(0,S.jsx)(r,{color:`success`,children:`●`}),(0,S.jsxs)(r,{children:[` `,e]})]},e))]}):e.mode===`set-ok`?(0,S.jsxs)(o,{children:[(0,S.jsx)(r,{color:`success`,children:`✓`}),(0,S.jsx)(r,{children:` Secret stored: `}),(0,S.jsx)(r,{bold:!0,children:e.key}),(0,S.jsx)(r,{dimColor:!0,children:` = [REDACTED]`})]}):e.mode===`get-masked`?(0,S.jsxs)(o,{flexDirection:`column`,children:[(0,S.jsxs)(o,{children:[(0,S.jsx)(r,{bold:!0,children:e.key}),(0,S.jsx)(r,{dimColor:!0,children:`: `}),(0,S.jsx)(r,{children:e.masked})]}),(0,S.jsx)(o,{marginTop:1,children:(0,S.jsxs)(r,{dimColor:!0,children:[`Use /local-vault get `,e.key,` --reveal to see the full value.`]})})]}):e.mode===`get-revealed`?(0,S.jsxs)(o,{flexDirection:`column`,children:[(0,S.jsxs)(o,{children:[(0,S.jsx)(r,{bold:!0,children:e.key}),(0,S.jsx)(r,{dimColor:!0,children:`: `}),(0,S.jsx)(r,{color:`warning`,children:e.value})]}),(0,S.jsx)(o,{marginTop:1,children:(0,S.jsx)(r,{dimColor:!0,color:`warning`,children:`⚠ Secret revealed in terminal — clear scrollback if this session is shared.`})})]}):e.mode===`not-found`?(0,S.jsxs)(o,{children:[(0,S.jsx)(r,{color:`error`,children:`Key not found: `}),(0,S.jsx)(r,{bold:!0,children:e.key})]}):e.mode===`deleted`?(0,S.jsxs)(o,{children:[(0,S.jsx)(r,{color:`success`,children:`✓`}),(0,S.jsx)(r,{children:` Deleted: `}),(0,S.jsx)(r,{bold:!0,children:e.key})]}):(0,S.jsx)(o,{children:(0,S.jsxs)(r,{color:`error`,children:[`Error: `,e.message]})})}var S,C=e((()=>{n(),a(),S=c()}));function w(e){let t=e.trim();if(t===``||t===`list`)return{action:`list`};let n=t.split(/\s+/),r=n[0];if(r===`list`)return{action:`list`};if(r===`set`){let e=n[1];if(!e)return{action:`invalid`,reason:`set requires a key name. ${T}`};if(E.test(e))return{action:`invalid`,reason:`Key name must not start with "-" or a hyphen-like character (reserved for flags). ${T}`};let t=n.slice(2).join(` `);return t?{action:`set`,key:e,value:t}:{action:`invalid`,reason:`set requires a value. ${T}`}}if(r===`get`){let e=[`--reveal`],t=n.filter(t=>!e.includes(t))[1];return t?{action:`get`,key:t,reveal:n.includes(`--reveal`)}:{action:`invalid`,reason:`get requires a key name. ${T}`}}if(r===`delete`){let e=n[1];return e?{action:`delete`,key:e}:{action:`invalid`,reason:`delete requires a key name. ${T}`}}return{action:`invalid`,reason:`Unknown sub-command "${r}". ${T}`}}var T,E,D=e((()=>{T=`Usage: /local-vault list | set KEY VALUE | get KEY [--reveal] | delete KEY`,E=/^[-‐-―−﹘﹣-]/}));function O(e){return e.length===0?`No secrets stored.`:[`Local Vault Keys`,...e.map(e=>`- ${e}`)].join(`
1
+ import{n as e,o as t}from"./chunk-DR8-3Aex.js";import{Rn as n,b as r,f as i,t as a,x as o,xt as s}from"./src-Di342QoJ.js";import{t as c}from"./jsx-runtime-D-D469L8.js";import{Bx as l,Tf as u,df as d,ff as f,hf as p,mf as m,pf as h,uf as g,wf as _,zx as v}from"./loadAgentsDir-D-xcJ22-.js";import{n as y,t as b}from"./launchCommand-Du91jxMC.js";function x(e){return e.mode===`list`?e.keys.length===0?(0,S.jsx)(o,{children:(0,S.jsx)(r,{dimColor:!0,children:`No secrets stored. Use /local-vault set <key> <value> to add one.`})}):(0,S.jsxs)(o,{flexDirection:`column`,children:[(0,S.jsx)(o,{marginBottom:1,children:(0,S.jsxs)(r,{bold:!0,children:[`Local Vault Keys (`,e.keys.length,`)`]})}),e.keys.map(e=>(0,S.jsxs)(o,{children:[(0,S.jsx)(r,{children:` `}),(0,S.jsx)(r,{color:`success`,children:`●`}),(0,S.jsxs)(r,{children:[` `,e]})]},e))]}):e.mode===`set-ok`?(0,S.jsxs)(o,{children:[(0,S.jsx)(r,{color:`success`,children:`✓`}),(0,S.jsx)(r,{children:` Secret stored: `}),(0,S.jsx)(r,{bold:!0,children:e.key}),(0,S.jsx)(r,{dimColor:!0,children:` = [REDACTED]`})]}):e.mode===`get-masked`?(0,S.jsxs)(o,{flexDirection:`column`,children:[(0,S.jsxs)(o,{children:[(0,S.jsx)(r,{bold:!0,children:e.key}),(0,S.jsx)(r,{dimColor:!0,children:`: `}),(0,S.jsx)(r,{children:e.masked})]}),(0,S.jsx)(o,{marginTop:1,children:(0,S.jsxs)(r,{dimColor:!0,children:[`Use /local-vault get `,e.key,` --reveal to see the full value.`]})})]}):e.mode===`get-revealed`?(0,S.jsxs)(o,{flexDirection:`column`,children:[(0,S.jsxs)(o,{children:[(0,S.jsx)(r,{bold:!0,children:e.key}),(0,S.jsx)(r,{dimColor:!0,children:`: `}),(0,S.jsx)(r,{color:`warning`,children:e.value})]}),(0,S.jsx)(o,{marginTop:1,children:(0,S.jsx)(r,{dimColor:!0,color:`warning`,children:`⚠ Secret revealed in terminal — clear scrollback if this session is shared.`})})]}):e.mode===`not-found`?(0,S.jsxs)(o,{children:[(0,S.jsx)(r,{color:`error`,children:`Key not found: `}),(0,S.jsx)(r,{bold:!0,children:e.key})]}):e.mode===`deleted`?(0,S.jsxs)(o,{children:[(0,S.jsx)(r,{color:`success`,children:`✓`}),(0,S.jsx)(r,{children:` Deleted: `}),(0,S.jsx)(r,{bold:!0,children:e.key})]}):(0,S.jsx)(o,{children:(0,S.jsxs)(r,{color:`error`,children:[`Error: `,e.message]})})}var S,C=e((()=>{n(),a(),S=c()}));function w(e){let t=e.trim();if(t===``||t===`list`)return{action:`list`};let n=t.split(/\s+/),r=n[0];if(r===`list`)return{action:`list`};if(r===`set`){let e=n[1];if(!e)return{action:`invalid`,reason:`set requires a key name. ${T}`};if(E.test(e))return{action:`invalid`,reason:`Key name must not start with "-" or a hyphen-like character (reserved for flags). ${T}`};let t=n.slice(2).join(` `);return t?{action:`set`,key:e,value:t}:{action:`invalid`,reason:`set requires a value. ${T}`}}if(r===`get`){let e=[`--reveal`],t=n.filter(t=>!e.includes(t))[1];return t?{action:`get`,key:t,reveal:n.includes(`--reveal`)}:{action:`invalid`,reason:`get requires a key name. ${T}`}}if(r===`delete`){let e=n[1];return e?{action:`delete`,key:e}:{action:`invalid`,reason:`delete requires a key name. ${T}`}}return{action:`invalid`,reason:`Unknown sub-command "${r}". ${T}`}}var T,E,D=e((()=>{T=`Usage: /local-vault list | set KEY VALUE | get KEY [--reveal] | delete KEY`,E=/^[-‐-―−﹘﹣-]/}));function O(e){return e.length===0?`No secrets stored.`:[`Local Vault Keys`,...e.map(e=>`- ${e}`)].join(`
2
2
  `)}function k({onDone:e}){let[t,n]=j.useState({kind:`menu`}),[a,c]=j.useState(0),[l,f]=j.useState(``),[_,y]=j.useState(0),[b,x]=j.useState(null),[S,C]=j.useState(!1),w=j.useCallback(e=>{n(e),f(``),y(0),x(null)},[]),T=j.useCallback(t=>e(t,{display:`system`}),[e]);s((e,n)=>{if(t.kind!==`menu`||S)return;if(n.upArrow){c(e=>Math.max(0,e-1));return}if(n.downArrow){c(e=>Math.min(F.length-1,e+1));return}if(n.return){let e=F[a];if(!e)return;if(e.kind===`about`){T(N);return}if(e.kind===`list`){C(!0),h().then(e=>{T(O(e))});return}w({kind:`collect-key`,action:e.kind});return}let r=Number(e);Number.isInteger(r)&&r>=1&&r<=F.length&&c(r-1)},{isActive:t.kind===`menu`&&!S}),s((e,n)=>{if(t.kind!==`confirm-overwrite`&&t.kind!==`confirm-delete`)return;if(n.escape){w({kind:`menu`});return}let r=e.toLowerCase();if(r===`y`||n.return)if(t.kind===`confirm-delete`){C(!0);let e=t.key;g(e).then(t=>{T(t?`Deleted: ${e}`:`Key not found: ${e}`)})}else{C(!0);let e=t.key,n=t.value;p(e,n).then(()=>T(`Secret stored: ${e} = [REDACTED]`)).catch(t=>T(`Failed to store ${e}: ${t instanceof Error?t.message:String(t)}`))}else r===`n`&&w({kind:`menu`})},{isActive:(t.kind===`confirm-overwrite`||t.kind===`confirm-delete`)&&!S}),s((e,n)=>{if(!(t.kind!==`collect-key`&&t.kind!==`collect-value`)&&n.escape){if(t.kind===`collect-value`){w({kind:`collect-key`,action:`set`});return}w({kind:`menu`})}},{isActive:(t.kind===`collect-key`||t.kind===`collect-value`)&&!S});let E=e=>{let n=e.trim();if(!n){x(`Key required`);return}if(!u(n)){x(`Invalid key (allowed: letters/digits/._- only; no leading dot; not a Windows reserved name)`);return}if(t.kind===`collect-key`){if(t.action===`get`){C(!0),d(n).then(e=>{T(e===null?`Key not found: ${n}`:`Key found: ${n} = ${m(e)}`)});return}if(t.action===`delete`){w({kind:`confirm-delete`,key:n});return}if(t.action===`set`){w({kind:`collect-value`,key:n});return}}},D=e=>{if(t.kind!==`collect-value`)return;if(e.length===0){x(`Secret value cannot be empty`);return}let n=t.key;C(!0),d(n).then(t=>{if(t!==null){C(!1),w({kind:`confirm-overwrite`,key:n,value:e});return}return p(n,e).then(()=>T(`Secret stored: ${n} = [REDACTED]`))}).catch(e=>T(`Failed to store ${n}: ${e instanceof Error?e.message:String(e)}`))};if(t.kind===`menu`)return(0,M.jsx)(i,{title:`Local Vault`,subtitle:`${F.length} actions`,onCancel:()=>T(`Local vault panel dismissed`),color:`background`,hideInputGuide:!0,children:(0,M.jsxs)(o,{flexDirection:`column`,children:[F.map((e,t)=>(0,M.jsxs)(o,{flexDirection:`row`,children:[(0,M.jsx)(r,{children:`${t===a?`›`:` `} ${e.label}`.padEnd(P)}),(0,M.jsx)(r,{dimColor:!0,children:e.description})]},e.kind)),S&&(0,M.jsx)(o,{marginTop:1,children:(0,M.jsx)(r,{dimColor:!0,children:`Working...`})}),(0,M.jsx)(o,{marginTop:1,children:(0,M.jsx)(r,{dimColor:!0,children:`↑/↓ or 1-5 select · Enter run · Esc close`})})]})});if(t.kind===`confirm-delete`)return(0,M.jsx)(i,{title:`Confirm Delete`,onCancel:()=>w({kind:`menu`}),color:`warning`,hideInputGuide:!0,children:(0,M.jsxs)(o,{flexDirection:`column`,children:[(0,M.jsxs)(r,{children:[`Delete secret "`,t.key,`"? This cannot be undone.`]}),(0,M.jsx)(o,{marginTop:1,children:(0,M.jsx)(r,{dimColor:!0,children:`y/Enter = delete · n/Esc = cancel`})}),S&&(0,M.jsx)(r,{dimColor:!0,children:`Deleting...`})]})});if(t.kind===`confirm-overwrite`)return(0,M.jsx)(i,{title:`Confirm Overwrite`,onCancel:()=>w({kind:`menu`}),color:`warning`,hideInputGuide:!0,children:(0,M.jsxs)(o,{flexDirection:`column`,children:[(0,M.jsxs)(r,{children:[`Secret "`,t.key,`" already exists. Overwrite? Old value is lost.`]}),(0,M.jsx)(o,{marginTop:1,children:(0,M.jsx)(r,{dimColor:!0,children:`y/Enter = overwrite · n/Esc = cancel`})}),S&&(0,M.jsx)(r,{dimColor:!0,children:`Storing...`})]})});let k=t.kind===`collect-key`?`KEY NAME`:`SECRET VALUE`,A=t.kind===`collect-key`?`e.g. github-token`:`(masked input — value never displayed)`,I=t.kind===`collect-key`?E:D,L=t.kind===`collect-value`;return(0,M.jsx)(i,{title:`Local Vault · ${t.kind===`collect-key`?`KEY`:`VALUE`}`,onCancel:()=>w({kind:`menu`}),color:`background`,hideInputGuide:!0,children:(0,M.jsxs)(o,{flexDirection:`column`,children:[(0,M.jsx)(o,{children:(0,M.jsx)(r,{dimColor:!0,children:k})}),(0,M.jsxs)(o,{children:[(0,M.jsx)(r,{children:`> `}),(0,M.jsx)(v,{value:l,onChange:e=>{f(e),x(null)},cursorOffset:_,onChangeCursorOffset:y,onSubmit:I,placeholder:A,columns:70,showCursor:!0,mask:L?`*`:void 0})]}),b!==null&&(0,M.jsx)(o,{marginTop:0,children:(0,M.jsxs)(r,{color:`warning`,children:[`✗ `,b]})}),S&&(0,M.jsx)(o,{marginTop:0,children:(0,M.jsx)(r,{dimColor:!0,children:`Working...`})}),(0,M.jsx)(o,{marginTop:1,children:(0,M.jsx)(r,{dimColor:!0,children:`Enter = next · Esc = back`})})]})})}async function A(e,t){if(e.action===`list`)return t(O(await h()),{display:`system`}),null;if(e.action===`set`){let{key:n,value:r}=e;return await p(n,r),t(`Secret stored: ${n} = [REDACTED]`,{display:`system`}),null}if(e.action===`get`){let{key:n,reveal:r}=e,i=await d(n);return i===null?(t(`Key not found: ${n}`,{display:`system`}),null):r?(t([`Secret revealed for: ${n}`,`Warning: secret revealed in terminal.`,`${n} = ${i}`].join(`
3
3
  `),{display:`system`}),null):(t(`Key found: ${n} = ${m(i)}`,{display:`system`}),null)}if(e.action===`delete`){let{key:n}=e;return await g(n)?(t(`Deleted: ${n}`,{display:`system`}),null):(t(`Key not found: ${n}`,{display:`system`}),null)}return t(N,{display:`system`}),null}var j,M,N,P,F,I,L;e((()=>{j=t(n(),1),a(),f(),_(),l(),C(),D(),b(),M=c(),N=`Usage: /local-vault list | set KEY VALUE | get KEY [--reveal] | delete KEY`,P=26,F=[{kind:`list`,label:`List`,description:`Show stored secret keys`},{kind:`set`,label:`Set`,description:`Store a secret: KEY + VALUE (input is masked)`},{kind:`get`,label:`Get`,description:`Look up a secret (returns masked preview)`},{kind:`delete`,label:`Delete`,description:`Delete a stored secret by KEY`},{kind:`about`,label:`About`,description:`Show command syntax`}],I=y({commandName:`local-vault`,parseArgs:e=>{let t=w(e);return t.action===`invalid`?{action:`invalid`,reason:`${N}\n${t.reason}`}:t},dispatch:A,View:x,errorView:e=>j.createElement(x,{mode:`error`,message:e})}),L=async(e,t,n)=>(n??``).trim()===``?(0,M.jsx)(k,{onDone:e}):I(e,t,n)}))();export{L as callLocalVault};