@readmagic/workmate 0.0.16 → 0.0.17

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 (247) hide show
  1. package/dist/chunks/{AddWorkspaceDirectory-DAtfMH4o.js → AddWorkspaceDirectory-YAhnVwyN.js} +1 -1
  2. package/dist/chunks/AgentsMdExternalIncludesDialog--D4BeNAN.js +1 -0
  3. package/dist/chunks/{AgentsMdExternalIncludesDialog-BTYgjY5c.js → AgentsMdExternalIncludesDialog-Ba4GYFl3.js} +1 -1
  4. package/dist/chunks/{App-HF0bvxi_.js → App-mri25OrC.js} +1 -1
  5. package/dist/chunks/{ApproveApiKey-BBFLw2B7.js → ApproveApiKey-DCw6d7dm.js} +1 -1
  6. package/dist/chunks/ApproveApiKey-lv4Sg0RR.js +1 -0
  7. package/dist/chunks/{BackgroundTasksDialog-Coc0ecUd.js → BackgroundTasksDialog-CZND8e_Z.js} +1 -1
  8. package/dist/chunks/{BypassPermissionsModeDialog--Gx9ARd4.js → BypassPermissionsModeDialog-B5QBJTB4.js} +1 -1
  9. package/dist/chunks/{DiffDialog-tlINuFS1.js → DiffDialog-Bd-DcTsK.js} +1 -1
  10. package/dist/chunks/{Doctor-Wh7z6CnF.js → Doctor-C9t7udHN.js} +1 -1
  11. package/dist/chunks/Doctor-V-JLC4e3.js +1 -0
  12. package/dist/chunks/{ExitFlow-B1zHTqQt.js → ExitFlow-CShdrKmr.js} +1 -1
  13. package/dist/chunks/{Grove-1Kf7xxIV.js → Grove-CClEZT2e.js} +1 -1
  14. package/dist/chunks/{HybridTransport-DWqWUZCH.js → HybridTransport-DyEuslQB.js} +1 -1
  15. package/dist/chunks/{InvalidConfigDialog-OZPFQSnC.js → InvalidConfigDialog-Wyrk_cXR.js} +1 -1
  16. package/dist/chunks/{InvalidSettingsDialog-BNCm-eyC.js → InvalidSettingsDialog-Cr9fmSyh.js} +1 -1
  17. package/dist/chunks/{MCPConnectionManager-7H84oi5n.js → MCPConnectionManager-BnUw0nYN.js} +1 -1
  18. package/dist/chunks/{MCPToolListView-CVgtg3Iq.js → MCPToolListView-CY2EezWF.js} +1 -1
  19. package/dist/chunks/{McpParsingWarnings-CN8f449l.js → McpParsingWarnings-BF4np2Y3.js} +1 -1
  20. package/dist/chunks/{MessageSelector-B9j6zZ5w.js → MessageSelector-Dtt2Sf65.js} +1 -1
  21. package/dist/chunks/{Messages-yz1m39eI.js → Messages-D5Uuapmf.js} +1 -1
  22. package/dist/chunks/{Onboarding-bFbgae8m.js → Onboarding-BAJXV7Ay.js} +1 -1
  23. package/dist/chunks/{PromptInputFooterSuggestions-CE_yVun1.js → PromptInputFooterSuggestions-Cm4WN3qd.js} +1 -1
  24. package/dist/chunks/{PromptInputHelpMenu-TPWuGwAy.js → PromptInputHelpMenu-ESj8sOpK.js} +1 -1
  25. package/dist/chunks/{QueryEngine-CRobcENE.js → QueryEngine-B79JLwG4.js} +1 -1
  26. package/dist/chunks/REPL-B7evbhvN.js +1 -0
  27. package/dist/chunks/{REPL-C33mMf_q.js → REPL-cAXdORs2.js} +5 -5
  28. package/dist/chunks/{RemoteSessionManager-BjVD918g.js → RemoteSessionManager-C5pAD0Lh.js} +1 -1
  29. package/dist/chunks/{ResumeConversation-CXd8d8po.js → ResumeConversation-NSVT3gn7.js} +1 -1
  30. package/dist/chunks/{SSETransport-BSilVN9e.js → SSETransport-CDGMGrxN.js} +1 -1
  31. package/dist/chunks/SearchExtraToolsTool-CddjJcAH.js +1 -0
  32. package/dist/chunks/{Settings-ClcLl0C1.js → Settings-_b5Yxt_9.js} +2 -2
  33. package/dist/chunks/{TeleportProgress-DonJUoPc.js → TeleportProgress-8cS6aHVO.js} +1 -1
  34. package/dist/chunks/{TeleportRepoMismatchDialog-ByOuSVVz.js → TeleportRepoMismatchDialog-B0epkMgp.js} +1 -1
  35. package/dist/chunks/{TeleportResumeWrapper-BBtELwF1.js → TeleportResumeWrapper-Bb14JeEk.js} +1 -1
  36. package/dist/chunks/{ThemePicker-1QQJFOEv.js → ThemePicker-CnX8faYA.js} +1 -1
  37. package/dist/chunks/{TrustDialog-DwJ9L_u4.js → TrustDialog-6wJF3W6K.js} +1 -1
  38. package/dist/chunks/{add-dir-DOKdPFT2.js → add-dir-LLAv-rGS.js} +1 -1
  39. package/dist/chunks/{agentDisplay-TX1bh-lX.js → agentDisplay-QqGqcHGz.js} +1 -1
  40. package/dist/chunks/{agents-CbRjX9Pj.js → agents-C8wRUTNV.js} +1 -1
  41. package/dist/chunks/{agents-C58tRxpi.js → agents-DFPEienW.js} +1 -1
  42. package/dist/chunks/{allErrors-DRiW7i6Y.js → allErrors-DUYYPpdH.js} +1 -1
  43. package/dist/chunks/{api-CazVavfB.js → api-B3Wnozaf.js} +1 -1
  44. package/dist/chunks/api-BAT--5sp.js +1 -0
  45. package/dist/chunks/{auth-CfrCl9BZ.js → auth-CQGJitIV.js} +1 -1
  46. package/dist/chunks/auth-DaJXqwN5.js +1 -0
  47. package/dist/chunks/auth-DkhPycBL.js +1 -0
  48. package/dist/chunks/{backgroundHousekeeping-CPLlaWcV.js → backgroundHousekeeping-Bjb_Jc7L.js} +2 -2
  49. package/dist/chunks/backgroundHousekeeping-V-dg2j2E.js +1 -0
  50. package/dist/chunks/{branch-pAa0oBaj.js → branch-BWq5ynjm.js} +1 -1
  51. package/dist/chunks/{bridgeConfig-DnFfCpGd.js → bridgeConfig-B3mR0kJ0.js} +1 -1
  52. package/dist/chunks/bridgeConfig-D31i4BRi.js +1 -0
  53. package/dist/chunks/{bridgeMessaging-B_hnuUHb.js → bridgeMessaging-wZ5EKxW_.js} +1 -1
  54. package/dist/chunks/{bridgeStatusUtil-Dwz4YHNA.js → bridgeStatusUtil-mvVQSVN-.js} +1 -1
  55. package/dist/chunks/{btw-CkVkYeRr.js → btw-XNgXHnNr.js} +1 -1
  56. package/dist/chunks/{caches-BLQUkrIG.js → caches-ByLjTvdy.js} +1 -1
  57. package/dist/chunks/caches-ckqJ4Qso.js +1 -0
  58. package/dist/chunks/{ccrClient-AfdUbWzY.js → ccrClient-EisctZbc.js} +1 -1
  59. package/dist/chunks/{clear-Ac3qYi_-.js → clear-BjtPf2Jb.js} +1 -1
  60. package/dist/chunks/client-Bl43xcRk.js +1 -0
  61. package/dist/chunks/commands-BDhn7EPO.js +1 -0
  62. package/dist/chunks/{compact-CXuDr5qM.js → compact-w8AhLkr6.js} +1 -1
  63. package/dist/chunks/config-CbAvTdZ7.js +1 -0
  64. package/dist/chunks/{context-C2plOqH4.js → context-Btn2JU2y.js} +1 -1
  65. package/dist/chunks/{context-noninteractive-fVQtwEkw.js → context-noninteractive-044464Vs.js} +1 -1
  66. package/dist/chunks/context-noninteractive-ulRLlYg5.js +1 -0
  67. package/dist/chunks/conversation-D08lU377.js +1 -0
  68. package/dist/chunks/{conversation-DQpS6nvg.js → conversation-a82khZ_n.js} +1 -1
  69. package/dist/chunks/{createSSHSession-CfyFuJMH.js → createSSHSession-C0KSI0fJ.js} +1 -1
  70. package/dist/chunks/{createSession-qk9C66lK.js → createSession-8ScCWTKb.js} +1 -1
  71. package/dist/chunks/createSession-CnlPXXkA.js +1 -0
  72. package/dist/chunks/{crossProjectResume-DY1ZBO5P.js → crossProjectResume-BCN462Wa.js} +1 -1
  73. package/dist/chunks/{datadog-Cr0VKbct.js → datadog-BqINRWAW.js} +1 -1
  74. package/dist/chunks/{diff-BNjcCXDr.js → diff-CcrSQNvQ.js} +1 -1
  75. package/dist/chunks/doctor-DRFDBrH1.js +1 -0
  76. package/dist/chunks/{entry-o9IZPS4g.js → entry-oVZ7Z59B.js} +1 -1
  77. package/dist/chunks/{esm-BI3tFLyy.js → esm-BZciQG9N.js} +1 -1
  78. package/dist/chunks/{exit-Dlyj7nY8.js → exit-jikLI2Zh.js} +1 -1
  79. package/dist/chunks/{extraUsage-5Ueiyw6W.js → extraUsage-BT3in1Aj.js} +1 -1
  80. package/dist/chunks/extractMemories-BsQU2bVO.js +1 -0
  81. package/dist/chunks/fast-B9vVL3sY.js +1 -0
  82. package/dist/chunks/{fast-ClOKONyD.js → fast-CKhtBOx7.js} +1 -1
  83. package/dist/chunks/fetchModelList-BeL40TyR.js +1 -0
  84. package/dist/chunks/{fetchModelList-gh_jFYai.js → fetchModelList-DmaMgpa2.js} +1 -1
  85. package/dist/chunks/{fileSuggestions-DK7W8kLF.js → fileSuggestions-BfG3sbET.js} +1 -1
  86. package/dist/chunks/firstPartyEventLogger-6GwZ6VLr.js +1 -0
  87. package/dist/chunks/{firstPartyEventLogger-BMnXb9cv.js → firstPartyEventLogger-Q3fMF0BR.js} +2 -2
  88. package/dist/chunks/{flushGate-n4kK6H1U.js → flushGate-COa_KO98.js} +1 -1
  89. package/dist/chunks/{gemini-C8-QHnsC.js → gemini-L8Gj2B4H.js} +1 -1
  90. package/dist/chunks/{generateSessionName-C8DnAVaa.js → generateSessionName-cAL5T7pG.js} +1 -1
  91. package/dist/chunks/{goal-DMmzlZOF.js → goal-D-x2WXm7.js} +1 -1
  92. package/dist/chunks/{grok-LLjpAwP_.js → grok-DtypRM4d.js} +1 -1
  93. package/dist/chunks/{grove-CQBCzeHf.js → grove-CSivzrhe.js} +1 -1
  94. package/dist/chunks/{help-JH7WzjZP.js → help-DKZhC0lL.js} +1 -1
  95. package/dist/chunks/{hooks-DD2jpRfx.js → hooks-D_afUDcs.js} +1 -1
  96. package/dist/chunks/hooks-DvVuNKRx.js +1 -0
  97. package/dist/chunks/{initReplBridge-BDaN0hpY.js → initReplBridge-sTaq4a0K.js} +1 -1
  98. package/dist/chunks/{install-CD4or0vj.js → install-BWe3Jz4M.js} +1 -1
  99. package/dist/chunks/{instrumentation-n-otwpYf.js → instrumentation-IljwxX0V.js} +3 -3
  100. package/dist/chunks/{job-B-pEWgXI.js → job-N25KhSUu.js} +1 -1
  101. package/dist/chunks/{keybindings-qed9q9tx.js → keybindings-DLEorhlY.js} +1 -1
  102. package/dist/chunks/{launchLocalMemory-cBovdGMT.js → launchLocalMemory-DJsuNLIf.js} +1 -1
  103. package/dist/chunks/{launchOnboarding-B__wtt7p.js → launchOnboarding-CVvuxeH-.js} +1 -1
  104. package/dist/chunks/{loadAgentsDir-PPiD2Mfq.js → loadAgentsDir-CbtNPJV3.js} +23 -23
  105. package/dist/chunks/loadAgentsDir-D0gl_H2S.js +1 -0
  106. package/dist/chunks/{loadPluginHooks-DUCuU3_8.js → loadPluginHooks-BxkDBFd6.js} +1 -1
  107. package/dist/chunks/{localSearch-Cvs9WfoX.js → localSearch-B5mTHBwK.js} +1 -1
  108. package/dist/chunks/localSearch-D3UrYUre.js +1 -0
  109. package/dist/chunks/{logoV2Utils-Bkj74dtY.js → logoV2Utils-D5nRpirL.js} +1 -1
  110. package/dist/chunks/{magicDocs-3U6peChg.js → magicDocs-C9aIo4Oe.js} +1 -1
  111. package/dist/chunks/{main-DkjxhBIC.js → main-DeUt_aE2.js} +9 -9
  112. package/dist/chunks/managedEnv-ADMKY7-G.js +1 -0
  113. package/dist/chunks/{managedEnv-BUrzwaD3.js → managedEnv-CDxyrUw1.js} +1 -1
  114. package/dist/chunks/{mappers-ZGgwqDOK.js → mappers-Del1KoA7.js} +1 -1
  115. package/dist/chunks/{mcp-COZxwgJZ.js → mcp-Bh3MNBIj.js} +2 -2
  116. package/dist/chunks/{mcp-CdyNeNzh.js → mcp-D7vMhEOV.js} +1 -1
  117. package/dist/chunks/{mcp-CysOyBIn.js → mcp-nnBVM5Lt.js} +1 -1
  118. package/dist/chunks/{memory-B5h2TTSS.js → memory-DtqQhHu8.js} +1 -1
  119. package/dist/chunks/{mode-D3yY1fdK.js → mode-DPbrxU32.js} +1 -1
  120. package/dist/chunks/{model-Bz4JHoU0.js → model-B50j-O5v.js} +1 -1
  121. package/dist/chunks/model-DLG1nrnf.js +1 -0
  122. package/dist/chunks/{model-sviY1inu.js → model-DlLO7TSx.js} +1 -1
  123. package/dist/chunks/{modelOptions-DYQqTLPi.js → modelOptions-SMq3one0.js} +1 -1
  124. package/dist/chunks/{nativeInstaller-N1xiUpCP.js → nativeInstaller-DTJ4clp-.js} +1 -1
  125. package/dist/chunks/{omit-BOILu8jW.js → omit-CMldTqqy.js} +1 -1
  126. package/dist/chunks/{onChangeAppState-COFFZAXb.js → onChangeAppState-EAnsmOuo.js} +1 -1
  127. package/dist/chunks/{openai-BHM5kEFo.js → openai-D9KvLMrj.js} +1 -1
  128. package/dist/chunks/{partition-C1SFDk_L.js → partition-B8Y4jvjW.js} +1 -1
  129. package/dist/chunks/{permissions-uy_NFbfy.js → permissions-cDtIZRM1.js} +1 -1
  130. package/dist/chunks/{pidLock-DuMVSwnN.js → pidLock-Br3_YNi_.js} +2 -2
  131. package/dist/chunks/{plan-DF9YSB5M.js → plan-dG2H4eQl.js} +1 -1
  132. package/dist/chunks/{plugin-GRPzqgTr.js → plugin-CzQHuIlP.js} +1 -1
  133. package/dist/chunks/{pluginAutoupdate-AMD-FvKB.js → pluginAutoupdate-B9W_vxOG.js} +1 -1
  134. package/dist/chunks/{pluginBlocklist-DNxkAxH6.js → pluginBlocklist-BvdBsnJG.js} +1 -1
  135. package/dist/chunks/{pluginCliCommands-BFoR1ZXx.js → pluginCliCommands-NKIgFTUF.js} +1 -1
  136. package/dist/chunks/{pluginFlagging-CW2IZWSI.js → pluginFlagging-C0PtAJEg.js} +1 -1
  137. package/dist/chunks/{pluginOperations-DlWE0idP.js → pluginOperations-wUUdFpu9.js} +1 -1
  138. package/dist/chunks/pluginStartupCheck-hDT6pEAd.js +1 -0
  139. package/dist/chunks/{pluginStartupCheck-AQGV0DCS.js → pluginStartupCheck-p0njap1l.js} +1 -1
  140. package/dist/chunks/{plugins-CwUSTE4E.js → plugins-B9WBqOAW.js} +1 -1
  141. package/dist/chunks/{print-9wR_ijrL.js → print-G3DgPTxy.js} +3 -3
  142. package/dist/chunks/{processBashCommand-Deqwq1IE.js → processBashCommand-zLWgCRws.js} +1 -1
  143. package/dist/chunks/{processSlashCommand-U9LJ4Keq.js → processSlashCommand-BHBnHBjj.js} +1 -1
  144. package/dist/chunks/{prompt-CQmEvnKN.js → prompt-BRGC5U9Y.js} +1 -1
  145. package/dist/chunks/prompt-Ct3Ryb3C.js +1 -0
  146. package/dist/chunks/prompt-TZJKyomz.js +1 -0
  147. package/dist/chunks/{promptEditor-Bf72KNF-.js → promptEditor-CRIw6vJS.js} +1 -1
  148. package/dist/chunks/{reconciler-Css9bs07.js → reconciler-DiU1RvGD.js} +1 -1
  149. package/dist/chunks/{refresh-B87z39Zs.js → refresh-DEXe3Lmx.js} +1 -1
  150. package/dist/chunks/{reload-plugins-BpmUIkfm.js → reload-plugins-Cl6wvT6V.js} +1 -1
  151. package/dist/chunks/{remoteBridgeCore-BCLIIygk.js → remoteBridgeCore-DnFZoXaw.js} +1 -1
  152. package/dist/chunks/{remoteManagedSettings-Ahgn2e80.js → remoteManagedSettings-BboLJ46D.js} +1 -1
  153. package/dist/chunks/{rename-BUt3PliQ.js → rename-CdzxOzN5.js} +1 -1
  154. package/dist/chunks/{resume-uZI9p_FE.js → resume-DgFXYWTN.js} +1 -1
  155. package/dist/chunks/{runtimeObserver-AKOWfdZ_.js → runtimeObserver-CwtRE2cj.js} +1 -1
  156. package/dist/chunks/{runtimeObserver-By59MZKJ.js → runtimeObserver-Dov-m2dl.js} +2 -2
  157. package/dist/chunks/sandbox-adapter-CtEngx-6.js +1 -0
  158. package/dist/chunks/{sandbox-toggle-BdvylnWS.js → sandbox-toggle-DWCrG9zV.js} +1 -1
  159. package/dist/chunks/searchExtraTools-zFMN5MqY.js +1 -0
  160. package/dist/chunks/{session-Tm2-rzBY.js → session-L5191BSn.js} +1 -1
  161. package/dist/chunks/sessionFileAccessHooks-C2VjT-PU.js +1 -0
  162. package/dist/chunks/sessionObserver-BuhXr3FP.js +1 -0
  163. package/dist/chunks/{sessionObserver-BAr8AWeL.js → sessionObserver-DpY0DOjI.js} +1 -1
  164. package/dist/chunks/{sessionState-BTFowSpR.js → sessionState-BlbRQ3Y6.js} +1 -1
  165. package/dist/chunks/sessionStorage-CiYSwyY3.js +1 -0
  166. package/dist/chunks/sessionTitle-k4wpUS5l.js +2 -0
  167. package/dist/chunks/{sessionTracing-CvY4udYI.js → sessionTracing-DqVx8aFD.js} +1 -1
  168. package/dist/chunks/{settingsSync-nxeaGM2-.js → settingsSync-BhlegQAU.js} +1 -1
  169. package/dist/chunks/{setup-D4FPeBnM.js → setup-DvnKMqDy.js} +2 -2
  170. package/dist/chunks/{shadowedRuleDetection-Co8m1q1D.js → shadowedRuleDetection-Gerk3t93.js} +1 -1
  171. package/dist/chunks/{sideQuestion-4TJYn-Az.js → sideQuestion-RndkXExy.js} +1 -1
  172. package/dist/chunks/sinks-Cf4vx9UX.js +1 -0
  173. package/dist/chunks/{sinks-Bb2i50kz.js → sinks-CfzgqLH5.js} +1 -1
  174. package/dist/chunks/{skillChangeDetector-BU9AFG0i.js → skillChangeDetector-BQx4xe_b.js} +1 -1
  175. package/dist/chunks/{skillGapStore-BcVP3ZUb.js → skillGapStore-CLxhWLyq.js} +2 -2
  176. package/dist/chunks/{skillLifecycle-CG2XmS8f.js → skillLifecycle-CSNX2qOH.js} +2 -2
  177. package/dist/chunks/{skillSearchPanel-DOJmUBXB.js → skillSearchPanel-CsQDjy_E.js} +2 -2
  178. package/dist/chunks/{skills-DIgCWvzX.js → skills-DM9ACPW-.js} +1 -1
  179. package/dist/chunks/status-C3z0CSBw.js +1 -0
  180. package/dist/chunks/{status-Ber2xOXc.js → status-C5v7KsX4.js} +1 -1
  181. package/dist/chunks/{statusNoticeHelpers-CYkrPUpN.js → statusNoticeHelpers-BY_8pK19.js} +1 -1
  182. package/dist/chunks/switcher-C9VsM-ip.js +1 -0
  183. package/dist/chunks/{switcher-BIP3rbQn.js → switcher-CnBKuiNp.js} +1 -1
  184. package/dist/chunks/{syncCache-AMQMQ_HR.js → syncCache-Dff4hbz4.js} +1 -1
  185. package/dist/chunks/{tasks-BKERIO4G.js → tasks-qVyXOLBf.js} +1 -1
  186. package/dist/chunks/{teleport-DOXbf2sQ.js → teleport-Deq_ecN9.js} +1 -1
  187. package/dist/chunks/{templateJobs-dg2F45ZJ.js → templateJobs-CntPyct-.js} +1 -1
  188. package/dist/chunks/{theme-BGxytGjA.js → theme-DVWYzSct.js} +1 -1
  189. package/dist/chunks/{toolEventObserver-CJhg_p3P.js → toolEventObserver-BZn8ZJB5.js} +1 -1
  190. package/dist/chunks/{toolPool-C0d7Bznl.js → toolPool-Dzp1ob3I.js} +1 -1
  191. package/dist/chunks/trustedDevice-1Q4FTNyX.js +1 -0
  192. package/dist/chunks/{trustedDevice-BtXHXu-T.js → trustedDevice-CdLAZK6m.js} +1 -1
  193. package/dist/chunks/{useExitOnCtrlCDWithKeybindings-C9orgrub.js → useExitOnCtrlCDWithKeybindings-YSWYVWk6.js} +1 -1
  194. package/dist/chunks/useMainLoopModel-C1JRp4zE.js +1 -0
  195. package/dist/chunks/{useManagePlugins-Bt-DYAnX.js → useManagePlugins-DfuI4Nhd.js} +1 -1
  196. package/dist/chunks/{useMergedTools-CZeQBdky.js → useMergedTools-B4qRVJ8b.js} +1 -1
  197. package/dist/chunks/{useSearchInput-DdKrVHJS.js → useSearchInput-DfUNYhqC.js} +1 -1
  198. package/dist/chunks/{useSettingsErrors-BR9Wws7D.js → useSettingsErrors-Bls74ocI.js} +1 -1
  199. package/dist/chunks/{userAgent-DUt0q-Vl.js → userAgent-CNPTS7ix.js} +1 -1
  200. package/dist/chunks/{util-h-Hmdke_.js → util-6aJHnBQ_.js} +1 -1
  201. package/dist/chunks/{validatePlugin-mWVKNtJa.js → validatePlugin-BajM6yNf.js} +1 -1
  202. package/dist/chunks/{workerRegistry-dlfqtySm.js → workerRegistry-BwJ54Lzk.js} +2 -2
  203. package/dist/chunks/worktree-BFP10vim.js +1 -0
  204. package/dist/cli.js +1 -1
  205. package/package.json +1 -1
  206. package/dist/chunks/AgentsMdExternalIncludesDialog-C6VH6JG6.js +0 -1
  207. package/dist/chunks/ApproveApiKey-B7mKgSqY.js +0 -1
  208. package/dist/chunks/Doctor-BJf49FWX.js +0 -1
  209. package/dist/chunks/REPL-BhCC0JP6.js +0 -1
  210. package/dist/chunks/SearchExtraToolsTool-DoiCI2uJ.js +0 -1
  211. package/dist/chunks/api-C8uOHD-v.js +0 -1
  212. package/dist/chunks/auth-BL238vgr.js +0 -1
  213. package/dist/chunks/auth-D3GkU6d7.js +0 -1
  214. package/dist/chunks/backgroundHousekeeping-Du2tN2WE.js +0 -1
  215. package/dist/chunks/bridgeConfig-joBqeK0j.js +0 -1
  216. package/dist/chunks/caches-DsFl83sh.js +0 -1
  217. package/dist/chunks/client-BX0r6K3I.js +0 -1
  218. package/dist/chunks/commands-BKLsl6gK.js +0 -1
  219. package/dist/chunks/config-DrY1SvhQ.js +0 -1
  220. package/dist/chunks/context-noninteractive-DpVlZ-wP.js +0 -1
  221. package/dist/chunks/conversation-C0yysXds.js +0 -1
  222. package/dist/chunks/createSession-CmBawnsh.js +0 -1
  223. package/dist/chunks/doctor-BkCtT7H1.js +0 -1
  224. package/dist/chunks/extractMemories-DnTBWFOW.js +0 -1
  225. package/dist/chunks/fast-B3fRp1xO.js +0 -1
  226. package/dist/chunks/fetchModelList-B8KG79EK.js +0 -1
  227. package/dist/chunks/firstPartyEventLogger-YYOb8aIo.js +0 -1
  228. package/dist/chunks/hooks-COhKt_pF.js +0 -1
  229. package/dist/chunks/loadAgentsDir-qvqrTVuS.js +0 -1
  230. package/dist/chunks/localSearch-CDk_stXJ.js +0 -1
  231. package/dist/chunks/managedEnv-XOUMOtEF.js +0 -1
  232. package/dist/chunks/model-g6XBcNAG.js +0 -1
  233. package/dist/chunks/pluginStartupCheck-DWpquqxx.js +0 -1
  234. package/dist/chunks/prompt-BBeDQXIs.js +0 -1
  235. package/dist/chunks/prompt-CXhdqgB7.js +0 -1
  236. package/dist/chunks/sandbox-adapter-D4Uho1vF.js +0 -1
  237. package/dist/chunks/searchExtraTools-BHMkqGBf.js +0 -1
  238. package/dist/chunks/sessionFileAccessHooks-BaWZ8sqn.js +0 -1
  239. package/dist/chunks/sessionObserver-KB1UL_n2.js +0 -1
  240. package/dist/chunks/sessionStorage-D6nlmaI-.js +0 -1
  241. package/dist/chunks/sessionTitle-SCqmSDYM.js +0 -14
  242. package/dist/chunks/sinks-D1opmy_x.js +0 -1
  243. package/dist/chunks/status-CVcXPoOZ.js +0 -1
  244. package/dist/chunks/switcher-zbG6T9dN.js +0 -1
  245. package/dist/chunks/trustedDevice-hw3iq84W.js +0 -1
  246. package/dist/chunks/useMainLoopModel-BigVcn2T.js +0 -1
  247. package/dist/chunks/worktree-IxcFe7g-.js +0 -1
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{$_ as t,Ap as n,B as r,Bb as i,Cm as a,Ds as o,Dv as s,E as c,Ea as l,Fc as u,Fw as d,GC as f,Ga as p,Gw as m,Ha as h,Ic as g,Ii as _,KC as v,La as y,Li as b,Mp as x,Np as S,Nw as C,Of as w,Pw as T,Ra as ee,Sa as E,Sf as D,Sm as O,Tf as k,Ti as A,Ts as j,Uh as M,V as N,WC as te,Wh as ne,Ww as re,Xp as ie,Xv as ae,Yp as oe,Zv as se,b as ce,bf as le,c_ as ue,ha as P,ji as de,jp as fe,kf as pe,ki as me,kp as he,lc as ge,qa as F,ry as I,sc as L,tv as _e,u_ as ve,uc as ye,va as R,wm as be,ws as xe,wv as Se,xa as Ce,xf as we,ya as Te,zb as Ee,zi as z}from"./loadAgentsDir-PPiD2Mfq.js";import{Gn as De,Wt as Oe,pt as ke,t as Ae}from"./state-BPFYBqm1.js";import{E as je,R as Me,c as B,f as Ne,i as V,k as H,u as Pe}from"./debug-BQj6h99Q.js";import{Dt as Fe,Ot as Ie}from"./settings-CvhsRFaT.js";import{T as U,o as Le,q as Re,s as W,w as G}from"./log-BlJ7CcKG.js";import{n as ze,r as K}from"./analytics-DJobLaWP.js";import{Xr as Be,Zr as Ve,dn as He,fn as Ue}from"./model-sviY1inu.js";import{ct as We,ot as Ge}from"./esm-BI3tFLyy.js";import{E as Ke,T as qe,w as Je}from"./sessionTracing-CvY4udYI.js";import{randomUUID as q}from"crypto";function Ye(e,t,n,r,i){let a=0;for(let o of Ie){let s=n[o];if(s)for(let n of s)for(let s of n.hooks){let c=s.once?()=>{B(`Removing one-shot hook for event ${o} in skill '${r}'`),S(e,t,o,s)}:void 0;fe(e,t,o,n.matcher||``,s,c,i),a++}}a>0&&B(`Registered ${a} hooks from skill '${r}'`)}var Xe=e((()=>{Fe(),V(),x()}));function Ze(e){let t=e.trim();if(!t.startsWith(`/`))return null;let n=t.slice(1).split(` `);if(!n[0])return null;let r=n[0],i=!1,a=1;n.length>1&&n[1]===`(MCP)`&&(r=`${r} (MCP)`,i=!0,a=2);let o=n.slice(a).join(` `);return{commandName:r,args:o,isMcp:i}}var Qe=e((()=>{}));function $e(){return!1}function J(){if(!$e())throw Error(`ToolUseContext.options.allowBackgroundForkedSlashCommands is test-only and cannot be enabled outside NODE_ENV=test.`)}async function et(e,t,r,i,o,s,c){let l=oe(),u=e.pluginInfo?d(e.pluginInfo.repository).marketplace:void 0;K(`tengu_slash_command_forked`,{command_name:e.name,invocation_trigger:`user-slash`,...e.pluginInfo&&{_PROTO_plugin_name:e.pluginInfo.pluginManifest.name,...u&&{_PROTO_marketplace_name:u},...D(e.pluginInfo)}});let{skillContent:f,modifiedGetAppState:m,baseAgent:h,promptMessages:g}=await ye(e,t,r);B(`Executing forked slash command /${e.name} with agent ${h.agentType}`);let _=r.options.allowBackgroundForkedSlashCommands===!0;if(_&&J(),_){let t=Ee(),i=z(e),o=Be(),u=e=>se({value:e,mode:`prompt`,priority:`later`,isMeta:!0,skipSlashCommands:!0,workload:o}),d=async()=>{if(!c?.runId)return;let e=await O({runId:c.runId,rootDir:c.rootDir,priority:`later`,workload:o});for(let t of e)ae(t)},f=async e=>{c?.runId&&await a({runId:c.runId,rootDir:c.rootDir,error:e instanceof Error?e.message:String(e)})};return(async()=>{let a=Date.now()+$;for(;Date.now()<a&&r.getAppState().mcp.clients.some(e=>e.type===`pending`);)await Ue(Q);let o=r.options.refreshTools?.()??r.options.tools,c=[];for await(let i of n({agentDefinition:h,promptMessages:g,toolUseContext:{...r,getAppState:m,abortController:t},canUseTool:s,isAsync:!0,querySource:`agent:custom`,model:e.model,availableTools:o,override:{agentId:l}}))c.push(i);let f=L(c,`Command completed`);B(`Background forked command /${i} completed (agent ${l})`),u(`<scheduled-task-result command="/${i}">\n${f}\n</scheduled-task-result>`);try{await d()}catch(e){W(e)}})().catch(async e=>{W(e),u(`<scheduled-task-result command="/${i}" status="failed">\n${e instanceof Error?e.message:String(e)}\n</scheduled-task-result>`),await f(e)}),{messages:[],shouldQuery:!1,command:e,deferAutonomyCompletion:!!c?.runId}}let v=[],y=[],b=`forked-command-${e.name}`,x=0,S=e=>(x++,{type:`progress`,data:{message:e,type:`agent_progress`,prompt:f,agentId:l},parentToolUseID:b,toolUseID:`${b}-${x}`,timestamp:new Date().toISOString(),uuid:q()}),C=()=>{o({jsx:pe(y,{tools:r.options.tools,verbose:!1}),shouldHidePromptInput:!1,shouldContinueAnimation:!0,showSpinner:!0})};C();try{for await(let t of n({agentDefinition:h,promptMessages:g,toolUseContext:{...r,getAppState:m},canUseTool:s,isAsync:!1,querySource:`agent:custom`,model:e.model,availableTools:r.options.tools})){v.push(t);let e=p([t]);if(t.type===`assistant`){let n=Se(t);n>0&&r.setResponseLength(e=>e+n);let i=e[0];i&&i.type===`assistant`&&(y.push(S(t)),C())}if(t.type===`user`){let t=e[0];t&&t.type===`user`&&(y.push(S(t)),C())}}}finally{o(null)}let w=L(v,`Command completed`);return B(`Forked slash command /${e.name} completed with agent ${l}`),{messages:[E({content:F({inputString:`/${z(e)} ${t}`.trim(),precedingInputBlocks:i})}),E({content:`<local-command-stdout>\n${w}\n</local-command-stdout>`})],shouldQuery:!1,command:e,resultText:w}}function tt(e){return!/[^a-zA-Z0-9:\-_]/.test(e)}async function nt(e,t,n,r,i,a,o,s,c,l){let u=Ze(e);if(!u){K(`tengu_input_slash_missing`,{});let e="Commands are in the form `/command [args]`";return{messages:[R(),...r,E({content:F({inputString:e,precedingInputBlocks:t})})],shouldQuery:!1,resultText:e}}let{commandName:f,args:p,isMcp:m}=u,g=m?`mcp`:A().has(f)?f:`custom`;if(!_(f,i.options.commands)){let n=!1;try{await Pe().stat(`/${f}`),n=!0}catch{}if(tt(f)&&!n){K(`tengu_input_slash_invalid`,{input:f});let e=`Unknown skill: ${f}`;return{messages:[R(),...r,E({content:F({inputString:e,precedingInputBlocks:t})}),...p?[Te(`Args from unknown skill: ${p}`,`warning`)]:[]],shouldQuery:!1,resultText:e}}let i=q();return De(i),K(`tengu_input_prompt`,{}),qe(`user_prompt`,{prompt_length:String(e.length),prompt:Ke(e),"prompt.id":i}),{messages:[E({content:F({inputString:e,precedingInputBlocks:t}),uuid:o}),...r],shouldQuery:!0}}let{messages:v,shouldQuery:y,allowedTools:b,model:x,command:S,resultText:C,nextInput:w,submitNextInput:O,deferAutonomyCompletion:k}=await rt(f,p,a,i,t,n,s,c,o,l);if(v.length===0){let e={input:g};if(S.type===`prompt`&&S.pluginInfo){let{pluginManifest:t,repository:n}=S.pluginInfo,{marketplace:r}=d(n),i=T(r);e._PROTO_plugin_name=t.name,r&&(e._PROTO_marketplace_name=r),e.plugin_repository=i?n:`third-party`,e.plugin_name=i?t.name:`third-party`,i&&t.version&&(e.plugin_version=t.version),Object.assign(e,D(S.pluginInfo))}return K(`tengu_input_command`,{...e,invocation_trigger:`user-slash`}),{messages:[],shouldQuery:!1,model:x,nextInput:w,submitNextInput:O,deferAutonomyCompletion:k}}if(v.length===2&&v[1].type===`user`&&typeof v[1].message.content==`string`&&v[1].message.content.startsWith(`Unknown command:`))return e.startsWith(`/var`)||e.startsWith(`/tmp`)||e.startsWith(`/private`)||K(`tengu_input_slash_invalid`,{input:f}),{messages:[R(),...v],shouldQuery:y,allowedTools:b,model:x};let j={input:g};if(S.type===`prompt`&&S.pluginInfo){let{pluginManifest:e,repository:t}=S.pluginInfo,{marketplace:n}=d(t),r=T(n);j._PROTO_plugin_name=e.name,n&&(j._PROTO_marketplace_name=n),j.plugin_repository=r?t:`third-party`,j.plugin_name=r?e.name:`third-party`,r&&e.version&&(j.plugin_version=e.version),Object.assign(j,D(S.pluginInfo))}K(`tengu_input_command`,{...j,invocation_trigger:`user-slash`});let M=v.length>0&&v[0]&&ee(v[0]);return{messages:y||v.every(h)||M?v:[R(),...v],shouldQuery:y,allowedTools:b,model:x,resultText:C,nextInput:w,submitNextInput:O,deferAutonomyCompletion:k}}async function rt(e,t,n,i,a,o,s,c,l,u){let d=de(e,i.options.commands);if(d.type===`prompt`&&d.userInvocable!==!1&&we(e),d.userInvocable===!1)return{messages:[E({content:F({inputString:`/${e}`,precedingInputBlocks:a})}),E({content:`This skill can only be invoked by Work Mate, not directly by users. Ask Work Mate to use the "${e}" skill for you.`})],shouldQuery:!1,command:d};try{switch(d.type){case`local-jsx`:return new Promise(e=>{let r=!1,o=(n,i)=>{if(r=!0,i?.display===`skip`){e({messages:[],shouldQuery:!1,command:d,nextInput:i?.nextInput,submitNextInput:i?.submitNextInput});return}let o=(i?.metaMessages??[]).map(e=>E({content:e,isMeta:!0})),s=ne()&&typeof n==`string`&&n.endsWith(` dismissed`),c=i?.displayArgs??t;e({messages:i?.display===`system`?s?o:[P(Y(d,c)),P(`<local-command-stdout>${n}</local-command-stdout>`),...o]:[E({content:F({inputString:Y(d,c),precedingInputBlocks:a})}),E(n?{content:`<local-command-stdout>${n}</local-command-stdout>`}:{content:`<local-command-stdout>${re}</local-command-stdout>`}),...o],shouldQuery:i?.shouldQuery??!1,command:d,nextInput:i?.nextInput,submitNextInput:i?.submitNextInput})};d.load().then(e=>e.call(o,{...i,canUseTool:c},t)).then(t=>{if(t!=null){if(i.options.isNonInteractiveSession){e({messages:[],shouldQuery:!1,command:d});return}r||n({jsx:t,shouldHidePromptInput:!0,showSpinner:!1,isLocalJSXCommand:!0,isImmediate:d.immediate===!0})}}).catch(t=>{W(t),!r&&(r=!0,n({jsx:null,shouldHidePromptInput:!1,clearLocalJSX:!0}),e({messages:[],shouldQuery:!1,command:d}))})});case`local`:{let e=E({content:F({inputString:Y(d,d.isSensitive&&t.trim()?`***`:t),precedingInputBlocks:a})});try{let n=R(),r=await(await d.load()).call(t,i);if(r.type===`skip`)return{messages:[],shouldQuery:!1,command:d};if(r.type===`compact`){let t=[n,e,...r.displayText?[E({content:`<local-command-stdout>${r.displayText}</local-command-stdout>`,timestamp:new Date(Date.now()+100).toISOString()})]:[]],i={...r.compactionResult,messagesToKeep:[...r.compactionResult.messagesToKeep??[],...t]};return _e(),{messages:ue(i),shouldQuery:!1,command:d}}return{messages:[e,P(`<local-command-stdout>${r.value}</local-command-stdout>`)],shouldQuery:!1,command:d,resultText:r.value}}catch(t){return W(t),{messages:[e,P(`<local-command-stderr>${String(t)}</local-command-stderr>`)],shouldQuery:!1,command:d}}}case`prompt`:try{return d.context===`fork`?await et(d,t,i,a,n,c??r,u):await Z(d,t,i,a,o,l)}catch(e){return e instanceof je?{messages:[E({content:F({inputString:Y(d,t),precedingInputBlocks:a})}),Ce({toolUse:!1})],shouldQuery:!1,command:d}:{messages:[E({content:F({inputString:Y(d,t),precedingInputBlocks:a})}),E({content:`<local-command-stderr>${String(e)}</local-command-stderr>`})],shouldQuery:!1,command:d}}}}catch(e){if(e instanceof H)return{messages:[E({content:F({inputString:e.message,precedingInputBlocks:a})})],shouldQuery:!1,command:d};throw e}}function Y(e,t){return l(z(e),t)}function X(e,t=`loading`){return[`<${G}>${e}</${G}>`,`<${U}>${e}</${U}>`,`<skill-format>true</skill-format>`].join(`
1
+ import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{$_ as t,Ap as n,B as r,Bb as i,Cm as a,Ds as o,Dv as s,E as c,Ea as l,Fc as u,Fw as d,GC as f,Ga as p,Gw as m,Ha as h,Ic as g,Ii as _,KC as v,La as y,Li as b,Mp as x,Np as S,Nw as C,Of as w,Pw as T,Ra as ee,Sa as E,Sf as D,Sm as O,Tf as k,Ti as A,Ts as j,Uh as M,V as N,WC as te,Wh as ne,Ww as re,Xp as ie,Xv as ae,Yp as oe,Zv as se,b as ce,bf as le,c_ as ue,ha as P,ji as de,jp as fe,kf as pe,ki as me,kp as he,lc as ge,qa as F,ry as I,sc as L,tv as _e,u_ as ve,uc as ye,va as R,wm as be,ws as xe,wv as Se,xa as Ce,xf as we,ya as Te,zb as Ee,zi as z}from"./loadAgentsDir-CbtNPJV3.js";import{Gn as De,Wt as Oe,pt as ke,t as Ae}from"./state-BPFYBqm1.js";import{E as je,R as Me,c as B,f as Ne,i as V,k as H,u as Pe}from"./debug-BQj6h99Q.js";import{Dt as Fe,Ot as Ie}from"./settings-CvhsRFaT.js";import{T as U,o as Le,q as Re,s as W,w as G}from"./log-BlJ7CcKG.js";import{n as ze,r as K}from"./analytics-DJobLaWP.js";import{Xr as Be,Zr as Ve,dn as He,fn as Ue}from"./model-DlLO7TSx.js";import{ct as We,ot as Ge}from"./esm-BZciQG9N.js";import{E as Ke,T as qe,w as Je}from"./sessionTracing-DqVx8aFD.js";import{randomUUID as q}from"crypto";function Ye(e,t,n,r,i){let a=0;for(let o of Ie){let s=n[o];if(s)for(let n of s)for(let s of n.hooks){let c=s.once?()=>{B(`Removing one-shot hook for event ${o} in skill '${r}'`),S(e,t,o,s)}:void 0;fe(e,t,o,n.matcher||``,s,c,i),a++}}a>0&&B(`Registered ${a} hooks from skill '${r}'`)}var Xe=e((()=>{Fe(),V(),x()}));function Ze(e){let t=e.trim();if(!t.startsWith(`/`))return null;let n=t.slice(1).split(` `);if(!n[0])return null;let r=n[0],i=!1,a=1;n.length>1&&n[1]===`(MCP)`&&(r=`${r} (MCP)`,i=!0,a=2);let o=n.slice(a).join(` `);return{commandName:r,args:o,isMcp:i}}var Qe=e((()=>{}));function $e(){return!1}function J(){if(!$e())throw Error(`ToolUseContext.options.allowBackgroundForkedSlashCommands is test-only and cannot be enabled outside NODE_ENV=test.`)}async function et(e,t,r,i,o,s,c){let l=oe(),u=e.pluginInfo?d(e.pluginInfo.repository).marketplace:void 0;K(`tengu_slash_command_forked`,{command_name:e.name,invocation_trigger:`user-slash`,...e.pluginInfo&&{_PROTO_plugin_name:e.pluginInfo.pluginManifest.name,...u&&{_PROTO_marketplace_name:u},...D(e.pluginInfo)}});let{skillContent:f,modifiedGetAppState:m,baseAgent:h,promptMessages:g}=await ye(e,t,r);B(`Executing forked slash command /${e.name} with agent ${h.agentType}`);let _=r.options.allowBackgroundForkedSlashCommands===!0;if(_&&J(),_){let t=Ee(),i=z(e),o=Be(),u=e=>se({value:e,mode:`prompt`,priority:`later`,isMeta:!0,skipSlashCommands:!0,workload:o}),d=async()=>{if(!c?.runId)return;let e=await O({runId:c.runId,rootDir:c.rootDir,priority:`later`,workload:o});for(let t of e)ae(t)},f=async e=>{c?.runId&&await a({runId:c.runId,rootDir:c.rootDir,error:e instanceof Error?e.message:String(e)})};return(async()=>{let a=Date.now()+$;for(;Date.now()<a&&r.getAppState().mcp.clients.some(e=>e.type===`pending`);)await Ue(Q);let o=r.options.refreshTools?.()??r.options.tools,c=[];for await(let i of n({agentDefinition:h,promptMessages:g,toolUseContext:{...r,getAppState:m,abortController:t},canUseTool:s,isAsync:!0,querySource:`agent:custom`,model:e.model,availableTools:o,override:{agentId:l}}))c.push(i);let f=L(c,`Command completed`);B(`Background forked command /${i} completed (agent ${l})`),u(`<scheduled-task-result command="/${i}">\n${f}\n</scheduled-task-result>`);try{await d()}catch(e){W(e)}})().catch(async e=>{W(e),u(`<scheduled-task-result command="/${i}" status="failed">\n${e instanceof Error?e.message:String(e)}\n</scheduled-task-result>`),await f(e)}),{messages:[],shouldQuery:!1,command:e,deferAutonomyCompletion:!!c?.runId}}let v=[],y=[],b=`forked-command-${e.name}`,x=0,S=e=>(x++,{type:`progress`,data:{message:e,type:`agent_progress`,prompt:f,agentId:l},parentToolUseID:b,toolUseID:`${b}-${x}`,timestamp:new Date().toISOString(),uuid:q()}),C=()=>{o({jsx:pe(y,{tools:r.options.tools,verbose:!1}),shouldHidePromptInput:!1,shouldContinueAnimation:!0,showSpinner:!0})};C();try{for await(let t of n({agentDefinition:h,promptMessages:g,toolUseContext:{...r,getAppState:m},canUseTool:s,isAsync:!1,querySource:`agent:custom`,model:e.model,availableTools:r.options.tools})){v.push(t);let e=p([t]);if(t.type===`assistant`){let n=Se(t);n>0&&r.setResponseLength(e=>e+n);let i=e[0];i&&i.type===`assistant`&&(y.push(S(t)),C())}if(t.type===`user`){let t=e[0];t&&t.type===`user`&&(y.push(S(t)),C())}}}finally{o(null)}let w=L(v,`Command completed`);return B(`Forked slash command /${e.name} completed with agent ${l}`),{messages:[E({content:F({inputString:`/${z(e)} ${t}`.trim(),precedingInputBlocks:i})}),E({content:`<local-command-stdout>\n${w}\n</local-command-stdout>`})],shouldQuery:!1,command:e,resultText:w}}function tt(e){return!/[^a-zA-Z0-9:\-_]/.test(e)}async function nt(e,t,n,r,i,a,o,s,c,l){let u=Ze(e);if(!u){K(`tengu_input_slash_missing`,{});let e="Commands are in the form `/command [args]`";return{messages:[R(),...r,E({content:F({inputString:e,precedingInputBlocks:t})})],shouldQuery:!1,resultText:e}}let{commandName:f,args:p,isMcp:m}=u,g=m?`mcp`:A().has(f)?f:`custom`;if(!_(f,i.options.commands)){let n=!1;try{await Pe().stat(`/${f}`),n=!0}catch{}if(tt(f)&&!n){K(`tengu_input_slash_invalid`,{input:f});let e=`Unknown skill: ${f}`;return{messages:[R(),...r,E({content:F({inputString:e,precedingInputBlocks:t})}),...p?[Te(`Args from unknown skill: ${p}`,`warning`)]:[]],shouldQuery:!1,resultText:e}}let i=q();return De(i),K(`tengu_input_prompt`,{}),qe(`user_prompt`,{prompt_length:String(e.length),prompt:Ke(e),"prompt.id":i}),{messages:[E({content:F({inputString:e,precedingInputBlocks:t}),uuid:o}),...r],shouldQuery:!0}}let{messages:v,shouldQuery:y,allowedTools:b,model:x,command:S,resultText:C,nextInput:w,submitNextInput:O,deferAutonomyCompletion:k}=await rt(f,p,a,i,t,n,s,c,o,l);if(v.length===0){let e={input:g};if(S.type===`prompt`&&S.pluginInfo){let{pluginManifest:t,repository:n}=S.pluginInfo,{marketplace:r}=d(n),i=T(r);e._PROTO_plugin_name=t.name,r&&(e._PROTO_marketplace_name=r),e.plugin_repository=i?n:`third-party`,e.plugin_name=i?t.name:`third-party`,i&&t.version&&(e.plugin_version=t.version),Object.assign(e,D(S.pluginInfo))}return K(`tengu_input_command`,{...e,invocation_trigger:`user-slash`}),{messages:[],shouldQuery:!1,model:x,nextInput:w,submitNextInput:O,deferAutonomyCompletion:k}}if(v.length===2&&v[1].type===`user`&&typeof v[1].message.content==`string`&&v[1].message.content.startsWith(`Unknown command:`))return e.startsWith(`/var`)||e.startsWith(`/tmp`)||e.startsWith(`/private`)||K(`tengu_input_slash_invalid`,{input:f}),{messages:[R(),...v],shouldQuery:y,allowedTools:b,model:x};let j={input:g};if(S.type===`prompt`&&S.pluginInfo){let{pluginManifest:e,repository:t}=S.pluginInfo,{marketplace:n}=d(t),r=T(n);j._PROTO_plugin_name=e.name,n&&(j._PROTO_marketplace_name=n),j.plugin_repository=r?t:`third-party`,j.plugin_name=r?e.name:`third-party`,r&&e.version&&(j.plugin_version=e.version),Object.assign(j,D(S.pluginInfo))}K(`tengu_input_command`,{...j,invocation_trigger:`user-slash`});let M=v.length>0&&v[0]&&ee(v[0]);return{messages:y||v.every(h)||M?v:[R(),...v],shouldQuery:y,allowedTools:b,model:x,resultText:C,nextInput:w,submitNextInput:O,deferAutonomyCompletion:k}}async function rt(e,t,n,i,a,o,s,c,l,u){let d=de(e,i.options.commands);if(d.type===`prompt`&&d.userInvocable!==!1&&we(e),d.userInvocable===!1)return{messages:[E({content:F({inputString:`/${e}`,precedingInputBlocks:a})}),E({content:`This skill can only be invoked by Work Mate, not directly by users. Ask Work Mate to use the "${e}" skill for you.`})],shouldQuery:!1,command:d};try{switch(d.type){case`local-jsx`:return new Promise(e=>{let r=!1,o=(n,i)=>{if(r=!0,i?.display===`skip`){e({messages:[],shouldQuery:!1,command:d,nextInput:i?.nextInput,submitNextInput:i?.submitNextInput});return}let o=(i?.metaMessages??[]).map(e=>E({content:e,isMeta:!0})),s=ne()&&typeof n==`string`&&n.endsWith(` dismissed`),c=i?.displayArgs??t;e({messages:i?.display===`system`?s?o:[P(Y(d,c)),P(`<local-command-stdout>${n}</local-command-stdout>`),...o]:[E({content:F({inputString:Y(d,c),precedingInputBlocks:a})}),E(n?{content:`<local-command-stdout>${n}</local-command-stdout>`}:{content:`<local-command-stdout>${re}</local-command-stdout>`}),...o],shouldQuery:i?.shouldQuery??!1,command:d,nextInput:i?.nextInput,submitNextInput:i?.submitNextInput})};d.load().then(e=>e.call(o,{...i,canUseTool:c},t)).then(t=>{if(t!=null){if(i.options.isNonInteractiveSession){e({messages:[],shouldQuery:!1,command:d});return}r||n({jsx:t,shouldHidePromptInput:!0,showSpinner:!1,isLocalJSXCommand:!0,isImmediate:d.immediate===!0})}}).catch(t=>{W(t),!r&&(r=!0,n({jsx:null,shouldHidePromptInput:!1,clearLocalJSX:!0}),e({messages:[],shouldQuery:!1,command:d}))})});case`local`:{let e=E({content:F({inputString:Y(d,d.isSensitive&&t.trim()?`***`:t),precedingInputBlocks:a})});try{let n=R(),r=await(await d.load()).call(t,i);if(r.type===`skip`)return{messages:[],shouldQuery:!1,command:d};if(r.type===`compact`){let t=[n,e,...r.displayText?[E({content:`<local-command-stdout>${r.displayText}</local-command-stdout>`,timestamp:new Date(Date.now()+100).toISOString()})]:[]],i={...r.compactionResult,messagesToKeep:[...r.compactionResult.messagesToKeep??[],...t]};return _e(),{messages:ue(i),shouldQuery:!1,command:d}}return{messages:[e,P(`<local-command-stdout>${r.value}</local-command-stdout>`)],shouldQuery:!1,command:d,resultText:r.value}}catch(t){return W(t),{messages:[e,P(`<local-command-stderr>${String(t)}</local-command-stderr>`)],shouldQuery:!1,command:d}}}case`prompt`:try{return d.context===`fork`?await et(d,t,i,a,n,c??r,u):await Z(d,t,i,a,o,l)}catch(e){return e instanceof je?{messages:[E({content:F({inputString:Y(d,t),precedingInputBlocks:a})}),Ce({toolUse:!1})],shouldQuery:!1,command:d}:{messages:[E({content:F({inputString:Y(d,t),precedingInputBlocks:a})}),E({content:`<local-command-stderr>${String(e)}</local-command-stderr>`})],shouldQuery:!1,command:d}}}}catch(e){if(e instanceof H)return{messages:[E({content:F({inputString:e.message,precedingInputBlocks:a})})],shouldQuery:!1,command:d};throw e}}function Y(e,t){return l(z(e),t)}function X(e,t=`loading`){return[`<${G}>${e}</${G}>`,`<${U}>${e}</${U}>`,`<skill-format>true</skill-format>`].join(`
2
2
  `)}function it(e,t){return[`<${G}>${e}</${G}>`,`<${U}>/${e}</${U}>`,t?`<command-args>${t}</command-args>`:null].filter(Boolean).join(`
3
3
  `)}function at(e,t){return e.userInvocable===!1&&(e.loadedFrom===`skills`||e.loadedFrom===`plugin`||e.loadedFrom===`mcp`)?X(e.name,e.progressMessage):it(e.name,t)}async function ot(e,t,n,r,i=[]){let a=me(e,n);if(!a)throw new H(`Unknown command: ${e}`);if(a.type!==`prompt`)throw Error(`Unexpected ${a.type} command. Expected 'prompt' command. Use /${e} directly in the main conversation.`);return Z(a,t,r,[],i)}async function Z(e,t,n,r=[],i=[],a){let o=await e.getPromptForCommand(t,n),s=!f(`hooks`)||v(e.source);if(e.hooks&&s){let t=ke();Ye(n.setAppState,t,e.hooks,e.name,e.type===`prompt`?e.skillRoot:void 0)}let l=e.source?`${e.source}:${e.name}`:e.name,u=o.filter(e=>e.type===`text`).map(e=>e.text).join(`
4
4
 
@@ -1,4 +1,4 @@
1
- import{a as e,n as t,o as n,r,t as i}from"./rolldown-runtime-DaDcL9Zw.js";import{l as a,o}from"./envUtils-DcaKZlRU.js";import{n as s,t as c}from"./defineProperty-C-QyHrDq.js";import{A as l,C as u,M as d,w as f}from"./external-CEp-aPkt.js";import{n as p,r as m,t as h}from"./lazySchema-B4D4qJVE.js";import{C as g,R as _,j as v,x as y}from"./debug-BQj6h99Q.js";import{G as b,J as x,K as S,Q as C,W as w,q as T}from"./settings-CvhsRFaT.js";import{H as E,q as D}from"./log-BlJ7CcKG.js";import{i as O,o as k}from"./platform-DVeTi9mp.js";import{_ as A,u as j}from"./model-sviY1inu.js";import{join as M,parse as N,resolve as P,sep as ee}from"node:path";import{createHash as F}from"node:crypto";import{appendFile as I,mkdir as te,readFile as L,readdir as ne,rm as re,writeFile as ie}from"node:fs/promises";function ae(e,t){return{tool_use_id:e,type:`tool_result`,content:t}}function oe(e){return e.filter(e=>e.data?.type!==`hook_progress`)}function se(e,t){return e.name===t||(e.aliases?.includes(t)??!1)}function ce(e,t){return e.find(e=>se(e,t))}function le(e){return{...de,userFacingName:()=>e.name,...e}}var ue,de,fe=t((()=>{ue=()=>({mode:`default`,additionalWorkingDirectories:new Map,alwaysAllowRules:{},alwaysDenyRules:{},alwaysAskRules:{},isBypassPermissionsModeAvailable:!0}),de={isEnabled:()=>!0,isConcurrencySafe:e=>!1,isReadOnly:e=>!1,isDestructive:e=>!1,checkPermissions:(e,t)=>Promise.resolve({behavior:`allow`,updatedInput:e}),toAutoClassifierInput:e=>``,userFacingName:e=>``}})),pe,me,he,ge,_e=t((()=>{pe=`Edit`,me=`/.workmate/**`,he=`~/.workmate/**`,ge=`File has been unexpectedly modified. Read it again before attempting to write it.`}));function ve(e){let t=e.trim();if(!t)return null;if(t.endsWith(`-`)){let e=parseInt(t.slice(0,-1),10);return isNaN(e)||e<1?null:{firstPage:e,lastPage:1/0}}let n=t.indexOf(`-`);if(n===-1){let e=parseInt(t,10);return isNaN(e)||e<1?null:{firstPage:e,lastPage:e}}let r=parseInt(t.slice(0,n),10),i=parseInt(t.slice(n+1),10);return isNaN(r)||isNaN(i)||r<1||i<1||i<r?null:{firstPage:r,lastPage:i}}function ye(){return!j().toLowerCase().includes(`claude-3-haiku`)}function be(e){let t=e.startsWith(`.`)?e.slice(1):e;return xe.has(t.toLowerCase())}var xe,Se=t((()=>{A(),xe=new Set([`pdf`])})),R,Ce=t((()=>{R=`Bash`}));function we(e,t,n){return`Reads a file from the local filesystem. You can access any file directly by using this tool.
1
+ import{a as e,n as t,o as n,r,t as i}from"./rolldown-runtime-DaDcL9Zw.js";import{l as a,o}from"./envUtils-DcaKZlRU.js";import{n as s,t as c}from"./defineProperty-C-QyHrDq.js";import{A as l,C as u,M as d,w as f}from"./external-CEp-aPkt.js";import{n as p,r as m,t as h}from"./lazySchema-B4D4qJVE.js";import{C as g,R as _,j as v,x as y}from"./debug-BQj6h99Q.js";import{G as b,J as x,K as S,Q as C,W as w,q as T}from"./settings-CvhsRFaT.js";import{H as E,q as D}from"./log-BlJ7CcKG.js";import{i as O,o as k}from"./platform-DVeTi9mp.js";import{_ as A,u as j}from"./model-DlLO7TSx.js";import{join as M,parse as N,resolve as P,sep as ee}from"node:path";import{createHash as F}from"node:crypto";import{appendFile as I,mkdir as te,readFile as L,readdir as ne,rm as re,writeFile as ie}from"node:fs/promises";function ae(e,t){return{tool_use_id:e,type:`tool_result`,content:t}}function oe(e){return e.filter(e=>e.data?.type!==`hook_progress`)}function se(e,t){return e.name===t||(e.aliases?.includes(t)??!1)}function ce(e,t){return e.find(e=>se(e,t))}function le(e){return{...de,userFacingName:()=>e.name,...e}}var ue,de,fe=t((()=>{ue=()=>({mode:`default`,additionalWorkingDirectories:new Map,alwaysAllowRules:{},alwaysDenyRules:{},alwaysAskRules:{},isBypassPermissionsModeAvailable:!0}),de={isEnabled:()=>!0,isConcurrencySafe:e=>!1,isReadOnly:e=>!1,isDestructive:e=>!1,checkPermissions:(e,t)=>Promise.resolve({behavior:`allow`,updatedInput:e}),toAutoClassifierInput:e=>``,userFacingName:e=>``}})),pe,me,he,ge,_e=t((()=>{pe=`Edit`,me=`/.workmate/**`,he=`~/.workmate/**`,ge=`File has been unexpectedly modified. Read it again before attempting to write it.`}));function ve(e){let t=e.trim();if(!t)return null;if(t.endsWith(`-`)){let e=parseInt(t.slice(0,-1),10);return isNaN(e)||e<1?null:{firstPage:e,lastPage:1/0}}let n=t.indexOf(`-`);if(n===-1){let e=parseInt(t,10);return isNaN(e)||e<1?null:{firstPage:e,lastPage:e}}let r=parseInt(t.slice(0,n),10),i=parseInt(t.slice(n+1),10);return isNaN(r)||isNaN(i)||r<1||i<1||i<r?null:{firstPage:r,lastPage:i}}function ye(){return!j().toLowerCase().includes(`claude-3-haiku`)}function be(e){let t=e.startsWith(`.`)?e.slice(1):e;return xe.has(t.toLowerCase())}var xe,Se=t((()=>{A(),xe=new Set([`pdf`])})),R,Ce=t((()=>{R=`Bash`}));function we(e,t,n){return`Reads a file from the local filesystem. You can access any file directly by using this tool.
2
2
  Assume this tool is able to read all files on the machine. If the User provides a path to a file assume that path is valid. It is okay to read a file that does not exist; an error will be returned.
3
3
 
4
4
  Usage:
@@ -0,0 +1 @@
1
+ import{cw as e,mw as t}from"./loadAgentsDir-CbtNPJV3.js";t();export{e as clearPromptCache};
@@ -0,0 +1 @@
1
+ import{i as e,r as t}from"./prompt-BRGC5U9Y.js";t();export{e as isDeferredTool};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{n as t,t as n}from"./memoize-BK3gG5ob.js";import{Ad as r,Fd as i,Md as a,Pd as o,_b as s,lb as c,vu as l,yu as u}from"./loadAgentsDir-PPiD2Mfq.js";import{Rn as d,t as f}from"./src-DL3w8VPk2.js";import{T as p,c as m,f as h,i as g,u as _,x as v}from"./debug-BQj6h99Q.js";import{n as y,t as b}from"./execSyncWrapper-CqvQqke-.js";import{r as x,t as S}from"./which-BR8YVCCW.js";import{basename as C}from"path";import{spawn as w,spawnSync as T}from"child_process";function E(e){return!!x(e)}function D(e){let t=C(e.split(` `)[0]??``);return A.find(e=>t.includes(e))}function O(e,t,n){return n?M.has(e)?[`-g`,`${t}:${n}`]:e===`subl`?[`${t}:${n}`]:[t]:[t]}function k(e,t){let n=N();if(!n)return!1;let r=n.split(` `),i=r[0]??n,a=r.slice(1),o=D(n);if(o){let r=O(o,e,t),s={detached:!0,stdio:`ignore`},c;return c=process.platform===`win32`?w(`${n} ${r.map(e=>`"${e}"`).join(` `)}`,{...s,shell:!0}):w(i,[...a,...r],s),c.on(`error`,e=>m(`editor spawn failed: ${e}`,{level:`error`})),c.unref(),!0}let s=d.get(process.stdout);if(!s)return!1;let c=t&&j.test(C(i));s.enterAlternateScreen();try{let r={stdio:`inherit`},o;return o=process.platform===`win32`?T(`${n} ${c?`+${t} `:``}"${e}"`,{...r,shell:!0}):T(i,[...a,...c?[`+${t}`,e]:[e]],r),o.error?(m(`editor spawn failed: ${o.error}`,{level:`error`}),!1):!0}finally{s.exitAlternateScreen()}}var A,j,M,N,P=e((()=>{n(),f(),g(),S(),A=[`code`,`cursor`,`windsurf`,`codium`,`subl`,`atom`,`gedit`,`notepad++`,`notepad`],j=/\b(vi|vim|nvim|nano|emacs|pico|micro|helix|hx)\b/,M=new Set([`code`,`cursor`,`windsurf`,`codium`]),N=t(()=>process.env.VISUAL?.trim()?process.env.VISUAL.trim():process.env.EDITOR?.trim()?process.env.EDITOR.trim():process.platform===`win32`?`start /wait notepad`:[`code`,`vi`,`nano`].find(e=>E(e)))}));function F(e){return D(e)!==void 0}function I(e){let t=_(),n=d.get(process.stdout);if(!n)throw Error(`Ink instance not found - cannot pause rendering`);let r=N();if(!r)return{content:null};try{t.statSync(e)}catch{return{content:null}}let i=!F(r);i?n.enterAlternateScreen():(n.pause(),n.suspendStdin());try{return b(`${z[r]??r} "${e}"`,{stdio:`inherit`}),{content:t.readFileSync(e,{encoding:`utf-8`})}}catch(e){if(typeof e==`object`&&e&&`status`in e&&typeof e.status==`number`){let t=e.status;if(t!==0)return{content:null,error:`${s(r)} exited with code ${t}`}}return{content:null}}finally{i?n.exitAlternateScreen():(n.resumeStdin(),n.resume())}}function L(e,t,n){let r=e;for(let[e,t]of Object.entries(n))if(t.type===`text`){let n=parseInt(e,10),i=t.content,s=r.indexOf(i);if(s!==-1){let e=a(n,o(i));r=r.slice(0,s)+e+r.slice(s+i.length)}}return r}function R(e,t){let n=_(),i=l();try{p(i,t?r(e,t):e,{encoding:`utf-8`,flush:!0});let n=I(i);if(n.content===null)return n;let a=n.content;return a.endsWith(`
1
+ import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{n as t,t as n}from"./memoize-BK3gG5ob.js";import{Ad as r,Fd as i,Md as a,Pd as o,_b as s,lb as c,vu as l,yu as u}from"./loadAgentsDir-CbtNPJV3.js";import{Rn as d,t as f}from"./src-DL3w8VPk2.js";import{T as p,c as m,f as h,i as g,u as _,x as v}from"./debug-BQj6h99Q.js";import{n as y,t as b}from"./execSyncWrapper-CqvQqke-.js";import{r as x,t as S}from"./which-BR8YVCCW.js";import{basename as C}from"path";import{spawn as w,spawnSync as T}from"child_process";function E(e){return!!x(e)}function D(e){let t=C(e.split(` `)[0]??``);return A.find(e=>t.includes(e))}function O(e,t,n){return n?M.has(e)?[`-g`,`${t}:${n}`]:e===`subl`?[`${t}:${n}`]:[t]:[t]}function k(e,t){let n=N();if(!n)return!1;let r=n.split(` `),i=r[0]??n,a=r.slice(1),o=D(n);if(o){let r=O(o,e,t),s={detached:!0,stdio:`ignore`},c;return c=process.platform===`win32`?w(`${n} ${r.map(e=>`"${e}"`).join(` `)}`,{...s,shell:!0}):w(i,[...a,...r],s),c.on(`error`,e=>m(`editor spawn failed: ${e}`,{level:`error`})),c.unref(),!0}let s=d.get(process.stdout);if(!s)return!1;let c=t&&j.test(C(i));s.enterAlternateScreen();try{let r={stdio:`inherit`},o;return o=process.platform===`win32`?T(`${n} ${c?`+${t} `:``}"${e}"`,{...r,shell:!0}):T(i,[...a,...c?[`+${t}`,e]:[e]],r),o.error?(m(`editor spawn failed: ${o.error}`,{level:`error`}),!1):!0}finally{s.exitAlternateScreen()}}var A,j,M,N,P=e((()=>{n(),f(),g(),S(),A=[`code`,`cursor`,`windsurf`,`codium`,`subl`,`atom`,`gedit`,`notepad++`,`notepad`],j=/\b(vi|vim|nvim|nano|emacs|pico|micro|helix|hx)\b/,M=new Set([`code`,`cursor`,`windsurf`,`codium`]),N=t(()=>process.env.VISUAL?.trim()?process.env.VISUAL.trim():process.env.EDITOR?.trim()?process.env.EDITOR.trim():process.platform===`win32`?`start /wait notepad`:[`code`,`vi`,`nano`].find(e=>E(e)))}));function F(e){return D(e)!==void 0}function I(e){let t=_(),n=d.get(process.stdout);if(!n)throw Error(`Ink instance not found - cannot pause rendering`);let r=N();if(!r)return{content:null};try{t.statSync(e)}catch{return{content:null}}let i=!F(r);i?n.enterAlternateScreen():(n.pause(),n.suspendStdin());try{return b(`${z[r]??r} "${e}"`,{stdio:`inherit`}),{content:t.readFileSync(e,{encoding:`utf-8`})}}catch(e){if(typeof e==`object`&&e&&`status`in e&&typeof e.status==`number`){let t=e.status;if(t!==0)return{content:null,error:`${s(r)} exited with code ${t}`}}return{content:null}}finally{i?n.exitAlternateScreen():(n.resumeStdin(),n.resume())}}function L(e,t,n){let r=e;for(let[e,t]of Object.entries(n))if(t.type===`text`){let n=parseInt(e,10),i=t.content,s=r.indexOf(i);if(s!==-1){let e=a(n,o(i));r=r.slice(0,s)+e+r.slice(s+i.length)}}return r}function R(e,t){let n=_(),i=l();try{p(i,t?r(e,t):e,{encoding:`utf-8`,flush:!0});let n=I(i);if(n.content===null)return n;let a=n.content;return a.endsWith(`
2
2
  `)&&!a.endsWith(`
3
3
 
4
4
  `)&&(a=a.slice(0,-1)),t&&(a=L(a,e,t)),{content:a}}finally{try{n.unlinkSync(i)}catch{}}}var z,B=e((()=>{i(),f(),P(),y(),h(),c(),v(),u(),z={code:`code -w`,subl:`subl --wait`}}));export{P as a,N as i,R as n,k as o,B as r,I as t};
@@ -1 +1 @@
1
- import{Ao as e,Io as t,Lo as n,Mo as r}from"./loadAgentsDir-PPiD2Mfq.js";import{Wt as i,et as a}from"./state-BPFYBqm1.js";import{P as o,R as s,c,i as l}from"./debug-BQj6h99Q.js";import{kn as u,vt as d,wn as f,yt as p}from"./settings-CvhsRFaT.js";import{m,n as h}from"./git-DplvjXEY.js";import{o as g,s as _}from"./log-BlJ7CcKG.js";import{$n as v,Qn as y}from"./model-sviY1inu.js";import{isAbsolute as b,resolve as x}from"path";y(),i(),l(),s(),f(),m(),g(),t(),d();function S(e,t,n){let r=[],i=[],a=[];for(let[o,s]of Object.entries(e)){let e=t[o],c=w(s.source,n?.projectRoot);e?s.sourceIsFallback||v(c,e.source)?a.push(o):i.push({name:o,declaredSource:c,materializedSource:e.source}):r.push(o)}return{missing:r,sourceChanged:i,upToDate:a}}async function C(t){let i=r();if(Object.keys(i).length===0)return{installed:[],updated:[],failed:[],upToDate:[],skipped:[]};let s;try{s=await n()}catch(e){_(e),s={}}let l=S(i,s,{projectRoot:a()}),d=[...l.missing.map(e=>({name:e,source:w(i[e].source),action:`install`})),...l.sourceChanged.map(({name:e,declaredSource:t})=>({name:e,source:t,action:`update`}))],f=[],m=[];for(let e of d){if(t?.skip?.(e.name,e.source)){f.push(e.name);continue}if(e.action===`update`&&p(e.source)&&!await u(e.source.path)){c(`[reconcile] '${e.name}' declared path does not exist; keeping materialized entry`),f.push(e.name);continue}m.push(e)}if(m.length===0)return{installed:[],updated:[],failed:[],upToDate:l.upToDate,skipped:f};c(`[reconcile] ${m.length} marketplace(s): ${m.map(e=>`${e.name}(${e.action})`).join(`, `)}`);let h=[],g=[],v=[];for(let n=0;n<m.length;n++){let{name:r,source:i,action:a}=m[n];t?.onProgress?.({type:`installing`,name:r,action:a,index:n+1,total:m.length});try{let n=await e(i);a===`install`?h.push(r):g.push(r),t?.onProgress?.({type:`installed`,name:r,alreadyMaterialized:n.alreadyMaterialized})}catch(e){let n=o(e);v.push({name:r,error:n}),t?.onProgress?.({type:`failed`,name:r,error:n}),_(e)}}return{installed:h,updated:g,failed:v,upToDate:l.upToDate,skipped:f}}function w(e,t){if((e.source===`directory`||e.source===`file`)&&!b(e.path)){let n=t??a(),r=h(n);return{...e,path:x(r??n,e.path)}}return e}export{C as n,S as t};
1
+ import{Ao as e,Io as t,Lo as n,Mo as r}from"./loadAgentsDir-CbtNPJV3.js";import{Wt as i,et as a}from"./state-BPFYBqm1.js";import{P as o,R as s,c,i as l}from"./debug-BQj6h99Q.js";import{kn as u,vt as d,wn as f,yt as p}from"./settings-CvhsRFaT.js";import{m,n as h}from"./git-DplvjXEY.js";import{o as g,s as _}from"./log-BlJ7CcKG.js";import{$n as v,Qn as y}from"./model-DlLO7TSx.js";import{isAbsolute as b,resolve as x}from"path";y(),i(),l(),s(),f(),m(),g(),t(),d();function S(e,t,n){let r=[],i=[],a=[];for(let[o,s]of Object.entries(e)){let e=t[o],c=w(s.source,n?.projectRoot);e?s.sourceIsFallback||v(c,e.source)?a.push(o):i.push({name:o,declaredSource:c,materializedSource:e.source}):r.push(o)}return{missing:r,sourceChanged:i,upToDate:a}}async function C(t){let i=r();if(Object.keys(i).length===0)return{installed:[],updated:[],failed:[],upToDate:[],skipped:[]};let s;try{s=await n()}catch(e){_(e),s={}}let l=S(i,s,{projectRoot:a()}),d=[...l.missing.map(e=>({name:e,source:w(i[e].source),action:`install`})),...l.sourceChanged.map(({name:e,declaredSource:t})=>({name:e,source:t,action:`update`}))],f=[],m=[];for(let e of d){if(t?.skip?.(e.name,e.source)){f.push(e.name);continue}if(e.action===`update`&&p(e.source)&&!await u(e.source.path)){c(`[reconcile] '${e.name}' declared path does not exist; keeping materialized entry`),f.push(e.name);continue}m.push(e)}if(m.length===0)return{installed:[],updated:[],failed:[],upToDate:l.upToDate,skipped:f};c(`[reconcile] ${m.length} marketplace(s): ${m.map(e=>`${e.name}(${e.action})`).join(`, `)}`);let h=[],g=[],v=[];for(let n=0;n<m.length;n++){let{name:r,source:i,action:a}=m[n];t?.onProgress?.({type:`installing`,name:r,action:a,index:n+1,total:m.length});try{let n=await e(i);a===`install`?h.push(r):g.push(r),t?.onProgress?.({type:`installed`,name:r,alreadyMaterialized:n.alreadyMaterialized})}catch(e){let n=o(e);v.push({name:r,error:n}),t?.onProgress?.({type:`failed`,name:r,error:n}),_(e)}}return{installed:h,updated:g,failed:v,upToDate:l.upToDate,skipped:f}}function w(e,t){if((e.source===`directory`||e.source===`file`)&&!b(e.path)){let n=t??a(),r=h(n);return{...e,path:x(r??n,e.path)}}return e}export{C as n,S as t};
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{Jx as t,_h as n,_s as r,as as i,b_ as a,bh as o,ch as s,co as c,hh as l,i as u,is as d,lo as f,o as p,qx as m,uh as h,vs as g,x_ as _,yh as v}from"./loadAgentsDir-PPiD2Mfq.js";import{Wt as y,et as b}from"./state-BPFYBqm1.js";import{P as x,R as S,c as C,i as w}from"./debug-BQj6h99Q.js";import{o as T,s as E}from"./log-BlJ7CcKG.js";async function D(e){C(`refreshActivePlugins: clearing all plugin caches`),d(),s();let i=await f(),[a,c]=await Promise.all([r(),u(b())]),{enabled:l,disabled:p,errors:m}=i,[h,g]=await Promise.all([Promise.all(l.map(async e=>{if(e.mcpServers)return Object.keys(e.mcpServers).length;let n=await t(e,m);return n&&(e.mcpServers=n),n?Object.keys(n).length:0})),Promise.all(l.map(async e=>{if(e.lspServers)return Object.keys(e.lspServers).length;let t=await o(e,m);return t&&(e.lspServers=t),t?Object.keys(t).length:0}))]),v=h.reduce((e,t)=>e+t,0),y=g.reduce((e,t)=>e+t,0);e(e=>({...e,plugins:{...e.plugins,enabled:l,disabled:p,commands:a,errors:O(e.plugins.errors,m),needsRefresh:!1},agentDefinitions:c,mcp:{...e.mcp,pluginReconnectKey:e.mcp.pluginReconnectKey+1}})),n();let S=!1;try{await _()}catch(e){S=!0,E(e),C(`refreshActivePlugins: loadPluginHooks failed: ${x(e)}`)}let w=l.reduce((e,t)=>t.hooksConfig?e+Object.values(t.hooksConfig).reduce((e,t)=>e+(t?.reduce((e,t)=>e+t.hooks.length,0)??0),0):e,0);return C(`refreshActivePlugins: ${l.length} enabled, ${a.length} commands, ${c.allAgents.length} agents, ${w} hooks, ${v} MCP, ${y} LSP`),{enabled_count:l.length,disabled_count:p.length,command_count:a.length,agent_count:c.allAgents.length,hook_count:w,mcp_count:v,lsp_count:y,error_count:m.length+ +!!S,agentDefinitions:c,pluginCommands:a}}function O(e,t){let n=e.filter(e=>e.source===`lsp-manager`||e.source.startsWith(`plugin:`)),r=new Set(t.map(k));return[...n.filter(e=>!r.has(k(e))),...t]}function k(e){return e.type===`generic-error`?`generic-error:${e.source}:${e.error}`:`${e.type}:${e.source}`}var A=e((()=>{y(),l(),p(),w(),S(),T(),i(),g(),a(),v(),m(),h(),c()}));export{D as n,A as t};
1
+ import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{Jx as t,_h as n,_s as r,as as i,b_ as a,bh as o,ch as s,co as c,hh as l,i as u,is as d,lo as f,o as p,qx as m,uh as h,vs as g,x_ as _,yh as v}from"./loadAgentsDir-CbtNPJV3.js";import{Wt as y,et as b}from"./state-BPFYBqm1.js";import{P as x,R as S,c as C,i as w}from"./debug-BQj6h99Q.js";import{o as T,s as E}from"./log-BlJ7CcKG.js";async function D(e){C(`refreshActivePlugins: clearing all plugin caches`),d(),s();let i=await f(),[a,c]=await Promise.all([r(),u(b())]),{enabled:l,disabled:p,errors:m}=i,[h,g]=await Promise.all([Promise.all(l.map(async e=>{if(e.mcpServers)return Object.keys(e.mcpServers).length;let n=await t(e,m);return n&&(e.mcpServers=n),n?Object.keys(n).length:0})),Promise.all(l.map(async e=>{if(e.lspServers)return Object.keys(e.lspServers).length;let t=await o(e,m);return t&&(e.lspServers=t),t?Object.keys(t).length:0}))]),v=h.reduce((e,t)=>e+t,0),y=g.reduce((e,t)=>e+t,0);e(e=>({...e,plugins:{...e.plugins,enabled:l,disabled:p,commands:a,errors:O(e.plugins.errors,m),needsRefresh:!1},agentDefinitions:c,mcp:{...e.mcp,pluginReconnectKey:e.mcp.pluginReconnectKey+1}})),n();let S=!1;try{await _()}catch(e){S=!0,E(e),C(`refreshActivePlugins: loadPluginHooks failed: ${x(e)}`)}let w=l.reduce((e,t)=>t.hooksConfig?e+Object.values(t.hooksConfig).reduce((e,t)=>e+(t?.reduce((e,t)=>e+t.hooks.length,0)??0),0):e,0);return C(`refreshActivePlugins: ${l.length} enabled, ${a.length} commands, ${c.allAgents.length} agents, ${w} hooks, ${v} MCP, ${y} LSP`),{enabled_count:l.length,disabled_count:p.length,command_count:a.length,agent_count:c.allAgents.length,hook_count:w,mcp_count:v,lsp_count:y,error_count:m.length+ +!!S,agentDefinitions:c,pluginCommands:a}}function O(e,t){let n=e.filter(e=>e.source===`lsp-manager`||e.source.startsWith(`plugin:`)),r=new Set(t.map(k));return[...n.filter(e=>!r.has(k(e))),...t]}function k(e){return e.type===`generic-error`?`generic-error:${e.source}:${e.error}`:`${e.type}:${e.source}`}var A=e((()=>{y(),l(),p(),w(),S(),T(),i(),g(),a(),v(),m(),h(),c()}));export{D as n,A as t};
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{o as t}from"./envUtils-DcaKZlRU.js";import{uT as n}from"./loadAgentsDir-PPiD2Mfq.js";import{Wt as r}from"./state-BPFYBqm1.js";import{l as i,o as a}from"./stringUtils-BjnclTLB.js";import{t as o}from"./settingsSync-nxeaGM2-.js";import{n as s,t as c}from"./refresh-B87z39Zs.js";function l(e,t){return`${e} ${i(e,t)}`}var u;e((()=>{r(),o(),t(),c(),n(),a(),u=async(e,t)=>{let n=await s(t.setAppState),r=`Reloaded: ${[l(n.enabled_count,`plugin`),l(n.command_count,`skill`),l(n.agent_count,`agent`),l(n.hook_count,`hook`),l(n.mcp_count,`plugin MCP server`),l(n.lsp_count,`plugin LSP server`)].join(` · `)}`;return n.error_count>0&&(r+=`\n${l(n.error_count,`error`)} during load. Run /doctor for details.`),{type:`text`,value:r}}}))();export{u as call};
1
+ import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{o as t}from"./envUtils-DcaKZlRU.js";import{uT as n}from"./loadAgentsDir-CbtNPJV3.js";import{Wt as r}from"./state-BPFYBqm1.js";import{l as i,o as a}from"./stringUtils-BjnclTLB.js";import{t as o}from"./settingsSync-BhlegQAU.js";import{n as s,t as c}from"./refresh-DEXe3Lmx.js";function l(e,t){return`${e} ${i(e,t)}`}var u;e((()=>{r(),o(),t(),c(),n(),a(),u=async(e,t)=>{let n=await s(t.setAppState),r=`Reloaded: ${[l(n.enabled_count,`plugin`),l(n.command_count,`skill`),l(n.agent_count,`agent`),l(n.hook_count,`hook`),l(n.mcp_count,`plugin MCP server`),l(n.lsp_count,`plugin LSP server`)].join(` · `)}`;return n.error_count>0&&(r+=`\n${l(n.error_count,`error`)} during load. Run /doctor for details.`),{type:`text`,value:r}}}))();export{u as call};
@@ -1 +1 @@
1
- import{o as e,u as t}from"./envUtils-DcaKZlRU.js";import{n,t as r}from"./axios-DaWTGg7G.js";import{C as i,P as a,R as o,c as s,i as c,nt as l,tt as u,x as d}from"./debug-BQj6h99Q.js";import{O as f,k as p}from"./git-DplvjXEY.js";import{n as m,r as h}from"./analytics-DJobLaWP.js";import{dn as g,fn as _}from"./model-sviY1inu.js";import{c as ee,n as v}from"./sessionState-BTFowSpR.js";import{i as y,t as b}from"./sessionIdCompat-Dgp6PW_1.js";import{a as x,r as S}from"./bridgeConfig-DnFfCpGd.js";import{i as C,o as w,s as T}from"./debugUtils-B86DM1Sp.js";import{a as E,c as D,i as te,n as ne,o as O,r as re,s as ie,t as k}from"./bridgeMessaging-B_hnuUHb.js";import{a as ae,r as A,t as oe}from"./flushGate-n4kK6H1U.js";import{t as j}from"./workSecret-BUd8cQ6-.js";import{i as M}from"./trustedDevice-BtXHXu-T.js";import{t as se}from"./jwtUtils-YCoZL0FW.js";e(),u(),f(),m(),g(),b(),v(),r(),c(),o(),d(),w();var N=`2023-06-01`;function P(e){return{Authorization:`Bearer ${e}`,"Content-Type":`application/json`,"anthropic-version":N}}async function ce(e,t,r,o,c){let l=`${e}/v1/code/sessions`,u;try{u=await n.post(l,{title:r,bridge:{},...c?.length?{tags:c}:{}},{headers:P(t),timeout:o,validateStatus:e=>e<500})}catch(e){return s(`[code-session] Session create request failed: ${a(e)}`),null}if(u.status!==200&&u.status!==201){let e=C(u.data);return s(`[code-session] Session create failed ${u.status}${e?`: ${e}`:``}`),null}let d=u.data;return!d||typeof d!=`object`||!(`session`in d)||!d.session||typeof d.session!=`object`||!(`id`in d.session)||typeof d.session.id!=`string`||!d.session.id.startsWith(`cse_`)?(s(`[code-session] No session.id (cse_*) in response: ${i(d).slice(0,200)}`),null):d.session.id}async function F(e,t,r,o,c){let l=`${t}/v1/code/sessions/${e}/bridge`,u=P(r);c&&(u[`X-Trusted-Device-Token`]=c);let d;try{d=await n.post(l,{},{headers:u,timeout:o,validateStatus:e=>e<500})}catch(e){return s(`[code-session] /bridge request failed: ${a(e)}`),null}if(d.status!==200){let e=C(d.data);return s(`[code-session] /bridge failed ${d.status}${e?`: ${e}`:``}`),null}let f=d.data;if(typeof f!=`object`||!f||!(`worker_jwt`in f)||typeof f.worker_jwt!=`string`||!(`expires_in`in f)||typeof f.expires_in!=`number`||!(`api_base_url`in f)||typeof f.api_base_url!=`string`||!(`worker_epoch`in f))return s(`[code-session] /bridge response malformed (need worker_jwt, expires_in, api_base_url, worker_epoch): ${i(f).slice(0,200)}`),null;let p=f.worker_epoch,m=typeof p==`string`?Number(p):p;return typeof m!=`number`||!Number.isFinite(m)||!Number.isSafeInteger(m)?(s(`[code-session] /bridge worker_epoch invalid: ${i(p)}`),null):{worker_jwt:f.worker_jwt,api_base_url:f.api_base_url,expires_in:f.expires_in,worker_epoch:m}}r(),w(),c(),o(),x();var I=`2023-06-01`;function L(e){return{Authorization:`Bearer ${e}`,"Content-Type":`application/json`,"anthropic-version":I}}async function R(e){let{baseUrl:n,orgUUID:r,title:i,getAccessToken:o,onAuth401:c,toSDKMessages:u,initialHistoryCap:d,initialMessages:f,onInboundMessage:m,onUserMessage:g,onPermissionResponse:_,onInterrupt:v,onSetModel:y,onSetMaxThinkingTokens:b,onSetPermissionMode:x,onStateChange:S,outboundOnly:C,tags:w}=e,M=await ae(),N=o();if(!N)return s(`[remote-bridge] No OAuth token`),null;let P=await z(()=>ce(n,N,i,M.http_timeout_ms,w),`createCodeSession`,M);if(!P)return S?.(`failed`,`Session creation failed — see debug log`),T(`v2_session_create_failed`,void 0,!0),null;let F=P;s(`[remote-bridge] Created session ${F}`),p(`info`,`bridge_repl_v2_session_created`);let I=await z(()=>B(F,n,N,M.http_timeout_ms),`fetchRemoteCredentials`,M);if(!I)return S?.(`failed`,`Remote credentials fetch failed — see debug log`),T(`v2_remote_creds_failed`,void 0,!0),V(F,n,N,r,M.http_timeout_ms),null;s(`[remote-bridge] Fetched bridge credentials (expires_in=${I.expires_in}s)`);let L=j(I.api_base_url,F);s(`[remote-bridge] v2 session URL: ${L}`);let R;try{R=await A({sessionUrl:L,ingressToken:I.worker_jwt,sessionId:F,epoch:I.worker_epoch,heartbeatIntervalMs:M.heartbeat_interval_ms,heartbeatJitterFraction:M.heartbeat_jitter_fraction,getAuthToken:()=>I.worker_jwt,outboundOnly:C})}catch(e){return s(`[remote-bridge] v2 transport setup failed: ${a(e)}`,{level:`error`}),S?.(`failed`,`Transport setup failed: ${a(e)}`),T(`v2_transport_setup_failed`,void 0,!0),V(F,n,N,r,M.http_timeout_ms),null}s(`[remote-bridge] v2 transport created (epoch=${I.worker_epoch})`),S?.(`ready`);let H=new k(M.uuid_dedup_buffer_size),U=new Set;if(f)for(let e of f)U.add(e.uuid),H.add(e.uuid);let le=new k(M.uuid_dedup_buffer_size),W=new oe,G=!1,K=!1,q=!1,J=!g,Y=`initial`,X;function Z(e){K||h(`tengu_bridge_repl_connect_timeout`,{v2:!0,elapsed_ms:M.connect_timeout_ms,cause:e})}ee(e=>{K||R.reportMetadata(e)},{replayCurrent:!0});let Q=se({refreshBufferMs:M.token_refresh_buffer_ms,getAccessToken:async()=>{let e=o();return c&&await c(e??``),o()??e},onRefresh:(e,t)=>{(async()=>{if(q||K){s(`[remote-bridge] Recovery already in flight, skipping proactive refresh`);return}q=!0;try{let r=await z(()=>B(e,n,t,M.http_timeout_ms),`fetchRemoteCredentials (proactive)`,M);if(!r||K)return;await ue(r,`proactive_refresh`),s(`[remote-bridge] Transport rebuilt (proactive refresh)`)}catch(e){s(`[remote-bridge] Proactive refresh rebuild failed: ${a(e)}`,{level:`error`}),p(`error`,`bridge_repl_v2_proactive_refresh_failed`),K||S?.(`failed`,`Refresh failed: ${a(e)}`)}finally{q=!1}})()},label:`remote`});Q.scheduleFromExpiresIn(F,I.expires_in);function $(){R.setOnConnect(()=>{if(clearTimeout(X),s(`[remote-bridge] v2 transport connected`),p(`info`,`bridge_repl_v2_transport_connected`),h(`tengu_bridge_repl_ws_connected`,{v2:!0,cause:Y}),!G&&f&&f.length>0){G=!0;let e=R;pe(f).catch(e=>s(`[remote-bridge] flushHistory failed: ${e}`)).finally(()=>{R!==e||K||q||(fe(),S?.(`connected`))})}else W.active||S?.(`connected`)}),R.setOnData(e=>{re(e,H,le,m,_?e=>{R.reportState(`running`),_(e)}:void 0,e=>te(e,{transport:R,sessionId:F,onInterrupt:v,onSetModel:y,onSetMaxThinkingTokens:b,onSetPermissionMode:x,outboundOnly:C}))}),R.setOnClose(e=>{if(clearTimeout(X),!K){if(s(`[remote-bridge] v2 transport closed (code=${e})`),h(`tengu_bridge_repl_ws_closed`,{code:e,v2:!0}),e===401&&!q){de();return}S?.(`failed`,`Transport closed (code ${e})`)}})}async function ue(e,t){Y=t,W.start();try{let t=R.getLastSequenceNum();if(R.close(),R=await A({sessionUrl:j(e.api_base_url,F),ingressToken:e.worker_jwt,sessionId:F,epoch:e.worker_epoch,heartbeatIntervalMs:M.heartbeat_interval_ms,heartbeatJitterFraction:M.heartbeat_jitter_fraction,initialSequenceNum:t,getAuthToken:()=>e.worker_jwt,outboundOnly:C}),K){R.close();return}$(),R.connect(),X=setTimeout(Z,M.connect_timeout_ms,Y),Q.scheduleFromExpiresIn(F,e.expires_in),fe()}finally{W.drop()}}async function de(){if(!q){q=!0,S?.(`reconnecting`,`JWT expired — refreshing`),s(`[remote-bridge] 401 on SSE — attempting JWT refresh`);try{let e=o();c&&await c(e??``);let t=o()??e;if(!t||K){K||S?.(`failed`,`JWT refresh failed: no OAuth token`);return}let r=await z(()=>B(F,n,t,M.http_timeout_ms),`fetchRemoteCredentials (recovery)`,M);if(!r||K){K||S?.(`failed`,`JWT refresh failed after 401`);return}G=!1,await ue(r,`auth_401_recovery`),s(`[remote-bridge] Transport rebuilt after 401`)}catch(e){s(`[remote-bridge] 401 recovery failed: ${a(e)}`,{level:`error`}),p(`error`,`bridge_repl_v2_jwt_refresh_failed`),K||S?.(`failed`,`JWT refresh failed: ${a(e)}`)}finally{q=!1}}}$(),f&&f.length>0&&W.start(),R.connect(),X=setTimeout(Z,M.connect_timeout_ms,Y);function fe(){let e=W.end();if(e.length===0)return;for(let t of e)H.add(t.uuid);let t=u(e).map(e=>({...e,session_id:F}));D(e)&&R.reportState(`running`),s(`[remote-bridge] Drained ${e.length} queued message(s) after flush`),R.writeBatch(t)}async function pe(e){let t=e.filter(E),n=d>0&&t.length>d?t.slice(-d):t;n.length<t.length&&s(`[remote-bridge] Capped initial flush: ${t.length} -> ${n.length} (cap=${d})`);let r=u(n).map(e=>({...e,session_id:F}));if(r.length===0)return;let i=t.at(-1);i&&ie(i)&&R.reportState(`running`),s(`[remote-bridge] Flushing ${r.length} history events`),await R.writeBatch(r)}async function me(){if(K)return;K=!0,Q.cancelAll(),clearTimeout(X),W.drop(),R.reportState(`idle`);let e={...O(F),session_id:F};R.write(e);let t=o(),i=await V(F,n,t,r,M.teardown_archive_timeout_ms);if(i===401&&c)try{await c(t??``),t=o(),i=await V(F,n,t,r,M.teardown_archive_timeout_ms)}catch(e){s(`[remote-bridge] Teardown 401 retry threw: ${a(e)}`,{level:`error`})}R.close();let l=i===`no_token`?`skipped_no_token`:i===`timeout`||i===`error`?`network_error`:i>=500?`server_5xx`:i>=400?`server_4xx`:`ok`;s(`[remote-bridge] Torn down (archive=${i})`),p(`info`,`bridge_repl_v2_teardown`),h(`tengu_bridge_repl_teardown`,{v2:!0,archive_status:l,archive_ok:typeof i==`number`&&i<400,archive_http_status:typeof i==`number`?i:void 0,archive_timeout:i===`timeout`,archive_no_token:i===`no_token`})}let he=l(me);return h(`tengu_bridge_repl_started`,{has_initial_messages:!!(f&&f.length>0),v2:!0,expires_in_s:I.expires_in,inProtectedNamespace:t()}),{bridgeSessionId:F,environmentId:``,sessionIngressUrl:I.api_base_url,writeMessages(e){let t=e.filter(e=>E(e)&&!U.has(e.uuid)&&!H.has(e.uuid));if(t.length===0)return;if(!J)for(let e of t){let t=ne(e);if(t!==void 0&&g?.(t,F)){J=!0;break}}if(W.enqueue(...t)){s(`[remote-bridge] Queued ${t.length} message(s) during flush`);return}for(let e of t)H.add(e.uuid);let n=u(t).map(e=>({...e,session_id:F}));D(t)&&R.reportState(`running`),s(`[remote-bridge] Sending ${t.length} message(s)`),R.writeBatch(n)},writeSdkMessages(e){let t=e.filter(e=>!e.uuid||!H.has(e.uuid));if(t.length===0)return;for(let e of t)e.uuid&&H.add(e.uuid);let n=t.map(e=>({...e,session_id:F}));R.writeBatch(n)},sendControlRequest(e){if(q){s(`[remote-bridge] Dropping control_request during 401 recovery: ${e.request_id}`);return}let t={...e,session_id:F};e.request?.subtype===`can_use_tool`&&R.reportState(`requires_action`),R.write(t),s(`[remote-bridge] Sent control_request request_id=${e.request_id}`)},sendControlResponse(e){if(q){s(`[remote-bridge] Dropping control_response during 401 recovery`);return}let t={...e,session_id:F};R.reportState(`running`),R.write(t),s(`[remote-bridge] Sent control_response`)},sendControlCancelRequest(e){if(q){s(`[remote-bridge] Dropping control_cancel_request during 401 recovery: ${e}`);return}let t={type:`control_cancel_request`,request_id:e,session_id:F};R.reportState(`running`),R.write(t),s(`[remote-bridge] Sent control_cancel_request request_id=${e}`)},sendResult(){if(q){s(`[remote-bridge] Dropping result during 401 recovery`);return}R.reportState(`idle`);let e={...O(F),session_id:F};R.write(e),s(`[remote-bridge] Sent result`)},async teardown(){he(),await me()}}}async function z(e,t,n){let r=n.init_retry_max_attempts;for(let i=1;i<=r;i++){let a=await e();if(a!==null)return a;if(i<r){let e=n.init_retry_base_delay_ms*2**(i-1),a=e*n.init_retry_jitter_fraction*(2*Math.random()-1),o=Math.min(e+a,n.init_retry_max_delay_ms);s(`[remote-bridge] ${t} failed (attempt ${i}/${r}), retrying in ${Math.round(o)}ms`),await _(o)}}return null}async function B(e,t,n,r){let i=await F(e,t,n,r,M());return i?S()?{...i,api_base_url:t}:i:null}async function V(e,t,r,i,o){if(!r)return`no_token`;let c=y(e);try{let e=await n.post(`${t}/v1/sessions/${c}/archive`,{},{headers:{...L(r),"anthropic-beta":`ccr-byoc-2025-07-29`,"x-organization-uuid":i},timeout:o,validateStatus:()=>!0});return s(`[remote-bridge] Archive ${c} status=${e.status}`),e.status}catch(e){return s(`[remote-bridge] Archive failed: ${a(e)}`),n.isAxiosError(e)&&e.code===`ECONNABORTED`?`timeout`:`error`}}export{R as initEnvLessBridgeCore};
1
+ import{o as e,u as t}from"./envUtils-DcaKZlRU.js";import{n,t as r}from"./axios-DaWTGg7G.js";import{C as i,P as a,R as o,c as s,i as c,nt as l,tt as u,x as d}from"./debug-BQj6h99Q.js";import{O as f,k as p}from"./git-DplvjXEY.js";import{n as m,r as h}from"./analytics-DJobLaWP.js";import{dn as g,fn as _}from"./model-DlLO7TSx.js";import{c as ee,n as v}from"./sessionState-BlbRQ3Y6.js";import{i as y,t as b}from"./sessionIdCompat-Dgp6PW_1.js";import{a as x,r as S}from"./bridgeConfig-B3mR0kJ0.js";import{i as C,o as w,s as T}from"./debugUtils-B86DM1Sp.js";import{a as E,c as D,i as te,n as ne,o as O,r as re,s as ie,t as k}from"./bridgeMessaging-wZ5EKxW_.js";import{a as ae,r as A,t as oe}from"./flushGate-COa_KO98.js";import{t as j}from"./workSecret-BUd8cQ6-.js";import{i as M}from"./trustedDevice-CdLAZK6m.js";import{t as se}from"./jwtUtils-YCoZL0FW.js";e(),u(),f(),m(),g(),b(),v(),r(),c(),o(),d(),w();var N=`2023-06-01`;function P(e){return{Authorization:`Bearer ${e}`,"Content-Type":`application/json`,"anthropic-version":N}}async function ce(e,t,r,o,c){let l=`${e}/v1/code/sessions`,u;try{u=await n.post(l,{title:r,bridge:{},...c?.length?{tags:c}:{}},{headers:P(t),timeout:o,validateStatus:e=>e<500})}catch(e){return s(`[code-session] Session create request failed: ${a(e)}`),null}if(u.status!==200&&u.status!==201){let e=C(u.data);return s(`[code-session] Session create failed ${u.status}${e?`: ${e}`:``}`),null}let d=u.data;return!d||typeof d!=`object`||!(`session`in d)||!d.session||typeof d.session!=`object`||!(`id`in d.session)||typeof d.session.id!=`string`||!d.session.id.startsWith(`cse_`)?(s(`[code-session] No session.id (cse_*) in response: ${i(d).slice(0,200)}`),null):d.session.id}async function F(e,t,r,o,c){let l=`${t}/v1/code/sessions/${e}/bridge`,u=P(r);c&&(u[`X-Trusted-Device-Token`]=c);let d;try{d=await n.post(l,{},{headers:u,timeout:o,validateStatus:e=>e<500})}catch(e){return s(`[code-session] /bridge request failed: ${a(e)}`),null}if(d.status!==200){let e=C(d.data);return s(`[code-session] /bridge failed ${d.status}${e?`: ${e}`:``}`),null}let f=d.data;if(typeof f!=`object`||!f||!(`worker_jwt`in f)||typeof f.worker_jwt!=`string`||!(`expires_in`in f)||typeof f.expires_in!=`number`||!(`api_base_url`in f)||typeof f.api_base_url!=`string`||!(`worker_epoch`in f))return s(`[code-session] /bridge response malformed (need worker_jwt, expires_in, api_base_url, worker_epoch): ${i(f).slice(0,200)}`),null;let p=f.worker_epoch,m=typeof p==`string`?Number(p):p;return typeof m!=`number`||!Number.isFinite(m)||!Number.isSafeInteger(m)?(s(`[code-session] /bridge worker_epoch invalid: ${i(p)}`),null):{worker_jwt:f.worker_jwt,api_base_url:f.api_base_url,expires_in:f.expires_in,worker_epoch:m}}r(),w(),c(),o(),x();var I=`2023-06-01`;function L(e){return{Authorization:`Bearer ${e}`,"Content-Type":`application/json`,"anthropic-version":I}}async function R(e){let{baseUrl:n,orgUUID:r,title:i,getAccessToken:o,onAuth401:c,toSDKMessages:u,initialHistoryCap:d,initialMessages:f,onInboundMessage:m,onUserMessage:g,onPermissionResponse:_,onInterrupt:v,onSetModel:y,onSetMaxThinkingTokens:b,onSetPermissionMode:x,onStateChange:S,outboundOnly:C,tags:w}=e,M=await ae(),N=o();if(!N)return s(`[remote-bridge] No OAuth token`),null;let P=await z(()=>ce(n,N,i,M.http_timeout_ms,w),`createCodeSession`,M);if(!P)return S?.(`failed`,`Session creation failed — see debug log`),T(`v2_session_create_failed`,void 0,!0),null;let F=P;s(`[remote-bridge] Created session ${F}`),p(`info`,`bridge_repl_v2_session_created`);let I=await z(()=>B(F,n,N,M.http_timeout_ms),`fetchRemoteCredentials`,M);if(!I)return S?.(`failed`,`Remote credentials fetch failed — see debug log`),T(`v2_remote_creds_failed`,void 0,!0),V(F,n,N,r,M.http_timeout_ms),null;s(`[remote-bridge] Fetched bridge credentials (expires_in=${I.expires_in}s)`);let L=j(I.api_base_url,F);s(`[remote-bridge] v2 session URL: ${L}`);let R;try{R=await A({sessionUrl:L,ingressToken:I.worker_jwt,sessionId:F,epoch:I.worker_epoch,heartbeatIntervalMs:M.heartbeat_interval_ms,heartbeatJitterFraction:M.heartbeat_jitter_fraction,getAuthToken:()=>I.worker_jwt,outboundOnly:C})}catch(e){return s(`[remote-bridge] v2 transport setup failed: ${a(e)}`,{level:`error`}),S?.(`failed`,`Transport setup failed: ${a(e)}`),T(`v2_transport_setup_failed`,void 0,!0),V(F,n,N,r,M.http_timeout_ms),null}s(`[remote-bridge] v2 transport created (epoch=${I.worker_epoch})`),S?.(`ready`);let H=new k(M.uuid_dedup_buffer_size),U=new Set;if(f)for(let e of f)U.add(e.uuid),H.add(e.uuid);let le=new k(M.uuid_dedup_buffer_size),W=new oe,G=!1,K=!1,q=!1,J=!g,Y=`initial`,X;function Z(e){K||h(`tengu_bridge_repl_connect_timeout`,{v2:!0,elapsed_ms:M.connect_timeout_ms,cause:e})}ee(e=>{K||R.reportMetadata(e)},{replayCurrent:!0});let Q=se({refreshBufferMs:M.token_refresh_buffer_ms,getAccessToken:async()=>{let e=o();return c&&await c(e??``),o()??e},onRefresh:(e,t)=>{(async()=>{if(q||K){s(`[remote-bridge] Recovery already in flight, skipping proactive refresh`);return}q=!0;try{let r=await z(()=>B(e,n,t,M.http_timeout_ms),`fetchRemoteCredentials (proactive)`,M);if(!r||K)return;await ue(r,`proactive_refresh`),s(`[remote-bridge] Transport rebuilt (proactive refresh)`)}catch(e){s(`[remote-bridge] Proactive refresh rebuild failed: ${a(e)}`,{level:`error`}),p(`error`,`bridge_repl_v2_proactive_refresh_failed`),K||S?.(`failed`,`Refresh failed: ${a(e)}`)}finally{q=!1}})()},label:`remote`});Q.scheduleFromExpiresIn(F,I.expires_in);function $(){R.setOnConnect(()=>{if(clearTimeout(X),s(`[remote-bridge] v2 transport connected`),p(`info`,`bridge_repl_v2_transport_connected`),h(`tengu_bridge_repl_ws_connected`,{v2:!0,cause:Y}),!G&&f&&f.length>0){G=!0;let e=R;pe(f).catch(e=>s(`[remote-bridge] flushHistory failed: ${e}`)).finally(()=>{R!==e||K||q||(fe(),S?.(`connected`))})}else W.active||S?.(`connected`)}),R.setOnData(e=>{re(e,H,le,m,_?e=>{R.reportState(`running`),_(e)}:void 0,e=>te(e,{transport:R,sessionId:F,onInterrupt:v,onSetModel:y,onSetMaxThinkingTokens:b,onSetPermissionMode:x,outboundOnly:C}))}),R.setOnClose(e=>{if(clearTimeout(X),!K){if(s(`[remote-bridge] v2 transport closed (code=${e})`),h(`tengu_bridge_repl_ws_closed`,{code:e,v2:!0}),e===401&&!q){de();return}S?.(`failed`,`Transport closed (code ${e})`)}})}async function ue(e,t){Y=t,W.start();try{let t=R.getLastSequenceNum();if(R.close(),R=await A({sessionUrl:j(e.api_base_url,F),ingressToken:e.worker_jwt,sessionId:F,epoch:e.worker_epoch,heartbeatIntervalMs:M.heartbeat_interval_ms,heartbeatJitterFraction:M.heartbeat_jitter_fraction,initialSequenceNum:t,getAuthToken:()=>e.worker_jwt,outboundOnly:C}),K){R.close();return}$(),R.connect(),X=setTimeout(Z,M.connect_timeout_ms,Y),Q.scheduleFromExpiresIn(F,e.expires_in),fe()}finally{W.drop()}}async function de(){if(!q){q=!0,S?.(`reconnecting`,`JWT expired — refreshing`),s(`[remote-bridge] 401 on SSE — attempting JWT refresh`);try{let e=o();c&&await c(e??``);let t=o()??e;if(!t||K){K||S?.(`failed`,`JWT refresh failed: no OAuth token`);return}let r=await z(()=>B(F,n,t,M.http_timeout_ms),`fetchRemoteCredentials (recovery)`,M);if(!r||K){K||S?.(`failed`,`JWT refresh failed after 401`);return}G=!1,await ue(r,`auth_401_recovery`),s(`[remote-bridge] Transport rebuilt after 401`)}catch(e){s(`[remote-bridge] 401 recovery failed: ${a(e)}`,{level:`error`}),p(`error`,`bridge_repl_v2_jwt_refresh_failed`),K||S?.(`failed`,`JWT refresh failed: ${a(e)}`)}finally{q=!1}}}$(),f&&f.length>0&&W.start(),R.connect(),X=setTimeout(Z,M.connect_timeout_ms,Y);function fe(){let e=W.end();if(e.length===0)return;for(let t of e)H.add(t.uuid);let t=u(e).map(e=>({...e,session_id:F}));D(e)&&R.reportState(`running`),s(`[remote-bridge] Drained ${e.length} queued message(s) after flush`),R.writeBatch(t)}async function pe(e){let t=e.filter(E),n=d>0&&t.length>d?t.slice(-d):t;n.length<t.length&&s(`[remote-bridge] Capped initial flush: ${t.length} -> ${n.length} (cap=${d})`);let r=u(n).map(e=>({...e,session_id:F}));if(r.length===0)return;let i=t.at(-1);i&&ie(i)&&R.reportState(`running`),s(`[remote-bridge] Flushing ${r.length} history events`),await R.writeBatch(r)}async function me(){if(K)return;K=!0,Q.cancelAll(),clearTimeout(X),W.drop(),R.reportState(`idle`);let e={...O(F),session_id:F};R.write(e);let t=o(),i=await V(F,n,t,r,M.teardown_archive_timeout_ms);if(i===401&&c)try{await c(t??``),t=o(),i=await V(F,n,t,r,M.teardown_archive_timeout_ms)}catch(e){s(`[remote-bridge] Teardown 401 retry threw: ${a(e)}`,{level:`error`})}R.close();let l=i===`no_token`?`skipped_no_token`:i===`timeout`||i===`error`?`network_error`:i>=500?`server_5xx`:i>=400?`server_4xx`:`ok`;s(`[remote-bridge] Torn down (archive=${i})`),p(`info`,`bridge_repl_v2_teardown`),h(`tengu_bridge_repl_teardown`,{v2:!0,archive_status:l,archive_ok:typeof i==`number`&&i<400,archive_http_status:typeof i==`number`?i:void 0,archive_timeout:i===`timeout`,archive_no_token:i===`no_token`})}let he=l(me);return h(`tengu_bridge_repl_started`,{has_initial_messages:!!(f&&f.length>0),v2:!0,expires_in_s:I.expires_in,inProtectedNamespace:t()}),{bridgeSessionId:F,environmentId:``,sessionIngressUrl:I.api_base_url,writeMessages(e){let t=e.filter(e=>E(e)&&!U.has(e.uuid)&&!H.has(e.uuid));if(t.length===0)return;if(!J)for(let e of t){let t=ne(e);if(t!==void 0&&g?.(t,F)){J=!0;break}}if(W.enqueue(...t)){s(`[remote-bridge] Queued ${t.length} message(s) during flush`);return}for(let e of t)H.add(e.uuid);let n=u(t).map(e=>({...e,session_id:F}));D(t)&&R.reportState(`running`),s(`[remote-bridge] Sending ${t.length} message(s)`),R.writeBatch(n)},writeSdkMessages(e){let t=e.filter(e=>!e.uuid||!H.has(e.uuid));if(t.length===0)return;for(let e of t)e.uuid&&H.add(e.uuid);let n=t.map(e=>({...e,session_id:F}));R.writeBatch(n)},sendControlRequest(e){if(q){s(`[remote-bridge] Dropping control_request during 401 recovery: ${e.request_id}`);return}let t={...e,session_id:F};e.request?.subtype===`can_use_tool`&&R.reportState(`requires_action`),R.write(t),s(`[remote-bridge] Sent control_request request_id=${e.request_id}`)},sendControlResponse(e){if(q){s(`[remote-bridge] Dropping control_response during 401 recovery`);return}let t={...e,session_id:F};R.reportState(`running`),R.write(t),s(`[remote-bridge] Sent control_response`)},sendControlCancelRequest(e){if(q){s(`[remote-bridge] Dropping control_cancel_request during 401 recovery: ${e}`);return}let t={type:`control_cancel_request`,request_id:e,session_id:F};R.reportState(`running`),R.write(t),s(`[remote-bridge] Sent control_cancel_request request_id=${e}`)},sendResult(){if(q){s(`[remote-bridge] Dropping result during 401 recovery`);return}R.reportState(`idle`);let e={...O(F),session_id:F};R.write(e),s(`[remote-bridge] Sent result`)},async teardown(){he(),await me()}}}async function z(e,t,n){let r=n.init_retry_max_attempts;for(let i=1;i<=r;i++){let a=await e();if(a!==null)return a;if(i<r){let e=n.init_retry_base_delay_ms*2**(i-1),a=e*n.init_retry_jitter_fraction*(2*Math.random()-1),o=Math.min(e+a,n.init_retry_max_delay_ms);s(`[remote-bridge] ${t} failed (attempt ${i}/${r}), retrying in ${Math.round(o)}ms`),await _(o)}}return null}async function B(e,t,n,r){let i=await F(e,t,n,r,M());return i?S()?{...i,api_base_url:t}:i:null}async function V(e,t,r,i,o){if(!r)return`no_token`;let c=y(e);try{let e=await n.post(`${t}/v1/sessions/${c}/archive`,{},{headers:{...L(r),"anthropic-beta":`ccr-byoc-2025-07-29`,"x-organization-uuid":i},timeout:o,validateStatus:()=>!0});return s(`[remote-bridge] Archive ${c} status=${e.status}`),e.status}catch(e){return s(`[remote-bridge] Archive failed: ${a(e)}`),n.isAxiosError(e)&&e.code===`ECONNABORTED`?`timeout`:`error`}}export{R as initEnvLessBridgeCore};
@@ -1 +1 @@
1
- import{n as e,t}from"./axios-DaWTGg7G.js";import{Av as n,dT as r,jv as i,uT as a}from"./loadAgentsDir-PPiD2Mfq.js";import{A as o,M as s,O as c,w as l}from"./external-CEp-aPkt.js";import{n as ee,r as te,t as u}from"./lazySchema-B4D4qJVE.js";import{C as d,F as f,N as p,R as m,c as h,i as g,nt as ne,tt as re,x as ie}from"./debug-BQj6h99Q.js";import{Hn as _,Kn as v,N as y,P as b,Un as x,Vn as S}from"./settings-CvhsRFaT.js";import{l as C,s as w,u as T}from"./oauth-D38aRTUb.js";import{Pt as E,St as D,ct as O,dn as k,fn as A,gt as j}from"./model-sviY1inu.js";import{n as M,t as N}from"./userAgent-DUt0q-Vl.js";import{n as P,r as F,t as I}from"./syncCache-AMQMQ_HR.js";import{createHash as L}from"crypto";import{open as R,unlink as z}from"fs/promises";t(),te(),re(),m(),ie(),g(),u(),T(),b(),M(),k(),E(),a(),i();async function B(e,t){return`no_check_needed`}function V(e){return!0}x(),I();var H=ee(()=>l({uuid:o(),checksum:o(),settings:c(o(),s())})),ae=1e4,U=5,W=3600*1e3,G=null,K=null,q=null,J=3e4;function oe(){K||P()&&(K=new Promise(e=>{q=e,setTimeout(()=>{q&&(h(`Remote settings: Loading promise timed out, resolving anyway`),q(),q=null)},J)}))}function se(){return`${C().BASE_API_URL}/api/claude_code/settings`}function Y(e){if(Array.isArray(e))return e.map(Y);if(typeof e==`object`&&e){let t={};for(let n of Object.keys(e).sort())t[n]=Y(e[n]);return t}return e}function ce(e){let t=d(Y(e));return`sha256:${L(`sha256`).update(t).digest(`hex`)}`}function le(){return P()}async function ue(){K&&await K}function de(){try{let{key:e}=j({skipRetrievingKeyFromApiKeyHelper:!0});if(e)return{headers:{"x-api-key":e}}}catch{}let e=D();return e?.accessToken?{headers:{Authorization:`Bearer ${e.accessToken}`,"anthropic-beta":w}}:{headers:{},error:`No authentication available`}}async function fe(e){let t=null;for(let r=1;r<=6;r++){if(t=await pe(e),t.success||t.skipRetry||r>U)return t;let i=n(r);h(`Remote settings: Retry ${r}/${U} after ${i}ms`),await A(i)}return t}async function pe(t){try{await O();let n=de();if(n.error)return{success:!1,error:`Authentication required for remote settings`,skipRetry:!0};let r=se(),i={...n.headers,"User-Agent":N()};t&&(i[`If-None-Match`]=`"${t}"`);let a=await e.get(r,{headers:i,timeout:ae,validateStatus:e=>e===200||e===204||e===304||e===404});if(a.status===304)return h(`Remote settings: Using cached settings (304)`),{success:!0,settings:null,checksum:t};if(a.status===204||a.status===404)return h(`Remote settings: No settings found (${a.status})`),{success:!0,settings:{},checksum:void 0};let o=H().safeParse(a.data);if(!o.success)return h(`Remote settings: Invalid response format - ${o.error.message}`),{success:!1,error:`Invalid remote settings format`};let s=y().safeParse(o.data.settings);return s.success?(h(`Remote settings: Fetched successfully`),{success:!0,settings:s.data,checksum:o.data.checksum}):(h(`Remote settings: Settings validation failed - ${s.error.message}`),{success:!1,error:`Invalid settings structure`})}catch(e){let{kind:t,status:n,message:r}=p(e);if(n===404)return{success:!0,settings:{},checksum:``};switch(t){case`auth`:return{success:!1,error:`Not authorized for remote settings`,skipRetry:!0};case`timeout`:return{success:!1,error:`Remote settings request timeout`};case`network`:return{success:!1,error:`Cannot connect to server`};default:return{success:!1,error:r}}}}async function me(e){try{let t=_(),n=await R(t,`w`,384);try{await n.writeFile(d(e,null,2),{encoding:`utf-8`}),await n.datasync()}finally{await n.close()}h(`Remote settings: Saved to ${t}`)}catch(e){h(`Remote settings: Failed to save - ${e instanceof Error?e.message:`unknown error`}`)}}async function X(){$(),F(),K=null,q=null;try{await z(_())}catch{}}async function Z(){if(!P())return null;let e=S(),t=e?ce(e):void 0;try{let n=await fe(t);if(!n.success)return e?(h(`Remote settings: Using stale cache after fetch failure`),v(e),e):null;if(n.settings===null&&e)return h(`Remote settings: Cache still valid (304 Not Modified)`),v(e),e;let r=n.settings||{};if(Object.keys(r).length>0)return V(await B(e,r))?(v(r),await me(r),h(`Remote settings: Applied new settings successfully`),r):(h(`Remote settings: User rejected new settings, using cached settings`),e);v(r);try{await z(_()),h(`Remote settings: Deleted cached file (404 response)`)}catch(e){f(e)!==`ENOENT`&&h(`Remote settings: Failed to delete cached file - ${e instanceof Error?e.message:`unknown error`}`)}return r}catch{return e?(h(`Remote settings: Using stale cache after error`),v(e),e):null}}async function Q(){P()&&!K&&(K=new Promise(e=>{q=e})),S()&&q&&(q(),q=null);try{let e=await Z();P()&&_e(),e!==null&&r.notifyChange(`policySettings`)}finally{q&&(q(),q=null)}}async function he(){if(await X(),!P()){r.notifyChange(`policySettings`);return}await Z(),h(`Remote settings: Refreshed after auth change`),r.notifyChange(`policySettings`)}async function ge(){if(!P())return;let e=S(),t=e?d(e):null;try{await Z();let e=S();(e?d(e):null)!==t&&(h(`Remote settings: Changed during background poll`),r.notifyChange(`policySettings`))}catch{}}function _e(){G===null&&P()&&(G=setInterval(()=>{ge()},W),G.unref(),ne(async()=>$()))}function $(){G!==null&&(clearInterval(G),G=null)}export{he as a,Q as i,oe as n,ue as o,le as r,X as t};
1
+ import{n as e,t}from"./axios-DaWTGg7G.js";import{Av as n,dT as r,jv as i,uT as a}from"./loadAgentsDir-CbtNPJV3.js";import{A as o,M as s,O as c,w as l}from"./external-CEp-aPkt.js";import{n as ee,r as te,t as u}from"./lazySchema-B4D4qJVE.js";import{C as d,F as f,N as p,R as m,c as h,i as g,nt as ne,tt as re,x as ie}from"./debug-BQj6h99Q.js";import{Hn as _,Kn as v,N as y,P as b,Un as x,Vn as S}from"./settings-CvhsRFaT.js";import{l as C,s as w,u as T}from"./oauth-D38aRTUb.js";import{Pt as E,St as D,ct as O,dn as k,fn as A,gt as j}from"./model-DlLO7TSx.js";import{n as M,t as N}from"./userAgent-CNPTS7ix.js";import{n as P,r as F,t as I}from"./syncCache-Dff4hbz4.js";import{createHash as L}from"crypto";import{open as R,unlink as z}from"fs/promises";t(),te(),re(),m(),ie(),g(),u(),T(),b(),M(),k(),E(),a(),i();async function B(e,t){return`no_check_needed`}function V(e){return!0}x(),I();var H=ee(()=>l({uuid:o(),checksum:o(),settings:c(o(),s())})),ae=1e4,U=5,W=3600*1e3,G=null,K=null,q=null,J=3e4;function oe(){K||P()&&(K=new Promise(e=>{q=e,setTimeout(()=>{q&&(h(`Remote settings: Loading promise timed out, resolving anyway`),q(),q=null)},J)}))}function se(){return`${C().BASE_API_URL}/api/claude_code/settings`}function Y(e){if(Array.isArray(e))return e.map(Y);if(typeof e==`object`&&e){let t={};for(let n of Object.keys(e).sort())t[n]=Y(e[n]);return t}return e}function ce(e){let t=d(Y(e));return`sha256:${L(`sha256`).update(t).digest(`hex`)}`}function le(){return P()}async function ue(){K&&await K}function de(){try{let{key:e}=j({skipRetrievingKeyFromApiKeyHelper:!0});if(e)return{headers:{"x-api-key":e}}}catch{}let e=D();return e?.accessToken?{headers:{Authorization:`Bearer ${e.accessToken}`,"anthropic-beta":w}}:{headers:{},error:`No authentication available`}}async function fe(e){let t=null;for(let r=1;r<=6;r++){if(t=await pe(e),t.success||t.skipRetry||r>U)return t;let i=n(r);h(`Remote settings: Retry ${r}/${U} after ${i}ms`),await A(i)}return t}async function pe(t){try{await O();let n=de();if(n.error)return{success:!1,error:`Authentication required for remote settings`,skipRetry:!0};let r=se(),i={...n.headers,"User-Agent":N()};t&&(i[`If-None-Match`]=`"${t}"`);let a=await e.get(r,{headers:i,timeout:ae,validateStatus:e=>e===200||e===204||e===304||e===404});if(a.status===304)return h(`Remote settings: Using cached settings (304)`),{success:!0,settings:null,checksum:t};if(a.status===204||a.status===404)return h(`Remote settings: No settings found (${a.status})`),{success:!0,settings:{},checksum:void 0};let o=H().safeParse(a.data);if(!o.success)return h(`Remote settings: Invalid response format - ${o.error.message}`),{success:!1,error:`Invalid remote settings format`};let s=y().safeParse(o.data.settings);return s.success?(h(`Remote settings: Fetched successfully`),{success:!0,settings:s.data,checksum:o.data.checksum}):(h(`Remote settings: Settings validation failed - ${s.error.message}`),{success:!1,error:`Invalid settings structure`})}catch(e){let{kind:t,status:n,message:r}=p(e);if(n===404)return{success:!0,settings:{},checksum:``};switch(t){case`auth`:return{success:!1,error:`Not authorized for remote settings`,skipRetry:!0};case`timeout`:return{success:!1,error:`Remote settings request timeout`};case`network`:return{success:!1,error:`Cannot connect to server`};default:return{success:!1,error:r}}}}async function me(e){try{let t=_(),n=await R(t,`w`,384);try{await n.writeFile(d(e,null,2),{encoding:`utf-8`}),await n.datasync()}finally{await n.close()}h(`Remote settings: Saved to ${t}`)}catch(e){h(`Remote settings: Failed to save - ${e instanceof Error?e.message:`unknown error`}`)}}async function X(){$(),F(),K=null,q=null;try{await z(_())}catch{}}async function Z(){if(!P())return null;let e=S(),t=e?ce(e):void 0;try{let n=await fe(t);if(!n.success)return e?(h(`Remote settings: Using stale cache after fetch failure`),v(e),e):null;if(n.settings===null&&e)return h(`Remote settings: Cache still valid (304 Not Modified)`),v(e),e;let r=n.settings||{};if(Object.keys(r).length>0)return V(await B(e,r))?(v(r),await me(r),h(`Remote settings: Applied new settings successfully`),r):(h(`Remote settings: User rejected new settings, using cached settings`),e);v(r);try{await z(_()),h(`Remote settings: Deleted cached file (404 response)`)}catch(e){f(e)!==`ENOENT`&&h(`Remote settings: Failed to delete cached file - ${e instanceof Error?e.message:`unknown error`}`)}return r}catch{return e?(h(`Remote settings: Using stale cache after error`),v(e),e):null}}async function Q(){P()&&!K&&(K=new Promise(e=>{q=e})),S()&&q&&(q(),q=null);try{let e=await Z();P()&&_e(),e!==null&&r.notifyChange(`policySettings`)}finally{q&&(q(),q=null)}}async function he(){if(await X(),!P()){r.notifyChange(`policySettings`);return}await Z(),h(`Remote settings: Refreshed after auth change`),r.notifyChange(`policySettings`)}async function ge(){if(!P())return;let e=S(),t=e?d(e):null;try{await Z();let e=S();(e?d(e):null)!==t&&(h(`Remote settings: Changed during background poll`),r.notifyChange(`policySettings`))}catch{}}function _e(){G===null&&P()&&(G=setInterval(()=>{ge()},W),G.unref(),ne(async()=>$()))}function $(){G!==null&&(clearInterval(G),G=null)}export{he as a,Q as i,oe as n,ue as o,le as r,X as t};
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{La as t,br as n,hr as r,ka as i,oi as a,ri as o}from"./loadAgentsDir-PPiD2Mfq.js";import{Wt as s,pt as c}from"./state-BPFYBqm1.js";import{a as l,i as u,r as d}from"./bridgeConfig-DnFfCpGd.js";import{n as f,t as p}from"./generateSessionName-C8DnAVaa.js";async function m(e,t,n){let s;if(!n||n.trim()===``){let n=await p(i(t.messages),t.abortController.signal);if(!n)return e(`Could not generate a name: no conversation context yet. Usage: /rename <name>`,{display:`system`}),null;s=n}else s=n.trim();let l=c(),f=r();await a(l,s,f);let m=t.getAppState().replBridgeSessionId;if(m){let e=u();import(`./createSession-CmBawnsh.js`).then(({updateBridgeSessionTitle:t})=>t(m,s,{baseUrl:d(),getAccessToken:e?()=>e:void 0}).catch(()=>{}))}return await o(l,s,f),t.setAppState(e=>({...e,standaloneAgentContext:{...e.standaloneAgentContext,name:s}})),e(`Session renamed to: ${s}`,{display:`system`}),null}e((()=>{s(),l(),t(),n(),f()}))();export{m as call};
1
+ import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{La as t,br as n,hr as r,ka as i,oi as a,ri as o}from"./loadAgentsDir-CbtNPJV3.js";import{Wt as s,pt as c}from"./state-BPFYBqm1.js";import{a as l,i as u,r as d}from"./bridgeConfig-B3mR0kJ0.js";import{n as f,t as p}from"./generateSessionName-cAL5T7pG.js";async function m(e,t,n){let s;if(!n||n.trim()===``){let n=await p(i(t.messages),t.abortController.signal);if(!n)return e(`Could not generate a name: no conversation context yet. Usage: /rename <name>`,{display:`system`}),null;s=n}else s=n.trim();let l=c(),f=r();await a(l,s,f);let m=t.getAppState().replBridgeSessionId;if(m){let e=u();import(`./createSession-CnlPXXkA.js`).then(({updateBridgeSessionTitle:t})=>t(m,s,{baseUrl:d(),getAccessToken:e?()=>e:void 0}).catch(()=>{}))}return await o(l,s,f),t.setAppState(e=>({...e,standaloneAgentContext:{...e.standaloneAgentContext,name:s}})),e(`Session renamed to: ${s}`,{display:`system`}),null}e((()=>{s(),l(),t(),n(),f()}))();export{m as call};
@@ -1,2 +1,2 @@
1
- import{n as e,o as t}from"./rolldown-runtime-DaDcL9Zw.js";import{n,t as r}from"./figures-5ThXQEtq.js";import{Ar as i,Ci as a,Fr as o,Mu as s,Nr as c,Pu as l,Si as u,Sr as d,Xp as f,Zp as p,ar as m,br as h,fi as g,fr as _,iC as v,rC as y,wr as b,xC as x}from"./loadAgentsDir-PPiD2Mfq.js";import{I as S,P as C,ai as w,di as T,dr as E,fi as D,ot as O,t as k}from"./src-DL3w8VPk2.js";import{t as A}from"./jsx-runtime-Bb4Xn-E0.js";import{Wt as j,et as M,pt as N}from"./state-BPFYBqm1.js";import{o as P,s as F}from"./log-BlJ7CcKG.js";import{n as I,r as L}from"./modalContext-wY9CeN4G.js";import{a as R,i as z,n as B,o as V,r as H,t as U}from"./crossProjectResume-DY1ZBO5P.js";function W(e){switch(e.resultType){case`sessionNotFound`:return`Session ${T.bold(e.arg)} was not found. Run ${T.bold(`/resume`)} without arguments to browse all sessions.`;case`multipleMatches`:return`Found ${e.count} sessions matching ${T.bold(e.arg)}. Run ${T.bold(`/resume`)} to pick one from the list.`}}function G({message:e,args:t,onDone:n}){return J.useEffect(()=>{let e=setTimeout(n,0);return()=>clearTimeout(e)},[n]),(0,Y.jsxs)(S,{flexDirection:`column`,children:[(0,Y.jsxs)(C,{dimColor:!0,children:[r.pointer,` /resume `,t]}),(0,Y.jsx)(y,{children:(0,Y.jsx)(C,{children:e})})]})}function K({onDone:e,onResume:t}){let[n,r]=J.useState([]),[a,l]=J.useState([]),[d,f]=J.useState(!0),[m,h]=J.useState(!1),[g,v]=J.useState(!1),{rows:y}=O(),x=L(),w=J.useCallback(async(t,n)=>{f(!0);try{let a=q(t?await i():await o(n),N());if(a.length===0){e(`No conversations found to resume`);return}r(a)}catch{e(`Failed to load conversations`)}finally{f(!1)}},[e]);J.useEffect(()=>{async function e(){let e=await u(M());l(e),w(!1,e)}e()},[w]);let T=J.useCallback(()=>{let e=!g;v(e),w(e,a)},[g,w,a]);async function D(n){let r=p(_(n));if(!r){e(`Failed to resume conversation`);return}let i=b(n)?await c(n):n,a=U(i,g);if(a.isCrossProject){if(a.isSameRepoWorktree){h(!0),t(r,i,`slash_command_picker`);return}let n=await E(a.command);n&&process.stdout.write(n),e([``,`This conversation is from a different directory.`,``,`To resume, run:`,` ${a.command}`,``,`(Command copied to clipboard)`,``].join(`
1
+ import{n as e,o as t}from"./rolldown-runtime-DaDcL9Zw.js";import{n,t as r}from"./figures-5ThXQEtq.js";import{Ar as i,Ci as a,Fr as o,Mu as s,Nr as c,Pu as l,Si as u,Sr as d,Xp as f,Zp as p,ar as m,br as h,fi as g,fr as _,iC as v,rC as y,wr as b,xC as x}from"./loadAgentsDir-CbtNPJV3.js";import{I as S,P as C,ai as w,di as T,dr as E,fi as D,ot as O,t as k}from"./src-DL3w8VPk2.js";import{t as A}from"./jsx-runtime-Bb4Xn-E0.js";import{Wt as j,et as M,pt as N}from"./state-BPFYBqm1.js";import{o as P,s as F}from"./log-BlJ7CcKG.js";import{n as I,r as L}from"./modalContext-wY9CeN4G.js";import{a as R,i as z,n as B,o as V,r as H,t as U}from"./crossProjectResume-BCN462Wa.js";function W(e){switch(e.resultType){case`sessionNotFound`:return`Session ${T.bold(e.arg)} was not found. Run ${T.bold(`/resume`)} without arguments to browse all sessions.`;case`multipleMatches`:return`Found ${e.count} sessions matching ${T.bold(e.arg)}. Run ${T.bold(`/resume`)} to pick one from the list.`}}function G({message:e,args:t,onDone:n}){return J.useEffect(()=>{let e=setTimeout(n,0);return()=>clearTimeout(e)},[n]),(0,Y.jsxs)(S,{flexDirection:`column`,children:[(0,Y.jsxs)(C,{dimColor:!0,children:[r.pointer,` /resume `,t]}),(0,Y.jsx)(y,{children:(0,Y.jsx)(C,{children:e})})]})}function K({onDone:e,onResume:t}){let[n,r]=J.useState([]),[a,l]=J.useState([]),[d,f]=J.useState(!0),[m,h]=J.useState(!1),[g,v]=J.useState(!1),{rows:y}=O(),x=L(),w=J.useCallback(async(t,n)=>{f(!0);try{let a=q(t?await i():await o(n),N());if(a.length===0){e(`No conversations found to resume`);return}r(a)}catch{e(`Failed to load conversations`)}finally{f(!1)}},[e]);J.useEffect(()=>{async function e(){let e=await u(M());l(e),w(!1,e)}e()},[w]);let T=J.useCallback(()=>{let e=!g;v(e),w(e,a)},[g,w,a]);async function D(n){let r=p(_(n));if(!r){e(`Failed to resume conversation`);return}let i=b(n)?await c(n):n,a=U(i,g);if(a.isCrossProject){if(a.isSameRepoWorktree){h(!0),t(r,i,`slash_command_picker`);return}let n=await E(a.command);n&&process.stdout.write(n),e([``,`This conversation is from a different directory.`,``,`To resume, run:`,` ${a.command}`,``,`(Command copied to clipboard)`,``].join(`
2
2
  `),{display:`user`});return}h(!0),t(r,i,`slash_command_picker`)}function k(){e(`Resume cancelled`,{display:`system`})}return d?(0,Y.jsxs)(S,{children:[(0,Y.jsx)(s,{}),(0,Y.jsx)(C,{children:` Loading conversations…`})]}):m?(0,Y.jsxs)(S,{children:[(0,Y.jsx)(s,{}),(0,Y.jsx)(C,{children:` Resuming conversation…`})]}):(0,Y.jsx)(R,{logs:n,maxHeight:x?Math.floor(y/2):y-2,onCancel:k,onSelect:D,onLogsChanged:()=>w(g,a),showAllProjects:g,onToggleAllProjects:T,onAgenticSearch:H})}function q(e,t){return e.filter(e=>!e.isSidechain&&_(e)!==t)}var J,Y,X;e((()=>{D(),n(),J=t(w(),1),j(),V(),v(),l(),I(),x(),k(),z(),B(),a(),P(),h(),f(),Y=A(),X=async(e,t,n)=>{let r=async(n,r,i)=>{try{await t.resume?.(n,r,i),e(void 0,{display:`skip`})}catch(t){F(t),e(`Failed to resume: ${t.message}`)}},i=n?.trim();if(!i)return(0,Y.jsx)(K,{onDone:e,onResume:r},Date.now());let a=await o(await u(M()));if(a.length===0){let t=`No conversations found to resume.`;return(0,Y.jsx)(G,{message:t,args:i,onDone:()=>e(t)})}let s=p(i);if(s){let e=a.filter(e=>_(e)===s).sort((e,t)=>t.modified.getTime()-e.modified.getTime());if(e.length>0){let t=e[0];return r(s,b(t)?await c(t):t,`slash_command_session_id`),null}let t=await m(s);if(t)return r(s,t,`slash_command_session_id`),null}if(d()){let t=await g(i,{exact:!0});if(t.length===1){let e=t[0],n=_(e);if(n)return r(n,b(e)?await c(e):e,`slash_command_title`),null}if(t.length>1){let n=W({resultType:`multipleMatches`,arg:i,count:t.length});return(0,Y.jsx)(G,{message:n,args:i,onDone:()=>e(n)})}}let l=W({resultType:`sessionNotFound`,arg:i});return(0,Y.jsx)(G,{message:l,args:i,onDone:()=>e(l)})}}))();export{X as call,q as filterResumableSessions};
@@ -1 +1 @@
1
- import{a as e,i as t,n,o as r,r as i,s as a,t as o}from"./runtimeObserver-By59MZKJ.js";t();export{o as RUNTIME_SESSION_ID,n as getRuntimeTurn,i as initSkillLearning,e as resetRuntimeLLMBookkeeping,r as resetRuntimeObserverForTest,a as runSkillLearningPostSampling};
1
+ import{a as e,i as t,n,o as r,r as i,s as a,t as o}from"./runtimeObserver-Dov-m2dl.js";t();export{o as RUNTIME_SESSION_ID,n as getRuntimeTurn,i as initSkillLearning,e as resetRuntimeLLMBookkeeping,r as resetRuntimeObserverForTest,a as runSkillLearningPostSampling};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{i as t,o as n}from"./envUtils-DcaKZlRU.js";import{Di as r,Li as i,cm as a,lm as o}from"./loadAgentsDir-PPiD2Mfq.js";import{n as s,t as c}from"./featureCheck-D6FjD-nt.js";import{a as l,s as u}from"./projectContext-BN2ZWzOG.js";import{a as d,c as ee,i as f,l as p,n as m,o as h,r as te,s as ne,u as g}from"./instinctParser-Dt-lqnDe.js";import{a as re,i as ie,n as _,o as v,r as y,t as ae}from"./observationStore-D0rm3GhP.js";import{a as oe,i as se,o as ce,r as le}from"./sessionObserver-BAr8AWeL.js";import{a as ue,d as b,i as de,l as x,n as S,r as fe,s as C,t as pe,u as w}from"./skillLifecycle-CG2XmS8f.js";import{join as T}from"node:path";import{existsSync as E}from"node:fs";import{randomBytes as me}from"node:crypto";import{mkdir as D,readFile as he,readdir as O,rename as ge,unlink as _e,writeFile as k}from"node:fs/promises";function A(e){let t=_(e),n=e?.project;return(e?.scope??n?.scope??`project`)===`global`||!n||n.projectId===`global`?T(t,`global`,`instincts`,`personal`):T(t,`projects`,n.projectId,`instincts`,`personal`)}async function j(e,t){let n=h(e);await D(A(t),{recursive:!0});let r=N(n.id,t),i=`${r}.${me(6).toString(`hex`)}.tmp`;return await k(i,ee(n)),await ge(i,r),n}async function M(e){let t=A(e),n=[];try{n=await O(t)}catch(e){if(e.code===`ENOENT`)return[];throw e}let r=[];for(let e of n.filter(e=>e.endsWith(`.json`))){let n=await he(T(t,e),`utf8`);r.push(ne(n))}return r.sort((e,t)=>e.id.localeCompare(t.id))}function ve(e,t){let n=P.then(()=>ye(e,t));return P=n.catch(()=>{}),n}async function ye(e,t){let n=await M(t),r=n.find(t=>t.id===e.id)??n.find(t=>t.trigger.toLowerCase()===e.trigger.toLowerCase()&&d(t,e)),i=new Date().toISOString();if(!r)return j(e,t);let a=d(r,e),o=a?-.1:Se(e.evidenceOutcome),s=m(r.confidence+o),c=be(r.status,s,a);return j(h({...r,confidence:s,evidence:[...r.evidence,...e.evidence],evidenceOutcome:e.evidenceOutcome??r.evidenceOutcome,observationIds:[...r.observationIds??[],...e.observationIds??[]],updatedAt:i,status:c}),t)}function be(e,t,n){return n&&t<.3?`conflict-hold`:e===`conflict-hold`&&t>=.5||e===`pending`&&t>=.8?`active`:e}async function xe(e){let t=await M(e),n=Date.now(),r=0;for(let i of t){if(i.status!==`pending`&&i.status!==`active`)continue;let t=Date.parse(i.updatedAt);if(Number.isNaN(t))continue;let a=Math.floor((n-t)/F);if(a<1)continue;let o=-.02*a,s=m(i.confidence+o);s!==i.confidence&&(await j(h({...i,confidence:s,updatedAt:new Date(n).toISOString()}),e),r+=1)}return r}function Se(e){return e===`failure`?-.05:.05}async function Ce(e,t){let n=await M(t),r=Date.now()-e*24*60*60*1e3,i=[];for(let e of n)e.status===`pending`&&Date.parse(e.updatedAt)<r&&(await _e(N(e.id,t)),i.push(e));return i}function N(e,t){return T(A(t),`${e}.json`)}var P,F,I=e((()=>{y(),f(),P=Promise.resolve(),F=10080*60*1e3}));function we(e,t){if(e.length===0)throw Error(`Cannot generate a command draft without instincts`);let n=t?.scope??e[0]?.scope??`project`,r=w(t?.name??De(e)),i=Ae(e),a=t?.description??Oe(e),o=Ee(r,n,t),s=ke({name:r,description:a,confidence:i,instincts:e});return{name:r,description:a,scope:n,sourceInstinctIds:e.map(e=>e.id),confidence:Number(i.toFixed(2)),content:s,outputPath:o}}async function Te(e){await D(e.outputPath,{recursive:!0});let t=T(e.outputPath,`${e.name}.md`);return E(t)?t:(await k(t,e.content,`utf8`),r(),t)}function Ee(e,n,r){return r?.outputRoot?r.outputRoot:n===`project`?T(r?.cwd??process.cwd(),`.workmate`,`commands`):r?.globalCommandsDir??T(t(),`commands`)}function De(e){return w([`learned`,...je(e,4)].join(`-`))||`learned-command`}function Oe(e){return(e[0]?.trigger??`Reuse the learned workflow`).replace(/\s+/g,` `).slice(0,120)}function ke(e){let{name:t,description:n,confidence:r,instincts:i}=e;return[`---`,`name: ${t}`,`description: ${JSON.stringify(n)}`,`origin: skill-learning`,`confidence: ${Number(r.toFixed(2))}`,`evolved_from: [${i.map(e=>JSON.stringify(e.id)).join(`, `)}]`,`---`,``,`# /${t}`,``,`## When to use`,``,i.map(e=>`- ${e.trigger}`).join(`
1
+ import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{i as t,o as n}from"./envUtils-DcaKZlRU.js";import{Di as r,Li as i,cm as a,lm as o}from"./loadAgentsDir-CbtNPJV3.js";import{n as s,t as c}from"./featureCheck-D6FjD-nt.js";import{a as l,s as u}from"./projectContext-BN2ZWzOG.js";import{a as d,c as ee,i as f,l as p,n as m,o as h,r as te,s as ne,u as g}from"./instinctParser-Dt-lqnDe.js";import{a as re,i as ie,n as _,o as v,r as y,t as ae}from"./observationStore-D0rm3GhP.js";import{a as oe,i as se,o as ce,r as le}from"./sessionObserver-DpY0DOjI.js";import{a as ue,d as b,i as de,l as x,n as S,r as fe,s as C,t as pe,u as w}from"./skillLifecycle-CSNX2qOH.js";import{join as T}from"node:path";import{existsSync as E}from"node:fs";import{randomBytes as me}from"node:crypto";import{mkdir as D,readFile as he,readdir as O,rename as ge,unlink as _e,writeFile as k}from"node:fs/promises";function A(e){let t=_(e),n=e?.project;return(e?.scope??n?.scope??`project`)===`global`||!n||n.projectId===`global`?T(t,`global`,`instincts`,`personal`):T(t,`projects`,n.projectId,`instincts`,`personal`)}async function j(e,t){let n=h(e);await D(A(t),{recursive:!0});let r=N(n.id,t),i=`${r}.${me(6).toString(`hex`)}.tmp`;return await k(i,ee(n)),await ge(i,r),n}async function M(e){let t=A(e),n=[];try{n=await O(t)}catch(e){if(e.code===`ENOENT`)return[];throw e}let r=[];for(let e of n.filter(e=>e.endsWith(`.json`))){let n=await he(T(t,e),`utf8`);r.push(ne(n))}return r.sort((e,t)=>e.id.localeCompare(t.id))}function ve(e,t){let n=P.then(()=>ye(e,t));return P=n.catch(()=>{}),n}async function ye(e,t){let n=await M(t),r=n.find(t=>t.id===e.id)??n.find(t=>t.trigger.toLowerCase()===e.trigger.toLowerCase()&&d(t,e)),i=new Date().toISOString();if(!r)return j(e,t);let a=d(r,e),o=a?-.1:Se(e.evidenceOutcome),s=m(r.confidence+o),c=be(r.status,s,a);return j(h({...r,confidence:s,evidence:[...r.evidence,...e.evidence],evidenceOutcome:e.evidenceOutcome??r.evidenceOutcome,observationIds:[...r.observationIds??[],...e.observationIds??[]],updatedAt:i,status:c}),t)}function be(e,t,n){return n&&t<.3?`conflict-hold`:e===`conflict-hold`&&t>=.5||e===`pending`&&t>=.8?`active`:e}async function xe(e){let t=await M(e),n=Date.now(),r=0;for(let i of t){if(i.status!==`pending`&&i.status!==`active`)continue;let t=Date.parse(i.updatedAt);if(Number.isNaN(t))continue;let a=Math.floor((n-t)/F);if(a<1)continue;let o=-.02*a,s=m(i.confidence+o);s!==i.confidence&&(await j(h({...i,confidence:s,updatedAt:new Date(n).toISOString()}),e),r+=1)}return r}function Se(e){return e===`failure`?-.05:.05}async function Ce(e,t){let n=await M(t),r=Date.now()-e*24*60*60*1e3,i=[];for(let e of n)e.status===`pending`&&Date.parse(e.updatedAt)<r&&(await _e(N(e.id,t)),i.push(e));return i}function N(e,t){return T(A(t),`${e}.json`)}var P,F,I=e((()=>{y(),f(),P=Promise.resolve(),F=10080*60*1e3}));function we(e,t){if(e.length===0)throw Error(`Cannot generate a command draft without instincts`);let n=t?.scope??e[0]?.scope??`project`,r=w(t?.name??De(e)),i=Ae(e),a=t?.description??Oe(e),o=Ee(r,n,t),s=ke({name:r,description:a,confidence:i,instincts:e});return{name:r,description:a,scope:n,sourceInstinctIds:e.map(e=>e.id),confidence:Number(i.toFixed(2)),content:s,outputPath:o}}async function Te(e){await D(e.outputPath,{recursive:!0});let t=T(e.outputPath,`${e.name}.md`);return E(t)?t:(await k(t,e.content,`utf8`),r(),t)}function Ee(e,n,r){return r?.outputRoot?r.outputRoot:n===`project`?T(r?.cwd??process.cwd(),`.workmate`,`commands`):r?.globalCommandsDir??T(t(),`commands`)}function De(e){return w([`learned`,...je(e,4)].join(`-`))||`learned-command`}function Oe(e){return(e[0]?.trigger??`Reuse the learned workflow`).replace(/\s+/g,` `).slice(0,120)}function ke(e){let{name:t,description:n,confidence:r,instincts:i}=e;return[`---`,`name: ${t}`,`description: ${JSON.stringify(n)}`,`origin: skill-learning`,`confidence: ${Number(r.toFixed(2))}`,`evolved_from: [${i.map(e=>JSON.stringify(e.id)).join(`, `)}]`,`---`,``,`# /${t}`,``,`## When to use`,``,i.map(e=>`- ${e.trigger}`).join(`
2
2
  `),``,`## Steps`,``,i.map(e=>`- ${e.action}`).join(`
3
3
  `),``,`## Evidence`,``,i.flatMap(e=>e.evidence.map(e=>`- ${e}`)).join(`
4
4
  `),``].join(`
@@ -6,5 +6,5 @@ import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{i as t,o as n}from"./e
6
6
  `),``,`## Playbook`,``,i.map(e=>`- ${e.action}`).join(`
7
7
  `),``,`## Evidence`,``,i.flatMap(e=>e.evidence.map(e=>`- ${e}`)).slice(0,20).join(`
8
8
  `),``].join(`
9
- `)}function Re(e){return e.reduce((e,t)=>e+t.confidence,0)/e.length}function ze(e,t){let n=new Set([`when`,`with`,`this`,`that`,`user`,`asks`,`for`,`the`,`and`,`debug`,`investigate`,`research`]),r=[];for(let i of e)for(let e of`${i.trigger} ${i.action}`.toLowerCase().split(/[^a-z0-9]+/))if(e.length>2&&!n.has(e)&&!r.includes(e)&&r.push(e),r.length>=t)return r;return r}var R=e((()=>{n(),i(),x()}));function z(e){let t=new Map;for(let n of e){if(n.status!==`active`&&n.status!==`pending`)continue;let e=`${n.domain}:${Ue(n.trigger)}`,r=t.get(e)??[];r.push(n),t.set(e,r)}return Array.from(t.values()).filter(e=>e.length>=p().minClusterSize).map(e=>{let t=e.reduce((e,t)=>e+t.confidence,0)/e.length;return{target:Be(e),trigger:e[0]?.trigger??`learned pattern`,domain:e[0]?.domain??`project`,instincts:e,averageConfidence:Number(t.toFixed(2))}}).sort((e,t)=>t.averageConfidence-e.averageConfidence)}function Be(e){let t=Array.isArray(e)?e:e.instincts,n=t.map(e=>`${e.trigger} ${e.action}`).join(` `).toLowerCase();return/user asks|explicitly request|command|run /.test(n)?`command`:t.length>=4&&/(debug|investigate|research|multi-step)/.test(n)?`agent`:`skill`}function Ve(e,t){return z(e).filter(e=>e.target===`command`&&b(e.instincts)).map(e=>we(e.instincts,{...t,scope:e.instincts[0]?.scope??`project`}))}function He(e,t){return z(e).filter(e=>e.target===`agent`&&b(e.instincts)).map(e=>Me(e.instincts,{...t,scope:e.instincts[0]?.scope??`project`}))}function Ue(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,` `).split(/\s+/).filter(Boolean).slice(0,6).join(` `)}var We=e((()=>{x(),C(),L(),R(),g()}));function Ge(e){if(H.add(e),H.size>B){let e=H.size-V,t=H.values();for(let n=0;n<e;n++){let e=t.next();if(e.done)break;H.delete(e.value)}}}function Ke(e,t=2,n=.8){let r=new Map;for(let t of e){if(t.scope!==`project`)continue;let e=r.get(t.id)??[];e.push(t),r.set(t.id,e)}return Array.from(r.entries()).flatMap(([e,r])=>{let i=Array.from(new Set(r.map(e=>e.projectId).filter(Boolean))),a=r.reduce((e,t)=>e+t.confidence,0)/r.length;return i.length>=t&&a>=n?[{instinctId:e,projectIds:i,averageConfidence:Number(a.toFixed(2))}]:[]})}async function qe(e={}){let t=e.minProjects??2,n=e.minConfidence??.8,r=await Je(e.rootDir),i=Ke(r,t,n),a=[];for(let t of i){if(H.has(t.instinctId))continue;let n=r.find(e=>e.id===t.instinctId);n&&(await j({...n,scope:`global`,projectId:void 0,projectName:void 0,confidence:t.averageConfidence,updatedAt:new Date().toISOString()},{rootDir:e.rootDir,scope:`global`,project:Ye(e.rootDir)}),Ge(t.instinctId),a.push(t))}return a}async function Je(e){let t=T(_(e?{rootDir:e}:void 0),`projects`);if(!E(t))return[];let n=await O(t,{withFileTypes:!0}),r=[];for(let i of n){if(!i.isDirectory())continue;let n=await M({rootDir:e,project:{projectId:i.name,projectName:i.name,scope:`project`,source:`git_root`,cwd:t,storageDir:T(t,i.name)},scope:`project`});r.push(...n)}return r}function Ye(e){let t=_(e?{rootDir:e}:void 0);return{projectId:`global`,projectName:`Global`,scope:`global`,source:`global`,cwd:t,storageDir:T(t,`global`)}}var B,V,H,Xe=e((()=>{I(),y(),B=256,V=192,H=new Set}));function U(){X=0,Z=0,Q.clear()}function Ze(){return J}function Qe(){if(!q){q=!0;try{ce()}catch{}o(W),$e().catch(()=>{})}}async function $e(){if(!s()||process.env.CLAUDE_SKILL_LEARNING_DISABLE)return;let e={project:u(process.cwd())};await Promise.allSettled([xe(e),ie(e),Ce(30,e)])}function et(e){try{let t=_();return e.startsWith(t)}catch{return!1}}async function W(e){if(!s()||process.env.CLAUDE_SKILL_LEARNING_DISABLE||!e.querySource?.startsWith(`repl_main_thread`)||e.toolUseContext.agentId)return;let t=process.cwd();if(et(t))return;let n=u(t),r={project:n};++J;let i=[];for(let t of rt(e.messages,n))i.push(await ae(t,r));let a=(await re(r)).filter(e=>e.source===`tool-hook`&&e.sessionId===`runtime-session`&&typeof e.timestamp==`string`&&e.timestamp>Y);i.push(...a);for(let e of a)e.timestamp>Y&&(Y=e.timestamp);if(i.length===0)return;let o=Date.now(),{llm:c}=p(),l=i.length>=5&&X<c.maxCallsPerSession&&o-Z>=c.cooldownMs,d;if(l)X++,Z=o,d=await se(i,{project:n});else{let{heuristicObserverBackend:e}=await import(`./sessionObserver-KB1UL_n2.js`),t=e.analyze(i,{project:n});d=Array.isArray(t)?t:await t}for(let e of d)await ve(te(e),r);await nt(r)}function tt(){J=0,Y=``,U()}async function nt(e){let n=await M(e),r=process.cwd(),i=[T(r,`.workmate`,`skills`),T(t(),`skills`)],a=z(n).filter(e=>e.target===`skill`&&b(e.instincts));for(let e of a){let t=await ue(e.instincts,{cwd:r,scope:e.instincts[0]?.scope??`project`},i);if(t.action===`append-evidence`)continue;let n=t.draft;E(T(n.outputPath,`SKILL.md`))||await pe(fe(n,await S(`skill`,n,i)))}let o=Ve(n,{cwd:r});for(let e of o)(await S(`command`,e,[T(r,`.workmate`,`commands`),T(t(),`commands`)])).length>0||await Te(e);let s=He(n,{cwd:r});for(let e of s)(await S(`agent`,e,[T(r,`.workmate`,`agents`),T(t(),`agents`)])).length>0||await Ne(e);await qe()}function rt(e,t){let n=K,r={sessionId:n,projectId:t.projectId,projectName:t.projectName,cwd:t.cwd,timestamp:new Date().toISOString(),source:`hook`};return e.flatMap(e=>{let t=`${n}:${String(e.uuid)}`;if(Q.has(t))return[];if(Q.add(t),Q.size>$){let e=Q.size-ot,t=Q.values();for(let n=0;n<e;n++){let e=t.next();if(e.done)break;Q.delete(e.value)}}if(e.type===`user`){let t=at(e.message?.content);if(t.length>0)return t.map(e=>({...r,id:crypto.randomUUID(),event:`tool_complete`,toolName:e.toolName,toolOutput:e.output,outcome:e.isError?`failure`:`success`}));let n=G(e.message?.content);return n.trim()?[{...r,id:crypto.randomUUID(),event:`user_message`,messageText:n}]:[]}if(e.type===`assistant`){let t=it(e.message?.content),n=G(e.message?.content);return[...t.map(e=>({...r,id:crypto.randomUUID(),event:`tool_start`,toolName:e.toolName,toolInput:e.input})),...n.trim()?[{...r,id:crypto.randomUUID(),event:`assistant_message`,messageText:n}]:[]]}return[]})}function G(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(`
9
+ `)}function Re(e){return e.reduce((e,t)=>e+t.confidence,0)/e.length}function ze(e,t){let n=new Set([`when`,`with`,`this`,`that`,`user`,`asks`,`for`,`the`,`and`,`debug`,`investigate`,`research`]),r=[];for(let i of e)for(let e of`${i.trigger} ${i.action}`.toLowerCase().split(/[^a-z0-9]+/))if(e.length>2&&!n.has(e)&&!r.includes(e)&&r.push(e),r.length>=t)return r;return r}var R=e((()=>{n(),i(),x()}));function z(e){let t=new Map;for(let n of e){if(n.status!==`active`&&n.status!==`pending`)continue;let e=`${n.domain}:${Ue(n.trigger)}`,r=t.get(e)??[];r.push(n),t.set(e,r)}return Array.from(t.values()).filter(e=>e.length>=p().minClusterSize).map(e=>{let t=e.reduce((e,t)=>e+t.confidence,0)/e.length;return{target:Be(e),trigger:e[0]?.trigger??`learned pattern`,domain:e[0]?.domain??`project`,instincts:e,averageConfidence:Number(t.toFixed(2))}}).sort((e,t)=>t.averageConfidence-e.averageConfidence)}function Be(e){let t=Array.isArray(e)?e:e.instincts,n=t.map(e=>`${e.trigger} ${e.action}`).join(` `).toLowerCase();return/user asks|explicitly request|command|run /.test(n)?`command`:t.length>=4&&/(debug|investigate|research|multi-step)/.test(n)?`agent`:`skill`}function Ve(e,t){return z(e).filter(e=>e.target===`command`&&b(e.instincts)).map(e=>we(e.instincts,{...t,scope:e.instincts[0]?.scope??`project`}))}function He(e,t){return z(e).filter(e=>e.target===`agent`&&b(e.instincts)).map(e=>Me(e.instincts,{...t,scope:e.instincts[0]?.scope??`project`}))}function Ue(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,` `).split(/\s+/).filter(Boolean).slice(0,6).join(` `)}var We=e((()=>{x(),C(),L(),R(),g()}));function Ge(e){if(H.add(e),H.size>B){let e=H.size-V,t=H.values();for(let n=0;n<e;n++){let e=t.next();if(e.done)break;H.delete(e.value)}}}function Ke(e,t=2,n=.8){let r=new Map;for(let t of e){if(t.scope!==`project`)continue;let e=r.get(t.id)??[];e.push(t),r.set(t.id,e)}return Array.from(r.entries()).flatMap(([e,r])=>{let i=Array.from(new Set(r.map(e=>e.projectId).filter(Boolean))),a=r.reduce((e,t)=>e+t.confidence,0)/r.length;return i.length>=t&&a>=n?[{instinctId:e,projectIds:i,averageConfidence:Number(a.toFixed(2))}]:[]})}async function qe(e={}){let t=e.minProjects??2,n=e.minConfidence??.8,r=await Je(e.rootDir),i=Ke(r,t,n),a=[];for(let t of i){if(H.has(t.instinctId))continue;let n=r.find(e=>e.id===t.instinctId);n&&(await j({...n,scope:`global`,projectId:void 0,projectName:void 0,confidence:t.averageConfidence,updatedAt:new Date().toISOString()},{rootDir:e.rootDir,scope:`global`,project:Ye(e.rootDir)}),Ge(t.instinctId),a.push(t))}return a}async function Je(e){let t=T(_(e?{rootDir:e}:void 0),`projects`);if(!E(t))return[];let n=await O(t,{withFileTypes:!0}),r=[];for(let i of n){if(!i.isDirectory())continue;let n=await M({rootDir:e,project:{projectId:i.name,projectName:i.name,scope:`project`,source:`git_root`,cwd:t,storageDir:T(t,i.name)},scope:`project`});r.push(...n)}return r}function Ye(e){let t=_(e?{rootDir:e}:void 0);return{projectId:`global`,projectName:`Global`,scope:`global`,source:`global`,cwd:t,storageDir:T(t,`global`)}}var B,V,H,Xe=e((()=>{I(),y(),B=256,V=192,H=new Set}));function U(){X=0,Z=0,Q.clear()}function Ze(){return J}function Qe(){if(!q){q=!0;try{ce()}catch{}o(W),$e().catch(()=>{})}}async function $e(){if(!s()||process.env.CLAUDE_SKILL_LEARNING_DISABLE)return;let e={project:u(process.cwd())};await Promise.allSettled([xe(e),ie(e),Ce(30,e)])}function et(e){try{let t=_();return e.startsWith(t)}catch{return!1}}async function W(e){if(!s()||process.env.CLAUDE_SKILL_LEARNING_DISABLE||!e.querySource?.startsWith(`repl_main_thread`)||e.toolUseContext.agentId)return;let t=process.cwd();if(et(t))return;let n=u(t),r={project:n};++J;let i=[];for(let t of rt(e.messages,n))i.push(await ae(t,r));let a=(await re(r)).filter(e=>e.source===`tool-hook`&&e.sessionId===`runtime-session`&&typeof e.timestamp==`string`&&e.timestamp>Y);i.push(...a);for(let e of a)e.timestamp>Y&&(Y=e.timestamp);if(i.length===0)return;let o=Date.now(),{llm:c}=p(),l=i.length>=5&&X<c.maxCallsPerSession&&o-Z>=c.cooldownMs,d;if(l)X++,Z=o,d=await se(i,{project:n});else{let{heuristicObserverBackend:e}=await import(`./sessionObserver-BuhXr3FP.js`),t=e.analyze(i,{project:n});d=Array.isArray(t)?t:await t}for(let e of d)await ve(te(e),r);await nt(r)}function tt(){J=0,Y=``,U()}async function nt(e){let n=await M(e),r=process.cwd(),i=[T(r,`.workmate`,`skills`),T(t(),`skills`)],a=z(n).filter(e=>e.target===`skill`&&b(e.instincts));for(let e of a){let t=await ue(e.instincts,{cwd:r,scope:e.instincts[0]?.scope??`project`},i);if(t.action===`append-evidence`)continue;let n=t.draft;E(T(n.outputPath,`SKILL.md`))||await pe(fe(n,await S(`skill`,n,i)))}let o=Ve(n,{cwd:r});for(let e of o)(await S(`command`,e,[T(r,`.workmate`,`commands`),T(t(),`commands`)])).length>0||await Te(e);let s=He(n,{cwd:r});for(let e of s)(await S(`agent`,e,[T(r,`.workmate`,`agents`),T(t(),`agents`)])).length>0||await Ne(e);await qe()}function rt(e,t){let n=K,r={sessionId:n,projectId:t.projectId,projectName:t.projectName,cwd:t.cwd,timestamp:new Date().toISOString(),source:`hook`};return e.flatMap(e=>{let t=`${n}:${String(e.uuid)}`;if(Q.has(t))return[];if(Q.add(t),Q.size>$){let e=Q.size-ot,t=Q.values();for(let n=0;n<e;n++){let e=t.next();if(e.done)break;Q.delete(e.value)}}if(e.type===`user`){let t=at(e.message?.content);if(t.length>0)return t.map(e=>({...r,id:crypto.randomUUID(),event:`tool_complete`,toolName:e.toolName,toolOutput:e.output,outcome:e.isError?`failure`:`success`}));let n=G(e.message?.content);return n.trim()?[{...r,id:crypto.randomUUID(),event:`user_message`,messageText:n}]:[]}if(e.type===`assistant`){let t=it(e.message?.content),n=G(e.message?.content);return[...t.map(e=>({...r,id:crypto.randomUUID(),event:`tool_start`,toolName:e.toolName,toolInput:e.input})),...n.trim()?[{...r,id:crypto.randomUUID(),event:`assistant_message`,messageText:n}]:[]]}return[]})}function G(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(`
10
10
  `):``}function it(e){return Array.isArray(e)?e.flatMap(e=>{if(!e||typeof e!=`object`)return[];let t=e;return t.type===`tool_use`?[{toolName:String(t.name??`unknown_tool`),input:v(t.input)}]:[]}):[]}function at(e){return Array.isArray(e)?e.flatMap(e=>{if(!e||typeof e!=`object`)return[];let t=e;return t.type===`tool_result`?[{toolName:String(t.name??t.tool_name??`unknown_tool`),output:v(t.content),isError:t.is_error===!0}]:[]}):[]}var K,q,J,Y,X,Z,Q,$,ot,st=e((()=>{a(),g(),c(),y(),l(),le(),f(),oe(),I(),de(),We(),C(),x(),L(),R(),Xe(),n(),K=`runtime-session`,q=!1,J=0,Y=``,X=0,Z=0,Q=new Set,$=1e3,ot=500}));export{U as a,st as i,Ze as n,tt as o,Qe as r,W as s,K as t};
@@ -0,0 +1 @@
1
+ import{oT as e,rT as t}from"./loadAgentsDir-CbtNPJV3.js";e();export{t as SandboxManager};
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{$u as t,Qu as n,hC as r,iT as i,lT as a,oT as o,rT as s}from"./loadAgentsDir-PPiD2Mfq.js";import{Gt as c,H as l,I as u,Lt as d,P as f,a as p,j as m,n as h,r as g,t as _,x as v}from"./src-DL3w8VPk2.js";import{t as y}from"./jsx-runtime-Bb4Xn-E0.js";import{O as b,Wt as x}from"./state-BPFYBqm1.js";import{f as S,g as C,s as w}from"./settings-CvhsRFaT.js";import{i as T,o as E}from"./platform-DVeTi9mp.js";import{relative as D}from"path";function O(){let e=s.isSandboxingEnabled(),t=s.checkDependencies(),n=t.warnings.length>0?(0,k.jsx)(u,{marginTop:1,flexDirection:`column`,children:t.warnings.map((e,t)=>(0,k.jsx)(f,{dimColor:!0,children:e},t))}):null;if(!e)return(0,k.jsxs)(u,{flexDirection:`column`,paddingY:1,children:[(0,k.jsx)(f,{color:`subtle`,children:`Sandbox is not enabled`}),n]});let r=s.getFsReadConfig(),i=s.getFsWriteConfig(),o=s.getNetworkRestrictionConfig(),c=s.getAllowUnixSockets(),l=s.getExcludedCommands(),d=s.getLinuxGlobPatternWarnings();return(0,k.jsxs)(u,{flexDirection:`column`,paddingY:1,children:[(0,k.jsxs)(u,{flexDirection:`column`,children:[(0,k.jsx)(f,{bold:!0,color:`permission`,children:`Excluded Commands:`}),(0,k.jsx)(f,{dimColor:!0,children:l.length>0?l.join(`, `):`None`})]}),r.denyOnly.length>0&&(0,k.jsxs)(u,{marginTop:1,flexDirection:`column`,children:[(0,k.jsx)(f,{bold:!0,color:`permission`,children:`Filesystem Read Restrictions:`}),(0,k.jsxs)(f,{dimColor:!0,children:[`Denied: `,r.denyOnly.join(`, `)]}),r.allowWithinDeny&&r.allowWithinDeny.length>0&&(0,k.jsxs)(f,{dimColor:!0,children:[`Allowed within denied: `,r.allowWithinDeny.join(`, `)]})]}),i.allowOnly.length>0&&(0,k.jsxs)(u,{marginTop:1,flexDirection:`column`,children:[(0,k.jsx)(f,{bold:!0,color:`permission`,children:`Filesystem Write Restrictions:`}),(0,k.jsxs)(f,{dimColor:!0,children:[`Allowed: `,i.allowOnly.join(`, `)]}),i.denyWithinAllow.length>0&&(0,k.jsxs)(f,{dimColor:!0,children:[`Denied within allowed: `,i.denyWithinAllow.join(`, `)]})]}),(o.allowedHosts&&o.allowedHosts.length>0||o.deniedHosts&&o.deniedHosts.length>0)&&(0,k.jsxs)(u,{marginTop:1,flexDirection:`column`,children:[(0,k.jsxs)(f,{bold:!0,color:`permission`,children:[`Network Restrictions`,a()?` (Managed)`:``,`:`]}),o.allowedHosts&&o.allowedHosts.length>0&&(0,k.jsxs)(f,{dimColor:!0,children:[`Allowed: `,o.allowedHosts.join(`, `)]}),o.deniedHosts&&o.deniedHosts.length>0&&(0,k.jsxs)(f,{dimColor:!0,children:[`Denied: `,o.deniedHosts.join(`, `)]})]}),c&&c.length>0&&(0,k.jsxs)(u,{marginTop:1,flexDirection:`column`,children:[(0,k.jsx)(f,{bold:!0,color:`permission`,children:`Allowed Unix Sockets:`}),(0,k.jsx)(f,{dimColor:!0,children:c.join(`, `)})]}),d.length>0&&(0,k.jsxs)(u,{marginTop:1,flexDirection:`column`,children:[(0,k.jsx)(f,{bold:!0,color:`warning`,children:`⚠ Warning: Glob patterns not fully supported on Linux`}),(0,k.jsxs)(f,{dimColor:!0,children:[`The following patterns will be ignored: `,d.slice(0,3).join(`, `),d.length>3&&` (${d.length-3} more)`]})]}),n]})}var k,A=e((()=>{_(),o(),k=y()}));function j({depCheck:e}){let t=T()===`macos`,n=e.errors.some(e=>e.includes(`ripgrep`)),r=e.errors.some(e=>e.includes(`bwrap`)),i=e.errors.some(e=>e.includes(`socat`)),a=e.warnings.length>0,o=e.errors.filter(e=>!e.includes(`ripgrep`)&&!e.includes(`bwrap`)&&!e.includes(`socat`));return(0,M.jsxs)(u,{flexDirection:`column`,paddingY:1,gap:1,children:[t&&(0,M.jsx)(u,{flexDirection:`column`,children:(0,M.jsxs)(f,{children:[`seatbelt: `,(0,M.jsx)(f,{color:`success`,children:`built-in (macOS)`})]})}),(0,M.jsxs)(u,{flexDirection:`column`,children:[(0,M.jsxs)(f,{children:[`ripgrep (rg): `,n?(0,M.jsx)(f,{color:`error`,children:`not found`}):(0,M.jsx)(f,{color:`success`,children:`found`})]}),n&&(0,M.jsxs)(f,{dimColor:!0,children:[` `,`· `,t?`brew install ripgrep`:`apt install ripgrep`]})]}),!t&&(0,M.jsxs)(M.Fragment,{children:[(0,M.jsxs)(u,{flexDirection:`column`,children:[(0,M.jsxs)(f,{children:[`bubblewrap (bwrap):`,` `,r?(0,M.jsx)(f,{color:`error`,children:`not installed`}):(0,M.jsx)(f,{color:`success`,children:`installed`})]}),r&&(0,M.jsxs)(f,{dimColor:!0,children:[` `,`· apt install bubblewrap`]})]}),(0,M.jsxs)(u,{flexDirection:`column`,children:[(0,M.jsxs)(f,{children:[`socat: `,i?(0,M.jsx)(f,{color:`error`,children:`not installed`}):(0,M.jsx)(f,{color:`success`,children:`installed`})]}),i&&(0,M.jsxs)(f,{dimColor:!0,children:[` `,`· apt install socat`]})]}),(0,M.jsxs)(u,{flexDirection:`column`,children:[(0,M.jsxs)(f,{children:[`seccomp filter:`,` `,a?(0,M.jsx)(f,{color:`warning`,children:`not installed`}):(0,M.jsx)(f,{color:`success`,children:`installed`}),a&&(0,M.jsx)(f,{dimColor:!0,children:` (required to block unix domain sockets)`})]}),a&&(0,M.jsxs)(u,{flexDirection:`column`,children:[(0,M.jsxs)(f,{dimColor:!0,children:[` `,`· npm install -g @anthropic-ai/sandbox-runtime`]}),(0,M.jsxs)(f,{dimColor:!0,children:[` `,`· or copy vendor/seccomp/* from sandbox-runtime and set`]}),(0,M.jsxs)(f,{dimColor:!0,children:[` `,`sandbox.seccomp.bpfPath and applyPath in settings.json`]})]})]})]}),o.map(e=>(0,M.jsx)(f,{color:`error`,children:e},e))]})}var M,N=e((()=>{_(),E(),M=y()}));function P({onComplete:e}){let t=s.isSandboxingEnabled(),n=s.areSandboxSettingsLockedByPolicy(),r=s.areUnsandboxedCommandsAllowed();return t?n?(0,I.jsxs)(u,{flexDirection:`column`,paddingY:1,children:[(0,I.jsx)(f,{color:`subtle`,children:`Override settings are managed by a higher-priority configuration and cannot be changed locally.`}),(0,I.jsx)(u,{marginTop:1,children:(0,I.jsxs)(f,{dimColor:!0,children:[`Current setting: `,r?`Allow unsandboxed fallback`:`Strict sandbox mode`]})})]}):(0,I.jsx)(F,{onComplete:e,currentMode:r?`open`:`closed`}):(0,I.jsx)(u,{flexDirection:`column`,paddingY:1,children:(0,I.jsx)(f,{color:`subtle`,children:`Sandbox is not enabled. Enable sandbox to configure override settings.`})})}function F({onComplete:e,currentMode:t}){let[r]=l(),{headerFocused:i,focusHeader:a}=p(),o=m(`success`,r)(`(current)`),c=[{label:t===`open`?`Allow unsandboxed fallback ${o}`:`Allow unsandboxed fallback`,value:`open`},{label:t===`closed`?`Strict sandbox mode ${o}`:`Strict sandbox mode`,value:`closed`}];async function h(t){let n=t;await s.setSandboxSettings({allowUnsandboxedCommands:n===`open`}),e(n===`open`?`✓ Unsandboxed fallback allowed - commands can run outside sandbox when necessary`:"✓ Strict sandbox mode - all commands must run in sandbox or be excluded via the `excludedCommands` option")}return(0,I.jsxs)(u,{flexDirection:`column`,paddingY:1,children:[(0,I.jsx)(u,{marginBottom:1,children:(0,I.jsx)(f,{bold:!0,children:`Configure Overrides:`})}),(0,I.jsx)(n,{options:c,onChange:h,onCancel:()=>e(void 0,{display:`skip`}),onUpFromFirstItem:a,isDisabled:i}),(0,I.jsxs)(u,{flexDirection:`column`,marginTop:1,gap:1,children:[(0,I.jsxs)(f,{dimColor:!0,children:[(0,I.jsx)(f,{bold:!0,dimColor:!0,children:`Allow unsandboxed fallback:`}),` `,`When a command fails due to sandbox restrictions, Work Mate can retry with dangerouslyDisableSandbox to run outside the sandbox (falling back to default permissions).`]}),(0,I.jsxs)(f,{dimColor:!0,children:[(0,I.jsx)(f,{bold:!0,dimColor:!0,children:`Strict sandbox mode:`}),` `,`All bash commands invoked by the model must run in the sandbox unless they are explicitly listed in excludedCommands.`]}),(0,I.jsxs)(f,{dimColor:!0,children:[`Learn more:`,` `,(0,I.jsx)(d,{url:`https://code.workmate.com/docs/en/sandboxing#configure-sandboxing`,children:`code.workmate.com/docs/en/sandboxing#configure-sandboxing`})]})]})]})}var I,L=e((()=>{_(),o(),t(),I=y()}));function R({onComplete:e,depCheck:t}){let[n]=l(),r=s.isSandboxingEnabled(),i=s.isAutoAllowBashIfSandboxedEnabled(),a=t.warnings.length>0,o=S().sandbox?.network?.allowAllUnixSockets,u=a&&!o,d=r?i?`auto-allow`:`regular`:`disabled`,f=m(`success`,n)(`(current)`),p=[{label:d===`auto-allow`?`Sandbox BashTool, with auto-allow ${f}`:`Sandbox BashTool, with auto-allow`,value:`auto-allow`},{label:d===`regular`?`Sandbox BashTool, with regular permissions ${f}`:`Sandbox BashTool, with regular permissions`,value:`regular`},{label:d===`disabled`?`No Sandbox ${f}`:`No Sandbox`,value:`disabled`}];async function _(t){switch(t){case`auto-allow`:await s.setSandboxSettings({enabled:!0,autoAllowBashIfSandboxed:!0}),e(`✓ Sandbox enabled with auto-allow for bash commands`);break;case`regular`:await s.setSandboxSettings({enabled:!0,autoAllowBashIfSandboxed:!1}),e(`✓ Sandbox enabled with regular bash permissions`);break;case`disabled`:await s.setSandboxSettings({enabled:!1,autoAllowBashIfSandboxed:!1}),e(`○ Sandbox disabled`);break}}c({"confirm:no":()=>e(void 0,{display:`skip`})},{context:`Settings`});let y=(0,B.jsx)(h,{title:`Mode`,children:(0,B.jsx)(z,{showSocketWarning:u,options:p,onSelect:_,onComplete:e})},`mode`),b=(0,B.jsx)(h,{title:`Overrides`,children:(0,B.jsx)(P,{onComplete:e})},`overrides`),x=(0,B.jsx)(h,{title:`Config`,children:(0,B.jsx)(O,{})},`config`);return(0,B.jsx)(v,{color:`permission`,children:(0,B.jsx)(g,{title:`Sandbox:`,color:`permission`,defaultTab:`Mode`,children:t.errors.length>0?[(0,B.jsx)(h,{title:`Dependencies`,children:(0,B.jsx)(j,{depCheck:t})},`dependencies`)]:[y,...a?[(0,B.jsx)(h,{title:`Dependencies`,children:(0,B.jsx)(j,{depCheck:t})},`dependencies`)]:[],b,x]})})}function z({showSocketWarning:e,options:t,onSelect:r,onComplete:i}){let{headerFocused:a,focusHeader:o}=p();return(0,B.jsxs)(u,{flexDirection:`column`,paddingY:1,children:[e&&(0,B.jsx)(u,{marginBottom:1,children:(0,B.jsx)(f,{color:`warning`,children:`Cannot block unix domain sockets (see Dependencies tab)`})}),(0,B.jsx)(u,{marginBottom:1,children:(0,B.jsx)(f,{bold:!0,children:`Configure Mode:`})}),(0,B.jsx)(n,{options:t,onChange:r,onCancel:()=>i(void 0,{display:`skip`}),onUpFromFirstItem:o,isDisabled:a}),(0,B.jsxs)(u,{flexDirection:`column`,marginTop:1,gap:1,children:[(0,B.jsxs)(f,{dimColor:!0,children:[(0,B.jsx)(f,{bold:!0,dimColor:!0,children:`Auto-allow mode:`}),` `,`Commands will try to run in the sandbox automatically, and attempts to run outside of the sandbox fallback to regular permissions. Explicit ask/deny rules are always respected.`]}),(0,B.jsxs)(f,{dimColor:!0,children:[`Learn more:`,` `,(0,B.jsx)(d,{url:`https://code.workmate.com/docs/en/sandboxing`,children:`code.workmate.com/docs/en/sandboxing`})]})]})]})}var B,V=e((()=>{_(),r(),o(),C(),t(),A(),N(),L(),B=y()}));async function H(e,t,n){let r=S().theme||`light`,a=T();if(!s.isSupportedPlatform()){let t=a===`wsl`?`Error: Sandboxing requires WSL2. WSL1 is not supported.`:`Error: Sandboxing is currently only supported on macOS, Linux, and WSL2.`;return e(m(`error`,r)(t)),null}let o=s.checkDependencies();if(!s.isPlatformInEnabledList())return e(m(`error`,r)(`Error: Sandboxing is disabled for this platform (${a}) via the enabledPlatforms setting.`)),null;if(s.areSandboxSettingsLockedByPolicy())return e(m(`error`,r)(`Error: Sandbox settings are overridden by a higher-priority configuration and cannot be changed locally.`)),null;let c=n?.trim()||``;if(!c)return(0,U.jsx)(R,{onComplete:e,depCheck:o});if(c){let t=c.split(` `)[0];if(t===`exclude`){let t=c.slice(8).trim();if(!t)return e(m(`error`,r)(`Error: Please provide a command pattern to exclude (e.g., /sandbox exclude "npm run test:*")`)),null;let n=t.replace(/^["']|["']$/g,``);i(n);let a=w(`localSettings`),o=a?D(b(),a):`.workmate/settings.local.json`;return e(m(`success`,r)(`Added "${n}" to excluded commands in ${o}`)),null}else return e(m(`error`,r)(`Error: Unknown subcommand "${t}". Available subcommand: exclude`)),null}return null}var U;e((()=>{x(),V(),_(),E(),o(),C(),U=y()}))();export{H as call};
1
+ import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{$u as t,Qu as n,hC as r,iT as i,lT as a,oT as o,rT as s}from"./loadAgentsDir-CbtNPJV3.js";import{Gt as c,H as l,I as u,Lt as d,P as f,a as p,j as m,n as h,r as g,t as _,x as v}from"./src-DL3w8VPk2.js";import{t as y}from"./jsx-runtime-Bb4Xn-E0.js";import{O as b,Wt as x}from"./state-BPFYBqm1.js";import{f as S,g as C,s as w}from"./settings-CvhsRFaT.js";import{i as T,o as E}from"./platform-DVeTi9mp.js";import{relative as D}from"path";function O(){let e=s.isSandboxingEnabled(),t=s.checkDependencies(),n=t.warnings.length>0?(0,k.jsx)(u,{marginTop:1,flexDirection:`column`,children:t.warnings.map((e,t)=>(0,k.jsx)(f,{dimColor:!0,children:e},t))}):null;if(!e)return(0,k.jsxs)(u,{flexDirection:`column`,paddingY:1,children:[(0,k.jsx)(f,{color:`subtle`,children:`Sandbox is not enabled`}),n]});let r=s.getFsReadConfig(),i=s.getFsWriteConfig(),o=s.getNetworkRestrictionConfig(),c=s.getAllowUnixSockets(),l=s.getExcludedCommands(),d=s.getLinuxGlobPatternWarnings();return(0,k.jsxs)(u,{flexDirection:`column`,paddingY:1,children:[(0,k.jsxs)(u,{flexDirection:`column`,children:[(0,k.jsx)(f,{bold:!0,color:`permission`,children:`Excluded Commands:`}),(0,k.jsx)(f,{dimColor:!0,children:l.length>0?l.join(`, `):`None`})]}),r.denyOnly.length>0&&(0,k.jsxs)(u,{marginTop:1,flexDirection:`column`,children:[(0,k.jsx)(f,{bold:!0,color:`permission`,children:`Filesystem Read Restrictions:`}),(0,k.jsxs)(f,{dimColor:!0,children:[`Denied: `,r.denyOnly.join(`, `)]}),r.allowWithinDeny&&r.allowWithinDeny.length>0&&(0,k.jsxs)(f,{dimColor:!0,children:[`Allowed within denied: `,r.allowWithinDeny.join(`, `)]})]}),i.allowOnly.length>0&&(0,k.jsxs)(u,{marginTop:1,flexDirection:`column`,children:[(0,k.jsx)(f,{bold:!0,color:`permission`,children:`Filesystem Write Restrictions:`}),(0,k.jsxs)(f,{dimColor:!0,children:[`Allowed: `,i.allowOnly.join(`, `)]}),i.denyWithinAllow.length>0&&(0,k.jsxs)(f,{dimColor:!0,children:[`Denied within allowed: `,i.denyWithinAllow.join(`, `)]})]}),(o.allowedHosts&&o.allowedHosts.length>0||o.deniedHosts&&o.deniedHosts.length>0)&&(0,k.jsxs)(u,{marginTop:1,flexDirection:`column`,children:[(0,k.jsxs)(f,{bold:!0,color:`permission`,children:[`Network Restrictions`,a()?` (Managed)`:``,`:`]}),o.allowedHosts&&o.allowedHosts.length>0&&(0,k.jsxs)(f,{dimColor:!0,children:[`Allowed: `,o.allowedHosts.join(`, `)]}),o.deniedHosts&&o.deniedHosts.length>0&&(0,k.jsxs)(f,{dimColor:!0,children:[`Denied: `,o.deniedHosts.join(`, `)]})]}),c&&c.length>0&&(0,k.jsxs)(u,{marginTop:1,flexDirection:`column`,children:[(0,k.jsx)(f,{bold:!0,color:`permission`,children:`Allowed Unix Sockets:`}),(0,k.jsx)(f,{dimColor:!0,children:c.join(`, `)})]}),d.length>0&&(0,k.jsxs)(u,{marginTop:1,flexDirection:`column`,children:[(0,k.jsx)(f,{bold:!0,color:`warning`,children:`⚠ Warning: Glob patterns not fully supported on Linux`}),(0,k.jsxs)(f,{dimColor:!0,children:[`The following patterns will be ignored: `,d.slice(0,3).join(`, `),d.length>3&&` (${d.length-3} more)`]})]}),n]})}var k,A=e((()=>{_(),o(),k=y()}));function j({depCheck:e}){let t=T()===`macos`,n=e.errors.some(e=>e.includes(`ripgrep`)),r=e.errors.some(e=>e.includes(`bwrap`)),i=e.errors.some(e=>e.includes(`socat`)),a=e.warnings.length>0,o=e.errors.filter(e=>!e.includes(`ripgrep`)&&!e.includes(`bwrap`)&&!e.includes(`socat`));return(0,M.jsxs)(u,{flexDirection:`column`,paddingY:1,gap:1,children:[t&&(0,M.jsx)(u,{flexDirection:`column`,children:(0,M.jsxs)(f,{children:[`seatbelt: `,(0,M.jsx)(f,{color:`success`,children:`built-in (macOS)`})]})}),(0,M.jsxs)(u,{flexDirection:`column`,children:[(0,M.jsxs)(f,{children:[`ripgrep (rg): `,n?(0,M.jsx)(f,{color:`error`,children:`not found`}):(0,M.jsx)(f,{color:`success`,children:`found`})]}),n&&(0,M.jsxs)(f,{dimColor:!0,children:[` `,`· `,t?`brew install ripgrep`:`apt install ripgrep`]})]}),!t&&(0,M.jsxs)(M.Fragment,{children:[(0,M.jsxs)(u,{flexDirection:`column`,children:[(0,M.jsxs)(f,{children:[`bubblewrap (bwrap):`,` `,r?(0,M.jsx)(f,{color:`error`,children:`not installed`}):(0,M.jsx)(f,{color:`success`,children:`installed`})]}),r&&(0,M.jsxs)(f,{dimColor:!0,children:[` `,`· apt install bubblewrap`]})]}),(0,M.jsxs)(u,{flexDirection:`column`,children:[(0,M.jsxs)(f,{children:[`socat: `,i?(0,M.jsx)(f,{color:`error`,children:`not installed`}):(0,M.jsx)(f,{color:`success`,children:`installed`})]}),i&&(0,M.jsxs)(f,{dimColor:!0,children:[` `,`· apt install socat`]})]}),(0,M.jsxs)(u,{flexDirection:`column`,children:[(0,M.jsxs)(f,{children:[`seccomp filter:`,` `,a?(0,M.jsx)(f,{color:`warning`,children:`not installed`}):(0,M.jsx)(f,{color:`success`,children:`installed`}),a&&(0,M.jsx)(f,{dimColor:!0,children:` (required to block unix domain sockets)`})]}),a&&(0,M.jsxs)(u,{flexDirection:`column`,children:[(0,M.jsxs)(f,{dimColor:!0,children:[` `,`· npm install -g @anthropic-ai/sandbox-runtime`]}),(0,M.jsxs)(f,{dimColor:!0,children:[` `,`· or copy vendor/seccomp/* from sandbox-runtime and set`]}),(0,M.jsxs)(f,{dimColor:!0,children:[` `,`sandbox.seccomp.bpfPath and applyPath in settings.json`]})]})]})]}),o.map(e=>(0,M.jsx)(f,{color:`error`,children:e},e))]})}var M,N=e((()=>{_(),E(),M=y()}));function P({onComplete:e}){let t=s.isSandboxingEnabled(),n=s.areSandboxSettingsLockedByPolicy(),r=s.areUnsandboxedCommandsAllowed();return t?n?(0,I.jsxs)(u,{flexDirection:`column`,paddingY:1,children:[(0,I.jsx)(f,{color:`subtle`,children:`Override settings are managed by a higher-priority configuration and cannot be changed locally.`}),(0,I.jsx)(u,{marginTop:1,children:(0,I.jsxs)(f,{dimColor:!0,children:[`Current setting: `,r?`Allow unsandboxed fallback`:`Strict sandbox mode`]})})]}):(0,I.jsx)(F,{onComplete:e,currentMode:r?`open`:`closed`}):(0,I.jsx)(u,{flexDirection:`column`,paddingY:1,children:(0,I.jsx)(f,{color:`subtle`,children:`Sandbox is not enabled. Enable sandbox to configure override settings.`})})}function F({onComplete:e,currentMode:t}){let[r]=l(),{headerFocused:i,focusHeader:a}=p(),o=m(`success`,r)(`(current)`),c=[{label:t===`open`?`Allow unsandboxed fallback ${o}`:`Allow unsandboxed fallback`,value:`open`},{label:t===`closed`?`Strict sandbox mode ${o}`:`Strict sandbox mode`,value:`closed`}];async function h(t){let n=t;await s.setSandboxSettings({allowUnsandboxedCommands:n===`open`}),e(n===`open`?`✓ Unsandboxed fallback allowed - commands can run outside sandbox when necessary`:"✓ Strict sandbox mode - all commands must run in sandbox or be excluded via the `excludedCommands` option")}return(0,I.jsxs)(u,{flexDirection:`column`,paddingY:1,children:[(0,I.jsx)(u,{marginBottom:1,children:(0,I.jsx)(f,{bold:!0,children:`Configure Overrides:`})}),(0,I.jsx)(n,{options:c,onChange:h,onCancel:()=>e(void 0,{display:`skip`}),onUpFromFirstItem:a,isDisabled:i}),(0,I.jsxs)(u,{flexDirection:`column`,marginTop:1,gap:1,children:[(0,I.jsxs)(f,{dimColor:!0,children:[(0,I.jsx)(f,{bold:!0,dimColor:!0,children:`Allow unsandboxed fallback:`}),` `,`When a command fails due to sandbox restrictions, Work Mate can retry with dangerouslyDisableSandbox to run outside the sandbox (falling back to default permissions).`]}),(0,I.jsxs)(f,{dimColor:!0,children:[(0,I.jsx)(f,{bold:!0,dimColor:!0,children:`Strict sandbox mode:`}),` `,`All bash commands invoked by the model must run in the sandbox unless they are explicitly listed in excludedCommands.`]}),(0,I.jsxs)(f,{dimColor:!0,children:[`Learn more:`,` `,(0,I.jsx)(d,{url:`https://code.workmate.com/docs/en/sandboxing#configure-sandboxing`,children:`code.workmate.com/docs/en/sandboxing#configure-sandboxing`})]})]})]})}var I,L=e((()=>{_(),o(),t(),I=y()}));function R({onComplete:e,depCheck:t}){let[n]=l(),r=s.isSandboxingEnabled(),i=s.isAutoAllowBashIfSandboxedEnabled(),a=t.warnings.length>0,o=S().sandbox?.network?.allowAllUnixSockets,u=a&&!o,d=r?i?`auto-allow`:`regular`:`disabled`,f=m(`success`,n)(`(current)`),p=[{label:d===`auto-allow`?`Sandbox BashTool, with auto-allow ${f}`:`Sandbox BashTool, with auto-allow`,value:`auto-allow`},{label:d===`regular`?`Sandbox BashTool, with regular permissions ${f}`:`Sandbox BashTool, with regular permissions`,value:`regular`},{label:d===`disabled`?`No Sandbox ${f}`:`No Sandbox`,value:`disabled`}];async function _(t){switch(t){case`auto-allow`:await s.setSandboxSettings({enabled:!0,autoAllowBashIfSandboxed:!0}),e(`✓ Sandbox enabled with auto-allow for bash commands`);break;case`regular`:await s.setSandboxSettings({enabled:!0,autoAllowBashIfSandboxed:!1}),e(`✓ Sandbox enabled with regular bash permissions`);break;case`disabled`:await s.setSandboxSettings({enabled:!1,autoAllowBashIfSandboxed:!1}),e(`○ Sandbox disabled`);break}}c({"confirm:no":()=>e(void 0,{display:`skip`})},{context:`Settings`});let y=(0,B.jsx)(h,{title:`Mode`,children:(0,B.jsx)(z,{showSocketWarning:u,options:p,onSelect:_,onComplete:e})},`mode`),b=(0,B.jsx)(h,{title:`Overrides`,children:(0,B.jsx)(P,{onComplete:e})},`overrides`),x=(0,B.jsx)(h,{title:`Config`,children:(0,B.jsx)(O,{})},`config`);return(0,B.jsx)(v,{color:`permission`,children:(0,B.jsx)(g,{title:`Sandbox:`,color:`permission`,defaultTab:`Mode`,children:t.errors.length>0?[(0,B.jsx)(h,{title:`Dependencies`,children:(0,B.jsx)(j,{depCheck:t})},`dependencies`)]:[y,...a?[(0,B.jsx)(h,{title:`Dependencies`,children:(0,B.jsx)(j,{depCheck:t})},`dependencies`)]:[],b,x]})})}function z({showSocketWarning:e,options:t,onSelect:r,onComplete:i}){let{headerFocused:a,focusHeader:o}=p();return(0,B.jsxs)(u,{flexDirection:`column`,paddingY:1,children:[e&&(0,B.jsx)(u,{marginBottom:1,children:(0,B.jsx)(f,{color:`warning`,children:`Cannot block unix domain sockets (see Dependencies tab)`})}),(0,B.jsx)(u,{marginBottom:1,children:(0,B.jsx)(f,{bold:!0,children:`Configure Mode:`})}),(0,B.jsx)(n,{options:t,onChange:r,onCancel:()=>i(void 0,{display:`skip`}),onUpFromFirstItem:o,isDisabled:a}),(0,B.jsxs)(u,{flexDirection:`column`,marginTop:1,gap:1,children:[(0,B.jsxs)(f,{dimColor:!0,children:[(0,B.jsx)(f,{bold:!0,dimColor:!0,children:`Auto-allow mode:`}),` `,`Commands will try to run in the sandbox automatically, and attempts to run outside of the sandbox fallback to regular permissions. Explicit ask/deny rules are always respected.`]}),(0,B.jsxs)(f,{dimColor:!0,children:[`Learn more:`,` `,(0,B.jsx)(d,{url:`https://code.workmate.com/docs/en/sandboxing`,children:`code.workmate.com/docs/en/sandboxing`})]})]})]})}var B,V=e((()=>{_(),r(),o(),C(),t(),A(),N(),L(),B=y()}));async function H(e,t,n){let r=S().theme||`light`,a=T();if(!s.isSupportedPlatform()){let t=a===`wsl`?`Error: Sandboxing requires WSL2. WSL1 is not supported.`:`Error: Sandboxing is currently only supported on macOS, Linux, and WSL2.`;return e(m(`error`,r)(t)),null}let o=s.checkDependencies();if(!s.isPlatformInEnabledList())return e(m(`error`,r)(`Error: Sandboxing is disabled for this platform (${a}) via the enabledPlatforms setting.`)),null;if(s.areSandboxSettingsLockedByPolicy())return e(m(`error`,r)(`Error: Sandbox settings are overridden by a higher-priority configuration and cannot be changed locally.`)),null;let c=n?.trim()||``;if(!c)return(0,U.jsx)(R,{onComplete:e,depCheck:o});if(c){let t=c.split(` `)[0];if(t===`exclude`){let t=c.slice(8).trim();if(!t)return e(m(`error`,r)(`Error: Please provide a command pattern to exclude (e.g., /sandbox exclude "npm run test:*")`)),null;let n=t.replace(/^["']|["']$/g,``);i(n);let a=w(`localSettings`),o=a?D(b(),a):`.workmate/settings.local.json`;return e(m(`success`,r)(`Added "${n}" to excluded commands in ${o}`)),null}else return e(m(`error`,r)(`Error: Unknown subcommand "${t}". Available subcommand: exclude`)),null}return null}var U;e((()=>{x(),V(),_(),E(),o(),C(),U=y()}))();export{H as call};
@@ -0,0 +1 @@
1
+ import{F_ as e,N_ as t}from"./loadAgentsDir-CbtNPJV3.js";t();export{e as isSearchExtraToolsEnabled};
@@ -1,2 +1,2 @@
1
- import{n as e,o as t}from"./rolldown-runtime-DaDcL9Zw.js";import{Xh as n,Zh as r,hC as i}from"./loadAgentsDir-PPiD2Mfq.js";import{I as a,P as o,Wt as s,ai as c,t as l,x as u}from"./src-DL3w8VPk2.js";import{t as d}from"./jsx-runtime-Bb4Xn-E0.js";import{c as f,i as p}from"./debug-BQj6h99Q.js";import{t as m}from"./lib-BlVGipXx.js";function h({onDone:e}){let t=r(e=>e.remoteSessionUrl),[n,i]=(0,_.useState)(``);if((0,_.useEffect)(()=>{if(!t)return;let e=t;async function n(){let t=await(0,g.toString)(e,{type:`utf8`,errorCorrectionLevel:`L`});i(t)}n().catch(e=>{f(`QR code generation failed`,e)})},[t]),s(`confirm:no`,e,{context:`Confirmation`}),!t)return(0,v.jsxs)(u,{children:[(0,v.jsx)(o,{color:`warning`,children:"Not in remote mode. Start with `claude --remote` to use this command."}),(0,v.jsx)(o,{dimColor:!0,children:`(press esc to close)`})]});let c=n.split(`
1
+ import{n as e,o as t}from"./rolldown-runtime-DaDcL9Zw.js";import{Xh as n,Zh as r,hC as i}from"./loadAgentsDir-CbtNPJV3.js";import{I as a,P as o,Wt as s,ai as c,t as l,x as u}from"./src-DL3w8VPk2.js";import{t as d}from"./jsx-runtime-Bb4Xn-E0.js";import{c as f,i as p}from"./debug-BQj6h99Q.js";import{t as m}from"./lib-BlVGipXx.js";function h({onDone:e}){let t=r(e=>e.remoteSessionUrl),[n,i]=(0,_.useState)(``);if((0,_.useEffect)(()=>{if(!t)return;let e=t;async function n(){let t=await(0,g.toString)(e,{type:`utf8`,errorCorrectionLevel:`L`});i(t)}n().catch(e=>{f(`QR code generation failed`,e)})},[t]),s(`confirm:no`,e,{context:`Confirmation`}),!t)return(0,v.jsxs)(u,{children:[(0,v.jsx)(o,{color:`warning`,children:"Not in remote mode. Start with `claude --remote` to use this command."}),(0,v.jsx)(o,{dimColor:!0,children:`(press esc to close)`})]});let c=n.split(`
2
2
  `).filter(e=>e.length>0),l=c.length===0;return(0,v.jsxs)(u,{children:[(0,v.jsx)(a,{marginBottom:1,children:(0,v.jsx)(o,{bold:!0,children:`Remote session`})}),l?(0,v.jsx)(o,{dimColor:!0,children:`Generating QR code…`}):c.map((e,t)=>(0,v.jsx)(o,{children:e},t)),(0,v.jsxs)(a,{marginTop:1,children:[(0,v.jsx)(o,{dimColor:!0,children:`Open in browser: `}),(0,v.jsx)(o,{color:`ide`,children:t})]}),(0,v.jsx)(a,{marginTop:1,children:(0,v.jsx)(o,{dimColor:!0,children:`(press esc to close)`})})]})}var g,_,v,y;e((()=>{g=m(),_=t(c(),1),l(),i(),n(),p(),v=d(),y=async e=>(0,v.jsx)(h,{onDone:e})}))();export{y as call};
@@ -0,0 +1 @@
1
+ import{nh as e,rh as t}from"./loadAgentsDir-CbtNPJV3.js";e();export{t as registerSessionFileAccessHooks};
@@ -0,0 +1 @@
1
+ import{n as e,r as t}from"./sessionObserver-DpY0DOjI.js";t();export{e as heuristicObserverBackend};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{X as t,Z as n,by as r}from"./loadAgentsDir-PPiD2Mfq.js";import{Q as i}from"./sessionState-BTFowSpR.js";import{i as a,l as o,t as s,u as c}from"./instinctParser-Dt-lqnDe.js";function l(e){h.set(e.name,e),g||(g=e.name)}function u(e){if(!h.has(e))throw Error(`Observer backend "${e}" is not registered`);g=e}function d(){let e=g?h.get(g):void 0;if(!e)throw Error(`No observer backend is active — register one before analyzing observations`);return e}async function f(e,t){return Promise.resolve(d().analyze(e,t))}function p(){let e=process.env.SKILL_LEARNING_OBSERVER_BACKEND?.trim();return e&&h.has(e)?e:void 0}function m(){let e=p();return e&&u(e),d()}var h,g,_=e((()=>{h=new Map})),v,y=e((()=>{v=[`workflow`,`testing`,`debugging`,`code-style`,`security`,`git`,`project`]}));async function b(e,t){if(e.length===0)return[];if(Date.now()<L)return x(e,t);let r=e.slice(-30),a=S(r),s=P(o().llm.timeoutMs),c;try{let e=await n({systemPrompt:i([R]),userPrompt:a,signal:s,options:{querySource:`skill_learning_observer`,enablePromptCaching:!0,agents:[],isNonInteractiveSession:!0,hasAppendSystemPrompt:!1,mcpTools:[]}});I=0,c=T(e.message?.content)}catch{return I++,I>=o().llm.failureThreshold&&(L=Date.now()+o().llm.circuitCooldownMs),x(e,t)}let l=E(c,t,r);return l.length===0?(I++,I>=o().llm.failureThreshold&&(L=Date.now()+o().llm.circuitCooldownMs),x(e,t)):l}async function x(e,t){try{let{heuristicObserverBackend:n}=await import(`./sessionObserver-KB1UL_n2.js`),r=n.analyze(e,t);return Array.isArray(r)?r:await r}catch{return[]}}function S(e){return`Observations (chronological, newest last):\n${e.map((e,t)=>C(e,t)).join(`
1
+ import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{X as t,Z as n,by as r}from"./loadAgentsDir-CbtNPJV3.js";import{Q as i}from"./sessionState-BlbRQ3Y6.js";import{i as a,l as o,t as s,u as c}from"./instinctParser-Dt-lqnDe.js";function l(e){h.set(e.name,e),g||(g=e.name)}function u(e){if(!h.has(e))throw Error(`Observer backend "${e}" is not registered`);g=e}function d(){let e=g?h.get(g):void 0;if(!e)throw Error(`No observer backend is active — register one before analyzing observations`);return e}async function f(e,t){return Promise.resolve(d().analyze(e,t))}function p(){let e=process.env.SKILL_LEARNING_OBSERVER_BACKEND?.trim();return e&&h.has(e)?e:void 0}function m(){let e=p();return e&&u(e),d()}var h,g,_=e((()=>{h=new Map})),v,y=e((()=>{v=[`workflow`,`testing`,`debugging`,`code-style`,`security`,`git`,`project`]}));async function b(e,t){if(e.length===0)return[];if(Date.now()<L)return x(e,t);let r=e.slice(-30),a=S(r),s=P(o().llm.timeoutMs),c;try{let e=await n({systemPrompt:i([R]),userPrompt:a,signal:s,options:{querySource:`skill_learning_observer`,enablePromptCaching:!0,agents:[],isNonInteractiveSession:!0,hasAppendSystemPrompt:!1,mcpTools:[]}});I=0,c=T(e.message?.content)}catch{return I++,I>=o().llm.failureThreshold&&(L=Date.now()+o().llm.circuitCooldownMs),x(e,t)}let l=E(c,t,r);return l.length===0?(I++,I>=o().llm.failureThreshold&&(L=Date.now()+o().llm.circuitCooldownMs),x(e,t)):l}async function x(e,t){try{let{heuristicObserverBackend:n}=await import(`./sessionObserver-BuhXr3FP.js`),r=n.analyze(e,t);return Array.isArray(r)?r:await r}catch{return[]}}function S(e){return`Observations (chronological, newest last):\n${e.map((e,t)=>C(e,t)).join(`
2
2
  `)}\n\nExtract up to ${F} atomic instincts. JSON array only.`}function C(e,t){let n=[`#${t+1}`,`event=${e.event}`];return e.toolName&&n.push(`tool=${e.toolName}`),e.outcome&&n.push(`outcome=${e.outcome}`),e.messageText&&n.push(`text=${JSON.stringify(w(e.messageText,200))}`),e.toolInput&&n.push(`in=${JSON.stringify(w(e.toolInput,120))}`),e.toolOutput&&n.push(`out=${JSON.stringify(w(e.toolOutput,120))}`),n.join(` | `)}function w(e,t){return e.length<=t?e:`${e.slice(0,t)}…`}function T(e){if(!Array.isArray(e))return``;let t=[];for(let n of e){if(!n||typeof n!=`object`)continue;let e=n;e.type===`text`&&typeof e.text==`string`&&t.push(e.text)}return t.join(``).trim()}function E(e,t,n){let r=D(e);if(!r)return[];let i;try{i=JSON.parse(r)}catch{return[]}if(!Array.isArray(i))return[];let a=n.map(e=>e.id),o=[];for(let e of i.slice(0,F)){let n=O(e,t,a);n&&o.push(n)}return o}function D(e){if(!e)return;let t=e.indexOf(`[`),n=e.lastIndexOf(`]`);if(!(t<0||n<=t))return e.slice(t,n+1)}function O(e,t,n){if(!e||typeof e!=`object`)return;let r=e,i=k(r.trigger,80),a=k(r.action,120);if(!i||!a)return;let o=N(r.evidence);if(o.length!==0)return{trigger:i,action:a,confidence:A(r.confidence),domain:j(r.domain),source:`session-observation`,scope:M(r.scope),projectId:t?.project?.projectId,projectName:t?.project?.projectName,evidence:o,observationIds:n}}function k(e,t){if(typeof e!=`string`)return;let n=e.trim();if(n)return n.length>t?n.slice(0,t):n}function A(e){return typeof e!=`number`||!Number.isFinite(e)?.5:e<0?0:e>1?1:e}function j(e){return typeof e==`string`&&v.includes(e)?e:`project`}function M(e){return e===`global`?`global`:`project`}function N(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){if(typeof n!=`string`)continue;let e=n.trim();if(e&&(t.push(e.length>200?`${e.slice(0,200)}…`:e),t.length===3))break}return t}function P(e){return AbortSignal.timeout(e)}var F,I,L,R,z,B=e((()=>{t(),r(),c(),y(),F=3,I=0,L=0,R=`You analyse a short sequence of observations from a coding-assistant session (user messages, tool invocations with outcomes, assistant messages) and extract atomic, reusable "instincts" — behavioural patterns that would help the assistant act correctly in future similar situations.
3
3
 
4
4
  Respond with ONLY a JSON array (no prose, no code fences, no commentary). Each item must match this schema:
@@ -1,4 +1,4 @@
1
- import{n as e,r as t}from"./rolldown-runtime-DaDcL9Zw.js";import{l as n,o as r}from"./envUtils-DcaKZlRU.js";import{t as i}from"./semver-DQo45qGo.js";import{Wt as a,Xn as o,mt as s,pt as c,z as l}from"./state-BPFYBqm1.js";import{P as u,R as d,c as f,f as p,i as m,nt as h,tt as g,u as _}from"./debug-BQj6h99Q.js";import{O as ee,k as v}from"./git-DplvjXEY.js";import{br as te,vr as y,xr as ne,yr as re}from"./model-sviY1inu.js";import{randomUUID as b}from"crypto";function x(){return S||(S=i()),S}function ie(e,t){return typeof Bun<`u`?Bun.semver.order(e,t)===1:x().gt(e,t,{loose:!0})}function ae(e,t){return typeof Bun<`u`?Bun.semver.order(e,t)>=0:x().gte(e,t,{loose:!0})}function oe(e,t){return typeof Bun<`u`?Bun.semver.order(e,t)===-1:x().lt(e,t,{loose:!0})}function se(e,t){return typeof Bun<`u`?Bun.semver.satisfies(e,t):x().satisfies(e,t,{loose:!0})}var S,ce=e((()=>{})),le=t({activateProactive:()=>ue,deactivateProactive:()=>de,getActivationSource:()=>ye,getNextTickAt:()=>ve,isContextBlocked:()=>ge,isProactiveActive:()=>w,isProactivePaused:()=>fe,pauseProactive:()=>pe,resumeProactive:()=>me,setContextBlocked:()=>he,setNextTickAt:()=>_e,shouldTick:()=>xe,subscribeToProactiveChanges:()=>be});function C(){for(let e of k)try{e()}catch{}}function w(){return T}function ue(e){T||(T=!0,E=!1,D=!1,Se=e,C())}function de(){T&&(T=!1,E=!1,D=!1,O=null,Se=void 0,C())}function fe(){return E}function pe(){!T||E||(E=!0,O=null,C())}function me(){!T||!E||(E=!1,C())}function he(e){D!==e&&(D=e,e&&(O=null),C())}function ge(){return D}function _e(e){O=e,C()}function ve(){return!T||E||D?null:O}function ye(){return Se}function be(e){return k.add(e),()=>{k.delete(e)}}function xe(){return T&&!E&&!D}var T,E,D,O,Se,k,Ce=e((()=>{T=!1,E=!1,D=!1,O=null,k=new Set})),we=e((()=>{})),Te,Ee=e((()=>{Te={input_tokens:0,cache_creation_input_tokens:0,cache_read_input_tokens:0,output_tokens:0,server_tool_use:{web_search_requests:0,web_fetch_requests:0},service_tier:`standard`,cache_creation:{ephemeral_1h_input_tokens:0,ephemeral_5m_input_tokens:0},inference_geo:``,iterations:[],speed:`standard`}})),De=e((()=>{}));function Oe(e){return e}var ke=e((()=>{})),Ae=e((()=>{we(),Ee(),De(),ke()}));function je(e){return/haiku/i.test(e)?`haiku`:/opus/i.test(e)?`opus`:/sonnet/i.test(e)?`sonnet`:null}function Me(e){if(process.env.OPENAI_MODEL)return process.env.OPENAI_MODEL;let t=e.replace(/\[1m\]$/,``),n=je(t);if(n){let e=`OPENAI_DEFAULT_${n.toUpperCase()}_MODEL`,t=process.env[e];if(t)return t;let r=`ANTHROPIC_DEFAULT_${n.toUpperCase()}_MODEL`,i=process.env[r];if(i)return i}return Ne[t]??t}var Ne,Pe=e((()=>{Ne={"claude-sonnet-4-20250514":`gpt-4o`,"claude-sonnet-4-5-20250929":`gpt-4o`,"claude-sonnet-4-6":`gpt-4o`,"claude-opus-4-20250514":`o3`,"claude-opus-4-1-20250805":`o3`,"claude-opus-4-5-20251101":`o3`,"claude-opus-4-6":`o3`,"claude-haiku-4-5-20251001":`gpt-4o-mini`,"claude-3-5-haiku-20241022":`gpt-4o-mini`,"claude-3-7-sonnet-20250219":`gpt-4o`,"claude-3-5-sonnet-20241022":`gpt-4o`}}));function Fe(e){return/haiku/i.test(e)?`haiku`:/opus/i.test(e)?`opus`:/sonnet/i.test(e)?`sonnet`:null}function Ie(){let e=process.env.GROK_MODEL_MAP;if(!e)return null;try{let t=JSON.parse(e);if(t&&typeof t==`object`&&!Array.isArray(t))return t}catch{}return null}function Le(e){if(process.env.GROK_MODEL)return process.env.GROK_MODEL;let t=e.replace(/\[1m\]$/,``),n=Fe(t),r=Ie();if(r&&n&&r[n])return r[n];if(n){let e=`GROK_DEFAULT_${n.toUpperCase()}_MODEL`,t=process.env[e];if(t)return t;let r=`ANTHROPIC_DEFAULT_${n.toUpperCase()}_MODEL`,i=process.env[r];if(i)return i}return Re[t]?Re[t]:n&&ze[n]?ze[n]:t}var Re,ze,Be=e((()=>{Re={"claude-sonnet-4-20250514":`grok-3-mini-fast`,"claude-sonnet-4-5-20250929":`grok-3-mini-fast`,"claude-sonnet-4-6":`grok-3-mini-fast`,"claude-opus-4-20250514":`grok-4.20-reasoning`,"claude-opus-4-1-20250805":`grok-4.20-reasoning`,"claude-opus-4-5-20251101":`grok-4.20-reasoning`,"claude-opus-4-6":`grok-4.20-reasoning`,"claude-haiku-4-5-20251001":`grok-3-mini-fast`,"claude-3-5-haiku-20241022":`grok-3-mini-fast`,"claude-3-7-sonnet-20250219":`grok-3-mini-fast`,"claude-3-5-sonnet-20241022":`grok-3-mini-fast`},ze={opus:`grok-4.20-reasoning`,sonnet:`grok-3-mini-fast`,haiku:`grok-3-mini-fast`}}));function Ve(e){return/haiku/i.test(e)?`haiku`:/opus/i.test(e)?`opus`:/sonnet/i.test(e)?`sonnet`:null}function He(e){if(process.env.GEMINI_MODEL)return process.env.GEMINI_MODEL;let t=e.replace(/\[1m\]$/i,``),n=Ve(t);if(!n)return t;let r=`GEMINI_DEFAULT_${n.toUpperCase()}_MODEL`,i=process.env[r];if(i)return i;let a=`ANTHROPIC_DEFAULT_${n.toUpperCase()}_MODEL`,o=process.env[a];if(o)return o;throw Error(`Gemini provider requires GEMINI_MODEL or ${r} (or ${a} for backward compatibility) to be configured.`)}var Ue=e((()=>{})),We,A=e((()=>{We=`_geminiThoughtSignature`}));function j(e){if(!e)return null;try{return JSON.parse(e)}catch{return null}}function Ge(e,t){let n=[],r=new Map;for(let t of e){if(t.type===`assistant`){let e=Ye(t);e.parts.length>0&&n.push(e);let i=t.message.content;if(Array.isArray(i))for(let e of i)typeof e!=`string`&&e.type===`tool_use`&&r.set(e.id,e.name);continue}if(t.type===`user`){let e=qe(t,r);e.parts.length>0&&n.push(e)}}let i=Ke(t);return{contents:n,...i?{systemInstruction:{parts:[{text:i}]}}:{}}}function Ke(e){return!e||e.length===0?``:e.filter(Boolean).join(`
1
+ import{n as e,r as t}from"./rolldown-runtime-DaDcL9Zw.js";import{l as n,o as r}from"./envUtils-DcaKZlRU.js";import{t as i}from"./semver-DQo45qGo.js";import{Wt as a,Xn as o,mt as s,pt as c,z as l}from"./state-BPFYBqm1.js";import{P as u,R as d,c as f,f as p,i as m,nt as h,tt as g,u as _}from"./debug-BQj6h99Q.js";import{O as ee,k as v}from"./git-DplvjXEY.js";import{br as te,vr as y,xr as ne,yr as re}from"./model-DlLO7TSx.js";import{randomUUID as b}from"crypto";function x(){return S||(S=i()),S}function ie(e,t){return typeof Bun<`u`?Bun.semver.order(e,t)===1:x().gt(e,t,{loose:!0})}function ae(e,t){return typeof Bun<`u`?Bun.semver.order(e,t)>=0:x().gte(e,t,{loose:!0})}function oe(e,t){return typeof Bun<`u`?Bun.semver.order(e,t)===-1:x().lt(e,t,{loose:!0})}function se(e,t){return typeof Bun<`u`?Bun.semver.satisfies(e,t):x().satisfies(e,t,{loose:!0})}var S,ce=e((()=>{})),le=t({activateProactive:()=>ue,deactivateProactive:()=>de,getActivationSource:()=>ye,getNextTickAt:()=>ve,isContextBlocked:()=>ge,isProactiveActive:()=>w,isProactivePaused:()=>fe,pauseProactive:()=>pe,resumeProactive:()=>me,setContextBlocked:()=>he,setNextTickAt:()=>_e,shouldTick:()=>xe,subscribeToProactiveChanges:()=>be});function C(){for(let e of k)try{e()}catch{}}function w(){return T}function ue(e){T||(T=!0,E=!1,D=!1,Se=e,C())}function de(){T&&(T=!1,E=!1,D=!1,O=null,Se=void 0,C())}function fe(){return E}function pe(){!T||E||(E=!0,O=null,C())}function me(){!T||!E||(E=!1,C())}function he(e){D!==e&&(D=e,e&&(O=null),C())}function ge(){return D}function _e(e){O=e,C()}function ve(){return!T||E||D?null:O}function ye(){return Se}function be(e){return k.add(e),()=>{k.delete(e)}}function xe(){return T&&!E&&!D}var T,E,D,O,Se,k,Ce=e((()=>{T=!1,E=!1,D=!1,O=null,k=new Set})),we=e((()=>{})),Te,Ee=e((()=>{Te={input_tokens:0,cache_creation_input_tokens:0,cache_read_input_tokens:0,output_tokens:0,server_tool_use:{web_search_requests:0,web_fetch_requests:0},service_tier:`standard`,cache_creation:{ephemeral_1h_input_tokens:0,ephemeral_5m_input_tokens:0},inference_geo:``,iterations:[],speed:`standard`}})),De=e((()=>{}));function Oe(e){return e}var ke=e((()=>{})),Ae=e((()=>{we(),Ee(),De(),ke()}));function je(e){return/haiku/i.test(e)?`haiku`:/opus/i.test(e)?`opus`:/sonnet/i.test(e)?`sonnet`:null}function Me(e){if(process.env.OPENAI_MODEL)return process.env.OPENAI_MODEL;let t=e.replace(/\[1m\]$/,``),n=je(t);if(n){let e=`OPENAI_DEFAULT_${n.toUpperCase()}_MODEL`,t=process.env[e];if(t)return t;let r=`ANTHROPIC_DEFAULT_${n.toUpperCase()}_MODEL`,i=process.env[r];if(i)return i}return Ne[t]??t}var Ne,Pe=e((()=>{Ne={"claude-sonnet-4-20250514":`gpt-4o`,"claude-sonnet-4-5-20250929":`gpt-4o`,"claude-sonnet-4-6":`gpt-4o`,"claude-opus-4-20250514":`o3`,"claude-opus-4-1-20250805":`o3`,"claude-opus-4-5-20251101":`o3`,"claude-opus-4-6":`o3`,"claude-haiku-4-5-20251001":`gpt-4o-mini`,"claude-3-5-haiku-20241022":`gpt-4o-mini`,"claude-3-7-sonnet-20250219":`gpt-4o`,"claude-3-5-sonnet-20241022":`gpt-4o`}}));function Fe(e){return/haiku/i.test(e)?`haiku`:/opus/i.test(e)?`opus`:/sonnet/i.test(e)?`sonnet`:null}function Ie(){let e=process.env.GROK_MODEL_MAP;if(!e)return null;try{let t=JSON.parse(e);if(t&&typeof t==`object`&&!Array.isArray(t))return t}catch{}return null}function Le(e){if(process.env.GROK_MODEL)return process.env.GROK_MODEL;let t=e.replace(/\[1m\]$/,``),n=Fe(t),r=Ie();if(r&&n&&r[n])return r[n];if(n){let e=`GROK_DEFAULT_${n.toUpperCase()}_MODEL`,t=process.env[e];if(t)return t;let r=`ANTHROPIC_DEFAULT_${n.toUpperCase()}_MODEL`,i=process.env[r];if(i)return i}return Re[t]?Re[t]:n&&ze[n]?ze[n]:t}var Re,ze,Be=e((()=>{Re={"claude-sonnet-4-20250514":`grok-3-mini-fast`,"claude-sonnet-4-5-20250929":`grok-3-mini-fast`,"claude-sonnet-4-6":`grok-3-mini-fast`,"claude-opus-4-20250514":`grok-4.20-reasoning`,"claude-opus-4-1-20250805":`grok-4.20-reasoning`,"claude-opus-4-5-20251101":`grok-4.20-reasoning`,"claude-opus-4-6":`grok-4.20-reasoning`,"claude-haiku-4-5-20251001":`grok-3-mini-fast`,"claude-3-5-haiku-20241022":`grok-3-mini-fast`,"claude-3-7-sonnet-20250219":`grok-3-mini-fast`,"claude-3-5-sonnet-20241022":`grok-3-mini-fast`},ze={opus:`grok-4.20-reasoning`,sonnet:`grok-3-mini-fast`,haiku:`grok-3-mini-fast`}}));function Ve(e){return/haiku/i.test(e)?`haiku`:/opus/i.test(e)?`opus`:/sonnet/i.test(e)?`sonnet`:null}function He(e){if(process.env.GEMINI_MODEL)return process.env.GEMINI_MODEL;let t=e.replace(/\[1m\]$/i,``),n=Ve(t);if(!n)return t;let r=`GEMINI_DEFAULT_${n.toUpperCase()}_MODEL`,i=process.env[r];if(i)return i;let a=`ANTHROPIC_DEFAULT_${n.toUpperCase()}_MODEL`,o=process.env[a];if(o)return o;throw Error(`Gemini provider requires GEMINI_MODEL or ${r} (or ${a} for backward compatibility) to be configured.`)}var Ue=e((()=>{})),We,A=e((()=>{We=`_geminiThoughtSignature`}));function j(e){if(!e)return null;try{return JSON.parse(e)}catch{return null}}function Ge(e,t){let n=[],r=new Map;for(let t of e){if(t.type===`assistant`){let e=Ye(t);e.parts.length>0&&n.push(e);let i=t.message.content;if(Array.isArray(i))for(let e of i)typeof e!=`string`&&e.type===`tool_use`&&r.set(e.id,e.name);continue}if(t.type===`user`){let e=qe(t,r);e.parts.length>0&&n.push(e)}}let i=Ke(t);return{contents:n,...i?{systemInstruction:{parts:[{text:i}]}}:{}}}function Ke(e){return!e||e.length===0?``:e.filter(Boolean).join(`
2
2
 
3
3
  `)}function qe(e,t){let n=e.message.content;return typeof n==`string`?{role:`user`,parts:M(n)}:Array.isArray(n)?{role:`user`,parts:n.flatMap(e=>Je(e,t))}:{role:`user`,parts:[]}}function Je(e,t){if(typeof e==`string`)return M(e);if(e.type===`text`)return M(e.text);if(e.type===`tool_result`){let n=e;return[{functionResponse:{name:t.get(n.tool_use_id)??n.tool_use_id,response:Qe(n)}}]}if(e.type===`image`){let t=e.source;if(t?.type===`base64`&&typeof t.data==`string`)return[{inlineData:{mimeType:t.media_type||`image/png`,data:t.data}}];if(t?.type===`url`&&typeof t.url==`string`)return M(`[image: ${t.url}]`)}return[]}function Ye(e){let t=e.message.content;if(typeof t==`string`)return{role:`model`,parts:M(t)};if(!Array.isArray(t))return{role:`model`,parts:[]};let n=[];for(let e of t){if(typeof e==`string`){n.push(...M(e));continue}if(e.type===`text`){n.push(...M(e.text,N(e)));continue}if(e.type===`thinking`){let t=Xe(e.thinking,e.signature);t&&n.push(t);continue}if(e.type===`tool_use`){let t=e;n.push({functionCall:{name:t.name,args:Ze(t.input)},...N(e)&&{thoughtSignature:N(e)}})}}return{role:`model`,parts:n}}function M(e,t){return typeof e!=`string`||e.length===0?[]:[{text:e,...t&&{thoughtSignature:t}}]}function Xe(e,t){if(!(typeof e!=`string`||e.length===0))return{text:e,thought:!0,...t&&{thoughtSignature:t}}}function Ze(e){if(typeof e==`string`){let t=j(e);return t&&typeof t==`object`&&!Array.isArray(t)?t:t===null?{}:{value:t}}return e&&typeof e==`object`&&!Array.isArray(e)?e:e===void 0?{}:{value:e}}function Qe(e){let t=$e(e.content);return t&&typeof t==`object`&&!Array.isArray(t)?e.is_error?{...t,is_error:!0}:t:{result:t,...e.is_error?{is_error:!0}:{}}}function $e(e){if(typeof e==`string`)return j(e)??e;if(Array.isArray(e)){let t=e.map(e=>typeof e==`string`?e:e&&typeof e==`object`&&`text`in e&&typeof e.text==`string`?e.text:``).filter(Boolean).join(`
4
4
  `);return j(t)??t}return e??``}function N(e){let t=e[We];return typeof t==`string`&&t.length>0?t:void 0}var et=e((()=>{A()}));function tt(e){if(typeof e==`string`)return F.has(e)?e:void 0;if(Array.isArray(e)){let t=e.filter(e=>typeof e==`string`&&F.has(e)),n=Array.from(new Set(t));return n.length===0?void 0:n.length===1?n[0]:n}}function nt(e){if(e===null)return`null`;if(Array.isArray(e))return`array`;if(typeof e==`string`)return`string`;if(typeof e==`boolean`)return`boolean`;if(typeof e==`number`)return Number.isInteger(e)?`integer`:`number`;if(typeof e==`object`)return`object`}function rt(e){let t=e.map(nt).filter(e=>e!==void 0),n=Array.from(new Set(t));if(n.length!==0)return n.length===1?n[0]:n}function it(e){return e===void 0?[`null`]:Array.isArray(e)?e.includes(`null`)?e:[...e,`null`]:e===`null`?e:[e,`null`]}function at(e){if(!e||typeof e!=`object`||Array.isArray(e))return;let t=Object.entries(e).map(([e,t])=>[e,P(t)]).filter(([,e])=>Object.keys(e).length>0);if(t.length!==0)return Object.fromEntries(t)}function ot(e){if(!Array.isArray(e))return;let t=e.map(e=>P(e)).filter(e=>Object.keys(e).length>0);return t.length>0?t:void 0}function P(e){if(!e||typeof e!=`object`||Array.isArray(e))return{};let t=e,n={},r=tt(t.type);t.const===void 0?Array.isArray(t.enum)&&t.enum.length>0&&(n.enum=t.enum,r=r??rt(t.enum)):(n.enum=[t.const],r=r??nt(t.const)),r||(t.properties&&typeof t.properties==`object`?r=`object`:(t.items!==void 0||t.prefixItems!==void 0)&&(r=`array`)),t.nullable===!0&&(r=it(r)),r&&(n.type=r),typeof t.title==`string`&&(n.title=t.title),typeof t.description==`string`&&(n.description=t.description),typeof t.format==`string`&&(n.format=t.format),typeof t.pattern==`string`&&(n.pattern=t.pattern),typeof t.minimum==`number`?n.minimum=t.minimum:typeof t.exclusiveMinimum==`number`&&(n.minimum=t.exclusiveMinimum),typeof t.maximum==`number`?n.maximum=t.maximum:typeof t.exclusiveMaximum==`number`&&(n.maximum=t.exclusiveMaximum),typeof t.minItems==`number`&&(n.minItems=t.minItems),typeof t.maxItems==`number`&&(n.maxItems=t.maxItems),typeof t.minLength==`number`&&(n.minLength=t.minLength),typeof t.maxLength==`number`&&(n.maxLength=t.maxLength),typeof t.minProperties==`number`&&(n.minProperties=t.minProperties),typeof t.maxProperties==`number`&&(n.maxProperties=t.maxProperties);let i=at(t.properties);if(i&&(n.properties=i,n.propertyOrdering=Object.keys(i)),Array.isArray(t.required)){let e=t.required.filter(e=>typeof e==`string`);e.length>0&&(n.required=e)}if(typeof t.additionalProperties==`boolean`)n.additionalProperties=t.additionalProperties;else{let e=P(t.additionalProperties);Object.keys(e).length>0&&(n.additionalProperties=e)}let a=P(t.items);Object.keys(a).length>0&&(n.items=a);let o=ot(t.prefixItems);o&&(n.prefixItems=o);let s=ot(t.anyOf??t.oneOf);return s&&(n.anyOf=s),n}function st(e){let t=P(e);return Object.keys(t).length>0?t:{type:`object`,properties:{}}}function ct(e){let t=e.filter(e=>{let t=e.type;return e.type===`custom`||!(`type`in e)||t!==`server`}).map(e=>{let t=e;return{name:t.name||``,description:t.description||``,parametersJsonSchema:st(t.input_schema??{type:`object`,properties:{}})}});return t.length>0?[{functionDeclarations:t}]:[]}function lt(e){if(!e||typeof e!=`object`)return;let t=e;switch(t.type){case`auto`:return{mode:`AUTO`};case`any`:return{mode:`ANY`};case`tool`:return{mode:`ANY`,allowedFunctionNames:typeof t.name==`string`?[t.name]:void 0};default:return}}var F,ut=e((()=>{F=new Set([`string`,`number`,`integer`,`boolean`,`object`,`array`,`null`])}));async function*dt(e,t){let n=`msg_${b().replace(/-/g,``).slice(0,24)}`,r=!1,i=!1,a=0,o=null,s=!1,c,l=0,u=0,d=0;for await(let i of e){let e=i.usageMetadata;e&&(l=e.promptTokenCount??l,u=(e.candidatesTokenCount??0)+(e.thoughtsTokenCount??0),d=e.cachedContentTokenCount??d),r||(r=!0,yield{type:`message_start`,message:{id:n,type:`message`,role:`assistant`,content:[],model:t,stop_reason:null,stop_sequence:null,usage:{input_tokens:l,output_tokens:0,cache_creation_input_tokens:0,cache_read_input_tokens:d}}});let f=i.candidates?.[0],p=f?.content?.parts??[];for(let e of p){if(e.functionCall){o&&(yield{type:`content_block_stop`,index:o.index},o=null),s=!0;let t=a++;yield{type:`content_block_start`,index:t,content_block:{type:`tool_use`,id:`toolu_${b().replace(/-/g,``).slice(0,24)}`,name:e.functionCall.name||``,input:{}}},e.thoughtSignature&&(yield{type:`content_block_delta`,index:t,delta:{type:`signature_delta`,signature:e.thoughtSignature}}),e.functionCall.args&&Object.keys(e.functionCall.args).length>0&&(yield{type:`content_block_delta`,index:t,delta:{type:`input_json_delta`,partial_json:JSON.stringify(e.functionCall.args)}}),yield{type:`content_block_stop`,index:t};continue}let t=ft(e);if(t){(!o||o.type!==t)&&(o&&(yield{type:`content_block_stop`,index:o.index}),o={index:a++,type:t},yield{type:`content_block_start`,index:o.index,content_block:t===`thinking`?{type:`thinking`,thinking:``,signature:``}:{type:`text`,text:``}}),e.text&&(yield{type:`content_block_delta`,index:o.index,delta:t===`thinking`?{type:`thinking_delta`,thinking:e.text}:{type:`text_delta`,text:e.text}}),e.thoughtSignature&&(yield{type:`content_block_delta`,index:o.index,delta:{type:`signature_delta`,signature:e.thoughtSignature}});continue}e.thoughtSignature&&o&&(yield{type:`content_block_delta`,index:o.index,delta:{type:`signature_delta`,signature:e.thoughtSignature}})}f?.finishReason&&(c=f.finishReason)}r&&(o&&(yield{type:`content_block_stop`,index:o.index}),i||(yield{type:`message_delta`,delta:{stop_reason:pt(c,s),stop_sequence:null},usage:{input_tokens:l,output_tokens:u,cache_creation_input_tokens:0,cache_read_input_tokens:d}},yield{type:`message_stop`},i=!0))}function ft(e){return typeof e.text==`string`?e.thought?`thinking`:`text`:null}function pt(e,t){switch(e){case`MAX_TOKENS`:return`max_tokens`;default:return t?`tool_use`:`end_turn`}}var mt=e((()=>{}));function I(e){if(!e||typeof e!=`object`)return null;let t=e,n=0;for(;t&&n<5;){if(t instanceof Error&&`code`in t&&typeof t.code==`string`){let e=t.code,n=bt.has(e);return{code:e,message:t.message,isSSLError:n}}if(t instanceof Error&&`cause`in t&&t.cause!==t)t=t.cause,n++;else break}return null}function ht(e){let t=I(e);return t?.isSSLError?`SSL certificate error (${t.code}). If you are behind a corporate proxy or TLS-intercepting firewall, set NODE_EXTRA_CA_CERTS to your CA bundle path, or ask IT to allowlist *.anthropic.com. Run /doctor for details.`:null}function L(e){if(e.includes(`<!DOCTYPE html`)||e.includes(`<html`)){let t=e.match(/<title>([^<]+)<\/title>/);return t?.[1]?t[1].trim():``}return e}function gt(e){let t=e.message;return t?L(t):``}function _t(e){return typeof e==`object`&&!!e&&`error`in e&&typeof e.error==`object`&&e.error!==null}function vt(e){if(!_t(e))return null;let t=e.error,n=t?.error?.message;if(typeof n==`string`&&n.length>0){let e=L(n);if(e.length>0)return e}let r=t?.message;if(typeof r==`string`&&r.length>0){let e=L(r);if(e.length>0)return e}return null}function yt(e){let t=I(e);if(t){let{code:e,isSSLError:n}=t;if(e===`ETIMEDOUT`)return`Request timed out. Check your internet connection and proxy settings`;if(n)switch(e){case`UNABLE_TO_VERIFY_LEAF_SIGNATURE`:case`UNABLE_TO_GET_ISSUER_CERT`:case`UNABLE_TO_GET_ISSUER_CERT_LOCALLY`:return`Unable to connect to API: SSL certificate verification failed. Check your proxy or corporate SSL certificates`;case`CERT_HAS_EXPIRED`:return`Unable to connect to API: SSL certificate has expired`;case`CERT_REVOKED`:return`Unable to connect to API: SSL certificate has been revoked`;case`DEPTH_ZERO_SELF_SIGNED_CERT`:case`SELF_SIGNED_CERT_IN_CHAIN`:return`Unable to connect to API: Self-signed certificate detected. Check your proxy or corporate SSL certificates`;case`ERR_TLS_CERT_ALTNAME_INVALID`:case`HOSTNAME_MISMATCH`:return`Unable to connect to API: SSL certificate hostname mismatch`;case`CERT_NOT_YET_VALID`:return`Unable to connect to API: SSL certificate is not yet valid`;default:return`Unable to connect to API: SSL error (${e})`}}if(e.message===`Connection error.`)return t?.code?`Unable to connect to API (${t.code})`:`Unable to connect to API. Check your internet connection`;if(!e.message)return vt(e)??`API error (status ${e.status??`unknown`})`;let n=gt(e);return n!==e.message&&n.length>0?n:e.message}var bt,xt=e((()=>{bt=new Set([`UNABLE_TO_VERIFY_LEAF_SIGNATURE`,`UNABLE_TO_GET_ISSUER_CERT`,`UNABLE_TO_GET_ISSUER_CERT_LOCALLY`,`CERT_SIGNATURE_FAILURE`,`CERT_NOT_YET_VALID`,`CERT_HAS_EXPIRED`,`CERT_REVOKED`,`CERT_REJECTED`,`CERT_UNTRUSTED`,`DEPTH_ZERO_SELF_SIGNED_CERT`,`SELF_SIGNED_CERT_IN_CHAIN`,`CERT_CHAIN_TOO_LONG`,`PATH_LENGTH_EXCEEDED`,`ERR_TLS_CERT_ALTNAME_INVALID`,`HOSTNAME_MISMATCH`,`ERR_TLS_HANDSHAKE_TIMEOUT`,`ERR_SSL_WRONG_VERSION_NUMBER`,`ERR_SSL_DECRYPTION_FAILED_OR_BAD_RECORD_MAC`])}));function St(e,t,n){let r=[],i=Ct(t);i&&r.push({role:`system`,content:i});for(let t of e)switch(t.type){case`user`:r.push(...wt(t));break;case`assistant`:r.push(...Et(t));break;default:break}return r}function Ct(e){return!e||e.length===0?``:e.filter(Boolean).join(`
@@ -0,0 +1 @@
1
+ import{Dr as e,Xr as t,br as n}from"./loadAgentsDir-CbtNPJV3.js";n();export{e as linkSessionToPR,t as recordTranscript};
@@ -0,0 +1,2 @@
1
+ import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";function t(e){let t=[];for(let n of e){if(n.type!==`user`&&n.type!==`assistant`||`isMeta`in n&&n.isMeta||`origin`in n&&n.origin&&n.origin.kind!==`human`)continue;let e=n.message.content;if(typeof e==`string`)t.push(e);else if(Array.isArray(e))for(let n of e)`type`in n&&n.type===`text`&&`text`in n&&t.push(n.text)}let n=t.join(`
2
+ `);return n.length>r?n.slice(-1e3):n}async function n(e,t){return`Work Mate`}var r,i=e((()=>{r=1e3}));export{n,i as r,t};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{l as t,o as n}from"./envUtils-DcaKZlRU.js";import{i as r,l as i,n as a}from"./esm-lWlUmoUA.js";import{A as o,Wt as s,pt as c,st as l,z as u}from"./state-BPFYBqm1.js";import{C as d,R as f,S as p,c as m,i as h,x as g}from"./debug-BQj6h99Q.js";import{d as _,h as ee}from"./config-BSkuQZNf.js";import{i as te,t as ne}from"./hash-Tu-My5Vp.js";import{Pt as re,Tt as ie}from"./model-sviY1inu.js";import{et as ae,ft as oe,rt as se,ut as ce}from"./esm-BI3tFLyy.js";import"path";import"fs";import{createHash as le}from"crypto";import"fs/promises";import{AsyncLocalStorage as ue}from"async_hooks";function de(e){let t=BigInt(58),n=Array(y).fill(v[0]),r=y-1,i=e;for(;i>0n;){let e=Number(i%t);n[r]=v[e],i/=t,r--}return n.join(``)}function fe(e){let t=e.replace(/-/g,``);if(t.length!==32)throw Error(`Invalid UUID hex length: ${t.length}`);return BigInt(`0x${t}`)}function pe(e,t){let n=fe(t);return`${e}_${me}${de(n)}`}var v,me,y,he=e((()=>{v=`123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz`,me=`01`,y=22}));function b(e){let n=ge[e],r=process.env[e];return r===void 0?n:t(r)}function x(){let e=_(),t=c(),n={"user.id":e};b(`OTEL_METRICS_INCLUDE_SESSION_ID`)&&(n[`session.id`]=t),b(`OTEL_METRICS_INCLUDE_VERSION`)&&(n[`app.version`]=`0.0.16`);let r=ie();if(r){let e=r.organizationUuid,t=r.emailAddress,i=r.accountUuid;e&&(n[`organization.id`]=e),t&&(n[`user.email`]=t),i&&b(`OTEL_METRICS_INCLUDE_ACCOUNT_UUID`)&&(n[`user.account_uuid`]=i,n[`user.account_id`]=process.env.CLAUDE_CODE_ACCOUNT_TAGGED_ID||pe(`user`,i))}return ce.terminal&&(n[`terminal.type`]=ce.terminal),n}var ge,S=e((()=>{s(),re(),ee(),oe(),n(),he(),ge={OTEL_METRICS_INCLUDE_SESSION_ID:!0,OTEL_METRICS_INCLUDE_VERSION:!1,OTEL_METRICS_INCLUDE_ACCOUNT_UUID:!0}}));function _e(){return t(process.env.OTEL_LOG_USER_PROMPTS)}function ve(e){return _e()?e:`<REDACTED>`}async function C(e,t={}){let n=o();if(!n){w||(w=!0,m(`[3P telemetry] Event dropped (no event logger initialized): ${e}`,{level:`warn`}));return}let r={...x(),"event.name":e,"event.timestamp":new Date().toISOString(),"event.sequence":ye++},i=l();i&&(r[`prompt.id`]=i);let a=process.env.CLAUDE_CODE_WORKSPACE_HOST_PATHS;a&&(r[`workspace.host_paths`]=a.split(`|`));for(let[e,n]of Object.entries(t))n!==void 0&&(r[e]=n);n.emit({body:`claude_code.${e}`,attributes:r})}var ye,w,T=e((()=>{s(),h(),n(),S(),ye=0,w=!1}));function be(){A.clear(),j.clear()}function E(){return t(process.env.ENABLE_BETA_TRACING_DETAILED)&&process.env.BETA_TRACING_ENDPOINT&&u()||!1}function D(e,t=ke){return e.length<=t?{content:e,truncated:!1}:{content:e.slice(0,t)+`
1
+ import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{l as t,o as n}from"./envUtils-DcaKZlRU.js";import{i as r,l as i,n as a}from"./esm-lWlUmoUA.js";import{A as o,Wt as s,pt as c,st as l,z as u}from"./state-BPFYBqm1.js";import{C as d,R as f,S as p,c as m,i as h,x as g}from"./debug-BQj6h99Q.js";import{d as _,h as ee}from"./config-BSkuQZNf.js";import{i as te,t as ne}from"./hash-Tu-My5Vp.js";import{Pt as re,Tt as ie}from"./model-DlLO7TSx.js";import{et as ae,ft as oe,rt as se,ut as ce}from"./esm-BZciQG9N.js";import"path";import"fs";import{createHash as le}from"crypto";import"fs/promises";import{AsyncLocalStorage as ue}from"async_hooks";function de(e){let t=BigInt(58),n=Array(y).fill(v[0]),r=y-1,i=e;for(;i>0n;){let e=Number(i%t);n[r]=v[e],i/=t,r--}return n.join(``)}function fe(e){let t=e.replace(/-/g,``);if(t.length!==32)throw Error(`Invalid UUID hex length: ${t.length}`);return BigInt(`0x${t}`)}function pe(e,t){let n=fe(t);return`${e}_${me}${de(n)}`}var v,me,y,he=e((()=>{v=`123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz`,me=`01`,y=22}));function b(e){let n=ge[e],r=process.env[e];return r===void 0?n:t(r)}function x(){let e=_(),t=c(),n={"user.id":e};b(`OTEL_METRICS_INCLUDE_SESSION_ID`)&&(n[`session.id`]=t),b(`OTEL_METRICS_INCLUDE_VERSION`)&&(n[`app.version`]=`0.0.17`);let r=ie();if(r){let e=r.organizationUuid,t=r.emailAddress,i=r.accountUuid;e&&(n[`organization.id`]=e),t&&(n[`user.email`]=t),i&&b(`OTEL_METRICS_INCLUDE_ACCOUNT_UUID`)&&(n[`user.account_uuid`]=i,n[`user.account_id`]=process.env.CLAUDE_CODE_ACCOUNT_TAGGED_ID||pe(`user`,i))}return ce.terminal&&(n[`terminal.type`]=ce.terminal),n}var ge,S=e((()=>{s(),re(),ee(),oe(),n(),he(),ge={OTEL_METRICS_INCLUDE_SESSION_ID:!0,OTEL_METRICS_INCLUDE_VERSION:!1,OTEL_METRICS_INCLUDE_ACCOUNT_UUID:!0}}));function _e(){return t(process.env.OTEL_LOG_USER_PROMPTS)}function ve(e){return _e()?e:`<REDACTED>`}async function C(e,t={}){let n=o();if(!n){w||(w=!0,m(`[3P telemetry] Event dropped (no event logger initialized): ${e}`,{level:`warn`}));return}let r={...x(),"event.name":e,"event.timestamp":new Date().toISOString(),"event.sequence":ye++},i=l();i&&(r[`prompt.id`]=i);let a=process.env.CLAUDE_CODE_WORKSPACE_HOST_PATHS;a&&(r[`workspace.host_paths`]=a.split(`|`));for(let[e,n]of Object.entries(t))n!==void 0&&(r[e]=n);n.emit({body:`claude_code.${e}`,attributes:r})}var ye,w,T=e((()=>{s(),h(),n(),S(),ye=0,w=!1}));function be(){A.clear(),j.clear()}function E(){return t(process.env.ENABLE_BETA_TRACING_DETAILED)&&process.env.BETA_TRACING_ENDPOINT&&u()||!1}function D(e,t=ke){return e.length<=t?{content:e,truncated:!1}:{content:e.slice(0,t)+`
2
2
 
3
3
  [TRUNCATED - Content exceeds 60KB limit]`,truncated:!0}}function O(e){return le(`sha256`).update(e).digest(`hex`).slice(0,12)}function xe(e){return`sp_${O(e)}`}function Se(e){return`msg_${O(d(e.message.content))}`}function k(e){let t=e.trim().match(Ae);return t?.[1]?t[1].trim():null}function Ce(e){let t=[],n=[];for(let r of e){let e=r.message.content;if(typeof e==`string`){let r=k(e);r?n.push(r):t.push(`[USER]\n${e}`)}else if(Array.isArray(e)){for(let r of e)if(r.type===`text`){let e=k(r.text);e?n.push(e):t.push(`[USER]\n${r.text}`)}else if(r.type===`tool_result`){let e=typeof r.content==`string`?r.content:d(r.content),i=k(e);i?n.push(i):t.push(`[TOOL RESULT: ${r.tool_use_id}]\n${e}`)}}}return{contextParts:t,systemReminders:n}}function we(e,t){if(!E())return;let{content:n,truncated:r}=D(`[USER PROMPT]\n${t}`);e.setAttributes({new_context:n,...r&&{new_context_truncated:!0,new_context_original_length:t.length}})}function Te(e,t,n){if(E()){if(t?.systemPrompt){let n=xe(t.systemPrompt),r=t.systemPrompt.slice(0,500);if(e.setAttribute(`system_prompt_hash`,n),e.setAttribute(`system_prompt_preview`,r),e.setAttribute(`system_prompt_length`,t.systemPrompt.length),!A.has(n)){A.add(n);let{content:e,truncated:r}=D(t.systemPrompt);C(`system_prompt`,{system_prompt_hash:n,system_prompt:e,system_prompt_length:String(t.systemPrompt.length),...r&&{system_prompt_truncated:`true`}})}}if(t?.tools)try{let n=p(t.tools).map(e=>{let t=d(e),n=O(t);return{name:typeof e.name==`string`?e.name:`unknown`,hash:n,json:t}});e.setAttribute(`tools`,d(n.map(({name:e,hash:t})=>({name:e,hash:t})))),e.setAttribute(`tools_count`,n.length);for(let{name:e,hash:t,json:r}of n)if(!A.has(`tool_${t}`)){A.add(`tool_${t}`);let{content:n,truncated:i}=D(r);C(`tool`,{tool_name:se(e),tool_hash:t,tool:n,...i&&{tool_truncated:`true`}})}}catch{e.setAttribute(`tools_parse_error`,!0)}if(n&&n.length>0&&t?.querySource){let r=t.querySource,i=j.get(r),a=0;if(i)for(let e=0;e<n.length;e++){let t=n[e];if(t&&Se(t)===i){a=e+1;break}}let o=n.slice(a).filter(e=>e.type===`user`);if(o.length>0){let{contextParts:t,systemReminders:i}=Ce(o);if(t.length>0){let n=t.join(`
4
4
 
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{Ky as t,jv as n}from"./loadAgentsDir-PPiD2Mfq.js";import{A as r,C as i,O as a,w as o}from"./external-CEp-aPkt.js";import{n as s,r as c,t as l}from"./lazySchema-B4D4qJVE.js";import{Wt as u}from"./state-BPFYBqm1.js";import{R as d}from"./debug-BQj6h99Q.js";import{g as f}from"./settings-CvhsRFaT.js";import{h as p}from"./config-BSkuQZNf.js";import{O as m,m as h}from"./git-DplvjXEY.js";import{u as g}from"./oauth-D38aRTUb.js";import{Pt as _,ti as v}from"./model-sviY1inu.js";import"path";import"fs/promises";var y,b=e((()=>{c(),l(),y=s(()=>o({entries:a(r(),r())})),s(()=>o({userId:r(),version:i(),lastModified:r(),checksum:r(),content:y()}))})),x=e((()=>{u(),g(),_(),t(),p(),m(),d(),h(),v(),f(),n(),b()}));export{x as t};
1
+ import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{Ky as t,jv as n}from"./loadAgentsDir-CbtNPJV3.js";import{A as r,C as i,O as a,w as o}from"./external-CEp-aPkt.js";import{n as s,r as c,t as l}from"./lazySchema-B4D4qJVE.js";import{Wt as u}from"./state-BPFYBqm1.js";import{R as d}from"./debug-BQj6h99Q.js";import{g as f}from"./settings-CvhsRFaT.js";import{h as p}from"./config-BSkuQZNf.js";import{O as m,m as h}from"./git-DplvjXEY.js";import{u as g}from"./oauth-D38aRTUb.js";import{Pt as _,ti as v}from"./model-DlLO7TSx.js";import"path";import"fs/promises";var y,b=e((()=>{c(),l(),y=s(()=>o({entries:a(r(),r())})),s(()=>o({userId:r(),version:i(),lastModified:r(),checksum:r(),content:y()}))})),x=e((()=>{u(),g(),_(),t(),p(),m(),d(),h(),v(),f(),n(),b()}));export{x as t};
@@ -1,3 +1,3 @@
1
- import{n as e,t}from"./memoize-BK3gG5ob.js";import{l as n,o as r,s as i}from"./envUtils-DcaKZlRU.js";import{$S as a,At as o,Dm as s,Dv as c,Em as l,Ev as u,FC as d,Fa as f,HC as p,Ig as ee,Ky as m,La as h,Lg as g,Li as te,Mi as ne,Mm as re,Mn as ie,Nm as ae,Nn as oe,PC as _,QT as se,RC as ce,Sa as le,St as ue,UC as de,VC as fe,Vy as pe,Y_ as me,_v as he,ac as ge,br as v,by as y,cm as b,cv as x,dc as S,di as C,dv as w,eC as T,eE as E,fv as D,gt as O,gv as k,hn as A,ht as j,hv as M,jm as N,jn as P,kv as F,lc as I,lm as L,lv as _e,mn as ve,mv as ye,oc as be,ot as xe,pv as Se,sv as R,uv as Ce,vt as z,vv as we,yv as Te,zC as Ee}from"./loadAgentsDir-PPiD2Mfq.js";import{di as B,fi as De}from"./src-DL3w8VPk2.js";import{B as Oe,Bn as ke,Hn as Ae,Wt as V,it as je,or as Me,pt as Ne,z as H}from"./state-BPFYBqm1.js";import{n as Pe,t as U}from"./cwd-Besi3Os3.js";import{F as Fe,P as Ie,R as W,f as G,u as Le}from"./debug-BQj6h99Q.js";import{Kt as Re,Ln as ze,Rn as Be,Yt as Ve}from"./settings-CvhsRFaT.js";import{h as He,o as Ue}from"./config-BSkuQZNf.js";import{O as We,k as K,l as Ge,m as Ke,n as qe,r as Je}from"./git-DplvjXEY.js";import{o as Ye,s as Xe}from"./log-BlJ7CcKG.js";import{n as q,r as J}from"./analytics-DJobLaWP.js";import{n as Ze,r as Y}from"./startupProfiler-2sjXZkIP.js";import{Jr as Qe,Pt as $e,Yr as et,Zt as tt}from"./model-sviY1inu.js";import{dn as X,mn as nt}from"./prompt-CQmEvnKN.js";import{h as rt,l as it,p as at,u as ot}from"./terminalSetup-JJiXmszo.js";import{ft as st,ut as Z}from"./esm-BI3tFLyy.js";import{c as ct,t as lt}from"./nativeInstaller-N1xiUpCP.js";import{l as ut,s as dt}from"./logoV2Utils-Bkj74dtY.js";import{i as ft,r as pt}from"./runtimeObserver-By59MZKJ.js";import{t as mt}from"./sinks-Bb2i50kz.js";import{writeFile as Q}from"fs/promises";r(),De(),Pe(),We(),Ye(),Ke(),Ve(),He(),$e(),E(),p(),ce(),_(),g(),te(),v(),A(),t(),V(),xe(),me(),nt(),T(),Be(),I(),G(),b(),h(),oe(),Qe(),y(),c(),q(),l(),re(),D(),W();function ht(){return!1}function gt(){return{}}var $;function _t(e,t){let n=0,r=t==null;for(let i of e){if(!r){i.uuid===t&&(r=!0);continue}if(i.type===`assistant`){let e=i.message.content;Array.isArray(e)&&(n+=ze(e,e=>e.type===`tool_use`))}}return n}function vt(e){let t=F(e);if(!Se()){if(!Ce(t))return!1;k()}let n=w(t),r=_t(e,$)>=_e(),i=f(e);if(n&&r||n&&!i){let t=e[e.length-1];return t?.uuid&&($=t.uuid),!0}return!1}async function yt(e){let t=Le(),n=P();await t.mkdir(n,{mode:448});let r=ie();try{await Q(r,``,{encoding:`utf-8`,mode:384,flag:`wx`}),await Q(r,await ae(),{encoding:`utf-8`,mode:384})}catch(e){if(Fe(e)!==`EEXIST`)throw e}e.readFileState.delete(r);let i=await a.call({file_path:r},e),o=``,s=i.data;return s.type===`text`&&(o=s.file.content),J(`tengu_session_memory_file_read`,{content_length:o.length}),{memoryPath:r,currentMemory:o}}var bt=e(()=>{let e=gt();Te({minimumMessageTokensToInit:e.minimumMessageTokensToInit&&e.minimumMessageTokensToInit>0?e.minimumMessageTokensToInit:R.minimumMessageTokensToInit,minimumTokensBetweenUpdate:e.minimumTokensBetweenUpdate&&e.minimumTokensBetweenUpdate>0?e.minimumTokensBetweenUpdate:R.minimumTokensBetweenUpdate,toolCallsBetweenUpdates:e.toolCallsBetweenUpdates&&e.toolCallsBetweenUpdates>0?e.toolCallsBetweenUpdates:R.toolCallsBetweenUpdates})}),xt=et(async e=>{let{messages:t,toolUseContext:n,querySource:r}=e;if(r!==`repl_main_thread`||!ht()||(bt(),!vt(t)))return;M();let i=be(n),{memoryPath:a,currentMemory:o}=await yt(i);await S({promptMessages:[le({content:await N(o,a)})],cacheSafeParams:ge(e),canUseTool:Ct(a),querySource:`session_memory`,forkLabel:`session_memory`,overrides:{readFileState:i.readFileState}});let s=t[t.length-1],c=s?u(s):void 0,l=x();J(`tengu_session_memory_extraction`,{input_tokens:c?.input_tokens,output_tokens:c?.output_tokens,cache_read_input_tokens:c?.cache_read_input_tokens??void 0,cache_creation_input_tokens:c?.cache_creation_input_tokens??void 0,config_min_message_tokens_to_init:l.minimumMessageTokensToInit,config_min_tokens_between_update:l.minimumTokensBetweenUpdate,config_tool_calls_between_updates:l.toolCallsBetweenUpdates}),he(F(t)),wt(t),ye()});function St(){Oe()||s()&&L(xt)}function Ct(e){return async(t,n)=>{if(t.name===`Edit`&&typeof n==`object`&&n&&`file_path`in n){let t=n.file_path;if(typeof t==`string`&&t===e)return{behavior:`allow`,updatedInput:n}}return{behavior:`deny`,message:`only ${X} on ${e} is allowed`,decisionReason:{type:`other`,reason:`only ${X} on ${e} is allowed`}}}}function wt(e){if(!f(e)){let t=e[e.length-1];t?.uuid&&we(t.uuid)}}q(),V(),ft(),ot(),m(),st(),W(),ut(),lt(),at(),Ze(),ue();async function Tt(e,t,r,a,s,c,l,u,f){K(`info`,`setup_started`);let p=process.version.match(/^v(\d+)\./)?.[1];if((!p||parseInt(p,10)<18)&&(console.error(B.bold.red(`Error: Work Mate requires Node.js version 18 or higher.`)),process.exit(1)),l&&Me(ee(l)),!H())try{let e=await it();e.status===`restored`?console.log(B.yellow(`Detected an interrupted Terminal.app setup. Your original settings have been restored. You may need to restart Terminal.app for the changes to take effect.`)):e.status===`failed`&&console.error(B.red(`Failed to restore Terminal.app settings. Please manually restore your original settings with: defaults import com.apple.Terminal ${e.backupPath}.`))}catch(e){Xe(e)}d(e);let m=Date.now();if(fe(),K(`info`,`setup_hooks_captured`,{duration_ms:Date.now()-m}),Ee(e),a){let t=ve(),n=await Ge();!t&&!n&&(process.stderr.write(B.red(`Error: Can only use --worktree in a git repository, but ${B.bold(e)} is not a git repository. Configure a WorktreeCreate hook in settings.json to use --worktree with other VCS systems.\n`)),process.exit(1));let r=u?`pr-${u}`:s??se(),i;if(n){let e=qe(U());e||(process.stderr.write(B.red(`Error: Could not determine the main git repository root.
2
- `)),process.exit(1)),e!==(Je(U())??U())&&(K(`info`,`worktree_resolved_to_main_repo`),process.chdir(e),d(e)),i=c?z(e,o(r)):void 0}else i=c?z(U(),o(r)):void 0;let a;try{a=await O(Ne(),r,i,u?{prNumber:u}:void 0)}catch(e){process.stderr.write(B.red(`Error creating worktree: ${Ie(e)}\n`)),process.exit(1)}if(J(`tengu_worktree_created`,{tmux_enabled:c}),c&&i){let e=await j(i,a.worktreePath);e.created?console.log(B.green(`Created tmux session: ${B.bold(i)}\nTo attach: ${B.bold(`tmux attach -t ${i}`)}`)):console.error(B.yellow(`Warning: Failed to create tmux session: ${e.error}`))}process.chdir(a.worktreePath),d(a.worktreePath),ke(U()),Ae(U()),C(a),pe(),de()}K(`info`,`setup_background_jobs_starting`),i()||(St(),pt()),ct(),K(`info`,`setup_background_jobs_launched`),Y(`setup_before_prefetch`),K(`info`,`setup_prefetch_starting`);let h=H()&&n(process.env.CLAUDE_CODE_SYNC_PLUGIN_INSTALL)||i();if(h||ne(je()),import(`./loadPluginHooks-DUCuU3_8.js`).then(e=>{h||(e.loadPluginHooks(),e.setupPluginHookHotReload())}),i()||import(`./sessionFileAccessHooks-BaWZ8sqn.js`).then(e=>e.registerSessionFileAccessHooks()),mt(),J(`tengu_started`,{}),tt(H()),Y(`setup_after_prefetch`),!i()&&rt()&&await dt(),t===`bypassPermissions`||r){if(process.platform!==`win32`&&typeof process.getuid==`function`&&process.getuid()===0&&process.env.IS_SANDBOX!==`1`&&!n(process.env.CLAUDE_CODE_BUBBLEWRAP))if(process.stdin.isTTY){console.error(B.bold.red(`WARNING: Running as root/sudo with bypass permissions mode is dangerous.`)),console.error(B.yellow(`Bypass mode skips ALL permission checks. Combined with root, any command (rm -rf /, chmod, dd) executes without review.`));let e=(await import(`readline`)).createInterface({input:process.stdin,output:process.stdout}),t=await new Promise(t=>{e.question(`
1
+ import{n as e,t}from"./memoize-BK3gG5ob.js";import{l as n,o as r,s as i}from"./envUtils-DcaKZlRU.js";import{$S as a,At as o,Dm as s,Dv as c,Em as l,Ev as u,FC as d,Fa as f,HC as p,Ig as ee,Ky as m,La as h,Lg as g,Li as te,Mi as ne,Mm as re,Mn as ie,Nm as ae,Nn as oe,PC as _,QT as se,RC as ce,Sa as le,St as ue,UC as de,VC as fe,Vy as pe,Y_ as me,_v as he,ac as ge,br as v,by as y,cm as b,cv as x,dc as S,di as C,dv as w,eC as T,eE as E,fv as D,gt as O,gv as k,hn as A,ht as j,hv as M,jm as N,jn as P,kv as F,lc as I,lm as L,lv as _e,mn as ve,mv as ye,oc as be,ot as xe,pv as Se,sv as R,uv as Ce,vt as z,vv as we,yv as Te,zC as Ee}from"./loadAgentsDir-CbtNPJV3.js";import{di as B,fi as De}from"./src-DL3w8VPk2.js";import{B as Oe,Bn as ke,Hn as Ae,Wt as V,it as je,or as Me,pt as Ne,z as H}from"./state-BPFYBqm1.js";import{n as Pe,t as U}from"./cwd-Besi3Os3.js";import{F as Fe,P as Ie,R as W,f as G,u as Le}from"./debug-BQj6h99Q.js";import{Kt as Re,Ln as ze,Rn as Be,Yt as Ve}from"./settings-CvhsRFaT.js";import{h as He,o as Ue}from"./config-BSkuQZNf.js";import{O as We,k as K,l as Ge,m as Ke,n as qe,r as Je}from"./git-DplvjXEY.js";import{o as Ye,s as Xe}from"./log-BlJ7CcKG.js";import{n as q,r as J}from"./analytics-DJobLaWP.js";import{n as Ze,r as Y}from"./startupProfiler-2sjXZkIP.js";import{Jr as Qe,Pt as $e,Yr as et,Zt as tt}from"./model-DlLO7TSx.js";import{dn as X,mn as nt}from"./prompt-BRGC5U9Y.js";import{h as rt,l as it,p as at,u as ot}from"./terminalSetup-JJiXmszo.js";import{ft as st,ut as Z}from"./esm-BZciQG9N.js";import{c as ct,t as lt}from"./nativeInstaller-DTJ4clp-.js";import{l as ut,s as dt}from"./logoV2Utils-D5nRpirL.js";import{i as ft,r as pt}from"./runtimeObserver-Dov-m2dl.js";import{t as mt}from"./sinks-CfzgqLH5.js";import{writeFile as Q}from"fs/promises";r(),De(),Pe(),We(),Ye(),Ke(),Ve(),He(),$e(),E(),p(),ce(),_(),g(),te(),v(),A(),t(),V(),xe(),me(),nt(),T(),Be(),I(),G(),b(),h(),oe(),Qe(),y(),c(),q(),l(),re(),D(),W();function ht(){return!1}function gt(){return{}}var $;function _t(e,t){let n=0,r=t==null;for(let i of e){if(!r){i.uuid===t&&(r=!0);continue}if(i.type===`assistant`){let e=i.message.content;Array.isArray(e)&&(n+=ze(e,e=>e.type===`tool_use`))}}return n}function vt(e){let t=F(e);if(!Se()){if(!Ce(t))return!1;k()}let n=w(t),r=_t(e,$)>=_e(),i=f(e);if(n&&r||n&&!i){let t=e[e.length-1];return t?.uuid&&($=t.uuid),!0}return!1}async function yt(e){let t=Le(),n=P();await t.mkdir(n,{mode:448});let r=ie();try{await Q(r,``,{encoding:`utf-8`,mode:384,flag:`wx`}),await Q(r,await ae(),{encoding:`utf-8`,mode:384})}catch(e){if(Fe(e)!==`EEXIST`)throw e}e.readFileState.delete(r);let i=await a.call({file_path:r},e),o=``,s=i.data;return s.type===`text`&&(o=s.file.content),J(`tengu_session_memory_file_read`,{content_length:o.length}),{memoryPath:r,currentMemory:o}}var bt=e(()=>{let e=gt();Te({minimumMessageTokensToInit:e.minimumMessageTokensToInit&&e.minimumMessageTokensToInit>0?e.minimumMessageTokensToInit:R.minimumMessageTokensToInit,minimumTokensBetweenUpdate:e.minimumTokensBetweenUpdate&&e.minimumTokensBetweenUpdate>0?e.minimumTokensBetweenUpdate:R.minimumTokensBetweenUpdate,toolCallsBetweenUpdates:e.toolCallsBetweenUpdates&&e.toolCallsBetweenUpdates>0?e.toolCallsBetweenUpdates:R.toolCallsBetweenUpdates})}),xt=et(async e=>{let{messages:t,toolUseContext:n,querySource:r}=e;if(r!==`repl_main_thread`||!ht()||(bt(),!vt(t)))return;M();let i=be(n),{memoryPath:a,currentMemory:o}=await yt(i);await S({promptMessages:[le({content:await N(o,a)})],cacheSafeParams:ge(e),canUseTool:Ct(a),querySource:`session_memory`,forkLabel:`session_memory`,overrides:{readFileState:i.readFileState}});let s=t[t.length-1],c=s?u(s):void 0,l=x();J(`tengu_session_memory_extraction`,{input_tokens:c?.input_tokens,output_tokens:c?.output_tokens,cache_read_input_tokens:c?.cache_read_input_tokens??void 0,cache_creation_input_tokens:c?.cache_creation_input_tokens??void 0,config_min_message_tokens_to_init:l.minimumMessageTokensToInit,config_min_tokens_between_update:l.minimumTokensBetweenUpdate,config_tool_calls_between_updates:l.toolCallsBetweenUpdates}),he(F(t)),wt(t),ye()});function St(){Oe()||s()&&L(xt)}function Ct(e){return async(t,n)=>{if(t.name===`Edit`&&typeof n==`object`&&n&&`file_path`in n){let t=n.file_path;if(typeof t==`string`&&t===e)return{behavior:`allow`,updatedInput:n}}return{behavior:`deny`,message:`only ${X} on ${e} is allowed`,decisionReason:{type:`other`,reason:`only ${X} on ${e} is allowed`}}}}function wt(e){if(!f(e)){let t=e[e.length-1];t?.uuid&&we(t.uuid)}}q(),V(),ft(),ot(),m(),st(),W(),ut(),lt(),at(),Ze(),ue();async function Tt(e,t,r,a,s,c,l,u,f){K(`info`,`setup_started`);let p=process.version.match(/^v(\d+)\./)?.[1];if((!p||parseInt(p,10)<18)&&(console.error(B.bold.red(`Error: Work Mate requires Node.js version 18 or higher.`)),process.exit(1)),l&&Me(ee(l)),!H())try{let e=await it();e.status===`restored`?console.log(B.yellow(`Detected an interrupted Terminal.app setup. Your original settings have been restored. You may need to restart Terminal.app for the changes to take effect.`)):e.status===`failed`&&console.error(B.red(`Failed to restore Terminal.app settings. Please manually restore your original settings with: defaults import com.apple.Terminal ${e.backupPath}.`))}catch(e){Xe(e)}d(e);let m=Date.now();if(fe(),K(`info`,`setup_hooks_captured`,{duration_ms:Date.now()-m}),Ee(e),a){let t=ve(),n=await Ge();!t&&!n&&(process.stderr.write(B.red(`Error: Can only use --worktree in a git repository, but ${B.bold(e)} is not a git repository. Configure a WorktreeCreate hook in settings.json to use --worktree with other VCS systems.\n`)),process.exit(1));let r=u?`pr-${u}`:s??se(),i;if(n){let e=qe(U());e||(process.stderr.write(B.red(`Error: Could not determine the main git repository root.
2
+ `)),process.exit(1)),e!==(Je(U())??U())&&(K(`info`,`worktree_resolved_to_main_repo`),process.chdir(e),d(e)),i=c?z(e,o(r)):void 0}else i=c?z(U(),o(r)):void 0;let a;try{a=await O(Ne(),r,i,u?{prNumber:u}:void 0)}catch(e){process.stderr.write(B.red(`Error creating worktree: ${Ie(e)}\n`)),process.exit(1)}if(J(`tengu_worktree_created`,{tmux_enabled:c}),c&&i){let e=await j(i,a.worktreePath);e.created?console.log(B.green(`Created tmux session: ${B.bold(i)}\nTo attach: ${B.bold(`tmux attach -t ${i}`)}`)):console.error(B.yellow(`Warning: Failed to create tmux session: ${e.error}`))}process.chdir(a.worktreePath),d(a.worktreePath),ke(U()),Ae(U()),C(a),pe(),de()}K(`info`,`setup_background_jobs_starting`),i()||(St(),pt()),ct(),K(`info`,`setup_background_jobs_launched`),Y(`setup_before_prefetch`),K(`info`,`setup_prefetch_starting`);let h=H()&&n(process.env.CLAUDE_CODE_SYNC_PLUGIN_INSTALL)||i();if(h||ne(je()),import(`./loadPluginHooks-BxkDBFd6.js`).then(e=>{h||(e.loadPluginHooks(),e.setupPluginHookHotReload())}),i()||import(`./sessionFileAccessHooks-C2VjT-PU.js`).then(e=>e.registerSessionFileAccessHooks()),mt(),J(`tengu_started`,{}),tt(H()),Y(`setup_after_prefetch`),!i()&&rt()&&await dt(),t===`bypassPermissions`||r){if(process.platform!==`win32`&&typeof process.getuid==`function`&&process.getuid()===0&&process.env.IS_SANDBOX!==`1`&&!n(process.env.CLAUDE_CODE_BUBBLEWRAP))if(process.stdin.isTTY){console.error(B.bold.red(`WARNING: Running as root/sudo with bypass permissions mode is dangerous.`)),console.error(B.yellow(`Bypass mode skips ALL permission checks. Combined with root, any command (rm -rf /, chmod, dd) executes without review.`));let e=(await import(`readline`)).createInterface({input:process.stdin,output:process.stdout}),t=await new Promise(t=>{e.question(`
3
3
  I understand the risks. Continue? [y/N] `,t)});e.close(),t.trim().toLowerCase()!==`y`&&(console.error(`Aborted.`),process.exit(1))}else console.error(`--dangerously-skip-permissions cannot be used with root/sudo privileges for security reasons`),process.exit(1);if(process.env.CLAUDE_CODE_ENTRYPOINT!==`local-agent`&&process.env.CLAUDE_CODE_ENTRYPOINT!==`claude-desktop`){let[e,t]=await Promise.all([Z.getIsDocker(),Re.hasInternetAccess()]),n=Z.getIsBubblewrapSandbox(),r=process.env.IS_SANDBOX===`1`;(!(e||n||r)||t)&&(console.error(`--dangerously-skip-permissions can only be used in Docker/sandbox containers with no internet access but got Docker: ${e}, Bubblewrap: ${n}, IS_SANDBOX: ${r}, hasInternet: ${t}`),process.exit(1))}}let g=Ue();g.lastCost!==void 0&&g.lastDuration!==void 0&&J(`tengu_exit`,{last_session_cost:g.lastCost,last_session_api_duration:g.lastAPIDuration,last_session_tool_duration:g.lastToolDuration,last_session_duration:g.lastDuration,last_session_lines_added:g.lastLinesAdded,last_session_lines_removed:g.lastLinesRemoved,last_session_total_input_tokens:g.lastTotalInputTokens,last_session_total_output_tokens:g.lastTotalOutputTokens,last_session_total_cache_creation_input_tokens:g.lastTotalCacheCreationInputTokens,last_session_total_cache_read_input_tokens:g.lastTotalCacheReadInputTokens,last_session_fps_average:g.lastFpsAverage,last_session_fps_low_1_pct:g.lastFpsLow1Pct,last_session_id:g.lastSessionId,...g.lastSessionMetrics})}export{Tt as setup};