@readmagic/workmate 0.0.22 → 0.0.23

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 (394) hide show
  1. package/dist/chunks/{AddWorkspaceDirectory-DWgTWJ7R.js → AddWorkspaceDirectory-OgcBcK5A.js} +1 -1
  2. package/dist/chunks/AgentsMdExternalIncludesDialog-CDNd5-7E.js +1 -0
  3. package/dist/chunks/{AgentsMdExternalIncludesDialog-s0Orgord.js → AgentsMdExternalIncludesDialog-CNEifEyV.js} +1 -1
  4. package/dist/chunks/App-B-3tPQ3k.js +1 -0
  5. package/dist/chunks/BackgroundTasksDialog-COuhHcey.js +2 -0
  6. package/dist/chunks/{BypassPermissionsModeDialog-D2Gesf-u.js → BypassPermissionsModeDialog-bJek4siJ.js} +1 -1
  7. package/dist/chunks/CustomSelect-DoeEXOIP.js +1 -0
  8. package/dist/chunks/{DiffDialog-v2IiYyi3.js → DiffDialog-B3X9FMpO.js} +5 -5
  9. package/dist/chunks/Doctor-6PXyjIi6.js +3 -0
  10. package/dist/chunks/Doctor-DNgkgYhB.js +1 -0
  11. package/dist/chunks/{ExitFlow-BasHk1mk.js → ExitFlow-DgAZp_8U.js} +2 -2
  12. package/dist/chunks/Grove-CHatOzcE.js +11 -0
  13. package/dist/chunks/{InvalidConfigDialog-DYVQK5js.js → InvalidConfigDialog-DXL92MN9.js} +1 -1
  14. package/dist/chunks/{InvalidSettingsDialog-Dg6OiStR.js → InvalidSettingsDialog-Dtmpzeps.js} +1 -1
  15. package/dist/chunks/{KeybindingProviderSetup-Bn1jzN5F.js → KeybindingProviderSetup-DA37QUFs.js} +1 -1
  16. package/dist/chunks/MCPConnectionManager-thZd-xA_.js +1 -0
  17. package/dist/chunks/MCPToolListView-CpY-YJg4.js +1 -0
  18. package/dist/chunks/{McpParsingWarnings-DZejAh8b.js → McpParsingWarnings-JvChf3xr.js} +1 -1
  19. package/dist/chunks/MessageSelector-C0_iw7SI.js +3 -0
  20. package/dist/chunks/Messages-K4DDsDP9.js +10 -0
  21. package/dist/chunks/Onboarding-C1UdzM-1.js +1 -0
  22. package/dist/chunks/{PromptInputFooterSuggestions-lkr_A5jQ.js → PromptInputFooterSuggestions-AyLog8p7.js} +1 -1
  23. package/dist/chunks/{PromptInputHelpMenu-DaQKKyM5.js → PromptInputHelpMenu-oyic20ip.js} +1 -1
  24. package/dist/chunks/ProviderSetup-XcBHjUnd.js +1 -0
  25. package/dist/chunks/QueryEngine-DYxBjJ4i.js +1 -0
  26. package/dist/chunks/REPL-CQBJRrT0.js +124 -0
  27. package/dist/chunks/REPL-CrVuMQY2.js +1 -0
  28. package/dist/chunks/ResumeConversation-Dl8H9Gfy.js +1 -0
  29. package/dist/chunks/SearchExtraToolsTool-lv7VE50N.js +1 -0
  30. package/dist/chunks/{SelectMulti-CNE06VAN.js → SelectMulti-Bc6l11_K.js} +1 -1
  31. package/dist/chunks/Settings-TGp3fPrS.js +3 -0
  32. package/dist/chunks/Spinner-zYPFVFHN.js +1 -0
  33. package/dist/chunks/{SpinnerGlyph-A6G-gloN.js → SpinnerGlyph-CmkRUvHe.js} +1 -1
  34. package/dist/chunks/{TextInput-7uqPhq9T.js → TextInput-CD9iau2k.js} +5 -5
  35. package/dist/chunks/{ThemePicker-DT9zVy-0.js → ThemePicker-0F0hZYPX.js} +1 -1
  36. package/dist/chunks/TrustDialog-C76YiMKz.js +1 -0
  37. package/dist/chunks/{ValidationErrorsList-BLtP647v.js → ValidationErrorsList-DgNzJQUP.js} +1 -1
  38. package/dist/chunks/_baseEach-4ff-vRlp.js +1 -0
  39. package/dist/chunks/add-dir-JMsRLGfx.js +1 -0
  40. package/dist/chunks/{agentDisplay-vLQHFrmq.js → agentDisplay-BReJUBWg.js} +1 -1
  41. package/dist/chunks/agents-9qQ8I6zW.js +101 -0
  42. package/dist/chunks/{agents-DLz0kfsr.js → agents-B3x8yJ_r.js} +1 -1
  43. package/dist/chunks/allErrors-DfWylHSw.js +1 -0
  44. package/dist/chunks/{appleTerminalBackup-BYKdf3of.js → appleTerminalBackup-BArZWB21.js} +1 -1
  45. package/dist/chunks/backgroundHousekeeping-BGxHB_OX.js +1 -0
  46. package/dist/chunks/backgroundHousekeeping-CVNIhQg8.js +17 -0
  47. package/dist/chunks/banner-Cu2-XUek.js +2 -0
  48. package/dist/chunks/{bedrockClient-DxE_mHFI.js → bedrockClient-CfiDN-kF.js} +2 -2
  49. package/dist/chunks/branch-C4TsMEkx.js +2 -0
  50. package/dist/chunks/{break-cache-BL2gnDLX.js → break-cache-BMXqFTeS.js} +2 -2
  51. package/dist/chunks/btw-Dn1eYFAz.js +1 -0
  52. package/dist/chunks/caches-BGzKwpnc.js +1 -0
  53. package/dist/chunks/caches-DArHxBgL.js +1 -0
  54. package/dist/chunks/{claudeDesktop-D3PEgx3U.js → claudeDesktop-D8ml2767.js} +1 -1
  55. package/dist/chunks/{clear-CXfhVRp8.js → clear-Bdhb6b39.js} +1 -1
  56. package/dist/chunks/{client-DdenNfkQ.js → client-4iqhC8xq.js} +1 -1
  57. package/dist/chunks/client-BiqbIkwr.js +1 -0
  58. package/dist/chunks/client-CZ8nyVh5.js +1 -0
  59. package/dist/chunks/{client-DvhWKIOx.js → client-CpTCeWba.js} +1 -1
  60. package/dist/chunks/commands-QepeBbFn.js +1 -0
  61. package/dist/chunks/compact-Bu9BUpxV.js +2 -0
  62. package/dist/chunks/config-C-Y2qtB2.js +3 -0
  63. package/dist/chunks/config-D58C3_Lu.js +1 -0
  64. package/dist/chunks/config-DD8fCYXn.js +1 -0
  65. package/dist/chunks/{context-3s9wtn4L.js → context-CY_yfdYa.js} +1 -1
  66. package/dist/chunks/context-noninteractive-BDDi3NLF.js +1 -0
  67. package/dist/chunks/{context-noninteractive-CJhUu_4y.js → context-noninteractive-Dd4xIoP1.js} +5 -5
  68. package/dist/chunks/conversation-B0wxBwzv.js +1 -0
  69. package/dist/chunks/conversation-DUu9qBnq.js +1 -0
  70. package/dist/chunks/conversationRecovery-2ft8sCPE.js +1 -0
  71. package/dist/chunks/crossProjectResume-6boHMUBx.js +40 -0
  72. package/dist/chunks/cwd-Dc3NV7s8.js +1 -0
  73. package/dist/chunks/cwd-Pa83R95t.js +1 -0
  74. package/dist/chunks/{datadog-v_mXWncN.js → datadog-BPuGcxxC.js} +1 -1
  75. package/dist/chunks/{debug-8DCufdSp.js → debug-Bglx1aTu.js} +5 -5
  76. package/dist/chunks/{detectRepository-DfX8xXw2.js → detectRepository-CfX8Lc0A.js} +1 -1
  77. package/dist/chunks/{diff-DJSt7QO6.js → diff-BOAElpfQ.js} +1 -1
  78. package/dist/chunks/{directoryCompletion-CT6YVeg7.js → directoryCompletion-D_Rtg-4j.js} +1 -1
  79. package/dist/chunks/dist-es-B3-7VFf2.js +1 -0
  80. package/dist/chunks/dist-es-B7j_mv242.js +1 -0
  81. package/dist/chunks/dist-es-BSKD_hOQ.js +1 -0
  82. package/dist/chunks/dist-es-BSRN-2nA.js +9 -0
  83. package/dist/chunks/{dist-es-yHGBqhBe.js → dist-es-BXXmyhQ2.js} +1 -1
  84. package/dist/chunks/{dist-es-C3reqy7X.js → dist-es-BaQndfvh2.js} +1 -1
  85. package/dist/chunks/dist-es-CzTYn7xo.js +1 -0
  86. package/dist/chunks/dist-es-DSkyibcN.js +1 -0
  87. package/dist/chunks/{dist-es-BOPBJQo3.js → dist-es-_UNJQniz.js} +1 -1
  88. package/dist/chunks/dist-es-hwK6468D.js +1 -0
  89. package/dist/chunks/dist-es-ovsdbtwh.js +1 -0
  90. package/dist/chunks/doctor-CkLzqAMd.js +1 -0
  91. package/dist/chunks/{entry-ex0-RyYV.js → entry-TNOoyy7_.js} +4 -4
  92. package/dist/chunks/{envUtils-DcaKZlRU.js → envUtils-DfkgIdYf.js} +1 -1
  93. package/dist/chunks/esm-eTAUP-La.js +1 -0
  94. package/dist/chunks/{execFileNoThrow-BsfuytkN.js → execFileNoThrow-BTachNBI.js} +1 -1
  95. package/dist/chunks/exit-DXApFJIP.js +1 -0
  96. package/dist/chunks/extraUsage-CmQaLPV1.js +1 -0
  97. package/dist/chunks/extractMemories-xP63mv6R.js +1 -0
  98. package/dist/chunks/fast-C5nQH8rm.js +1 -0
  99. package/dist/chunks/fast-eGx2IxD7.js +1 -0
  100. package/dist/chunks/fetchModelList-CxLsVNsu.js +1 -0
  101. package/dist/chunks/fetchModelList-D24lRIgR.js +1 -0
  102. package/dist/chunks/{fileSuggestions-B-SLfb-o.js → fileSuggestions-DHxdwq28.js} +2 -2
  103. package/dist/chunks/firstPartyEventLogger-BVAogAX8.js +1 -0
  104. package/dist/chunks/firstPartyEventLogger-M6UMli2c.js +3 -0
  105. package/dist/chunks/{gemini-BC9kHhwe.js → gemini-D_ORb_L6.js} +2 -2
  106. package/dist/chunks/generateSessionName-BQoDduyA.js +1 -0
  107. package/dist/chunks/{genericProcessUtils-BYi0OefF.js → genericProcessUtils-DwQFuna9.js} +1 -1
  108. package/dist/chunks/goal-D7c2mSds.js +3 -0
  109. package/dist/chunks/grok-B2-ZbUiR.js +1 -0
  110. package/dist/chunks/grove-O6qp7ITR.js +1 -0
  111. package/dist/chunks/{help-CK90i4hE.js → help-CZJdRviD.js} +1 -1
  112. package/dist/chunks/history-CQiUERTL.js +1 -0
  113. package/dist/chunks/hooks-BNuUlMzL.js +1 -0
  114. package/dist/chunks/{hooks-BRFDg9DV.js → hooks-DIvN6gdv.js} +3 -3
  115. package/dist/chunks/{install-ZMll-dAa.js → install-T_CV1Slu.js} +1 -1
  116. package/dist/chunks/instrumentation-BjqUZ383.js +21 -0
  117. package/dist/chunks/{job-G_ukhLc4.js → job-R6c4-3c8.js} +1 -1
  118. package/dist/chunks/keybindings-CLRaiL_Z.js +1 -0
  119. package/dist/chunks/{launchLocalMemory-BcRlXLm6.js → launchLocalMemory-DrbKrwXc.js} +2 -2
  120. package/dist/chunks/launchOnboarding-tqsMD8ni.js +8 -0
  121. package/dist/chunks/loadAgentsDir-CcmY8zCj.js +1 -0
  122. package/dist/chunks/{loadAgentsDir-C1LkW7gl.js → loadAgentsDir-DlPbtIsS.js} +540 -543
  123. package/dist/chunks/loadPluginHooks-C_msxVIc.js +1 -0
  124. package/dist/chunks/{loader-C61fB6vU.js → loader-CICGtLp2.js} +1 -1
  125. package/dist/chunks/{localSearch-DFo_WTMm.js → localSearch-CK-sFzPm.js} +1 -1
  126. package/dist/chunks/localSearch-DrUj0B-d.js +1 -0
  127. package/dist/chunks/{log-DaILwWJa.js → log-D2TIwHBV.js} +1 -1
  128. package/dist/chunks/logoUtils-x2pHV-Nl.js +1 -0
  129. package/dist/chunks/{magicDocs-DYc9TFmI.js → magicDocs-BEF8D3if.js} +3 -3
  130. package/dist/chunks/main-kOVUGxOS.js +345 -0
  131. package/dist/chunks/managedEnv-BEqrGqn1.js +1 -0
  132. package/dist/chunks/managedEnv-OPlzUPbJ.js +1 -0
  133. package/dist/chunks/mcp-BNd29r6p.js +6 -0
  134. package/dist/chunks/mcp-D0wAJrRT.js +1 -0
  135. package/dist/chunks/mcp-mgOlm1cY.js +2 -0
  136. package/dist/chunks/memory-DDLk9_LJ.js +1 -0
  137. package/dist/chunks/{mode-Pan-Q2c4.js → mode-CcNsWgK3.js} +2 -2
  138. package/dist/chunks/model-BwBG0V1u.js +1 -0
  139. package/dist/chunks/model-DzCP4K-9.js +1 -0
  140. package/dist/chunks/modelOptions-DRaG3bo0.js +1 -0
  141. package/dist/chunks/nativeInstaller-C3pVPqrZ.js +1 -0
  142. package/dist/chunks/notifications-4wP1Tx9Y.js +1 -0
  143. package/dist/chunks/onChangeAppState-BlaoFbYF.js +1 -0
  144. package/dist/chunks/openai-CDN71NdX.js +2 -0
  145. package/dist/chunks/{overlayContext-CMV7nYR9.js → overlayContext-BT2Lq8ei.js} +1 -1
  146. package/dist/chunks/{panel-D9fGQgln.js → panel-CVS4SK_E.js} +1 -1
  147. package/dist/chunks/parser-CG5RuOCK.js +1 -0
  148. package/dist/chunks/{parser-D8slvrJP.js → parser-Cg6hSCmn.js} +1 -1
  149. package/dist/chunks/partition-CIl_ORUT.js +1 -0
  150. package/dist/chunks/{pasteStore-DNV1M5Xd.js → pasteStore-P0zP-ch0.js} +1 -1
  151. package/dist/chunks/permissions-zSNOZSwr.js +3 -0
  152. package/dist/chunks/pidLock-BTqO-h7Y.js +3 -0
  153. package/dist/chunks/{plan-CQLnPLuE.js → plan-Bs6em6lk.js} +1 -1
  154. package/dist/chunks/{platform-Dzff1WWw.js → platform-BacQ6ACS.js} +1 -1
  155. package/dist/chunks/plugin-DDDxjBa0.js +17 -0
  156. package/dist/chunks/{pluginAutoupdate-BJaAqwTH.js → pluginAutoupdate-8qugAFhb.js} +1 -1
  157. package/dist/chunks/pluginBlocklist-q01ackCf.js +1 -0
  158. package/dist/chunks/pluginCliCommands-DXZfCZsv.js +1 -0
  159. package/dist/chunks/{pluginFlagging-DQP8tBi2.js → pluginFlagging-BG2MHCQJ.js} +1 -1
  160. package/dist/chunks/pluginOperations-hXYLrzM2.js +2 -0
  161. package/dist/chunks/{pluginStartupCheck-CfRvCrFg.js → pluginStartupCheck-DTMa6TgL.js} +1 -1
  162. package/dist/chunks/pluginStartupCheck-HS1ZceZa.js +1 -0
  163. package/dist/chunks/plugins-COoGBYk6.js +4 -0
  164. package/dist/chunks/{poorMode-J5SYJvoY.js → poorMode-B0QGV6Ci.js} +1 -1
  165. package/dist/chunks/poorMode-G-pnu6NM.js +1 -0
  166. package/dist/chunks/print-BASybEtO.js +13 -0
  167. package/dist/chunks/processBashCommand-DDi_Pymt.js +1 -0
  168. package/dist/chunks/processSlashCommand-Cq9kaoSF.js +5 -0
  169. package/dist/chunks/{projectContext-Bw3o5BrN.js → projectContext-5fmRr6Sd.js} +1 -1
  170. package/dist/chunks/{projectContext-BN2ZWzOG.js → projectContext-DhtjLv3k.js} +1 -1
  171. package/dist/chunks/{projectOnboardingState-CJycxw5P.js → projectOnboardingState-B5YATuc6.js} +1 -1
  172. package/dist/chunks/prompt-CHobfCB1.js +1 -0
  173. package/dist/chunks/prompt-CMm6RHHc.js +1 -0
  174. package/dist/chunks/{prompt-BGqgPgCU.js → prompt-mM79EGnT.js} +1 -1
  175. package/dist/chunks/{promptEditor-CmQ9p4oe.js → promptEditor-DLGN_eLu.js} +1 -1
  176. package/dist/chunks/{protocolHandler-CJo9-PfZ.js → protocolHandler-DjQALaU2.js} +1 -1
  177. package/dist/chunks/{proxy-CB17QimU.js → proxy-CDBfZjO7.js} +2 -2
  178. package/dist/chunks/reconciler-CeXqh95g.js +1 -0
  179. package/dist/chunks/refresh-Ce2yk28a.js +1 -0
  180. package/dist/chunks/{registerProtocol-CLIpzVwF.js → registerProtocol-CAsDme_E.js} +1 -1
  181. package/dist/chunks/reject-Bld5E-bn.js +1 -0
  182. package/dist/chunks/{reload-plugins-DjugL8jH.js → reload-plugins-C42xSB5l.js} +1 -1
  183. package/dist/chunks/rename-CtBghpxZ.js +1 -0
  184. package/dist/chunks/{renderOptions-Zqfm2U1y.js → renderOptions-DV0dn0IW.js} +1 -1
  185. package/dist/chunks/resume-BWkaTDqd.js +2 -0
  186. package/dist/chunks/ripgrep-DLs8MraF.js +1 -0
  187. package/dist/chunks/{ripgrep-BuzOTf1S.js → ripgrep-Dl3y5r4m.js} +1 -1
  188. package/dist/chunks/{runtimeObserver-CK_iZ6OB.js → runtimeObserver-1wQO8HSZ.js} +1 -1
  189. package/dist/chunks/{runtimeObserver-CpP0L9T9.js → runtimeObserver-XQrOux41.js} +4 -4
  190. package/dist/chunks/sandbox-adapter-8GO6eJxw.js +1 -0
  191. package/dist/chunks/{sandbox-toggle-KOHYvbQT.js → sandbox-toggle-Dir9Polo.js} +1 -1
  192. package/dist/chunks/searchExtraTools-BhDq8DTJ.js +1 -0
  193. package/dist/chunks/{select-C_KXmqbI.js → select-Bxf5-5sI.js} +1 -1
  194. package/dist/chunks/sessionFileAccessHooks-CozocHQE.js +1 -0
  195. package/dist/chunks/sessionObserver-DGEQM4cO.js +1 -0
  196. package/dist/chunks/{sessionObserver-WOYv2n7C.js → sessionObserver-DS4G6mb9.js} +2 -2
  197. package/dist/chunks/sessionStorage-BcAscOGE.js +1 -0
  198. package/dist/chunks/sessionTracing-BoDDYLxW.js +11 -0
  199. package/dist/chunks/settings-B2jvL8Dp.js +24 -0
  200. package/dist/chunks/settings-CisDe8DB.js +1 -0
  201. package/dist/chunks/setup-BRypY6iT.js +3 -0
  202. package/dist/chunks/{shadowedRuleDetection-Df-kZ_pK.js → shadowedRuleDetection-BRxZjobz.js} +1 -1
  203. package/dist/chunks/{sideQuestion-CMB8hfgX.js → sideQuestion-DLJxyrlp.js} +3 -3
  204. package/dist/chunks/sinks-CGdKmq_8.js +1 -0
  205. package/dist/chunks/sinks-Cz2HfgMU.js +1 -0
  206. package/dist/chunks/skillChangeDetector-xviGstqm.js +1 -0
  207. package/dist/chunks/{skillGapStore-CfmlO6pb.js → skillGapStore-CKN_d3pO.js} +2 -2
  208. package/dist/chunks/{skillLifecycle-BQ2LMfMx.js → skillLifecycle-BMY2JGGG.js} +2 -2
  209. package/dist/chunks/{skillSearchPanel-BwYuwLFs.js → skillSearchPanel-D9trHULQ.js} +2 -2
  210. package/dist/chunks/{skills-BVHPQma0.js → skills-CX_AvwLG.js} +1 -1
  211. package/dist/chunks/startupProfiler-BH0FoI66.js +1 -0
  212. package/dist/chunks/{startupProfiler-DTs9w9EN.js → startupProfiler-CJdr3SxP.js} +2 -2
  213. package/dist/chunks/state-B4jiUise.js +1 -0
  214. package/dist/chunks/state-BhOKSFi5.js +1 -0
  215. package/dist/chunks/status-Daaak6Bo.js +1 -0
  216. package/dist/chunks/statusNoticeHelpers-vFVgIYuw.js +1 -0
  217. package/dist/chunks/{stringUtils-BQm3OfeJ.js → stringUtils-C718f5ey.js} +1 -1
  218. package/dist/chunks/sts-ei3CGBNu.js +1 -0
  219. package/dist/chunks/switcher-BpgmH4AI.js +1 -0
  220. package/dist/chunks/{switcher-Bq1Ct_Sn.js → switcher-CAajZeNL.js} +1 -1
  221. package/dist/chunks/{tasks-0c8Uy04D.js → tasks-BWNQr2d3.js} +1 -1
  222. package/dist/chunks/{templateJobs-BdFzE9XG.js → templateJobs-gUET39Ho.js} +1 -1
  223. package/dist/chunks/{terminalSetup-Cf_r6pwK.js → terminalSetup-B_10N_gE.js} +3 -3
  224. package/dist/chunks/{terminalSetup-D7J6bxcn.js → terminalSetup-qc2PlvOm.js} +1 -1
  225. package/dist/chunks/{theme-Bby4fssR.js → theme-B7fKI6E5.js} +1 -1
  226. package/dist/chunks/tipRegistry-DamZr34w.js +2 -0
  227. package/dist/chunks/{toolEventObserver-CzFZUIsM.js → toolEventObserver-BL06sDI4.js} +1 -1
  228. package/dist/chunks/toolPool-CX5wDBi1.js +1 -0
  229. package/dist/chunks/{types-zk5Ltv5q.js → types-Dx7P7JLQ.js} +2 -2
  230. package/dist/chunks/udsClient-cQz6nJ_T.js +1 -0
  231. package/dist/chunks/{use-select-navigation-DMaC_3iw.js → use-select-navigation-BiUJdWai.js} +1 -1
  232. package/dist/chunks/{useExitOnCtrlCDWithKeybindings-CjW3gUOt.js → useExitOnCtrlCDWithKeybindings-C9BYG8Bo.js} +1 -1
  233. package/dist/chunks/useMainLoopModel-DwjSVzzO.js +1 -0
  234. package/dist/chunks/useManagePlugins-BqfIVa6E.js +1 -0
  235. package/dist/chunks/{useMergedTools-DarmnCEw.js → useMergedTools-Bw8FchX8.js} +1 -1
  236. package/dist/chunks/{useSearchInput-C2JuUW3g.js → useSearchInput-B25K1RnK.js} +1 -1
  237. package/dist/chunks/useSettingsErrors-DYQ44kX4.js +1 -0
  238. package/dist/chunks/{util-Bq5l7FF5.js → util-CtlC2dsN.js} +1 -1
  239. package/dist/chunks/validatePlugin-D6tFo87L.js +1 -0
  240. package/dist/chunks/vim-CoRp9lY1.js +1 -0
  241. package/dist/chunks/worktree-B8apCnVe.js +1 -0
  242. package/dist/cli.js +1 -1
  243. package/package.json +1 -5
  244. package/dist/chunks/AgentsMdExternalIncludesDialog-DCvgQ6n3.js +0 -1
  245. package/dist/chunks/App-BcEI6U5j.js +0 -1
  246. package/dist/chunks/ApproveApiKey-DegdTXZl.js +0 -1
  247. package/dist/chunks/ApproveApiKey-_VXIMSwY.js +0 -1
  248. package/dist/chunks/BackgroundTasksDialog-CjBt1L0p.js +0 -2
  249. package/dist/chunks/CustomSelect-B46Eh0gU.js +0 -1
  250. package/dist/chunks/Doctor-BP0Rqraa.js +0 -1
  251. package/dist/chunks/Doctor-By_y3C2V.js +0 -3
  252. package/dist/chunks/Grove-C3mhgshv.js +0 -11
  253. package/dist/chunks/MCPConnectionManager-ChN4Ayjk.js +0 -1
  254. package/dist/chunks/MCPToolListView-DLSrQHDc.js +0 -1
  255. package/dist/chunks/MessageSelector-CdDlJE48.js +0 -3
  256. package/dist/chunks/Messages-DuL_r1Or.js +0 -10
  257. package/dist/chunks/Onboarding-CE2GNA-h.js +0 -1
  258. package/dist/chunks/QueryEngine-DNNy1UCD.js +0 -1
  259. package/dist/chunks/REPL-CEhW-C41.js +0 -1
  260. package/dist/chunks/REPL-CkSL4C_8.js +0 -124
  261. package/dist/chunks/ResumeConversation-BMCO_3X7.js +0 -1
  262. package/dist/chunks/SearchExtraToolsTool-DSy_jDhf.js +0 -1
  263. package/dist/chunks/Settings-mDykHLok.js +0 -2
  264. package/dist/chunks/Spinner-DwsJJUtn.js +0 -1
  265. package/dist/chunks/TrustDialog-G4jM9IfM.js +0 -1
  266. package/dist/chunks/add-dir-7RfQAC3h.js +0 -1
  267. package/dist/chunks/agents-BNg_skSm.js +0 -101
  268. package/dist/chunks/allErrors-DaztSMrw.js +0 -1
  269. package/dist/chunks/auth-BTB00dq5.js +0 -10
  270. package/dist/chunks/auth-Bbc0Ny8i.js +0 -1
  271. package/dist/chunks/backgroundHousekeeping-DYz83_8C.js +0 -1
  272. package/dist/chunks/backgroundHousekeeping-bEZtlJSf.js +0 -17
  273. package/dist/chunks/banner-mqZEluky.js +0 -2
  274. package/dist/chunks/branch-exFKkymg.js +0 -2
  275. package/dist/chunks/btw-3l78DYET.js +0 -1
  276. package/dist/chunks/caches-6Nx6tsk9.js +0 -1
  277. package/dist/chunks/caches-ouaWB9bY.js +0 -1
  278. package/dist/chunks/client-C01Bnxxv.js +0 -1
  279. package/dist/chunks/client-DYRgRQsr.js +0 -1
  280. package/dist/chunks/commands-BoxOw75F.js +0 -1
  281. package/dist/chunks/compact-BOYr105K.js +0 -2
  282. package/dist/chunks/config-BddEvZZl.js +0 -3
  283. package/dist/chunks/config-GEv9hUzz.js +0 -1
  284. package/dist/chunks/config-kw4xg7Nk.js +0 -1
  285. package/dist/chunks/context-noninteractive-DFvoZ2L9.js +0 -1
  286. package/dist/chunks/conversation-CoGharlH.js +0 -1
  287. package/dist/chunks/conversation-MxEVm54C.js +0 -1
  288. package/dist/chunks/conversationRecovery-Da_8uldZ.js +0 -1
  289. package/dist/chunks/crossProjectResume-CzPCHq_K.js +0 -40
  290. package/dist/chunks/cwd-BcO6WHKo.js +0 -1
  291. package/dist/chunks/cwd-CDUelriw.js +0 -1
  292. package/dist/chunks/dist-es-5t7v8oaj.js +0 -1
  293. package/dist/chunks/dist-es-BIjDeceU.js +0 -1
  294. package/dist/chunks/dist-es-C-OjW2Ao.js +0 -1
  295. package/dist/chunks/dist-es-CEk66gUu.js +0 -1
  296. package/dist/chunks/dist-es-CIULjvtA2.js +0 -1
  297. package/dist/chunks/dist-es-CMtO44xC.js +0 -1
  298. package/dist/chunks/dist-es-CYPVg66r.js +0 -9
  299. package/dist/chunks/dist-es-D1Y8zSMI.js +0 -1
  300. package/dist/chunks/dist-es-Gt_DpXlP.js +0 -1
  301. package/dist/chunks/dist-es-kj-F5A132.js +0 -1
  302. package/dist/chunks/doctor-DWvioSU9.js +0 -1
  303. package/dist/chunks/esm-BQY8jJNR.js +0 -1
  304. package/dist/chunks/exit-BxC_ZEtO.js +0 -1
  305. package/dist/chunks/extraUsage-DYm33Occ.js +0 -1
  306. package/dist/chunks/extractMemories-CzN3Ax2B.js +0 -1
  307. package/dist/chunks/fast-DqUpl_Lr.js +0 -1
  308. package/dist/chunks/fast-NUdUyAaM.js +0 -1
  309. package/dist/chunks/fetchModelList-CqsTAWEN.js +0 -1
  310. package/dist/chunks/fetchModelList-DBMHE6Ng.js +0 -1
  311. package/dist/chunks/firstPartyEventLogger-C0q45h_4.js +0 -3
  312. package/dist/chunks/firstPartyEventLogger-CP8hCBDj.js +0 -1
  313. package/dist/chunks/generateSessionName-ChvKBVxB.js +0 -1
  314. package/dist/chunks/goal-ByyimpVU.js +0 -3
  315. package/dist/chunks/grok-DenjixMl.js +0 -1
  316. package/dist/chunks/grove-Dq8QbQ9o.js +0 -7
  317. package/dist/chunks/history-CNQNd6hT.js +0 -1
  318. package/dist/chunks/hooks-BaYwmkxD.js +0 -1
  319. package/dist/chunks/instrumentation-BwVyvRfY.js +0 -21
  320. package/dist/chunks/keybindings-wNxBzDVQ.js +0 -1
  321. package/dist/chunks/launchOnboarding-CDjQ64RO.js +0 -8
  322. package/dist/chunks/loadAgentsDir-DKXap_Om.js +0 -1
  323. package/dist/chunks/loadPluginHooks-DtmHtEiS.js +0 -1
  324. package/dist/chunks/localSearch-BB9x5C2N.js +0 -1
  325. package/dist/chunks/logoUtils-Dj_2SWmO.js +0 -1
  326. package/dist/chunks/main-BRg8L_aw.js +0 -346
  327. package/dist/chunks/managedEnv-DsqAYOJ4.js +0 -1
  328. package/dist/chunks/managedEnv-lybrMred.js +0 -1
  329. package/dist/chunks/mcp-Bsw3cMiJ.js +0 -6
  330. package/dist/chunks/mcp-DDdud6Y7.js +0 -1
  331. package/dist/chunks/mcp-DbgTDUt7.js +0 -2
  332. package/dist/chunks/memory-CzwTzihf.js +0 -1
  333. package/dist/chunks/model-BYfmXKHf.js +0 -1
  334. package/dist/chunks/model-BwBE0Pt5.js +0 -1
  335. package/dist/chunks/modelOptions-DvNBapgG.js +0 -1
  336. package/dist/chunks/nativeInstaller-DnSNJWIi.js +0 -1
  337. package/dist/chunks/notifications-B0DTaYoy.js +0 -1
  338. package/dist/chunks/omit-Dl1Us_PY.js +0 -1
  339. package/dist/chunks/onChangeAppState-4KOJMN82.js +0 -1
  340. package/dist/chunks/openai-C_6C1_0N.js +0 -10
  341. package/dist/chunks/parser-BKAVMTyD.js +0 -1
  342. package/dist/chunks/partition-B504IgAa.js +0 -1
  343. package/dist/chunks/permissions-CLFMhdRk.js +0 -3
  344. package/dist/chunks/pidLock-D9do1Afy.js +0 -3
  345. package/dist/chunks/plugin-BYdF7uob.js +0 -17
  346. package/dist/chunks/pluginBlocklist-DKKmOnWM.js +0 -1
  347. package/dist/chunks/pluginCliCommands-z8TtJMKH.js +0 -1
  348. package/dist/chunks/pluginOperations-BcfJCDco.js +0 -2
  349. package/dist/chunks/pluginStartupCheck-Cq4PvULa.js +0 -1
  350. package/dist/chunks/plugins-CTM8jpOw.js +0 -4
  351. package/dist/chunks/policyLimits-a7ix6GnU.js +0 -1
  352. package/dist/chunks/poorMode-C11JEH3d.js +0 -1
  353. package/dist/chunks/print-u6MzL5Cr.js +0 -13
  354. package/dist/chunks/processBashCommand-DIwrI2QC.js +0 -1
  355. package/dist/chunks/processSlashCommand-B-Gujpxm.js +0 -5
  356. package/dist/chunks/prompt-BPJDGlx5.js +0 -1
  357. package/dist/chunks/prompt-DEdZzkEz.js +0 -1
  358. package/dist/chunks/reconciler-DSKLuOS7.js +0 -1
  359. package/dist/chunks/refresh-BbZFCNpn.js +0 -1
  360. package/dist/chunks/rename-DOtCOtEr.js +0 -1
  361. package/dist/chunks/resume-BB4T4WIV.js +0 -2
  362. package/dist/chunks/ripgrep-CZ2CqaHb.js +0 -1
  363. package/dist/chunks/sandbox-adapter-DhJJ6WOV.js +0 -1
  364. package/dist/chunks/searchExtraTools-CdJghGkj.js +0 -1
  365. package/dist/chunks/sessionFileAccessHooks-D7KbWFp7.js +0 -1
  366. package/dist/chunks/sessionObserver-DB-sLv-X.js +0 -1
  367. package/dist/chunks/sessionStorage-sgOAbDn7.js +0 -1
  368. package/dist/chunks/sessionTracing-yBre24PH.js +0 -11
  369. package/dist/chunks/settings-C-KNkvsM.js +0 -1
  370. package/dist/chunks/settings-DKN4xSpQ.js +0 -24
  371. package/dist/chunks/setup-CN_Pk7AR.js +0 -3
  372. package/dist/chunks/sinks-BS17vtN0.js +0 -1
  373. package/dist/chunks/sinks-D1EjkHb4.js +0 -1
  374. package/dist/chunks/skillChangeDetector-CBKuGuEi.js +0 -1
  375. package/dist/chunks/startupProfiler-B_U4QDtf.js +0 -1
  376. package/dist/chunks/state-BowF111d.js +0 -1
  377. package/dist/chunks/state-CGuyDES7.js +0 -1
  378. package/dist/chunks/status-BurdTfyz.js +0 -2
  379. package/dist/chunks/status-DMq1An5h.js +0 -1
  380. package/dist/chunks/statusNoticeHelpers-X75JNlx5.js +0 -1
  381. package/dist/chunks/sts-C2Gf2WYN.js +0 -1
  382. package/dist/chunks/switcher-DGD4ORVf.js +0 -1
  383. package/dist/chunks/tipRegistry-CyRXWWTz.js +0 -2
  384. package/dist/chunks/toolPool-CnrZcprA.js +0 -1
  385. package/dist/chunks/udsClient-ftP0yIpe.js +0 -1
  386. package/dist/chunks/useMainLoopModel-DWscpA9I.js +0 -1
  387. package/dist/chunks/useManagePlugins-CYXVcql2.js +0 -1
  388. package/dist/chunks/useSettingsErrors-DutJBiKZ.js +0 -1
  389. package/dist/chunks/validatePlugin-DIdEydz_.js +0 -1
  390. package/dist/chunks/vim-D8prM2IH.js +0 -1
  391. package/dist/chunks/worktree-Caqt2WRZ.js +0 -1
  392. /package/dist/chunks/{dist-es-Cgsa8pb82.js → dist-es-Cgsa8pb8.js} +0 -0
  393. /package/dist/chunks/{dist-es-Cwru7c2B2.js → dist-es-Cwru7c2B.js} +0 -0
  394. /package/dist/chunks/{dist-es-DXIR5NLi2.js → dist-es-DXIR5NLi.js} +0 -0
