@readmagic/workmate 0.0.8 → 0.0.9

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 (501) hide show
  1. package/dist/chunks/AddWorkspaceDirectory-qFZy3FOD.js +1 -0
  2. package/dist/chunks/App-DW4elk6E.js +1 -0
  3. package/dist/chunks/ApproveApiKey-D05WywHU.js +1 -0
  4. package/dist/chunks/ApproveApiKey-DHAbdwkC.js +1 -0
  5. package/dist/chunks/BackgroundTasksDialog-QgFwoaaC.js +2 -0
  6. package/dist/chunks/BypassPermissionsModeDialog-BuRFF1fQ.js +1 -0
  7. package/dist/chunks/ClaudeMdExternalIncludesDialog-CDrArsSX.js +1 -0
  8. package/dist/chunks/ClaudeMdExternalIncludesDialog-DpecRCAt.js +1 -0
  9. package/dist/chunks/ConsoleOAuthFlow-D1MYL1dJ.js +1 -0
  10. package/dist/chunks/DiffDialog-BIcwpgSr.js +6 -0
  11. package/dist/chunks/Doctor-D160J8Ad.js +3 -0
  12. package/dist/chunks/Doctor-VhJi2cmL.js +1 -0
  13. package/dist/chunks/ExitFlow-CoWHhKHJ.js +2 -0
  14. package/dist/chunks/Grove-BmirUB6V.js +11 -0
  15. package/dist/chunks/{HybridTransport-BJPOG2wl.js → HybridTransport-BVmSUHf0.js} +1 -1
  16. package/dist/chunks/InvalidConfigDialog-WRywkKeS.js +1 -0
  17. package/dist/chunks/InvalidSettingsDialog-C4n3A72C.js +1 -0
  18. package/dist/chunks/MCPConnectionManager-DPFe4hPh.js +1 -0
  19. package/dist/chunks/MCPToolListView-BPmE0C2o.js +1 -0
  20. package/dist/chunks/McpParsingWarnings-CH4yyMAL.js +1 -0
  21. package/dist/chunks/MessageSelector-kOn2GaU-.js +3 -0
  22. package/dist/chunks/Messages-4EnHFeh1.js +11 -0
  23. package/dist/chunks/Onboarding-BboWs1pp.js +1 -0
  24. package/dist/chunks/{PermissionDialog-0ya1CU5k.js → PermissionDialog-Cb3z8OUP.js} +1 -1
  25. package/dist/chunks/{PressEnterToContinue-Dl9Hg9Mf.js → PressEnterToContinue-Dq0Imo9c.js} +1 -1
  26. package/dist/chunks/PromptInputFooterSuggestions-BpC9COmh.js +1 -0
  27. package/dist/chunks/PromptInputHelpMenu-BvcAzbSi.js +1 -0
  28. package/dist/chunks/QueryEngine-J6ElcO16.js +1 -0
  29. package/dist/chunks/REPL-DBjbAJsm.js +133 -0
  30. package/dist/chunks/REPL-oBemMXvp.js +1 -0
  31. package/dist/chunks/RemoteSessionManager-CoIyFKKa.js +2 -0
  32. package/dist/chunks/ResumeConversation-wBG8OD9P.js +1 -0
  33. package/dist/chunks/{SSETransport-CrwbKuVt.js → SSETransport-1KBBUikF.js} +1 -1
  34. package/dist/chunks/{SearchBox-vfLXEPed.js → SearchBox-C9vUA4IM.js} +1 -1
  35. package/dist/chunks/SearchExtraToolsTool-BugrzImr.js +1 -0
  36. package/dist/chunks/Settings-DptKuJE7.js +2 -0
  37. package/dist/chunks/TeleportProgress-BmgPAZAi.js +1 -0
  38. package/dist/chunks/TeleportRepoMismatchDialog-sgxNOeM_.js +1 -0
  39. package/dist/chunks/TeleportResumeWrapper-GptvrUdv.js +1 -0
  40. package/dist/chunks/ThemePicker-gAMqqD1P.js +1 -0
  41. package/dist/chunks/{TrustDialog-BukWGvHZ.js → TrustDialog-CWt-4Evl.js} +1 -1
  42. package/dist/chunks/{ValidationErrorsList-DokTJQwi.js → ValidationErrorsList-De3kzHtz.js} +1 -1
  43. package/dist/chunks/{WelcomeV2-Ci9VwPYh.js → WelcomeV2-BWF-cJOu.js} +1 -1
  44. package/dist/chunks/add-dir-DBVT1cEK.js +1 -0
  45. package/dist/chunks/{agentDisplay-DBQYOaOh.js → agentDisplay-5gnCQwUY.js} +1 -1
  46. package/dist/chunks/{agents-HlKk68Qc.js → agents-Bz1MLp4A.js} +1 -1
  47. package/dist/chunks/agents-CnwTOlqO.js +103 -0
  48. package/dist/chunks/allErrors-DYw_q14e.js +1 -0
  49. package/dist/chunks/analytics-DJobLaWP.js +1 -0
  50. package/dist/chunks/api-DXDXTFGa.js +1 -0
  51. package/dist/chunks/{api-CF5IVtj0.js → api-DzccRM_z.js} +1 -1
  52. package/dist/chunks/auth-Cjnyy10u.js +15 -0
  53. package/dist/chunks/auth-CnLb6RWc.js +1 -0
  54. package/dist/chunks/auth-D-SGHS0K.js +1 -0
  55. package/dist/chunks/{autoMode-Cr0AhS1G.js → autoMode-CQ5nqP9c.js} +4 -4
  56. package/dist/chunks/{autonomy-ARUQt-Lu.js → autonomy-CPUCe-YU.js} +1 -1
  57. package/dist/chunks/autonomy-dSJl0hN1.js +15 -0
  58. package/dist/chunks/{autonomyPanel-BQK9MoeB.js → autonomyPanel-Ccr9ilei.js} +1 -1
  59. package/dist/chunks/backgroundHousekeeping--cs5crp7.js +17 -0
  60. package/dist/chunks/backgroundHousekeeping-CcbHitKC.js +1 -0
  61. package/dist/chunks/{banner-Ca7rki2V.js → banner-BJZNMppT.js} +1 -1
  62. package/dist/chunks/bg-DWloqGwk.js +1 -0
  63. package/dist/chunks/{bg-DxRHF1yn.js → bg-w3Vlsm3Y.js} +2 -2
  64. package/dist/chunks/branch-CG0AKS1J.js +3 -0
  65. package/dist/chunks/{break-cache-BKvoMOZx.js → break-cache-DXV0brco.js} +2 -2
  66. package/dist/chunks/bridgeConfig-Dmc1ZDev.js +1 -0
  67. package/dist/chunks/{bridgeConfig-jDEva6Eh.js → bridgeConfig-vORehbGG.js} +1 -1
  68. package/dist/chunks/{bridgeMessaging-YqYdl6ej.js → bridgeMessaging-DlczTV9X.js} +1 -1
  69. package/dist/chunks/{bridgePointer-DIM0sj0x.js → bridgePointer-D4W9GpWw.js} +1 -1
  70. package/dist/chunks/btw-DDUC_t0w.js +1 -0
  71. package/dist/chunks/caches-1IFb6_M_.js +1 -0
  72. package/dist/chunks/caches-CB8MHqy2.js +1 -0
  73. package/dist/chunks/{capacityWake-CKOiRELo.js → capacityWake-L7b1mMft.js} +1 -1
  74. package/dist/chunks/{ccrClient-BC2q3k44.js → ccrClient-CG6HTv_n.js} +1 -1
  75. package/dist/chunks/{claudeDesktop-DQXL5bGm.js → claudeDesktop-CAmnheYx.js} +1 -1
  76. package/dist/chunks/{clear-1etSJhdg.js → clear-DdWexxbM.js} +1 -1
  77. package/dist/chunks/{cliLaunch-CQjLYRzM.js → cliLaunch-BWWOgBFh.js} +1 -1
  78. package/dist/chunks/{client-DQwf_b9o.js → client-CoXtVRzi.js} +1 -1
  79. package/dist/chunks/client-Crrwkw7g.js +1 -0
  80. package/dist/chunks/client-D8hKghba.js +1 -0
  81. package/dist/chunks/color-Cuq0c6xy.js +1 -0
  82. package/dist/chunks/commands-D3sESsTp.js +1 -0
  83. package/dist/chunks/compact-DIpwuBDq.js +2 -0
  84. package/dist/chunks/config-CVvUNkj2.js +1 -0
  85. package/dist/chunks/config-D4G8_MqJ.js +3 -0
  86. package/dist/chunks/config-q9D4hFiK.js +1 -0
  87. package/dist/chunks/context-BWcfhhDj.js +1 -0
  88. package/dist/chunks/context-noninteractive-Bwt9A3XD.js +1 -0
  89. package/dist/chunks/{context-noninteractive-Ct_ttQfP.js → context-noninteractive-c7jGVWHQ.js} +2 -2
  90. package/dist/chunks/conversation-Bjo_8kia.js +1 -0
  91. package/dist/chunks/conversation-DrHZIQX2.js +1 -0
  92. package/dist/chunks/{createSSHSession-BmHXA2me.js → createSSHSession-DP7B8yvb.js} +1 -1
  93. package/dist/chunks/{createSession-C4rukWkv.js → createSession-CPo6GBSb.js} +1 -1
  94. package/dist/chunks/createSession-DnykRoia.js +1 -0
  95. package/dist/chunks/crossProjectResume-D2A-qjgP.js +40 -0
  96. package/dist/chunks/cwd--q1ONL7P.js +1 -0
  97. package/dist/chunks/{cwd-C5ce-7WB.js → cwd-L4wygFqJ.js} +1 -1
  98. package/dist/chunks/{daemon-ZtpTZWgQ.js → daemon-D2vFIVOz.js} +1 -1
  99. package/dist/chunks/datadog-DrmHyl3_.js +1 -0
  100. package/dist/chunks/{debug-RZ4NuXyS.js → debug-BdqxZ7rV.js} +4 -4
  101. package/dist/chunks/{debugUtils-D30M1cbN.js → debugUtils-CezNYZ-4.js} +1 -1
  102. package/dist/chunks/{detached-jrVP11oU.js → detached-CkPpYMJj.js} +1 -1
  103. package/dist/chunks/detectRepository-DA1Q_Skc.js +1 -0
  104. package/dist/chunks/{detectRepository-CFiHe6Rv.js → detectRepository-DvxoaPlk.js} +1 -1
  105. package/dist/chunks/{diff-BKiK3xHv.js → diff-DHzz9WAp.js} +1 -1
  106. package/dist/chunks/directoryCompletion-D5AvL7TF.js +1 -0
  107. package/dist/chunks/doctor-PWqB46xd.js +1 -0
  108. package/dist/chunks/entry-4JtoJONR.js +14 -0
  109. package/dist/chunks/envUtils-BDhHQY0-.js +1 -0
  110. package/dist/chunks/{esm-BLPbfHQd.js → esm-DcIr7tVd.js} +1 -1
  111. package/dist/chunks/{execFileNoThrow-CCX-JY8h.js → execFileNoThrow-5SylUnAI.js} +1 -1
  112. package/dist/chunks/{execSyncWrapper-dhRSYGFW.js → execSyncWrapper-DKuxVTaf.js} +1 -1
  113. package/dist/chunks/exit-OW9g7b9A.js +1 -0
  114. package/dist/chunks/extraUsage-Dt5mw35U.js +1 -0
  115. package/dist/chunks/extractMemories-1VlmCGwa.js +1 -0
  116. package/dist/chunks/fast-ClYQcEv5.js +1 -0
  117. package/dist/chunks/fast-CrvLdpy3.js +1 -0
  118. package/dist/chunks/fileSuggestions-fNxREjpe.js +3 -0
  119. package/dist/chunks/firstPartyEventLogger-BBXEQUf0.js +1 -0
  120. package/dist/chunks/firstPartyEventLogger-DhEPWcit.js +5 -0
  121. package/dist/chunks/{flushGate-Cnsu4HET.js → flushGate-ch-Tvwjj.js} +1 -1
  122. package/dist/chunks/{fpsMetrics-Cf_hdtiJ.js → fpsMetrics-DffAomdg.js} +1 -1
  123. package/dist/chunks/{gemini-Cudre91e.js → gemini-fZ0VPU2A.js} +1 -1
  124. package/dist/chunks/generateRecap-BIBVlB__.js +1 -0
  125. package/dist/chunks/generateSessionName-nZj_VvKZ.js +1 -0
  126. package/dist/chunks/{genericProcessUtils-DVfMHhfy.js → genericProcessUtils-BmDSLcMf.js} +1 -1
  127. package/dist/chunks/{git-BerW9bId.js → git-B9uvt96d.js} +1 -1
  128. package/dist/chunks/git-BfS5Hk4S.js +1 -0
  129. package/dist/chunks/githubRepoPathMapping-Cqx3pSfc.js +1 -0
  130. package/dist/chunks/goal-IasZVqKh.js +3 -0
  131. package/dist/chunks/grok-Dk3LyzMa.js +1 -0
  132. package/dist/chunks/grove-BE4fQ6tG.js +7 -0
  133. package/dist/chunks/help-D2-v9Ug9.js +1 -0
  134. package/dist/chunks/{hooks-BZJTWD07.js → hooks-BrKy5XWQ.js} +2 -2
  135. package/dist/chunks/hooks-DGd02IKF.js +1 -0
  136. package/dist/chunks/initReplBridge-RhCAlmHE.js +1 -0
  137. package/dist/chunks/{install-BI---dv0.js → install-CVGZ55wV.js} +1 -1
  138. package/dist/chunks/{instrumentation-CcWzhGfE.js → instrumentation-BmWotlxR.js} +4 -4
  139. package/dist/chunks/{job-B0ftcqPF.js → job-DEXxW_Zo.js} +1 -1
  140. package/dist/chunks/{jwtUtils-C0cE-1Ey.js → jwtUtils-C9sdGhvT.js} +1 -1
  141. package/dist/chunks/keybindings-BRdSOSUD.js +2 -0
  142. package/dist/chunks/language-C0cIpKE2.js +1 -0
  143. package/dist/chunks/{language-s-dLbdVz.js → language-CxThoWRC.js} +1 -1
  144. package/dist/chunks/launchLocalMemory-CLSSVFoj.js +3 -0
  145. package/dist/chunks/launchOnboarding-BkJfKviO.js +8 -0
  146. package/dist/chunks/loadAgentsDir-8UprzS4w.js +1 -0
  147. package/dist/chunks/{loadAgentsDir-ByO8eJqU.js → loadAgentsDir-CKSb56Gp.js} +673 -759
  148. package/dist/chunks/loadPluginHooks-LbaURHVH.js +1 -0
  149. package/dist/chunks/{localSearch-CHHCH16D.js → localSearch-CPOnyi8I.js} +1 -1
  150. package/dist/chunks/localSearch-DNjbr4S9.js +1 -0
  151. package/dist/chunks/{log-CZ0zYP_c.js → log-CTFl4qpD.js} +1 -1
  152. package/dist/chunks/logoV2Utils-we1sfJvf.js +1 -0
  153. package/dist/chunks/{magicDocs-C5i5ruuU.js → magicDocs-DmKlTQvK.js} +3 -3
  154. package/dist/chunks/main-BIiwW4mM.js +605 -0
  155. package/dist/chunks/{main-BLD4QAQg.js → main-ClXu1ilx.js} +2 -2
  156. package/dist/chunks/{managedEnv-C-9XSN14.js → managedEnv-Cl7YbYzf.js} +1 -1
  157. package/dist/chunks/managedEnv-CpiiQx_v.js +1 -0
  158. package/dist/chunks/{mappers-CHRFic5q.js → mappers-xQC-Z4-h.js} +1 -1
  159. package/dist/chunks/mcp-B_m1XBDt.js +6 -0
  160. package/dist/chunks/mcp-BiyfH9Sd.js +1 -0
  161. package/dist/chunks/mcp-BjlaPUWX.js +2 -0
  162. package/dist/chunks/{memoize-B8hfb1JN.js → memoize-FJv2HV1u.js} +1 -1
  163. package/dist/chunks/memory-LN8f_p2b.js +1 -0
  164. package/dist/chunks/{modalContext-DFjKLCB6.js → modalContext-CUThy6Ph.js} +1 -1
  165. package/dist/chunks/mode-lYTs0XHs.js +2 -0
  166. package/dist/chunks/model-C2e73CJD.js +1 -0
  167. package/dist/chunks/model-CvmS-Esk.js +1 -0
  168. package/dist/chunks/model-DJ8mFfuR.js +1 -0
  169. package/dist/chunks/modelOptions-efCGKnXT.js +1 -0
  170. package/dist/chunks/nativeInstaller-DQIFwdat.js +1 -0
  171. package/dist/chunks/oauth-BN2I0_jl.js +1 -0
  172. package/dist/chunks/oauth-C9VBDB0Y.js +1 -0
  173. package/dist/chunks/omit-CLPZGevl.js +1 -0
  174. package/dist/chunks/onChangeAppState-DhBO34OK.js +1 -0
  175. package/dist/chunks/{openai-DPH6rXOZ.js → openai-DJLYqiRl.js} +2 -2
  176. package/dist/chunks/{panel-mD094ALT.js → panel-q0_iT9cg.js} +1 -1
  177. package/dist/chunks/panelCall-sum-3zvi.js +1 -0
  178. package/dist/chunks/parser-BcdhBGx0.js +1 -0
  179. package/dist/chunks/{parser-dbHRgXb8.js → parser-BdCj2GrE.js} +1 -1
  180. package/dist/chunks/partition-CpfoVrg1.js +1 -0
  181. package/dist/chunks/permissions-DTb9wkAP.js +3 -0
  182. package/dist/chunks/pidLock-BR5M6RQw.js +3 -0
  183. package/dist/chunks/{pipeTransport-DVOKR4c_.js → pipeTransport-B3TIkTAp.js} +1 -1
  184. package/dist/chunks/plan-BeoIjNPv.js +1 -0
  185. package/dist/chunks/{platform-DCXXznJg.js → platform-D6IMiyqT.js} +1 -1
  186. package/dist/chunks/plugin-D_dHjTud.js +17 -0
  187. package/dist/chunks/pluginAutoupdate-BHKlOOXI.js +1 -0
  188. package/dist/chunks/pluginBlocklist-D93Hd1GF.js +1 -0
  189. package/dist/chunks/pluginCliCommands-vv0wNt4O.js +1 -0
  190. package/dist/chunks/{pluginFlagging-pBxSselw.js → pluginFlagging-CxuRF2Vc.js} +1 -1
  191. package/dist/chunks/pluginOperations-BTq4AjYB.js +2 -0
  192. package/dist/chunks/{pluginStartupCheck-Di4LjHXf.js → pluginStartupCheck-B6leNWq9.js} +1 -1
  193. package/dist/chunks/pluginStartupCheck-DBOCHUHQ.js +1 -0
  194. package/dist/chunks/plugins-pmipe7kE.js +4 -0
  195. package/dist/chunks/{poorMode-CYXmr_mU.js → poorMode-BxsyllUK.js} +1 -1
  196. package/dist/chunks/poorMode-iV1NwC5L.js +1 -0
  197. package/dist/chunks/print-CAUvczBM.js +23 -0
  198. package/dist/chunks/processBashCommand-CdeQg_c6.js +1 -0
  199. package/dist/chunks/processSlashCommand-CbkshIC6.js +5 -0
  200. package/dist/chunks/{projectContext-D9MDwJUF.js → projectContext-CIxul6vA.js} +1 -1
  201. package/dist/chunks/{projectContext-BaDZBAoK.js → projectContext-RUMJB798.js} +1 -1
  202. package/dist/chunks/prompt-CybUvG8G.js +139 -0
  203. package/dist/chunks/prompt-RBn4JdEg.js +1 -0
  204. package/dist/chunks/prompt-Rb8zXlDo.js +1 -0
  205. package/dist/chunks/promptEditor-0Ug93P2I.js +4 -0
  206. package/dist/chunks/{protocolHandler-RNKkhq91.js → protocolHandler-ClfbHTjI.js} +1 -1
  207. package/dist/chunks/{proxy-BmtEnJ02.js → proxy-Blq4W6Ox.js} +1 -1
  208. package/dist/chunks/reconciler-Drq3HSkj.js +4 -0
  209. package/dist/chunks/refresh-D8TLHO_T.js +1 -0
  210. package/dist/chunks/{registerProtocol-DoKqmqu2.js → registerProtocol-3_ozAuDK.js} +1 -1
  211. package/dist/chunks/reload-plugins-Dn1ibOiI.js +1 -0
  212. package/dist/chunks/{remoteBridgeCore-Cddqv2WW.js → remoteBridgeCore-Dpg6Se9C.js} +1 -1
  213. package/dist/chunks/remoteManagedSettings-CCrq-qL-.js +1 -0
  214. package/dist/chunks/rename-CKsSc7Z3.js +1 -0
  215. package/dist/chunks/{renderOptions-ChLwxtVu.js → renderOptions-CLcco6fc.js} +1 -1
  216. package/dist/chunks/replBridgeHandle-DNC797_T.js +1 -0
  217. package/dist/chunks/resume-B1a5gLVR.js +2 -0
  218. package/dist/chunks/ripgrep-BisRODQ2.js +1 -0
  219. package/dist/chunks/{ripgrep-gaT9Njwi.js → ripgrep-DkL2S7-I.js} +1 -1
  220. package/dist/chunks/{runtimeObserver-CsIwinzh.js → runtimeObserver-B0xfyLiA.js} +1 -1
  221. package/dist/chunks/{runtimeObserver-Dbxxw4ls.js → runtimeObserver-DonWCJOx.js} +4 -4
  222. package/dist/chunks/sandbox-adapter-BnBOSkKJ.js +1 -0
  223. package/dist/chunks/sandbox-toggle-CSdnHWp-.js +1 -0
  224. package/dist/chunks/searchExtraTools-DbgfnQkH.js +1 -0
  225. package/dist/chunks/session-BbQlh2S5.js +2 -0
  226. package/dist/chunks/sessionFileAccessHooks-Xfr1NiXG.js +1 -0
  227. package/dist/chunks/sessionMemory-7UOFdp29.js +1 -0
  228. package/dist/chunks/sessionMemory-fAzgAS7Q.js +1 -0
  229. package/dist/chunks/sessionMemoryUtils-DVjFw5Bd.js +1 -0
  230. package/dist/chunks/sessionObserver-Cl26OdaW.js +1 -0
  231. package/dist/chunks/{sessionObserver-DoYc0ZOP.js → sessionObserver-XV6N0XER.js} +2 -2
  232. package/dist/chunks/{sessionState-CjNY991n.js → sessionState-BvECKycx.js} +1 -1
  233. package/dist/chunks/sessionStorage-DSj9yZkl.js +1 -0
  234. package/dist/chunks/{sessionStoragePortable-Cx6JQ5Ye.js → sessionStoragePortable-JZnGwqUM.js} +1 -1
  235. package/dist/chunks/sessionTitle-E1FvsKM9.js +14 -0
  236. package/dist/chunks/sessionTracing-ClGQ08jM.js +11 -0
  237. package/dist/chunks/settings-B-R9ZJNY.js +1 -0
  238. package/dist/chunks/settings-Xbq6AaD-.js +20 -0
  239. package/dist/chunks/settingsSync-NCN0a4sc.js +1 -0
  240. package/dist/chunks/setup-uZ0dSekt.js +3 -0
  241. package/dist/chunks/shadowedRuleDetection-B9iSx6mB.js +1 -0
  242. package/dist/chunks/{shellQuote-BUVKMu_P.js → shellQuote-Bth6IZgX.js} +1 -1
  243. package/dist/chunks/{sideQuestion-C780iYwd.js → sideQuestion-D2dPToW8.js} +3 -3
  244. package/dist/chunks/sinks-C7q46rvE.js +2 -0
  245. package/dist/chunks/sinks-D3bXeHlQ.js +1 -0
  246. package/dist/chunks/skillChangeDetector-C1EJ7rUL.js +1 -0
  247. package/dist/chunks/{skillGapStore-Dc1arohs.js → skillGapStore-DylpOKJ6.js} +2 -2
  248. package/dist/chunks/{skillLifecycle-DP6mY1Kp.js → skillLifecycle-GK-8eyyn.js} +2 -2
  249. package/dist/chunks/{skillSearchPanel-CpLTImaL.js → skillSearchPanel-mpaC62y4.js} +4 -4
  250. package/dist/chunks/skills-t6krW8GZ.js +1 -0
  251. package/dist/chunks/{src-CDCSSo0U2.js → src-P_wYS_NJ2.js} +1 -1
  252. package/dist/chunks/{src-CST_jFnT.js → src-r6ZFgWPx2.js} +1 -1
  253. package/dist/chunks/startupProfiler-BaiXZ9tr.js +1 -0
  254. package/dist/chunks/{startupProfiler-DCn_NxMH.js → startupProfiler-jeId9f2i.js} +2 -2
  255. package/dist/chunks/state-B4HwLt8i.js +1 -0
  256. package/dist/chunks/{state-Cn_m2NOf.js → state-BAGmpVBn.js} +1 -1
  257. package/dist/chunks/state-Bs5xweDL.js +1 -0
  258. package/dist/chunks/{staticRender-BIxpgNUq.js → staticRender-DrU6eWoq.js} +1 -1
  259. package/dist/chunks/{stats-Duk7_xjQ.js → stats-BJBhl-Lc.js} +1 -1
  260. package/dist/chunks/{status-peiVB_2j.js → status-BtsnKNVY.js} +1 -1
  261. package/dist/chunks/status-nZQEar7T.js +2 -0
  262. package/dist/chunks/{statusNoticeHelpers-B5U5c9PE.js → statusNoticeHelpers-DMqRGFOh.js} +1 -1
  263. package/dist/chunks/{stringUtils-B6FudhoZ.js → stringUtils-CbS6OkmE.js} +1 -1
  264. package/dist/chunks/subprocessEnv-CZkA9Cdp.js +1 -0
  265. package/dist/chunks/{subprocessEnv-vrwzMgKn.js → subprocessEnv-Ci8VV_bi.js} +1 -1
  266. package/dist/chunks/{switcher-BAMqSX7Z.js → switcher-77h2J5HC.js} +1 -1
  267. package/dist/chunks/switcher-B2CYzCC_.js +1 -0
  268. package/dist/chunks/{syncCache-Zl9kZRRl.js → syncCache-By_-buUC.js} +1 -1
  269. package/dist/chunks/tasks-BNrdmF9p.js +1 -0
  270. package/dist/chunks/teleport-mdnhIZBj.js +1 -0
  271. package/dist/chunks/{templateJobs-DR5fKFiO.js → templateJobs-Dkv4I9c1.js} +1 -1
  272. package/dist/chunks/{terminalSetup-DgRBt-JJ.js → terminalSetup-DQopnSPR.js} +1 -1
  273. package/dist/chunks/terminalSetup-DTGm1Eo2.js +33 -0
  274. package/dist/chunks/{theme-Bz6esfST.js → theme-BjpBVRf5.js} +1 -1
  275. package/dist/chunks/{tmux-DSU9tYIo.js → tmux-CMRiI6CD.js} +1 -1
  276. package/dist/chunks/{toolEventObserver-BSekCkM2.js → toolEventObserver-D-sNBvOe.js} +1 -1
  277. package/dist/chunks/toolPool-Di30gn_Y.js +1 -0
  278. package/dist/chunks/trustedDevice-CupLMpO8.js +1 -0
  279. package/dist/chunks/{trustedDevice-B0x9X0fb.js → trustedDevice-j1u2TG5U.js} +1 -1
  280. package/dist/chunks/{types-D7_37tP2.js → types-DWRxAH0E.js} +1 -1
  281. package/dist/chunks/{udsClient-CHoMMH28.js → udsClient-Cm3HqYUu.js} +1 -1
  282. package/dist/chunks/{updateCCB-D_kGQKPT.js → updateCCB-BlUAU2Vp.js} +8 -8
  283. package/dist/chunks/{upstreamproxy-Hmq-n8fw.js → upstreamproxy-DDVMwoRi.js} +1 -1
  284. package/dist/chunks/useExitOnCtrlCDWithKeybindings-D2FvHieH.js +1 -0
  285. package/dist/chunks/useMainLoopModel-ylPQNj7Z.js +1 -0
  286. package/dist/chunks/useManagePlugins-BbWJNLe8.js +1 -0
  287. package/dist/chunks/useMergedTools-B-Z9XQ6U.js +1 -0
  288. package/dist/chunks/useSearchInput-C6d6nt9S.js +1 -0
  289. package/dist/chunks/useSettingsErrors-DKh4rkGi.js +1 -0
  290. package/dist/chunks/{userAgent-BxTG7IMk.js → userAgent-Ng_TTjWr.js} +1 -1
  291. package/dist/chunks/util-D-X8i5Z2.js +1 -0
  292. package/dist/chunks/validatePlugin-DSw08u76.js +1 -0
  293. package/dist/chunks/vim-3mUqsEJm.js +1 -0
  294. package/dist/chunks/{which-CHLNJmtJ.js → which-DznMOwny.js} +1 -1
  295. package/dist/chunks/windowsPaths-1mgenSWa.js +1 -0
  296. package/dist/chunks/{windowsPaths-o62uq6LF.js → windowsPaths-BVztIhXM.js} +1 -1
  297. package/dist/chunks/{workSecret-DG9shvG0.js → workSecret-DtiFreRl.js} +1 -1
  298. package/dist/chunks/workerRegistry-DdOYjLm3.js +6 -0
  299. package/dist/chunks/worktree-BX1ULzrw.js +1 -0
  300. package/dist/cli.js +1 -1
  301. package/package.json +1 -1
  302. package/dist/chunks/AddWorkspaceDirectory-CwLtQld4.js +0 -1
  303. package/dist/chunks/App-Ba52HvYC.js +0 -1
  304. package/dist/chunks/ApproveApiKey-CEIfuUh0.js +0 -1
  305. package/dist/chunks/ApproveApiKey-D2MLQu2P.js +0 -1
  306. package/dist/chunks/BackgroundTasksDialog-IGDrkbWl.js +0 -2
  307. package/dist/chunks/BypassPermissionsModeDialog-GYhq--JR.js +0 -1
  308. package/dist/chunks/ClaudeMdExternalIncludesDialog-C-CTa-95.js +0 -1
  309. package/dist/chunks/ClaudeMdExternalIncludesDialog-Catv6BCJ.js +0 -1
  310. package/dist/chunks/ConsoleOAuthFlow-BeQXqUtX.js +0 -1
  311. package/dist/chunks/DiffDialog-AC5DSJrq.js +0 -6
  312. package/dist/chunks/Doctor-B9Rxsoy0.js +0 -1
  313. package/dist/chunks/Doctor-lhUBhEy5.js +0 -3
  314. package/dist/chunks/ExitFlow-Cu8SoQHs.js +0 -2
  315. package/dist/chunks/Grove-Bc4CofEj.js +0 -11
  316. package/dist/chunks/InvalidConfigDialog-BI13il58.js +0 -1
  317. package/dist/chunks/InvalidSettingsDialog-CtOheV1K.js +0 -1
  318. package/dist/chunks/MCPConnectionManager-ao-P3xSA.js +0 -1
  319. package/dist/chunks/MCPToolListView-dkofcJs4.js +0 -1
  320. package/dist/chunks/McpParsingWarnings-BS4JoR5l.js +0 -1
  321. package/dist/chunks/MessageSelector-B88b2ypw.js +0 -3
  322. package/dist/chunks/Messages-BPeI7lLV.js +0 -11
  323. package/dist/chunks/Onboarding-c2fQ8Io_.js +0 -1
  324. package/dist/chunks/PromptInputFooterSuggestions-D1cH9sDX.js +0 -1
  325. package/dist/chunks/PromptInputHelpMenu-DDD5WuK0.js +0 -1
  326. package/dist/chunks/QueryEngine-Cv_meCam.js +0 -1
  327. package/dist/chunks/REPL-BXhAQOXb.js +0 -139
  328. package/dist/chunks/REPL-YqjLnr3A.js +0 -1
  329. package/dist/chunks/RemoteSessionManager-CT7T8BaR.js +0 -2
  330. package/dist/chunks/ResumeConversation-CIZCjms9.js +0 -1
  331. package/dist/chunks/SearchExtraToolsTool-Dx6093yw.js +0 -1
  332. package/dist/chunks/Settings-CyUm0AtU.js +0 -2
  333. package/dist/chunks/TeleportProgress-C3qyp5zy.js +0 -1
  334. package/dist/chunks/TeleportRepoMismatchDialog-BV--nyYn.js +0 -1
  335. package/dist/chunks/TeleportResumeWrapper-Blo2cZg-.js +0 -1
  336. package/dist/chunks/ThemePicker-EQ6hPUeI.js +0 -1
  337. package/dist/chunks/add-dir-DPQV0qml.js +0 -1
  338. package/dist/chunks/agents-DmybpgDN.js +0 -103
  339. package/dist/chunks/allErrors-BPn_2TrB.js +0 -1
  340. package/dist/chunks/analytics-CkYUHW_U.js +0 -1
  341. package/dist/chunks/ant-DjdvlLOo.js +0 -1
  342. package/dist/chunks/api-AMgj1zf_.js +0 -1
  343. package/dist/chunks/asciicast-BJNYO5sh.js +0 -4
  344. package/dist/chunks/asciicast-CH6hdK0a.js +0 -1
  345. package/dist/chunks/auth-CNjDn1VY.js +0 -15
  346. package/dist/chunks/auth-CZzP483s.js +0 -1
  347. package/dist/chunks/auth-DDSBm_Yj.js +0 -1
  348. package/dist/chunks/autonomy-D4xZLOdJ.js +0 -15
  349. package/dist/chunks/backgroundHousekeeping--eBgphcg.js +0 -17
  350. package/dist/chunks/backgroundHousekeeping-VV1V_Y2Z.js +0 -1
  351. package/dist/chunks/bg-BK_9J6F6.js +0 -1
  352. package/dist/chunks/branch-BYq0zpzT.js +0 -3
  353. package/dist/chunks/bridgeConfig-C82un7rJ.js +0 -1
  354. package/dist/chunks/btw-CUV3nRrE.js +0 -1
  355. package/dist/chunks/caches-BZ59_En6.js +0 -1
  356. package/dist/chunks/caches-Cg-HtWKG.js +0 -1
  357. package/dist/chunks/client-DQXvVKND.js +0 -1
  358. package/dist/chunks/client-DkgC-mFB.js +0 -1
  359. package/dist/chunks/color-CBsNbt1s.js +0 -1
  360. package/dist/chunks/commands-qM5z_Uld.js +0 -1
  361. package/dist/chunks/compact-BclJiRJe.js +0 -2
  362. package/dist/chunks/completionCache-BMHAktkM.js +0 -1
  363. package/dist/chunks/config-CE058cvr.js +0 -3
  364. package/dist/chunks/config-D81avYye.js +0 -1
  365. package/dist/chunks/config-DpOOllGk.js +0 -1
  366. package/dist/chunks/context-noninteractive-DJb8H_hN.js +0 -1
  367. package/dist/chunks/context-sR9fJmXE.js +0 -1
  368. package/dist/chunks/conversation-D48Kt3ar.js +0 -1
  369. package/dist/chunks/conversation-fOFTa7k5.js +0 -1
  370. package/dist/chunks/createSession-CSwlW2T2.js +0 -1
  371. package/dist/chunks/crossProjectResume-lDFB2ZcY.js +0 -40
  372. package/dist/chunks/cwd-5Xr-Qka6.js +0 -1
  373. package/dist/chunks/datadog-BJn5ECIu.js +0 -1
  374. package/dist/chunks/detectRepository-DqQvyj_a.js +0 -1
  375. package/dist/chunks/directoryCompletion-BagQcynj.js +0 -1
  376. package/dist/chunks/doctor-BEHYm34V.js +0 -1
  377. package/dist/chunks/entry-BzL1MFQG.js +0 -14
  378. package/dist/chunks/envUtils-DSxRz_kt.js +0 -1
  379. package/dist/chunks/eventLoopStallDetector-Cg_RXU1q.js +0 -1
  380. package/dist/chunks/exit-DE2YiAhQ.js +0 -1
  381. package/dist/chunks/extraUsage-Dw7AXiH7.js +0 -1
  382. package/dist/chunks/extractMemories-DxTUMiv3.js +0 -1
  383. package/dist/chunks/fast-CHmMkIpE.js +0 -1
  384. package/dist/chunks/fast-uQASHWqR.js +0 -1
  385. package/dist/chunks/fileSuggestions-Dyu2kQtE.js +0 -3
  386. package/dist/chunks/firstPartyEventLogger-D5ohKbIe.js +0 -5
  387. package/dist/chunks/firstPartyEventLogger-LsNY6yOt.js +0 -1
  388. package/dist/chunks/generateRecap-CiFxXlmH.js +0 -1
  389. package/dist/chunks/generateSessionName-DitoBxJT.js +0 -1
  390. package/dist/chunks/git-D6dOU2mT.js +0 -1
  391. package/dist/chunks/githubRepoPathMapping-DGr0kJ8D.js +0 -1
  392. package/dist/chunks/goal-DuUayfDg.js +0 -3
  393. package/dist/chunks/grok-tRbmZzEh.js +0 -1
  394. package/dist/chunks/grove-Cv19v6Sv.js +0 -7
  395. package/dist/chunks/help-DkqxbFDM.js +0 -1
  396. package/dist/chunks/hooks-CsP42iOp.js +0 -1
  397. package/dist/chunks/initReplBridge-DdsSWVqN.js +0 -1
  398. package/dist/chunks/keybindings-DZU3vwo3.js +0 -2
  399. package/dist/chunks/language-DHhXLb_Y.js +0 -1
  400. package/dist/chunks/launchLocalMemory-twLxpPvg.js +0 -3
  401. package/dist/chunks/launchOnboarding-BWz2XSb9.js +0 -8
  402. package/dist/chunks/lib-rQZENxQg.js +0 -8
  403. package/dist/chunks/loadAgentsDir-CMNFLt7R.js +0 -1
  404. package/dist/chunks/loadPluginHooks-BPnxcgrL.js +0 -1
  405. package/dist/chunks/localSearch-DzQODFap.js +0 -1
  406. package/dist/chunks/logoV2Utils-CGUJ-5gY.js +0 -1
  407. package/dist/chunks/main-D4Uk-WUs.js +0 -862
  408. package/dist/chunks/managedEnv-DLVRBaA9.js +0 -1
  409. package/dist/chunks/mcp-BMVdGknC.js +0 -1
  410. package/dist/chunks/mcp-COS5RJFS.js +0 -6
  411. package/dist/chunks/mcp-tGsOW1GN.js +0 -2
  412. package/dist/chunks/memory-DR6poqeH.js +0 -1
  413. package/dist/chunks/mode-QV-NW1Wd.js +0 -2
  414. package/dist/chunks/model-BF_4ebyl.js +0 -1
  415. package/dist/chunks/model-BNU_ulDJ.js +0 -1
  416. package/dist/chunks/model-CwO-g1RW.js +0 -1
  417. package/dist/chunks/nativeInstaller-B-lNJjM-.js +0 -1
  418. package/dist/chunks/oauth-BqJqV-2M.js +0 -1
  419. package/dist/chunks/oauth-C8X_p8Gc.js +0 -1
  420. package/dist/chunks/omit-DZCEXri5.js +0 -1
  421. package/dist/chunks/onChangeAppState-BmfM5g-D.js +0 -1
  422. package/dist/chunks/p-map-B1EeBuI8.js +0 -1
  423. package/dist/chunks/p-map-HKDr3iDo.js +0 -1
  424. package/dist/chunks/panelCall-SbffM7G4.js +0 -1
  425. package/dist/chunks/parser-DrBC8nWp.js +0 -1
  426. package/dist/chunks/partition-DKuAFJkc.js +0 -1
  427. package/dist/chunks/path-Cv9QMBAX.js +0 -1
  428. package/dist/chunks/permissions-ey-bfanE.js +0 -3
  429. package/dist/chunks/pidLock-DJnS_38v.js +0 -3
  430. package/dist/chunks/plan-Brg9XnRr.js +0 -1
  431. package/dist/chunks/plugin-CRwa39Y1.js +0 -17
  432. package/dist/chunks/pluginAutoupdate-D0LIP7cy.js +0 -1
  433. package/dist/chunks/pluginBlocklist-PwHHD3nj.js +0 -1
  434. package/dist/chunks/pluginCliCommands-BJM5Bdpf.js +0 -1
  435. package/dist/chunks/pluginOperations-C7p_Qr2r.js +0 -2
  436. package/dist/chunks/pluginStartupCheck-C0HqhG6D.js +0 -1
  437. package/dist/chunks/plugins-DUKNjLq6.js +0 -4
  438. package/dist/chunks/poorMode-CejPNCp-.js +0 -1
  439. package/dist/chunks/print-gyTOCJzk.js +0 -23
  440. package/dist/chunks/processBashCommand-Cze9vCm6.js +0 -1
  441. package/dist/chunks/processSlashCommand-BRajh1v7.js +0 -5
  442. package/dist/chunks/prompt-B7joRiqj.js +0 -139
  443. package/dist/chunks/prompt-DqSMh2x9.js +0 -1
  444. package/dist/chunks/prompt-Eysh8Et_.js +0 -1
  445. package/dist/chunks/promptEditor-R_acDAgI.js +0 -4
  446. package/dist/chunks/reconciler-BfkO6X2X.js +0 -4
  447. package/dist/chunks/refresh-C1X3sptR.js +0 -1
  448. package/dist/chunks/reload-plugins-C0osFcNh.js +0 -1
  449. package/dist/chunks/remoteManagedSettings-B1mnRDmA.js +0 -1
  450. package/dist/chunks/rename-B3tf-YiD.js +0 -1
  451. package/dist/chunks/replBridgeHandle-CNwNIijW.js +0 -1
  452. package/dist/chunks/resume-Be1G_GBL.js +0 -2
  453. package/dist/chunks/ripgrep-C2PhTJDh.js +0 -1
  454. package/dist/chunks/rollback-BPWRKlIZ.js +0 -11
  455. package/dist/chunks/sandbox-adapter-C6GBuJPB.js +0 -1
  456. package/dist/chunks/sandbox-toggle-jEySONTW.js +0 -1
  457. package/dist/chunks/sdkHeapDumpMonitor-WdXUV7DV.js +0 -1
  458. package/dist/chunks/searchExtraTools-C_UTryh_.js +0 -1
  459. package/dist/chunks/session-DDI1Eb2x.js +0 -2
  460. package/dist/chunks/sessionDataUploader-CaCjwsA2.js +0 -1
  461. package/dist/chunks/sessionFileAccessHooks-DfJ7Htfl.js +0 -1
  462. package/dist/chunks/sessionMemory-CQBxPkTQ.js +0 -1
  463. package/dist/chunks/sessionMemory-s0ALUHvc.js +0 -1
  464. package/dist/chunks/sessionMemoryUtils-xt7dTHGC.js +0 -1
  465. package/dist/chunks/sessionObserver-C2sYqWL3.js +0 -1
  466. package/dist/chunks/sessionStorage-DqsY-7pi.js +0 -1
  467. package/dist/chunks/sessionTitle-B0OYf5nM.js +0 -14
  468. package/dist/chunks/sessionTracing-CwsXt_uA.js +0 -11
  469. package/dist/chunks/settings-BWtOA9A7.js +0 -1
  470. package/dist/chunks/settings-hQDLwPVj.js +0 -20
  471. package/dist/chunks/settingsSync-DdFagwHV.js +0 -1
  472. package/dist/chunks/setup-DzC22EkN.js +0 -3
  473. package/dist/chunks/shadowedRuleDetection-C86PTj1m.js +0 -1
  474. package/dist/chunks/sinks-5G_xhc1Q.js +0 -1
  475. package/dist/chunks/sinks-Cftq7Es0.js +0 -2
  476. package/dist/chunks/skillChangeDetector-plLveEbf.js +0 -1
  477. package/dist/chunks/skills-zGYaYfFV.js +0 -1
  478. package/dist/chunks/startupProfiler-JbpAkfNE.js +0 -1
  479. package/dist/chunks/state-C2OSZkV1.js +0 -1
  480. package/dist/chunks/state-DU9lRJ9x.js +0 -1
  481. package/dist/chunks/status-CFw-FpZM.js +0 -2
  482. package/dist/chunks/subprocessEnv-BSQSomcK.js +0 -1
  483. package/dist/chunks/switcher-hgBgVzLb.js +0 -1
  484. package/dist/chunks/tasks-BxpyRhmD.js +0 -1
  485. package/dist/chunks/teleport-CwxeD5vL.js +0 -1
  486. package/dist/chunks/terminalSetup-DlaFWI81.js +0 -33
  487. package/dist/chunks/toolPool-B7SIoDw5.js +0 -1
  488. package/dist/chunks/trustedDevice-CjHQtVkO.js +0 -1
  489. package/dist/chunks/up-B8wBSpLg.js +0 -12
  490. package/dist/chunks/useExitOnCtrlCDWithKeybindings-Cce612uS.js +0 -1
  491. package/dist/chunks/useMainLoopModel-BICP6_Fi.js +0 -1
  492. package/dist/chunks/useManagePlugins-DtbY_vPL.js +0 -1
  493. package/dist/chunks/useMergedTools-Ckx2IEhF.js +0 -1
  494. package/dist/chunks/useSearchInput-BAgljZUl.js +0 -1
  495. package/dist/chunks/useSettingsErrors-CAJR_wpd.js +0 -1
  496. package/dist/chunks/util-DDtmyq_r.js +0 -1
  497. package/dist/chunks/validatePlugin-AHl-g4ct.js +0 -1
  498. package/dist/chunks/vim-kg-mRVbu.js +0 -1
  499. package/dist/chunks/windowsPaths-Pmx8LDR6.js +0 -1
  500. package/dist/chunks/workerRegistry-C7H_lsQX.js +0 -6
  501. package/dist/chunks/worktree-O2p-mJdF.js +0 -1
@@ -1 +0,0 @@
1
- import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{n as t,t as n}from"./axios-DaWTGg7G.js";import{p as r}from"./external-CEp-aPkt.js";import{r as i}from"./lazySchema-B4D4qJVE.js";import{$E as a,ID as o,LD as s,ND as ee,PD as c,bE as l,eD as u,tD as d,yE as f}from"./loadAgentsDir-ByO8eJqU.js";import{C as p,F as m,I as h,S as g,V as _,a as v,d as y,l as b,p as x,w as te,z as S}from"./debug-RZ4NuXyS.js";import{_t as C,gt as w,ht as T,pt as E,vt as D}from"./settings-hQDLwPVj.js";import{o as ne,s as O}from"./log-CZ0zYP_c.js";import{homedir as re}from"os";import*as k from"path";import{join as ie,resolve as ae}from"path";import{randomBytes as oe}from"crypto";import{readFile as A,readdir as j,rename as M,stat as N,unlink as P,writeFile as F}from"fs/promises";function I(){return ie(f(),U)}async function L(){let e=I();try{let t=p(await A(e,{encoding:`utf-8`}));if(typeof t!=`object`||!t||!(`version`in t)||!(`fetchedAt`in t)||!(`counts`in t))return b(`Install counts cache has invalid structure`),null;let n=t;if(n.version!==H)return b(`Install counts cache version mismatch (got ${n.version}, expected ${H})`),null;if(typeof n.fetchedAt!=`string`||!Array.isArray(n.counts))return b(`Install counts cache has invalid structure`),null;let r=new Date(n.fetchedAt).getTime();return Number.isNaN(r)?(b(`Install counts cache has invalid fetchedAt timestamp`),null):n.counts.every(e=>typeof e==`object`&&!!e&&typeof e.plugin==`string`&&typeof e.unique_installs==`number`)?Date.now()-r>G?(b(`Install counts cache is stale (>24h old)`),null):{version:n.version,fetchedAt:n.fetchedAt,counts:n.counts}:(b(`Install counts cache has malformed entries`),null)}catch(e){return h(e)!==`ENOENT`&&b(`Failed to load install counts cache: ${m(e)}`),null}}async function R(e){let t=I(),n=`${t}.${oe(8).toString(`hex`)}.tmp`;try{let r=f();await y().mkdir(r),await F(n,te(e,null,2),{encoding:`utf-8`,mode:384}),await M(n,t),b(`Install counts cache saved successfully`)}catch(e){O(e);try{await P(n)}catch{}}}async function z(){b(`Fetching install counts from ${W}`);let e=performance.now();try{let n=await t.get(W,{timeout:1e4});if(!n.data?.plugins||!Array.isArray(n.data.plugins))throw Error(`Invalid response format from install counts API`);return d(`install_counts`,W,`success`,performance.now()-e),n.data.plugins}catch(t){throw d(`install_counts`,W,`failure`,performance.now()-e,a(t)),t}}async function B(){let e=await L();if(e){b(`Using cached install counts`),d(`install_counts`,W,`cache_hit`,0);let t=new Map;for(let n of e.counts)t.set(n.plugin,n.unique_installs);return t}try{let e=await z();await R({version:H,fetchedAt:new Date().toISOString(),counts:e});let t=new Map;for(let n of e)t.set(n.plugin,n.unique_installs);return t}catch(e){return O(e),b(`Failed to fetch install counts: ${m(e)}`),null}}function V(e){if(e<1e3)return String(e);if(e<1e6){let t=(e/1e3).toFixed(1);return t.endsWith(`.0`)?`${t.slice(0,-2)}K`:`${t}K`}let t=(e/1e6).toFixed(1);return t.endsWith(`.0`)?`${t.slice(0,-2)}M`:`${t}M`}var H,U,W,G,K=e((()=>{n(),v(),S(),x(),ne(),g(),u(),l(),H=1,U=`install-counts-cache.json`,W=`https://raw.githubusercontent.com/anthropics/claude-plugins-official/refs/heads/stats/stats/plugin-installs.json`,G=1440*60*1e3}));async function se(e){let t=e.trim(),n=y(),r=t.match(/^([a-zA-Z0-9._-]+@[^:]+:.+?(?:\.git)?)(#(.+))?$/);if(r?.[1]){let e=r[1],t=r[3];return t?{source:`git`,url:e,ref:t}:{source:`git`,url:e}}if(t.startsWith(`http://`)||t.startsWith(`https://`)){let e=t.match(/^([^#]+)(#(.+))?$/),n=e?.[1]||t,r=e?.[3];if(n.endsWith(`.git`)||n.includes(`/_git/`))return r?{source:`git`,url:n,ref:r}:{source:`git`,url:n};let i;try{i=new URL(n)}catch{return{source:`url`,url:n}}if((i.hostname===`github.com`||i.hostname===`www.github.com`)&&i.pathname.match(/^\/([^/]+\/[^/]+?)(\/|\.git|$)/)?.[1]){let e=n.endsWith(`.git`)?n:`${n}.git`;return r?{source:`git`,url:e,ref:r}:{source:`git`,url:e}}return{source:`url`,url:n}}let i=process.platform===`win32`&&(t.startsWith(`.\\`)||t.startsWith(`..\\`)||/^[a-zA-Z]:[/\\]/.test(t));if(t.startsWith(`./`)||t.startsWith(`../`)||t.startsWith(`/`)||t.startsWith(`~`)||i){let e=ae(t.startsWith(`~`)?t.replace(/^~/,re()):t),r;try{r=await n.stat(e)}catch(t){let n=h(t);return{error:n===`ENOENT`?`Path does not exist: ${e}`:`Cannot access path: ${e} (${n??t})`}}return r.isFile()?e.endsWith(`.json`)?{source:`file`,path:e}:{error:`File path must point to a .json file (marketplace.json), but got: ${e}`}:r.isDirectory()?{source:`directory`,path:e}:{error:`Path is neither a file nor a directory: ${e}`}}if(t.includes(`/`)&&!t.startsWith(`@`)){if(t.includes(`:`))return null;let e=t.match(/^([^#@]+)(?:[#@](.+))?$/),n=e?.[1]||t,r=e?.[2];return r?{source:`github`,repo:n,ref:r}:{source:`github`,repo:n}}return null}var ce=e((()=>{S(),x()}));function le(e){let t=k.basename(e),n=k.basename(k.dirname(e));return t===`plugin.json`?`plugin`:t===`marketplace.json`?`marketplace`:n===`.claude-plugin`?`plugin`:`unknown`}function q(e){return e.issues.map(e=>({path:e.path.join(`.`)||`root`,message:e.message,code:e.code}))}function J(e,t,n,r){e.includes(`..`)&&n.push({path:t,message:r?`Path contains "..": ${e}. ${r}`:`Path contains ".." which could be a path traversal attempt: ${e}`})}function ue(e){let t=e.replace(/^(\.\.\/)+/,``);return`Plugin source paths are resolved relative to the marketplace root (the directory containing .claude-plugin/), not relative to marketplace.json. Use "${t===e?`./plugins/my-plugin`:`./${t}`}" instead of "${e}".`}async function Y(e){let t=[],n=[],r=k.resolve(e),i;try{i=await A(r,{encoding:`utf-8`})}catch(e){let t=h(e),n;return n=t===`ENOENT`?`File not found: ${r}`:t===`EISDIR`?`Path is not a file: ${r}`:`Failed to read file: ${m(e)}`,{success:!1,errors:[{path:`file`,message:n,code:t}],warnings:[],filePath:r,fileType:`plugin`}}let a;try{a=p(i)}catch(e){return{success:!1,errors:[{path:`json`,message:`Invalid JSON syntax: ${m(e)}`}],warnings:[],filePath:r,fileType:`plugin`}}if(a&&typeof a==`object`){let e=a;e.commands&&(Array.isArray(e.commands)?e.commands:[e.commands]).forEach((e,n)=>{typeof e==`string`&&J(e,`commands[${n}]`,t)}),e.agents&&(Array.isArray(e.agents)?e.agents:[e.agents]).forEach((e,n)=>{typeof e==`string`&&J(e,`agents[${n}]`,t)}),e.skills&&(Array.isArray(e.skills)?e.skills:[e.skills]).forEach((e,n)=>{typeof e==`string`&&J(e,`skills[${n}]`,t)})}let o=a;if(typeof a==`object`&&a){let e=a,t=Object.keys(e).filter(e=>$.has(e));if(t.length>0){let r={...e};for(let e of t)delete r[e],n.push({path:e,message:`Field '${e}' belongs in the marketplace entry (marketplace.json), not plugin.json. It's harmless here but unused — Work Mate ignores it at load time.`});o=r}}let s=T().strict().safeParse(o);if(s.success||t.push(...q(s.error)),s.success){let e=s.data;/^[a-z0-9]+(-[a-z0-9]+)*$/.test(e.name)||n.push({path:`name`,message:`Plugin name "${e.name}" is not kebab-case. Work Mate accepts it, but the Claude.ai marketplace sync requires kebab-case (lowercase letters, digits, and hyphens only, e.g., "my-plugin").`}),e.version||n.push({path:`version`,message:`No version specified. Consider adding a version following semver (e.g., "1.0.0")`}),e.description||n.push({path:`description`,message:`No description provided. Adding a description helps users understand what your plugin does`}),e.author||n.push({path:`author`,message:`No author information provided. Consider adding author details for plugin attribution`})}return{success:t.length===0,errors:t,warnings:n,filePath:r,fileType:`plugin`}}async function X(e){let t=[],n=[],i=k.resolve(e),a;try{a=await A(i,{encoding:`utf-8`})}catch(e){let t=h(e),n;return n=t===`ENOENT`?`File not found: ${i}`:t===`EISDIR`?`Path is not a file: ${i}`:`Failed to read file: ${m(e)}`,{success:!1,errors:[{path:`file`,message:n,code:t}],warnings:[],filePath:i,fileType:`marketplace`}}let o;try{o=p(a)}catch(e){return{success:!1,errors:[{path:`json`,message:`Invalid JSON syntax: ${m(e)}`}],warnings:[],filePath:i,fileType:`marketplace`}}if(o&&typeof o==`object`){let e=o;Array.isArray(e.plugins)&&e.plugins.forEach((e,n)=>{if(e&&typeof e==`object`&&`source`in e){let r=e.source;typeof r==`string`&&J(r,`plugins[${n}].source`,t,ue(r)),r&&typeof r==`object`&&`path`in r&&typeof r.path==`string`&&J(r.path,`plugins[${n}].source.path`,t)}})}let s=C().extend({plugins:r(w().strict())}).strict().safeParse(o);if(s.success||t.push(...q(s.error)),s.success){let e=s.data;if((!e.plugins||e.plugins.length===0)&&n.push({path:`plugins`,message:`Marketplace has no plugins defined`}),e.plugins){e.plugins.forEach((n,r)=>{e.plugins.filter(e=>e.name===n.name).length>1&&t.push({path:`plugins[${r}].name`,message:`Duplicate plugin name "${n.name}" found in marketplace`})});let r=k.dirname(i),a=k.basename(r)===`.claude-plugin`?k.dirname(r):r;for(let[t,r]of e.plugins.entries()){if(!r.version||typeof r.source!=`string`||!r.source.startsWith(`./`))continue;let e=k.join(a,r.source,`.claude-plugin`,`plugin.json`),i;try{let t=p(await A(e,{encoding:`utf-8`}));typeof t.version==`string`&&(i=t.version)}catch{continue}i&&i!==r.version&&n.push({path:`plugins[${t}].version`,message:`Entry declares version "${r.version}" but ${r.source}/.claude-plugin/plugin.json says "${i}". At install time, plugin.json wins (calculatePluginVersion precedence) — the entry version is silently ignored. Update this entry to "${i}" to match.`})}}e.metadata?.description||n.push({path:`metadata.description`,message:`No marketplace description provided. Adding a description helps users understand what this marketplace offers`})}return{success:t.length===0,errors:t,warnings:n,filePath:i,fileType:`marketplace`}}function de(e,t,n){let r=[],i=[],a=t.match(ee);if(!a)return i.push({path:`frontmatter`,message:`No frontmatter block found. Add YAML frontmatter between --- delimiters at the top of the file to set description and other metadata.`}),{success:!0,errors:r,warnings:i,filePath:e,fileType:n};let o=a[1]||``,c;try{c=s(o)}catch(t){return r.push({path:`frontmatter`,message:`YAML frontmatter failed to parse: ${m(t)}. At runtime this ${n} loads with empty metadata (all frontmatter fields silently dropped).`}),{success:!1,errors:r,warnings:i,filePath:e,fileType:n}}if(typeof c!=`object`||!c||Array.isArray(c))return r.push({path:`frontmatter`,message:`Frontmatter must be a YAML mapping (key: value pairs), got ${Array.isArray(c)?`an array`:c===null?`null`:typeof c}.`}),{success:!1,errors:r,warnings:i,filePath:e,fileType:n};let l=c;if(l.description!==void 0){let e=l.description;typeof e!=`string`&&typeof e!=`number`&&typeof e!=`boolean`&&e!==null&&r.push({path:`description`,message:`description must be a string, got ${Array.isArray(e)?`array`:typeof e}. At runtime this value is dropped.`})}else i.push({path:`description`,message:`No description in frontmatter. A description helps users and Claude understand when to use this ${n}.`});l.name!==void 0&&l.name!==null&&typeof l.name!=`string`&&r.push({path:`name`,message:`name must be a string, got ${typeof l.name}.`});let u=l[`allowed-tools`];u!=null&&(typeof u!=`string`&&!Array.isArray(u)?r.push({path:`allowed-tools`,message:`allowed-tools must be a string or array of strings, got ${typeof u}.`}):Array.isArray(u)&&u.some(e=>typeof e!=`string`)&&r.push({path:`allowed-tools`,message:`allowed-tools array must contain only strings.`}));let d=l.shell;if(d!=null)if(typeof d!=`string`)r.push({path:`shell`,message:`shell must be a string, got ${typeof d}.`});else{let e=d.trim().toLowerCase();e!==`bash`&&e!==`powershell`&&r.push({path:`shell`,message:`shell must be 'bash' or 'powershell', got '${d}'.`})}return{success:r.length===0,errors:r,warnings:i,filePath:e,fileType:n}}async function Z(e){let t;try{t=await A(e,{encoding:`utf-8`})}catch(t){return h(t)===`ENOENT`?{success:!0,errors:[],warnings:[],filePath:e,fileType:`hooks`}:{success:!1,errors:[{path:`file`,message:`Failed to read file: ${m(t)}`}],warnings:[],filePath:e,fileType:`hooks`}}let n;try{n=p(t)}catch(t){return{success:!1,errors:[{path:`json`,message:`Invalid JSON syntax: ${m(t)}. At runtime this breaks the entire plugin load.`}],warnings:[],filePath:e,fileType:`hooks`}}let r=E().safeParse(n);return r.success?{success:!0,errors:[],warnings:[],filePath:e,fileType:`hooks`}:{success:!1,errors:q(r.error),warnings:[],filePath:e,fileType:`hooks`}}async function Q(e,t){let n;try{n=await j(e,{withFileTypes:!0})}catch(e){let t=h(e);if(t===`ENOENT`||t===`ENOTDIR`)return[];throw e}if(t)return n.filter(e=>e.isDirectory()).map(t=>k.join(e,t.name,`SKILL.md`));let r=[];for(let t of n){let n=k.join(e,t.name);t.isDirectory()?r.push(...await Q(n,!1)):t.isFile()&&t.name.toLowerCase().endsWith(`.md`)&&r.push(n)}return r}async function fe(e){let t=[],n=[[`skill`,k.join(e,`skills`)],[`agent`,k.join(e,`agents`)],[`command`,k.join(e,`commands`)]];for(let[e,r]of n){let n=await Q(r,e===`skill`);for(let r of n){let n;try{n=await A(r,{encoding:`utf-8`})}catch(n){if(_(n))continue;t.push({success:!1,errors:[{path:`file`,message:`Failed to read: ${m(n)}`}],warnings:[],filePath:r,fileType:e});continue}let i=de(r,n,e);(i.errors.length>0||i.warnings.length>0)&&t.push(i)}}let r=await Z(k.join(e,`hooks`,`hooks.json`));return(r.errors.length>0||r.warnings.length>0)&&t.push(r),t}async function pe(e){let t=k.resolve(e),n=null;try{n=await N(t)}catch(e){if(!_(e))throw e}if(n?.isDirectory()){let e=await X(k.join(t,`.claude-plugin`,`marketplace.json`));if(e.errors[0]?.code!==`ENOENT`)return e;let n=await Y(k.join(t,`.claude-plugin`,`plugin.json`));return n.errors[0]?.code===`ENOENT`?{success:!1,errors:[{path:`directory`,message:`No manifest found in directory. Expected .claude-plugin/marketplace.json or .claude-plugin/plugin.json`}],warnings:[],filePath:t,fileType:`plugin`}:n}switch(le(e)){case`plugin`:return Y(e);case`marketplace`:return X(e);case`unknown`:try{let n=p(await A(t,{encoding:`utf-8`}));if(Array.isArray(n.plugins))return X(e)}catch(e){if(h(e)===`ENOENT`)return{success:!1,errors:[{path:`file`,message:`File not found: ${t}`}],warnings:[],filePath:t,fileType:`plugin`}}return Y(e)}}var $,me=e((()=>{i(),S(),c(),g(),o(),D(),$=new Set([`category`,`source`,`tags`,`strict`,`id`])}));export{se as a,K as c,ce as i,pe as n,V as o,fe as r,B as s,me as t};
@@ -1 +0,0 @@
1
- import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{b as t,c as n,g as r}from"./config-CE058cvr.js";import{n as i,r as a}from"./analytics-CkYUHW_U.js";var o;e((()=>{i(),r(),o=async()=>{let e=n().editorMode||`normal`;e===`emacs`&&(e=`normal`);let r=e===`normal`?`vim`:`normal`;return t(e=>({...e,editorMode:r})),a(`tengu_editor_mode_changed`,{mode:r,source:`command`}),{type:`text`,value:`Editor mode set to ${r}. ${r===`vim`?`Use Escape key to toggle between INSERT and NORMAL modes.`:`Using standard (readline) keyboard bindings.`}`}}}))();export{o as call};
@@ -1 +0,0 @@
1
- import{i as e,o as t}from"./windowsPaths-o62uq6LF.js";e();export{t as setShellIfWindows};
@@ -1,6 +0,0 @@
1
- import{l as e,o as t,u as n}from"./envUtils-DSxRz_kt.js";import{t as r}from"./src-CDCSSo0U2.js";import{Et as i,Lp as a,OD as o,jt as s,kD as c,vt as l}from"./loadAgentsDir-ByO8eJqU.js";import{C as u,F as d,S as f,a as p,l as m,w as h,z as g}from"./debug-RZ4NuXyS.js";import{Ut as _}from"./settings-hQDLwPVj.js";import{O as v,k as y}from"./git-BerW9bId.js";import{o as b,s as x}from"./log-CZ0zYP_c.js";import{n as S,r as C}from"./analytics-CkYUHW_U.js";import{u as w,w as T,y as E}from"./startupProfiler-DCn_NxMH.js";import{Bt as D,Ot as O,_n as k,vn as A}from"./model-CwO-g1RW.js";import{i as ee,t as j}from"./sessionIdCompat-DMayYBrf.js";import{n as te}from"./firstPartyEventLogger-D5ohKbIe.js";import{t as M}from"./datadog-BJn5ECIu.js";import{n as N,o as P,r as F}from"./debugUtils-D30M1cbN.js";import{t as I}from"./pollConfig-BgpfHQPJ.js";import{n as L,t as ne}from"./rcDebugLog-CARUIORE.js";import{a as R,i as z,n as B,o as re,r as V,s as H,t as ie}from"./capacityWake-CKOiRELo.js";import{a as ae,i as oe,n as se,r as U,t as ce}from"./workSecret-DG9shvG0.js";import{i as W}from"./trustedDevice-B0x9X0fb.js";import{t as le}from"./jwtUtils-C0cE-1Ey.js";import{i as G,n as K,r as q}from"./cliLaunch-CQjLYRzM.js";import{t as J}from"./lib-BlVGipXx.js";import{hostname as Y,tmpdir as ue}from"os";import{dirname as X,join as de,resolve as Z}from"path";import{createWriteStream as fe}from"fs";import{randomUUID as Q}from"crypto";import{spawn as pe}from"child_process";import{createInterface as me}from"readline";t(),g(),f(),v(),b(),S(),E(),k(),c(),M(),te(),i(),ne(),G(),J(),_(),r(),p(),a(),j(),P();var he=10,$=10;function ge(e){return e.replace(/[^a-zA-Z0-9_-]/g,`_`)}var _e={Read:`Reading`,Write:`Writing`,Edit:`Editing`,MultiEdit:`Editing`,Bash:`Running`,Glob:`Searching`,Grep:`Searching`,WebFetch:`Fetching`,WebSearch:`Searching`,Task:`Running task`,FileReadTool:`Reading`,FileWriteTool:`Writing`,FileEditTool:`Editing`,GlobTool:`Searching`,GrepTool:`Searching`,BashTool:`Running`,NotebookEditTool:`Editing notebook`,LSP:`LSP`};function ve(e,t){let n=_e[e]??e,r=t.file_path??t.filePath??t.pattern??t.command?.slice(0,60)??t.url??t.query??``;return r?`${n} ${r}`:n}function ye(e,t,n){let r;try{r=u(e)}catch{return[]}if(!r||typeof r!=`object`)return[];let i=r,a=[],o=Date.now();switch(i.type){case`assistant`:{let e=i.message;if(!e)break;let r=e.content;if(!Array.isArray(r))break;for(let e of r){if(!e||typeof e!=`object`)continue;let r=e;if(r.type===`tool_use`){let e=r.name??`Tool`,i=r.input??{},s=ve(e,i);a.push({type:`tool_start`,summary:s,timestamp:o}),n(`[bridge:activity] sessionId=${t} tool_use name=${e} ${xe(i)}`)}else if(r.type===`text`){let e=r.text??``;e.length>0&&(a.push({type:`text`,summary:e.slice(0,80),timestamp:o}),n(`[bridge:activity] sessionId=${t} text "${e.slice(0,100)}"`))}}break}case`result`:{let e=i.subtype;if(e===`success`)a.push({type:`result`,summary:`Session completed`,timestamp:o}),n(`[bridge:activity] sessionId=${t} result subtype=success`);else if(e){let r=i.errors?.[0]??`Error: ${e}`;a.push({type:`error`,summary:r,timestamp:o}),n(`[bridge:activity] sessionId=${t} result subtype=${e} error="${r}"`)}else n(`[bridge:activity] sessionId=${t} result subtype=undefined`);break}default:break}return a}function be(e){if(e.parent_tool_use_id!=null||e.isSynthetic||e.isReplay)return;let t=e.message?.content,n;if(typeof t==`string`)n=t;else if(Array.isArray(t)){for(let e of t)if(e&&typeof e==`object`&&e.type===`text`){n=e.text;break}}return n=n?.trim(),n||void 0}function xe(e){let t=[];for(let[n,r]of Object.entries(e))if(typeof r==`string`&&t.push(`${n}="${r.slice(0,100)}"`),t.length>=3)break;return t.join(` `)}function Se(e){return{spawn(t,n){let r=ge(t.sessionId),i;if(e.debugFile){let t=e.debugFile.lastIndexOf(`.`);i=t>0?`${e.debugFile.slice(0,t)}-${r}${e.debugFile.slice(t)}`:`${e.debugFile}-${r}`}else(e.verbose||process.env.USER_TYPE===`ant`)&&(i=de(ue(),`claude`,`bridge-session-${r}.log`));let a=null,o;e.debugFile&&(o=de(X(e.debugFile),`bridge-transcript-${r}.jsonl`),a=fe(o,{flags:`a`}),a.on(`error`,t=>{e.onDebug(`[bridge:session] Transcript write error: ${t.message}`),a=null}),e.onDebug(`[bridge:session] Transcript log: ${o}`));let s=[...e.scriptArgs,`--print`,`--sdk-url`,t.sdkUrl,`--session-id`,t.sessionId,`--input-format`,`stream-json`,`--output-format`,`stream-json`,`--replay-user-messages`,...e.verbose?[`--verbose`]:[],...i?[`--debug-file`,i]:[],...e.permissionMode?[`--permission-mode`,e.permissionMode]:[]],c={...e.env,CLAUDE_CODE_OAUTH_TOKEN:void 0,CLAUDE_CODE_ENVIRONMENT_KIND:`bridge`,...e.sandbox&&{CLAUDE_CODE_FORCE_SANDBOX:`1`},CLAUDE_CODE_SESSION_ACCESS_TOKEN:t.accessToken,CLAUDE_CODE_POST_FOR_SESSION_INGRESS_V2:`1`,...t.useCcrV2&&{CLAUDE_CODE_USE_CCR_V2:`1`,CLAUDE_CODE_WORKER_EPOCH:String(t.workerEpoch)}};e.onDebug(`[bridge:session] Spawning sessionId=${t.sessionId} sdkUrl=${t.sdkUrl} accessToken=${t.accessToken?`present`:`MISSING`}`),e.onDebug(`[bridge:session] Child args: ${s.join(` `)}`),i&&e.onDebug(`[bridge:session] Debug log: ${i}`);let l=pe(e.execPath,s,{cwd:n,stdio:[`pipe`,`pipe`,`pipe`],env:c,windowsHide:!0});e.onDebug(`[bridge:session] sessionId=${t.sessionId} pid=${l.pid}`);let d=[],f=null,p=[],m=!1,g=!1;l.stderr&&me({input:l.stderr}).on(`line`,t=>{e.verbose&&process.stderr.write(t+`
2
- `),p.length>=$&&p.shift(),p.push(t)}),l.stdout&&me({input:l.stdout}).on(`line`,n=>{a&&a.write(n+`
3
- `),e.onDebug(`[bridge:ws] sessionId=${t.sessionId} <<< ${N(n)}`),e.verbose&&process.stderr.write(n+`
4
- `);let r=ye(n,t.sessionId,e.onDebug);for(let n of r)d.length>=he&&d.shift(),d.push(n),f=n,e.onActivity?.(t.sessionId,n);{let r;try{r=u(n)}catch{}if(r&&typeof r==`object`){let n=r;if(n.type===`control_request`)n.request?.subtype===`can_use_tool`&&e.onPermissionRequest&&e.onPermissionRequest(t.sessionId,r,t.accessToken);else if(n.type===`user`&&!g&&t.onFirstUserMessage){let e=be(n);e&&(g=!0,t.onFirstUserMessage(e))}}}});let _=new Promise(n=>{l.on(`close`,(r,i)=>{a&&(a.end(),a=null),i===`SIGTERM`||i===`SIGINT`?(e.onDebug(`[bridge:session] sessionId=${t.sessionId} interrupted signal=${i} pid=${l.pid}`),n(`interrupted`)):r===0?(e.onDebug(`[bridge:session] sessionId=${t.sessionId} completed exit_code=0 pid=${l.pid}`),n(`completed`)):(e.onDebug(`[bridge:session] sessionId=${t.sessionId} failed exit_code=${r} pid=${l.pid}`),n(`failed`))}),l.on(`error`,r=>{e.onDebug(`[bridge:session] sessionId=${t.sessionId} spawn error: ${r.message}`),n(`failed`)})}),v={sessionId:t.sessionId,done:_,activities:d,accessToken:t.accessToken,lastStderr:p,get currentActivity(){return f},kill(){l.killed||(e.onDebug(`[bridge:session] Sending SIGTERM to sessionId=${t.sessionId} pid=${l.pid}`),process.platform===`win32`?l.kill():l.kill(`SIGTERM`))},forceKill(){!m&&l.pid&&(m=!0,e.onDebug(`[bridge:session] Sending SIGKILL to sessionId=${t.sessionId} pid=${l.pid}`),process.platform===`win32`?l.kill():l.kill(`SIGKILL`))},writeStdin(n){l.stdin&&!l.stdin.destroyed&&(e.onDebug(`[bridge:ws] sessionId=${t.sessionId} >>> ${N(n)}`),l.stdin.write(n))},updateAccessToken(n){v.accessToken=n,v.writeStdin(h({type:`update_environment_variables`,variables:{CLAUDE_CODE_SESSION_ACCESS_TOKEN:n}})+`
5
- `),e.onDebug(`[bridge:session] Sent token refresh via stdin for sessionId=${t.sessionId}`)}};return v}}}p(),a(),P();var Ce={connInitialMs:2e3,connCapMs:12e4,connGiveUpMs:6e5,generalInitialMs:500,generalCapMs:3e4,generalGiveUpMs:6e5},we=1e3;function Te(e){return e.connCapMs*2}function Ee(){let e=[...K()],t=q();return t&&e.push(t),e}function De(e,t,n){try{return e.spawn(t,n)}catch(e){let t=d(e);return x(Error(`Session spawn failed: ${t}`)),t}}async function Oe(t,r,i,a,c,u,f,p=Ce,h,g){let _=new AbortController;f.aborted?_.abort():f.addEventListener(`abort`,()=>_.abort(),{once:!0});let v=_.signal,b=new Map,S=new Map,T=new Map,E=new Map,D=new Map,O=new Map,k=new Set,j=new Map,te=new Set,M=new Set,N=ie(v);async function P(){L(`heartbeat: checking ${b.size} active session(s)`);let e=!1,t=!1,n=[];for(let[i]of b){let o=T.get(i),s=D.get(i);if(!(!o||!s))try{await a.heartbeatWork(r,o,s),e=!0}catch(e){m(`[bridge:heartbeat] Failed for sessionId=${i} workId=${o}: ${d(e)}`),e instanceof B&&(C(`tengu_bridge_heartbeat_error`,{status:e.status,error_type:e.status===401||e.status===403?`auth_failed`:`fatal`}),e.status===401||e.status===403?n.push(i):t=!0)}}for(let e of n){u.logVerbose(`Session ${e} token expired — re-queuing via bridge/reconnect`);try{await a.reconnectSession(r,e),m(`[bridge:heartbeat] Re-queued sessionId=${e} via bridge/reconnect`)}catch(t){u.logError(`Failed to refresh session ${e} token: ${d(t)}`),m(`[bridge:heartbeat] reconnectSession(${e}) failed: ${d(t)}`,{level:`error`})}}return t?`fatal`:n.length>0?`auth_failed`:e?`ok`:`failed`}let ne=new Set,V=g?le({getAccessToken:g,onRefresh:(e,t)=>{let n=b.get(e);n&&(ne.has(e)?(u.logVerbose(`Refreshing session ${e} token via bridge/reconnect`),a.reconnectSession(r,e).catch(t=>{u.logError(`Failed to refresh session ${e} token: ${d(t)}`),m(`[bridge:token] reconnectSession(${e}) failed: ${d(t)}`,{level:`error`})})):n.updateAccessToken(t))},label:`bridge`}):null,H=Date.now(),W=new Set;function G(e){W.add(e),e.finally(()=>W.delete(e))}let K=0,q=0,J=null,Y=null,X=null,Z=null;if(m(`[bridge:work] Starting poll loop spawnMode=${t.spawnMode} maxSessions=${t.maxSessions} environmentId=${r}`),y(`info`,`bridge_loop_started`,{max_sessions:t.maxSessions,spawn_mode:t.spawnMode}),process.env.USER_TYPE===`ant`){let e;if(t.debugFile){let n=t.debugFile.lastIndexOf(`.`);e=n>0?`${t.debugFile.slice(0,n)}-*${t.debugFile.slice(n)}`:`${t.debugFile}-*`}else e=de(ue(),`claude`,`bridge-session-*.log`);u.setDebugLogPath(e)}u.printBanner(t,r),u.updateSessionCount(0,t.maxSessions,t.spawnMode),h&&u.setAttached(h);function fe(){u.updateSessionCount(b.size,t.maxSessions,t.spawnMode);for(let[e,t]of b){let n=t.currentActivity;n&&u.updateSessionActivity(E.get(e)??e,n)}if(b.size===0){u.updateIdleStatus();return}let[e,n]=[...b.entries()].pop(),r=S.get(e);if(!r)return;let i=n.currentActivity;if(!i||i.type===`result`||i.type===`error`){t.maxSessions>1&&u.refreshDisplay();return}let a=w(Date.now()-r),o=n.activities.filter(e=>e.type===`tool_start`).slice(-5).map(e=>e.summary);u.updateSessionStatus(e,a,i,o)}function Q(){pe(),fe(),Z=setInterval(fe,we)}function pe(){Z&&(clearInterval(Z),Z=null)}function me(e,n,i){return o=>{let c=T.get(e);L(`session done: sessionId=${e} workId=${c??`none`} status=${o} wasTimedOut=${te.has(e)} duration=${Math.round((Date.now()-n)/1e3)}s stderr=${i.lastStderr.length>0?i.lastStderr.join(`\\n`).slice(0,500):`(none)`}`),b.delete(e),S.delete(e),T.delete(e),D.delete(e);let l=E.get(e)??e;E.delete(e),u.removeSession(l),M.delete(l),ne.delete(e);let f=O.get(e);f&&(clearTimeout(f),O.delete(e)),V?.cancel(e),N.wake();let h=te.delete(e),g=h&&o===`interrupted`?`failed`:o,A=Date.now()-n;m(`[bridge:session] sessionId=${e} workId=${c??`unknown`} exited status=${g} duration=${w(A)}`),C(`tengu_bridge_session_done`,{status:g,duration_ms:A}),y(`info`,`bridge_session_done`,{status:g,duration_ms:A}),u.clearStatus(),pe();let ee=i.lastStderr.length>0?i.lastStderr.join(`
6
- `):void 0,P;switch(g){case`completed`:u.logSessionComplete(e,A);break;case`failed`:!h&&!v.aborted&&(P=ee??`Process exited with error`,u.logSessionFailed(e,P),x(Error(`Bridge session failed: ${P}`)));break;case`interrupted`:u.logVerbose(`Session ${e} interrupted`);break}g!==`interrupted`&&c&&(G(Pe(a,r,c,u,p.stopWorkBaseDelayMs)),k.add(c));let F=j.get(e);if(F&&(j.delete(e),G(s(F.worktreePath,F.worktreeBranch,F.gitRoot,F.hookBased).catch(e=>u.logVerbose(`Failed to remove worktree ${F.worktreePath}: ${d(e)}`)))),g!==`interrupted`&&!v.aborted)if(t.spawnMode!==`single-session`)G(a.archiveSession(l).catch(t=>u.logVerbose(`Failed to archive session ${e}: ${d(t)}`))),m(`[bridge:session] Session ${g}, returning to idle (multi-session mode)`);else{m(`[bridge:session] Session ${g}, aborting poll loop to tear down environment`),_.abort();return}v.aborted||Q()}}for(h||Q();!v.aborted;){let f=I();try{L(`poll: envId=${r} activeSessions=${b.size}`);let g=await a.pollForWork(r,i,v,f.reclaim_older_than_ms);if(J!==null||Y!==null){let e=Date.now()-(J??Y??Date.now());u.logReconnected(e),m(`[bridge:poll] Reconnected after ${w(e)}`),C(`tengu_bridge_reconnected`,{disconnected_ms:e})}if(K=0,q=0,J=null,Y=null,X=null,!g){if(b.size>=t.maxSessions){let e=f.multisession_poll_interval_ms_at_capacity;if(f.non_exclusive_heartbeat_interval_ms>0){C(`tengu_bridge_heartbeat_mode_entered`,{active_sessions:b.size,heartbeat_interval_ms:f.non_exclusive_heartbeat_interval_ms});let n=e>0?Date.now()+e:null,r=`ok`,i=0;for(;!v.aborted&&b.size>=t.maxSessions&&(n===null||Date.now()<n);){let e=I();if(e.non_exclusive_heartbeat_interval_ms<=0)break;let t=N.signal();if(r=await P(),r===`auth_failed`||r===`fatal`){t.cleanup();break}i++,await A(e.non_exclusive_heartbeat_interval_ms,t.signal),t.cleanup()}let a=r===`auth_failed`||r===`fatal`?r:v.aborted?`shutdown`:b.size<t.maxSessions?`capacity_changed`:n!==null&&Date.now()>=n?`poll_due`:`config_disabled`;if(C(`tengu_bridge_heartbeat_mode_exited`,{reason:a,heartbeat_cycles:i,active_sessions:b.size}),a===`poll_due`&&m(`[bridge:poll] Heartbeat poll_due after ${i} cycles — falling through to pollForWork`),r===`auth_failed`||r===`fatal`){let t=N.signal();await A(e>0?e:f.non_exclusive_heartbeat_interval_ms,t.signal),t.cleanup()}}else if(e>0){let t=N.signal();await A(e,t.signal),t.cleanup()}}else await A(b.size>0?f.multisession_poll_interval_ms_partial_capacity:f.multisession_poll_interval_ms_not_at_capacity,v);continue}let _=b.size>=t.maxSessions;if(k.has(g.id)){if(m(`[bridge:work] Skipping already-completed workId=${g.id}`),_){let e=N.signal();f.non_exclusive_heartbeat_interval_ms>0?(await P(),await A(f.non_exclusive_heartbeat_interval_ms,e.signal)):f.multisession_poll_interval_ms_at_capacity>0&&await A(f.multisession_poll_interval_ms_at_capacity,e.signal),e.cleanup()}else await A(1e3,v);continue}let F;try{F=U(g.secret)}catch(e){let t=d(e);if(u.logError(`Failed to decode work secret for workId=${g.id}: ${t}`),C(`tengu_bridge_work_secret_failed`,{}),k.add(g.id),G(Pe(a,r,g.id,u,p.stopWorkBaseDelayMs)),_){let e=N.signal();f.non_exclusive_heartbeat_interval_ms>0?(await P(),await A(f.non_exclusive_heartbeat_interval_ms,e.signal)):f.multisession_poll_interval_ms_at_capacity>0&&await A(f.multisession_poll_interval_ms_at_capacity,e.signal),e.cleanup()}continue}let R=async()=>{m(`[bridge:work] Acknowledging workId=${g.id}`);try{await a.acknowledgeWork(r,g.id,F.session_ingress_token)}catch(e){m(`[bridge:work] Acknowledge failed workId=${g.id}: ${d(e)}`)}},z=g.data.type;switch(g.data.type){case`healthcheck`:await R(),m(`[bridge:work] Healthcheck received`),u.logVerbose(`Healthcheck received`);break;case`session`:{let i=g.data.id;L(`work received: type=session sessionId=${i} workId=${g.id}`);try{re(i,`session_id`)}catch{await R(),u.logError(`Invalid session_id received: ${i}`);break}let f=b.get(i);if(f){f.updateAccessToken(F.session_ingress_token),D.set(i,F.session_ingress_token),T.set(i,g.id),V?.schedule(i,F.session_ingress_token),m(`[bridge:work] Updated access token for existing sessionId=${i} workId=${g.id}`),await R();break}if(b.size>=t.maxSessions){m(`[bridge:work] At capacity (${b.size}/${t.maxSessions}), cannot spawn new session for workId=${g.id}`);break}await R();let _=Date.now(),w,N=!1,P;if(F.use_code_sessions===!0||e(process.env.CLAUDE_BRIDGE_USE_CCR_V2)){w=ce(t.apiBaseUrl,i);for(let e=1;e<=2;e++)try{P=await oe(w,F.session_ingress_token),N=!0,m(`[bridge:session] CCR v2: registered worker sessionId=${i} epoch=${P} attempt=${e}`);break}catch(t){let n=d(t);if(e<2){if(m(`[bridge:session] CCR v2: registerWorker attempt ${e} failed, retrying: ${n}`),await A(2e3,v),v.aborted)break;continue}u.logError(`CCR v2 worker registration failed for session ${i}: ${n}`),x(Error(`registerWorker failed: ${n}`)),k.add(g.id),G(Pe(a,r,g.id,u,p.stopWorkBaseDelayMs))}if(!N)break}else w=se(t.sessionIngressUrl,i);let I=t.spawnMode,z=t.dir,B=0;if(I===`worktree`&&(h===void 0||!ae(i,h))){let e=Date.now();try{let t=await l(`bridge-${ge(i)}`);B=Date.now()-e,j.set(i,{worktreePath:t.worktreePath,worktreeBranch:t.worktreeBranch,gitRoot:t.gitRoot,hookBased:t.hookBased}),z=t.worktreePath,m(`[bridge:session] Created worktree for sessionId=${i} at ${t.worktreePath}`)}catch(e){let t=d(e);u.logError(`Failed to create worktree for session ${i}: ${t}`),x(Error(`Worktree creation failed: ${t}`)),k.add(g.id),G(Pe(a,r,g.id,u,p.stopWorkBaseDelayMs));break}}m(`[bridge:session] Spawning sessionId=${i} sdkUrl=${w}`);let H=ee(i);L(`spawning session: sessionId=${i} sdkUrl=${w} useCcrV2=${N} workerEpoch=${P} dir=${z} accessToken=${F.session_ingress_token?F.session_ingress_token.slice(0,8)+`...`:`NONE`}`);let ie=De(c,{sessionId:i,sdkUrl:w,accessToken:F.session_ingress_token,useCcrV2:N,workerEpoch:P,onFirstUserMessage:e=>{if(M.has(H))return;M.add(H);let n=Le(e);u.setSessionTitle(H,n),m(`[bridge:title] derived title for ${H}: ${n}`),import(`./createSession-CSwlW2T2.js`).then(({updateBridgeSessionTitle:e})=>e(H,n,{baseUrl:t.apiBaseUrl})).catch(e=>m(`[bridge:title] failed to update title for ${H}: ${e}`,{level:`error`}))}},z);if(typeof ie==`string`){u.logError(`Failed to spawn session ${i}: ${ie}`);let e=j.get(i);e&&(j.delete(i),G(s(e.worktreePath,e.worktreeBranch,e.gitRoot,e.hookBased).catch(t=>u.logVerbose(`Failed to remove worktree ${e.worktreePath}: ${d(t)}`)))),k.add(g.id),G(Pe(a,r,g.id,u,p.stopWorkBaseDelayMs));break}let U=ie,W=Date.now()-_;C(`tengu_bridge_session_started`,{active_sessions:b.size,spawn_mode:I,in_worktree:j.has(i),spawn_duration_ms:W,worktree_create_ms:B,inProtectedNamespace:n()}),y(`info`,`bridge_session_started`,{spawn_mode:I,in_worktree:j.has(i),spawn_duration_ms:W,worktree_create_ms:B}),b.set(i,U),T.set(i,g.id),D.set(i,F.session_ingress_token),E.set(i,H);let le=Date.now();S.set(i,le),u.logSessionStart(i,`Session ${i}`);let K=ge(i),q;if(t.debugFile){let e=t.debugFile.lastIndexOf(`.`);q=e>0?`${t.debugFile.slice(0,e)}-${K}${t.debugFile.slice(e)}`:`${t.debugFile}-${K}`}else(t.verbose||process.env.USER_TYPE===`ant`)&&(q=de(ue(),`claude`,`bridge-session-${K}.log`));q&&u.logVerbose(`Debug log: ${q}`),u.addSession(H,o(H,t.sessionIngressUrl)),Q(),u.setAttached(H),Re(H,t.apiBaseUrl).then(e=>{e&&b.has(i)&&(M.add(H),u.setSessionTitle(H,e),m(`[bridge:title] server title for ${H}: ${e}`))}).catch(e=>m(`[bridge:title] failed to fetch title for ${H}: ${e}`,{level:`error`}));let J=t.sessionTimeoutMs??864e5;if(J>0){let e=setTimeout(Fe,J,i,J,u,te,U);O.set(i,e)}N&&ne.add(i),V?.schedule(i,F.session_ingress_token),U.done.then(me(i,le,U));break}default:await R(),m(`[bridge:work] Unknown work type: ${z}, skipping`);break}if(_){let e=N.signal();f.non_exclusive_heartbeat_interval_ms>0?(await P(),await A(f.non_exclusive_heartbeat_interval_ms,e.signal)):f.multisession_poll_interval_ms_at_capacity>0&&await A(f.multisession_poll_interval_ms_at_capacity,e.signal),e.cleanup()}}catch(e){if(v.aborted)break;if(e instanceof B){z(e.errorType)?u.logStatus(e.message):R(e)?m(`[bridge:work] Suppressed 403 error: ${e.message}`):(u.logError(e.message),x(e)),C(`tengu_bridge_fatal_error`,{status:e.status,error_type:e.errorType}),y(z(e.errorType)?`info`:`error`,`bridge_fatal_error`,{status:e.status,error_type:e.errorType});break}let t=F(e);if(L(`poll error: ${t} isConn=${Ae(e)} isServer=${je(e)} activeSessions=${b.size}`),Ae(e)||je(e)){let e=Date.now();X!==null&&e-X>Te(p)&&(m(`[bridge:work] Detected system sleep (${Math.round((e-X)/1e3)}s gap), resetting error budget`),y(`info`,`bridge_poll_sleep_detected`,{gapMs:e-X}),J=null,K=0,Y=null,q=0),X=e,J||(J=e);let n=e-J;if(n>=p.connGiveUpMs){u.logError(`Server unreachable for ${Math.round(n/6e4)} minutes, giving up.`),C(`tengu_bridge_poll_give_up`,{error_type:`connection`,elapsed_ms:n}),y(`error`,`bridge_poll_give_up`,{error_type:`connection`,elapsed_ms:n});break}Y=null,q=0,K=K?Math.min(K*2,p.connCapMs):p.connInitialMs;let r=Me(K);u.logVerbose(`Connection error, retrying in ${Ne(r)} (${Math.round(n/1e3)}s elapsed): ${t}`),u.updateReconnectingStatus(Ne(r),w(n)),I().non_exclusive_heartbeat_interval_ms>0&&await P(),await A(r,v)}else{let e=Date.now();X!==null&&e-X>Te(p)&&(m(`[bridge:work] Detected system sleep (${Math.round((e-X)/1e3)}s gap), resetting error budget`),y(`info`,`bridge_poll_sleep_detected`,{gapMs:e-X}),J=null,K=0,Y=null,q=0),X=e,Y||(Y=e);let n=e-Y;if(n>=p.generalGiveUpMs){u.logError(`Persistent errors for ${Math.round(n/6e4)} minutes, giving up.`),C(`tengu_bridge_poll_give_up`,{error_type:`general`,elapsed_ms:n}),y(`error`,`bridge_poll_give_up`,{error_type:`general`,elapsed_ms:n});break}J=null,K=0,q=q?Math.min(q*2,p.generalCapMs):p.generalInitialMs;let r=Me(q);u.logVerbose(`Poll failed, retrying in ${Ne(r)} (${Math.round(n/1e3)}s elapsed): ${t}`),u.updateReconnectingStatus(Ne(r),w(n)),I().non_exclusive_heartbeat_interval_ms>0&&await P(),await A(r,v)}}}pe(),u.clearStatus();let he=Date.now()-H;C(`tengu_bridge_shutdown`,{active_sessions:b.size,loop_duration_ms:he}),y(`info`,`bridge_shutdown`,{active_sessions:b.size,loop_duration_ms:he});let $=new Set(b.keys());h&&$.add(h);let _e=new Map(E);if(b.size>0){m(`[bridge:shutdown] Shutting down ${b.size} active session(s)`),u.logStatus(`Shutting down ${b.size} active session(s)\u2026`);let e=new Map(T);for(let[e,t]of b.entries())m(`[bridge:shutdown] Sending SIGTERM to sessionId=${e}`),t.kill();let t=new AbortController;await Promise.race([Promise.allSettled([...b.values()].map(e=>e.done)),A(p.shutdownGraceMs??3e4,t.signal)]),t.abort();for(let[e,t]of b.entries())m(`[bridge:shutdown] Force-killing stuck sessionId=${e}`),t.forceKill();for(let e of O.values())clearTimeout(e);if(O.clear(),V?.cancelAll(),j.size>0){let e=[...j.values()];j.clear(),m(`[bridge:shutdown] Cleaning up ${e.length} worktree(s)`),await Promise.allSettled(e.map(e=>s(e.worktreePath,e.worktreeBranch,e.gitRoot,e.hookBased)))}await Promise.allSettled([...e.entries()].map(([e,t])=>a.stopWork(r,t,!0).catch(n=>u.logVerbose(`Failed to stop work ${t} for session ${e}: ${d(n)}`))))}W.size>0&&await Promise.allSettled([...W]),$.size>0&&(m(`[bridge:shutdown] Archiving ${$.size} session(s)`),await Promise.allSettled([...$].map(e=>a.archiveSession(_e.get(e)??ee(e)).catch(t=>u.logVerbose(`Failed to archive session ${e}: ${d(t)}`)))));try{await a.deregisterEnvironment(r),m(`[bridge:shutdown] Environment deregistered, bridge offline`),u.logVerbose(`Environment deregistered.`)}catch(e){u.logVerbose(`Failed to deregister environment: ${d(e)}`)}let{clearBridgePointer:ve}=await import(`./bridgePointer-DIM0sj0x.js`);await ve(t.dir),u.logVerbose(`Environment offline.`)}var ke=new Set([`ECONNREFUSED`,`ECONNRESET`,`ETIMEDOUT`,`ENETUNREACH`,`EHOSTUNREACH`]);function Ae(e){return!!(e&&typeof e==`object`&&`code`in e&&typeof e.code==`string`&&ke.has(e.code))}function je(e){return!!e&&typeof e==`object`&&`code`in e&&typeof e.code==`string`&&e.code===`ERR_BAD_RESPONSE`}function Me(e){return Math.max(0,e+e*.25*(2*Math.random()-1))}function Ne(e){return e>=1e3?`${(e/1e3).toFixed(1)}s`:`${Math.round(e)}ms`}async function Pe(e,t,n,r,i=1e3){for(let a=1;a<=3;a++)try{await e.stopWork(t,n,!1),m(`[bridge:work] stopWork succeeded for workId=${n} on attempt ${a}/3`);return}catch(e){if(e instanceof B){R(e)?m(`[bridge:work] Suppressed stopWork 403 for ${n}: ${e.message}`):r.logError(`Failed to stop work ${n}: ${e.message}`),y(`error`,`bridge_stop_work_failed`,{attempts:a,fatal:!0});return}let t=d(e);if(a<3){let e=Me(i*2**(a-1));r.logVerbose(`Failed to stop work ${n} (attempt ${a}/3), retrying in ${Ne(e)}: ${t}`),await A(e)}else r.logError(`Failed to stop work ${n} after 3 attempts: ${t}`),y(`error`,`bridge_stop_work_failed`,{attempts:3})}}function Fe(e,t,n,r,i){m(`[bridge:session] sessionId=${e} timed out after ${w(t)}`),C(`tengu_bridge_session_timeout`,{timeout_ms:t}),n.logSessionFailed(e,`Session timed out after ${w(t)}`),r.add(e),i.kill()}var Ie=80;function Le(e){return T(e.replace(/\s+/g,` `).trim(),Ie)}async function Re(e,t){let{getBridgeSession:n}=await import(`./createSession-CSwlW2T2.js`);return(await n(e,{baseUrl:t}))?.title||void 0}var ze=class extends Error{constructor(e){super(e),this.name=`BridgeHeadlessPermanentError`}};async function Be(e,t){let{dir:n,log:r}=e;process.chdir(n);let{setOriginalCwd:i,setCwdState:a}=await import(`./state-DU9lRJ9x.js`);i(n),a(n);let{enableConfigs:o,checkHasTrustDialogAccepted:s}=await import(`./config-DpOOllGk.js`);o();let{initSinks:c}=await import(`./sinks-5G_xhc1Q.js`);if(c(),!s())throw new ze(`Workspace not trusted: ${n}. Run \`claude\` in that directory first to accept the trust dialog.`);if(!e.getAccessToken())throw Error(H);let{getBridgeBaseUrl:l}=await import(`./bridgeConfig-C82un7rJ.js`),u=l();if(u.startsWith(`http://`)&&!u.includes(`localhost`)&&!u.includes(`127.0.0.1`))throw new ze(`Remote Control base URL uses HTTP. Only HTTPS or localhost HTTP is allowed.`);let f=process.env.CLAUDE_BRIDGE_SESSION_INGRESS_URL||u,{getBranch:p,getRemoteUrl:m,findGitRoot:h}=await import(`./git-D6dOU2mT.js`),{hasWorktreeCreateHook:g}=await import(`./hooks-CsP42iOp.js`);if(e.spawnMode===`worktree`&&!(g()||h(n)!==null))throw new ze(`Worktree mode requires a git repository or WorktreeCreate hooks. Directory ${n} has neither.`);let _=await p(),v=await m(),y=Y(),b=Q(),x={dir:n,machineName:y,branch:_,gitRepoUrl:v,maxSessions:e.capacity,spawnMode:e.spawnMode,verbose:!1,sandbox:e.sandbox,bridgeId:b,workerType:`claude_code`,environmentId:Q(),apiBaseUrl:u,sessionIngressUrl:f,sessionTimeoutMs:e.sessionTimeoutMs},S=V({baseUrl:u,getAccessToken:e.getAccessToken,runnerVersion:`0.0.8`,onDebug:r,onAuth401:e.onAuth401,getTrustedDeviceToken:W}),C,w;try{let e=await S.registerBridgeEnvironment(x);C=e.environment_id,w=e.environment_secret}catch(e){throw Error(`Bridge registration failed: ${d(e)}`)}let T=Se({execPath:process.execPath,scriptArgs:Ee(),env:process.env,verbose:!1,sandbox:e.sandbox,permissionMode:e.permissionMode,onDebug:r}),E=Ve(r);E.printBanner(x,C);let D;if(e.createSessionOnStart){let{createBridgeSession:n}=await import(`./createSession-CSwlW2T2.js`);try{let i=await n({environmentId:C,title:e.name,events:[],gitRepoUrl:v,branch:_,signal:t,baseUrl:u,getAccessToken:e.getAccessToken,permissionMode:e.permissionMode});i&&(D=i,r(`created initial session ${i}`))}catch(e){r(`session pre-creation failed (non-fatal): ${d(e)}`)}}await Oe(x,C,w,S,T,E,t,void 0,D,async()=>e.getAccessToken())}function Ve(e){let t=()=>{};return{printBanner:(t,n)=>e(`registered environmentId=${n} dir=${t.dir} spawnMode=${t.spawnMode} capacity=${t.maxSessions}`),logSessionStart:(t,n)=>e(`session start ${t}`),logSessionComplete:(t,n)=>e(`session complete ${t} (${n}ms)`),logSessionFailed:(t,n)=>e(`session failed ${t}: ${n}`),logStatus:e,logVerbose:e,logError:t=>e(`error: ${t}`),logReconnected:t=>e(`reconnected after ${t}ms`),addSession:(t,n)=>e(`session attached ${t}`),removeSession:t=>e(`session detached ${t}`),updateIdleStatus:t,updateReconnectingStatus:t,updateSessionStatus:t,updateSessionActivity:t,updateSessionCount:t,updateFailedStatus:t,setSpawnModeDisplay:t,setRepoInfo:t,setDebugLogPath:t,setAttached:t,setSessionTitle:t,clearStatus:t,toggleQr:t,refreshDisplay:t}}D(),g();var He=78,Ue=1;async function We(e){if(!e){console.error(`Error: --daemon-worker requires a worker kind`),process.exitCode=He;return}switch(e){case`remoteControl`:await Ge();break;default:console.error(`Error: unknown daemon worker kind '${e}'`),process.exitCode=He}}async function Ge(){let e=process.env.DAEMON_WORKER_DIR||Z(`.`),t=process.env.DAEMON_WORKER_NAME||void 0,n=process.env.DAEMON_WORKER_SPAWN_MODE||`same-dir`,r=parseInt(process.env.DAEMON_WORKER_CAPACITY||`4`,10),i=process.env.DAEMON_WORKER_PERMISSION||void 0,a=process.env.DAEMON_WORKER_SANDBOX===`1`,o=process.env.DAEMON_WORKER_TIMEOUT_MS?parseInt(process.env.DAEMON_WORKER_TIMEOUT_MS,10):void 0,s=process.env.DAEMON_WORKER_CREATE_SESSION!==`0`,c=new AbortController,l=()=>c.abort();process.on(`SIGTERM`,l),process.on(`SIGINT`,l);let u={dir:e,name:t,spawnMode:n,capacity:r,permissionMode:i,sandbox:a,sessionTimeoutMs:o,createSessionOnStart:s,getAccessToken:()=>O()?.accessToken,onAuth401:async e=>!!O()?.accessToken,log:e=>{console.log(`[remoteControl] ${e}`)}};try{await Be(u,c.signal)}catch(e){e instanceof ze?(console.error(`[remoteControl] permanent error: ${e.message}`),process.exitCode=He):(console.error(`[remoteControl] transient error: ${d(e)}`),process.exitCode=Ue)}finally{process.off(`SIGTERM`,l),process.off(`SIGINT`,l)}}export{We as runDaemonWorker};
@@ -1 +0,0 @@
1
- import{Et as e,xt as t}from"./loadAgentsDir-ByO8eJqU.js";e();export{t as execIntoTmuxWorktree};