@@ -1 +0,0 @@
1
- import{r as e,t}from"./managedEnv-lybrMred.js";e();export{t as applyConfigEnvironmentVariables};
@@ -1 +0,0 @@
1
- import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{l as t,o as n}from"./envUtils-DcaKZlRU.js";import{d as r,gn as i,h as a,hn as o,s}from"./settings-DKN4xSpQ.js";import{c,m as l}from"./config-BddEvZZl.js";import{_ as u,c as d,h as f,m as p,n as m,t as h,u as g}from"./proxy-CB17QimU.js";import{n as _,t as v}from"./loader-C61fB6vU.js";import{n as y,r as b,t as x}from"./managedEnvConstants-BPwL2aWI.js";function S(e){if(!e||!process.env.ANTHROPIC_UNIX_SOCKET)return e||{};let{ANTHROPIC_UNIX_SOCKET:t,ANTHROPIC_BASE_URL:n,ANTHROPIC_API_KEY:r,ANTHROPIC_AUTH_TOKEN:i,CLAUDE_CODE_OAUTH_TOKEN:a,...o}=e;return o}function C(e){if(!e)return{};if(!t(process.env.CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST))return e;let n={};for(let[t,r]of Object.entries(e))b(t)||(n[t]=r);return n}function w(e){if(!e||!k)return e||{};let t={};for(let[n,r]of Object.entries(e))k.has(n)||(t[n]=r);return t}function T(e){if(!e)return{};let t=s(`userSettings`)?.activeProviderId;if(!t||!v(t))return e;let n={};for(let[t,r]of Object.entries(e))A.has(t.toUpperCase())||(n[t]=r);return n}function E(e){return w(C(T(S(e))))}function D(){k===void 0&&(k=process.env.CLAUDE_CODE_ENTRYPOINT===`claude-desktop`?new Set(Object.keys(process.env)):null),Object.assign(process.env,E(c().env));for(let e of j)e!==`policySettings`&&i(e)&&Object.assign(process.env,E(s(e)?.env));Object.assign(process.env,E(s(`policySettings`)?.env));let e=E(r()?.env);for(let[t,n]of Object.entries(e))x.has(t.toUpperCase())&&(process.env[t]=n)}function O(){Object.assign(process.env,E(c().env)),Object.assign(process.env,E(r()?.env)),f(),g(),h(),m()}var k,A,j,M=e((()=>{_(),u(),l(),n(),y(),p(),d(),o(),a(),A=new Set([`ANTHROPIC_BASE_URL`,`ANTHROPIC_API_KEY`,`ANTHROPIC_MODEL`,`CLAUDE_CODE_USE_OPENAI`,`OPENAI_BASE_URL`,`OPENAI_API_KEY`,`OPENAI_MODEL`]),j=[`userSettings`,`flagSettings`,`policySettings`]}));export{D as n,M as r,O as t};
@@ -1,6 +0,0 @@
1
- import{o as e}from"./rolldown-runtime-DaDcL9Zw.js";import{Dp as t,Jv as n,Lv as r,Qv as i,Rv as a,Sv as o,TT as s,Tp as c,Yv as l,Z_ as u,_v as d,ad as ee,ay as f,bv as p,cy as m,fy as h,gi as g,id as te,iy as _,rv as v,ry as y,tv as b,vi as x,vv as ne,wT as re,wv as ie,yv as S}from"./loadAgentsDir-C1LkW7gl.js";import{D as C,H as ae,I as w,P as T,T as E,ai as D,j as O,kn as k,t as A,y as j}from"./src-DL3w8VPk.js";import{t as M}from"./jsx-runtime-Bb4Xn-E0.js";import{f as N,l as P}from"./types-zk5Ltv5q.js";import{B as F,L as I}from"./debug-8DCufdSp.js";import{_ as L,c as R,m as z,o as B}from"./config-BddEvZZl.js";import{n as V,o as H}from"./process-gEbdy6uY.js";import{l as U,o as oe}from"./stringUtils-BQm3OfeJ.js";import{i as W,o as G}from"./platform-Dzff1WWw.js";import{n as K,r as q}from"./analytics-DJobLaWP.js";import{n as se,t as ce}from"./SelectMulti-CNE06VAN.js";import{t as le}from"./KeybindingProviderSetup-Bn1jzN5F.js";import{n as J,t as Y}from"./exit-s9XGerrH.js";import{stat as ue}from"fs/promises";import{cwd as de}from"process";re();var X=e(D(),1);x(),V(),A(),m(),oe(),ee(),se();var Z=M();function fe({servers:e,scope:t,onDone:n}){let r=Object.keys(e),[a,o]=(0,X.useState)({});(0,X.useEffect)(()=>{y().then(({servers:e})=>o(e))},[]);let s=r.filter(e=>a[e]!==void 0);async function c(n){let r=0;for(let o of n){let n=e[o];if(n){let e=o;if(a[e]!==void 0){let t=1;for(;a[`${o}_${t}`]!==void 0;)t++;e=`${o}_${t}`}await i(e,n,t),r++}}u(r)}let[l]=ae(),u=(0,X.useCallback)(e=>{H(e>0?`\n${O(`success`,l)(`Successfully imported ${e} MCP ${U(e,`server`)} to ${t} config.`)}\n`:`
2
- No servers were imported.`),n(),g()},[l,t,n]),d=(0,X.useCallback)(()=>{u(0)},[u]);return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(j,{title:`Import MCP Servers from Work Mate Desktop`,subtitle:`Found ${r.length} MCP ${U(r.length,`server`)} in Work Mate Desktop.`,color:`success`,onCancel:d,hideInputGuide:!0,children:[s.length>0&&(0,Z.jsx)(T,{color:`warning`,children:`Note: Some servers already exist with the same name. If selected, they will be imported with a numbered suffix.`}),(0,Z.jsx)(T,{children:`Please select the servers you want to import:`}),(0,Z.jsx)(ce,{options:r.map(e=>({label:`${e}${s.includes(e)?` (already exists)`:``}`,value:e})),defaultValue:r.filter(e=>!s.includes(e)),onSubmit:c,onCancel:d,hideIndexes:!0})]}),(0,Z.jsx)(w,{paddingX:1,children:(0,Z.jsx)(T,{dimColor:!0,italic:!0,children:(0,Z.jsxs)(E,{children:[(0,Z.jsx)(C,{shortcut:`Space`,action:`select`}),(0,Z.jsx)(C,{shortcut:`Enter`,action:`confirm`}),(0,Z.jsx)(te,{action:`confirm:no`,context:`Confirmation`,fallback:`Esc`,description:`cancel`})]})})})]})}A(),K(),p(),v(),m(),l(),t(),z(),I(),x(),P(),G();async function Q(e,t){try{let n=await u(e,t);return n.type===`connected`?`✓ Connected`:n.type===`needs-auth`?`! Needs authentication`:`✗ Failed to connect`}catch{return`✗ Connection error`}}async function pe({debug:e,verbose:t}){let n=de();q(`tengu_mcp_start`,{});try{await ue(n)}catch(e){throw F(e)&&Y(`Error: Directory ${n} does not exist`),e}try{let{setup:r}=await import(`./setup-CN_Pk7AR.js`);await r(n,`default`,!1,!1,void 0,!1);let{startMCPServer:i}=await import(`./mcp-DbgTDUt7.js`);await i(n,e??!1,t??!1)}catch(e){Y(`Error: Failed to start MCP server: ${e}`)}}async function me(e,t){let i=_(e),o=()=>{i&&(i.type===`sse`||i.type===`http`)&&(ne(e,i),d(e,i))};try{if(t.scope){let n=a(t.scope);q(`tengu_mcp_delete`,{name:e,scope:n}),await h(e,n),o(),process.stdout.write(`Removed MCP server ${e} from ${n} config\n`),J(`File modified: ${r(n)}`)}let i=B(),s=R(),{servers:c}=f(`project`),l=!!c[e],u=[];if(i.mcpServers?.[e]&&u.push(`local`),l&&u.push(`project`),s.mcpServers?.[e]&&u.push(`user`),u.length===0)Y(`No MCP server found with name: "${e}"`);else if(u.length===1){let t=u[0];q(`tengu_mcp_delete`,{name:e,scope:t}),await h(e,t),o(),process.stdout.write(`Removed MCP server "${e}" from ${t} config\n`),J(`File modified: ${r(t)}`)}else process.stderr.write(`MCP server "${e}" exists in multiple scopes:\n`),u.forEach(e=>{process.stderr.write(` - ${n(e)} (${r(e)})\n`)}),process.stderr.write(`
3
- To remove from a specific scope, use:
4
- `),u.forEach(t=>{process.stderr.write(` claude mcp remove "${e}" -s ${t}\n`)}),Y()}catch(e){Y(e.message)}}async function he(){q(`tengu_mcp_list`,{});let{servers:e}=await y();if(Object.keys(e).length===0)console.log("No MCP servers configured. Use `claude mcp add` to add a server.");else{console.log(`Checking MCP server health...
5
- `);let t=await s(Object.entries(e),async([e,t])=>({name:e,server:t,status:await Q(e,t)}),{concurrency:b()});for(let{name:e,server:n,status:r}of t)if(n.type===`sse`)console.log(`${e}: ${n.url} (SSE) - ${r}`);else if(n.type===`http`)console.log(`${e}: ${n.url} (HTTP) - ${r}`);else if(n.type===`claudeai-proxy`)console.log(`${e}: ${n.url} - ${r}`);else if(!n.type||n.type===`stdio`){let t=n,i=Array.isArray(t.args)?t.args:[];console.log(`${e}: ${t.command} ${i.join(` `)} - ${r}`)}}await g(0)}async function ge(e){q(`tengu_mcp_get`,{name:e});let t=_(e);t||Y(`No MCP server found with name: ${e}`),console.log(`${e}:`),console.log(` Scope: ${n(t.scope)}`);let r=await Q(e,t);if(console.log(` Status: ${r}`),t.type===`sse`){if(console.log(` Type: sse`),console.log(` URL: ${t.url}`),t.headers){console.log(` Headers:`);for(let[e,n]of Object.entries(t.headers))console.log(` ${e}: ${n}`)}if(t.oauth?.clientId||t.oauth?.callbackPort){let n=[];t.oauth.clientId&&(n.push(`client_id configured`),S(e,t)?.clientSecret&&n.push(`client_secret configured`)),t.oauth.callbackPort&&n.push(`callback_port ${t.oauth.callbackPort}`),console.log(` OAuth: ${n.join(`, `)}`)}}else if(t.type===`http`){if(console.log(` Type: http`),console.log(` URL: ${t.url}`),t.headers){console.log(` Headers:`);for(let[e,n]of Object.entries(t.headers))console.log(` ${e}: ${n}`)}if(t.oauth?.clientId||t.oauth?.callbackPort){let n=[];t.oauth.clientId&&(n.push(`client_id configured`),S(e,t)?.clientSecret&&n.push(`client_secret configured`)),t.oauth.callbackPort&&n.push(`callback_port ${t.oauth.callbackPort}`),console.log(` OAuth: ${n.join(`, `)}`)}}else if(t.type===`stdio`){console.log(` Type: stdio`),console.log(` Command: ${t.command}`);let e=Array.isArray(t.args)?t.args:[];if(console.log(` Args: ${e.join(` `)}`),t.env){console.log(` Environment:`);for(let[e,n]of Object.entries(t.env))console.log(` ${e}=${n}`)}}console.log(`\nTo remove this server, run: claude mcp remove "${e}" -s ${t.scope}`),await g(0)}async function $(e,t,n){try{let r=a(n.scope),s=N(t),c=n.clientSecret&&s&&typeof s==`object`&&`type`in s&&(s.type===`sse`||s.type===`http`)&&`url`in s&&typeof s.url==`string`&&`oauth`in s&&s.oauth&&typeof s.oauth==`object`&&`clientId`in s.oauth?await o():void 0;await i(e,s,r);let l=s&&typeof s==`object`&&`type`in s?String(s.type||`stdio`):`stdio`;c&&s&&typeof s==`object`&&`type`in s&&(s.type===`sse`||s.type===`http`)&&`url`in s&&typeof s.url==`string`&&ie(e,{type:s.type,url:s.url},c),q(`tengu_mcp_add`,{scope:r,source:`json`,type:l}),J(`Added ${l} MCP server ${e} to ${r} config`)}catch(e){Y(e.message)}}async function _e(e){try{let t=a(e.scope);q(`tengu_mcp_add`,{scope:t,platform:W(),source:`desktop`});let{readClaudeDesktopMcpServers:n}=await import(`./claudeDesktop-D3PEgx3U.js`),r=await n();Object.keys(r).length===0&&J(`No MCP servers found in Work Mate Desktop configuration or configuration file does not exist.`);let{unmount:i}=await k((0,Z.jsx)(c,{children:(0,Z.jsx)(le,{children:(0,Z.jsx)(fe,{servers:r,scope:t,onDone:()=>{i()}})})}),{exitOnCtrlC:!0})}catch(e){Y(e.message)}}async function ve(){q(`tengu_mcp_reset_mcpjson_choices`,{}),L(e=>({...e,enabledMcpjsonServers:[],disabledMcpjsonServers:[],enableAllProjectMcpServers:!1})),J(`All project-scoped (.mcp.json) server approvals and rejections have been reset.
6
- You will be prompted for approval next time you start Work Mate.`)}export{_e as mcpAddFromDesktopHandler,$ as mcpAddJsonHandler,ge as mcpGetHandler,he as mcpListHandler,me as mcpRemoveHandler,ve as mcpResetChoicesHandler,pe as mcpServeHandler};
@@ -1 +0,0 @@
1
- import{n as e,o as t}from"./rolldown-runtime-DaDcL9Zw.js";import{n,t as r}from"./figures-5ThXQEtq.js";import{Dp as i,Kv as a,Lv as o,Op as s,Ub as c,Wv as l,Yv as u,ad as d,bv as f,gv as p,hv as m,id as h,kp as g,xv as _}from"./loadAgentsDir-C1LkW7gl.js";import{D as v,Gt as ee,H as y,I as b,Lt as x,P as S,T as C,Wt as w,ai as T,j as E,t as D,y as O}from"./src-DL3w8VPk.js";import{t as k}from"./jsx-runtime-Bb4Xn-E0.js";import{a as te,i as A}from"./debug-8DCufdSp.js";import{l as ne,n as re,o as ie}from"./stringUtils-BQm3OfeJ.js";import{i as ae,n as j,r as oe}from"./MCPConnectionManager-ChN4Ayjk.js";import{t as se}from"./select-C_KXmqbI.js";import{r as M,t as N}from"./Spinner-DwsJJUtn.js";import{t as ce}from"./CustomSelect-B46Eh0gU.js";import{n as le,t as ue}from"./McpParsingWarnings-DZejAh8b.js";import{a as de,c as P,i as F,n as I,o as L,r as fe,s as pe,t as me}from"./MCPToolListView-DLSrQHDc.js";function he({agentServer:e,onCancel:t,onComplete:n}){let[i]=y(),[a,o]=(0,R.useState)(!1),[s,c]=(0,R.useState)(null),[l,u]=(0,R.useState)(null),d=(0,R.useRef)(null);(0,R.useEffect)(()=>()=>d.current?.abort(),[]),w(`confirm:no`,(0,R.useCallback)(()=>{a&&(d.current?.abort(),d.current=null,o(!1),u(null))},[a]),{context:`Confirmation`,isActive:a});let f=(0,R.useCallback)(async()=>{if(!e.needsAuth||!e.url)return;o(!0),c(null);let t=new AbortController;d.current=t;try{let r={type:e.transport,url:e.url};await _(e.name,r,u,t.signal),n?.(`Authentication successful for ${e.name}. The server will connect when the agent runs.`)}catch(e){e instanceof Error&&!(e instanceof m)&&c(e.message)}finally{o(!1),d.current=null}},[e,n]),p=re(String(e.name));if(a)return(0,z.jsxs)(b,{flexDirection:`column`,gap:1,padding:1,children:[(0,z.jsxs)(S,{color:`claude`,children:[`Authenticating with `,e.name,`…`]}),(0,z.jsxs)(b,{children:[(0,z.jsx)(N,{}),(0,z.jsx)(S,{children:` A browser window will open for authentication`})]}),l&&(0,z.jsxs)(b,{flexDirection:`column`,children:[(0,z.jsx)(S,{dimColor:!0,children:`If your browser doesn't open automatically, copy this URL manually:`}),(0,z.jsx)(x,{url:l})]}),(0,z.jsx)(b,{marginLeft:3,children:(0,z.jsxs)(S,{dimColor:!0,children:[`Return here after authenticating in your browser.`,` `,(0,z.jsx)(h,{action:`confirm:no`,context:`Confirmation`,fallback:`Esc`,description:`go back`})]})})]});let g=[];return e.needsAuth&&g.push({label:e.isAuthenticated?`Re-authenticate`:`Authenticate`,value:`auth`}),g.push({label:`Back`,value:`back`}),(0,z.jsxs)(O,{title:`${p} MCP Server`,subtitle:`agent-only`,onCancel:t,inputGuide:e=>e.pending?(0,z.jsxs)(S,{children:[`Press `,e.keyName,` again to exit`]}):(0,z.jsxs)(C,{children:[(0,z.jsx)(v,{shortcut:`↑↓`,action:`navigate`}),(0,z.jsx)(v,{shortcut:`Enter`,action:`confirm`}),(0,z.jsx)(h,{action:`confirm:no`,context:`Confirmation`,fallback:`Esc`,description:`go back`})]}),children:[(0,z.jsxs)(b,{flexDirection:`column`,gap:0,children:[(0,z.jsxs)(b,{children:[(0,z.jsx)(S,{bold:!0,children:`Type: `}),(0,z.jsx)(S,{dimColor:!0,children:e.transport})]}),e.url&&(0,z.jsxs)(b,{children:[(0,z.jsx)(S,{bold:!0,children:`URL: `}),(0,z.jsx)(S,{dimColor:!0,children:e.url})]}),e.command&&(0,z.jsxs)(b,{children:[(0,z.jsx)(S,{bold:!0,children:`Command: `}),(0,z.jsx)(S,{dimColor:!0,children:e.command})]}),(0,z.jsxs)(b,{children:[(0,z.jsx)(S,{bold:!0,children:`Used by: `}),(0,z.jsx)(S,{dimColor:!0,children:e.sourceAgents.join(`, `)})]}),(0,z.jsxs)(b,{marginTop:1,children:[(0,z.jsx)(S,{bold:!0,children:`Status: `}),(0,z.jsxs)(S,{children:[E(`inactive`,i)(r.radioOff),` not connected (agent-only)`]})]}),e.needsAuth&&(0,z.jsxs)(b,{children:[(0,z.jsx)(S,{bold:!0,children:`Auth: `}),e.isAuthenticated?(0,z.jsxs)(S,{children:[E(`success`,i)(r.tick),` authenticated`]}):(0,z.jsxs)(S,{children:[E(`warning`,i)(r.triangleUpOutline),` may need authentication`]})]})]}),(0,z.jsx)(b,{children:(0,z.jsx)(S,{dimColor:!0,children:`This server connects only when running the agent.`})}),s&&(0,z.jsx)(b,{children:(0,z.jsxs)(S,{color:`error`,children:[`Error: `,s]})}),(0,z.jsx)(b,{children:(0,z.jsx)(se,{options:g,onChange:async e=>{switch(e){case`auth`:await f();break;case`back`:t();break}},onCancel:t})})]})}var R,z,B=e((()=>{n(),R=t(T(),1),D(),c(),f(),ie(),d(),ce(),M(),z=k()}));function V(e){switch(e){case`project`:return{label:`Project MCPs`,path:o(e)};case`user`:return{label:`User MCPs`,path:o(e)};case`local`:return{label:`Local MCPs`,path:o(e)};case`enterprise`:return{label:`Enterprise MCPs`};case`dynamic`:return{label:`Built-in MCPs`,path:`always available`};default:return{label:e}}}function ge(e){let t=new Map;for(let n of e){let e=n.scope;t.has(e)||t.set(e,[]),t.get(e).push(n)}for(let[,e]of t)e.sort((e,t)=>e.name.localeCompare(t.name));return t}function _e({servers:e,agentServers:t=[],onSelectServer:n,onSelectAgentServer:i,onComplete:a}){let[o]=y(),[s,c]=(0,H.useState)(0),l=H.useMemo(()=>ge(e.filter(e=>e.client.config.type!==`claudeai-proxy`)),[e]),u=H.useMemo(()=>e.filter(e=>e.client.config.type===`claudeai-proxy`).sort((e,t)=>e.name.localeCompare(t.name)),[e]),d=H.useMemo(()=>(l.get(`dynamic`)??[]).sort((e,t)=>e.name.localeCompare(t.name)),[l]),f=V(`dynamic`),p=H.useMemo(()=>{let e=[];for(let t of W){let n=l.get(t)??[];for(let t of n)e.push({type:`server`,server:t})}for(let t of u)e.push({type:`server`,server:t});for(let n of t)e.push({type:`agent-server`,agentServer:n});for(let t of d)e.push({type:`server`,server:t});return e},[l,u,t,d]),m=(0,H.useCallback)(()=>{a(`MCP dialog dismissed`,{display:`system`})},[a]);ee({"confirm:previous":()=>c(e=>e===0?p.length-1:e-1),"confirm:next":()=>c(e=>e===p.length-1?0:e+1),"confirm:yes":(0,H.useCallback)(()=>{let e=p[s];e&&(e.type===`server`?n(e.server):e.type===`agent-server`&&i&&i(e.agentServer))},[p,s,n,i]),"confirm:no":m},{context:`Confirmation`});let g=e=>p.findIndex(t=>t.type===`server`&&t.server===e),_=e=>p.findIndex(t=>t.type===`agent-server`&&t.agentServer===e),w=te(),T=e.some(e=>e.client.type===`failed`);if(e.length===0&&t.length===0)return null;let D=e=>{let t=g(e),n=s===t,i=``,a=``;if(e.client.type===`disabled`)i=E(`inactive`,o)(r.radioOff),a=`disabled`;else if(e.client.type===`connected`)i=E(`success`,o)(r.tick),a=`connected`;else if(e.client.type===`pending`){i=E(`inactive`,o)(r.radioOff);let{reconnectAttempt:t,maxReconnectAttempts:n}=e.client;a=t&&n?`reconnecting (${t}/${n})…`:`connecting…`}else e.client.type===`needs-auth`?(i=E(`warning`,o)(r.triangleUpOutline),a=`needs authentication`):(i=E(`error`,o)(r.cross),a=`failed`);return(0,U.jsxs)(b,{children:[(0,U.jsx)(S,{color:n?`suggestion`:void 0,children:n?`${r.pointer} `:` `}),(0,U.jsx)(S,{color:n?`suggestion`:void 0,children:e.name}),(0,U.jsxs)(S,{dimColor:!n,children:[` · `,i,` `]}),(0,U.jsx)(S,{dimColor:!n,children:a})]},`${e.name}-${t}`)},k=e=>{let t=_(e),n=s===t,i=e.needsAuth?E(`warning`,o)(r.triangleUpOutline):E(`inactive`,o)(r.radioOff),a=e.needsAuth?`may need auth`:`agent-only`;return(0,U.jsxs)(b,{children:[(0,U.jsx)(S,{color:n?`suggestion`:void 0,children:n?`${r.pointer} `:` `}),(0,U.jsx)(S,{color:n?`suggestion`:void 0,children:e.name}),(0,U.jsxs)(S,{dimColor:!n,children:[` · `,i,` `]}),(0,U.jsx)(S,{dimColor:!n,children:a})]},`agent-${e.name}-${t}`)},A=e.length+t.length;return(0,U.jsxs)(b,{flexDirection:`column`,children:[(0,U.jsx)(ue,{}),(0,U.jsx)(O,{title:`Manage MCP servers`,subtitle:`${A} ${ne(A,`server`)}`,onCancel:m,hideInputGuide:!0,children:(0,U.jsxs)(b,{flexDirection:`column`,children:[W.map(e=>{let t=l.get(e);if(!t||t.length===0)return null;let n=V(e);return(0,U.jsxs)(b,{flexDirection:`column`,marginBottom:1,children:[(0,U.jsxs)(b,{paddingLeft:2,children:[(0,U.jsx)(S,{bold:!0,children:n.label}),n.path&&(0,U.jsxs)(S,{dimColor:!0,children:[` (`,n.path,`)`]})]}),t.map(e=>D(e))]},e)}),u.length>0&&(0,U.jsxs)(b,{flexDirection:`column`,marginBottom:1,children:[(0,U.jsx)(b,{paddingLeft:2,children:(0,U.jsx)(S,{bold:!0,children:`claude.ai`})}),u.map(e=>D(e))]}),t.length>0&&(0,U.jsxs)(b,{flexDirection:`column`,marginBottom:1,children:[(0,U.jsx)(b,{paddingLeft:2,children:(0,U.jsx)(S,{bold:!0,children:`Agent MCPs`})}),[...new Set(t.flatMap(e=>e.sourceAgents))].map(e=>(0,U.jsxs)(b,{flexDirection:`column`,marginTop:1,children:[(0,U.jsx)(b,{paddingLeft:2,children:(0,U.jsxs)(S,{dimColor:!0,children:[`@`,e]})}),t.filter(t=>t.sourceAgents.includes(e)).map(e=>k(e))]},e))]}),d.length>0&&(0,U.jsxs)(b,{flexDirection:`column`,marginBottom:1,children:[(0,U.jsxs)(b,{paddingLeft:2,children:[(0,U.jsx)(S,{bold:!0,children:f.label}),f.path&&(0,U.jsxs)(S,{dimColor:!0,children:[` (`,f.path,`)`]})]}),d.map(e=>D(e))]}),(0,U.jsxs)(b,{flexDirection:`column`,children:[T&&(0,U.jsx)(S,{dimColor:!0,children:w?`※ Error logs shown inline with --debug`:`※ Run claude --debug to see error logs`}),(0,U.jsxs)(S,{dimColor:!0,children:[(0,U.jsx)(x,{url:`https://code.workmate.com/docs/en/mcp`,children:`https://code.workmate.com/docs/en/mcp`}),` for help`]})]})]})}),(0,U.jsx)(b,{paddingX:1,children:(0,U.jsx)(S,{dimColor:!0,italic:!0,children:(0,U.jsxs)(C,{children:[(0,U.jsx)(v,{shortcut:`↑↓`,action:`navigate`}),(0,U.jsx)(v,{shortcut:`Enter`,action:`confirm`}),(0,U.jsx)(h,{action:`confirm:no`,context:`Confirmation`,fallback:`Esc`,description:`cancel`})]})})})]})}var H,U,W,G=e((()=>{n(),H=t(T(),1),D(),c(),u(),A(),ie(),d(),le(),U=k(),W=[`project`,`local`,`user`,`enterprise`]}));function ve({serverName:e,onComplete:t}){let[n]=y(),i=g(),a=oe(),[o,s]=(0,K.useState)(!0),[c,l]=(0,K.useState)(null);return(0,K.useEffect)(()=>{async function n(){try{if(!i.getState().mcp.clients.find(t=>t.name===e)){l(`MCP server "${e}" not found`),s(!1),t(`MCP server "${e}" not found`);return}switch((await a(e)).client.type){case`connected`:s(!1),t(`Successfully reconnected to ${e}`);break;case`needs-auth`:l(`${e} requires authentication`),s(!1),t(`${e} requires authentication. Use /mcp to authenticate.`);break;case`pending`:case`failed`:case`disabled`:l(`Failed to reconnect to ${e}`),s(!1),t(`Failed to reconnect to ${e}`);break}}catch(e){let n=e instanceof Error?e.message:String(e);l(n),s(!1),t(`Error: ${n}`)}}n()},[e,a,i,t]),o?(0,q.jsxs)(b,{flexDirection:`column`,gap:1,padding:1,children:[(0,q.jsxs)(S,{color:`text`,children:[`Reconnecting to `,(0,q.jsx)(S,{bold:!0,children:e})]}),(0,q.jsxs)(b,{children:[(0,q.jsx)(N,{}),(0,q.jsx)(S,{children:` Establishing connection to MCP server`})]})]}):c?(0,q.jsxs)(b,{flexDirection:`column`,gap:1,padding:1,children:[(0,q.jsxs)(b,{children:[(0,q.jsxs)(S,{children:[E(`error`,n)(r.cross),` `]}),(0,q.jsxs)(S,{color:`error`,children:[`Failed to reconnect to `,e]})]}),(0,q.jsxs)(S,{dimColor:!0,children:[`Error: `,c]})]}):null}var K,q,J=e((()=>{n(),K=t(T(),1),D(),j(),i(),M(),q=k()}));function Y({onComplete:e}){let t=s(e=>e.mcp),n=s(e=>e.agentDefinitions),r=t.clients,[i,o]=X.useState({type:`list`}),[c,u]=X.useState([]),d=(0,X.useMemo)(()=>l(n.allAgents),[n.allAgents]),f=X.useMemo(()=>r.filter(e=>e.name!==`ide`).sort((e,t)=>e.name.localeCompare(t.name)),[r]);switch(X.useEffect(()=>{let e=!1;async function n(){let n=await Promise.all(f.map(async e=>{let n=e.config.scope,r=e.config.type===`sse`,i=e.config.type===`http`,o=e.config.type===`claudeai-proxy`,s;if(r||i){let n=await new p(e.name,e.config).tokens(),r=e.type===`connected`&&a(t.tools,e.name).length>0;s=!!n||r}let c={name:e.name,client:e,scope:n};return o?{...c,transport:`claudeai-proxy`,isAuthenticated:!1,config:e.config}:r?{...c,transport:`sse`,isAuthenticated:s,config:e.config}:i?{...c,transport:`http`,isAuthenticated:s,config:e.config}:{...c,transport:`stdio`,config:e.config}}));e||u(n)}return n(),()=>{e=!0}},[f,t.tools]),(0,X.useEffect)(()=>{c.length===0&&f.length>0||c.length===0&&d.length===0&&e("No MCP servers configured. Please run /doctor if this is unexpected. Otherwise, run `claude mcp --help` or visit https://code.workmate.com/docs/en/mcp to learn more.")},[c.length,f.length,d.length,e]),i.type){case`list`:return(0,Z.jsx)(_e,{servers:c,agentServers:d,onSelectServer:e=>o({type:`server-menu`,server:e}),onSelectAgentServer:e=>o({type:`agent-server-menu`,agentServer:e}),onComplete:e,defaultTab:i.defaultTab});case`server-menu`:{let n=a(t.tools,i.server.name),r=i.server.transport===`claudeai-proxy`?`claude.ai`:`Work Mate`;return i.server.transport===`stdio`?(0,Z.jsx)(de,{server:i.server,serverToolsCount:n.length,onViewTools:()=>o({type:`server-tools`,server:i.server}),onCancel:()=>o({type:`list`,defaultTab:r}),onComplete:e}):(0,Z.jsx)(pe,{server:i.server,serverToolsCount:n.length,onViewTools:()=>o({type:`server-tools`,server:i.server}),onCancel:()=>o({type:`list`,defaultTab:r}),onComplete:e})}case`server-tools`:return(0,Z.jsx)(me,{server:i.server,onSelectTool:(e,t)=>o({type:`server-tool-detail`,server:i.server,toolIndex:t}),onBack:()=>o({type:`server-menu`,server:i.server})});case`server-tool-detail`:{let e=a(t.tools,i.server.name)[i.toolIndex];return e?(0,Z.jsx)(fe,{tool:e,server:i.server,onBack:()=>o({type:`server-tools`,server:i.server})}):(o({type:`server-tools`,server:i.server}),null)}case`agent-server-menu`:return(0,Z.jsx)(he,{agentServer:i.agentServer,onCancel:()=>o({type:`list`,defaultTab:`Agents`}),onComplete:e})}}var X,Z,ye=e((()=>{X=t(T(),1),f(),u(),i(),B(),G(),P(),L(),F(),I(),Z=k()})),be=e((()=>{B(),G(),J(),P(),ye(),L(),F(),I()}));function xe({action:e,target:t,onComplete:n}){let r=s(e=>e.mcp.clients),i=ae(),a=(0,Q.useRef)(!1);return(0,Q.useEffect)(()=>{if(a.current)return;a.current=!0;let o=e===`enable`,s=r.filter(e=>e.name!==`ide`),c=t===`all`?s.filter(e=>o?e.type===`disabled`:e.type!==`disabled`):s.filter(e=>e.name===t);if(c.length===0){n(t===`all`?`All MCP servers are already ${o?`enabled`:`disabled`}`:`MCP server "${t}" not found`);return}for(let e of c)i(e.name);n(t===`all`?`${o?`Enabled`:`Disabled`} ${c.length} MCP server(s)`:`MCP server "${t}" ${o?`enabled`:`disabled`}`)},[e,t,r,i,n]),null}async function Se(e,t,n){if(n){let t=n.trim().split(/\s+/);if(t[0]===`no-redirect`)return(0,$.jsx)(Y,{onComplete:e});if(t[0]===`reconnect`&&t[1])return(0,$.jsx)(ve,{serverName:t.slice(1).join(` `),onComplete:e});if(t[0]===`enable`||t[0]===`disable`)return(0,$.jsx)(xe,{action:t[0],target:t.length>1?t.slice(1).join(` `):`all`,onComplete:e})}return(0,$.jsx)(Y,{onComplete:e})}var Q,$;e((()=>{Q=t(T(),1),be(),J(),j(),i(),$=k()}))();export{Se as call};
@@ -1,2 +0,0 @@
1
- import{$y as e,A_ as t,B as n,By as r,Cc as i,Gy as a,Hy as o,Iy as s,Jy as c,Ky as l,Ly as ee,Os as u,PS as d,Ry as f,Sc as p,Uy as te,V as m,Vy as h,Wy as ne,Xy as re,Yy as g,Zi as _,Zy as v,_b as y,_l as b,ab as x,cb as S,cx as C,dv as w,fb as T,fv as E,gb as D,gl as O,hb as k,hh as A,ib as j,k_ as M,ks as N,lb as P,lx as F,mh as I,nb as L,ob as R,pb as z,qy as B,rb as V,sb as H,tb as U,vb as W,yb as G,zy as K}from"./loadAgentsDir-C1LkW7gl.js";import{C as q,x as J}from"./debug-8DCufdSp.js";import{o as Y,s as X}from"./log-DaILwWJa.js";import{f as ie,s as ae}from"./model-BwBE0Pt5.js";import{_n as Z,gn as oe,vn as se}from"./prompt-BGqgPgCU.js";import Q from"node:process";y(),a(),te(),k();var ce=class{constructor(e){this._server=e}requestStream(e,t,n){return this._server.requestStream(e,t,n)}createMessageStream(e,t){let n=this._server.getClientCapabilities();if((e.tools||e.toolChoice)&&!n?.sampling?.tools)throw Error(`Client does not support sampling tools capability.`);if(e.messages.length>0){let t=e.messages[e.messages.length-1],n=Array.isArray(t.content)?t.content:[t.content],r=n.some(e=>e.type===`tool_result`),i=e.messages.length>1?e.messages[e.messages.length-2]:void 0,a=i?Array.isArray(i.content)?i.content:[i.content]:[],o=a.some(e=>e.type===`tool_use`);if(r){if(n.some(e=>e.type!==`tool_result`))throw Error(`The last message must contain only tool_result content if any is present`);if(!o)throw Error(`tool_result blocks are not matching any tool_use from the previous message`)}if(o){let e=new Set(a.filter(e=>e.type===`tool_use`).map(e=>e.id)),t=new Set(n.filter(e=>e.type===`tool_result`).map(e=>e.toolUseId));if(e.size!==t.size||![...e].every(e=>t.has(e)))throw Error(`ids of tool_result blocks and tool_use blocks from previous message do not match`)}}return this.requestStream({method:`sampling/createMessage`,params:e},g,t)}elicitInputStream(t,n){let r=this._server.getClientCapabilities(),i=t.mode??`form`;switch(i){case`url`:if(!r?.elicitation?.url)throw Error(`Client does not support url elicitation.`);break;case`form`:if(!r?.elicitation?.form)throw Error(`Client does not support form elicitation.`);break}let a=i===`form`&&t.mode===void 0?{...t,mode:`form`}:t;return this.requestStream({method:`elicitation/create`,params:a},e,n)}async getTask(e,t){return this._server.getTask({taskId:e},t)}async getTaskResult(e,t,n){return this._server.getTaskResult({taskId:e},t,n)}async listTasks(e,t){return this._server.listTasks(e?{cursor:e}:void 0,t)}async cancelTask(e,t){return this._server.cancelTask({taskId:e},t)}};k(),h();var le=class extends ne{constructor(e,t){super(t),this._serverInfo=e,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(S.options.map((e,t)=>[e,t])),this.isMessageIgnored=(e,t)=>{let n=this._loggingLevels.get(t);return n?this.LOG_LEVEL_SEVERITY.get(e)<this.LOG_LEVEL_SEVERITY.get(n):!1},this._capabilities=t?.capabilities??{},this._instructions=t?.instructions,this._jsonSchemaValidator=t?.jsonSchemaValidator??new o,this.setRequestHandler(V,e=>this._oninitialize(e)),this.setNotificationHandler(j,()=>this.oninitialized?.()),this._capabilities.logging&&this.setRequestHandler(z,async(e,t)=>{let n=t.sessionId||t.requestInfo?.headers[`mcp-session-id`]||void 0,{level:r}=e.params,i=S.safeParse(r);return i.success&&this._loggingLevels.set(n,i.data),{}})}get experimental(){return this._experimental||(this._experimental={tasks:new ce(this)}),this._experimental}registerCapabilities(e){if(this.transport)throw Error(`Cannot register capabilities after connecting to transport`);this._capabilities=l(this._capabilities,e)}setRequestHandler(e,t){let n=D(e)?.method;if(!n)throw Error(`Schema is missing a method literal`);let r;if(W(n)){let e=n;r=e._zod?.def?.value??e.value}else{let e=n;r=e._def?.value??e.value}if(typeof r!=`string`)throw Error(`Schema method literal must be a string`);return r===`tools/call`?super.setRequestHandler(e,async(e,n)=>{let r=G(B,e);if(!r.success){let e=r.error instanceof Error?r.error.message:String(r.error);throw new P(L.InvalidParams,`Invalid tools/call request: ${e}`)}let{params:i}=r.data,a=await Promise.resolve(t(e,n));if(i.task){let e=G(v,a);if(!e.success){let t=e.error instanceof Error?e.error.message:String(e.error);throw new P(L.InvalidParams,`Invalid task creation result: ${t}`)}return e.data}let o=G(c,a);if(!o.success){let e=o.error instanceof Error?o.error.message:String(o.error);throw new P(L.InvalidParams,`Invalid tools/call result: ${e}`)}return o.data}):super.setRequestHandler(e,t)}assertCapabilityForMethod(e){switch(e){case`sampling/createMessage`:if(!this._clientCapabilities?.sampling)throw Error(`Client does not support sampling (required for ${e})`);break;case`elicitation/create`:if(!this._clientCapabilities?.elicitation)throw Error(`Client does not support elicitation (required for ${e})`);break;case`roots/list`:if(!this._clientCapabilities?.roots)throw Error(`Client does not support listing roots (required for ${e})`);break;case`ping`:break}}assertNotificationCapability(e){switch(e){case`notifications/message`:if(!this._capabilities.logging)throw Error(`Server does not support logging (required for ${e})`);break;case`notifications/resources/updated`:case`notifications/resources/list_changed`:if(!this._capabilities.resources)throw Error(`Server does not support notifying about resources (required for ${e})`);break;case`notifications/tools/list_changed`:if(!this._capabilities.tools)throw Error(`Server does not support notifying of tool list changes (required for ${e})`);break;case`notifications/prompts/list_changed`:if(!this._capabilities.prompts)throw Error(`Server does not support notifying of prompt list changes (required for ${e})`);break;case`notifications/elicitation/complete`:if(!this._clientCapabilities?.elicitation?.url)throw Error(`Client does not support URL elicitation (required for ${e})`);break;case`notifications/cancelled`:break;case`notifications/progress`:break}}assertRequestHandlerCapability(e){if(this._capabilities)switch(e){case`completion/complete`:if(!this._capabilities.completions)throw Error(`Server does not support completions (required for ${e})`);break;case`logging/setLevel`:if(!this._capabilities.logging)throw Error(`Server does not support logging (required for ${e})`);break;case`prompts/get`:case`prompts/list`:if(!this._capabilities.prompts)throw Error(`Server does not support prompts (required for ${e})`);break;case`resources/list`:case`resources/templates/list`:case`resources/read`:if(!this._capabilities.resources)throw Error(`Server does not support resources (required for ${e})`);break;case`tools/call`:case`tools/list`:if(!this._capabilities.tools)throw Error(`Server does not support tools (required for ${e})`);break;case`tasks/get`:case`tasks/list`:case`tasks/result`:case`tasks/cancel`:if(!this._capabilities.tasks)throw Error(`Server does not support tasks capability (required for ${e})`);break;case`ping`:case`initialize`:break}}assertTaskCapability(e){K(this._clientCapabilities?.tasks?.requests,e,`Client`)}assertTaskHandlerCapability(e){this._capabilities&&r(this._capabilities.tasks?.requests,e,`Server`)}async _oninitialize(e){let t=e.params.protocolVersion;return this._clientCapabilities=e.params.capabilities,this._clientVersion=e.params.clientInfo,{protocolVersion:T.includes(t)?t:x,capabilities:this.getCapabilities(),serverInfo:this._serverInfo,...this._instructions&&{instructions:this._instructions}}}getClientCapabilities(){return this._clientCapabilities}getClientVersion(){return this._clientVersion}getCapabilities(){return this._capabilities}async ping(){return this.request({method:`ping`},U)}async createMessage(e,t){if((e.tools||e.toolChoice)&&!this._clientCapabilities?.sampling?.tools)throw Error(`Client does not support sampling tools capability.`);if(e.messages.length>0){let t=e.messages[e.messages.length-1],n=Array.isArray(t.content)?t.content:[t.content],r=n.some(e=>e.type===`tool_result`),i=e.messages.length>1?e.messages[e.messages.length-2]:void 0,a=i?Array.isArray(i.content)?i.content:[i.content]:[],o=a.some(e=>e.type===`tool_use`);if(r){if(n.some(e=>e.type!==`tool_result`))throw Error(`The last message must contain only tool_result content if any is present`);if(!o)throw Error(`tool_result blocks are not matching any tool_use from the previous message`)}if(o){let e=new Set(a.filter(e=>e.type===`tool_use`).map(e=>e.id)),t=new Set(n.filter(e=>e.type===`tool_result`).map(e=>e.toolUseId));if(e.size!==t.size||![...e].every(e=>t.has(e)))throw Error(`ids of tool_result blocks and tool_use blocks from previous message do not match`)}}return e.tools?this.request({method:`sampling/createMessage`,params:e},re,t):this.request({method:`sampling/createMessage`,params:e},g,t)}async elicitInput(t,n){switch(t.mode??`form`){case`url`:{if(!this._clientCapabilities?.elicitation?.url)throw Error(`Client does not support url elicitation.`);let r=t;return this.request({method:`elicitation/create`,params:r},e,n)}case`form`:{if(!this._clientCapabilities?.elicitation?.form)throw Error(`Client does not support form elicitation.`);let r=t.mode===`form`?t:{...t,mode:`form`},i=await this.request({method:`elicitation/create`,params:r},e,n);if(i.action===`accept`&&i.content&&r.requestedSchema)try{let e=this._jsonSchemaValidator.getValidator(r.requestedSchema)(i.content);if(!e.valid)throw new P(L.InvalidParams,`Elicitation response content does not match requested schema: ${e.errorMessage}`)}catch(e){throw e instanceof P?e:new P(L.InternalError,`Error validating elicitation response: ${e instanceof Error?e.message:String(e)}`)}return i}}}createElicitationCompletionNotifier(e,t){if(!this._clientCapabilities?.elicitation?.url)throw Error(`Client does not support URL elicitation (required for notifications/elicitation/complete)`);return()=>this.notification({method:`notifications/elicitation/complete`,params:{elicitationId:e}},t)}async listRoots(e,t){return this.request({method:`roots/list`,params:e},R,t)}async sendLoggingMessage(e,t){if(this._capabilities.logging&&!this.isMessageIgnored(e.level,t))return this.notification({method:`notifications/message`,params:e})}async sendResourceUpdated(e){return this.notification({method:`notifications/resources/updated`,params:e})}async sendResourceListChanged(){return this.notification({method:`notifications/resources/list_changed`})}async sendToolListChanged(){return this.notification({method:`notifications/tools/list_changed`})}async sendPromptListChanged(){return this.notification({method:`notifications/prompts/list_changed`})}};ee();var $=class{constructor(e=Q.stdin,t=Q.stdout){this._stdin=e,this._stdout=t,this._readBuffer=new s,this._started=!1,this._ondata=e=>{this._readBuffer.append(e),this.processReadBuffer()},this._onerror=e=>{this.onerror?.(e)}}async start(){if(this._started)throw Error(`StdioServerTransport already started! If using Server class, note that connect() calls start() automatically.`);this._started=!0,this._stdin.on(`data`,this._ondata),this._stdin.on(`error`,this._onerror)}processReadBuffer(){for(;;)try{let e=this._readBuffer.readMessage();if(e===null)break;this.onmessage?.(e)}catch(e){this.onerror?.(e)}}async close(){this._stdin.off(`data`,this._ondata),this._stdin.off(`error`,this._onerror),this._stdin.listenerCount(`data`)===0&&this._stdin.pause(),this._readBuffer.clear(),this.onclose?.()}send(e){return new Promise(t=>{let n=f(e);this._stdout.write(n)?t():this._stdout.once(`drain`,t)})}};k(),N(),se(),i(),E(),t(),Y(),_(),ie(),m(),C(),J(),b(),I();var ue=[];async function de(e,t,r){let i=M(100);F(e);let a=new le({name:`claude/tengu`,version:`0.0.22`},{capabilities:{tools:{}}});a.setRequestHandler(H,async()=>{let e=Z(),t=p(e);return{tools:await Promise.all(t.map(async n=>{let r;if(n.outputSchema){let e=A(n.outputSchema);typeof e==`object`&&e&&`type`in e&&e.type===`object`&&(r=e)}return{...n,description:await n.prompt({getToolPermissionContext:async()=>e,tools:t,agents:[]}),inputSchema:A(n.inputSchema),outputSchema:r}}))}}),a.setRequestHandler(B,async({params:{name:e,arguments:a}})=>{let o=p(Z()),s=oe(o,e);if(!s)throw Error(`Tool ${e} not found`);let c={abortController:w(),options:{commands:ue,tools:o,mainLoopModel:ae(),thinkingConfig:{type:`disabled`},mcpClients:[],mcpResources:{},isNonInteractiveSession:!0,debug:t,verbose:r,agentDefinitions:{activeAgents:[],allAgents:[]}},getAppState:()=>u(),setAppState:()=>{},messages:[],readFileState:i,setInProgressToolUseIDs:()=>{},setResponseLength:()=>{},updateFileHistoryState:()=>{},updateAttributionState:()=>{}};try{if(!s.isEnabled())throw Error(`Tool ${e} is not enabled`);let t=await s.validateInput?.(a??{},c);if(t&&!t.result)throw Error(`Tool ${e} input is invalid: ${`message`in t?t.message:String(t)}`);let r=await s.call(a??{},c,n,d({content:[]}));return{content:[{type:`text`,text:typeof r==`string`?r:q(r.data)}]}}catch(e){return X(e),{isError:!0,content:[{type:`text`,text:(e instanceof Error?O(e):[String(e)]).filter(Boolean).join(`
2
- `).trim()||`Error`}]}}});async function o(){let e=new $;await a.connect(e)}return await o()}export{de as startMCPServer};
@@ -1 +0,0 @@
1
- import{n as e,o as t}from"./rolldown-runtime-DaDcL9Zw.js";import{i as n,o as r}from"./envUtils-DcaKZlRU.js";import{C_ as i,Dp as a,Hl as o,Ny as s,Op as c,Ub as l,Ul as u,cc as d,dT as ee,jy as f,lc as te,pT as p,v_ as m,x_ as h}from"./loadAgentsDir-C1LkW7gl.js";import{I as g,Lt as _,P as v,Wt as y,_ as b,ai as x,di as ne,fi as S,t as C,y as w}from"./src-DL3w8VPk.js";import{t as T}from"./jsx-runtime-Bb4Xn-E0.js";import{Z as E,zt as D}from"./state-BowF111d.js";import{n as O,t as k}from"./cwd-BcO6WHKo.js";import{L as A,P as j}from"./debug-8DCufdSp.js";import{An as M,Dn as N,Pr as P,Ur as F,b as I,h as L}from"./settings-DKN4xSpQ.js";import{N as R,O as re,j as z}from"./config-BddEvZZl.js";import{o as B,s as ie}from"./log-DaILwWJa.js";import{n as ae,r as V}from"./analytics-DJobLaWP.js";import{_ as oe,p as se}from"./startupProfiler-DTs9w9EN.js";import{n as ce,t as H}from"./useExitOnCtrlCDWithKeybindings-CjW3gUOt.js";import{t as U}from"./select-C_KXmqbI.js";import{r as W,t as le}from"./promptEditor-CmQ9p4oe.js";import{t as ue}from"./CustomSelect-B46Eh0gU.js";import{homedir as de}from"os";import{join as G,relative as fe}from"path";import{mkdir as K,writeFile as pe}from"fs/promises";function me(e){return P(e)!==null}var he=e((()=>{F()}));function ge({onSelect:e,onCancel:t}){let r=(0,q.use)(h()),i=G(n(),`AGENTS.md`),a=G(E(),`AGENTS.md`),o=r.some(e=>e.path===i),l=r.some(e=>e.path===a),d=[...r.filter(e=>e.type!==`AutoMem`).map(e=>({...e,exists:!0})),...o?[]:[{path:i,type:`User`,content:``,exists:!1}],...l?[]:[{path:a,type:`Project`,content:``,exists:!1}]],f=new Map,p=d.map(e=>{let t=N(e.path),n=e.exists?``:` (new)`,r=e.parent?(f.get(e.parent)??0)+1:0;f.set(e.path,r);let o=r>0?` `.repeat(r-1):``,s;s=e.type===`User`&&!e.isNested&&e.path===i?`User memory`:e.type===`Project`&&!e.isNested&&e.path===a?`Project memory`:r>0?`${o}L ${t}${n}`:`${t}`;let c,l=me(E());return c=e.type===`User`&&!e.isNested?`Saved in ~/.workmate/AGENTS.md`:e.type===`Project`&&!e.isNested&&e.path===a?`${l?`Checked in at`:`Saved in`} ./AGENTS.md`:e.parent?`@-imported`:e.isNested?`dynamically loaded`:``,{label:s,value:e.path,description:c}}),m=[],_=c(e=>e.agentDefinitions);if(R()){m.push({label:`Open auto-memory folder`,value:`${X}${re()}`,description:``});for(let e of _.activeAgents)if(e.memory){let t=ee(e.agentType,e.memory);m.push({label:`Open ${ne.bold(e.agentType)} agent memory`,value:`${X}${t}`,description:`${e.memory} scope`})}}p.push(...m);let x=Y&&p.some(e=>e.value===Y)?Y:p[0]?.value||``,[S,C]=(0,q.useState)(R),[w,T]=(0,q.useState)(te),[D]=(0,q.useState)(R),O=c(e=>Object.values(e.tasks).some(e=>e.type===`dream`&&e.status===`running`)),[k,A]=(0,q.useState)(null);(0,q.useEffect)(()=>{D&&u().then(A)},[D,O]);let j=O?`running`:k===null?``:k===0?`never`:`last ran ${se(new Date(k))}`,[M,P]=(0,q.useState)(null),F=M!==null,L=+!!D;function z(){let e=!S;I(`userSettings`,{autoMemoryEnabled:e}),C(e),V(`tengu_auto_memory_toggled`,{enabled:e})}function B(){let e=!w;I(`userSettings`,{autoDreamEnabled:e}),T(e),V(`tengu_auto_dream_toggled`,{enabled:e})}return ce(),y(`confirm:no`,t,{context:`Confirmation`}),y(`confirm:yes`,()=>{M===0?z():M===1&&B()},{context:`Confirmation`,isActive:F}),y(`select:next`,()=>{P(e=>e!==null&&e<L?e+1:null)},{context:`Select`,isActive:F}),y(`select:previous`,()=>{P(e=>e!==null&&e>0?e-1:e)},{context:`Select`,isActive:F}),(0,J.jsxs)(g,{flexDirection:`column`,width:`100%`,children:[(0,J.jsxs)(g,{flexDirection:`column`,marginBottom:1,children:[(0,J.jsx)(b,{isFocused:M===0,children:(0,J.jsxs)(v,{children:[`Auto-memory: `,S?`on`:`off`]})}),D&&(0,J.jsx)(b,{isFocused:M===1,styled:!1,children:(0,J.jsxs)(v,{color:M===1?`suggestion`:void 0,children:[`Auto-dream: `,w?`on`:`off`,j&&(0,J.jsxs)(v,{dimColor:!0,children:[` · `,j]}),!O&&w&&(0,J.jsx)(v,{dimColor:!0,children:` · /dream to run`})]})})]}),(0,J.jsx)(U,{defaultFocusValue:x,options:p,isDisabled:F,onChange:t=>{if(t.startsWith(X)){let e=t.slice(15);K(e,{recursive:!0}).catch(()=>{}).then(()=>s(e));return}Y=t,e(t)},onCancel:t,onUpFromFirstItem:()=>P(L)})]})}var q,J,Y,X,_e=e((()=>{S(),q=t(x(),1),D(),H(),C(),l(),z(),ae(),d(),o(),a(),p(),f(),i(),r(),M(),oe(),he(),L(),ue(),J=T(),X=`__open_folder__`}));function ve(e){let t=de(),n=k(),r=e.startsWith(t)?`~${e.slice(t.length)}`:null,i=e.startsWith(n)?`./${fe(n,e)}`:null;return r&&i?r.length<=i.length?r:i:r||i||e}var ye=e((()=>{C(),O(),T()}));function be({onDone:e}){let t=async t=>{try{t.includes(n())&&await K(n(),{recursive:!0});try{await pe(t,``,{encoding:`utf8`,flag:`wx`})}catch(e){if(j(e)!==`EEXIST`)throw e}await le(t);let r=`default`,i=``;process.env.VISUAL?(r=`$VISUAL`,i=process.env.VISUAL):process.env.EDITOR&&(r=`$EDITOR`,i=process.env.EDITOR);let a=r==="default"?``:`Using ${r}="${i}".`,o=a?`> ${a} To change editor, set $EDITOR or $VISUAL environment variable.`:`> To use a different editor, set the $EDITOR or $VISUAL environment variable.`;e(`Opened memory file at ${ve(t)}\n\n${o}`,{display:`system`})}catch(t){ie(t),e(`Error opening memory file: ${t}`)}},r=()=>{e(`Cancelled memory editing`,{display:`system`})};return(0,Q.jsx)(w,{title:`Memory`,onCancel:r,color:`remember`,children:(0,Q.jsxs)(g,{flexDirection:`column`,children:[(0,Q.jsx)(Z.Suspense,{fallback:null,children:(0,Q.jsx)(ge,{onSelect:t,onCancel:r})}),(0,Q.jsx)(g,{marginTop:1,children:(0,Q.jsxs)(v,{dimColor:!0,children:[`Learn more: `,(0,Q.jsx)(_,{url:`https://code.workmate.com/docs/en/memory`})]})})]})})}var Z,Q,$;e((()=>{Z=t(x(),1),C(),_e(),ye(),i(),r(),A(),B(),W(),Q=T(),$=async e=>(m(),await h(),(0,Q.jsx)(be,{onDone:e}))}))();export{$ as call};
@@ -1 +0,0 @@
1
- import{n as e,o as t}from"./rolldown-runtime-DaDcL9Zw.js";import{Ap as n,Dp as r,Op as i,Qu as a,Xu as o,Zu as s,aC as c,oC as l}from"./loadAgentsDir-C1LkW7gl.js";import{ai as u,di as d,fi as f}from"./src-DL3w8VPk.js";import{t as p}from"./jsx-runtime-Bb4Xn-E0.js";import{A as m,k as h,q as g}from"./log-DaILwWJa.js";import{n as _,r as v}from"./analytics-DJobLaWP.js";import{C as y,E as b,F as x,K as S,T as C,U as w,W as T,f as E,h as D,i as O,q as k,w as A,y as j}from"./model-BwBE0Pt5.js";import{i as M,r as N}from"./switcher-Bq1Ct_Sn.js";import{i as P,n as F,r as I,t as L}from"./extraUsage-DYm33Occ.js";function R({onDone:e}){let t=i(e=>e.mainLoopModel),r=i(e=>e.mainLoopModelForSession),a=i(e=>e.fastMode),o=n();function s(){v(`tengu_model_command_menu`,{action:`cancel`});let n=W(t);e(`Kept model as ${d.bold(n)}`,{display:`system`})}async function c(n){v(`tengu_model_command_menu`,{action:n,from_model:t,to_model:n}),o(e=>({...e,mainLoopModel:n,mainLoopModelForSession:null}));let r=`Set model to ${d.bold(W(n))}`,i;if(S()&&(x(),!k(n)&&a?(o(e=>({...e,fastMode:!1})),i=!1):k(n)&&T()&&a&&(r+=` · Fast mode ON`,i=!0)),F(n,i===!0,D())&&(r+=` · Billed as extra usage`),i===!1&&(r+=` · Fast mode OFF`),n){let e=await M(n);e.kind===`updated`&&(r+=` · Provider "${e.providerId}" default model updated`)}e(r)}return(0,K.jsx)(I,{initial:t,sessionModel:r,onSelect:c,onCancel:s,isStandaloneCommand:!0,showFastModeNotice:S()&&a&&k(t)&&T()})}function z({args:e,onDone:t}){let r=i(e=>e.fastMode),a=n(),o=e==="default"?null:e;return G.useEffect(()=>{async function e(){if(o&&!A(o)){t(`Model '${o}' is not available. Your organization restricts model selection.`,{display:`system`});return}if(o&&V(o)){t(`Opus 4.7 with 1M context is not available for your account. Learn more: https://code.workmate.com/docs/en/model-config#extended-context-with-1m`,{display:`system`});return}if(o&&H(o)){t(`Sonnet 4.6 with 1M context is not available for your account. Learn more: https://code.workmate.com/docs/en/model-config#extended-context-with-1m`,{display:`system`});return}if(!o){n(null);return}if(B(o)){await n(o);return}try{let{valid:e,error:r}=await l(o);e?await n(o):t(r||`Model '${o}' not found`,{display:`system`})}catch(e){t(`Failed to validate model: ${e.message}`,{display:`system`})}}async function n(e){a(t=>({...t,mainLoopModel:e,mainLoopModelForSession:null}));let n=`Set model to ${d.bold(W(e))}`,i;if(S()&&(x(),!k(e)&&r?(a(e=>({...e,fastMode:!1})),i=!1):k(e)&&r&&(n+=` · Fast mode ON`,i=!0)),F(e,i===!0,D())&&(n+=` · Billed as extra usage`),i===!1&&(n+=` · Fast mode OFF`),e){let t=await M(e);t.kind===`updated`&&(n+=` · Provider "${t.providerId}" default model updated`)}t(n)}e()},[o,t,a]),null}function B(e){return C.includes(e.toLowerCase().trim())}function V(e){let t=e.toLowerCase();return!o()&&!D()&&t.includes(`opus`)&&t.includes(`[1m]`)}function H(e){let t=e.toLowerCase();return!s()&&(t.includes(`sonnet[1m]`)||t.includes(`sonnet-4-6[1m]`))}function U({onDone:e}){let t=i(e=>e.mainLoopModel),n=i(e=>e.mainLoopModelForSession),r=W(t);return e(n?`Current model: ${d.bold(W(n))} (session override from plan mode)\nBase model: ${r}`:`Current model: ${r}`),null}function W(e){let t=j(e??O());return e===null?`${t} (default)`:t}var G,K,q;e((()=>{f(),G=t(u(),1),P(),g(),_(),r(),L(),w(),b(),a(),E(),y(),c(),N(),K=p(),q=async(e,t,n)=>{if(n=n?.trim()||``,m.includes(n))return v(`tengu_model_command_inline_help`,{args:n}),(0,K.jsx)(U,{onDone:e});if(h.includes(n)){e(`Run /model to open the model selection menu, or /model [modelName] to set the model.`,{display:`system`});return}return n?(v(`tengu_model_command_inline`,{args:n}),(0,K.jsx)(z,{args:n,onDone:e})):(0,K.jsx)(R,{onDone:e})}}))();export{q as call};
@@ -1 +0,0 @@
1
- import{n as e,o as t}from"./rolldown-runtime-DaDcL9Zw.js";import{n,t as r}from"./memoize-BK3gG5ob.js";import{d as i,i as a,l as o,o as s,r as c,s as l,t as u}from"./envUtils-DcaKZlRU.js";import{n as d,t as ee}from"./defineProperty-C-QyHrDq.js";import{n as f,t as te}from"./axios-DaWTGg7G.js";import{di as p,fi as ne}from"./src-DL3w8VPk.js";import{G as re,P as ie,W as ae,Z as oe,f as se,g as ce,l as le,o as ue,s as de,v as fe,x as pe}from"./types-zk5Ltv5q.js";import{$n as me,Er as he,G as ge,Gt as _e,J as ve,L as m,On as ye,Qn as be,Tr as xe,X as Se,ct as Ce,dn as we,jn as Te,tn as Ee,ut as De,y as Oe,zt as h}from"./state-BowF111d.js";import{C as ke,L as Ae,N as g,P as je,S as Me,T as Ne,U as Pe,W as Fe,c as _,f as Ie,i as v,o as Le,s as Re,u as ze,x as Be,z as Ve}from"./debug-8DCufdSp.js";import{$t as He,Ht as Ue,Jt as We,Xt as Ge,Yt as Ke,b as qe,d as y,en as b,h as x,s as S,t as Je,tn as C}from"./settings-DKN4xSpQ.js";import{S as Ye,c as w,m as Xe,n as T,v as E,x as Ze}from"./config-BddEvZZl.js";import{a as Qe,i as $e,o as et,r as tt,s as nt,t as rt}from"./execFileNoThrow-BsfuytkN.js";import{d as it,f as at,o as ot,s as D}from"./log-DaILwWJa.js";import{h as st,m as ct,n as lt,o as ut}from"./stringUtils-BQm3OfeJ.js";import{n as dt,r as O}from"./analytics-DJobLaWP.js";import{c as ft,i as pt,r as mt}from"./proxy-CB17QimU.js";import{userInfo as ht}from"os";import{join as gt}from"path";import{chmodSync as _t,mkdirSync as vt,readFileSync as yt,writeFileSync as bt}from"fs";import{createHash as xt,randomUUID as St}from"crypto";import{mkdir as Ct,stat as wt,writeFile as Tt}from"fs/promises";import{exec as Et,execFile as Dt}from"child_process";import{AsyncLocalStorage as Ot}from"async_hooks";function k(e=Je()){let t=e.modelType;return t===`openai`?`openai`:t===`gemini`?`gemini`:t===`grok`?`grok`:o(process.env.CLAUDE_CODE_USE_BEDROCK)?`bedrock`:o(process.env.CLAUDE_CODE_USE_VERTEX)?`vertex`:o(process.env.CLAUDE_CODE_USE_FOUNDRY)?`foundry`:o(process.env.CLAUDE_CODE_USE_OPENAI)?`openai`:o(process.env.CLAUDE_CODE_USE_GEMINI)?`gemini`:o(process.env.CLAUDE_CODE_USE_GROK)?`grok`:`firstParty`}function kt(){return k()}function At(){let e=process.env.ANTHROPIC_BASE_URL;if(!e)return!0;try{return new URL(e).host===`api.anthropic.com`}catch{return!1}}var A=e((()=>{x(),s()}));function jt(){return Nt.getStore()?.workload}function Mt(e,t){return Nt.run({workload:e},t)}var Nt,Pt=e((()=>{Nt=new Ot}));function Ft(e){let t=[],n=!1;async function r(){if(!n&&t.length!==0){for(n=!0;t.length>0;){let{args:n,resolve:r,reject:i,context:a}=t.shift();try{r(await e.apply(a,n))}catch(e){i(e)}}n=!1,t.length>0&&r()}}return function(...e){return new Promise((n,i)=>{t.push({args:e,resolve:n,reject:i,context:this}),r()})}}var It=e((()=>{}));function Lt(e,t){return e.find(e=>e.includes(t))??null}async function Rt(){let{BedrockClient:e}=await import(`./dist-es-yHGBqhBe.js`),t=u(),n=o(process.env.CLAUDE_CODE_SKIP_BEDROCK_AUTH),r={region:t,...process.env.ANTHROPIC_BEDROCK_BASE_URL&&{endpoint:process.env.ANTHROPIC_BEDROCK_BASE_URL},...await mt(),...n&&{requestHandler:new(await(import(`./dist-es-C7vygWzp.js`))).NodeHttpHandler,httpAuthSchemes:[{schemeId:`smithy.api#noAuth`,identityProvider:()=>async()=>({}),signer:new(await(import(`./dist-es-gUzZ_7Vf.js`))).NoAuthSigner}],httpAuthSchemeProvider:()=>[{schemeId:`smithy.api#noAuth`}]}};if(!n&&!process.env.AWS_BEARER_TOKEN_BEDROCK){let e=await to();e&&(r.credentials={accessKeyId:e.accessKeyId,secretAccessKey:e.secretAccessKey,sessionToken:e.sessionToken})}return new e(r)}async function zt(){let{BedrockRuntimeClient:e}=await import(`./dist-es-Gt_DpXlP.js`),t=u(),n=o(process.env.CLAUDE_CODE_SKIP_BEDROCK_AUTH),r={region:t,...process.env.ANTHROPIC_BEDROCK_BASE_URL&&{endpoint:process.env.ANTHROPIC_BEDROCK_BASE_URL},...await mt(),...n&&{requestHandler:new(await(import(`./dist-es-C7vygWzp.js`))).NodeHttpHandler,httpAuthSchemes:[{schemeId:`smithy.api#noAuth`,identityProvider:()=>async()=>({}),signer:new(await(import(`./dist-es-gUzZ_7Vf.js`))).NoAuthSigner}],httpAuthSchemeProvider:()=>[{schemeId:`smithy.api#noAuth`}]}};if(!n&&!process.env.AWS_BEARER_TOKEN_BEDROCK){let e=await to();e&&(r.credentials={accessKeyId:e.accessKeyId,secretAccessKey:e.secretAccessKey,sessionToken:e.sessionToken})}return new e(r)}function Bt(e){return e.startsWith(`anthropic.`)}function Vt(e){if(!e.startsWith(`arn:`))return e;let t=e.lastIndexOf(`/`);return t===-1?e:e.substring(t+1)}function Ht(e){let t=Vt(e);for(let e of Kt)if(t.startsWith(`${e}.anthropic.`))return e}function Ut(e,t){let n=Ht(e);return n?e.replace(`${n}.`,`${t}.`):Bt(e)?`${t}.${e}`:e}var Wt,Gt,Kt,qt=e((()=>{r(),U(),s(),ot(),ft(),Wt=n(async()=>{let[e,{ListInferenceProfilesCommand:t}]=await Promise.all([Rt(),import(`./dist-es-yHGBqhBe.js`)]),n=[],r;try{do{let i=new t({...r&&{nextToken:r},typeEquals:`SYSTEM_DEFINED`}),a=await e.send(i);a.inferenceProfileSummaries&&n.push(...a.inferenceProfileSummaries),r=a.nextToken}while(r);return n.filter(e=>e.inferenceProfileId?.includes(`anthropic`)).map(e=>e.inferenceProfileId).filter(Boolean)}catch(e){throw D(e),e}}),Gt=n(async e=>{try{let[t,{GetInferenceProfileCommand:n}]=await Promise.all([Rt(),import(`./dist-es-yHGBqhBe.js`)]),r=new n({inferenceProfileIdentifier:e}),i=await t.send(r);if(!i.models||i.models.length===0)return null;let a=i.models[0];if(!a?.modelArn)return null;let o=a.modelArn.lastIndexOf(`/`);return o>=0?a.modelArn.substring(o+1):a.modelArn}catch(e){return D(e),null}}),Kt=[`us`,`eu`,`apac`,`global`]})),Jt,Yt,Xt,Zt,Qt,$t,en,tn,nn,rn,an,on,sn,cn,ln=e((()=>{Jt={firstParty:`claude-3-7-sonnet-20250219`,bedrock:`us.anthropic.claude-3-7-sonnet-20250219-v1:0`,vertex:`claude-3-7-sonnet@20250219`,foundry:`claude-3-7-sonnet`,openai:`claude-3-7-sonnet-20250219`,gemini:`claude-3-7-sonnet-20250219`,grok:`claude-3-7-sonnet-20250219`},Yt={firstParty:`claude-3-5-sonnet-20241022`,bedrock:`anthropic.claude-3-5-sonnet-20241022-v2:0`,vertex:`claude-3-5-sonnet-v2@20241022`,foundry:`claude-3-5-sonnet`,openai:`claude-3-5-sonnet-20241022`,gemini:`claude-3-5-sonnet-20241022`,grok:`claude-3-5-sonnet-20241022`},Xt={firstParty:`claude-3-5-haiku-20241022`,bedrock:`us.anthropic.claude-3-5-haiku-20241022-v1:0`,vertex:`claude-3-5-haiku@20241022`,foundry:`claude-3-5-haiku`,openai:`claude-3-5-haiku-20241022`,gemini:`claude-3-5-haiku-20241022`,grok:`claude-3-5-haiku-20241022`},Zt={firstParty:`claude-haiku-4-5-20251001`,bedrock:`us.anthropic.claude-haiku-4-5-20251001-v1:0`,vertex:`claude-haiku-4-5@20251001`,foundry:`claude-haiku-4-5`,openai:`claude-haiku-4-5-20251001`,gemini:`claude-haiku-4-5-20251001`,grok:`claude-haiku-4-5-20251001`},Qt={firstParty:`claude-sonnet-4-20250514`,bedrock:`us.anthropic.claude-sonnet-4-20250514-v1:0`,vertex:`claude-sonnet-4@20250514`,foundry:`claude-sonnet-4`,openai:`claude-sonnet-4-20250514`,gemini:`claude-sonnet-4-20250514`,grok:`claude-sonnet-4-20250514`},$t={firstParty:`claude-sonnet-4-5-20250929`,bedrock:`us.anthropic.claude-sonnet-4-5-20250929-v1:0`,vertex:`claude-sonnet-4-5@20250929`,foundry:`claude-sonnet-4-5`,openai:`claude-sonnet-4-5-20250929`,gemini:`claude-sonnet-4-5-20250929`,grok:`claude-sonnet-4-5-20250929`},en={firstParty:`claude-opus-4-20250514`,bedrock:`us.anthropic.claude-opus-4-20250514-v1:0`,vertex:`claude-opus-4@20250514`,foundry:`claude-opus-4`,openai:`claude-opus-4-20250514`,gemini:`claude-opus-4-20250514`,grok:`claude-opus-4-20250514`},tn={firstParty:`claude-opus-4-1-20250805`,bedrock:`us.anthropic.claude-opus-4-1-20250805-v1:0`,vertex:`claude-opus-4-1@20250805`,foundry:`claude-opus-4-1`,openai:`claude-opus-4-1-20250805`,gemini:`claude-opus-4-1-20250805`,grok:`claude-opus-4-1-20250805`},nn={firstParty:`claude-opus-4-5-20251101`,bedrock:`us.anthropic.claude-opus-4-5-20251101-v1:0`,vertex:`claude-opus-4-5@20251101`,foundry:`claude-opus-4-5`,openai:`claude-opus-4-5-20251101`,gemini:`claude-opus-4-5-20251101`,grok:`claude-opus-4-5-20251101`},rn={firstParty:`claude-opus-4-6`,bedrock:`us.anthropic.claude-opus-4-6-v1`,vertex:`claude-opus-4-6`,foundry:`claude-opus-4-6`,openai:`claude-opus-4-6`,gemini:`claude-opus-4-6`,grok:`claude-opus-4-6`},an={firstParty:`claude-opus-4-7`,bedrock:`us.anthropic.claude-opus-4-7-v1`,vertex:`claude-opus-4-7`,foundry:`claude-opus-4-7`,openai:`claude-opus-4-7`,gemini:`claude-opus-4-7`,grok:`claude-opus-4-7`},on={firstParty:`claude-sonnet-4-6`,bedrock:`us.anthropic.claude-sonnet-4-6`,vertex:`claude-sonnet-4-6`,foundry:`claude-sonnet-4-6`,openai:`claude-sonnet-4-6`,gemini:`claude-sonnet-4-6`,grok:`claude-sonnet-4-6`},sn={haiku35:Xt,haiku45:Zt,sonnet35:Yt,sonnet37:Jt,sonnet40:Qt,sonnet45:$t,sonnet46:on,opus40:en,opus41:tn,opus45:nn,opus46:rn,opus47:an},Object.values(sn).map(e=>e.firstParty),cn=Object.fromEntries(Object.entries(sn).map(([e,t])=>[t.firstParty,e]))}));function un(e){let t={};for(let n of gn)t[n]=sn[n][e];return t}async function dn(){let e=un(`bedrock`),t;try{t=await Wt()}catch(t){return D(t),e}if(!t?.length)return e;let n={};for(let r of gn){let i=sn[r].firstParty;n[r]=Lt(t,i)||e[r]}return n}function fn(e){let t=Je().modelOverrides;if(!t)return e;let n={...e};for(let[e,r]of Object.entries(t)){let t=cn[e];t&&r&&(n[t]=r)}return n}function pn(e){let t;try{t=Je().modelOverrides}catch{return e}if(!t)return e;for(let[n,r]of Object.entries(t))if(r===e)return n;return e}function mn(){if(ve()===null){if(k()!==`bedrock`){ye(un(k()));return}_n()}}function j(){let e=ve();return e===null?(mn(),fn(un(k()))):fn(e)}async function hn(){if(ve()===null){if(k()!==`bedrock`){ye(un(k()));return}await _n()}}var gn,_n,vn=e((()=>{h(),ot(),It(),x(),qt(),ln(),A(),gn=Object.keys(sn),_n=Ft(async()=>{if(ve()===null)try{ye(await dn())}catch(e){D(e)}})}));async function yn(){let e=w().oauthAccount?.accountUuid,t=Xi();if(!e||!t)return;let n=`${b().BASE_API_URL}/api/claude_cli_profile`;try{return(await f.get(n,{headers:{"x-api-key":t,"anthropic-beta":He},params:{account_uuid:e},timeout:1e4})).data}catch(e){D(e)}}async function bn(e){let t=`${b().BASE_API_URL}/api/oauth/profile`;try{return(await f.get(t,{headers:{Authorization:`Bearer ${e}`,"Content-Type":`application/json`},timeout:1e4})).data}catch(e){D(e)}}var xn=e((()=>{te(),C(),U(),Xe(),ot()}));function Sn(e){return!!e?.includes(Ke)}function Cn(e){return e?.split(` `).filter(Boolean)??[]}function wn({codeChallenge:e,state:t,port:n,isManual:r,loginWithClaudeAi:i,inferenceOnly:a,orgUUID:o,loginHint:s,loginMethod:c}){let l=i?b().CLAUDE_AI_AUTHORIZE_URL:b().CONSOLE_AUTHORIZE_URL,u=new URL(l);u.searchParams.append(`code`,`true`),u.searchParams.append(`client_id`,b().CLIENT_ID),u.searchParams.append(`response_type`,`code`),u.searchParams.append(`redirect_uri`,r?b().MANUAL_REDIRECT_URL:`http://localhost:${n}/callback`);let d=a?[Ke]:We;return u.searchParams.append(`scope`,d.join(` `)),u.searchParams.append(`code_challenge`,e),u.searchParams.append(`code_challenge_method`,`S256`),u.searchParams.append(`state`,t),o&&u.searchParams.append(`orgUUID`,o),s&&u.searchParams.append(`login_hint`,s),c&&u.searchParams.append(`login_method`,c),u.toString()}async function Tn(e,t,n,r,i=!1,a){let o={grant_type:`authorization_code`,code:e,redirect_uri:i?b().MANUAL_REDIRECT_URL:`http://localhost:${r}/callback`,client_id:b().CLIENT_ID,code_verifier:n,state:t};a!==void 0&&(o.expires_in=a);let s=await f.post(b().TOKEN_URL,o,{headers:{"Content-Type":`application/json`},timeout:15e3});if(s.status!==200)throw Error(s.status===401?`Authentication failed: Invalid authorization code`:`Token exchange failed (${s.status}): ${s.statusText}`);return O(`tengu_oauth_token_exchange_success`,{}),s.data}async function En(e,{scopes:t}={}){let n={grant_type:`refresh_token`,refresh_token:e,client_id:b().CLIENT_ID,scope:(t?.length?t:Ge).join(` `)};try{let t=await f.post(b().TOKEN_URL,n,{headers:{"Content-Type":`application/json`},timeout:15e3});if(t.status!==200)throw Error(`Token refresh failed: ${t.statusText}`);let r=t.data,{access_token:i,refresh_token:a=e,expires_in:o}=r,s=Date.now()+o*1e3,c=Cn(r.scope);O(`tengu_oauth_token_refresh_success`,{});let l=w(),u=H(),d=l.oauthAccount?.billingType!==void 0&&l.oauthAccount?.accountCreatedAt!==void 0&&l.oauthAccount?.subscriptionCreatedAt!==void 0&&u?.subscriptionType!=null&&u?.rateLimitTier!=null?null:await An(i);if(d&&l.oauthAccount){let e={};d.displayName!==void 0&&(e.displayName=d.displayName),typeof d.hasExtraUsageEnabled==`boolean`&&(e.hasExtraUsageEnabled=d.hasExtraUsageEnabled),d.billingType!==null&&(e.billingType=d.billingType),d.accountCreatedAt!==void 0&&(e.accountCreatedAt=d.accountCreatedAt),d.subscriptionCreatedAt!==void 0&&(e.subscriptionCreatedAt=d.subscriptionCreatedAt),Object.keys(e).length>0&&E(t=>({...t,oauthAccount:t.oauthAccount?{...t.oauthAccount,...e}:t.oauthAccount}))}return{accessToken:i,refreshToken:a,expiresAt:s,scopes:c,subscriptionType:d?.subscriptionType??u?.subscriptionType??null,rateLimitTier:d?.rateLimitTier??u?.rateLimitTier??null,profile:d?.rawProfile,tokenAccount:r.account?{uuid:r.account.uuid,emailAddress:r.account.email_address,organizationUuid:r.organization?.uuid}:void 0}}catch(e){let t=f.isAxiosError(e)&&e.response?.data?JSON.stringify(e.response.data):void 0;throw O(`tengu_oauth_token_refresh_failure`,{error:e.message,...t&&{responseBody:t}}),e}}async function Dn(e){let t=await f.get(b().ROLES_URL,{headers:{Authorization:`Bearer ${e}`}});if(t.status!==200)throw Error(`Failed to fetch user roles: ${t.statusText}`);let n=t.data;if(!w().oauthAccount)throw Error(`OAuth account information not found in config`);E(e=>({...e,oauthAccount:e.oauthAccount?{...e.oauthAccount,organizationRole:n.organization_role,workspaceRole:n.workspace_role,organizationName:n.organization_name}:e.oauthAccount})),O(`tengu_oauth_roles_stored`,{org_role:n.organization_role})}async function On(e){try{let t=await f.post(b().API_KEY_URL,null,{headers:{Authorization:`Bearer ${e}`}}),n=t.data?.raw_key;return n?(await wa(n),O(`tengu_oauth_api_key`,{status:`success`,statusCode:t.status}),n):null}catch(e){throw O(`tengu_oauth_api_key`,{status:`failure`,error:e instanceof Error?e.message:String(e)}),e}}function kn(e){return e!==null&&Date.now()+300*1e3>=e}async function An(e){let t=await bn(e),n=t?.organization?.organization_type,r=null;switch(n){case`claude_max`:r=`max`;break;case`claude_pro`:r=`pro`;break;case`claude_enterprise`:r=`enterprise`;break;case`claude_team`:r=`team`;break;default:r=null;break}let i={subscriptionType:r,rateLimitTier:t?.organization?.rate_limit_tier??null,hasExtraUsageEnabled:t?.organization?.has_extra_usage_enabled??null,billingType:t?.organization?.billing_type??null};return t?.account?.display_name&&(i.displayName=t.account.display_name),t?.account?.created_at&&(i.accountCreatedAt=t.account.created_at),t?.organization?.subscription_created_at&&(i.subscriptionCreatedAt=t.organization.subscription_created_at),O(`tengu_oauth_profile_fetch_success`,{}),{...i,rawProfile:t}}async function jn(){let e=process.env.CLAUDE_CODE_ACCOUNT_UUID,t=process.env.CLAUDE_CODE_USER_EMAIL,n=process.env.CLAUDE_CODE_ORGANIZATION_UUID,r=!!(e&&t&&n);e&&t&&n&&(w().oauthAccount||Mn({accountUuid:e,emailAddress:t,organizationUuid:n})),await Na();let i=w();if(i.oauthAccount&&i.oauthAccount.billingType!==void 0&&i.oauthAccount.accountCreatedAt!==void 0&&i.oauthAccount.subscriptionCreatedAt!==void 0||!L()||!Fa())return!1;let a=H();if(a?.accessToken){let e=await bn(a.accessToken);if(e)return r&&_(`OAuth profile fetch succeeded, overriding env var account info`,{level:`info`}),Mn({accountUuid:e.account.uuid,emailAddress:e.account.email,organizationUuid:e.organization.uuid,displayName:e.account.display_name||void 0,hasExtraUsageEnabled:e.organization.has_extra_usage_enabled??!1,billingType:e.organization.billing_type??void 0,accountCreatedAt:e.account.created_at,subscriptionCreatedAt:e.organization.subscription_created_at??void 0}),!0}return!1}function Mn({accountUuid:e,emailAddress:t,organizationUuid:n,displayName:r,hasExtraUsageEnabled:i,billingType:a,accountCreatedAt:o,subscriptionCreatedAt:s}){let c={accountUuid:e,emailAddress:t,organizationUuid:n,hasExtraUsageEnabled:i,billingType:a,accountCreatedAt:o,subscriptionCreatedAt:s};r&&(c.displayName=r),E(e=>e.oauthAccount?.accountUuid===c.accountUuid&&e.oauthAccount?.emailAddress===c.emailAddress&&e.oauthAccount?.organizationUuid===c.organizationUuid&&e.oauthAccount?.displayName===c.displayName&&e.oauthAccount?.hasExtraUsageEnabled===c.hasExtraUsageEnabled&&e.oauthAccount?.billingType===c.billingType&&e.oauthAccount?.accountCreatedAt===c.accountCreatedAt&&e.oauthAccount?.subscriptionCreatedAt===c.subscriptionCreatedAt?e:{...e,oauthAccount:c})}var Nn=e((()=>{te(),dt(),C(),U(),Xe(),v(),xn()}));function Pn(e,t,n){if(o(process.env.CLAUDE_CODE_REMOTE))try{vt(zn,{recursive:!0,mode:448}),bt(e,t,{encoding:`utf8`,mode:384}),_(`Persisted ${n} to ${e} for subprocess access`)}catch(e){_(`Failed to persist ${n} to disk (non-fatal): ${g(e)}`,{level:`error`})}}function Fn(e,t){try{let n=ze().readFileSync(e,{encoding:`utf8`}).trim();return n?(_(`Read ${t} from well-known file ${e}`),n):null}catch(n){return Ve(n)||_(`Failed to read ${t} from ${e}: ${g(n)}`,{level:`debug`}),null}}function In({envVar:e,wellKnownPath:t,label:n,getCached:r,setCached:i}){let a=r();if(a!==void 0)return a;let o=process.env[e];if(!o){let e=Fn(t,n);return i(e),e}let s=parseInt(o,10);if(Number.isNaN(s))return _(`${e} must be a valid file descriptor number, got: ${o}`,{level:`error`}),i(null),null;try{let e=ze(),r=process.platform===`darwin`||process.platform===`freebsd`?`/dev/fd/${s}`:`/proc/self/fd/${s}`,a=e.readFileSync(r,{encoding:`utf8`}).trim();return a?(_(`Successfully read ${n} from file descriptor ${s}`),i(a),Pn(t,a,n),a):(_(`File descriptor contained empty ${n}`,{level:`error`}),i(null),null)}catch(e){_(`Failed to read ${n} from file descriptor ${s}: ${g(e)}`,{level:`error`});let r=Fn(t,n);return i(r),r}}function Ln(){return In({envVar:`CLAUDE_CODE_OAUTH_TOKEN_FILE_DESCRIPTOR`,wellKnownPath:Bn,label:`OAuth token`,getCached:Se,setCached:Te})}function Rn(){return In({envVar:`CLAUDE_CODE_API_KEY_FILE_DESCRIPTOR`,wellKnownPath:Vn,label:`API key`,getCached:Oe,setCached:Ee})}var zn,Bn,Vn,Hn=e((()=>{h(),v(),s(),Ae(),Ie(),zn=`/home/claude/.workmate/remote`,Bn=`${zn}/.oauth_token`,Vn=`${zn}/.api_key`,`${zn}`}));function M(e=``){let t=a(),n=process.env.WORKMATE_CONFIG_DIR?`-${xt(`sha256`).update(t).digest(`hex`).substring(0,8)}`:``;return`Claude Code${b().OAUTH_FILE_SUFFIX}${e}${n}`}function Un(){try{return process.env.USER||ht().username}catch{return`claude-code-user`}}function N(){P.cache={data:null,cachedAt:0},P.generation++,P.readInFlight=null}function Wn(e){if(P.cache.cachedAt!==0)return;let t=null;if(e)try{t=JSON.parse(e)}catch{return}P.cache={data:t,cachedAt:Date.now()}}var Gn,P,Kn=e((()=>{C(),s(),Gn=`-credentials`,P={cache:{data:null,cachedAt:0},generation:0,readInFlight:null}}));async function qn(){if(process.platform===`darwin`&&(await Qe(`security delete-generic-password -a $USER -s "${M()}"`,{shell:!0,reject:!1})).exitCode!==0)throw Error(`Failed to delete keychain entry`)}function Jn(e){return e.slice(-20)}var Yn=e((()=>{nt(),Kn()}));function Xn(e){return e?.name===`CredentialsProviderError`}function Zn(e){if(!e||typeof e!=`object`)return!1;let t=e;if(!t.Credentials||typeof t.Credentials!=`object`)return!1;let n=t.Credentials;return typeof n.AccessKeyId==`string`&&typeof n.SecretAccessKey==`string`&&typeof n.SessionToken==`string`&&n.AccessKeyId.length>0&&n.SecretAccessKey.length>0&&n.SessionToken.length>0}async function Qn(){let{STSClient:e,GetCallerIdentityCommand:t}=await import(`./dist-es-C-OjW2Ao.js`);await new e().send(new t({}))}async function $n(){try{_(`Clearing AWS credential provider cache`);let{fromIni:e}=await import(`./dist-es-CIULjvtA2.js`);await e({ignoreCache:!0})(),_(`AWS credential provider cache refreshed`)}catch{_(`Failed to clear AWS credential cache (this is expected if no credentials are configured)`)}}var er=e((()=>{v()})),tr,nr=e((()=>{me(),d(),tr=class e{constructor(){ee(this,`status`,{isAuthenticating:!1,output:[]}),ee(this,`changed`,be()),ee(this,`subscribe`,this.changed.subscribe)}static getInstance(){return e.instance||(e.instance=new e),e.instance}getStatus(){return{...this.status,output:[...this.status.output]}}startAuthentication(){this.status={isAuthenticating:!0,output:[]},this.changed.emit(this.getStatus())}addOutput(e){this.status.output.push(e),this.changed.emit(this.getStatus())}setError(e){this.status.error=e,this.changed.emit(this.getStatus())}endAuthentication(e){e?this.status={isAuthenticating:!1,output:[]}:this.status.isAuthenticating=!1,this.changed.emit(this.getStatus())}static reset(){e.instance&&(e.instance.changed.clear(),e.instance=null)}},ee(tr,`instance`,null)})),rr,ir,ar,or,sr,cr,lr,ur,dr,fr,pr,mr,hr,gr=e((()=>{rr=`claude-code-20250219`,ir=`interleaved-thinking-2025-05-14`,ar=`context-1m-2025-08-07`,or=`context-management-2025-06-27`,sr=`structured-outputs-2025-12-15`,cr=`tool-search-tool-2025-10-19`,lr=`task-budgets-2026-03-13`,ur=`prompt-caching-scope-2026-01-05`,dr=`fast-mode-2026-02-01`,fr=`redact-thinking-2026-02-12`,pr=`advisor-tool-2026-03-01`,mr=new Set([ir,ar,cr]),hr=new Set([rr,ir,or])}));function _r(e,t){return xe(e,t)}var vr=e((()=>{he()}));function yr(){let e=process.env.CLAUDE_AGENT_SDK_VERSION?`, agent-sdk/${process.env.CLAUDE_AGENT_SDK_VERSION}`:``,t=process.env.CLAUDE_AGENT_SDK_CLIENT_APP?`, client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}`:``,n=jt(),r=n?`, workload/${n}`:``;return`claude-cli/0.0.22 (external, ${process.env.CLAUDE_CODE_ENTRYPOINT??`cli`}${e}${t}${r})`}function br(){let e=[];return process.env.CLAUDE_CODE_ENTRYPOINT&&e.push(process.env.CLAUDE_CODE_ENTRYPOINT),process.env.CLAUDE_AGENT_SDK_VERSION&&e.push(`agent-sdk/${process.env.CLAUDE_AGENT_SDK_VERSION}`),process.env.CLAUDE_AGENT_SDK_CLIENT_APP&&e.push(`client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}`),`workmate/0.0.22${e.length>0?` (${e.join(`, `)})`:``}`}function xr(){if(L()){let e=H();return e?.accessToken?{headers:{Authorization:`Bearer ${e.accessToken}`,"anthropic-beta":He}}:{headers:{},error:`No OAuth token available`}}let e=Xi();return e?{headers:{"x-api-key":e}}:{headers:{},error:`No API key available`}}async function Sr(e,t){try{return await e()}catch(n){if(!f.isAxiosError(n))throw n;let r=n.response?.status;if(!(r===401||t?.also403Revoked&&r===403&&typeof n.response?.data==`string`&&n.response.data.includes(`OAuth token has been revoked`)))throw n;let i=H()?.accessToken;if(!i)throw n;return await Aa(i),await e()}}var Cr=e((()=>{te(),C(),U(),Pt()}));function wr(){return{error:(e,...t)=>console.error(`[SDK ERROR]`,e,...t),warn:(e,...t)=>console.error(`[SDK WARN]`,e,...t),info:(e,...t)=>console.error(`[SDK INFO]`,e,...t),debug:(e,...t)=>console.error(`[SDK DEBUG]`,e,...t)}}async function Tr({apiKey:e,maxRetries:n,model:r,fetchOverride:i,source:a}){let s=process.env.CLAUDE_CODE_CONTAINER_ID,l=process.env.CLAUDE_CODE_REMOTE_SESSION_ID,d=process.env.CLAUDE_AGENT_SDK_CLIENT_APP,ee=Dr(),f={"x-app":`cli`,"User-Agent":yr(),"X-Claude-Code-Session-Id":De(),...ee,...s?{"x-claude-remote-container-id":s}:{},...l?{"x-claude-remote-session-id":l}:{},...d?{"x-client-app":d}:{},...process.env.ANTHROPIC_AUTH_NONCE?{"x-auth-nonce":process.env.ANTHROPIC_AUTH_NONCE}:{}};_(`[API:request] Creating client, ANTHROPIC_CUSTOM_HEADERS present: ${!!process.env.ANTHROPIC_CUSTOM_HEADERS}, has Authorization header: ${!!ee.Authorization}`),o(process.env.CLAUDE_CODE_ADDITIONAL_PROTECTION)&&(f[`x-anthropic-additional-protection`]=`true`),_(`[API:auth] OAuth token check starting`),await Na(),_(`[API:auth] OAuth token check complete`),L()||await Er(f,m());let te=Or(i,a),p={defaultHeaders:f,maxRetries:n,timeout:parseInt(process.env.API_TIMEOUT_MS||`600000`,10),dangerouslyAllowBrowser:!0,fetchOptions:pt({forAnthropicAPI:!0}),...te&&{fetch:te}};if(o(process.env.CLAUDE_CODE_USE_BEDROCK)){let{BedrockClient:e}=await import(`./bedrockClient-DxE_mHFI.js`),t=r===Cs()&&process.env.ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION?process.env.ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION:u(),n={...p,awsRegion:t,...o(process.env.CLAUDE_CODE_SKIP_BEDROCK_AUTH)&&{skipAuth:!0},...Le()&&{logger:wr()}};if(process.env.AWS_BEARER_TOKEN_BEDROCK)n.skipAuth=!0,n.defaultHeaders={...n.defaultHeaders,Authorization:`Bearer ${process.env.AWS_BEARER_TOKEN_BEDROCK}`};else if(!o(process.env.CLAUDE_CODE_SKIP_BEDROCK_AUTH)){let e=await to();e&&(n.awsAccessKey=e.accessKeyId,n.awsSecretKey=e.secretAccessKey,n.awsSessionToken=e.sessionToken)}return new e(n)}if(o(process.env.CLAUDE_CODE_USE_FOUNDRY)){let{AnthropicFoundry:e}=await import(`./foundry-sdk-BdeF2aBu.js`),t;if(!process.env.ANTHROPIC_FOUNDRY_API_KEY)if(o(process.env.CLAUDE_CODE_SKIP_FOUNDRY_AUTH))t=()=>Promise.resolve(``);else{let{DefaultAzureCredential:e,getBearerTokenProvider:n}=await import(`./esm-CGx9qY3q.js`);t=n(new e,`https://cognitiveservices.azure.com/.default`)}return new e({...p,...t&&{azureADTokenProvider:t},...Le()&&{logger:wr()}})}if(o(process.env.CLAUDE_CODE_USE_VERTEX)){o(process.env.CLAUDE_CODE_SKIP_VERTEX_AUTH)||await ao();let[{AnthropicVertex:e},{GoogleAuth:n}]=await Promise.all([import(`./vertex-sdk-DjXcZ2J7.js`),import(`./src-CiJCsqUl.js`).then(e=>t(e.default,1))]),i=process.env.GCLOUD_PROJECT||process.env.GOOGLE_CLOUD_PROJECT||process.env.gcloud_project||process.env.google_cloud_project,a=process.env.GOOGLE_APPLICATION_CREDENTIALS||process.env.google_application_credentials,s=o(process.env.CLAUDE_CODE_SKIP_VERTEX_AUTH)?{getClient:()=>({getRequestHeaders:()=>({})})}:new n({scopes:[`https://www.googleapis.com/auth/cloud-platform`],...i||a?{}:{projectId:process.env.ANTHROPIC_VERTEX_PROJECT_ID}});return new e({...p,region:c(r),googleAuth:s,...Le()&&{logger:wr()}})}return new Fe({apiKey:L()?null:e||Xi(),authToken:L()?H()?.accessToken:void 0,...p,...Le()&&{logger:wr()}})}async function Er(e,t){let n=process.env.ANTHROPIC_AUTH_TOKEN||await aa(t);n&&(e.Authorization=`Bearer ${n}`)}function Dr(){let e={},t=process.env.ANTHROPIC_CUSTOM_HEADERS;if(!t)return e;let n=t.split(/\n|\r\n/);for(let t of n){if(!t.trim())continue;let n=t.indexOf(`:`);if(n===-1)continue;let r=t.slice(0,n).trim(),i=t.slice(n+1).trim();r&&(e[r]=i)}return e}function Or(e,t){let n=e??globalThis.fetch,r=k()===`firstParty`&&At();return(e,i)=>{let a=new Headers(i?.headers);r&&!a.has(`x-client-request-id`)&&a.set(kr,St());try{let n=e instanceof Request?e.url:String(e),r=a.get(kr);_(`[API REQUEST] ${new URL(n).pathname}${r?` ${kr}=${r}`:``} source=${t??`unknown`}`)}catch{}return n(e,{...i,headers:a})}}var kr,Ar=e((()=>{Pe(),U(),Cr(),$(),A(),ft(),h(),v(),s(),kr=`x-client-request-id`}));function jr(){return gt(a(),`cache`)}function Mr(){return gt(jr(),`model-capabilities.json`)}function Nr(){return!(k()!==`firstParty`||!At())}function Pr(e){return[...e].sort((e,t)=>t.id.length-e.id.length||e.id.localeCompare(t.id))}function Fr(e){if(!Nr())return;let t=zr(Mr());if(!t||t.length===0)return;let n=e.toLowerCase();return t.find(e=>e.id.toLowerCase()===n)||t.find(e=>n.includes(e.id.toLowerCase()))}async function Ir(){if(Nr()&&!at())try{let e=await Tr({maxRetries:1}),t=L()?[He]:void 0,n=[];for await(let r of e.models.list({betas:t})){let e=Lr().safeParse(r);e.success&&n.push(e.data)}if(n.length===0)return;let r=Mr(),i=Pr(n);if(_r(zr(r),i)){_(`[modelCapabilities] cache unchanged, skipping write`);return}await Ct(jr(),{recursive:!0}),await Tt(r,ke({models:i,timestamp:Date.now()}),{encoding:`utf-8`,mode:384}),zr.cache.delete(r),_(`[modelCapabilities] cached ${i.length} models`)}catch(e){_(`[modelCapabilities] fetch failed: ${e instanceof Error?e.message:`unknown`}`)}}var Lr,Rr,zr,Br=e((()=>{vr(),r(),pe(),C(),Ar(),U(),v(),s(),le(),ue(),it(),Be(),A(),Lr=de(()=>re({id:oe(),max_input_tokens:ae().optional(),max_tokens:ae().optional()}).strip()),Rr=de(()=>re({models:ie(Lr()),timestamp:ae()})),zr=n(e=>{try{let t=yt(e,`utf-8`),n=Rr().safeParse(se(t,!1));return n.success?n.data.models:null}catch{return null}},e=>e)}));function Vr(){return o(process.env.CLAUDE_CODE_DISABLE_1M_CONTEXT)}function F(e){return!Vr()&&/\[1m\]/i.test(e)}function Hr(e){if(Vr())return!1;let t=Z(e);return t.includes(`claude-sonnet-4`)||t.includes(`opus-4-6`)||t.includes(`opus-4-7`)}function Ur(e,t){if(F(e))return 1e6;let n=Fr(e);return n?.max_input_tokens&&n.max_input_tokens>=1e5?n.max_input_tokens>2e5&&Vr()?Jr:n.max_input_tokens:t?.includes(`context-1m-2025-08-07`)&&Hr(e)||Wr(e)?1e6:Jr}function Wr(e){return Vr()||F(e)||!Z(e).includes(`sonnet-4-6`)?!1:w().clientDataCache?.coral_reef_sonnet===`true`}function Gr(e,t){if(!e)return{used:null,remaining:null};let n=e.input_tokens+e.cache_creation_input_tokens+e.cache_read_input_tokens;if(n===0)return{used:null,remaining:null};let r=Math.round(n/t*100),i=Math.min(100,Math.max(0,r));return{used:i,remaining:100-i}}function Kr(e){let t,n,r=Z(e);r.includes(`opus-4-7`)||r.includes(`opus-4-6`)?(t=64e3,n=128e3):r.includes(`sonnet-4-6`)?(t=32e3,n=128e3):r.includes(`opus-4-5`)||r.includes(`sonnet-4`)||r.includes(`haiku-4`)?(t=32e3,n=64e3):r.includes(`opus-4-1`)||r.includes(`opus-4`)?(t=32e3,n=32e3):r.includes(`claude-3-opus`)?(t=4096,n=4096):r.includes(`claude-3-sonnet`)?(t=8192,n=8192):r.includes(`claude-3-haiku`)?(t=4096,n=4096):r.includes(`3-5-sonnet`)||r.includes(`3-5-haiku`)?(t=8192,n=8192):r.includes(`3-7-sonnet`)?(t=32e3,n=64e3):(t=Xr,n=Zr);let i=Fr(e);return i?.max_tokens&&i.max_tokens>=4096&&(n=i.max_tokens,t=Math.min(t,n)),{default:t,upperLimit:n}}function qr(e){return Kr(e).upperLimit-1}var Jr,Yr,Xr,Zr,Qr,$r=e((()=>{gr(),Xe(),s(),$(),Br(),Jr=2e5,Yr=2e4,Xr=32e3,Zr=64e3,Qr=8e3})),ei,ti,ni,ri=e((()=>{r(),A(),ei=[{modelEnvVar:`ANTHROPIC_DEFAULT_OPUS_MODEL`,capabilitiesEnvVar:`ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES`},{modelEnvVar:`ANTHROPIC_DEFAULT_SONNET_MODEL`,capabilitiesEnvVar:`ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES`},{modelEnvVar:`ANTHROPIC_DEFAULT_HAIKU_MODEL`,capabilitiesEnvVar:`ANTHROPIC_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES`}],ti=[{modelEnvVar:`OPENAI_DEFAULT_OPUS_MODEL`,capabilitiesEnvVar:`OPENAI_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES`},{modelEnvVar:`OPENAI_DEFAULT_SONNET_MODEL`,capabilitiesEnvVar:`OPENAI_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES`},{modelEnvVar:`OPENAI_DEFAULT_HAIKU_MODEL`,capabilitiesEnvVar:`OPENAI_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES`}],ni=n((e,t)=>{if(k()===`firstParty`)return;let n=e.toLowerCase(),r=k()===`openai`?ti:ei;for(let e of r){let r=process.env[e.modelEnvVar],i=process.env[e.capabilitiesEnvVar];if(!(!r||i===void 0)&&n===r.toLowerCase())return i.toLowerCase().split(`,`).map(e=>e.trim()).includes(t)}},(e,t)=>`${e.toLowerCase()}:${t}`)}));function ii(e){let t=[],n=[];for(let r of e)mi.includes(r)?t.push(r):n.push(r);return{allowed:t,disallowed:n}}function ai(e){if(!e||e.length===0)return;if(L()){console.warn(`Warning: Custom betas are only available for API key users. Ignoring provided betas.`);return}let{allowed:t,disallowed:n}=ii(e);for(let e of n)console.warn(`Warning: Beta header '${e}' is not allowed. Only the following betas are supported: ${mi.join(`, `)}`);return t.length>0?t:void 0}function oi(e){let t=ni(e,`interleaved_thinking`);if(t!==void 0)return t;let n=Z(e),r=k();return r===`foundry`?!0:r===`firstParty`?!n.includes(`claude-3-`):n.includes(`claude-opus-4`)||n.includes(`claude-sonnet-4`)}function si(e){let t=Z(e),n=k();return n===`foundry`?!0:n===`firstParty`?!t.includes(`claude-3-`):t.includes(`claude-opus-4`)||t.includes(`claude-sonnet-4`)||t.includes(`claude-haiku-4`)}function ci(e){let t=Z(e),n=k();return n!==`firstParty`&&n!==`foundry`?!1:t.includes(`claude-sonnet-4-6`)||t.includes(`claude-sonnet-4-5`)||t.includes(`claude-opus-4-1`)||t.includes(`claude-opus-4-5`)||t.includes(`claude-opus-4-6`)||t.includes(`claude-opus-4-7`)||t.includes(`claude-haiku-4-5`)}function li(e){return!0}function ui(){return(k()===`firstParty`||k()===`foundry`)&&!o(process.env.CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS)&&At()}function di(){return k()===`firstParty`&&!o(process.env.CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS)}function fi(e,t){let n=[...gi(e)];t?.isAgenticQuery&&(n.includes(`claude-code-20250219`)||n.push(rr));let r=Ce();return!r||r.length===0?n:[...n,...r.filter(e=>!n.includes(e))]}function pi(){hi.cache?.clear?.(),gi.cache?.clear?.(),_i.cache?.clear?.()}var mi,hi,gi,_i,vi=e((()=>{r(),h(),gr(),C(),U(),$r(),s(),$(),ri(),A(),x(),mi=[ar],hi=n(e=>{let t=[],n=Z(e).includes(`haiku`);k();let r=ui();n||t.push(rr),L()&&t.push(He),F(e)&&t.push(ar),!o(process.env.DISABLE_INTERLEAVED_THINKING)&&oi(e)&&t.push(ir),r&&oi(e)&&!m()&&Je().showThinkingSummaries!==!0&&t.push(fr);let i=o(process.env.USE_API_CONTEXT_MANAGEMENT)||si(e),a=si(e);return ui()&&(i||a)&&t.push(or),r&&ci(e),r&&t.push(ur),process.env.ANTHROPIC_BETAS&&t.push(...process.env.ANTHROPIC_BETAS.split(`,`).map(e=>e.trim()).filter(Boolean)),t}),gi=n(e=>{let t=hi(e);return k()===`bedrock`?t.filter(e=>!mr.has(e)):t}),_i=n(e=>hi(e).filter(e=>mr.has(e)))}));function yi(e,t){return{name:`${e.name}-with-${t.name}-fallback`,read(){return e.read()??(t.read()||{})},async readAsync(){return await e.readAsync()??(await t.readAsync()||{})},update(n){let r=e.read(),i=e.update(n);if(i.success)return r===null&&t.delete(),i;let a=t.update(n);return a.success?(r!==null&&e.delete(),{success:!0,warning:a.warning}):{success:!1}},delete(){let n=e.delete(),r=t.delete();return n||r}}}var bi=e((()=>{}));async function xi(){try{let e=M(Gn),{stdout:t,code:n}=await rt(`security`,[`find-generic-password`,`-a`,Un(),`-w`,`-s`,e],{useCwd:!1,preserveOutputOnError:!1});if(n===0&&t)return Me(t.trim())}catch{}return null}function Si(){if(Ti!==void 0)return Ti;if(process.platform!==`darwin`)return Ti=!1,!1;try{Ti=et(`security`,[`show-keychain-info`],{reject:!1,stdio:[`ignore`,`pipe`,`pipe`]}).exitCode===36}catch{Ti=!1}return Ti}var Ci,wi,Ti,Ei=e((()=>{nt(),v(),$e(),Be(),Kn(),Ci=4032,wi={name:`keychain`,read(){let e=P.cache;if(Date.now()-e.cachedAt<3e4)return e.data;try{let e=M(Gn),t=tt(`security find-generic-password -a "${Un()}" -w -s "${e}"`);if(t){let e=Me(t);return P.cache={data:e,cachedAt:Date.now()},e}}catch{}return e.data===null?(P.cache={data:null,cachedAt:Date.now()},null):(_(`[keychain] read failed; serving stale cache`,{level:`warn`}),P.cache={data:e.data,cachedAt:Date.now()},e.data)},async readAsync(){let e=P.cache;if(Date.now()-e.cachedAt<3e4)return e.data;if(P.readInFlight)return P.readInFlight;let t=P.generation,n=xi().then(n=>{if(t===P.generation){n===null&&e.data!==null&&_(`[keychain] readAsync failed; serving stale cache`,{level:`warn`});let t=n??e.data;return P.cache={data:t,cachedAt:Date.now()},P.readInFlight=null,t}return n});return P.readInFlight=n,n},update(e){N();try{let t=M(Gn),n=Un(),r=ke(e),i=Buffer.from(r,`utf-8`).toString(`hex`),a=`add-generic-password -U -a "${n}" -s "${t}" -X "${i}"\n`,o;return a.length<=Ci?o=et(`security`,[`-i`],{input:a,stdio:[`pipe`,`pipe`,`pipe`],reject:!1}):(_(`Keychain payload (${r.length}B JSON) exceeds security -i stdin limit; using argv`,{level:`warn`}),o=et(`security`,[`add-generic-password`,`-U`,`-a`,n,`-s`,t,`-X`,i],{stdio:[`ignore`,`pipe`,`pipe`],reject:!1})),o.exitCode===0?(P.cache={data:e,cachedAt:Date.now()},{success:!0}):{success:!1}}catch{return{success:!1}}},delete(){N();try{let e=M(Gn);return tt(`security delete-generic-password -a "${Un()}" -s "${e}"`),!0}catch{return!1}}}}));function Di(){let e=a();return{storageDir:e,storagePath:gt(e,`.credentials.json`)}}var Oi,ki=e((()=>{s(),Ae(),Ie(),Be(),Oi={name:`plaintext`,read(){let{storagePath:e}=Di();try{return Me(ze().readFileSync(e,{encoding:`utf8`}))}catch{return null}},async readAsync(){let{storagePath:e}=Di();try{return Me(await ze().readFile(e,{encoding:`utf8`}))}catch{return null}},update(e){try{let{storageDir:t,storagePath:n}=Di();try{ze().mkdirSync(t)}catch(e){if(je(e)!==`EEXIST`)throw e}return Ne(n,ke(e),{encoding:`utf8`,flush:!1}),_t(n,384),{success:!0,warning:`Warning: Storing credentials in plaintext.`}}catch{return{success:!1}}},delete(){let{storagePath:e}=Di();try{return ze().unlinkSync(e),!0}catch(e){return je(e)===`ENOENT`}}}}));function Ai(){return process.platform===`darwin`?yi(wi,Oi):Oi}var ji=e((()=>{bi(),Ei(),ki()}));function Mi(e){return new Promise(t=>{Dt(`security`,[`find-generic-password`,`-a`,Un(),`-w`,`-s`,e],{encoding:`utf-8`,timeout:Li},(e,n)=>{t({stdout:e?null:n?.trim()||null,timedOut:!!(e&&`killed`in e&&e.killed)})})})}function Ni(){if(process.platform!==`darwin`||zi||l())return;let e=Mi(M(Gn)),t=Mi(M());zi=Promise.all([e,t]).then(([e,t])=>{e.timedOut||Wn(e.stdout),t.timedOut||(Ri={stdout:t.stdout})})}async function Pi(){zi&&await zi}function Fi(){return Ri}function Ii(){Ri=null}var Li,Ri,zi,Bi=e((()=>{s(),Kn(),Li=1e4,Ri=null,zi=null}));function Vi(e,t,n){return new Promise((r,i)=>{if(t?.aborted){n?.throwOnAbort||n?.abortError?i(n.abortError?.()??Error(`aborted`)):r();return}let a=setTimeout((e,t,n)=>{e?.removeEventListener(`abort`,t),n()},e,t,o,r);function o(){clearTimeout(a),n?.throwOnAbort||n?.abortError?i(n.abortError?.()??Error(`aborted`)):r()}t?.addEventListener(`abort`,o,{once:!0}),n?.unref&&a.unref()})}var Hi=e((()=>{}));function Ui(){return Gi}function Wi(){Gi.clear()}var Gi,Ki=e((()=>{Gi=new Map}));function qi(){return o(process.env.CLAUDE_CODE_REMOTE)||process.env.CLAUDE_CODE_ENTRYPOINT===`claude-desktop`}function Ji(){if(l())return!1;if(process.env.ANTHROPIC_UNIX_SOCKET)return!!process.env.CLAUDE_CODE_OAUTH_TOKEN;let e=y()||{},t=o(process.env.CLAUDE_CODE_USE_BEDROCK)||o(process.env.CLAUDE_CODE_USE_VERTEX)||o(process.env.CLAUDE_CODE_USE_FOUNDRY)||e.modelType===`openai`||e.modelType===`gemini`||!!process.env.OPENAI_BASE_URL||!!process.env.GEMINI_BASE_URL,n=e.apiKeyHelper,r=process.env.ANTHROPIC_AUTH_TOKEN||n||process.env.CLAUDE_CODE_API_KEY_FILE_DESCRIPTOR,{source:i}=Zi({skipRetrievingKeyFromApiKeyHelper:!0}),a=i===`ANTHROPIC_API_KEY`||i===`apiKeyHelper`;return!(t||r&&!qi()||a&&!qi())}function Yi(){if(l())return I()?{source:`apiKeyHelper`,hasToken:!0}:{source:`none`,hasToken:!1};if(process.env.ANTHROPIC_AUTH_TOKEN&&!qi())return{source:`ANTHROPIC_AUTH_TOKEN`,hasToken:!0};if(process.env.CLAUDE_CODE_OAUTH_TOKEN)return{source:`CLAUDE_CODE_OAUTH_TOKEN`,hasToken:!0};if(Ln())return process.env.CLAUDE_CODE_OAUTH_TOKEN_FILE_DESCRIPTOR?{source:`CLAUDE_CODE_OAUTH_TOKEN_FILE_DESCRIPTOR`,hasToken:!0}:{source:`CCR_OAUTH_TOKEN_FILE`,hasToken:!0};if(I()&&!qi())return{source:`apiKeyHelper`,hasToken:!0};let e=H();return Sn(e?.scopes)&&e?.accessToken?{source:`claude.ai`,hasToken:!0}:{source:`none`,hasToken:!1}}function Xi(){let{key:e}=Zi();return e}function Zi(e={}){if(l())return process.env.ANTHROPIC_API_KEY?{key:process.env.ANTHROPIC_API_KEY,source:`ANTHROPIC_API_KEY`}:I()?{key:e.skipRetrievingKeyFromApiKeyHelper?null:ca(),source:`apiKeyHelper`}:{key:null,source:`none`};let t=i()?void 0:process.env.ANTHROPIC_API_KEY;if(_e()&&t)return{key:t,source:`ANTHROPIC_API_KEY`};if(o(process.env.CI)){let e=Rn();if(e)return{key:e,source:`ANTHROPIC_API_KEY`};if(!t&&!process.env.CLAUDE_CODE_OAUTH_TOKEN&&!process.env.CLAUDE_CODE_OAUTH_TOKEN_FILE_DESCRIPTOR)throw Error(`ANTHROPIC_API_KEY or CLAUDE_CODE_OAUTH_TOKEN env var is required`);return t?{key:t,source:`ANTHROPIC_API_KEY`}:{key:null,source:`none`}}if(t&&w().customApiKeyResponses?.approved?.includes(Jn(t)))return{key:t,source:`ANTHROPIC_API_KEY`};let n=Rn();return n?{key:n,source:`ANTHROPIC_API_KEY`}:I()?e.skipRetrievingKeyFromApiKeyHelper?{key:null,source:`apiKeyHelper`}:{key:ca(),source:`apiKeyHelper`}:oo()||{key:null,source:`none`}}function I(){return l()?S(`flagSettings`)?.apiKeyHelper:(y()||{}).apiKeyHelper}function Qi(){let e=I();if(!e)return!1;let t=S(`projectSettings`),n=S(`localSettings`);return t?.apiKeyHelper===e||n?.apiKeyHelper===e}function $i(){return(y()||{}).awsAuthRefresh}function ea(){let e=$i();if(!e)return!1;let t=S(`projectSettings`),n=S(`localSettings`);return t?.awsAuthRefresh===e||n?.awsAuthRefresh===e}function ta(){return(y()||{}).awsCredentialExport}function na(){let e=ta();if(!e)return!1;let t=S(`projectSettings`),n=S(`localSettings`);return t?.awsCredentialExport===e||n?.awsCredentialExport===e}function ra(){let e=process.env.CLAUDE_CODE_API_KEY_HELPER_TTL_MS;if(e){let t=parseInt(e,10);if(!Number.isNaN(t)&&t>=0)return t;_(`Found CLAUDE_CODE_API_KEY_HELPER_TTL_MS env var, but it was not a valid number. Got ${e}`,{level:`error`})}return Qa}function ia(){let e=B?.startedAt;return e?Date.now()-e:0}async function aa(e){if(!I())return null;let t=ra();return z?(Date.now()-z.timestamp<t||B||(B={promise:oa(e,!1,V),startedAt:null}),z.value):(B||(B={promise:oa(e,!0,V),startedAt:Date.now()}),B.promise)}async function oa(e,t,n){try{let t=await sa(e);return n===V&&t!==null&&(z={value:t,timestamp:Date.now()}),t}catch(e){if(n!==V)return` `;let r=e instanceof Error?e.message:String(e);return console.error(p.red(`apiKeyHelper failed: ${r}`)),_(`Error getting API key from apiKeyHelper: ${r}`,{level:`error`}),!t&&z&&z.value!==` `?(z={...z,timestamp:Date.now()},z.value):(z={value:` `,timestamp:Date.now()},` `)}finally{n===V&&(B=null)}}async function sa(e){let t=I();if(!t)return null;if(Qi()&&!T()&&!e)return Re(`apiKeyHelper invoked before trust check`,Error(`Security: apiKeyHelper executed before workspace trust is confirmed. If you see this message, post in .`)),O(`tengu_apiKeyHelper_missing_trust11`,{}),null;let n=await Qe(t,{shell:!0,timeout:600*1e3,reject:!1});if(n.failed){let e=n.timedOut?`timed out`:`exited ${n.exitCode}`,t=n.stderr?.trim();throw Error(t?`${e}: ${t}`:e)}let r=n.stdout?.trim();if(!r)throw Error(`did not return a value`);return r}function ca(){return z?.value??null}function la(){V++,z=null,B=null}function ua(e){Qi()&&!T()||aa(e)}async function da(){let e=$i();if(!e)return!1;if(ea()&&!T()&&!m())return Re(`awsAuthRefresh invoked before trust check`,Error(`Security: awsAuthRefresh executed before workspace trust is confirmed. If you see this message, post in .`)),O(`tengu_awsAuthRefresh_missing_trust`,{}),!1;try{return _(`Fetching AWS caller identity for AWS auth refresh command`),await Qn(),_(`Fetched AWS caller identity, skipping AWS auth refresh command`),!1}catch{return fa(e)}}function fa(e){_(`Running AWS auth refresh command`);let t=tr.getInstance();return t.startAuthentication(),new Promise(n=>{let r=Et(e,{timeout:eo});r.stdout.on(`data`,e=>{let n=e.toString().trim();n&&(t.addOutput(n),_(n,{level:`debug`}))}),r.stderr.on(`data`,e=>{let n=e.toString().trim();n&&(t.setError(n),_(n,{level:`error`}))}),r.on(`close`,(e,r)=>{if(e===0)_(`AWS auth refresh completed successfully`),t.endAuthentication(!0),n(!0);else{let e=r===`SIGTERM`?p.red(`AWS auth refresh timed out after 3 minutes. Run your auth command manually in a separate terminal.`):p.red(`Error running awsAuthRefresh (in settings or ~/.workmate.json):`);console.error(e),t.endAuthentication(!1),n(!1)}})})}async function pa(){let e=ta();if(!e)return null;if(na()&&!T()&&!m())return Re(`awsCredentialExport invoked before trust check`,Error(`Security: awsCredentialExport executed before workspace trust is confirmed. If you see this message, post in .`)),O(`tengu_awsCredentialExport_missing_trust`,{}),null;try{return _(`Fetching AWS caller identity for credential export command`),await Qn(),_(`Fetched AWS caller identity, skipping AWS credential export command`),null}catch{try{_(`Running AWS credential export command`);let t=await Qe(e,{shell:!0,reject:!1});if(t.exitCode!==0||!t.stdout)throw Error(`awsCredentialExport did not return a valid value`);let n=Me(t.stdout.trim());if(!Zn(n))throw Error(`awsCredentialExport did not return valid AWS STS output structure`);return _(`AWS credentials retrieved from awsCredentialExport`),{accessKeyId:n.Credentials.AccessKeyId,secretAccessKey:n.Credentials.SecretAccessKey,sessionToken:n.Credentials.SessionToken}}catch(e){let t=p.red(`Error getting AWS credentials from awsCredentialExport (in settings or ~/.workmate.json):`);return e instanceof Error?console.error(t,e.message):console.error(t,e),null}}}function ma(){to.cache.clear()}function ha(){return(y()||{}).gcpAuthRefresh}function ga(){let e=ha();if(!e)return!1;let t=S(`projectSettings`),n=S(`localSettings`);return t?.gcpAuthRefresh===e||n?.gcpAuthRefresh===e}async function _a(){try{let{GoogleAuth:e}=await import(`./src-CiJCsqUl.js`).then(e=>t(e.default,1)),n=new e({scopes:[`https://www.googleapis.com/auth/cloud-platform`]}),r=(async()=>{await(await n.getClient()).getAccessToken()})(),i=Vi(no).then(()=>{throw new mo(`GCP credentials check timed out`)});return await Promise.race([r,i]),!0}catch{return!1}}async function va(){let e=ha();if(!e)return!1;if(ga()&&!T()&&!m())return Re(`gcpAuthRefresh invoked before trust check`,Error(`Security: gcpAuthRefresh executed before workspace trust is confirmed. If you see this message, post in .`)),O(`tengu_gcpAuthRefresh_missing_trust`,{}),!1;try{if(_(`Checking GCP credentials validity for auth refresh`),await _a())return _(`GCP credentials are valid, skipping auth refresh command`),!1}catch{}return ya(e)}function ya(e){_(`Running GCP auth refresh command`);let t=tr.getInstance();return t.startAuthentication(),new Promise(n=>{let r=Et(e,{timeout:io});r.stdout.on(`data`,e=>{let n=e.toString().trim();n&&(t.addOutput(n),_(n,{level:`debug`}))}),r.stderr.on(`data`,e=>{let n=e.toString().trim();n&&(t.setError(n),_(n,{level:`error`}))}),r.on(`close`,(e,r)=>{if(e===0)_(`GCP auth refresh completed successfully`),t.endAuthentication(!0),n(!0);else{let e=r===`SIGTERM`?p.red(`GCP auth refresh timed out after 3 minutes. Run your auth command manually in a separate terminal.`):p.red(`Error running gcpAuthRefresh (in settings or ~/.workmate.json):`);console.error(e),t.endAuthentication(!1),n(!1)}})})}function ba(){ao.cache.clear()}function xa(){ha()&&(ga()&&!T()&&!m()||ao())}function Sa(){let e=$i(),t=ta();!e&&!t||(ea()||na())&&!T()&&!m()||(to(),j())}function Ca(e){return/^[a-zA-Z0-9-_]+$/.test(e)}async function wa(e){if(!Ca(e))throw Error(`Invalid API key format. API key must contain only alphanumeric characters, dashes, and underscores.`);await Ea();let t=!1;if(process.platform===`darwin`)try{let n=M();await Qe(`security`,[`-i`],{input:`add-generic-password -U -a "${Un()}" -s "${n}" -X "${Buffer.from(e,`utf-8`).toString(`hex`)}"\n`,reject:!1}),O(`tengu_api_key_saved_to_keychain`,{}),t=!0}catch(e){D(e),O(`tengu_api_key_keychain_error`,{error:g(e)}),O(`tengu_api_key_saved_to_config`,{})}else O(`tengu_api_key_saved_to_config`,{});let n=Jn(e);E(r=>{let i=r.customApiKeyResponses?.approved??[];return{...r,primaryApiKey:t?r.primaryApiKey:e,customApiKeyResponses:{...r.customApiKeyResponses,approved:i.includes(n)?i:[...i,n],rejected:r.customApiKeyResponses?.rejected??[]}}}),oo.cache.clear?.(),Ii()}async function Ta(){await Ea(),E(e=>({...e,primaryApiKey:void 0})),oo.cache.clear?.(),Ii()}async function Ea(){try{await qn()}catch(e){D(e)}}function Da(e){if(!Sn(e.scopes))return O(`tengu_oauth_tokens_not_claude_ai`,{}),{success:!0};if(!e.refreshToken||!e.expiresAt)return O(`tengu_oauth_tokens_inference_only`,{}),{success:!0};let t=Ai(),n=t.name;try{let r=t.read()||{},i=r.claudeAiOauth;r.claudeAiOauth={accessToken:e.accessToken,refreshToken:e.refreshToken,expiresAt:e.expiresAt,scopes:e.scopes,subscriptionType:e.subscriptionType??i?.subscriptionType??null,rateLimitTier:e.rateLimitTier??i?.rateLimitTier??null};let a=t.update(r);return a.success?O(`tengu_oauth_tokens_saved`,{storageBackend:n}):O(`tengu_oauth_tokens_save_failed`,{storageBackend:n}),H.cache?.clear?.(),pi(),Wi(),a}catch(e){return D(e),O(`tengu_oauth_tokens_save_exception`,{storageBackend:n,error:g(e)}),{success:!1,warning:`Failed to save OAuth tokens`}}}function Oa(){H.cache?.clear?.(),N()}async function ka(){try{let{mtimeMs:e}=await wt(gt(a(),`.credentials.json`));e!==so&&(so=e,Oa())}catch{H.cache?.clear?.()}}function Aa(e){let t=co.get(e);if(t)return t;let n=ja(e).finally(()=>{co.delete(e)});return co.set(e,n),n}async function ja(e){Oa();let t=await Ma();return t?.refreshToken?t.accessToken===e?Na(0,!0):(O(`tengu_oauth_401_recovered_from_keychain`,{}),!0):!1}async function Ma(){if(l())return null;if(process.env.CLAUDE_CODE_OAUTH_TOKEN||Ln())return H();try{let e=(await Ai().readAsync())?.claudeAiOauth;return e?.accessToken?e:null}catch(e){return D(e),null}}function Na(e=0,t=!1){return e===0&&!t?lo||(lo=Pa(e,t).finally(()=>{lo=null}),lo):Pa(e,t)}async function Pa(e,t){await ka();let n=H();if(!t&&(!n?.refreshToken||!kn(n.expiresAt))||!n?.refreshToken||!Sn(n.scopes))return!1;H.cache?.clear?.(),N();let r=await Ma();if(!r?.refreshToken||!kn(r.expiresAt))return!1;let i=a();await Ct(i,{recursive:!0});let o;try{O(`tengu_oauth_token_refresh_lock_acquiring`,{}),o=await Ye(i),O(`tengu_oauth_token_refresh_lock_acquired`,{})}catch(n){return n.code===`ELOCKED`?e<5?(O(`tengu_oauth_token_refresh_lock_retry`,{retryCount:e+1}),await Vi(1e3+Math.random()*1e3),Pa(e+1,t)):(O(`tengu_oauth_token_refresh_lock_retry_limit_reached`,{maxRetries:5}),!1):(D(n),O(`tengu_oauth_token_refresh_lock_error`,{error:g(n)}),!1)}try{H.cache?.clear?.(),N();let e=await Ma();return!e?.refreshToken||!kn(e.expiresAt)?(O(`tengu_oauth_token_refresh_race_resolved`,{}),!1):(O(`tengu_oauth_token_refresh_starting`,{}),Da(await En(e.refreshToken,{scopes:Sn(e.scopes)?void 0:e.scopes})),H.cache?.clear?.(),N(),!0)}catch(e){D(e),H.cache?.clear?.(),N();let t=await Ma();return t&&!kn(t.expiresAt)?(O(`tengu_oauth_token_refresh_race_recovered`,{}),!0):!1}finally{O(`tengu_oauth_token_refresh_lock_releasing`,{}),await o(),O(`tengu_oauth_token_refresh_lock_released`,{})}}function L(){return Ji()?Sn(H()?.scopes):!1}function Fa(){return H()?.scopes?.includes(`user:profile`)??!1}function Ia(){return!(o(process.env.CLAUDE_CODE_USE_BEDROCK)||o(process.env.CLAUDE_CODE_USE_VERTEX)||o(process.env.CLAUDE_CODE_USE_FOUNDRY)||L())}function La(){return Ji()?w().oauthAccount:void 0}function R(){if(!Ji())return null;let e=H();return e?e.subscriptionType??null:null}function Ra(){return R()===`max`}function za(){return R()===`team`&&Ha()===`default_claude_max_5x`}function Ba(){return R()===`enterprise`}function Va(){return R()===`pro`}function Ha(){if(!Ji())return null;let e=H();return e?e.rateLimitTier??null:null}function Ua(){switch(R()){case`enterprise`:return`Work Mate Enterprise`;case`team`:return`Work Mate Team`;case`max`:return`Claude Max`;case`pro`:return`Claude Pro`;default:return`Work Mate API`}}function Wa(){return!!(o(process.env.CLAUDE_CODE_USE_BEDROCK)||o(process.env.CLAUDE_CODE_USE_VERTEX)||o(process.env.CLAUDE_CODE_USE_FOUNDRY)||o(process.env.CLAUDE_CODE_USE_OPENAI)||o(process.env.CLAUDE_CODE_USE_GEMINI)||o(process.env.CLAUDE_CODE_USE_GROK))}function Ga(){return(y()||{}).otelHeadersHelper}function Ka(){let e=Ga();if(!e)return!1;let t=S(`projectSettings`),n=S(`localSettings`);return t?.otelHeadersHelper===e||n?.otelHeadersHelper===e}function qa(){let e=Ga();if(!e)return{};let t=parseInt(process.env.CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS||po.toString(),10);if(uo&&Date.now()-fo<t)return uo;if(Ka()&&!T())return{};try{let t=tt(e,{timeout:3e4})?.toString().trim();if(!t)throw Error(`otelHeadersHelper did not return a valid value`);let n=Me(t);if(typeof n!=`object`||!n||Array.isArray(n))throw Error(`otelHeadersHelper must return a JSON object with string key-value pairs`);for(let[e,t]of Object.entries(n))if(typeof t!=`string`)throw Error(`otelHeadersHelper returned non-string value for key "${e}": ${typeof t}`);return uo=n,fo=Date.now(),uo}catch(e){throw D(Error(`Error getting OpenTelemetry headers from otelHeadersHelper (in settings): ${g(e)}`)),e}}function Ja(e){return e===`max`||e===`pro`}function Ya(){let e=R();return L()&&e!==null&&Ja(e)}function Xa(){if(k()!==`firstParty`)return;let{source:e}=Yi(),t={};e===`CLAUDE_CODE_OAUTH_TOKEN`||e===`CLAUDE_CODE_OAUTH_TOKEN_FILE_DESCRIPTOR`?t.tokenSource=e:L()?t.subscription=Ua():t.tokenSource=e;let{key:n,source:r}=Zi();if(n&&(t.apiKeySource=r),e===`claude.ai`||r===`/login managed key`){let e=La()?.organizationName;e&&(t.organization=e)}let i=La()?.emailAddress;return(e===`claude.ai`||r===`/login managed key`)&&i&&(t.email=i),t}async function Za(){if(process.env.ANTHROPIC_UNIX_SOCKET||!Ji())return{valid:!0};let e=S(`policySettings`)?.forceLoginOrgUUID;if(!e)return{valid:!0};await Na();let t=H();if(!t)return{valid:!0};let{source:n}=Yi(),r=n===`CLAUDE_CODE_OAUTH_TOKEN`||n===`CLAUDE_CODE_OAUTH_TOKEN_FILE_DESCRIPTOR`,i=await bn(t.accessToken);if(!i)return{valid:!1,message:`Unable to verify organization for the current authentication token.\nThis machine requires organization ${e} but the profile could not be fetched.\nThis may be a network error, or the token may lack the user:profile scope required for\nverification.\nTry again, or obtain a full-scope token.`};let a=i.organization.uuid;return a===e?{valid:!0}:r?{valid:!1,message:`The ${n===`CLAUDE_CODE_OAUTH_TOKEN`?`CLAUDE_CODE_OAUTH_TOKEN`:`CLAUDE_CODE_OAUTH_TOKEN_FILE_DESCRIPTOR`} environment variable provides a token for a\ndifferent organization than required by this machine's managed settings.\n\nRequired organization: ${e}\nToken organization: ${a}\n\nRemove the environment variable or obtain a token for the correct organization.`}:{valid:!1,message:`Your authentication token belongs to organization ${a},\nbut this machine requires organization ${e}.\n\nAuthentication token belongs to the wrong organization.`}}var Qa,z,B,V,$a,eo,to,no,ro,io,ao,oo,H,so,co,lo,uo,fo,po,mo,U=e((()=>{ne(),nt(),r(),C(),dt(),vn(),A(),h(),Nn(),xn(),Hn(),Yn(),er(),nr(),vi(),Xe(),v(),s(),Ae(),$e(),Ze(),ot(),ce(),ji(),Bi(),Kn(),x(),Hi(),Be(),Ki(),Qa=300*1e3,z=null,B=null,V=0,$a=3600*1e3,eo=180*1e3,to=fe(async()=>{let e=await da(),t=await pa();return(e||t)&&await $n(),t},$a),no=5e3,ro=3600*1e3,io=180*1e3,ao=fe(async()=>await va(),ro),oo=n(()=>{if(l())return null;if(process.platform===`darwin`){let e=Fi();if(e){if(e.stdout)return{key:e.stdout,source:`/login managed key`}}else{let e=M();try{let t=tt(`security find-generic-password -a $USER -w -s "${e}"`);if(t)return{key:t,source:`/login managed key`}}catch(e){D(e)}}}let e=w();return e.primaryApiKey?{key:e.primaryApiKey,source:`/login managed key`}:null}),H=n(()=>{if(l())return null;if(process.env.CLAUDE_CODE_OAUTH_TOKEN)return{accessToken:process.env.CLAUDE_CODE_OAUTH_TOKEN,refreshToken:null,expiresAt:null,scopes:[`user:inference`],subscriptionType:null,rateLimitTier:null};let e=Ln();if(e)return{accessToken:e,refreshToken:null,expiresAt:null,scopes:[`user:inference`],subscriptionType:null,rateLimitTier:null};try{let e=Ai().read()?.claudeAiOauth;return e?.accessToken?e:null}catch(e){return D(e),null}}),so=0,co=new Map,lo=null,uo=null,fo=0,po=1740*1e3,mo=class extends Error{}}));function W(){return!o(process.env.CLAUDE_CODE_DISABLE_FAST_MODE)}function ho(){return W()?_o()===null:!1}function go(e,t){switch(e){case`free`:return t===`oauth`?`Fast mode requires a paid subscription`:`Fast mode unavailable during evaluation. Please purchase credits.`;case`preference`:return`Fast mode has been disabled by your organization`;case`extra_usage_disabled`:return`Fast mode requires extra usage billing · enable it at claude.ai/settings/usage`;case`network_error`:return`Fast mode unavailable due to network connectivity issues`;case`unknown`:return`Fast mode is currently unavailable`}}function _o(){if(!W())return`Fast mode is not available`;if(st(),m()&&_e()&&!S(`flagSettings`)?.fastMode){let e=`Fast mode is not available in the Agent SDK`;return _(`Fast mode unavailable: ${e}`),e}if(k()!==`firstParty`){let e=`Fast mode is not available on Bedrock, Vertex, or Foundry`;return _(`Fast mode unavailable: ${e}`),e}if(K.status===`disabled`){if((K.reason===`network_error`||K.reason===`unknown`)&&o(process.env.CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS))return null;let e=H()===null?`api-key`:`oauth`,t=go(K.reason,e);return _(`Fast mode unavailable: ${t}`),t}return null}function vo(){return`opus${Ls()?`[1m]`:``}`}function yo(e){if(!W()||!ho()||!bo(e))return!1;let t=Je();return!t.fastModePerSessionOptIn&&t.fastMode===!0}function bo(e){if(!W())return!1;let t=Q(e??Ms());return t.toLowerCase().includes(`opus-4-7`)||t.toLowerCase().includes(`opus-4-6`)}function xo(){return G.status===`cooldown`&&Date.now()>=G.resetAt&&(W()&&!Po&&(_(`Fast mode cooldown expired, re-enabling fast mode`),Po=!0,Io.emit()),G={status:`active`}),G}function So(e,t){if(!W())return;G={status:`cooldown`,resetAt:e,reason:t},Po=!1;let n=e-Date.now();_(`Fast mode cooldown triggered (${t}), duration ${Math.round(n/1e3)}s`),O(`tengu_fast_mode_fallback_triggered`,{cooldown_duration_ms:n,cooldown_reason:t}),Fo.emit(e,t)}function Co(){G={status:`active`}}function wo(){K.status!==`disabled`&&(K={status:`disabled`,reason:`preference`},qe(`userSettings`,{fastMode:void 0}),E(e=>({...e,penguinModeOrgEnabled:!1})),Vo.emit(!1))}function To(e){switch(e){case`out_of_credits`:return`Fast mode disabled · extra usage credits exhausted`;case`org_level_disabled`:case`org_service_level_disabled`:return`Fast mode disabled · extra usage disabled by your organization`;case`org_level_disabled_until`:return`Fast mode disabled · extra usage spending cap reached`;case`member_level_disabled`:return`Fast mode disabled · extra usage disabled for your account`;case`seat_tier_level_disabled`:case`seat_tier_zero_credit_limit`:case`member_zero_credit_limit`:return`Fast mode disabled · extra usage not available for your plan`;case`overage_not_provisioned`:case`no_limits_configured`:return`Fast mode requires extra usage billing · enable it at claude.ai/settings/usage`;default:return`Fast mode disabled · extra usage not available`}}function Eo(e){return e===`org_level_disabled_until`||e===`out_of_credits`}function Do(e){let t=To(e);_(`Fast mode overage rejection: ${e??`unknown`} — ${t}`),O(`tengu_fast_mode_overage_rejected`,{overage_disabled_reason:e??`unknown`}),Eo(e)||(qe(`userSettings`,{fastMode:void 0}),E(e=>({...e,penguinModeOrgEnabled:!1}))),zo.emit(t)}function Oo(){return xo().status===`cooldown`}function ko(e,t){let n=W()&&ho()&&!!t&&bo(e);return n&&Oo()?`cooldown`:n?`on`:`off`}async function Ao(e){let t=`${b().BASE_API_URL}/api/claude_code_penguin_mode`,n=`accessToken`in e?{Authorization:`Bearer ${e.accessToken}`,"anthropic-beta":He}:{"x-api-key":e.apiKey};return(await f.get(t,{headers:n})).data}function jo(){W()&&K.status===`pending`&&(K=w().penguinModeOrgEnabled===!0?{status:`enabled`}:{status:`disabled`,reason:`unknown`})}async function Mo(){if(at()||!W())return;if(Go)return _(`Fast mode prefetch in progress, returning in-flight promise`),Go;let e=Xi();if(!(H()?.accessToken&&Fa())&&!e){K=w().penguinModeOrgEnabled===!0?{status:`enabled`}:{status:`disabled`,reason:`preference`};return}let t=Date.now();if(t-Wo<Uo){_(`Skipping fast mode prefetch, fetched recently`);return}Wo=t;let n=async()=>{let t=H(),n=t?.accessToken&&Fa()?{accessToken:t.accessToken}:e?{apiKey:e}:null;if(!n)throw Error(`No auth available`);return Ao(n)};async function r(){try{let e;try{e=await n()}catch(t){if(f.isAxiosError(t)&&(t.response?.status===401||t.response?.status===403&&typeof t.response?.data==`string`&&t.response.data.includes(`OAuth token has been revoked`))){let r=H()?.accessToken;if(r)await Aa(r),e=await n();else throw t}else throw t}let t=K.status===`pending`?w().penguinModeOrgEnabled:K.status===`enabled`;K=e.enabled?{status:`enabled`}:{status:`disabled`,reason:e.disabled_reason??`preference`},t!==e.enabled&&(e.enabled||qe(`userSettings`,{fastMode:void 0}),E(t=>({...t,penguinModeOrgEnabled:e.enabled})),Vo.emit(e.enabled)),_(`Org fast mode: ${e.enabled?`enabled`:`disabled (${e.disabled_reason??`preference`})`}`)}catch(e){K=w().penguinModeOrgEnabled===!0?{status:`enabled`}:{status:`disabled`,reason:`network_error`},_(`Failed to fetch org fast mode status, defaulting to ${K.status===`enabled`?`enabled (cached)`:`disabled (network_error)`}: ${e}`,{level:`error`}),O(`tengu_org_penguin_mode_fetch_failed`,{})}finally{Go=null}}return Go=r(),Go}var No,G,Po,Fo,Io,Lo,Ro,zo,Bo,K,Vo,Ho,Uo,Wo,Go,Ko=e((()=>{te(),C(),h(),dt(),U(),ct(),Xe(),v(),s(),$(),A(),it(),x(),me(),No=`Opus 4.7`,G={status:`active`},Po=!1,Fo=be(),Io=be(),Lo=Fo.subscribe,Ro=Io.subscribe,zo=be(),Bo=zo.subscribe,K={status:`pending`},Vo=be(),Ho=Vo.subscribe,Uo=3e4,Wo=0,Go=null}));function qo(e){return W()&&e?rs:ns}function Jo(e,t){return t.input_tokens/1e6*e.inputTokens+t.output_tokens/1e6*e.outputTokens+(t.cache_read_input_tokens??0)/1e6*e.promptCacheReadTokens+(t.cache_creation_input_tokens??0)/1e6*e.promptCacheWriteTokens+(t.server_tool_use?.web_search_requests??0)*e.webSearchRequests}function Yo(e,t){let n=Z(e);return n===X(rn.firstParty)?qo(t.speed===`fast`):ss[n]||(Xo(e,n),ss[Z(Ms())]??os)}function Xo(e,t){O(`tengu_unknown_model_cost`,{model:e,shortName:t}),we()}function Zo(e,t){return Jo(Yo(e,t),t)}function Qo(e,t){return Zo(e,{input_tokens:t.inputTokens,output_tokens:t.outputTokens,cache_read_input_tokens:t.cacheReadInputTokens,cache_creation_input_tokens:t.cacheCreationInputTokens})}function $o(e){return Number.isInteger(e)?`$${e}`:`$${e.toFixed(2)}`}function es(e){return`${$o(e.inputTokens)}/${$o(e.outputTokens)} per Mtok`}var q,ts,ns,rs,is,as,os,ss,cs=e((()=>{dt(),h(),Ko(),ln(),$(),q={inputTokens:3,outputTokens:15,promptCacheWriteTokens:3.75,promptCacheReadTokens:.3,webSearchRequests:.01},ts={inputTokens:15,outputTokens:75,promptCacheWriteTokens:18.75,promptCacheReadTokens:1.5,webSearchRequests:.01},ns={inputTokens:5,outputTokens:25,promptCacheWriteTokens:6.25,promptCacheReadTokens:.5,webSearchRequests:.01},rs={inputTokens:30,outputTokens:150,promptCacheWriteTokens:37.5,promptCacheReadTokens:3,webSearchRequests:.01},is={inputTokens:.8,outputTokens:4,promptCacheWriteTokens:1,promptCacheReadTokens:.08,webSearchRequests:.01},as={inputTokens:1,outputTokens:5,promptCacheWriteTokens:1.25,promptCacheReadTokens:.1,webSearchRequests:.01},os=ns,ss={[X(Xt.firstParty)]:is,[X(Zt.firstParty)]:as,[X(Yt.firstParty)]:q,[X(Jt.firstParty)]:q,[X(Qt.firstParty)]:q,[X($t.firstParty)]:q,[X(on.firstParty)]:q,[X(en.firstParty)]:ts,[X(tn.firstParty)]:ts,[X(nn.firstParty)]:ns,[X(rn.firstParty)]:ns}}));function J(e){return us.includes(e)}function ls(e){return ds.includes(e)}var us,ds,fs=e((()=>{us=[`sonnet`,`opus`,`haiku`,`best`,`sonnet[1m]`,`opus[1m]`,`opusplan`],ds=[`sonnet`,`opus`,`haiku`]}));function ps(e,t){return e.includes(t)?!0:J(e)?Q(e).toLowerCase().includes(t):!1}function ms(e,t){return e.startsWith(t)?e.length===t.length||e[t.length]===`-`:!1}function hs(e,t){let n=J(e)?Q(e).toLowerCase():e;return!!(ms(n,t)||!t.startsWith(`claude-`)&&ms(n,`claude-${t}`))}function gs(e,t){for(let n of t){if(ls(n))continue;let t=n.indexOf(e);if(t===-1)continue;let r=t+e.length;if(r===n.length||n[r]===`-`)return!0}return!1}function _s(e){let{availableModels:t}=y()||{};if(!t)return!0;if(t.length===0)return!1;let n=pn(e).trim().toLowerCase(),r=t.map(e=>e.trim().toLowerCase());if(r.includes(n)&&(!ls(n)||!gs(n,r)))return!0;for(let e of r)if(ls(e)&&!gs(e,r)&&ps(n,e))return!0;if(J(n)){let e=Q(n).toLowerCase();if(r.includes(e))return!0}for(let e of r)if(!ls(e)&&J(e)&&Q(e).toLowerCase()===n)return!0;for(let e of r)if(!ls(e)&&!J(e)&&hs(n,e))return!0;return!1}var vs=e((()=>{x(),fs(),$(),vn()}));function ys(){return process.env.OPENAI_AUTH_MODE===`chatgpt`}var bs,xs,Ss=e((()=>{bs=`gpt-5.5`,xs=`gpt-5.4-mini`}));function Cs(){let e=k();return e===`openai`&&ys()?process.env.OPENAI_SMALL_FAST_MODEL??`gpt-5.4-mini`:e===`openai`&&process.env.OPENAI_SMALL_FAST_MODEL?process.env.OPENAI_SMALL_FAST_MODEL:e===`gemini`&&process.env.GEMINI_SMALL_FAST_MODEL?process.env.GEMINI_SMALL_FAST_MODEL:process.env.ANTHROPIC_SMALL_FAST_MODEL||As()}function ws(e){return e===j().opus40||e===j().opus41||e===j().opus45||e===j().opus46||e===j().opus47}function Ts(){let e,t=ge();if(t!==void 0)e=t;else{let t=y()||{};e=process.env.ANTHROPIC_MODEL||t.model||void 0}if(!(e&&!_s(e)))return e}function Es(){let e=Ts();return e==null?Ns():Q(e)}function Ds(){return Y()}function Os(){let e=k();if(e===`openai`)return process.env.OPENAI_MODEL;if(e===`gemini`)return process.env.GEMINI_MODEL;if(e===`grok`)return process.env.GROK_MODEL}function Y(){let e=k();return e===`openai`&&ys()?bs:e===`openai`&&process.env.OPENAI_DEFAULT_OPUS_MODEL?process.env.OPENAI_DEFAULT_OPUS_MODEL:e===`gemini`&&process.env.GEMINI_DEFAULT_OPUS_MODEL?process.env.GEMINI_DEFAULT_OPUS_MODEL:process.env.ANTHROPIC_DEFAULT_OPUS_MODEL?process.env.ANTHROPIC_DEFAULT_OPUS_MODEL:Os()||j().opus47}function ks(){let e=k();return e===`openai`&&ys()?bs:e===`openai`&&process.env.OPENAI_DEFAULT_SONNET_MODEL?process.env.OPENAI_DEFAULT_SONNET_MODEL:e===`gemini`&&process.env.GEMINI_DEFAULT_SONNET_MODEL?process.env.GEMINI_DEFAULT_SONNET_MODEL:process.env.ANTHROPIC_DEFAULT_SONNET_MODEL?process.env.ANTHROPIC_DEFAULT_SONNET_MODEL:Os()||(e===`firstParty`?j().sonnet46:j().sonnet45)}function As(){let e=k();return e===`openai`&&ys()?xs:e===`openai`&&process.env.OPENAI_DEFAULT_HAIKU_MODEL?process.env.OPENAI_DEFAULT_HAIKU_MODEL:e===`gemini`&&process.env.GEMINI_DEFAULT_HAIKU_MODEL?process.env.GEMINI_DEFAULT_HAIKU_MODEL:process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL?process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL:Os()||j().haiku45}function js(e){let{permissionMode:t,mainLoopModel:n,exceeds200kTokens:r=!1}=e;return Ts()===`opusplan`&&t===`plan`&&!r?Y():Ts()===`haiku`&&t===`plan`?ks():n}function Ms(){return Ra()||za()?Y()+(Ls()?`[1m]`:``):ks()}function Ns(){return Q(Ms())}function X(e){if(e=e.toLowerCase(),e.includes(`claude-opus-4-7`))return`claude-opus-4-7`;if(e.includes(`claude-opus-4-6`))return`claude-opus-4-6`;if(e.includes(`claude-opus-4-5`))return`claude-opus-4-5`;if(e.includes(`claude-opus-4-1`))return`claude-opus-4-1`;if(e.includes(`claude-opus-4`))return`claude-opus-4`;if(e.includes(`claude-sonnet-4-6`))return`claude-sonnet-4-6`;if(e.includes(`claude-sonnet-4-5`))return`claude-sonnet-4-5`;if(e.includes(`claude-sonnet-4`))return`claude-sonnet-4`;if(e.includes(`claude-haiku-4-5`))return`claude-haiku-4-5`;if(e.includes(`claude-3-7-sonnet`))return`claude-3-7-sonnet`;if(e.includes(`claude-3-5-sonnet`))return`claude-3-5-sonnet`;if(e.includes(`claude-3-5-haiku`))return`claude-3-5-haiku`;if(e.includes(`claude-3-opus`))return`claude-3-opus`;if(e.includes(`claude-3-sonnet`))return`claude-3-sonnet`;if(e.includes(`claude-3-haiku`))return`claude-3-haiku`;let t=e.match(/(claude-(\d+-\d+-)?\w+)/);return t?.[1]?t[1]:e}function Z(e){return X(pn(e))}function Ps(e=!1){return Ra()||za()?Ls()?`Opus 4.7 with 1M context · Most capable for complex work${e?Is(!0):``}`:`Opus 4.7 · Most capable for complex work${e?Is(!0):``}`:`Sonnet 4.6 · Best for everyday tasks`}function Fs(e){return e===`opusplan`?`Opus 4.7 in plan mode, else Sonnet 4.6`:Bs(Q(e))}function Is(e){if(k()!==`firstParty`)return``;let t=es(qo(e));return` ·${e?` (↯)`:``} ${t}`}function Ls(){return!(Vr()||Va()||k()!==`firstParty`||!At()||L()&&R()===null)}function Rs(e){return e===`opusplan`?`Opus Plan`:J(e)?lt(e):Bs(e)}function zs(e){switch(e){case j().opus47:return`Opus 4.7`;case`${j().opus47}[1m]`:return`Opus 4.7 (1M context)`;case j().opus46:return`Opus 4.6`;case`${j().opus46}[1m]`:return`Opus 4.6 (1M context)`;case j().opus45:return`Opus 4.5`;case j().opus41:return`Opus 4.1`;case j().opus40:return`Opus 4`;case`${j().sonnet46}[1m]`:return`Sonnet 4.6 (1M context)`;case j().sonnet46:return`Sonnet 4.6`;case`${j().sonnet45}[1m]`:return`Sonnet 4.5 (1M context)`;case j().sonnet45:return`Sonnet 4.5`;case j().sonnet40:return`Sonnet 4`;case`${j().sonnet40}[1m]`:return`Sonnet 4 (1M context)`;case j().sonnet37:return`Sonnet 3.7`;case j().sonnet35:return`Sonnet 3.5`;case j().haiku45:return`Haiku 4.5`;case j().haiku35:return`Haiku 3.5`;default:return null}}function Bs(e){return zs(e)||e}function Q(e){let t=e.trim(),n=t.toLowerCase(),r=F(n),i=r?n.replace(/\[1m]$/i,``).trim():n;if(J(i))switch(i){case`opusplan`:return ks()+(r?`[1m]`:``);case`sonnet`:return ks()+(r?`[1m]`:``);case`haiku`:return As()+(r?`[1m]`:``);case`opus`:return Y()+(r?`[1m]`:``);case`best`:return Ds();default:}return k()===`firstParty`&&Hs(i)&&Us()?Y()+(r?`[1m]`:``):r?`${t.replace(/\[1m\]$/i,``).trim()}[1m]`:t}function Vs(e,t){return F(e)||!F(t)?e:Hr(Q(e))?`${e}[1m]`:e}function Hs(e){return qs.includes(e)}function Us(){return!o(process.env.CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP)}function Ws(e){if(e===null)return L()?`Default (${Ps()})`:`Default (${Ns()})`;let t=Q(e);return e===t?t:`${e} (${t})`}function Gs(e){if(k()===`foundry`)return;let t=e.toLowerCase().includes(`[1m]`),n=Z(e);if(n.includes(`claude-opus-4-7`))return t?`Opus 4.7 (with 1M context)`:`Opus 4.7`;if(n.includes(`claude-opus-4-6`))return t?`Opus 4.6 (with 1M context)`:`Opus 4.6`;if(n.includes(`claude-opus-4-5`))return`Opus 4.5`;if(n.includes(`claude-opus-4-1`))return`Opus 4.1`;if(n.includes(`claude-opus-4`))return`Opus 4`;if(n.includes(`claude-sonnet-4-6`))return t?`Sonnet 4.6 (with 1M context)`:`Sonnet 4.6`;if(n.includes(`claude-sonnet-4-5`))return t?`Sonnet 4.5 (with 1M context)`:`Sonnet 4.5`;if(n.includes(`claude-sonnet-4`))return t?`Sonnet 4 (with 1M context)`:`Sonnet 4`;if(n.includes(`claude-3-7-sonnet`))return`Work Mate 3.7 Sonnet`;if(n.includes(`claude-3-5-sonnet`))return`Work Mate 3.5 Sonnet`;if(n.includes(`claude-haiku-4-5`))return`Haiku 4.5`;if(n.includes(`claude-3-5-haiku`))return`Work Mate 3.5 Haiku`}function Ks(e){return e.replace(/\[(1|2)m\]/gi,``)}var qs,$=e((()=>{h(),U(),$r(),s(),vn(),cs(),x(),A(),Ue(),vs(),fs(),ut(),Ss(),qs=[`claude-opus-4-20250514`,`claude-opus-4-1-20250805`,`claude-opus-4-0`,`claude-opus-4-1`]}));export{jo as $,Nn as $n,fi as $t,Zo as A,pr as An,za as At,yo as B,tr as Bn,Ki as Bt,vs as C,xr as Cn,Mt as Cr,Ia as Ct,q as D,Sr as Dn,At as Dr,Ba as Dt,fs as E,Cr as En,A as Er,Ya as Et,Co as F,fr as Fn,Ta as Ft,Oo as G,Jn as Gn,Ni as Gt,wo as H,er as Hn,Vi as Ht,vo as I,sr as In,Da as It,Ro as J,wn as Jn,Ei as Jt,W as K,N as Kn,Ai as Kt,xo as L,lr as Ln,Za as Lt,qo as M,or as Mn,ua as Mt,cs as N,dr as Nn,Sa as Nt,ss as O,vr as On,Ra as Ot,No as P,ur as Pn,xa as Pt,Mo as Q,An as Qn,_i as Qt,ko as R,hr as Rn,Wi as Rt,Vs as S,Ar as Sn,Pt as Sr,U as St,us as T,yr as Tn,kt as Tr,L as Tt,Ko as U,Xn as Un,Pi as Ut,Do as V,nr as Vn,Hi as Vt,ho as W,Yn as Wn,Bi as Wt,Bo as X,Tn as Xn,pi as Xt,Lo as Y,On as Yn,Si as Yt,Ho as Z,Dn as Zn,ai as Zt,Ks as _,Vr as _n,qt as _r,Ha as _t,Y as a,di as an,Mn as ar,Oa as at,Bs as b,kr as bn,Ft as br,Aa as bt,Gs as c,Qr as cn,xn as cr,Zi as ct,Ts as d,Ur as dn,vn as dr,ia as dt,gi as en,kn as er,So as et,$ as f,qr as fn,Ut as fr,Yi as ft,Ws as g,$r as gn,Gt as gr,qa as gt,Ls as h,F as hn,Ht as hr,La as ht,Ms as i,ui as in,Sn as ir,ba as it,es as j,ar as jn,Wa as jt,Qo as k,_r as kn,Va as kt,js as l,Yr as ln,hn as lr,aa as lt,ws as m,Wr as mn,Wt as mr,I as mt,Ps as n,li as nn,jn as nr,la as nt,ks as o,ni as on,yn as or,Xa as ot,Us as p,Kr as pn,zt as pr,H as pt,bo as q,Kn as qn,ji as qt,Ns as r,ci as rn,En as rr,ma as rt,Es as s,ri as sn,bn as sr,Xi as st,Z as t,vi as tn,Cn as tr,Na as tt,Cs as u,Gr as un,j as ur,oo as ut,Q as v,Br as vn,Bt as vr,Ua as vt,_s as w,br as wn,k as wr,Ji as wt,Rs as x,Tr as xn,jt as xr,Fa as xt,Fs as y,Ir as yn,It as yr,R as yt,_o as z,gr as zn,Ui as zt};
@@ -1 +0,0 @@
1
- import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{N as t,zt as n}from"./state-BowF111d.js";import{d as r,h as i}from"./settings-DKN4xSpQ.js";import{c as a,m as o}from"./config-BddEvZZl.js";import{C as s,D as c,Er as l,N as u,St as d,Tt as f,d as p,f as m,i as h,j as g,n as _,w as v,wr as y,y as b}from"./model-BwBE0Pt5.js";function x(e=!1){if(f())return{value:null,label:`Default (recommended)`,description:_(e)};let t=y()!==`firstParty`;return{value:null,label:`Default (recommended)`,description:`Use the default model (currently ${b(h())})${t?``:` · ${g(c)}`}`}}function S(e=!1){let n=[x(e)],r=process.env.ANTHROPIC_CUSTOM_MODEL_OPTION;r&&!n.some(e=>e.value===r)&&n.push({value:r,label:process.env.ANTHROPIC_CUSTOM_MODEL_OPTION_NAME??r,description:process.env.ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION??`Custom model (${r})`});for(let e of a().additionalModelOptionsCache??[])n.some(t=>t.value===e.value)||n.push(e);let i=null,o=p(),s=t();return o==null?s!==null&&(i=s):i=o,i!==null&&!n.some(e=>e.value===i)&&n.push({value:i,label:i,description:`Custom model`}),C(n)}function C(e){return(r()||{}).availableModels?e.filter(e=>e.value===null||e.value!==null&&v(e.value)):e}function w(e,t){return e.length===0?null:C([x(t),...e])}var T=e((()=>{n(),o(),d(),u(),i(),s(),m(),l()}));export{S as n,T as r,w as t};
@@ -1 +0,0 @@
1
- import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{l as t,o as n}from"./envUtils-DcaKZlRU.js";import{ft as r,ut as i}from"./esm-BQY8jJNR.js";import{n as a,t as o}from"./axios-DaWTGg7G.js";import{Qw as s,Xw as c,Zw as l}from"./loadAgentsDir-C1LkW7gl.js";import{H as u,L as d,N as f,P as p,c as m,et as ee,f as te,i as h,tt as ne,u as re,x as ie,z as g}from"./debug-8DCufdSp.js";import{Wt as ae,qt as oe}from"./settings-DKN4xSpQ.js";import{S as _,b as se,c as ce,m as le,v as ue,x as de}from"./config-BddEvZZl.js";import{i as v,n as y}from"./execFileNoThrow-BsfuytkN.js";import{o as fe,s as b}from"./log-DaILwWJa.js";import{n as pe,r as x}from"./analytics-DJobLaWP.js";import{Ht as me,Vt as he}from"./model-BwBE0Pt5.js";import{C as ge,E as _e,S as ve,T as ye,_ as be,a as S,b as xe,c as Se,d as Ce,f as we,g as Te,i as Ee,l as De,m as Oe,n as ke,o as C,p as Ae,s as je,t as Me,u as Ne,v as Pe,w as Fe,x as w,y as Ie}from"./pidLock-D9do1Afy.js";import{homedir as T}from"os";import{basename as Le,delimiter as Re,dirname as E,join as D,resolve as O}from"path";import{constants as ze}from"fs";import{createHash as Be}from"crypto";import{access as k,chmod as A,copyFile as j,mkdir as M,readdir as N,readlink as P,rename as F,rm as I,rmdir as Ve,stat as L,symlink as He,unlink as R,writeFile as z}from"fs/promises";async function Ue(e=`latest`,t,n){let r=Date.now();try{let i=await a.get(`${t}/${e}`,{timeout:3e4,responseType:`text`,...n});return x(`tengu_version_check_success`,{latency_ms:Date.now()-r}),i.data.trim()}catch(n){let i=Date.now()-r,o=n instanceof Error?n.message:String(n),s;a.isAxiosError(n)&&n.response&&(s=n.response.status),x(`tengu_version_check_failure`,{latency_ms:i,http_status:s,is_timeout:o.includes(`timeout`)});let c=Error(`Failed to fetch version from ${t}/${e}: ${o}`);throw b(c),c}}async function We(e){if(/^v?\d+\.\d+\.\d+(-\S+)?$/.test(e)){let t=e.startsWith(`v`)?e.slice(1):e;if(/^99\.99\./.test(t))throw Error(`Version ${t} is not available for installation. Use 'stable' or 'latest'.`);return t}let t=e;if(t!==`stable`&&t!==`latest`)throw Error(`Invalid channel: ${e}. Use 'stable' or 'latest'`);return Ue(t,B)}function Ge(){return Number(process.env.CLAUDE_CODE_STALL_TIMEOUT_MS_FOR_TESTING)||V}async function Ke(e,t,n,r={}){let i;for(let o=1;o<=3;o++){let s=new AbortController,c,l=()=>{c&&(clearTimeout(c),c=void 0)},d=()=>{l(),c=setTimeout(e=>e.abort(),Ge(),s)};try{d();let i=await a.get(e,{timeout:5*6e4,responseType:`arraybuffer`,signal:s.signal,onDownloadProgress:()=>{d()},...r});l();let o=Be(`sha256`);o.update(i.data);let c=o.digest(`hex`);if(c!==t)throw Error(`Checksum mismatch: expected ${t}, got ${c}`);await z(n,Buffer.from(i.data)),await A(n,493);return}catch(e){l();let t=a.isCancel(e);if(i=t?new H:u(e),t&&o<3){m(`Download stalled on attempt ${o}/3, retrying...`),await me(1e3);continue}throw i}}throw i??Error(`Download failed after all retries`)}async function qe(e,t,n,r){let i=re();await i.rm(t,{recursive:!0,force:!0});let o=U(),s=Date.now();x(`tengu_binary_download_attempt`,{});let c;try{c=(await a.get(`${n}/${e}/manifest.json`,{timeout:1e4,responseType:`json`,...r})).data}catch(t){let r=Date.now()-s,i=t instanceof Error?t.message:String(t),o;throw a.isAxiosError(t)&&t.response&&(o=t.response.status),x(`tengu_binary_manifest_fetch_failure`,{latency_ms:r,http_status:o,is_timeout:i.includes(`timeout`)}),b(Error(`Failed to fetch manifest from ${n}/${e}/manifest.json: ${i}`)),t}let l=c.platforms[o];if(!l)throw x(`tengu_binary_platform_not_found`,{}),Error(`Platform ${o} not found in manifest for version ${e}`);let u=l.checksum,d=W(o),f=`${n}/${e}/${o}/${d}`;await i.mkdir(t);let p=D(t,d);try{await Ke(f,u,p,r||{}),x(`tengu_binary_download_success`,{latency_ms:Date.now()-s})}catch(e){let t=Date.now()-s,n=e instanceof Error?e.message:String(e),r;throw a.isAxiosError(e)&&e.response&&(r=e.response.status),x(`tengu_binary_download_failure`,{latency_ms:t,http_status:r,is_timeout:n.includes(`timeout`),is_checksum_mismatch:n.includes(`Checksum mismatch`)}),b(Error(`Failed to download binary from ${f}: ${n}`)),e}}async function Je(e,t){return await qe(e,t,B),`binary`}var B,V,H,Ye=e((()=>{o(),pe(),h(),d(),v(),te(),fe(),he(),ie(),$(),B=`https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases`,V=6e4,H=class extends Error{constructor(){super(`Download stalled: no data received for 60 seconds`),this.name=`StallTimeoutError`}}}));function U(){let e=ae.platform,t=process.arch===`x64`?`x64`:process.arch===`arm64`?`arm64`:null;if(!t){let e=Error(`Unsupported architecture: ${process.arch}`);throw m(`Native installer does not support architecture: ${process.arch}`,{level:`error`}),e}return e===`linux`&&i.isMuslEnvironment()?`linux-${t}-musl`:`${e}-${t}`}function W(e){return e.startsWith(`win32`)?`claude.exe`:`claude`}function G(){let e=W(U());return{versions:D(Ce(),`claude`,`versions`),staging:D(Ne(),`claude`,`staging`),locks:D(we(),`claude`,`locks`),executable:D(De(),e)}}async function K(e){try{let t=await L(e);return!t.isFile()||t.size===0?!1:(await k(e,ze.X_OK),!0)}catch{return!1}}async function q(e){let t=G(),n=[t.versions,t.staging,t.locks];await Promise.all(n.map(e=>M(e,{recursive:!0}))),await M(E(t.executable),{recursive:!0});let r=D(t.versions,e);try{await L(r)}catch{await z(r,``,{encoding:`utf8`})}return{stagingPath:D(t.staging,e),installPath:r}}async function Xe(e,t,n=0){let r=G(),i=J(r,e);if(await M(r.locks,{recursive:!0}),C()){let r=0,a=n+1,o=n>0?1e3:100,s=n>0?5e3:500;for(;r<a;){if(await Se(e,i,async()=>{try{await t()}catch(e){throw b(e),e}}))return x(`tengu_version_lock_acquired`,{is_pid_based:!0,is_lifetime_lock:!1,attempts:r+1}),!0;r++,r<a&&await me(Math.min(o*2**(r-1),s))}return x(`tengu_version_lock_failed`,{is_pid_based:!0,is_lifetime_lock:!1,attempts:a}),Y(e,Error(`Lock held by another process`)),!1}let a=null;try{try{a=await _(e,{stale:Z,retries:{retries:n,minTimeout:n>0?1e3:100,maxTimeout:n>0?5e3:500},lockfilePath:i,onCompromised:e=>{m(`NON-FATAL: Version lock was compromised during operation: ${e.message}`,{level:`info`})}})}catch(t){return x(`tengu_version_lock_failed`,{is_pid_based:!1,is_lifetime_lock:!1}),Y(e,t),!1}try{return await t(),x(`tengu_version_lock_acquired`,{is_pid_based:!1,is_lifetime_lock:!1}),!0}catch(e){throw b(e),e}}finally{a&&await a()}}async function Ze(e,t){await M(E(t),{recursive:!0});let n=`${t}.tmp.${process.pid}.${Date.now()}`;try{await j(e,n),await A(n,493),await F(n,t),m(`Atomically installed binary to ${t}`)}catch(e){try{await R(n)}catch{}throw e}}async function Qe(e,t){try{let n=D(e,`node_modules`,`@anthropic-ai`),r=(await N(n)).find(e=>e.startsWith(`claude-cli-native-`));if(!r)throw x(`tengu_native_install_package_failure`,{stage_find_package:!0,error_package_not_found:!0}),Error(`Could not find platform-specific native package`);let i=D(n,r,`cli`);try{await L(i)}catch{throw x(`tengu_native_install_package_failure`,{stage_binary_exists:!0,error_binary_not_found:!0}),Error(`Native binary not found in staged package`)}await Ze(i,t),await I(e,{recursive:!0,force:!0}),x(`tengu_native_install_package_success`,{})}catch(e){let t=f(e);throw!t.includes(`Could not find platform-specific`)&&!t.includes(`Native binary not found`)&&x(`tengu_native_install_package_failure`,{stage_atomic_move:!0,error_move_failed:!0}),b(u(e)),e}}async function $e(e,t){try{let n=D(e,W(U()));try{await L(n)}catch{throw x(`tengu_native_install_binary_failure`,{stage_binary_exists:!0,error_binary_not_found:!0}),Error(`Staged binary not found`)}await Ze(n,t),await I(e,{recursive:!0,force:!0}),x(`tengu_native_install_binary_success`,{})}catch(e){throw f(e).includes(`Staged binary not found`)||x(`tengu_native_install_binary_failure`,{stage_atomic_move:!0,error_move_failed:!0}),b(u(e)),e}}async function et(e,t,n){n===`npm`?await Qe(e,t):await $e(e,t)}async function tt(e,n){let{stagingPath:r,installPath:i}=await q(e),{executable:a}=G(),o=t(process.env.ENABLE_LOCKLESS_UPDATES)?`${r}.${process.pid}.${Date.now()}`:r,s=!await nt(e)||n;if(s?(m(n?`Force reinstalling native installer version ${e}`:`Downloading native installer version ${e}`),await et(o,i,await Je(e,o))):m(`Version ${e} already installed, updating symlink`),await it(a),await at(a,i),!await K(a)){let e=!1;try{await L(i),e=!0}catch{}throw Error(`Failed to create executable at ${a}. Source file exists: ${e}. Check write permissions to ${a}.`)}return s}async function nt(e){let{installPath:t}=await q(e);return K(t)}async function rt(e,n=!1){let r=Date.now(),i=await We(e),{executable:a}=G();if(m(`Checking for native installer update to version ${i}`),!n){let e=await be();if(e&&c(i,e)){if(m(`Native installer: maxVersion ${e} is set, capping update from ${i} to ${e}`),l(`0.0.22`,e))return m(`Native installer: current version 0.0.22 is already at or above maxVersion ${e}, skipping update`),x(`tengu_native_update_skipped_max_version`,{latency_ms:Date.now()-r,max_version:e,available_version:i}),{success:!0,latestVersion:i};i=e}}if(!n&&i===`0.0.22`&&await nt(i)&&await K(a))return m(`Found ${i} at ${a}, skipping install`),x(`tengu_native_update_complete`,{latency_ms:Date.now()-r,was_new_install:!1,was_force_reinstall:!1,was_already_running:!0}),{success:!0,latestVersion:i};if(!n&&Ie(i))return x(`tengu_native_update_skipped_minimum_version`,{latency_ms:Date.now()-r,target_version:i}),{success:!0,latestVersion:i};let o=!1,s;if(t(process.env.ENABLE_LOCKLESS_UPDATES))o=await tt(i,n),s=Date.now()-r;else{let{installPath:e}=await q(i);n&&await dt(e);let t=await Xe(e,async()=>{o=await tt(i,n)},3);if(s=Date.now()-r,!t){let t=G(),n;if(C()){let r=J(t,e);S(r)&&(n=je(r)?.pid)}return x(`tengu_native_update_lock_failed`,{latency_ms:s,lock_holder_pid:n}),{success:!1,latestVersion:i,lockFailed:!0,lockHolderPid:n}}}return x(`tengu_native_update_complete`,{latency_ms:s,was_new_install:o,was_force_reinstall:n}),m(`Successfully updated to version ${i}`),{success:!0,latestVersion:i}}async function it(e){try{await Ve(e),m(`Removed empty directory at ${e}`)}catch(t){let n=p(t);n!==`ENOTDIR`&&n!==`ENOENT`&&n!==`ENOTEMPTY`&&m(`Could not remove directory at ${e}: ${t}`)}}async function at(e,t){if(U().startsWith(`win32`))try{await M(E(e),{recursive:!0});let n;try{n=await L(e)}catch{}if(n){try{let e=await L(t);if(n.size===e.size)return!1}catch{}let r=`${e}.old.${Date.now()}`;await F(e,r);try{await j(t,e);try{await R(r)}catch{}}catch(t){try{await F(r,e)}catch(e){let n=Error(`Failed to restore old executable: ${e}`,{cause:t});throw b(n),n}throw t}}else try{await j(t,e)}catch(e){throw g(e)?Error(`Source file does not exist: ${t}`):e}return!0}catch(n){return b(Error(`Failed to copy executable from ${t} to ${e}: ${n}`)),!1}let n=E(e);try{await M(n,{recursive:!0}),m(`Created directory ${n} for symlink`)}catch(e){return b(Error(`Failed to create directory ${n}: ${e}`)),!1}try{let n=!1;try{await L(e),n=!0}catch{}if(n){try{let n=await P(e);if(O(E(e),n)===O(t))return!1}catch{}await R(e)}}catch(e){b(Error(`Failed to check/remove existing symlink: ${e}`))}let r=`${e}.tmp.${process.pid}.${Date.now()}`;try{return await He(t,r),await F(r,e),m(`Atomically updated symlink ${e} -> ${t}`),!0}catch(n){try{await R(r)}catch{}return b(Error(`Failed to create symlink from ${e} to ${t}: ${n}`)),!1}}async function ot(e=!1){if(t(process.env.DISABLE_INSTALLATION_CHECKS))return[];let n=await Oe();if(n===`development`||!(e||n===`native`))return[];let r=G(),i=[],a=E(r.executable),o=O(a),s=U().startsWith(`win32`);try{await k(a)}catch{i.push({message:`installMethod is native, but directory ${a} does not exist`,userActionRequired:!0,type:`error`})}if(s)await K(r.executable)||i.push({message:`installMethod is native, but claude command is missing or invalid at ${r.executable}`,userActionRequired:!0,type:`error`});else try{let e=await P(r.executable);await K(O(E(r.executable),e))||i.push({message:`Work Mate symlink points to missing or invalid binary: ${e}`,userActionRequired:!0,type:`error`})}catch(e){g(e)?i.push({message:`installMethod is native, but claude command not found at ${r.executable}`,userActionRequired:!0,type:`error`}):await K(r.executable)||i.push({message:`${r.executable} exists but is not a valid Work Mate binary`,userActionRequired:!0,type:`error`})}if(!(process.env.PATH||``).split(Re).some(e=>{try{let t=O(e);return s?t.toLowerCase()===o.toLowerCase():t===o}catch{return!1}}))if(s){let e=a.replace(/\//g,`\\`);i.push({message:`Native installation exists but ${e} is not in your PATH. Add it by opening: System Properties → Environment Variables → Edit User PATH → New → Add the path above. Then restart your terminal.`,userActionRequired:!0,type:`path`})}else{let e=ye(),t=w()[e],n=t?t.replace(T(),`~`):`your shell config file`;i.push({message:`Native installation exists but ~/.local/bin is not in your PATH. Run:\n\necho 'export PATH="$HOME/.local/bin:$PATH"' >> ${n} && source ${n}`,userActionRequired:!0,type:`path`})}return i}function st(e,t=!1){if(t)return ct(e,t);if(Q)return m(`installLatest: joining in-flight call`),Q;let n=ct(e,t);Q=n;let r=()=>{Q=null};return n.then(r,r),n}async function ct(e,t=!1){let n=await rt(e,t);return n.success?(ce().installMethod!==`native`&&(ue(e=>({...e,installMethod:`native`,autoUpdates:!1,autoUpdatesProtectedForNative:!0})),m(`Native installer: Set installMethod to "native" and disabled legacy auto-updater for protection`)),X(),{latestVersion:n.latestVersion,wasUpdated:n.success,lockFailed:!1}):{latestVersion:null,wasUpdated:!1,lockFailed:n.lockFailed,lockHolderPid:n.lockHolderPid}}async function lt(e){try{let t=await P(e),n=O(E(e),t);if(await K(n))return n}catch{}return null}function J(e,t){let n=Le(t);return D(e.locks,`${n}.lock`)}async function ut(){let e=G();if(!process.execPath.includes(e.versions))return;let t=O(process.execPath);try{let n=J(e,t);if(await M(e.locks,{recursive:!0}),C()){if(!await Me(t,n)){x(`tengu_version_lock_failed`,{is_pid_based:!0,is_lifetime_lock:!0}),Y(t,Error(`Lock already held by another process`));return}x(`tengu_version_lock_acquired`,{is_pid_based:!0,is_lifetime_lock:!0}),m(`Acquired PID lock on running version: ${t}`)}else{let e;try{e=await _(t,{stale:Z,retries:0,lockfilePath:n,onCompromised:e=>{m(`NON-FATAL: Lock on running version was compromised: ${e.message}`,{level:`info`})}}),x(`tengu_version_lock_acquired`,{is_pid_based:!1,is_lifetime_lock:!0}),m(`Acquired mtime-based lock on running version: ${t}`),ne(async()=>{try{await e?.()}catch{}})}catch(e){if(g(e)){m(`Cannot lock current version - file does not exist: ${t}`,{level:`info`});return}x(`tengu_version_lock_failed`,{is_pid_based:!1,is_lifetime_lock:!0}),Y(t,e);return}}}catch(e){if(g(e)){m(`Cannot lock current version - file does not exist: ${t}`,{level:`info`});return}m(`NON-FATAL: Failed to lock current version during execution ${f(e)}`,{level:`info`})}}function Y(e,t){b(Error(`NON-FATAL: Lock acquisition failed for ${e} (expected in multi-process scenarios)`,{cause:t}))}async function dt(e){let t=J(G(),e);try{await R(t),m(`Force-removed lock file at ${t}`)}catch(e){m(`Failed to force-remove lock file: ${f(e)}`)}}async function X(){await Promise.resolve();let e=G(),t=Date.now()-36e5;if(U().startsWith(`win32`)){let t=E(e.executable);try{let e=await N(t),n=0;for(let r of e)if(/^claude\.exe\.old\.\d+$/.test(r))try{await R(D(t,r)),n++}catch{}n>0&&m(`Cleaned up ${n} old Windows executables on startup`)}catch(e){g(e)||m(`Failed to clean up old Windows executables: ${e}`)}}try{let n=await N(e.staging),r=0;for(let i of n){let n=D(e.staging,i);try{(await L(n)).mtime.getTime()<t&&(await I(n,{recursive:!0,force:!0}),r++,m(`Cleaned up old staging directory: ${i}`))}catch{}}r>0&&(m(`Cleaned up ${r} orphaned staging directories`),x(`tengu_native_staging_cleanup`,{cleaned_count:r}))}catch(e){g(e)||m(`Failed to clean up staging directories: ${e}`)}if(C()){let t=ke(e.locks);t>0&&(m(`Cleaned up ${t} stale version locks`),x(`tengu_native_stale_locks_cleanup`,{cleaned_count:t}))}let n;try{n=await N(e.versions)}catch(e){g(e)||m(`Failed to readdir versions directory: ${e}`);return}let r=[],i=0;for(let a of n){let n=D(e.versions,a);if(/\.tmp\.\d+\.\d+$/.test(a)){try{(await L(n)).mtime.getTime()<t&&(await R(n),i++,m(`Cleaned up orphaned temp install file: ${a}`))}catch{}continue}try{let e=await L(n);if(!e.isFile()||process.platform!==`win32`&&e.size>0&&!(e.mode&73))continue;r.push({name:a,path:n,resolvedPath:O(n),mtime:e.mtime})}catch{}}if(i>0&&(m(`Cleaned up ${i} orphaned temp install files`),x(`tengu_native_temp_files_cleanup`,{cleaned_count:i})),r.length!==0)try{let t=process.execPath,n=new Set;t?.includes(e.versions)&&n.add(O(t));let i=await lt(e.executable);i&&n.add(i);for(let t of r){if(n.has(t.resolvedPath))continue;let r=J(e,t.resolvedPath),i=!1;if(C())i=S(r);else try{i=await se(t.resolvedPath,{stale:Z,lockfilePath:r})}catch{i=!1}i&&(n.add(t.resolvedPath),m(`Protecting locked version from cleanup: ${t.name}`))}let a=r.filter(e=>!n.has(e.resolvedPath)).sort((e,t)=>t.mtime.getTime()-e.mtime.getTime()).slice(2);if(a.length===0){x(`tengu_native_version_cleanup`,{total_count:r.length,deleted_count:0,protected_count:n.size,retained_count:2,lock_failed_count:0,error_count:0});return}let o=0,s=0,c=0;await Promise.all(a.map(async e=>{try{await Xe(e.path,async()=>{await R(e.path)})?o++:(s++,m(`Skipping deletion of ${e.name} - locked by another process`))}catch(t){c++,b(Error(`Failed to delete version ${e.name}: ${t}`))}})),x(`tengu_native_version_cleanup`,{total_count:r.length,deleted_count:o,protected_count:n.size,retained_count:2,lock_failed_count:s,error_count:c})}catch(e){g(e)||b(Error(`Version cleanup failed: ${e}`))}}async function ft(){let e=[],t=w();for(let[n,r]of Object.entries(t))try{let t=await ge(r);if(!t)continue;let{filtered:i,hadAlias:a}=xe(t);a&&(await Fe(r,i),e.push({message:`Removed claude alias from ${r}. Run: unalias claude`,userActionRequired:!0,type:`alias`}),m(`Cleaned up claude alias from ${n} config`))}catch(t){b(t),e.push({message:`Failed to clean up ${r}: ${t}`,userActionRequired:!1,type:`error`})}return e}async function pt(e){try{let t=await y(`npm`,[`config`,`get`,`prefix`]);if(t.code!==0||!t.stdout)return{success:!1,error:`Failed to get npm global prefix`};let n=t.stdout.trim(),r=!1;async function i(e,t){try{return await R(e),m(`Manually removed ${t}: ${e}`),!0}catch{return!1}}if(U().startsWith(`win32`)){let e=D(n,`claude.cmd`),t=D(n,`claude.ps1`),a=D(n,`claude`);await i(e,`bin script`)&&(r=!0),await i(t,`PowerShell script`)&&(r=!0),await i(a,`bin executable`)&&(r=!0)}else await i(D(n,`bin`,`claude`),`bin symlink`)&&(r=!0);return r?(m(`Successfully removed ${e} manually`),{success:!0,warning:`${e} executables removed, but node_modules directory was left intact for safety. You may manually delete it later at: ${U().startsWith(`win32`)?D(n,`node_modules`,e):D(n,`lib`,`node_modules`,e)}`}):{success:!1}}catch(e){return m(`Manual removal failed: ${e}`,{level:`error`}),{success:!1,error:`Manual removal failed: ${e}`}}}async function mt(e){let{code:t,stderr:n}=await y(`npm`,[`uninstall`,`-g`,e],{cwd:process.cwd()});if(t===0)return m(`Removed global npm installation of ${e}`),{success:!0};if(n&&!n.includes(`npm ERR! code E404`)){if(n.includes(`npm error code ENOTEMPTY`)){m(`Failed to uninstall global npm package ${e}: ${n}`,{level:`error`}),m(`Attempting manual removal due to ENOTEMPTY error`);let t=await pt(e);if(t.success)return{success:!0,warning:t.warning};if(t.error)return{success:!1,error:`Failed to remove global npm installation of ${e}: ${n}. Manual removal also failed: ${t.error}`}}return m(`Failed to uninstall global npm package ${e}: ${n}`,{level:`error`}),{success:!1,error:`Failed to remove global npm installation of ${e}: ${n}`}}return{success:!1}}async function ht(){let e=[],t=[],n=0,r=await mt(`@anthropic-ai/workmate`);r.success?(n++,r.warning&&t.push(r.warning)):r.error&&e.push(r.error);let i=D(T(),`.workmate`,`local`);try{await I(i,{recursive:!0}),n++,m(`Removed local installation at ${i}`)}catch(t){g(t)||(e.push(`Failed to remove ${i}: ${t}`),m(`Failed to remove local installation: ${t}`,{level:`error`}))}return{removed:n,errors:e,warnings:t}}var Z,Q,$=e((()=>{pe(),Pe(),ee(),le(),h(),Te(),oe(),r(),n(),d(),v(),_e(),de(),fe(),s(),ve(),he(),Ae(),Ye(),Ee(),Z=10080*60*1e3,Q=null})),gt=e((()=>{$()}));export{ft as a,ut as c,X as i,ot as n,$ as o,ht as r,st as s,gt as t};
@@ -1 +0,0 @@
1
- import{n as e,o as t}from"./rolldown-runtime-DaDcL9Zw.js";import{Ap as n,Dp as r,kp as i}from"./loadAgentsDir-C1LkW7gl.js";import{ai as a}from"./src-DL3w8VPk.js";function o(){let e=i(),t=n(),r=(0,c.useCallback)(()=>{t(e=>{let n=s(e.notifications.queue);return e.notifications.current!==null||!n?e:(u=setTimeout((e,t,n)=>{u=null,e(e=>e.notifications.current?.key===t?{...e,notifications:{queue:e.notifications.queue,current:null}}:e),n()},n.timeoutMs??l,t,n.key,r),{...e,notifications:{queue:e.notifications.queue.filter(e=>e!==n),current:n}})})},[t]),a=(0,c.useCallback)(e=>{if(e.priority===`immediate`){u&&(clearTimeout(u),u=null),u=setTimeout((e,t,n)=>{u=null,e(e=>e.notifications.current?.key===t.key?{...e,notifications:{queue:e.notifications.queue.filter(e=>!t.invalidates?.includes(e.key)),current:null}}:e),n()},e.timeoutMs??l,t,e,r),t(t=>({...t,notifications:{current:e,queue:[...t.notifications.current?[t.notifications.current]:[],...t.notifications.queue].filter(t=>t.priority!==`immediate`&&!e.invalidates?.includes(t.key))}}));return}t(n=>{if(e.fold){if(n.notifications.current?.key===e.key){let i=e.fold(n.notifications.current,e);return u&&(clearTimeout(u),u=null),u=setTimeout((e,t,n)=>{u=null,e(e=>e.notifications.current?.key===t?{...e,notifications:{queue:e.notifications.queue,current:null}}:e),n()},i.timeoutMs??l,t,i.key,r),{...n,notifications:{current:i,queue:n.notifications.queue}}}let i=n.notifications.queue.findIndex(t=>t.key===e.key);if(i!==-1){let t=e.fold(n.notifications.queue[i],e),r=[...n.notifications.queue];return r[i]=t,{...n,notifications:{current:n.notifications.current,queue:r}}}}if(!(!new Set(n.notifications.queue.map(e=>e.key)).has(e.key)&&n.notifications.current?.key!==e.key))return n;let i=n.notifications.current!==null&&e.invalidates?.includes(n.notifications.current.key);return i&&u&&(clearTimeout(u),u=null),{...n,notifications:{current:i?null:n.notifications.current,queue:[...n.notifications.queue.filter(t=>t.priority!==`immediate`&&!e.invalidates?.includes(t.key)),e]}}}),r()},[t,r]),o=(0,c.useCallback)(e=>{t(t=>{let n=t.notifications.current?.key===e,r=t.notifications.queue.some(t=>t.key===e);return!n&&!r?t:(n&&u&&(clearTimeout(u),u=null),{...t,notifications:{current:n?null:t.notifications.current,queue:t.notifications.queue.filter(t=>t.key!==e)}})}),r()},[t,r]);return(0,c.useEffect)(()=>{e.getState().notifications.queue.length>0&&r()},[]),{addNotification:a,removeNotification:o}}function s(e){if(e.length!==0)return e.reduce((e,t)=>d[t.priority]<d[e.priority]?t:e)}var c,l,u,d,f=e((()=>{c=t(a(),1),r(),l=8e3,u=null,d={immediate:0,high:1,medium:2,low:3}}));export{o as n,f as t};
@@ -1 +0,0 @@
1
- import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{a as t,o as n}from"./isObject-C6qM3WEW.js";import{CT as r,ST as i,fw as a,pw as o,vw as s,yw as c}from"./loadAgentsDir-C1LkW7gl.js";import{$r as l,Cr as u,_r as d,br as f,di as p,ei as m,fi as h,gr as g,hr as _,li as v,ui as y,vr as b,wr as x,yr as S}from"./state-BowF111d.js";import{$n as C,Qn as w,Zn as T,er as E,nr as D,tr as O,vi as k,yi as A}from"./settings-DKN4xSpQ.js";import{F as j,I as M}from"./config-BddEvZZl.js";function N(e){return y(e)||m(e)||!!(P&&e&&e[P])}var P,F=e((()=>{n(),l(),v(),P=t?t.isConcatSpreadable:void 0}));function I(e,t,n,r,i){var a=-1,o=e.length;for(n||(n=N),i||(i=[]);++a<o;){var s=e[a];t>0&&n(s)?t>1?I(s,t-1,n,r,i):p(i,s):r||(i[i.length]=s)}return i}var L=e((()=>{h(),F()}));function R(e){return e!=null&&e.length?I(e,1):[]}var z=e((()=>{L()}));function B(e){return w(E(e,void 0,R),e+``)}var V=e((()=>{z(),C(),T()}));function H(e,t){return t.length<2?e:_(e,s(t,0,-1))}var U=e((()=>{g(),c()}));function W(e,t){t=S(t,e);var n=-1,r=t.length;if(!r)return!0;for(;++n<r;){var i=b(t[n]);if(i===`__proto__`&&!G.call(e,`__proto__`)||(i===`constructor`||i===`prototype`)&&n<r-1)return!1}var a=H(e,t);return a==null||delete a[b(o(t))]}var G,K=e((()=>{f(),a(),U(),d(),G=Object.prototype.hasOwnProperty}));function q(e){return D(e)?void 0:e}var J=e((()=>{O()})),Y,X,Z,Q,$=e((()=>{x(),r(),K(),f(),A(),J(),V(),M(),Y=1,X=2,Z=4,Q=B(function(e,t){var n={};if(e==null)return n;var r=!1;t=u(t,function(t){return t=S(t,e),r||(r=t.length>1),t}),k(e,j(e),n),r&&(n=i(n,Y|X|Z,q));for(var a=t.length;a--;)W(n,t[a]);return n})}));export{Q as n,$ as t};
@@ -1 +0,0 @@
1
- import{o as e}from"./rolldown-runtime-DaDcL9Zw.js";import{Al as t,Ol as n,jl as r}from"./loadAgentsDir-C1LkW7gl.js";import{ai as i}from"./src-DL3w8VPk.js";import{t as a}from"./jsx-runtime-Bb4Xn-E0.js";import{wn as o,zt as s}from"./state-BowF111d.js";import{H as c,L as l}from"./debug-8DCufdSp.js";import{Rt as u,jt as d}from"./settings-DKN4xSpQ.js";import{_ as f,c as p,m,v as h}from"./config-BddEvZZl.js";import{o as g,s as _}from"./log-DaILwWJa.js";import{St as v,it as y,nt as b,rt as x}from"./model-BwBE0Pt5.js";import{r as S,t as C}from"./managedEnv-lybrMred.js";var w=e(i(),1);m();var T=a();function E(e,t){let n=t/100*(e.length-1),r=Math.floor(n),i=Math.ceil(n);return r===i?e[r]:e[r]+(e[i]-e[r])*(n-r)}var D=1024;function O(){let e=new Map,t=new Map,n=new Map;return{increment(t,n=1){e.set(t,(e.get(t)??0)+n)},set(t,n){e.set(t,n)},observe(e,n){let r=t.get(e);if(r||(r={reservoir:[],count:0,sum:0,min:n,max:n},t.set(e,r)),r.count++,r.sum+=n,n<r.min&&(r.min=n),n>r.max&&(r.max=n),r.reservoir.length<D)r.reservoir.push(n);else{let e=Math.floor(Math.random()*r.count);e<D&&(r.reservoir[e]=n)}},add(e,t){let r=n.get(e);r||(r=new Set,n.set(e,r)),r.add(t)},getAll(){let r=Object.fromEntries(e);for(let[e,n]of t){if(n.count===0)continue;r[`${e}_count`]=n.count,r[`${e}_min`]=n.min,r[`${e}_max`]=n.max,r[`${e}_avg`]=n.sum/n.count;let t=[...n.reservoir].sort((e,t)=>e-t);r[`${e}_p50`]=E(t,50),r[`${e}_p95`]=E(t,95),r[`${e}_p99`]=E(t,99)}for(let[e,t]of n)r[e]=t.size;return r}}}var k=(0,w.createContext)(null);function A({store:e,children:t}){let n=(0,w.useMemo)(()=>O(),[]),r=e??n;return(0,w.useEffect)(()=>{let e=()=>{let e=r.getAll();Object.keys(e).length>0&&f(t=>({...t,lastSessionMetrics:e}))};return process.on(`exit`,e),()=>{process.off(`exit`,e)}},[r]),(0,T.jsx)(k.Provider,{value:r,children:t})}s(),v(),m(),l(),g(),S(),d(),n();function j({newState:e,oldState:n}){let i=n.toolPermissionContext.mode,a=e.toolPermissionContext.mode;if(i!==a){let e=u(i),n=u(a);e!==n&&r({permission_mode:n}),t(a)}if(e.mainLoopModel!==n.mainLoopModel&&o(e.mainLoopModel),e.expandedView!==n.expandedView){let t=e.expandedView===`tasks`;p().showExpandedTodos!==t&&h(e=>({...e,showExpandedTodos:t}))}if(e.verbose!==n.verbose&&p().verbose!==e.verbose){let t=e.verbose;h(e=>({...e,verbose:t}))}if(e.settings!==n.settings)try{b(),x(),y(),e.settings.env!==n.settings.env&&C()}catch(e){_(c(e))}}export{A as n,O as r,j as t};
@@ -1,10 +0,0 @@
1
- import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{c as t,l as n,o as r}from"./envUtils-DcaKZlRU.js";import{HS as i,NS as a,PC as o,Zi as s,ch as c,da as l,fC as u,hC as d,it as ee,lC as f,lh as p,o_ as m,pC as h,pa as te,tt as g,uC as ne,u_ as _,uh as v}from"./loadAgentsDir-C1LkW7gl.js";import{c as y,i as b}from"./debug-8DCufdSp.js";import{A as re,N as x,gn as S,pn as ie}from"./model-BwBE0Pt5.js";import{_n as C,bn as w,i as T,r as E,t as D,vn as O}from"./prompt-BGqgPgCU.js";import{n as ae,r as k}from"./client-DdenNfkQ.js";import{n as oe,t as A}from"./openaiShared-G2-w4gJt.js";import{homedir as j}from"os";import{join as M}from"path";import{randomUUID as N}from"crypto";import{chmod as se,mkdir as ce,readFile as P,writeFile as F}from"fs/promises";function I(){return M(L(),J)}function L(){return(process.env.WORKMATE_CONFIG_DIR??M(j(),`.workmate`)).normalize(`NFC`)}function R(){return M(process.env.CODEX_HOME??M(process.env.HOME??``,`.codex`),`auth.json`)}function z(e){return typeof e==`string`&&e.length>0?e:void 0}function B(e){try{let t=JSON.parse(e);return t&&typeof t==`object`?t:null}catch{return null}}function V(e){let[,t]=e.split(`.`);if(!t)return null;try{let e=t.replace(/-/g,`+`).replace(/_/g,`/`),n=e.padEnd(e.length+(4-e.length%4)%4,`=`);return B(Buffer.from(n,`base64`).toString(`utf8`))}catch{return null}}function H(e){let t=V(e),n=t?.[`https://api.openai.com/auth`];return n&&typeof n==`object`?n:t??{}}function U(e){let t=V(e)?.exp;return typeof t==`number`?t*1e3:null}function W(e){if(e.accountId)return e.accountId;for(let t of[e.idToken,e.accessToken]){if(!t)continue;let e=H(t),n=z(e.chatgpt_account_id)??z(e.chatgpt_account_user_id)??z(e.account_id);if(n)return n}}async function G(e){try{let t=await P(e,`utf8`),n=JSON.parse(t),r=n.tokens,i=r?.id_token,a=r?.access_token,o=r?.refresh_token;return!i||!a||!o?null:{idToken:i,accessToken:a,refreshToken:o,accountId:W({idToken:i,accessToken:a,accountId:r.account_id}),lastRefresh:n.last_refresh}}catch{return null}}async function le(e){let t=I();await ce(L(),{recursive:!0});let n={auth_mode:`chatgpt`,tokens:{id_token:e.idToken,access_token:e.accessToken,refresh_token:e.refreshToken,account_id:W(e)},last_refresh:new Date().toISOString()};await F(t,`${JSON.stringify(n,null,2)}\n`,{mode:384}),await se(t,384).catch(()=>void 0)}async function ue(e,t){let n=await fetch(e,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:t});if(!n.ok){let e=await n.text().catch(()=>``);throw Error(`ChatGPT token request failed (${n.status})${e?`: ${e}`:``}`)}return await n.json()}async function de(e){let t=new URLSearchParams({grant_type:`refresh_token`,refresh_token:e.refreshToken,client_id:q,scope:`openid profile email offline_access api.connectors.read api.connectors.invoke`}),n=await ue(`${K}/oauth/token`,t);return{idToken:n.id_token,accessToken:n.access_token,refreshToken:n.refresh_token??e.refreshToken,accountId:W({idToken:n.id_token,accessToken:n.access_token,accountId:e.accountId})}}function fe(){return process.env.OPENAI_AUTH_MODE===`chatgpt`}async function pe(){let e=await G(I());if(e||(e=await G(R()),e&&y(`[OpenAI] Using ChatGPT auth from Codex auth.json`)),!e)throw Error(`ChatGPT account is not logged in.`);let t=U(e.accessToken);return t!==null&&t<=Date.now()+Y&&(e=await de(e),await le(e)),{accessToken:e.accessToken,accountId:e.accountId??W(e)}}var K,q,J,Y,X=e((()=>{b(),K=`https://auth.openai.com`,q=`app_EMoamEEZ73f0CkXaXp7hrann`,J=`openai-chatgpt-auth.json`,Y=300*1e3}));function Z(e){return typeof e==`string`?e:Array.isArray(e)?e.map(e=>{if(!e||typeof e!=`object`)return``;let t=e;return typeof t.text==`string`?t.text:``}).filter(Boolean).join(`
2
- `):``}function me(e){if(typeof e==`string`)return e;if(!Array.isArray(e))return Z(e);let t=[];for(let n of e){if(!n||typeof n!=`object`)continue;let e=n;if(e.type===`text`&&typeof e.text==`string`)t.push({type:`input_text`,text:e.text});else if(e.type===`image_url`){let n=e.image_url;typeof n?.url==`string`&&t.push({type:`input_image`,image_url:n.url})}}return t.length>0?t:Z(e)}function he(e){let t=[],n=[];for(let r of e){if(!r||typeof r!=`object`)continue;let e=r,i=e.role;if(i===`system`||i===`developer`){let t=Z(e.content);t&&n.push(t);continue}if(i===`tool`){let n=e.tool_call_id;typeof n==`string`&&t.push({type:`function_call_output`,call_id:n,output:Z(e.content)});continue}if(i===`assistant`){let n=Z(e.content);n&&t.push({role:`assistant`,content:n});let r=e.tool_calls;if(Array.isArray(r))for(let e of r){if(!e||typeof e!=`object`)continue;let n=e,r=n.function,i=typeof n.id==`string`?n.id:void 0,a=typeof r?.name==`string`?r.name:void 0;!i||!a||t.push({type:`function_call`,call_id:i,name:a,arguments:typeof r?.arguments==`string`?r.arguments:`{}`})}continue}i===`user`&&t.push({role:`user`,content:me(e.content)})}return{input:t,instructions:n.length>0?n.join(`
3
-
4
- `):void 0}}function ge(e){let t=[];for(let n of e){if(!n||typeof n!=`object`)continue;let e=n.function,r=typeof e?.name==`string`?e.name:void 0;r&&t.push({type:`function`,name:r,description:typeof e?.description==`string`?e.description:``,parameters:e?.parameters&&typeof e.parameters==`object`?e.parameters:{type:`object`,properties:{}},strict:!1})}return t}function _e(e){if(e===`required`)return`required`;if(e===`auto`)return`auto`;if(!e||typeof e!=`object`)return e;let t=e,n=t.function;return t.type===`function`&&typeof n?.name==`string`?{type:`function`,name:n.name}:e}function ve(e){let{input:t,instructions:n}=he(e.messages),r=ge(e.tools);return{model:e.model,stream:!0,store:!1,input:t,...n?{instructions:n}:{},...r.length>0?{tools:r}:{},...e.toolChoice?{tool_choice:_e(e.toolChoice)}:{},parallel_tool_calls:!0}}async function*ye(e){if(!e.body)throw Error(`ChatGPT response did not include a body`);let t=e.body.getReader(),n=new TextDecoder,r=``;for(;;){let{done:e,value:i}=await t.read();if(e)break;r+=n.decode(i,{stream:!0});let a=r.indexOf(`
5
-
6
- `);for(;a>=0;){let e=r.slice(0,a);r=r.slice(a+2);let t=e.split(/\r?\n/).filter(e=>e.startsWith(`data:`)).map(e=>e.slice(5).trimStart()).join(`
7
- `);if(t&&t!==`[DONE]`){let e=JSON.parse(t);e&&typeof e==`object`&&(yield e)}a=r.indexOf(`
8
-
9
- `)}}}function be(e){let t=e?.usage,n=t?.input_tokens_details;return{input_tokens:typeof t?.input_tokens==`number`?t.input_tokens:0,output_tokens:typeof t?.output_tokens==`number`?t.output_tokens:0,cache_creation_input_tokens:0,cache_read_input_tokens:typeof n?.cached_tokens==`number`?n.cached_tokens:0}}function xe(e){return e?.status===`incomplete`?`max_tokens`:`end_turn`}async function*Q(e,t){let n=`msg_${N().replace(/-/g,``).slice(0,24)}`,r=new Map,i=!1,a=-1,o=!1,s=!1,c=async function*(){i||(i=!0,yield{type:`message_start`,message:{id:n,type:`message`,role:`assistant`,content:[],model:t,stop_reason:null,stop_sequence:null,usage:{input_tokens:0,output_tokens:0,cache_creation_input_tokens:0,cache_read_input_tokens:0}}})};for await(let t of e){for await(let e of c())yield e;let e=t.type;if(e===`response.output_text.delta`){o||(s&&(yield{type:`content_block_stop`,index:a},s=!1),a++,o=!0,yield{type:`content_block_start`,index:a,content_block:{type:`text`,text:``}}),yield{type:`content_block_delta`,index:a,delta:{type:`text_delta`,text:String(t.delta??``)}};continue}if(e===`response.reasoning_text.delta`){s||(o&&(yield{type:`content_block_stop`,index:a},o=!1),a++,s=!0,yield{type:`content_block_start`,index:a,content_block:{type:`thinking`,thinking:``,signature:``}}),yield{type:`content_block_delta`,index:a,delta:{type:`thinking_delta`,thinking:String(t.delta??``)}};continue}if(e===`response.output_item.added`){let e=t.item,n=typeof t.output_index==`number`?t.output_index:-1;if(e?.type===`function_call`&&n>=0){o&&(yield{type:`content_block_stop`,index:a},o=!1),s&&(yield{type:`content_block_stop`,index:a},s=!1),a++;let t=String(e.call_id??e.id??`call_${n}`),i=String(e.name??``);r.set(n,{contentIndex:a,open:!0,name:i,id:t}),yield{type:`content_block_start`,index:a,content_block:{type:`tool_use`,id:t,name:i,input:{}}}}continue}if(e===`response.function_call_arguments.delta`){let e=typeof t.output_index==`number`?t.output_index:-1,n=r.get(e);n&&(yield{type:`content_block_delta`,index:n.contentIndex,delta:{type:`input_json_delta`,partial_json:String(t.delta??``)}});continue}if(e===`response.output_item.done`){let e=typeof t.output_index==`number`?t.output_index:-1,n=r.get(e);n?.open&&(yield{type:`content_block_stop`,index:n.contentIndex},n.open=!1);continue}if(e===`response.error`){let e=t.error;throw Error(String(e?.message??`ChatGPT Responses API error`))}if(e===`response.failed`){let e=t.response?.error;throw Error(String(e?.message??`ChatGPT Responses API failed`))}if(e===`response.completed`||e===`response.incomplete`){o&&(yield{type:`content_block_stop`,index:a},o=!1),s&&(yield{type:`content_block_stop`,index:a},s=!1);let e=t.response;yield{type:`message_delta`,delta:{stop_reason:xe(e),stop_sequence:null},usage:be(e)},yield{type:`message_stop`}}}}async function Se(e){let t=await pe(),n=e.fetchOverride??globalThis.fetch,r={Authorization:`Bearer ${t.accessToken}`,"Content-Type":`application/json`,Accept:`text/event-stream`,"OpenAI-Beta":`responses=experimental`,Origin:`https://chatgpt.com`,Referer:`https://chatgpt.com/`,originator:`workmate`};t.accountId&&(r[`ChatGPT-Account-Id`]=t.accountId);let i=await n(`https://chatgpt.com/backend-api/codex/responses`,{method:`POST`,headers:r,body:JSON.stringify(e.request),signal:e.signal});if(!i.ok){let e=await i.text().catch(()=>``);throw Error(`ChatGPT Responses API request failed (${i.status})${e?`: ${e.slice(0,500)}`:``}`)}return ye(i)}var Ce=e((()=>{X()}));function we(e){if(t(process.env.OPENAI_ENABLE_THINKING))return!1;if(n(process.env.OPENAI_ENABLE_THINKING))return!0;let r=e.toLowerCase();return r.includes(`deepseek`)||r.includes(`mimo`)}function Te(e,t){return t??(process.env.OPENAI_MAX_TOKENS&&parseInt(process.env.OPENAI_MAX_TOKENS,10)||void 0)??(process.env.CLAUDE_CODE_MAX_OUTPUT_TOKENS&&parseInt(process.env.CLAUDE_CODE_MAX_OUTPUT_TOKENS,10)||void 0)??e}function Ee(e){let{model:t,messages:n,tools:r,toolChoice:i,enableThinking:a,maxTokens:o,temperatureOverride:s}=e;return{model:t,messages:n,max_tokens:o,...r.length>0&&{tools:r,...i&&{tool_choice:i}},stream:!0,stream_options:{include_usage:!0},...a&&{thinking:{type:`enabled`},enable_thinking:!0,chat_template_kwargs:{thinking:!0,enable_thinking:!0}},...!a&&s!==void 0&&{temperature:s}}}var De=e((()=>{r()}));function Oe(e,t,n,r){if(!r||p())return e;let a=t.filter(e=>n.has(e.name)).map(D).sort().join(`
10
- `);return a?[i({content:`<available-deferred-tools>\n${a}\n</available-deferred-tools>`,isMeta:!0}),...e]:e}function ke(e){return e.type===`assistant`||e.type===`user`}function $(e){let{partialMessage:t,contentBlocks:n,tools:r,agentId:i,usage:o,stopReason:s,maxTokens:c}=e,u=[],d=Object.keys(n).sort((e,t)=>Number(e)-Number(t)).map(e=>n[Number(e)]).filter(Boolean);return d.length>0&&t&&u.push({message:{...t,content:l(d,r,i),usage:o,stop_reason:s,stop_sequence:null},requestId:void 0,type:`assistant`,uuid:N(),timestamp:new Date().toISOString()}),s===`max_tokens`&&u.push(a({content:`Output truncated: response exceeded the ${c} token limit. Set OPENAI_MAX_TOKENS or CLAUDE_CODE_MAX_OUTPUT_TOKENS to override.`,apiError:`max_output_tokens`,error:`max_output_tokens`})),u}async function*Ae(e,t,n,r,i){try{let a=o(i.model),s=te(e,n),c=await v(i.model,n,i.getToolPermissionContext||(async()=>C()),i.agents||[],i.querySource),l=new Set;if(c)for(let e of n)T(e)&&l.add(e.name);let f=n;c&&l.size>0&&(f=n.filter(e=>!!(!l.has(e.name)||w(e,`SearchExtraTools`))));let p=(await Promise.all(f.map(e=>ee(e,{getToolPermissionContext:i.getToolPermissionContext,tools:n,agents:i.agents,allowedAgentTypes:i.allowedAgentTypes,model:i.model,deferLoading:c&&l.has(e.name)})))).filter(e=>{let t=e;return t.type!==`advisor_20260301`&&t.type!==`computer_20250124`}),g=we(a),_=d(Oe(s.filter(ke),n,l,c),t,{enableThinking:g}),b=h(p),x=u(i.toolChoice);if(c){let e=f.filter(e=>l.has(e.name)).length;y(`[OpenAI] Tool search enabled: ${e}/${l.size} deferred tools included, total tools=${b.length}`)}else y(`[OpenAI] Tool search disabled, total tools=${b.length}`);let{upperLimit:S}=ie(a),E=Te(S,i.maxOutputTokensOverride);y(`[OpenAI] Calling model=${a}, messages=${_.length}, tools=${b.length}, thinking=${g}`);let D=fe()?Q(await Se({request:ve({model:a,messages:_,tools:b,toolChoice:x}),signal:r,fetchOverride:i.fetchOverride}),a):ne(await ae({maxRetries:0,fetchOverride:i.fetchOverride,source:i.querySource}).chat.completions.create(Ee({model:a,messages:_,tools:b,toolChoice:x,enableThinking:g,maxTokens:E,temperatureOverride:i.temperatureOverride}),{signal:r}),a),O={},k=null,A=null,j={input_tokens:0,output_tokens:0,cache_creation_input_tokens:0,cache_read_input_tokens:0},M=0,N=Date.now();for await(let e of D){switch(e.type){case`message_start`:k=e.message,M=Date.now()-N,e.message.usage&&(j={...j,...e.message.usage});break;case`content_block_start`:{let t=e.index,n=e.content_block;n.type===`tool_use`?O[t]={...n,input:``}:n.type===`text`?O[t]={...n,text:``}:n.type===`thinking`?O[t]={...n,thinking:``,signature:``}:O[t]={...n};break}case`content_block_delta`:{let t=e.index,n=e.delta,r=O[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`:break;case`message_delta`:{let t=e.usage;t&&(j=oe(j,t)),e.delta.stop_reason!=null&&(A=e.delta.stop_reason);break}case`message_stop`:if(k){for(let e of $({partialMessage:k,contentBlocks:O,tools:n,agentId:i.agentId,usage:j,stopReason:A,maxTokens:E}))yield e;k=null}j.input_tokens+j.output_tokens>0&&m(re(a,j),j,i.model);break}yield{type:`stream_event`,event:e,...e.type===`message_start`?{ttftMs:M}:void 0}}if(k)for(let e of $({partialMessage:k,contentBlocks:O,tools:n,agentId:i.agentId,usage:j,stopReason:A,maxTokens:E}))yield e}catch(e){let t=e instanceof Error?e.message:String(e);y(`[OpenAI] Error: ${t}`,{level:`error`}),yield a({content:`API Error: ${t}`,apiError:`api_error`,error:e instanceof Error?e:Error(String(e))})}}e((()=>{k(),A(),f(),X(),Ce(),s(),g(),O(),b(),_(),x(),De(),S(),c(),E()}))();export{Ae as queryModelOpenAI};
@@ -1 +0,0 @@
1
- import{i as e,r as t}from"./parser-D8slvrJP.js";t();export{e as parseCommand};
@@ -1 +0,0 @@
1
- import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{hw as t,mw as n}from"./loadAgentsDir-C1LkW7gl.js";import{dr as r,fr as i,li as a,ui as o}from"./state-BowF111d.js";function s(e,t,n,r){for(var i=-1,a=e==null?0:e.length;++i<a;){var o=e[i];t(r,o,n(o),e)}return r}var c=e((()=>{}));function l(e,t,r,i){return n(e,function(e,n,a){t(i,e,r(e),a)}),i}var u=e((()=>{t()}));function d(e,t){return function(n,i){var a=o(n)?s:l,c=t?t():{};return a(n,e,r(i,2),c)}}var f=e((()=>{c(),u(),i(),a()})),p,m=e((()=>{f(),p=d(function(e,t,n){e[+!n].push(t)},function(){return[[],[]]})}));export{p as n,m as t};
@@ -1,3 +0,0 @@
1
- import{n as e,o as t}from"./rolldown-runtime-DaDcL9Zw.js";import{n,t as r}from"./figures-5ThXQEtq.js";import{Ap as i,Dp as a,H as o,I as s,KC as c,L as l,LS as u,Op as d,R as ee,Ub as f,V as p,YC as te,Yb as m,Zi as ne,_m as re,bf as h,bm as g,xm as ie,yf as _,z as ae}from"./loadAgentsDir-C1LkW7gl.js";import{I as v,P as y,Wt as oe,Xn as se,a as b,ai as x,di as S,fi as C,hn as w,k as T,kt as E,n as D,o as O,ot as k,r as ce,s as A,t as j,x as le,y as M}from"./src-DL3w8VPk.js";import{t as N}from"./jsx-runtime-Bb4Xn-E0.js";import{Z as ue,zt as P}from"./state-BowF111d.js";import{C as F,x as de}from"./debug-8DCufdSp.js";import{B as fe,R as I,V as L,a as R,h as pe,hn as z,ln as me}from"./settings-DKN4xSpQ.js";import{l as B,o as he}from"./stringUtils-BQm3OfeJ.js";import{n as ge,t as _e}from"./TextInput-7uqPhq9T.js";import{n as ve,t as ye}from"./useExitOnCtrlCDWithKeybindings-CjW3gUOt.js";import{n as V,t as H}from"./select-C_KXmqbI.js";import{n as be,t as xe}from"./AddWorkspaceDirectory-DWgTWJ7R.js";import{t as Se}from"./SearchBox-C9xxQzh1.js";import{n as Ce,t as we}from"./useSearchInput-C2JuUW3g.js";import{n as Te,t as Ee}from"./shadowedRuleDetection-Df-kZ_pK.js";function De(){return U}var U,Oe=e((()=>{U=[]}));function ke({ruleValue:e}){switch(e.toolName){case _.name:return e.ruleContent?e.ruleContent.endsWith(`:*`)?(0,W.jsxs)(y,{dimColor:!0,children:[`Any Bash command starting with `,(0,W.jsx)(y,{bold:!0,children:e.ruleContent.slice(0,-2)})]}):(0,W.jsxs)(y,{dimColor:!0,children:[`The Bash command `,(0,W.jsx)(y,{bold:!0,children:e.ruleContent})]}):(0,W.jsx)(y,{dimColor:!0,children:`Any Bash command`});default:return e.ruleContent?null:(0,W.jsxs)(y,{dimColor:!0,children:[`Any use of the `,(0,W.jsx)(y,{bold:!0,children:e.toolName}),` tool`]})}}var W,Ae=e((()=>{j(),h(),W=N()}));function je(e){switch(e){case`localSettings`:return{label:`Project settings (local)`,description:`Saved in ${R(`localSettings`)}`,value:e};case`projectSettings`:return{label:`Project settings`,description:`Checked in at ${R(`projectSettings`)}`,value:e};case`userSettings`:return{label:`User settings`,description:`Saved in at ~/.workmate/settings.json`,value:e}}}function Me({onAddRules:e,onCancel:t,ruleValues:n,ruleBehavior:r,initialContext:i,setToolPermissionContext:a}){let o=me.map(je),s=(0,Ne.useCallback)(o=>{if(o===`cancel`){t();return}else if(me.includes(o)){let t=o,s=re(i,{type:`addRules`,rules:n,behavior:r,destination:t});ie({type:`addRules`,rules:n,behavior:r,destination:t}),a(s);let l=n.map(e=>({ruleValue:e,ruleBehavior:r,source:t})),u=Ee(s,{sandboxAutoAllowEnabled:c.isSandboxingEnabled()&&c.isAutoAllowBashIfSandboxedEnabled()}).filter(e=>n.some(t=>t.toolName===e.rule.ruleValue.toolName&&t.ruleContent===e.rule.ruleValue.ruleContent));e(l,u.length>0?u:void 0)}},[e,t,n,r,i,a]);return(0,G.jsxs)(M,{title:`Add ${r} permission ${B(n.length,`rule`)}`,onCancel:t,color:`permission`,children:[(0,G.jsx)(v,{flexDirection:`column`,paddingX:2,children:n.map(e=>(0,G.jsxs)(v,{flexDirection:`column`,children:[(0,G.jsx)(y,{bold:!0,children:L(e)}),(0,G.jsx)(ke,{ruleValue:e})]},L(e)))}),(0,G.jsxs)(v,{flexDirection:`column`,marginY:1,children:[(0,G.jsx)(y,{children:n.length===1?`Where should this rule be saved?`:`Where should these rules be saved?`}),(0,G.jsx)(H,{options:o,onChange:s})]})]})}var Ne,G,Pe=e((()=>{Ne=t(x(),1),V(),j(),g(),I(),Te(),te(),z(),pe(),he(),Ae(),G=N()}));function Fe({onCancel:e,onSubmit:t,ruleBehavior:n}){let[i,a]=(0,Ie.useState)(``),[o,s]=(0,Ie.useState)(0),c=ve();oe(`confirm:no`,e,{context:`Settings`});let{columns:l}=k(),u=l-6;return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(v,{flexDirection:`column`,gap:1,borderStyle:`round`,paddingLeft:1,paddingRight:1,borderColor:`permission`,children:[(0,K.jsxs)(y,{bold:!0,color:`permission`,children:[`Add `,n,` permission rule`]}),(0,K.jsxs)(v,{flexDirection:`column`,children:[(0,K.jsxs)(y,{children:[`Permission rules are a tool name, optionally followed by a specifier in parentheses.`,(0,K.jsx)(E,{}),`e.g., `,(0,K.jsx)(y,{bold:!0,children:L({toolName:_.name})}),(0,K.jsx)(y,{bold:!1,children:` or `}),(0,K.jsx)(y,{bold:!0,children:L({toolName:_.name,ruleContent:`ls:*`})})]}),(0,K.jsx)(v,{borderDimColor:!0,borderStyle:`round`,marginY:1,paddingLeft:1,children:(0,K.jsx)(_e,{showCursor:!0,value:i,onChange:a,onSubmit:e=>{let r=e.trim();r.length!==0&&t(fe(r),n)},placeholder:`Enter permission rule${r.ellipsis}`,columns:u,cursorOffset:o,onChangeCursorOffset:s})})]})]}),(0,K.jsx)(v,{marginLeft:3,children:c.pending?(0,K.jsxs)(y,{dimColor:!0,children:[`Press `,c.keyName,` again to exit`]}):(0,K.jsx)(y,{dimColor:!0,children:`Enter to submit · Esc to cancel`})})]})}var Ie,K,Le=e((()=>{n(),Ie=t(x(),1),ge(),ye(),m(),j(),f(),h(),I(),K=N()}));function Re({onHeaderFocusChange:e,onStateChange:t}){let{headerFocused:n,focusHeader:r}=b();(0,q.useEffect)(()=>{e?.(n)},[n,e]);let[i]=(0,q.useState)(()=>De()),[a,o]=(0,q.useState)(()=>new Set),[s,c]=(0,q.useState)(()=>new Set),[l,u]=(0,q.useState)(0);(0,q.useEffect)(()=>{t({approved:a,retry:s,denials:i})},[a,s,i,t]);let d=(0,q.useCallback)(e=>{let t=Number(e);o(e=>{let n=new Set(e);return n.has(t)?n.delete(t):n.add(t),n})},[]),ee=(0,q.useCallback)(e=>{u(Number(e))},[]);if(w((e,t)=>{e===`r`&&(c(e=>{let t=new Set(e);return t.has(l)?t.delete(l):t.add(l),t}),o(e=>{if(e.has(l))return e;let t=new Set(e);return t.add(l),t}))},{isActive:i.length>0}),i.length===0)return(0,J.jsx)(y,{dimColor:!0,children:`No recent denials. Commands denied by the auto mode classifier will appear here.`});let f=i.map((e,t)=>{let n=a.has(t),r=s.has(t)?` (retry)`:``;return{label:(0,J.jsxs)(y,{children:[(0,J.jsx)(A,{status:n?`success`:`error`,withSpace:!0}),e.display,(0,J.jsx)(y,{dimColor:!0,children:r})]}),value:String(t)}});return(0,J.jsxs)(v,{flexDirection:`column`,children:[(0,J.jsx)(y,{children:`Commands recently denied by the auto mode classifier.`}),(0,J.jsx)(v,{marginTop:1,children:(0,J.jsx)(H,{options:f,onChange:d,onFocus:ee,visibleOptionCount:Math.min(10,f.length),isDisabled:n,onUpFromFirstItem:r})})]})}var q,J,ze=e((()=>{q=t(x(),1),j(),Oe(),V(),J=N()}));function Be({directoryPath:e,onRemove:t,onCancel:n,permissionContext:r,setPermissionContext:i}){let a=(0,Ve.useCallback)(()=>{i(re(r,{type:`removeDirectories`,directories:[e],destination:`session`})),t()},[e,r,i,t]),o=(0,Ve.useCallback)(e=>{e===`yes`?a():n()},[a,n]);return(0,Y.jsxs)(M,{title:`Remove directory from workspace?`,onCancel:n,color:`error`,children:[(0,Y.jsx)(v,{marginX:2,flexDirection:`column`,children:(0,Y.jsx)(y,{bold:!0,children:e})}),(0,Y.jsx)(y,{children:`Work Mate will no longer have access to files in this directory.`}),(0,Y.jsx)(H,{onChange:o,onCancel:n,options:[{label:`Yes`,value:`yes`},{label:`No`,value:`no`}]})]})}var Ve,Y,He=e((()=>{Ve=t(x(),1),V(),j(),g(),Y=N()}));function Ue({onExit:e,toolPermissionContext:t,onRequestAddDirectory:n,onRequestRemoveDirectory:i,onHeaderFocusChange:a}){let{headerFocused:o,focusHeader:s}=b();(0,X.useEffect)(()=>{a?.(o)},[o,a]);let c=We.useMemo(()=>Array.from(t.additionalWorkingDirectories.keys()).map(e=>({path:e,isCurrent:!1,isDeletable:!0})),[t.additionalWorkingDirectories]),l=(0,X.useCallback)(e=>{if(e===`add-directory`){n();return}let t=c.find(t=>t.path===e);t?.isDeletable&&i(t.path)},[c,n,i]),u=(0,X.useCallback)(()=>e(`Workspace dialog dismissed`,{display:`system`}),[e]),d=We.useMemo(()=>{let e=c.map(e=>({label:e.path,value:e.path}));return e.push({label:`Add directory${r.ellipsis}`,value:`add-directory`}),e},[c]);return(0,Z.jsxs)(v,{flexDirection:`column`,marginBottom:1,children:[(0,Z.jsxs)(v,{flexDirection:`row`,marginTop:1,marginLeft:2,gap:1,children:[(0,Z.jsx)(y,{children:`- ${ue()}`}),(0,Z.jsx)(y,{dimColor:!0,children:`(Original working directory)`})]}),(0,Z.jsx)(H,{options:d,onChange:l,onCancel:u,visibleOptionCount:Math.min(10,d.length),onUpFromFirstItem:s,isDisabled:o})]})}var We,X,Z,Ge=e((()=>{n(),We=t(x(),1),X=t(x(),1),P(),V(),j(),Z=N()}));function Ke({rule:e}){return(0,$.jsx)(y,{dimColor:!0,children:`From ${o(e.source)}`})}function qe(e){switch(e){case`allow`:return`allowed`;case`deny`:return`denied`;case`ask`:return`ask`}}function Je({rule:e,onDelete:t,onCancel:n}){let r=ve();oe(`confirm:no`,n,{context:`Confirmation`});let i=(0,$.jsxs)(v,{flexDirection:`column`,marginX:2,children:[(0,$.jsx)(y,{bold:!0,children:L(e.ruleValue)}),(0,$.jsx)(ke,{ruleValue:e.ruleValue}),(0,$.jsx)(Ke,{rule:e})]}),a=(0,$.jsx)(v,{marginLeft:3,children:r.pending?(0,$.jsxs)(y,{dimColor:!0,children:[`Press `,r.keyName,` again to exit`]}):(0,$.jsx)(y,{dimColor:!0,children:`Esc to cancel`})});return e.source===`policySettings`?(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(v,{flexDirection:`column`,gap:1,borderStyle:`round`,paddingLeft:1,paddingRight:1,borderColor:`permission`,children:[(0,$.jsx)(y,{bold:!0,color:`permission`,children:`Rule details`}),i,(0,$.jsxs)(y,{italic:!0,children:[`This rule is configured by managed settings and cannot be modified.`,`
2
- `,`Contact your system administrator for more information.`]})]}),a]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(v,{flexDirection:`column`,gap:1,borderStyle:`round`,paddingLeft:1,paddingRight:1,borderColor:`error`,children:[(0,$.jsxs)(y,{bold:!0,color:`error`,children:[`Delete `,qe(e.ruleBehavior),` tool?`]}),i,(0,$.jsx)(y,{children:`Are you sure you want to delete this permission rule?`}),(0,$.jsx)(H,{onChange:e=>e===`yes`?t():n(),onCancel:n,options:[{label:`Yes`,value:`yes`},{label:`No`,value:`no`}]})]}),a]})}function Ye(e){let{options:t,searchQuery:n,isSearchMode:r,isFocused:i,onSelect:a,onCancel:o,lastFocusedRuleKey:s,cursorOffset:c,onHeaderFocusChange:l}=e,u=O(),{headerFocused:d,focusHeader:ee,blurHeader:f}=b();return(0,Q.useEffect)(()=>{r&&d&&f()},[r,d,f]),(0,Q.useEffect)(()=>{l?.(d)},[d,l]),(0,$.jsxs)(v,{flexDirection:`column`,children:[(0,$.jsx)(v,{marginBottom:1,flexDirection:`column`,children:(0,$.jsx)(T,{query:n,isFocused:r&&!d,isTerminalFocused:i,width:u,cursorOffset:c})}),(0,$.jsx)(H,{options:t,onChange:a,onCancel:o,visibleOptionCount:Math.min(10,t.length),isDisabled:r||d,defaultFocusValue:s,onUpFromFirstItem:ee})]})}function Xe({tab:e,getRulesOptions:t,handleToolSelect:n,...r}){return(0,$.jsxs)(v,{flexDirection:`column`,flexShrink:e===`allow`?0:void 0,children:[(0,$.jsx)(y,{children:{allow:`Work Mate won't ask before using allowed tools.`,ask:`Work Mate will always ask for confirmation before using these tools.`,deny:`Work Mate will always reject requests to use denied tools.`}[e]}),(0,$.jsx)(Ye,{options:t(e,r.searchQuery).options,onSelect:t=>n(t,e),...r})]})}function Ze({onExit:e,initialTab:t,onRetryDenials:n}){let a=De().length>0,o=t??(a?`recent`:`allow`),[c,u]=(0,Q.useState)([]),f=d(e=>e.toolPermissionContext),p=i(),te=se(),m=(0,Q.useRef)({approved:new Set,retry:new Set,denials:[]}),ne=(0,Q.useCallback)(e=>{m.current=e},[]),[h,g]=(0,Q.useState)(),[_,b]=(0,Q.useState)(),[x,C]=(0,Q.useState)(null),[w,T]=(0,Q.useState)(null),[E,O]=(0,Q.useState)(!1),[k,A]=(0,Q.useState)(null),[j,M]=(0,Q.useState)(!1),[N,ue]=(0,Q.useState)(!0),P=(0,Q.useCallback)(e=>{ue(e)},[]),de=(0,Q.useMemo)(()=>{let e=new Map;return l(f).forEach(t=>{e.set(F(t),t)}),e},[f]),fe=(0,Q.useMemo)(()=>{let e=new Map;return ae(f).forEach(t=>{e.set(F(t),t)}),e},[f]),I=(0,Q.useMemo)(()=>{let e=new Map;return ee(f).forEach(t=>{e.set(F(t),t)}),e},[f]),R=(0,Q.useCallback)((e,t=``)=>{let n=(()=>{switch(e){case`allow`:return de;case`deny`:return fe;case`ask`:return I;case`workspace`:case`recent`:return new Map}})(),i=[];e!==`workspace`&&e!==`recent`&&!t&&i.push({label:`Add a new rule${r.ellipsis}`,value:`add-new-rule`});let a=Array.from(n.keys()).sort((e,t)=>{let r=n.get(e),i=n.get(t);if(r&&i){let e=L(r.ruleValue).toLowerCase(),t=L(i.ruleValue).toLowerCase();return e.localeCompare(t)}return 0}),o=t.toLowerCase();for(let e of a){let r=n.get(e);if(r){let n=L(r.ruleValue);if(t&&!n.toLowerCase().includes(o))continue;i.push({label:n,value:e})}}return{options:i,rulesByKey:n}},[de,fe,I]),pe=ve(),z=!h&&!x&&!w&&!E&&!k,{query:me,setQuery:B,cursorOffset:he}=Ce({isActive:z&&j,onExit:()=>{M(!1)}}),ge=(0,Q.useCallback)(e=>{z&&(j||e.ctrl||e.meta||(e.key===`/`?(e.preventDefault(),M(!0),B(``)):e.key.length===1&&e.key!==`j`&&e.key!==`k`&&e.key!==`m`&&e.key!==`i`&&e.key!==`r`&&e.key!==` `&&(e.preventDefault(),M(!0),B(e.key))))},[z,j,B]),_e=(0,Q.useCallback)((e,t)=>{let{rulesByKey:n}=R(t);if(e===`add-new-rule`){C(t);return}else{g(n.get(e));return}},[R]),ye=(0,Q.useCallback)(()=>{C(null)},[]),V=(0,Q.useCallback)((e,t)=>{T({ruleValue:e,ruleBehavior:t}),C(null)},[]),H=(0,Q.useCallback)((e,t)=>{T(null);for(let t of e)u(e=>[...e,`Added ${t.ruleBehavior} rule ${S.bold(L(t.ruleValue))}`]);if(t&&t.length>0)for(let e of t){let t=e.shadowType===`deny`?`blocked`:`shadowed`;u(n=>[...n,S.yellow(`${r.warning} Warning: ${L(e.rule.ruleValue)} is ${t}`),S.dim(` ${e.reason}`),S.dim(` Fix: ${e.fix}`)])}},[]),be=(0,Q.useCallback)(()=>{T(null)},[]),Se=(0,Q.useCallback)(()=>O(!0),[]),we=(0,Q.useCallback)(e=>A(e),[]),Te=(0,Q.useCallback)(()=>{let t=m.current,r=e=>Array.from(e).map(e=>t.denials[e]).filter(e=>e!==void 0),i=r(t.retry);if(i.length>0){let t=i.map(e=>e.display);n?.(t),e(void 0,{shouldQuery:!0,metaMessages:[`Permission granted for: ${t.join(`, `)}. You may now retry ${t.length===1?`this command`:`these commands`} if you would like.`]});return}let a=r(t.approved);a.length>0||c.length>0?e([...a.length>0?[`Approved ${a.map(e=>S.bold(e.display)).join(`, `)}`]:[],...c].join(`
3
- `)):e(`Permissions dialog dismissed`,{display:`system`})},[c,e,n]);oe(`confirm:no`,Te,{context:`Settings`,isActive:z&&!j});let Ee=()=>{if(!h)return;let{options:e}=R(h.ruleBehavior),t=F(h),n=e.filter(e=>e.value!==`add-new-rule`).map(e=>e.value),r=n.indexOf(t),i;r!==-1&&(r<n.length-1?i=n[r+1]:r>0&&(i=n[r-1])),b(i),s({rule:h,initialContext:f,setToolPermissionContext(e){p(t=>({...t,toolPermissionContext:e}))}}),u(e=>[...e,`Deleted ${h.ruleBehavior} rule ${S.bold(L(h.ruleValue))}`]),g(void 0)};if(h)return(0,$.jsx)(Je,{rule:h,onDelete:Ee,onCancel:()=>g(void 0)});if(x&&x!==`workspace`&&x!==`recent`)return(0,$.jsx)(Fe,{onCancel:ye,onSubmit:V,ruleBehavior:x});if(w)return(0,$.jsx)(Me,{onAddRules:H,onCancel:be,ruleValues:[w.ruleValue],ruleBehavior:w.ruleBehavior,initialContext:f,setToolPermissionContext:e=>{p(t=>({...t,toolPermissionContext:e}))}});if(E)return(0,$.jsx)(xe,{onAddDirectory:(e,t)=>{let n={type:`addDirectories`,directories:[e],destination:t?`localSettings`:`session`},r=re(f,n);p(e=>({...e,toolPermissionContext:r})),t&&ie(n),u(n=>[...n,`Added directory ${S.bold(e)} to workspace${t?` and saved to local settings`:` for this session`}`]),O(!1)},onCancel:()=>O(!1),permissionContext:f});if(k)return(0,$.jsx)(Be,{directoryPath:k,onRemove:()=>{u(e=>[...e,`Removed directory ${S.bold(k)} from workspace`]),A(null)},onCancel:()=>A(null),permissionContext:f,setPermissionContext:e=>{p(t=>({...t,toolPermissionContext:e}))}});let U={searchQuery:me,isSearchMode:j,isFocused:te,onCancel:Te,lastFocusedRuleKey:_,cursorOffset:he,getRulesOptions:R,handleToolSelect:_e,onHeaderFocusChange:P};return(0,$.jsx)(v,{flexDirection:`column`,onKeyDown:ge,children:(0,$.jsxs)(le,{color:`permission`,children:[(0,$.jsxs)(ce,{title:`Permissions:`,color:`permission`,defaultTab:o,hidden:!!h||!!x||!!w||E||!!k,initialHeaderFocused:!a,navFromContent:!j,children:[(0,$.jsx)(D,{id:`recent`,title:`Recently denied`,children:(0,$.jsx)(Re,{onHeaderFocusChange:P,onStateChange:ne})}),(0,$.jsx)(D,{id:`allow`,title:`Allow`,children:(0,$.jsx)(Xe,{tab:`allow`,...U})}),(0,$.jsx)(D,{id:`ask`,title:`Ask`,children:(0,$.jsx)(Xe,{tab:`ask`,...U})}),(0,$.jsx)(D,{id:`deny`,title:`Deny`,children:(0,$.jsx)(Xe,{tab:`deny`,...U})}),(0,$.jsx)(D,{id:`workspace`,title:`Workspace`,children:(0,$.jsxs)(v,{flexDirection:`column`,children:[(0,$.jsx)(y,{children:`Work Mate can read files in the workspace, and make edits when auto-accept edits is on.`}),(0,$.jsx)(Ue,{onExit:e,toolPermissionContext:f,onRequestAddDirectory:Se,onRequestRemoveDirectory:we,onHeaderFocusChange:P})]})})]}),(0,$.jsx)(v,{marginTop:1,paddingLeft:1,children:(0,$.jsx)(y,{dimColor:!0,children:pe.pending?(0,$.jsxs)($.Fragment,{children:[`Press `,pe.keyName,` again to exit`]}):N?(0,$.jsx)($.Fragment,{children:`←/→ tab switch · ↓ return · Esc cancel`}):j?(0,$.jsx)($.Fragment,{children:`Type to filter · Enter/↓ select · ↑ tabs · Esc clear`}):a&&o===`recent`?(0,$.jsx)($.Fragment,{children:`Enter approve · r retry · ↑↓ navigate · ←/→ switch · Esc cancel`}):(0,$.jsx)($.Fragment,{children:`↑↓ navigate · Enter select · Type to search · ←/→ switch · Esc cancel`})})})]})})}var Q,$,Qe=e((()=>{C(),n(),Q=t(x(),1),a(),g(),V(),ye(),we(),j(),f(),Oe(),I(),p(),de(),Se(),Pe(),be(),Ae(),Le(),ze(),He(),Ge(),$=N()})),$e,et;e((()=>{Qe(),ne(),$e=N(),et=async(e,t)=>(0,$e.jsx)(Ze,{onExit:e,onRetryDenials:e=>{t.setMessages(t=>[...t,u(e)])}})}))();export{et as call};
@@ -1,3 +0,0 @@
1
- import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{n as t,t as n}from"./memoize-BK3gG5ob.js";import{c as r,i,l as a,o}from"./envUtils-DcaKZlRU.js";import{KC as s,Qw as c,YC as ee,Zw as te,vi as ne}from"./loadAgentsDir-C1LkW7gl.js";import{n as re}from"./cwd-BcO6WHKo.js";import{B as ie,C as ae,D as oe,H as se,L as l,S as ce,T as le,c as u,f as d,i as f,u as p,x as m,z as ue}from"./debug-8DCufdSp.js";import{N as de,Wt as fe,h as pe,in as me,j as h,nn as he,qt as ge,t as _e}from"./settings-DKN4xSpQ.js";import{a as g,c as _,i as ve,m as v}from"./config-BddEvZZl.js";import{a as ye,i as y,n as b,s as be,t as x}from"./execFileNoThrow-BsfuytkN.js";import{o as S,s as C}from"./log-DaILwWJa.js";import{_ as xe,h as w,m as Se,v as T}from"./stringUtils-BQm3OfeJ.js";import{i as E,o as Ce}from"./platform-Dzff1WWw.js";import{a as we,i as Te}from"./ripgrep-BuzOTf1S.js";import{i as Ee,r as De}from"./genericProcessUtils-BYi0OefF.js";import{homedir as D}from"os";import{basename as Oe,delimiter as ke,join as O,posix as k,win32 as A}from"path";import{constants as Ae}from"fs";import{access as je,open as Me,readFile as j,realpath as Ne,stat as Pe}from"fs/promises";function Fe(){return O(i(),`local`)}function Ie(){return O(Fe(),`claude`)}function Le(){return(process.argv[1]||``).includes(`/.workmate/local/node_modules/`)}async function M(){try{return await je(O(Fe(),`node_modules`,`.bin`,`claude`)),!0}catch{return!1}}function N(){let e=process.env.SHELL||``;return e.includes(`zsh`)?`zsh`:e.includes(`bash`)?`bash`:e.includes(`fish`)?`fish`:`unknown`}var P=e((()=>{v(),o(),l(),y(),d(),S(),m()}));function F(e){let t=e?.homedir??D();return{zsh:O((e?.env??process.env).ZDOTDIR||t,`.zshrc`),bash:O(t,`.bashrc`),fish:O(t,`.config/fish/config.fish`)}}function Re(e){let t=!1;return{filtered:e.filter(e=>{if(R.test(e)){let n=e.match(/alias\s+claude\s*=\s*["']([^"']+)["']/);if(n||(n=e.match(/alias\s+claude\s*=\s*([^#\n]+)/)),n?.[1]&&n[1].trim()===Ie())return t=!0,!1}return!0}),hadAlias:t}}async function I(e){try{return(await j(e,{encoding:`utf8`})).split(`
2
- `)}catch(e){if(ie(e))return null;throw e}}async function ze(e,t){let n=await Me(e,`w`);try{await n.writeFile(t.join(`
3
- `),{encoding:`utf8`}),await n.datasync()}finally{await n.close()}}async function L(e){let t=F(e);for(let e of Object.values(t)){let t=await I(e);if(t){for(let e of t)if(R.test(e)){let t=e.match(/alias\s+claude=["']?([^"'\s]+)/);if(t?.[1])return t[1]}}}return null}async function Be(e){let t=await L(e);if(!t)return null;let n=e?.homedir??D(),r=t.startsWith(`~`)?t.replace(`~`,n):t;try{let e=await Pe(r);if(e.isFile()||e.isSymbolicLink())return t}catch{}return null}var R,z=e((()=>{l(),P(),R=/^\s*alias\s+claude\s*=/}));async function Ve(){}function He(e){let t=_e()?.minimumVersion;if(!t)return!1;let n=!te(e,t);return n&&u(`Skipping update to ${e} - below minimumVersion ${t}`),n}async function Ue(){let e=fe.isRunningWithBun(),t=null;return t=e?await b(`bun`,[`pm`,`bin`,`-g`],{cwd:D()}):await b(`npm`,[`-g`,`config`,`get`,`prefix`],{cwd:D()}),t.code===0?t.stdout.trim():(C(Error(`Failed to check ${e?`bun`:`npm`} permissions`)),null)}async function We(){try{let e=await Ue();if(!e)return{hasPermissions:!1,npmPrefix:null};try{return await je(e,Ae.W_OK),{hasPermissions:!0,npmPrefix:e}}catch{return C(new B(`Insufficient permissions for global npm install.`)),{hasPermissions:!1,npmPrefix:e}}}catch(e){return C(e),{hasPermissions:!1,npmPrefix:null}}}var B,Ge=e((()=>{v(),f(),ge(),o(),l(),y(),d(),ne(),S(),c(),pe(),z(),B=class extends oe{}}));function V(e,t){return t.includes(e.id)||e.idLike.some(e=>t.includes(e))}function Ke(){let e=process.execPath||process.argv[0]||``;return/[/\\]mise[/\\]installs[/\\]/i.test(e)?(u(`Detected mise installation: ${e}`),!0):!1}function qe(){let e=process.execPath||process.argv[0]||``;return/[/\\]\.?asdf[/\\]installs[/\\]/i.test(e)?(u(`Detected asdf installation: ${e}`),!0):!1}function H(){let e=E();if(e!==`macos`&&e!==`linux`&&e!==`wsl`)return!1;let t=process.execPath||process.argv[0]||``;return t.includes(`/Caskroom/`)?(u(`Detected Homebrew cask installation: ${t}`),!0):!1}function Je(){if(E()!==`windows`)return!1;let e=process.execPath||process.argv[0]||``;for(let t of[/Microsoft[/\\]WinGet[/\\]Packages/i,/Microsoft[/\\]WinGet[/\\]Links/i])if(t.test(e))return u(`Detected winget installation: ${e}`),!0;return!1}var U,W,G,K,q,Ye,Xe=e((()=>{n(),f(),y(),Ce(),U=t(async()=>{try{let e=await j(`/etc/os-release`,`utf8`),t=e.match(/^ID=["']?(\S+?)["']?\s*$/m),n=e.match(/^ID_LIKE=["']?(.+?)["']?\s*$/m);return{id:t?.[1]??``,idLike:n?.[1]?.split(` `)??[]}}catch{return null}}),W=t(async()=>{if(E()!==`linux`)return!1;let e=await U();if(e&&!V(e,[`arch`]))return!1;let t=await x(`pacman`,[`-Qo`,process.execPath||process.argv[0]||``],{timeout:5e3,useCwd:!1});return t.code===0&&t.stdout?(u(`Detected pacman installation: ${t.stdout.trim()}`),!0):!1}),G=t(async()=>{if(E()!==`linux`)return!1;let e=await U();if(e&&!V(e,[`debian`]))return!1;let t=await x(`dpkg`,[`-S`,process.execPath||process.argv[0]||``],{timeout:5e3,useCwd:!1});return t.code===0&&t.stdout?(u(`Detected deb installation: ${t.stdout.trim()}`),!0):!1}),K=t(async()=>{if(E()!==`linux`)return!1;let e=await U();if(e&&!V(e,[`fedora`,`rhel`,`suse`]))return!1;let t=await x(`rpm`,[`-qf`,process.execPath||process.argv[0]||``],{timeout:5e3,useCwd:!1});return t.code===0&&t.stdout?(u(`Detected rpm installation: ${t.stdout.trim()}`),!0):!1}),q=t(async()=>{if(E()!==`linux`)return!1;let e=await U();if(e&&!V(e,[`alpine`]))return!1;let t=await x(`apk`,[`info`,`--who-owns`,process.execPath||process.argv[0]||``],{timeout:5e3,useCwd:!1});return t.code===0&&t.stdout?(u(`Detected apk installation: ${t.stdout.trim()}`),!0):!1}),Ye=t(async()=>H()?`homebrew`:Je()?`winget`:Ke()?`mise`:qe()?`asdf`:await W()?`pacman`:await q()?`apk`:await G()?`deb`:await K()?`rpm`:`unknown`)}));function Ze(){let e=process.argv[1]||``,t=process.execPath||process.argv[0]||``;return E()===`windows`&&(e=e.split(A.sep).join(k.sep),t=t.split(A.sep).join(k.sep)),[e,t]}async function Qe(){let[e]=Ze();if(w())return H()||Je()||Ke()||qe()||await W()||await G()||await K()||await q()?`package-manager`:`native`;if(Le())return`npm-local`;if([`/usr/local/lib/node_modules`,`/usr/lib/node_modules`,`/opt/homebrew/lib/node_modules`,`/opt/homebrew/bin`,`/usr/local/bin`,`/.nvm/versions/node/`].some(t=>e.includes(t))||e.includes(`/npm/`)||e.includes(`/nvm/`))return`npm-global`;let t=await ye(`npm config get prefix`,{shell:!0,reject:!1}),n=t.exitCode===0?t.stdout.trim():null;return n&&e.startsWith(n)?`npm-global`:`unknown`}async function $e(){if(w()){try{return await Ne(process.execPath)}catch{}try{let e=await T(`claude`);if(e)return e}catch{}try{return await p().stat(O(D(),`.local/bin/claude`)),O(D(),`.local/bin/claude`)}catch{}return`native`}try{return process.argv[0]||`unknown`}catch{return`unknown`}}function et(){try{return w()?process.execPath||`unknown`:process.argv[1]||`unknown`}catch{return`unknown`}}async function tt(){let e=p(),t=[],n=O(D(),`.workmate`,`local`);await M()&&t.push({type:`npm-local`,path:n});let r=[`@anthropic-ai/workmate`],i=await x(`npm`,[`-g`,`config`,`get`,`prefix`]);if(i.code===0&&i.stdout){let n=i.stdout.trim(),a=E()===`windows`,o=a?O(n,`claude`):O(n,`bin`,`claude`),s=!1;try{await e.stat(o),s=!0}catch{}if(s){let e=!1;try{(await Ne(o)).includes(`/Caskroom/`)&&(e=H())}catch{}e||t.push({type:`npm-global`,path:o})}else for(let i of r){let r=a?O(n,`node_modules`,i):O(n,`lib`,`node_modules`,i);try{await e.stat(r),t.push({type:`npm-global-orphan`,path:r})}catch{}}}let a=O(D(),`.local`,`bin`,`claude`);try{await e.stat(a),t.push({type:`native`,path:a})}catch{}if(_().installMethod===`native`){let n=O(D(),`.local`,`share`,`claude`);try{await e.stat(n),t.some(e=>e.type===`native`)||t.push({type:`native`,path:n})}catch{}}return t}async function nt(e){let t=[];try{let e=ce(await j(O(he(),`managed-settings.json`),`utf-8`)),n=e&&typeof e==`object`?e.strictPluginOnlyCustomization:void 0;if(n!==void 0&&typeof n!=`boolean`)if(!Array.isArray(n))t.push({issue:`managed-settings.json: strictPluginOnlyCustomization has an invalid value (expected true or an array, got ${typeof n})`,fix:`The field is silently ignored (schema .catch rescues it). Set it to true, or an array of: ${h.join(`, `)}.`});else{let e=n.filter(e=>typeof e==`string`&&!h.includes(e));e.length>0&&t.push({issue:`managed-settings.json: strictPluginOnlyCustomization has ${e.length} value(s) this client doesn't recognize: ${e.map(String).join(`, `)}`,fix:`These are silently ignored (forwards-compat). Known surfaces for this version: ${h.join(`, `)}. Either remove them, or this client is older than the managed-settings intended.`})}}catch{}let n=_();if(e===`development`)return t;if(e===`native`){let e=(process.env.PATH||``).split(ke),n=O(D(),`.local`,`bin`),r=n;if(E()===`windows`&&(r=n.split(A.sep).join(k.sep)),!e.some(e=>{let t=e;E()===`windows`&&(t=e.split(A.sep).join(k.sep));let n=t.replace(/\/+$/,``),i=e.replace(/[/\\]+$/,``);return n===r||i===`~/.local/bin`||i===`$HOME/.local/bin`}))if(E()===`windows`){let e=n.split(k.sep).join(A.sep);t.push({issue:`Native installation exists but ${e} is not in your PATH`,fix:`Add it by opening: System Properties → Environment Variables → Edit User PATH → New → Add the path above. Then restart your terminal.`})}else{let e=N(),n=F()[e],r=n?n.replace(D(),`~`):`your shell config file`;t.push({issue:`Native installation exists but ~/.local/bin is not in your PATH`,fix:`Run: echo 'export PATH="$HOME/.local/bin:$PATH"' >> ${r} then open a new terminal or run: source ${r}`})}}a(process.env.DISABLE_INSTALLATION_CHECKS)||(e===`npm-local`&&n.installMethod!==`local`&&t.push({issue:`Running from local installation but config install method is '${n.installMethod}'`,fix:`Consider using native installation: claude install`}),e===`native`&&n.installMethod!==`native`&&t.push({issue:`Running native installation but config install method is '${n.installMethod}'`,fix:`Run claude install to update configuration`})),e===`npm-global`&&await M()&&t.push({issue:`Local installation exists but not being used`,fix:`Consider using native installation: claude install`});let r=await L(),i=await Be();return e===`npm-local`&&!await T(`claude`)&&!i&&(r?t.push({issue:`Local installation not accessible`,fix:`Alias exists but points to invalid target: ${r}. Update alias: alias claude="~/.workmate/local/claude"`}):t.push({issue:`Local installation not accessible`,fix:`Create alias: alias claude="~/.workmate/local/claude"`})),t}function rt(){if(E()!==`linux`)return[];let e=[],t=s.getLinuxGlobPatternWarnings();if(t.length>0){let n=t.slice(0,3).join(`, `),r=t.length-3,i=r>0?`${n} (${r} more)`:n;e.push({issue:`Glob patterns in sandbox permission rules are not fully supported on Linux`,fix:`Found ${t.length} pattern(s): ${i}. On Linux, glob patterns in Edit/Read rules will be ignored.`})}return e}async function it(){let e=await Qe(),t=typeof MACRO<`u`?`0.0.22`:`unknown`,n=await $e(),r=et(),i=await tt(),a=await nt(e);if(a.push(...rt()),e===`native`){let e=i.filter(e=>e.type===`npm-global`||e.type===`npm-global-orphan`||e.type===`npm-local`),t=E()===`windows`;for(let n of e)n.type===`npm-global`?a.push({issue:`Leftover npm global installation at ${n.path}`,fix:`Run: npm -g uninstall @anthropic-ai/workmate`}):n.type===`npm-global-orphan`?a.push({issue:`Orphaned npm global package at ${n.path}`,fix:t?`Run: rmdir /s /q "${n.path}"`:`Run: rm -rf ${n.path}`}):n.type===`npm-local`&&a.push({issue:`Leftover npm local installation at ${n.path}`,fix:t?`Run: rmdir /s /q "${n.path}"`:`Run: rm -rf ${n.path}`})}let o=_().installMethod||`not set`,s=null;e===`npm-global`&&(s=(await We()).hasPermissions,!s&&!g()&&a.push({issue:`Insufficient permissions for auto-updates`,fix:"Do one of: (1) Re-install node without sudo, or (2) Use `claude install` for native installation"}));let c=Te(),ee={working:c.working??!0,mode:c.mode,systemPath:c.mode===`system`?c.path:null,note:c.note??null},te=e===`package-manager`?await Ye():void 0;return{installationType:e,version:t,installationPath:n,invokedBinary:r,configInstallMethod:o,autoUpdates:(()=>{let e=g();return e?`disabled (${ve(e)})`:`enabled`})(),hasUpdatePermissions:s,multipleInstallations:i,warnings:a,packageManager:te,ripgrepStatus:ee}}var at=e((()=>{be(),Ge(),Se(),v(),re(),o(),y(),d(),P(),Xe(),Ce(),we(),ee(),me(),de(),z(),m(),xe()}));function J(e){return{env:e?.env??process.env,home:e?.homedir??process.env.HOME??D()}}function Y(e,...t){return e.includes(`/`)&&!e.includes(`\\`)&&!/^[A-Za-z]:/.test(e)?k.join(e,...t):O(e,...t)}function ot(e){let{env:t,home:n}=J(e);return t.XDG_STATE_HOME??Y(n,`.local`,`state`)}function st(e){let{env:t,home:n}=J(e);return t.XDG_CACHE_HOME??Y(n,`.cache`)}function ct(e){let{env:t,home:n}=J(e);return t.XDG_DATA_HOME??Y(n,`.local`,`share`)}function lt(e){let{home:t}=J(e);return Y(t,`.local`,`bin`)}var ut=e((()=>{}));function dt(){let e=process.env.ENABLE_PID_BASED_VERSION_LOCKING;return a(e)?!0:(r(e),!1)}function X(e){if(e<=1)return!1;try{return process.kill(e,0),!0}catch{return!1}}function ft(e,t){if(!X(e))return!1;if(e===process.pid)return!0;try{let n=De(e);if(!n)return!0;let r=n.toLowerCase(),i=t.toLowerCase();return r.includes(`claude`)||r.includes(i)}catch{return!0}}function Z(e){let t=p();try{let n=t.readFileSync(e,{encoding:`utf8`});if(!n||n.trim()===``)return null;let r=ce(n);return typeof r.pid!=`number`||!r.version||!r.execPath?null:r}catch{return null}}function Q(e){let t=Z(e);if(!t)return!1;let{pid:n,execPath:r}=t;if(!X(n))return!1;if(!ft(n,r))return u(`Lock PID ${n} is running but does not appear to be Work Mate - treating as stale`),!1;let i=p();try{let t=i.statSync(e);if(Date.now()-t.mtimeMs>$&&!X(n))return!1}catch{}return!0}function pt(e,t){let n=p(),r=`${e}.tmp.${process.pid}.${Date.now()}`;try{le(r,ae(t,null,2),{encoding:`utf8`,flush:!0}),n.renameSync(r,e)}catch(e){try{n.unlinkSync(r)}catch{}throw e}}async function mt(e,t){let n=p(),r=Oe(e);if(Q(t))return u(`Cannot acquire lock for ${r} - held by PID ${Z(t)?.pid}`),null;let i={pid:process.pid,version:r,execPath:process.execPath,acquiredAt:Date.now()};try{return pt(t,i),Z(t)?.pid===process.pid?(u(`Acquired PID lock for ${r} (PID ${process.pid})`),()=>{try{Z(t)?.pid===process.pid&&(n.unlinkSync(t),u(`Released PID lock for ${r}`))}catch(e){u(`Failed to release lock for ${r}: ${e}`)}}):null}catch(e){return u(`Failed to acquire lock for ${r}: ${e}`),null}}async function ht(e,t){let n=await mt(e,t);if(!n)return!1;let r=()=>{try{n()}catch{}};return process.on(`exit`,r),process.on(`SIGINT`,r),process.on(`SIGTERM`,r),!0}async function gt(e,t,n){let r=await mt(e,t);if(!r)return!1;try{return await n(),!0}finally{r()}}function _t(e){let t=p(),n=[];try{let r=t.readdirStringSync(e).filter(e=>e.endsWith(`.lock`));for(let t of r){let r=O(e,t),i=Z(r);i&&n.push({version:i.version,pid:i.pid,isProcessRunning:X(i.pid),execPath:i.execPath,acquiredAt:new Date(i.acquiredAt),lockFilePath:r})}}catch(e){if(ue(e))return n;C(se(e))}return n}function vt(e){let t=p(),n=0;try{let r=t.readdirStringSync(e).filter(e=>e.endsWith(`.lock`));for(let i of r){let r=O(e,i);try{t.lstatSync(r).isDirectory()?(t.rmSync(r,{recursive:!0,force:!0}),n++,u(`Cleaned up legacy directory lock: ${i}`)):Q(r)||(t.unlinkSync(r),n++,u(`Cleaned up stale lock: ${i}`))}catch{}}}catch(e){if(ue(e))return 0;C(se(e))}return n}var $,yt=e((()=>{f(),o(),l(),d(),Ee(),S(),m(),$=7200*1e3}));export{I as C,P as E,z as S,N as T,Ve as _,Q as a,Re as b,gt as c,ct as d,ot as f,at as g,it as h,yt as i,lt as l,Qe as m,vt as n,dt as o,ut as p,_t as r,Z as s,ht as t,st as u,Ge as v,ze as w,F as x,He as y};