claude-code-best 2.6.10 → 2.6.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/{AddWorkspaceDirectory-DYIf4o0g.js → AddWorkspaceDirectory-CGKtPsTK.js} +1 -1
- package/dist/chunks/{App-Bw4stCcv.js → App-DF28Bpg9.js} +1 -1
- package/dist/chunks/ApproveApiKey-BtiWOryM.js +1 -0
- package/dist/chunks/{ApproveApiKey-CNBKF9de.js → ApproveApiKey-D21kbmQj.js} +1 -1
- package/dist/chunks/{AssistantSessionChooser-DU5OOPwq.js → AssistantSessionChooser-CDfwNVi5.js} +1 -1
- package/dist/chunks/{BackgroundTasksDialog-ChDZ6M4c.js → BackgroundTasksDialog-5RpkAbJz.js} +1 -1
- package/dist/chunks/{BypassPermissionsModeDialog-UOkwRr3W.js → BypassPermissionsModeDialog-BDWFw61G.js} +1 -1
- package/dist/chunks/{ClaudeInChromeOnboarding-6UL2_PCg.js → ClaudeInChromeOnboarding-CpN0yIU_.js} +1 -1
- package/dist/chunks/{ClaudeMdExternalIncludesDialog-DBfmH_dG.js → ClaudeMdExternalIncludesDialog-CWRHpy22.js} +1 -1
- package/dist/chunks/ClaudeMdExternalIncludesDialog-Dje7A0F2.js +1 -0
- package/dist/chunks/ConsoleOAuthFlow-DQf3dmj6.js +1 -0
- package/dist/chunks/{DesktopHandoff-B-ySC5nP.js → DesktopHandoff-CKHLXiwc.js} +1 -1
- package/dist/chunks/{DevChannelsDialog-DZMsKuak.js → DevChannelsDialog-BwMFW7Wt.js} +1 -1
- package/dist/chunks/{DiffDialog-CeYcqIIw.js → DiffDialog-oA1v0BMo.js} +1 -1
- package/dist/chunks/Doctor-ButdpAkf.js +1 -0
- package/dist/chunks/{Doctor-ByQrTdef.js → Doctor-QVMo0fIh.js} +1 -1
- package/dist/chunks/{ExitFlow-gMv13EpM.js → ExitFlow-DJLYN-Bd.js} +1 -1
- package/dist/chunks/{Feedback-CGRlFB5g.js → Feedback-CpfhqIEv.js} +1 -1
- package/dist/chunks/{Grove-CnHyPepC.js → Grove-BugC6ssx.js} +1 -1
- package/dist/chunks/Grove-CmdRVv9F.js +1 -0
- package/dist/chunks/{HybridTransport-CiY6jyhx.js → HybridTransport-PeXWuYfl.js} +1 -1
- package/dist/chunks/{ITermBackend-CG-a4QYW.js → ITermBackend-dcs68DGS.js} +1 -1
- package/dist/chunks/{InvalidConfigDialog-umJZVrz-.js → InvalidConfigDialog-DdB9_Ve0.js} +1 -1
- package/dist/chunks/{InvalidSettingsDialog-C62kuhHc.js → InvalidSettingsDialog-BL8nxwWQ.js} +1 -1
- package/dist/chunks/{MCPConnectionManager-BbGFGZTr.js → MCPConnectionManager-D2eAGUME.js} +1 -1
- package/dist/chunks/{McpParsingWarnings-DW0d9Lsb.js → McpParsingWarnings-BYPXpmte.js} +1 -1
- package/dist/chunks/{MessageSelector-A-814zUi.js → MessageSelector-Bzq8CYAH.js} +1 -1
- package/dist/chunks/{Messages-C4nIAGDL.js → Messages-uRxxAMW-.js} +2 -2
- package/dist/chunks/{Onboarding-BRePz3fJ.js → Onboarding-ByLnHSnW.js} +1 -1
- package/dist/chunks/{OverageCreditUpsell-DEZsyI6y.js → OverageCreditUpsell-CVNfTSKG.js} +1 -1
- package/dist/chunks/{PluginSettings-CuZtXDaS.js → PluginSettings-h9Lj0vW6.js} +1 -1
- package/dist/chunks/{PromptInputFooterSuggestions-BrpVQJVn.js → PromptInputFooterSuggestions-CYWSLCgA.js} +1 -1
- package/dist/chunks/{PromptInputHelpMenu-BlGRpX1Q.js → PromptInputHelpMenu-BsYNhZCw.js} +1 -1
- package/dist/chunks/{QueryEngine-CK9YRTZo.js → QueryEngine-CxP2S3qi.js} +1 -1
- package/dist/chunks/{REPL-D-t0XQx2.js → REPL-CV12-ns7.js} +6 -6
- package/dist/chunks/REPL-h1bwm8ee.js +1 -0
- package/dist/chunks/{RemoteCallout-DvOZQWoG.js → RemoteCallout-WWO84za-.js} +1 -1
- package/dist/chunks/{RemoteSessionManager-BlIA65dM.js → RemoteSessionManager-Dx2skKnM.js} +1 -1
- package/dist/chunks/{ResumeConversation-BTccgPK8.js → ResumeConversation-CagiCg7-.js} +1 -1
- package/dist/chunks/{SSETransport-CIvM80QS.js → SSETransport-BHdzk1HO.js} +1 -1
- package/dist/chunks/SearchExtraToolsTool-BJ2d8mtx.js +1 -0
- package/dist/chunks/SentryErrorBoundary-CYiFofRZ.js +1 -0
- package/dist/chunks/{SentryErrorBoundary-BK2HjzVw.js → SentryErrorBoundary-CmewX8Dv.js} +1 -1
- package/dist/chunks/{Settings-D3Kpcb7q.js → Settings-BcgtW60l.js} +2 -2
- package/dist/chunks/{TeleportProgress-BFlMrsa_.js → TeleportProgress-BmbhZlOg.js} +1 -1
- package/dist/chunks/{TeleportRepoMismatchDialog-BUeyIQCH.js → TeleportRepoMismatchDialog-BAwtgUhR.js} +1 -1
- package/dist/chunks/{TeleportResumeWrapper-CHfeyo9J.js → TeleportResumeWrapper-BlkvOdYn.js} +1 -1
- package/dist/chunks/{ThemePicker-a5n2EKgk.js → ThemePicker-v_3lh136.js} +1 -1
- package/dist/chunks/{TmuxBackend-Ct9v-J78.js → TmuxBackend-B7Nabc5t.js} +1 -1
- package/dist/chunks/{TrustDialog-e1nyM-Fp.js → TrustDialog-CHu5eoeR.js} +1 -1
- package/dist/chunks/{ValidationErrorsList-BHCepjdO.js → ValidationErrorsList-BSMetgqr.js} +1 -1
- package/dist/chunks/{WelcomeV2-BnyziLbm.js → WelcomeV2-DZfBSTu5.js} +1 -1
- package/dist/chunks/{WindowsTerminalBackend-Dw6qjsBu.js → WindowsTerminalBackend-CeSoQ_Nk.js} +1 -1
- package/dist/chunks/{add-dir-CjnY5yfR.js → add-dir-7UeFZkdv.js} +1 -1
- package/dist/chunks/{agentDisplay-Dfx-axK9.js → agentDisplay-DJgsfIlm.js} +1 -1
- package/dist/chunks/{agents-lM-cxA8_.js → agents-DD7gQVZD.js} +1 -1
- package/dist/chunks/{agents-CICHEOOq.js → agents-DK0y9jId.js} +1 -1
- package/dist/chunks/{ant-JgExUpwJ.js → ant-PhgMZT08.js} +1 -1
- package/dist/chunks/api-D4aCzJS-.js +1 -0
- package/dist/chunks/{api-CClu711S.js → api-nHsRf03G.js} +1 -1
- package/dist/chunks/{assistant-Bih7t52W.js → assistant-BJbeizyH.js} +1 -1
- package/dist/chunks/{assistant-D1XefK1z.js → assistant-DO7RAhd3.js} +1 -1
- package/dist/chunks/assistant-Dvx-UrTi.js +1 -0
- package/dist/chunks/auth-Cp7Nt0ik.js +1 -0
- package/dist/chunks/{auth-CU6ArDos.js → auth-DxRiJwZ-.js} +1 -1
- package/dist/chunks/{autoMode-DM9eDMmT.js → autoMode-BswSpjo5.js} +1 -1
- package/dist/chunks/{autonomy-CZCZ9wlx.js → autonomy-CNJQwoAQ.js} +1 -1
- package/dist/chunks/{autonomy-DUfXLZfq.js → autonomy-Lc78acHX.js} +1 -1
- package/dist/chunks/{autonomyPanel-kUZwcjfu.js → autonomyPanel-DxcumRp-.js} +1 -1
- package/dist/chunks/{backgroundHousekeeping-KGRk7QeA.js → backgroundHousekeeping-BkfWgzIP.js} +2 -2
- package/dist/chunks/backgroundHousekeeping-BxBI2KkX.js +1 -0
- package/dist/chunks/{branch-Ac3HXXs2.js → branch-BPsUW1dk.js} +1 -1
- package/dist/chunks/{bridge-Drt-UmFp.js → bridge-DcOGvDbb.js} +2 -2
- package/dist/chunks/{bridgeConfig-GQzZVhuF.js → bridgeConfig-CvKdNJOg.js} +1 -1
- package/dist/chunks/bridgeConfig-Dkn5GGec.js +1 -0
- package/dist/chunks/bridgeEnabled-CjaYKTo5.js +1 -0
- package/dist/chunks/{bridgeEnabled-CDoXbe3S.js → bridgeEnabled-D01faWms.js} +1 -1
- package/dist/chunks/{bridgeMain-B0fLyOLC.js → bridgeMain-Bu2oOX31.js} +6 -6
- package/dist/chunks/bridgeMain-CEpOBx8Z.js +1 -0
- package/dist/chunks/{bridgeMessaging-gRm2WcIE.js → bridgeMessaging-BZMDSZAN.js} +1 -1
- package/dist/chunks/{btw-B2Tq2ewP.js → btw-B8s-X_cm.js} +1 -1
- package/dist/chunks/{buddy-v00QHFZ6.js → buddy-DkB1xU1o.js} +1 -1
- package/dist/chunks/{bypassPermissionsKillswitch-DAr5U3Ep.js → bypassPermissionsKillswitch-B9Qz9zKO.js} +1 -1
- package/dist/chunks/{caches-DHUk9KMo.js → caches-BuSzLvN9.js} +2 -2
- package/dist/chunks/caches-Bvl2jdxF.js +1 -0
- package/dist/chunks/{ccrClient-1Q3C_3_r.js → ccrClient-CMZXfu9P.js} +1 -1
- package/dist/chunks/changeDetector-DTXMv7gH.js +1 -0
- package/dist/chunks/channelNotification-B7s1OoRK.js +1 -0
- package/dist/chunks/{channelNotification-d08DSK9u.js → channelNotification-t6Kgu-vX.js} +1 -1
- package/dist/chunks/{chrome-CKo0_n71.js → chrome-Cvkozg2F.js} +1 -1
- package/dist/chunks/clear-C9pufI6F.js +1 -0
- package/dist/chunks/client-CqJ5gRGj.js +1 -0
- package/dist/chunks/{color-DqtpdhFx.js → color-AYeAYKyq.js} +1 -1
- package/dist/chunks/commands-LcLR5Vgx.js +1 -0
- package/dist/chunks/commitAttribution-BZupnGMc.js +1 -0
- package/dist/chunks/{commitAttribution-BJvmLsVe.js → commitAttribution-CUqUEjsh.js} +1 -1
- package/dist/chunks/{compact-DLYic2Oa.js → compact-BF0-0_qh.js} +1 -1
- package/dist/chunks/{companion-C2CBSYiF.js → companion-Cf_kYtOD.js} +1 -1
- package/dist/chunks/{config-Cht2x9n9.js → config-45GLd-lt.js} +1 -1
- package/dist/chunks/{config-DnWYFpDc.js → config-JGm0O-ZQ.js} +1 -1
- package/dist/chunks/{context-CDz9HqRT.js → context-Bl5VUX5M.js} +1 -1
- package/dist/chunks/context-noninteractive-BtzPsJ8k.js +1 -0
- package/dist/chunks/{context-noninteractive-BUIf4IMX.js → context-noninteractive-DdPFYYO9.js} +1 -1
- package/dist/chunks/{conversation-CLRfdC_V.js → conversation-C3NWyOB3.js} +1 -1
- package/dist/chunks/conversation-oX932vBQ.js +1 -0
- package/dist/chunks/{copy-BgHTb1Z0.js → copy-CbhxPqw4.js} +1 -1
- package/dist/chunks/{createSSHSession-C_mpeqPy.js → createSSHSession-Dq2nMChz.js} +1 -1
- package/dist/chunks/createSession-1ewHG3eq.js +1 -0
- package/dist/chunks/{createSession-kVJBXQlZ.js → createSession-DTHPUie-.js} +1 -1
- package/dist/chunks/{cronJitterConfig-SI7bYvJj.js → cronJitterConfig-IGWCRDrv.js} +1 -1
- package/dist/chunks/{crossProjectResume-BMWSw62A.js → crossProjectResume-WmabPBTO.js} +1 -1
- package/dist/chunks/datadog-Da7KYZNF.js +1 -0
- package/dist/chunks/{datadog-Bd9AgZT-.js → datadog-FKvRNyFi.js} +1 -1
- package/dist/chunks/{desktop-BeUj2fqu.js → desktop-ZASE3YWy.js} +1 -1
- package/dist/chunks/{diff-BzgXDp1o.js → diff-QP-TbxuD.js} +1 -1
- package/dist/chunks/{doctor-HCOexiL5.js → doctor-DVkgmkRb.js} +1 -1
- package/dist/chunks/{effort-BaJU_k2K.js → effort-DbryQCua.js} +1 -1
- package/dist/chunks/{entry-BoXZIfxW.js → entry-D8y42iuM.js} +5 -5
- package/dist/chunks/envLessBridgeConfig-CpW0G4Eh.js +1 -0
- package/dist/chunks/{envLessBridgeConfig-CnR1E53G.js → envLessBridgeConfig-D4bSwf7w.js} +1 -1
- package/dist/chunks/{exit-B-9k0zjK.js → exit-BsNW67F9.js} +1 -1
- package/dist/chunks/{export-p85q3g8t.js → export-C9A9nOA1.js} +1 -1
- package/dist/chunks/{exportRenderer-CUqd8PZM.js → exportRenderer-CyTuZFFF.js} +1 -1
- package/dist/chunks/{extra-usage-pPprHqwq.js → extra-usage-C6s5mXW0.js} +1 -1
- package/dist/chunks/extra-usage-DL2C0_BM.js +1 -0
- package/dist/chunks/{extra-usage-core-B9Fy8_RP.js → extra-usage-core-BFCwz3XM.js} +1 -1
- package/dist/chunks/{extra-usage-noninteractive-B4vaWh0y.js → extra-usage-noninteractive-IHq7s6wm.js} +1 -1
- package/dist/chunks/{extraUsage-CEHCMe7l.js → extraUsage-CIrG_Lbw.js} +1 -1
- package/dist/chunks/extractMemories-CA2eJwHy.js +1 -0
- package/dist/chunks/fast-B01NO2uA.js +1 -0
- package/dist/chunks/{fast-CiSIZ5FI.js → fast-NEKXVZqQ.js} +1 -1
- package/dist/chunks/{feedback-C2QLdCfW.js → feedback-D5iWO16P.js} +1 -1
- package/dist/chunks/{firstPartyEventLogger-CozFbFD9.js → firstPartyEventLogger-Dr3TK3IU.js} +1 -1
- package/dist/chunks/{flushGate-LXr8ynSz.js → flushGate-DygHyqmB.js} +1 -1
- package/dist/chunks/gates-BSpXbh9s.js +1 -0
- package/dist/chunks/{gates-BGfvIJXl.js → gates-Dyz_t5zJ.js} +1 -1
- package/dist/chunks/{gemini-BFBrPtVM.js → gemini-BEmbnRQR.js} +1 -1
- package/dist/chunks/{generateRecap-CLla3Ymz.js → generateRecap-DZiXeYWn.js} +1 -1
- package/dist/chunks/{generateSessionName-DF4I7gr2.js → generateSessionName-EbB2vl9t.js} +1 -1
- package/dist/chunks/{githubRepoPathMapping-C_5RCW_Z.js → githubRepoPathMapping-dky2fPeU.js} +1 -1
- package/dist/chunks/{grok-Dih61WOo.js → grok-BM6ZJ4w2.js} +1 -1
- package/dist/chunks/{growthbook-C39e6Byf.js → growthbook-JD-WW3yV.js} +1 -1
- package/dist/chunks/{heapdump-BRj4tC1y.js → heapdump-8vyFTWly.js} +1 -1
- package/dist/chunks/{help-fH9LNwox.js → help-C2DM0p8U.js} +1 -1
- package/dist/chunks/{hooks-D22Uu3Vs.js → hooks-CMh0a2pT.js} +1 -1
- package/dist/chunks/hooks-QXGwOfWj.js +1 -0
- package/dist/chunks/{hostAdapter-CbXytx4y.js → hostAdapter-CmbGfgNV.js} +1 -1
- package/dist/chunks/{ide-DM5Tw70v.js → ide-Bn8R7397.js} +1 -1
- package/dist/chunks/{inboundAttachments-2QIORKsd.js → inboundAttachments-BweY9sYo.js} +1 -1
- package/dist/chunks/inboundAttachments-N5DKbZSl.js +1 -0
- package/dist/chunks/{initReplBridge-D8sWx97P.js → initReplBridge-3CfmzjJL.js} +1 -1
- package/dist/chunks/{insights-B6ogyLuv.js → insights-NOl_PxhN.js} +1 -1
- package/dist/chunks/{install-DimDiHha.js → install-BoT2GIcz.js} +1 -1
- package/dist/chunks/{install-github-app-CQ7vkhIX.js → install-github-app-SD4PvrTR.js} +1 -1
- package/dist/chunks/{install-slack-app-By9_5YS7.js → install-slack-app-DLQXpOCt.js} +1 -1
- package/dist/chunks/{instrumentation-DbKu2GCL.js → instrumentation-BXJk0mxI.js} +3 -3
- package/dist/chunks/{job-D_DoFtev.js → job-CnlMlm3t.js} +1 -1
- package/dist/chunks/{keybindings-DYRBv1bg.js → keybindings-BjaRqcbD.js} +1 -1
- package/dist/chunks/{lang-CAMxxG9F.js → lang-BI8CzjL6.js} +1 -1
- package/dist/chunks/{language-CoHgN7rh.js → language-CRIdgj2F.js} +1 -1
- package/dist/chunks/language-DmbRGIs8.js +1 -0
- package/dist/chunks/{launchAgentsPlatform-9P8K66ku.js → launchAgentsPlatform-Bg9guiqy.js} +1 -1
- package/dist/chunks/{launchAutofixPr-BbsqqUMA.js → launchAutofixPr-BMfXGXwN.js} +1 -1
- package/dist/chunks/{launchLocalMemory-K55Yo6JM.js → launchLocalMemory-lgnXOi6U.js} +1 -1
- package/dist/chunks/{launchLocalVault-rrd1Q7jP.js → launchLocalVault-C0Oz-lto.js} +1 -1
- package/dist/chunks/{launchMemoryStores-DMZ8GNQj.js → launchMemoryStores-Bw11ruRi.js} +1 -1
- package/dist/chunks/{launchOnboarding-Duz_huXl.js → launchOnboarding-WEW34cnl.js} +1 -1
- package/dist/chunks/{launchSchedule-7VlG_3M6.js → launchSchedule-X0rcM_kM.js} +1 -1
- package/dist/chunks/{launchSkillStore-CcJL8RT0.js → launchSkillStore-DpxSlMCU.js} +1 -1
- package/dist/chunks/{launchTeleport-C8h_4F_L.js → launchTeleport-uOtMsYcI.js} +1 -1
- package/dist/chunks/{launchVault-Bm1EeT2x.js → launchVault-CJyJaPqH.js} +1 -1
- package/dist/chunks/{loadAgentsDir-HZ19tmOZ.js → loadAgentsDir-D-xcJ22-.js} +45 -45
- package/dist/chunks/loadAgentsDir-ILQxk_4G.js +1 -0
- package/dist/chunks/{loadPluginHooks-DoFtrBWf.js → loadPluginHooks-BC1Ea7_D.js} +1 -1
- package/dist/chunks/{localSearch-4cz5ia5a.js → localSearch-B6Ho7Vfj.js} +1 -1
- package/dist/chunks/localSearch-COyJeP9E.js +1 -0
- package/dist/chunks/login-Cf89biEK.js +1 -0
- package/dist/chunks/{login-D6ywctRr.js → login-uOvq1xN_.js} +1 -1
- package/dist/chunks/{logoV2Utils-jaFn88oE.js → logoV2Utils-C2cdcgtp.js} +1 -1
- package/dist/chunks/logout-CEXwTlEX.js +1 -0
- package/dist/chunks/{magicDocs-DHGtJq0K.js → magicDocs-BBjAhGN1.js} +1 -1
- package/dist/chunks/{main-Bv4AvaJk.js → main-DGsAUuG_.js} +15 -15
- package/dist/chunks/{mappers-qcXgNBi5.js → mappers-CO6koWDa.js} +1 -1
- package/dist/chunks/{mcp-iCbCqg7w.js → mcp-BrN_Tbq5.js} +2 -2
- package/dist/chunks/{mcp-BXPg0RPm.js → mcp-CZltNml5.js} +1 -1
- package/dist/chunks/{mcp-yDWIJznG.js → mcp-D6JOqdT8.js} +1 -1
- package/dist/chunks/{mcpServer-Do9XTs2J.js → mcpServer-C-0K3Azg.js} +1 -1
- package/dist/chunks/{mcpServer-DcSto-Od.js → mcpServer-C_aDoLMg.js} +1 -1
- package/dist/chunks/{memory-B0YG4r65.js → memory-BYYOgo4e.js} +1 -1
- package/dist/chunks/model-CHgqwg6N.js +1 -0
- package/dist/chunks/{model-DwVGG0mc.js → model-CrAPXYZA.js} +1 -1
- package/dist/chunks/{onChangeAppState-CHYSALjM.js → onChangeAppState-C6ZIU1SD.js} +1 -1
- package/dist/chunks/{openai-Brj68CWD.js → openai-Cm4gozk8.js} +1 -1
- package/dist/chunks/{overageCreditGrant-D5X6-TcP.js → overageCreditGrant-Pe7C_4Qi.js} +1 -1
- package/dist/chunks/{passes-B1f6NHWA.js → passes-BpI6azLG.js} +1 -1
- package/dist/chunks/{paths-D8Fx3kUi.js → paths-D9CVAtXU.js} +2 -2
- package/dist/chunks/{permissions-CYrv_WVH.js → permissions-C7wcAYOc.js} +1 -1
- package/dist/chunks/{pipeTransport-DAYnzvGK.js → pipeTransport-wjeyTgon.js} +1 -1
- package/dist/chunks/{plan-B7EPetF0.js → plan-DA8IRpHQ.js} +1 -1
- package/dist/chunks/{plugin-BRWx-_ZS.js → plugin-N2pTkzOz.js} +1 -1
- package/dist/chunks/{pluginAutoupdate-BwxAsU2F.js → pluginAutoupdate-DCc5qDvo.js} +1 -1
- package/dist/chunks/{pluginBlocklist-BiRgxFei.js → pluginBlocklist-C_Veew3p.js} +1 -1
- package/dist/chunks/{pluginCliCommands-CXANH43C.js → pluginCliCommands-BN7loc5T.js} +1 -1
- package/dist/chunks/{pluginFlagging-CBbUoCJ9.js → pluginFlagging-Dpu1cvMo.js} +1 -1
- package/dist/chunks/{pluginOperations-B3gcFjVq.js → pluginOperations-CP6NFNog.js} +1 -1
- package/dist/chunks/pluginStartupCheck-BF0xUEJG.js +1 -0
- package/dist/chunks/{pluginStartupCheck-BNfv-Pf4.js → pluginStartupCheck-DvWHwNnD.js} +1 -1
- package/dist/chunks/{plugins-zHTS03v8.js → plugins-BHoniP5f.js} +1 -1
- package/dist/chunks/policyLimits-sh7ywop0.js +1 -0
- package/dist/chunks/{pollConfig-BWY_xmk6.js → pollConfig-xYxAmuXi.js} +1 -1
- package/dist/chunks/{poor-Bcu8JaV5.js → poor-C0KwfFF0.js} +1 -1
- package/dist/chunks/{poorMode-CDhhKGBw.js → poorMode-D7WXWZtJ.js} +1 -1
- package/dist/chunks/poorMode-DZQXZ_zu.js +1 -0
- package/dist/chunks/{print-DO52Fudu.js → print-BcRG8gkQ.js} +4 -4
- package/dist/chunks/{privacy-settings-CmHUlYoo.js → privacy-settings-DT3LGgsH.js} +1 -1
- package/dist/chunks/{processBashCommand-DltW2Ubs.js → processBashCommand-DPfJ9lrj.js} +1 -1
- package/dist/chunks/{processSlashCommand-JLJ_vF05.js → processSlashCommand-DyPCeZux.js} +1 -1
- package/dist/chunks/{prompt-BxoRdmaw.js → prompt-C69iv9cI.js} +1 -1
- package/dist/chunks/prompt-DaIJzI1P.js +1 -0
- package/dist/chunks/prompt-DnLsyywj.js +1 -0
- package/dist/chunks/{promptEditor-LQu9NhbN.js → promptEditor-BZqpLrcZ.js} +1 -1
- package/dist/chunks/{protocolHandler-DYn2E9Yl.js → protocolHandler-CfmBTg36.js} +1 -1
- package/dist/chunks/{rate-limit-options-OQt6LUP8.js → rate-limit-options-P7oQuwrl.js} +1 -1
- package/dist/chunks/{rcDebugLog-5XEbz_Yg.js → rcDebugLog-CTOZ2K3E.js} +1 -1
- package/dist/chunks/{referral-BsAvaATn.js → referral-D26orIXE.js} +1 -1
- package/dist/chunks/{refresh-TlNezXn4.js → refresh-BeSXaVya.js} +1 -1
- package/dist/chunks/{registerProtocol-COUVHFku.js → registerProtocol-DSQh-I21.js} +1 -1
- package/dist/chunks/{registry-m7JojEMY.js → registry-Dp5W2V8B.js} +1 -1
- package/dist/chunks/{release-notes-BDdughgu.js → release-notes-Cg85UVo8.js} +1 -1
- package/dist/chunks/{releaseNotes-Bd3zxid3.js → releaseNotes-Dps4SeVh.js} +2 -2
- package/dist/chunks/{reload-plugins-qUIybHNy.js → reload-plugins-Bo-R1CF3.js} +1 -1
- package/dist/chunks/{remote-env-GGlLNGsx.js → remote-env-ChQuV3rO.js} +1 -1
- package/dist/chunks/{remoteBridgeCore-DpF5alU6.js → remoteBridgeCore-BXtygJA-.js} +1 -1
- package/dist/chunks/{remoteControlServer-C32rxr3F.js → remoteControlServer-sqW_JLwC.js} +1 -1
- package/dist/chunks/{rename-CCF7A5mG.js → rename-Bigaipiq.js} +1 -1
- package/dist/chunks/{resume-C6ereXig.js → resume-CtOI2pOJ.js} +1 -1
- package/dist/chunks/{runtimeObserver-jrNSkZU2.js → runtimeObserver-CJ955XSo.js} +2 -2
- package/dist/chunks/{runtimeObserver-DBdzsp_h.js → runtimeObserver-DojpbVgU.js} +1 -1
- package/dist/chunks/sandbox-adapter-BbrJOJNZ.js +1 -0
- package/dist/chunks/{sandbox-toggle-Bfti5GKF.js → sandbox-toggle-B9dn09gt.js} +1 -1
- package/dist/chunks/searchExtraTools-Denn1c1E.js +1 -0
- package/dist/chunks/{sentry-CZUyEC3A.js → sentry-B6tWUNGj.js} +1 -1
- package/dist/chunks/{session-DCIDa5dI.js → session-C5yIf_zV.js} +1 -1
- package/dist/chunks/{sessionDiscovery-5m_pul65.js → sessionDiscovery-CQ3iMN4s.js} +1 -1
- package/dist/chunks/sessionFileAccessHooks-1IAwziOQ.js +1 -0
- package/dist/chunks/sessionMemory-3TAJyNuJ.js +1 -0
- package/dist/chunks/{sessionMemory-BQP_RezB.js → sessionMemory-HZNzEOLd.js} +1 -1
- package/dist/chunks/sessionMemoryUtils-BAkA4sGG.js +1 -0
- package/dist/chunks/sessionObserver-DqLMFMLM.js +1 -0
- package/dist/chunks/{sessionObserver-LBqNoak9.js → sessionObserver-MQA9_wZw.js} +1 -1
- package/dist/chunks/sessionStorage-CFfMypMQ.js +1 -0
- package/dist/chunks/{sessionTitle-BIykjtKk.js → sessionTitle-BafqFHLc.js} +1 -1
- package/dist/chunks/{sessionTracing-Da_r0mIc.js → sessionTracing-_obALZbi.js} +1 -1
- package/dist/chunks/{settingsSync-BE0PQqyo.js → settingsSync-DBWi-NXU.js} +1 -1
- package/dist/chunks/{setup-CjA5bW6e.js → setup-C_GrS0Rd.js} +1 -1
- package/dist/chunks/{setup-lxzmZdw5.js → setup-D1sQnli9.js} +2 -2
- package/dist/chunks/{setup-p04XtwYu.js → setup-DIxsjw17.js} +1 -1
- package/dist/chunks/{shadowedRuleDetection-Zqp1M5St.js → shadowedRuleDetection-CwMwv9uM.js} +1 -1
- package/dist/chunks/{sideQuestion-DzJenEES.js → sideQuestion-CI5pyoQF.js} +1 -1
- package/dist/chunks/{sink-N5XR8Zgp.js → sink-BSTUubjl.js} +1 -1
- package/dist/chunks/sink-fGBOXJab.js +1 -0
- package/dist/chunks/{sinks-D8erzS9D.js → sinks-B9EsWFeb.js} +2 -2
- package/dist/chunks/sinks-BCl9slVM.js +1 -0
- package/dist/chunks/{skill-learning-CbMQ8IsZ.js → skill-learning-DThetLpo.js} +1 -1
- package/dist/chunks/{skillChangeDetector-4XWLpjQl.js → skillChangeDetector-BOH-fyEn.js} +1 -1
- package/dist/chunks/{skillGapStore-DbiDG9Pd.js → skillGapStore-BmjCK9ZR.js} +2 -2
- package/dist/chunks/{skillGapStore-Bp5IVfOx.js → skillGapStore-ax0GuSmd.js} +1 -1
- package/dist/chunks/{skillGenerator-Bys7U1l_.js → skillGenerator-Dj3xInwG.js} +2 -2
- package/dist/chunks/skillLearning-BDsjN-u-.js +1 -0
- package/dist/chunks/skillLearning-CXUsWxdi.js +1 -0
- package/dist/chunks/{skillPanel-MIHU1PPp.js → skillPanel-CJ4tvX7A.js} +3 -3
- package/dist/chunks/{skillSearchPanel-MFB-PzB1.js → skillSearchPanel-hwZvXKZ4.js} +2 -2
- package/dist/chunks/{skills-D4tZYFpd.js → skills-BVWDDcD9.js} +1 -1
- package/dist/chunks/{sprites-B479AZSz.js → sprites-B-V9otkt.js} +1 -1
- package/dist/chunks/{stats-B-ErfxCJ.js → stats-DcS6ZnsX.js} +1 -1
- package/dist/chunks/{status-DVACJLsK.js → status-DZKjK9CE.js} +1 -1
- package/dist/chunks/{statusNoticeHelpers-CwSCVvxP.js → statusNoticeHelpers-reCcymMR.js} +1 -1
- package/dist/chunks/{tag-YpE2D2ve.js → tag-B5b-waIf.js} +1 -1
- package/dist/chunks/{tasks-7N7iSiEx.js → tasks-vXM-vULI.js} +1 -1
- package/dist/chunks/teamHelpers-BBhol4dD.js +1 -0
- package/dist/chunks/{teamHelpers-BFdTH57t.js → teamHelpers-CbFFdvPw.js} +1 -1
- package/dist/chunks/{teammateModeSnapshot-CwacsQvD.js → teammateModeSnapshot-DkkMv2-b.js} +1 -1
- package/dist/chunks/teammateModeSnapshot-W5G22rwQ.js +1 -0
- package/dist/chunks/{teleport-CPB1CHBs.js → teleport-Da0rKwCo.js} +1 -1
- package/dist/chunks/{templateJobs-BM98KAEH.js → templateJobs-BLQqrGjb.js} +1 -1
- package/dist/chunks/{terminalSetup-yQ0CoywX.js → terminalSetup-BKfVYk3w.js} +1 -1
- package/dist/chunks/{terminalSetup-CGiIwoIX.js → terminalSetup-BLU99dau.js} +1 -1
- package/dist/chunks/{theme-C5ULGNRs.js → theme-BM2CXWYE.js} +1 -1
- package/dist/chunks/{thinkback-CF_sLFvX.js → thinkback-Cd1g_2A9.js} +1 -1
- package/dist/chunks/thinkback-ChP6pvCS.js +1 -0
- package/dist/chunks/{thinkback-play-syg_SJm8.js → thinkback-play-Cg8Ys2dq.js} +1 -1
- package/dist/chunks/{toolEventObserver-CcLqNRcT.js → toolEventObserver-71WYUega.js} +1 -1
- package/dist/chunks/{toolEventObserver-CuJbsUL0.js → toolEventObserver-nxcfjaur.js} +1 -1
- package/dist/chunks/{toolPool-CRq0GSrk.js → toolPool-CN1cPGQz.js} +1 -1
- package/dist/chunks/toolPool-CygNb5cr.js +1 -0
- package/dist/chunks/{trustedDevice-C4tvgByY.js → trustedDevice-Brc9B8cZ.js} +1 -1
- package/dist/chunks/{trustedDevice-u2HpuTkN.js → trustedDevice-C0KJ0qiK.js} +1 -1
- package/dist/chunks/{ultrareviewCommand-CWLiiq-z.js → ultrareviewCommand-BY0T8Pzl.js} +1 -1
- package/dist/chunks/undercover-bx8TwG9W.js +1 -0
- package/dist/chunks/{undercover-CNlN7Xzl.js → undercover-j27F8p49.js} +1 -1
- package/dist/chunks/{updateCCB-BWN4mOEz.js → updateCCB-Dgb2ed9v.js} +1 -1
- package/dist/chunks/upgrade-BkHztwGA.js +1 -0
- package/dist/chunks/{upgrade-CE25mJEk.js → upgrade-zs7K9UkG.js} +1 -1
- package/dist/chunks/{upload-YpyOX2a-.js → upload-Df84yCBz.js} +1 -1
- package/dist/chunks/{usage-Bw-kTwHb.js → usage-DKENFl_k.js} +1 -1
- package/dist/chunks/{usage-DNXwr_ep.js → usage-lTILrQJV.js} +1 -1
- package/dist/chunks/{useMainLoopModel-DPmF_cMn.js → useMainLoopModel-X1PW9z5A.js} +1 -1
- package/dist/chunks/{useManagePlugins-hPG7UMWo.js → useManagePlugins-DDKeDfIv.js} +1 -1
- package/dist/chunks/{useMergedTools-BSO1NflP.js → useMergedTools-CC3XwtOR.js} +1 -1
- package/dist/chunks/{useSearchInput-CR9uhbA7.js → useSearchInput-DNpNG36H.js} +1 -1
- package/dist/chunks/{useSettingsErrors-453j5XuO.js → useSettingsErrors-vGzCYpIA.js} +1 -1
- package/dist/chunks/{useVoice-B5DQ5Tay.js → useVoice-DmObXoAh.js} +1 -1
- package/dist/chunks/{util-D_BHu06u.js → util-9vJ9WIeZ.js} +1 -1
- package/dist/chunks/utils-Dg0S2Vfn.js +1 -0
- package/dist/chunks/{validatePlugin-Dxm-5f8W.js → validatePlugin-_Z4zhjSx.js} +1 -1
- package/dist/chunks/{vim-BGqKMQxl.js → vim-CK7lReJi.js} +1 -1
- package/dist/chunks/{voice-B2MWrkN3.js → voice-BLVF7E3Q.js} +1 -1
- package/dist/chunks/{voiceModeEnabled-if9dV1bW.js → voiceModeEnabled-BpLBjY2-.js} +1 -1
- package/dist/chunks/voiceModeEnabled-BqFYzoXw.js +1 -0
- package/dist/chunks/voiceStreamSTT-C0pkuXGm.js +1 -0
- package/dist/chunks/{voiceStreamSTT-CWhKAxcp.js → voiceStreamSTT-i4tUq3Hu.js} +1 -1
- package/dist/chunks/{workerRegistry-BANOcuS2.js → workerRegistry-Bg7dWLHf.js} +1 -1
- package/dist/chunks/worktree-Cg4p1J__.js +1 -0
- package/dist/chunks/{xml-DZp0WcWT.js → xml-K_hNNh2b.js} +1 -1
- package/dist/cli.js +1 -1
- package/package.json +1 -1
- package/dist/chunks/ApproveApiKey-CBEOrsej.js +0 -1
- package/dist/chunks/ClaudeMdExternalIncludesDialog-CG26Jg7h.js +0 -1
- package/dist/chunks/ConsoleOAuthFlow-1aq67dJV.js +0 -1
- package/dist/chunks/Doctor-DOil8Eh7.js +0 -1
- package/dist/chunks/Grove-CJn8QGFo.js +0 -1
- package/dist/chunks/REPL-DV96-Prr.js +0 -1
- package/dist/chunks/SearchExtraToolsTool-CmyZbRut.js +0 -1
- package/dist/chunks/SentryErrorBoundary-B9sk4zvj.js +0 -1
- package/dist/chunks/api-DgzWK3bh.js +0 -1
- package/dist/chunks/assistant-Ojm6Wsb6.js +0 -1
- package/dist/chunks/auth-lQWhUjLX.js +0 -1
- package/dist/chunks/backgroundHousekeeping-BcLV1-Ap.js +0 -1
- package/dist/chunks/bridgeConfig-ByjfIoJz.js +0 -1
- package/dist/chunks/bridgeEnabled-C7AI9y8g.js +0 -1
- package/dist/chunks/bridgeMain-DKQ1u3k_.js +0 -1
- package/dist/chunks/caches-DbE9R4Zh.js +0 -1
- package/dist/chunks/changeDetector--9sSzU2e.js +0 -1
- package/dist/chunks/channelNotification-CLYOd2-R.js +0 -1
- package/dist/chunks/clear-Cf1D1WkR.js +0 -1
- package/dist/chunks/client-Bzn58Ea4.js +0 -1
- package/dist/chunks/commands-CJz20FMO.js +0 -1
- package/dist/chunks/commitAttribution-BgNel6QS.js +0 -1
- package/dist/chunks/context-noninteractive-CzuLiIeO.js +0 -1
- package/dist/chunks/conversation-D2iFk7Te.js +0 -1
- package/dist/chunks/createSession-XhPMcSns.js +0 -1
- package/dist/chunks/datadog-B5oHSyS1.js +0 -1
- package/dist/chunks/envLessBridgeConfig-DgdkC9jO.js +0 -1
- package/dist/chunks/extra-usage-CsJ9Z2G1.js +0 -1
- package/dist/chunks/extractMemories-D34FfNYT.js +0 -1
- package/dist/chunks/fast-CxPB-PBH.js +0 -1
- package/dist/chunks/gates-D-kXXHiv.js +0 -1
- package/dist/chunks/hooks-Cw-F-1uO.js +0 -1
- package/dist/chunks/inboundAttachments-CZN_sUNx.js +0 -1
- package/dist/chunks/language-DB1HIsF8.js +0 -1
- package/dist/chunks/loadAgentsDir-DsskgPWe.js +0 -1
- package/dist/chunks/localSearch-CScvVw0c.js +0 -1
- package/dist/chunks/login-FdPNsHJs.js +0 -1
- package/dist/chunks/logout-CulTqT7V.js +0 -1
- package/dist/chunks/model-DG0v1297.js +0 -1
- package/dist/chunks/pluginStartupCheck-Ga_XiMnA.js +0 -1
- package/dist/chunks/policyLimits-Dsz-jkpD.js +0 -1
- package/dist/chunks/poorMode-BAuBNURJ.js +0 -1
- package/dist/chunks/prompt-D3rBUscf.js +0 -1
- package/dist/chunks/prompt-ohTcwieE.js +0 -1
- package/dist/chunks/sandbox-adapter-CQ0imVO1.js +0 -1
- package/dist/chunks/searchExtraTools-Ntz1u-YC.js +0 -1
- package/dist/chunks/sessionFileAccessHooks-DD2a-mTZ.js +0 -1
- package/dist/chunks/sessionMemory-hbxplpxs.js +0 -1
- package/dist/chunks/sessionMemoryUtils-DlW9hqOH.js +0 -1
- package/dist/chunks/sessionObserver-Lb1c5FPy.js +0 -1
- package/dist/chunks/sessionStorage-DG68Xvsy.js +0 -1
- package/dist/chunks/sink-BdRlnpoG.js +0 -1
- package/dist/chunks/sinks-Bn0FK_Ab.js +0 -1
- package/dist/chunks/skillLearning-702-D6Lq.js +0 -1
- package/dist/chunks/skillLearning-Cz7qU9V6.js +0 -1
- package/dist/chunks/teamHelpers-CmDn2xyl.js +0 -1
- package/dist/chunks/teammateModeSnapshot-DXtG86pG.js +0 -1
- package/dist/chunks/thinkback-D1Fv1QYl.js +0 -1
- package/dist/chunks/toolPool-C4CO158z.js +0 -1
- package/dist/chunks/undercover-jZEIpxrJ.js +0 -1
- package/dist/chunks/upgrade-C_0-l0Zo.js +0 -1
- package/dist/chunks/utils--ZdihcLH.js +0 -1
- package/dist/chunks/voiceModeEnabled-0NU5pSM-.js +0 -1
- package/dist/chunks/voiceStreamSTT-yvcTWD7i.js +0 -1
- package/dist/chunks/worktree-CRn2SbHn.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as e,i as t,n,o as r,r as i,t as a}from"./chunk-DR8-3Aex.js";import{n as o,t as s}from"./isObject-DaxDnPKm.js";import{n as c,t as l}from"./memoize-DNnuA2aU.js";import{a as u,c as d,d as f,f as p,i as m,l as h,m as g,n as _,r as v,s as y,t as b,u as x}from"./envUtils-BWeoiL4Y.js";import{g as S,h as C,l as w,m as T,p as E,v as D,y as ee}from"./client-_sjL0I7A.js";import{n as O,t as k}from"./defineProperty-80gRi2ZW.js";import{a as te,c as ne,i as re,l as ie,n as ae,o as oe,r as A,s as se,t as j,u as ce}from"./classPrivateFieldSet2-EAQNhHs8.js";import{i as M,n as N,r as le,t as ue}from"./figures-gfT9mM8P.js";import{c as de,d as fe,i as pe,l as me,p as he,r as ge,s as _e,t as ve}from"./zod-DT6hytkp.js";import{i as ye,n as be,r as xe,s as Se,y as Ce}from"./esm-CJlBxjtx.js";import{S as we,c as Te}from"./esm-DcdOXSzi.js";import{n as Ee,t as De}from"./esm-CIL-SKM8.js";import{n as Oe,t as ke}from"./axios-DhfaybwJ.js";import{i as Ae,r as je}from"./chokidar-SzksMqYp.js";import{n as Me,t as Ne}from"./p-map-D7WEmnBE.js";import{Cn as P,In as Pe,Ln as F,Mn as Fe,Mr as Ie,Pi as Le,Tt as Re,Xn as ze,Yn as Be,Zn as Ve,dn as He,kn as Ue,kt as We,ln as eee,un as I,vt as Ge,wn as L,wt as Ke,xt as tee,zt as qe}from"./schemas-BGAvj1T4.js";import{A as nee,B as Je,C as ree,D as iee,E as aee,F as oee,G as see,H as cee,I as lee,K as uee,L as dee,N as fee,O as pee,P as Ye,R as mee,S as Xe,T as Ze,U as hee,V as gee,W as _ee,_ as vee,a as yee,b as bee,c as xee,f as Qe,g as See,h as Cee,i as wee,j as Tee,k as Eee,l as Dee,m as Oee,o as kee,p as Aee,q as $e,r as jee,s as Mee,u as Nee,v as et,w as Pee,x as tt,y as Fee,z as Iee}from"./server-DzOdtq8A.js";import{i as nt,n as rt,o as Lee,t as it}from"./v4-f1i_CNUT.js";import{$ as at,$t as Ree,B as ot,Cn as st,Ct as zee,D as Bee,F as ct,Fn as Vee,Ft as Hee,G as lt,In as ut,K as dt,Ln as ft,Lt as pt,M as mt,N as Uee,On as Wee,Q as ht,Qt as Gee,Rn as R,Sn as gt,T as _t,Tn as vt,Tt as Kee,Ut as qee,V as Jee,X as Yee,Z as yt,Zt as Xee,_n as Zee,_t as Qee,an as $ee,at as ete,b as z,bn as tte,c as nte,d as rte,dn as ite,et as ate,f as bt,ft as ote,g as xt,gn as ste,gt as cte,h as St,ht as Ct,in as lte,kn as ute,ln as dte,nn as fte,nt as wt,on as pte,p as mte,rn as hte,s as gte,st as _te,t as Tt,tn as vte,tt as Et,v as Dt,vn as yte,wn as Ot,wt as bte,x as B,xn as kt,xt as At,yn as xte}from"./src-Di342QoJ.js";import{t as jt}from"./jsx-runtime-D-D469L8.js";import{$t as Ste,A as Mt,B as Nt,Bt as Pt,C as Cte,Ct as Ft,D as wte,E as Tte,Fn as Ete,Fr as It,Ft as Dte,G as Ote,Gr as kte,H as Ate,Hr as Lt,Ht as Rt,I as jte,Ir as Mte,It as Nte,J as zt,K as Bt,Lt as Vt,Mn as Pte,Mt as Ht,Nr as Fte,Nt as Ite,O as Lte,On as Rte,Ot as Ut,P as zte,Pr as Wt,Pt as Bte,Q as Vte,Qn as Hte,Rt as Ute,T as Wte,Tt as Gt,U as Kt,Ut as Gte,V as Kte,Vr as qt,Vt as Jt,W as Yt,Wt as qte,Xn as Xt,Xt as Zt,Y as Jte,Yn as Qt,Z as Yte,Zn as Xte,_ as Zte,_n as $t,_t as en,a as Qte,c as $te,cn as tn,ct as nn,d as rn,dn as an,dr as ene,dt as tne,en as nne,et as rne,f as ine,fn as ane,fr as one,ft as sne,g as on,gr as cne,h as lne,ht as sn,i as une,in as dne,it as fne,j as cn,jn as pne,jr as mne,jt as hne,k as gne,kr as _ne,kt as vne,ln,lr as yne,lt as un,m as bne,mn as xne,mt as Sne,nn as Cne,o as wne,on as Tne,or as dn,ot as fn,pn as Ene,pr as Dne,pt as One,r as kne,rn as Ane,s as jne,sn as Mne,sr as pn,t as Nne,tn as mn,tt as Pne,un as Fne,ur as Ine,ut as hn,v as Lne,vt as gn,w as Rne,wn as zne,y as _n,yt as Bne,z as Vne,zn as vn,zr as Hne,zt as Une}from"./state-sIHsFpDu.js";import{$ as yn,$a as Wne,$c as Gne,$i as Kne,$n as qne,$o as bn,$r as Jne,$s as Yne,$t as Xne,Ac as xn,Ai as Zne,An as Qne,Ao as Sn,As as $ne,At as Cn,Ba as ere,Bc as wn,Bi as tre,Bl as nre,Bn as Tn,Bo as En,Br as Dn,Bs as rre,Bt as ire,Ca as are,Cl as On,Co as kn,Cr as ore,Cs as sre,Ct as cre,Da as lre,Do as ure,Dr as An,Dt as dre,Ea as jn,Ec as fre,El as pre,Eo as mre,Er as Mn,Es as Nn,Fa as Pn,Fi as hre,Fl as Fn,Fn as gre,Fo as In,Ga as _re,Gc as vre,Gi as Ln,Go as yre,Gr as bre,Gs as Rn,H as xre,Ha as Sre,Hc as zn,Hi as Cre,Hl as wre,Hn as Tre,Ho as Bn,Hr as Vn,Hs as Hn,Ht as Un,Ia as Wn,Ic as Ere,Ii as Dre,Il as Gn,In as Ore,Ir as Kn,Is as kre,It as Are,J as qn,Jc as jre,Ji as Mre,Jn,Jo as Nre,Jr as Yn,Js as Pre,Jt as Xn,K as Zn,Ka as Qn,Kc as $n,Kn as Fre,Ko as er,Kr as Ire,Ks as Lre,La as Rre,Lc as zre,Ll as Bre,Lo as Vre,Lr as Hre,Ls as Ure,Lt as Wre,M as Gre,Ma as tr,Mi as nr,Mn as Kre,Mo as qre,Mr as rr,Ms as ir,Na as ar,Nc as or,Ni as Jre,Nl as Yre,Nn as Xre,No as Zre,Nr as Qre,Ns as sr,Oc as cr,Oo as lr,Or as ur,Os as $re,Ot as eie,Pa as dr,Pc as fr,Pi as tie,Pl as pr,Pn as nie,Po as mr,Pr as hr,Pt as gr,Q as rie,Qa as _r,Qc as vr,Qi as yr,Qn as br,Qo as xr,Qr as iie,Qs as aie,Ra as oie,Rc as sie,Ri as cie,Rl as Sr,Ro as Cr,Rr as lie,Rt as uie,S as wr,Sa as die,Sc as Tr,Si as fie,Sn as Er,So as Dr,Sr as pie,Ss as Or,St as mie,T as hie,Ta as gie,Tc as kr,Tl as _ie,To as Ar,Tr as vie,Ts as yie,Tt as jr,U as bie,Ua as Mr,Uc as Nr,Ui as xie,Un as Sie,Uo as Cie,Va as wie,Vc as Pr,Vi as Tie,Vl as Eie,Vn as Fr,Vo as Ir,Vr as Die,W as Oie,Wa as kie,Wc as Aie,Wi as jie,Wn as Mie,Wo as Nie,Wr as Pie,X as Lr,Xa as Fie,Xn as Iie,Xo as Rr,Xr as Lie,Xs as Rie,Y as zie,Ya as Bie,Yc as Vie,Yi as Hie,Yn as zr,Yo as Br,Yr as Uie,Ys as Vr,Z as Hr,Za as Ur,Zc as Wr,Zn as Gr,Zo as Kr,Zr as Wie,Zs as Gie,Zt as qr,_ as Jr,_i as Kie,_l as qie,_r as Yr,_s as Jie,a as Xr,aa as Yie,ac as Xie,ai as Zr,al as Qr,ao as Zie,at as $r,ba as Qie,bc as ei,bi as $ie,bl as ti,bn as eae,bo as tae,br as ni,bs as ri,bt as ii,c as nae,ca as rae,cc as ai,ci as oi,cl as iae,cr as si,cs as aae,ct as oae,d as ci,dc as li,dl as ui,dn as di,do as sae,dr as fi,ds as cae,ec as lae,ei as uae,el as pi,eo as dae,er as mi,es as fae,et as pae,fa as mae,fc as hi,fn as hae,fo as gae,fr as _ae,fs as gi,ga as vae,gc as yae,gi as bae,gl as _i,gn as xae,gr as vi,gs as Sae,h as yi,ha as bi,hl as xi,ho as Cae,hs as Si,ht as wae,i as Tae,ia as Eae,ii as Ci,il as wi,io as Dae,ir as Oae,is as kae,it as Ti,ja as Ei,ji as Aae,jo as Di,jr as Oi,js as jae,jt as ki,ka as Mae,kc as Nae,ki as Pae,ko as Fae,kr as Ai,ks as ji,l as Iae,la as Mi,lc as Lae,li as Rae,ll as zae,lo as Ni,lr as Bae,ls as Pi,lt as Vae,ma as Hae,mc as Uae,ml as Wae,mn as Gae,mo as Kae,ms as Fi,n as Ii,nc as Li,ni as Ri,nn as qae,no as zi,nr as Jae,ns as Bi,nt as Vi,o as Hi,oa as Yae,oc as Xae,oi as Ui,ol as Zae,on as Wi,oo as Gi,or as Ki,pc as Qae,pl as qi,po as $ae,ps as Ji,q as eoe,qa as toe,qc as noe,qn as roe,qo as Yi,qr as ioe,qs as aoe,qt as ooe,r as Xi,rc as Zi,rl as soe,rn as coe,ro as loe,rr as uoe,rs as Qi,rt as $i,s as ea,sa as doe,sc as ta,so as foe,sr as poe,ss as moe,st as na,t as hoe,ti as goe,tl as _oe,tn as ra,tr as voe,ts as yoe,tt as ia,u as boe,ua as aa,uc as xoe,ul as oa,ur as Soe,us as sa,v as Coe,va as woe,vc as Toe,vi as ca,vl as Eoe,vn as Doe,vo as Ooe,vs as koe,vt as Aoe,wa as joe,wc as Moe,wl as la,wo as ua,wr as da,wt as fa,xa as Noe,xi as pa,xn as Poe,xo as Foe,xr as Ioe,xs as ma,xt as ha,ya as Loe,yc as Roe,yi as zoe,yl as ga,yn as Boe,yo as Voe,yt as Hoe,z as Uoe,za as Woe,zc as Goe,zi as Koe,zl as qoe,zo as _a,zr as va,zt as Joe}from"./paths-D8Fx3kUi.js";import{A as Yoe,B as ya,E as V,F as ba,H as Xoe,I as Zoe,K as xa,L as H,M as Sa,N as Ca,O as wa,P as Ta,Q as Qoe,R as Ea,S as $oe,T as Da,U as Oa,V as ka,W as Aa,X as ja,Y as Ma,Z as ese,_ as tse,b as Na,c as nse,d as U,g as Pa,h as Fa,j as Ia,k as La,m as Ra,p as za,s as W,u as Ba,v as rse,w as Va,x as ise,y as Ha,z as ase}from"./debug-UI3T040K.js";import{n as Ua,r as G}from"./analytics-DqMQntaB.js";import{i as ose,n as Wa,r as sse,t as Ga}from"./cwd--iizewsn.js";import{t as Ka}from"./sdk-DEtgRZvI.js";import{a as cse,n as lse}from"./process-DMKLUQIO.js";import{A as use,C as dse,D as fse,E as qa,F as Ja,I as pse,M as mse,N as hse,O as gse,P as Ya,_ as Xa,a as Za,d as _se,f as Qa,i as $a,j as vse,k as yse,n as eo,o as bse,r as to,s as xse,v as no,w as Sse,x as Cse,y as wse}from"./git-CN3qtTb_.js";import{l as ro,o as Tse,s as Ese,u as io}from"./oauth-CdZEzMww.js";import{n as ao,r as Dse,t as oo}from"./bundledMode-kSQejuY4.js";import{i as Ose,r as so,t as co}from"./execa-CGue6Z3n.js";import{n as lo,t as uo}from"./which-DqSAIvp2.js";import{a as fo,n as po,o as kse,r as Ase,s as jse}from"./env-chR0gV31.js";import{$ as Mse,B as mo,D as Nse,E as Pse,F as Fse,G as ho,H as go,J as Ise,K as _o,L as Lse,N as vo,O as yo,P as Rse,Q as zse,R as bo,U as xo,V as So,W as Co,Y as wo,Z as Bse,_ as Vse,b as Hse,c as K,d as To,et as Eo,f as Do,k as Oo,l as ko,m as Use,n as Wse,o as Ao,q as Gse,s as q,x as jo,z as Kse}from"./log-CzsijfHZ.js";import{i as Mo,n as qse,r as Jse,t as Yse}from"./hash-BRmOQc3c.js";import{i as No,o as Po}from"./platform-CuyedWpe.js";import{n as Fo,t as Io}from"./index.min-BJnb9GQI.js";import{n as Lo,t as Ro}from"./memoize-DxwLawI2.js";import{a as zo,n as Bo,r as Vo,t as Xse}from"./windowsPaths-swxCp7bX.js";import{_ as Zse,a as Ho,c as Qse,d as $se,f as ece,g as tce,h as nce,i as rce,l as Uo,m as Wo,o as Go,r as ice,s as Ko,t as qo,u as ace}from"./sessionStoragePortable-DJZ_6cL8.js";import{a as oce,i as Jo,n as Yo,o as Xo,r as Zo,t as Qo}from"./path-B3lx7yHn.js";import{i as sce,n as $o,r as es,t as ts}from"./execFileNoThrow-CuQN1sz8.js";import{a as ns,c as rs,n as cce,r as is,s as as,t as lce,u as os}from"./types-Csi32ZXh.js";import{C as ss,E as cs,S as uce,T as ls,_ as us,a as ds,b as fs,d as ps,f as ms,g as hs,h as dce,i as gs,l as _s,n as vs,o as ys,p as fce,t as bs,u as pce,v as xs,w as mce,x as Ss,y as hce}from"./teammate-DMYOtLTK.js";import{n as Cs,o as gce,s as ws,t as _ce}from"./intl-Pse97ORk.js";import{C as Ts,D as vce,E as Es,c as yce,d as Ds,f as Os,l as ks,m as As,n as bce,o as xce,s as js,u as Sce,v as Ms,x as Ns,y as Ps}from"./startupProfiler-DnXZaX4A.js";import{n as J,t as Fs}from"./lazySchema-2sOku3cX.js";import{i as Cce,r as Is}from"./permissions-DXLfdE7b.js";import{n as Ls,t as Rs}from"./normalization-Cox8C0dP.js";import{_ as wce,c as Tce,d as Ece,f as Dce,g as zs,h as Oce,i as kce,l as Ace,m as jce,n as Mce,o as Bs,s as Nce,t as Pce,u as Vs,y as Fce}from"./proxy-CfZp-wce.js";import{n as Hs,t as Us}from"./sleep-8Eb9j_Ly.js";import{a as Ws,i as Gs,n as Ice,r as Lce}from"./genericProcessUtils-BGvcwuPt.js";import{i as Rce,o as zce}from"./common-B379wT22.js";import{$ as Ks,$t as qs,A as Bce,At as Js,Bn as Ys,Bt as Xs,C as Vce,Cn as Hce,Ct as Zs,D as Uce,Dt as Qs,E as Wce,En as Gce,Et as $s,Fn as ec,Ft as Kce,G as qce,Gt as tc,Hn as nc,Ht as rc,In as ic,It as ac,J as Jce,Jt as Yce,Kt as oc,L as Xce,Ln as sc,Lt as cc,M as Zce,Mn as lc,Mt as uc,N as dc,Nn as Qce,Nt as $ce,O as ele,On as fc,Ot as pc,P as tle,Pn as mc,Pt as hc,Q as nle,Qt as rle,Rn as gc,Rt as _c,S as ile,Sn as ale,St as vc,T as ole,Tn as sle,Tt as yc,U as bc,Ut as cle,V as xc,Vn as Sc,Vt as lle,Wt as ule,X as Cc,Xt as wc,Y as Tc,Yt as dle,Z as fle,Zt as ple,_ as mle,_n as hle,a as Ec,an as gle,at as _le,b as vle,bn as yle,bt as Dc,c as ble,cn as xle,ct as Sle,d as Cle,dn as Oc,dt as wle,en as kc,et as Tle,f as Ac,fn as Ele,ft as jc,g as Dle,gn as Ole,gt as kle,h as Ale,hn as Mc,ht as Nc,i as Pc,in as Fc,it as jle,j as Mle,jn as Ic,jt as Lc,k as Nle,kn as Ple,kt as Rc,l as Fle,ln as zc,lt as Ile,m as Lle,mn as Rle,mt as Bc,n as zle,nn as Ble,nt as Vle,o as Vc,on as Hc,ot as Hle,p as Uc,pn as Wc,pt as Ule,qt as Wle,r as Gc,rn as Kc,rt as Gle,sn as qc,st as Kle,t as qle,tn as Jc,tt as Jle,u as Yc,un as Xc,ut as Yle,v as Zc,vn as Xle,vt as Qc,w as Zle,wn as $c,wt as el,x as Qle,xn as tl,xt as nl,y as $le,yn as eue,z as tue,zn as rl,zt as il}from"./prompt-BxoRdmaw.js";import{n as nue,r as rue}from"./companion-C2CBSYiF.js";import{a as al,c as iue,d as aue,f as oue,i as ol,l as sue,o as sl,p as cue,r as lue,s as uue,t as due}from"./xml-DZp0WcWT.js";import{a as cl,i as ll,n as ul,o as fue,r as dl,t as pue}from"./shellQuote-DgjT8KBA.js";import{n as mue,t as hue}from"./distRoot-CcxmnzqQ.js";import{i as gue,n as _ue,r as vue}from"./cron-DiW7eIPP.js";import{a as yue,i as fl,n as bue,o as pl,r as xue,s as Sue}from"./fileStateCache-C7-TxF8G.js";import{a as Cue,c as wue,i as Tue,n as Eue,o as ml,r as Due,s as Oue,u as hl}from"./localSearch-4cz5ia5a.js";import{B as kue,C as gl,D as _l,I as Aue,J as jue,L as Mue,M as vl,N as yl,O as Nue,P as bl,U as Pue,V as xl,W as Fue,X as Sl,Y as Iue,Z as Cl,c as Lue,d as Rue,f as zue,i as Bue,j as wl,n as Vue,o as Hue,q as Uue,r as Tl,s as Wue,t as Gue,y as El,z as Dl}from"./rcDebugLog-5XEbz_Yg.js";import{r as Ol,t as kl}from"./store-DhI7Lcan.js";import{C as Al,S as Kue,T as jl,_ as que,a as Jue,c as Ml,f as Yue,g as Xue,h as Zue,i as Que,m as $ue,n as ede,o as tde,p as nde,s as Nl,t as rde,u as ide,v as Pl,w as Fl,x as ade,y as Il}from"./sessionTracing-Da_r0mIc.js";import{a as ode,o as sde,r as Ll,s as cde,t as lde}from"./parser-CmngCwjB.js";import{d as ude,l as dde,n as fde,r as pde}from"./commitAttribution-BJvmLsVe.js";import{a as mde,i as hde,n as gde,t as _de}from"./esm-C-1qL9Mn.js";import{n as Rl,r as vde,t as zl}from"./poorMode-CDhhKGBw.js";import{c as yde,d as bde,i as xde,l as Sde,o as Cde,t as Bl}from"./debugUtils-BBMFODKH.js";import{A as wde,B as Tde,D as Ede,E as Dde,F as Vl,H as Ode,I as Hl,L as kde,M as Ul,N as Ade,O as jde,P as Wl,R as Mde,T as Nde,V as Pde,a as Gl,b as Fde,c as Ide,d as Lde,f as Rde,i as zde,j as Bde,k as Vde,l as Hde,n as Ude,o as Kl,p as Wde,s as ql,v as Gde,w as Kde,x as qde,y as Jde,z as Jl}from"./teamHelpers-BFdTH57t.js";import{a as Yl,i as Yde,o as Xde,r as Xl,s as Zde}from"./detectRepository-CBk3S2zv.js";import{a as Zl,i as Qde,o as Ql,r as $l,s as $de}from"./api-CClu711S.js";import{r as efe,t as tfe}from"./datadog-Bd9AgZT-.js";import{i as nfe,n as rfe}from"./sentry-CZUyEC3A.js";import{a as ife,n as afe}from"./trustedDevice-C4tvgByY.js";import{n as eu,r as ofe,t as tu}from"./browser-fLRXxIsQ.js";import{a as sfe,i as cfe,n as lfe,r as nu,t as ufe}from"./semver-Tw0AFar5.js";import{n as dfe,r as ffe,t as pfe}from"./stdio-D4cT86R0.js";import{t as ru}from"./useKeybinding-FsOnjW6T.js";import{c as iu,l as au,t as mfe}from"./common-CMCv4N_v.js";import{r as ou,t as su}from"./subprocessEnv-DV6q6o6w.js";import{c as hfe,t as gfe,u as _fe}from"./src-BlLavFUS.js";import{i as vfe,m as yfe,o as bfe,p as xfe}from"./terminalSetup-CGiIwoIX.js";import{i as Sfe,t as Cfe}from"./src-x7u_sB6m.js";import{a as wfe,d as Tfe,l as Efe,s as Dfe,t as Ofe,u as kfe}from"./referral-BsAvaATn.js";import{n as Afe}from"./computerUseLock-BjoDJH2h.js";import{t as jfe}from"./escHotkey-Cyz0yyh1.js";import{i as Mfe}from"./gates-BGfvIJXl.js";import{n as Nfe}from"./hostAdapter-CbXytx4y.js";import{a as Pfe,i as Ffe,n as Ife,r as Lfe,t as Rfe}from"./xdg-CBxMmQux.js";import{a as zfe,n as Bfe,o as Vfe}from"./bridgeConfig-GQzZVhuF.js";import{a as cu,c as lu,i as Hfe,n as Ufe}from"./constants-41VpZw2G.js";import{n as Wfe,t as Gfe}from"./SentryErrorBoundary-BK2HjzVw.js";import{i as uu,r as du}from"./bridgeEnabled-CDoXbe3S.js";import{r as Kfe,t as qfe}from"./TungstenTool-V-Bwqlx3.js";import{a as fu,i as Jfe,n as pu,r as mu,t as Yfe}from"./systemPromptSections-BcN_XBTx.js";import{i as Xfe,n as Zfe,r as Qfe}from"./voiceModeEnabled-if9dV1bW.js";import{n as $fe,t as epe}from"./worktreeModeEnabled-Db6b_Iy_.js";import{a as tpe,c as npe,i as hu,l as gu,o as rpe,r as _u,s as ipe,u as ape}from"./detection-CQsNad64.js";import{a as ope,i as vu}from"./teammateModeSnapshot-CwacsQvD.js";import{n as yu,r as bu,t as spe}from"./undercover-CNlN7Xzl.js";import{n as cpe,r as lpe,t as upe}from"./featureCheck-Cm0YNDXO.js";import{a as dpe,n as fpe}from"./prompt-4tea6NJQ.js";import{a as ppe,i as mpe,n as hpe,o as gpe,t as _pe}from"./break-cache-ByJ7U2Ts.js";import{a as vpe,i as ype,n as bpe}from"./types-RJTEOuIt.js";import{i as xpe,n as Spe,r as Cpe}from"./tui-BVc2q4Xv.js";import*as xu from"os";import{homedir as Su,platform as wpe,release as Tpe,tmpdir as Cu,type as Epe,version as Dpe}from"os";import*as wu from"path";import{basename as Tu,delimiter as Ope,dirname as Eu,extname as Du,isAbsolute as Ou,join as Y,normalize as ku,parse as Au,posix as ju,relative as Mu,resolve as Nu,sep as Pu,win32 as Fu}from"path";import{promisify as kpe}from"node:util";import Iu from"node:process";import Lu,{basename as Ape,dirname as jpe,isAbsolute as Mpe,join as Ru,relative as Npe,resolve as zu}from"node:path";import*as Bu from"fs";import{accessSync as Ppe,closeSync as Fpe,constants as Vu,createReadStream as Ipe,fstat as Lpe,fstatSync as Rpe,mkdirSync as zpe,openSync as Bpe,promises as Hu,readFileSync as Uu,readSync as Vpe,rm as Hpe,rmSync as Upe,statSync as Wpe,unlinkSync as Gpe,watch as Kpe,writeFileSync as qpe,writeSync as Wu}from"fs";import*as Gu from"node:child_process";import{execSync as Jpe,spawn as Ype,spawnSync as Xpe}from"node:child_process";import*as Ku from"node:fs";import{chmodSync as Zpe,closeSync as Qpe,existsSync as qu,mkdirSync as Ju,mkdtempSync as $pe,openSync as eme,readFileSync as Yu,readSync as tme,readdirSync as Xu,renameSync as Zu,rmSync as Qu,statSync as nme,unlinkSync as rme,writeFileSync as $u}from"node:fs";import{EOL as ed,homedir as td,tmpdir as nd}from"node:os";import{createCipheriv as ime,createDecipheriv as ame,createHash as ome,randomBytes as rd,randomUUID as sme,scryptSync as cme}from"node:crypto";import{createHash as id,randomBytes as ad,randomUUID as od}from"crypto";import*as sd from"fs/promises";import{access as cd,appendFile as ld,chmod as ud,copyFile as dd,link as fd,lstat as lme,mkdir as pd,open as md,readFile as hd,readdir as gd,readlink as _d,realpath as vd,rename as yd,rm as bd,rmdir as ume,stat as xd,symlink as Sd,truncate as dme,unlink as Cd,utimes as fme,writeFile as wd}from"fs/promises";import{isDeepStrictEqual as pme}from"util";import{execFile as mme,execFileSync as Td,spawn as Ed,spawnSync as Dd}from"child_process";import{createServer as Od}from"http";import{fileURLToPath as hme,parse as gme,pathToFileURL as kd}from"url";import _me,{createConnection as vme,isIP as yme}from"net";import{setMaxListeners as bme}from"events";import{PassThrough as xme}from"node:stream";import{request as Sme}from"node:https";import{readFile as Cme,writeFile as wme}from"node:fs/promises";import{Agent as Tme,createServer as Eme,request as Ad}from"node:http";import{lookup as Dme}from"dns";import{URL as jd,fileURLToPath as Ome}from"node:url";import{BlockList as kme,connect as Md,isIP as Nd}from"node:net";import{connect as Ame}from"node:tls";import{text as jme}from"node:stream/consumers";import{join as Pd}from"path/posix";function Fd(){return Jr(`tengu_turtle_carbon`,!0)}function Mme(e){return/\bultrathink\b/i.test(e)}function Nme(e){let t=[],n=e.matchAll(/\bultrathink\b/gi);for(let e of n)e.index!==void 0&&t.push({word:e[0],start:e.index,end:e.index+e[0].length});return t}function Id(e,t=!1){let n=t?Rme:Lme;return n[e%n.length]}function Pme(e){let t=mi(e,`thinking`);if(t!==void 0)return t;if(process.env.USER_TYPE===`ant`&&Jre(e.toLowerCase()))return!0;let n=ni(e),r=ar();return r===`foundry`||r===`firstParty`?!n.includes(`claude-3-`):n.includes(`sonnet-4`)||n.includes(`opus-4`)}function Fme(e){let t=mi(e,`adaptive_thinking`);if(t!==void 0)return t;let n=ni(e);if(n.includes(`opus-4-7`)||n.includes(`opus-4-6`)||n.includes(`sonnet-4-6`))return!0;if(n.includes(`opus`)||n.includes(`sonnet`)||n.includes(`haiku`))return!1;let r=ar();return r===`firstParty`||r===`foundry`}function Ime(){if(process.env.MAX_THINKING_TOKENS)return parseInt(process.env.MAX_THINKING_TOKENS,10)>0;let{settings:e}=dae();return e.alwaysThinkingEnabled!==!1}var Lme,Rme,Ld=n((()=>{wr(),hr(),voe(),Pn(),Gi(),nr(),Lme=[`rainbow_red`,`rainbow_orange`,`rainbow_yellow`,`rainbow_green`,`rainbow_blue`,`rainbow_indigo`,`rainbow_violet`],Rme=[`rainbow_red_shimmer`,`rainbow_orange_shimmer`,`rainbow_yellow_shimmer`,`rainbow_green_shimmer`,`rainbow_blue_shimmer`,`rainbow_indigo_shimmer`,`rainbow_violet_shimmer`]}));function Rd(e){let t=e.toLowerCase();if(x(process.env.CLAUDE_CODE_ALWAYS_ENABLE_EFFORT))return!0;let n=mi(e,`effort`);return n===void 0?ar()===`openai`&&Yn()&&Uie(e)||t.includes(`opus-4-7`)||t.includes(`opus-4-6`)||t.includes(`sonnet-4-6`)||t.includes(`deepseek-v4-pro`)?!0:t.includes(`haiku`)||t.includes(`sonnet`)||t.includes(`opus`)?!1:ar()===`firstParty`:n}function zme(e){let t=mi(e,`max_effort`);return t===void 0?!0:t}function Bme(e){let t=mi(e,`xhigh_effort`);return t===void 0?!0:t}function zd(e){return Ud.includes(e)}function Bd(e){if(e==null||e===``)return;if(typeof e==`number`&&qme(e))return e;let t=String(e).toLowerCase();if(zd(t))return t;let n=parseInt(t,10);if(!isNaN(n)&&qme(n))return n}function Vme(e){if(e===`low`||e===`medium`||e===`high`||e===`xhigh`||e===`max`&&process.env.USER_TYPE===`ant`)return e}function Hme(){return Vme(Qn().effortLevel)}function Ume(e,t,n,r){return n!==void 0||r||e!==t?e:void 0}function Wme(){let e=process.env.CLAUDE_CODE_EFFORT_LEVEL;return e?.toLowerCase()===`unset`||e?.toLowerCase()===`auto`?null:Bd(e)}function Vd(e,t){let n=Wme();if(n===null)return;let r=n??t??Zme(e);return r===`max`&&ar()===`openai`&&Yn()&&Bme(e)?`xhigh`:r}function Gme(e,t){return Hd(Vd(e,t)??`high`)}function Kme(e,t){if(t===void 0)return``;let n=Vd(e,t);return n===void 0?``:` with ${Hd(n)} effort`}function qme(e){return Number.isInteger(e)}function Hd(e){return typeof e==`string`?zd(e)?e:`high`:process.env.USER_TYPE===`ant`&&typeof e==`number`?e<=50?`low`:e<=85?`medium`:e<=100?`high`:`max`:`high`}function Jme(e){switch(e){case`low`:return`Quick, straightforward implementation with minimal overhead`;case`medium`:return`Balanced approach with standard implementation and testing`;case`high`:return`Comprehensive implementation with extensive testing and documentation`;case`xhigh`:return`Extended reasoning beyond high, short of max`;case`max`:return`Maximum capability with deepest reasoning`}}function Yme(e){return process.env.USER_TYPE===`ant`&&typeof e==`number`?`[ANT-ONLY] Numeric effort value of ${e}`:typeof e==`string`?Jme(e):`Balanced approach with standard implementation and testing`}function Xme(){let e=Jr(`tengu_grey_step2`,Wd);return{...Wd,...e}}function Zme(e){if(process.env.USER_TYPE===`ant`){let t=Zne();if(t?.defaultModel!==void 0&&e.toLowerCase()===t.defaultModel.toLowerCase()&&t?.defaultModelEffortLevel)return t.defaultModelEffortLevel;let n=Jre(e);if(n){if(n.defaultEffortLevel)return n.defaultEffortLevel;if(n.defaultEffortValue!==void 0)return n.defaultEffortValue}return}if(ar()===`openai`&&Yn()&&Uie(e))return`medium`;if((e.toLowerCase().includes(`opus-4-7`)||e.toLowerCase().includes(`opus-4-6`))&&(Boe()||Xme().enabled&&(xae()||Poe())))return`high`;if(Fd()&&Rd(e))return`medium`}var Ud,Wd,Gd=n((()=>{Ld(),Gi(),Wi(),wr(),Pn(),voe(),y(),nr(),ioe(),Ud=[`low`,`medium`,`high`,`xhigh`,`max`],Wd={enabled:!0,dialogTitle:`We recommend medium effort for Opus`,dialogDescription:`Effort determines how long Claude thinks for when completing your task. We recommend medium effort for most tasks to balance speed and intelligence and maximize rate limits. Use ultrathink to trigger high effort when needed.`}})),Kd=a((e=>{var t=Symbol.for(`yaml.alias`),n=Symbol.for(`yaml.document`),r=Symbol.for(`yaml.map`),i=Symbol.for(`yaml.pair`),a=Symbol.for(`yaml.scalar`),o=Symbol.for(`yaml.seq`),s=Symbol.for(`yaml.node.type`),c=e=>!!e&&typeof e==`object`&&e[s]===t,l=e=>!!e&&typeof e==`object`&&e[s]===n,u=e=>!!e&&typeof e==`object`&&e[s]===r,d=e=>!!e&&typeof e==`object`&&e[s]===i,f=e=>!!e&&typeof e==`object`&&e[s]===a,p=e=>!!e&&typeof e==`object`&&e[s]===o;function m(e){if(e&&typeof e==`object`)switch(e[s]){case r:case o:return!0}return!1}function h(e){if(e&&typeof e==`object`)switch(e[s]){case t:case r:case a:case o:return!0}return!1}e.ALIAS=t,e.DOC=n,e.MAP=r,e.NODE_TYPE=s,e.PAIR=i,e.SCALAR=a,e.SEQ=o,e.hasAnchor=e=>(f(e)||m(e))&&!!e.anchor,e.isAlias=c,e.isCollection=m,e.isDocument=l,e.isMap=u,e.isNode=h,e.isPair=d,e.isScalar=f,e.isSeq=p})),qd=a((e=>{var t=Kd(),n=Symbol(`break visit`),r=Symbol(`skip children`),i=Symbol(`remove node`);function a(e,n){let r=l(n);t.isDocument(e)?o(null,e.contents,r,Object.freeze([e]))===i&&(e.contents=null):o(null,e,r,Object.freeze([]))}a.BREAK=n,a.SKIP=r,a.REMOVE=i;function o(e,r,a,s){let c=u(e,r,a,s);if(t.isNode(c)||t.isPair(c))return d(e,s,c),o(e,c,a,s);if(typeof c!=`symbol`){if(t.isCollection(r)){s=Object.freeze(s.concat(r));for(let e=0;e<r.items.length;++e){let t=o(e,r.items[e],a,s);if(typeof t==`number`)e=t-1;else if(t===n)return n;else t===i&&(r.items.splice(e,1),--e)}}else if(t.isPair(r)){s=Object.freeze(s.concat(r));let e=o(`key`,r.key,a,s);if(e===n)return n;e===i&&(r.key=null);let t=o(`value`,r.value,a,s);if(t===n)return n;t===i&&(r.value=null)}}return c}async function s(e,n){let r=l(n);t.isDocument(e)?await c(null,e.contents,r,Object.freeze([e]))===i&&(e.contents=null):await c(null,e,r,Object.freeze([]))}s.BREAK=n,s.SKIP=r,s.REMOVE=i;async function c(e,r,a,o){let s=await u(e,r,a,o);if(t.isNode(s)||t.isPair(s))return d(e,o,s),c(e,s,a,o);if(typeof s!=`symbol`){if(t.isCollection(r)){o=Object.freeze(o.concat(r));for(let e=0;e<r.items.length;++e){let t=await c(e,r.items[e],a,o);if(typeof t==`number`)e=t-1;else if(t===n)return n;else t===i&&(r.items.splice(e,1),--e)}}else if(t.isPair(r)){o=Object.freeze(o.concat(r));let e=await c(`key`,r.key,a,o);if(e===n)return n;e===i&&(r.key=null);let t=await c(`value`,r.value,a,o);if(t===n)return n;t===i&&(r.value=null)}}return s}function l(e){return typeof e==`object`&&(e.Collection||e.Node||e.Value)?Object.assign({Alias:e.Node,Map:e.Node,Scalar:e.Node,Seq:e.Node},e.Value&&{Map:e.Value,Scalar:e.Value,Seq:e.Value},e.Collection&&{Map:e.Collection,Seq:e.Collection},e):e}function u(e,n,r,i){if(typeof r==`function`)return r(e,n,i);if(t.isMap(n))return r.Map?.(e,n,i);if(t.isSeq(n))return r.Seq?.(e,n,i);if(t.isPair(n))return r.Pair?.(e,n,i);if(t.isScalar(n))return r.Scalar?.(e,n,i);if(t.isAlias(n))return r.Alias?.(e,n,i)}function d(e,n,r){let i=n[n.length-1];if(t.isCollection(i))i.items[e]=r;else if(t.isPair(i))e===`key`?i.key=r:i.value=r;else if(t.isDocument(i))i.contents=r;else{let e=t.isAlias(i)?`alias`:`scalar`;throw Error(`Cannot replace node with ${e} parent`)}}e.visit=a,e.visitAsync=s})),Qme=a((e=>{var t=Kd(),n=qd(),r={"!":`%21`,",":`%2C`,"[":`%5B`,"]":`%5D`,"{":`%7B`,"}":`%7D`},i=e=>e.replace(/[!,[\]{}]/g,e=>r[e]),a=class e{constructor(t,n){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},e.defaultYaml,t),this.tags=Object.assign({},e.defaultTags,n)}clone(){let t=new e(this.yaml,this.tags);return t.docStart=this.docStart,t}atDocument(){let t=new e(this.yaml,this.tags);switch(this.yaml.version){case`1.1`:this.atNextDocument=!0;break;case`1.2`:this.atNextDocument=!1,this.yaml={explicit:e.defaultYaml.explicit,version:`1.2`},this.tags=Object.assign({},e.defaultTags);break}return t}add(t,n){this.atNextDocument&&(this.yaml={explicit:e.defaultYaml.explicit,version:`1.1`},this.tags=Object.assign({},e.defaultTags),this.atNextDocument=!1);let r=t.trim().split(/[ \t]+/),i=r.shift();switch(i){case`%TAG`:{if(r.length!==2&&(n(0,`%TAG directive should contain exactly two parts`),r.length<2))return!1;let[e,t]=r;return this.tags[e]=t,!0}case`%YAML`:{if(this.yaml.explicit=!0,r.length!==1)return n(0,`%YAML directive should contain exactly one part`),!1;let[e]=r;if(e===`1.1`||e===`1.2`)return this.yaml.version=e,!0;{let t=/^\d+\.\d+$/.test(e);return n(6,`Unsupported YAML version ${e}`,t),!1}}default:return n(0,`Unknown directive ${i}`,!0),!1}}tagName(e,t){if(e===`!`)return`!`;if(e[0]!==`!`)return t(`Not a valid tag: ${e}`),null;if(e[1]===`<`){let n=e.slice(2,-1);return n===`!`||n===`!!`?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==`>`&&t(`Verbatim tags must end with a >`),n)}let[,n,r]=e.match(/^(.*!)([^!]*)$/s);r||t(`The ${e} tag has no suffix`);let i=this.tags[n];if(i)try{return i+decodeURIComponent(r)}catch(e){return t(String(e)),null}return n===`!`?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,n]of Object.entries(this.tags))if(e.startsWith(n))return t+i(e.substring(n.length));return e[0]===`!`?e:`!<${e}>`}toString(e){let r=this.yaml.explicit?[`%YAML ${this.yaml.version||`1.2`}`]:[],i=Object.entries(this.tags),a;if(e&&i.length>0&&t.isNode(e.contents)){let r={};n.visit(e.contents,(e,n)=>{t.isNode(n)&&n.tag&&(r[n.tag]=!0)}),a=Object.keys(r)}else a=[];for(let[t,n]of i)t===`!!`&&n===`tag:yaml.org,2002:`||(!e||a.some(e=>e.startsWith(n)))&&r.push(`%TAG ${t} ${n}`);return r.join(`
|
|
1
|
+
import{a as e,i as t,n,o as r,r as i,t as a}from"./chunk-DR8-3Aex.js";import{n as o,t as s}from"./isObject-DaxDnPKm.js";import{n as c,t as l}from"./memoize-DNnuA2aU.js";import{a as u,c as d,d as f,f as p,i as m,l as h,m as g,n as _,r as v,s as y,t as b,u as x}from"./envUtils-BWeoiL4Y.js";import{g as S,h as C,l as w,m as T,p as E,v as D,y as ee}from"./client-_sjL0I7A.js";import{n as O,t as k}from"./defineProperty-80gRi2ZW.js";import{a as te,c as ne,i as re,l as ie,n as ae,o as oe,r as A,s as se,t as j,u as ce}from"./classPrivateFieldSet2-EAQNhHs8.js";import{i as M,n as N,r as le,t as ue}from"./figures-gfT9mM8P.js";import{c as de,d as fe,i as pe,l as me,p as he,r as ge,s as _e,t as ve}from"./zod-DT6hytkp.js";import{i as ye,n as be,r as xe,s as Se,y as Ce}from"./esm-CJlBxjtx.js";import{S as we,c as Te}from"./esm-DcdOXSzi.js";import{n as Ee,t as De}from"./esm-CIL-SKM8.js";import{n as Oe,t as ke}from"./axios-DhfaybwJ.js";import{i as Ae,r as je}from"./chokidar-SzksMqYp.js";import{n as Me,t as Ne}from"./p-map-D7WEmnBE.js";import{Cn as P,In as Pe,Ln as F,Mn as Fe,Mr as Ie,Pi as Le,Tt as Re,Xn as ze,Yn as Be,Zn as Ve,dn as He,kn as Ue,kt as We,ln as eee,un as I,vt as Ge,wn as L,wt as Ke,xt as tee,zt as qe}from"./schemas-BGAvj1T4.js";import{A as nee,B as Je,C as ree,D as iee,E as aee,F as oee,G as see,H as cee,I as lee,K as uee,L as dee,N as fee,O as pee,P as Ye,R as mee,S as Xe,T as Ze,U as hee,V as gee,W as _ee,_ as vee,a as yee,b as bee,c as xee,f as Qe,g as See,h as Cee,i as wee,j as Tee,k as Eee,l as Dee,m as Oee,o as kee,p as Aee,q as $e,r as jee,s as Mee,u as Nee,v as et,w as Pee,x as tt,y as Fee,z as Iee}from"./server-DzOdtq8A.js";import{i as nt,n as rt,o as Lee,t as it}from"./v4-f1i_CNUT.js";import{$ as at,$t as Ree,B as ot,Cn as st,Ct as zee,D as Bee,F as ct,Fn as Vee,Ft as Hee,G as lt,In as ut,K as dt,Ln as ft,Lt as pt,M as mt,N as Uee,On as Wee,Q as ht,Qt as Gee,Rn as R,Sn as gt,T as _t,Tn as vt,Tt as Kee,Ut as qee,V as Jee,X as Yee,Z as yt,Zt as Xee,_n as Zee,_t as Qee,an as $ee,at as ete,b as z,bn as tte,c as nte,d as rte,dn as ite,et as ate,f as bt,ft as ote,g as xt,gn as ste,gt as cte,h as St,ht as Ct,in as lte,kn as ute,ln as dte,nn as fte,nt as wt,on as pte,p as mte,rn as hte,s as gte,st as _te,t as Tt,tn as vte,tt as Et,v as Dt,vn as yte,wn as Ot,wt as bte,x as B,xn as kt,xt as At,yn as xte}from"./src-Di342QoJ.js";import{t as jt}from"./jsx-runtime-D-D469L8.js";import{$t as Ste,A as Mt,B as Nt,Bt as Pt,C as Cte,Ct as Ft,D as wte,E as Tte,Fn as Ete,Fr as It,Ft as Dte,G as Ote,Gr as kte,H as Ate,Hr as Lt,Ht as Rt,I as jte,Ir as Mte,It as Nte,J as zt,K as Bt,Lt as Vt,Mn as Pte,Mt as Ht,Nr as Fte,Nt as Ite,O as Lte,On as Rte,Ot as Ut,P as zte,Pr as Wt,Pt as Bte,Q as Vte,Qn as Hte,Rt as Ute,T as Wte,Tt as Gt,U as Kt,Ut as Gte,V as Kte,Vr as qt,Vt as Jt,W as Yt,Wt as qte,Xn as Xt,Xt as Zt,Y as Jte,Yn as Qt,Z as Yte,Zn as Xte,_ as Zte,_n as $t,_t as en,a as Qte,c as $te,cn as tn,ct as nn,d as rn,dn as an,dr as ene,dt as tne,en as nne,et as rne,f as ine,fn as ane,fr as one,ft as sne,g as on,gr as cne,h as lne,ht as sn,i as une,in as dne,it as fne,j as cn,jn as pne,jr as mne,jt as hne,k as gne,kr as _ne,kt as vne,ln,lr as yne,lt as un,m as bne,mn as xne,mt as Sne,nn as Cne,o as wne,on as Tne,or as dn,ot as fn,pn as Ene,pr as Dne,pt as One,r as kne,rn as Ane,s as jne,sn as Mne,sr as pn,t as Nne,tn as mn,tt as Pne,un as Fne,ur as Ine,ut as hn,v as Lne,vt as gn,w as Rne,wn as zne,y as _n,yt as Bne,z as Vne,zn as vn,zr as Hne,zt as Une}from"./state-sIHsFpDu.js";import{$ as yn,$a as Wne,$c as Gne,$i as Kne,$n as qne,$o as bn,$r as Jne,$s as Yne,$t as Xne,Ac as xn,Ai as Zne,An as Qne,Ao as Sn,As as $ne,At as Cn,Ba as ere,Bc as wn,Bi as tre,Bl as nre,Bn as Tn,Bo as En,Br as Dn,Bs as rre,Bt as ire,Ca as are,Cl as On,Co as kn,Cr as ore,Cs as sre,Ct as cre,Da as lre,Do as ure,Dr as An,Dt as dre,Ea as jn,Ec as fre,El as pre,Eo as mre,Er as Mn,Es as Nn,Fa as Pn,Fi as hre,Fl as Fn,Fn as gre,Fo as In,Ga as _re,Gc as vre,Gi as Ln,Go as yre,Gr as bre,Gs as Rn,H as xre,Ha as Sre,Hc as zn,Hi as Cre,Hl as wre,Hn as Tre,Ho as Bn,Hr as Vn,Hs as Hn,Ht as Un,Ia as Wn,Ic as Ere,Ii as Dre,Il as Gn,In as Ore,Ir as Kn,Is as kre,It as Are,J as qn,Jc as jre,Ji as Mre,Jn,Jo as Nre,Jr as Yn,Js as Pre,Jt as Xn,K as Zn,Ka as Qn,Kc as $n,Kn as Fre,Ko as er,Kr as Ire,Ks as Lre,La as Rre,Lc as zre,Ll as Bre,Lo as Vre,Lr as Hre,Ls as Ure,Lt as Wre,M as Gre,Ma as tr,Mi as nr,Mn as Kre,Mo as qre,Mr as rr,Ms as ir,Na as ar,Nc as or,Ni as Jre,Nl as Yre,Nn as Xre,No as Zre,Nr as Qre,Ns as sr,Oc as cr,Oo as lr,Or as ur,Os as $re,Ot as eie,Pa as dr,Pc as fr,Pi as tie,Pl as pr,Pn as nie,Po as mr,Pr as hr,Pt as gr,Q as rie,Qa as _r,Qc as vr,Qi as yr,Qn as br,Qo as xr,Qr as iie,Qs as aie,Ra as oie,Rc as sie,Ri as cie,Rl as Sr,Ro as Cr,Rr as lie,Rt as uie,S as wr,Sa as die,Sc as Tr,Si as fie,Sn as Er,So as Dr,Sr as pie,Ss as Or,St as mie,T as hie,Ta as gie,Tc as kr,Tl as _ie,To as Ar,Tr as vie,Ts as yie,Tt as jr,U as bie,Ua as Mr,Uc as Nr,Ui as xie,Un as Sie,Uo as Cie,Va as wie,Vc as Pr,Vi as Tie,Vl as Eie,Vn as Fr,Vo as Ir,Vr as Die,W as Oie,Wa as kie,Wc as Aie,Wi as jie,Wn as Mie,Wo as Nie,Wr as Pie,X as Lr,Xa as Fie,Xn as Iie,Xo as Rr,Xr as Lie,Xs as Rie,Y as zie,Ya as Bie,Yc as Vie,Yi as Hie,Yn as zr,Yo as Br,Yr as Uie,Ys as Vr,Z as Hr,Za as Ur,Zc as Wr,Zn as Gr,Zo as Kr,Zr as Wie,Zs as Gie,Zt as qr,_ as Jr,_i as Kie,_l as qie,_r as Yr,_s as Jie,a as Xr,aa as Yie,ac as Xie,ai as Zr,al as Qr,ao as Zie,at as $r,ba as Qie,bc as ei,bi as $ie,bl as ti,bn as eae,bo as tae,br as ni,bs as ri,bt as ii,c as nae,ca as rae,cc as ai,ci as oi,cl as iae,cr as si,cs as aae,ct as oae,d as ci,dc as li,dl as ui,dn as di,do as sae,dr as fi,ds as cae,ec as lae,ei as uae,el as pi,eo as dae,er as mi,es as fae,et as pae,fa as mae,fc as hi,fn as hae,fo as gae,fr as _ae,fs as gi,ga as vae,gc as yae,gi as bae,gl as _i,gn as xae,gr as vi,gs as Sae,h as yi,ha as bi,hl as xi,ho as Cae,hs as Si,ht as wae,i as Tae,ia as Eae,ii as Ci,il as wi,io as Dae,ir as Oae,is as kae,it as Ti,ja as Ei,ji as Aae,jo as Di,jr as Oi,js as jae,jt as ki,ka as Mae,kc as Nae,ki as Pae,ko as Fae,kr as Ai,ks as ji,l as Iae,la as Mi,lc as Lae,li as Rae,ll as zae,lo as Ni,lr as Bae,ls as Pi,lt as Vae,ma as Hae,mc as Uae,ml as Wae,mn as Gae,mo as Kae,ms as Fi,n as Ii,nc as Li,ni as Ri,nn as qae,no as zi,nr as Jae,ns as Bi,nt as Vi,o as Hi,oa as Yae,oc as Xae,oi as Ui,ol as Zae,on as Wi,oo as Gi,or as Ki,pc as Qae,pl as qi,po as $ae,ps as Ji,q as eoe,qa as toe,qc as noe,qn as roe,qo as Yi,qr as ioe,qs as aoe,qt as ooe,r as Xi,rc as Zi,rl as soe,rn as coe,ro as loe,rr as uoe,rs as Qi,rt as $i,s as ea,sa as doe,sc as ta,so as foe,sr as poe,ss as moe,st as na,t as hoe,ti as goe,tl as _oe,tn as ra,tr as voe,ts as yoe,tt as ia,u as boe,ua as aa,uc as xoe,ul as oa,ur as Soe,us as sa,v as Coe,va as woe,vc as Toe,vi as ca,vl as Eoe,vn as Doe,vo as Ooe,vs as koe,vt as Aoe,wa as joe,wc as Moe,wl as la,wo as ua,wr as da,wt as fa,xa as Noe,xi as pa,xn as Poe,xo as Foe,xr as Ioe,xs as ma,xt as ha,ya as Loe,yc as Roe,yi as zoe,yl as ga,yn as Boe,yo as Voe,yt as Hoe,z as Uoe,za as Woe,zc as Goe,zi as Koe,zl as qoe,zo as _a,zr as va,zt as Joe}from"./paths-D9CVAtXU.js";import{A as Yoe,B as ya,E as V,F as ba,H as Xoe,I as Zoe,K as xa,L as H,M as Sa,N as Ca,O as wa,P as Ta,Q as Qoe,R as Ea,S as $oe,T as Da,U as Oa,V as ka,W as Aa,X as ja,Y as Ma,Z as ese,_ as tse,b as Na,c as nse,d as U,g as Pa,h as Fa,j as Ia,k as La,m as Ra,p as za,s as W,u as Ba,v as rse,w as Va,x as ise,y as Ha,z as ase}from"./debug-UI3T040K.js";import{n as Ua,r as G}from"./analytics-DqMQntaB.js";import{i as ose,n as Wa,r as sse,t as Ga}from"./cwd--iizewsn.js";import{t as Ka}from"./sdk-DEtgRZvI.js";import{a as cse,n as lse}from"./process-DMKLUQIO.js";import{A as use,C as dse,D as fse,E as qa,F as Ja,I as pse,M as mse,N as hse,O as gse,P as Ya,_ as Xa,a as Za,d as _se,f as Qa,i as $a,j as vse,k as yse,n as eo,o as bse,r as to,s as xse,v as no,w as Sse,x as Cse,y as wse}from"./git-CN3qtTb_.js";import{l as ro,o as Tse,s as Ese,u as io}from"./oauth-CdZEzMww.js";import{n as ao,r as Dse,t as oo}from"./bundledMode-kSQejuY4.js";import{i as Ose,r as so,t as co}from"./execa-CGue6Z3n.js";import{n as lo,t as uo}from"./which-DqSAIvp2.js";import{a as fo,n as po,o as kse,r as Ase,s as jse}from"./env-chR0gV31.js";import{$ as Mse,B as mo,D as Nse,E as Pse,F as Fse,G as ho,H as go,J as Ise,K as _o,L as Lse,N as vo,O as yo,P as Rse,Q as zse,R as bo,U as xo,V as So,W as Co,Y as wo,Z as Bse,_ as Vse,b as Hse,c as K,d as To,et as Eo,f as Do,k as Oo,l as ko,m as Use,n as Wse,o as Ao,q as Gse,s as q,x as jo,z as Kse}from"./log-CzsijfHZ.js";import{i as Mo,n as qse,r as Jse,t as Yse}from"./hash-BRmOQc3c.js";import{i as No,o as Po}from"./platform-CuyedWpe.js";import{n as Fo,t as Io}from"./index.min-BJnb9GQI.js";import{n as Lo,t as Ro}from"./memoize-DxwLawI2.js";import{a as zo,n as Bo,r as Vo,t as Xse}from"./windowsPaths-swxCp7bX.js";import{_ as Zse,a as Ho,c as Qse,d as $se,f as ece,g as tce,h as nce,i as rce,l as Uo,m as Wo,o as Go,r as ice,s as Ko,t as qo,u as ace}from"./sessionStoragePortable-DJZ_6cL8.js";import{a as oce,i as Jo,n as Yo,o as Xo,r as Zo,t as Qo}from"./path-B3lx7yHn.js";import{i as sce,n as $o,r as es,t as ts}from"./execFileNoThrow-CuQN1sz8.js";import{a as ns,c as rs,n as cce,r as is,s as as,t as lce,u as os}from"./types-Csi32ZXh.js";import{C as ss,E as cs,S as uce,T as ls,_ as us,a as ds,b as fs,d as ps,f as ms,g as hs,h as dce,i as gs,l as _s,n as vs,o as ys,p as fce,t as bs,u as pce,v as xs,w as mce,x as Ss,y as hce}from"./teammate-DMYOtLTK.js";import{n as Cs,o as gce,s as ws,t as _ce}from"./intl-Pse97ORk.js";import{C as Ts,D as vce,E as Es,c as yce,d as Ds,f as Os,l as ks,m as As,n as bce,o as xce,s as js,u as Sce,v as Ms,x as Ns,y as Ps}from"./startupProfiler-DnXZaX4A.js";import{n as J,t as Fs}from"./lazySchema-2sOku3cX.js";import{i as Cce,r as Is}from"./permissions-DXLfdE7b.js";import{n as Ls,t as Rs}from"./normalization-Cox8C0dP.js";import{_ as wce,c as Tce,d as Ece,f as Dce,g as zs,h as Oce,i as kce,l as Ace,m as jce,n as Mce,o as Bs,s as Nce,t as Pce,u as Vs,y as Fce}from"./proxy-CfZp-wce.js";import{n as Hs,t as Us}from"./sleep-8Eb9j_Ly.js";import{a as Ws,i as Gs,n as Ice,r as Lce}from"./genericProcessUtils-BGvcwuPt.js";import{i as Rce,o as zce}from"./common-B379wT22.js";import{$ as Ks,$t as qs,A as Bce,At as Js,Bn as Ys,Bt as Xs,C as Vce,Cn as Hce,Ct as Zs,D as Uce,Dt as Qs,E as Wce,En as Gce,Et as $s,Fn as ec,Ft as Kce,G as qce,Gt as tc,Hn as nc,Ht as rc,In as ic,It as ac,J as Jce,Jt as Yce,Kt as oc,L as Xce,Ln as sc,Lt as cc,M as Zce,Mn as lc,Mt as uc,N as dc,Nn as Qce,Nt as $ce,O as ele,On as fc,Ot as pc,P as tle,Pn as mc,Pt as hc,Q as nle,Qt as rle,Rn as gc,Rt as _c,S as ile,Sn as ale,St as vc,T as ole,Tn as sle,Tt as yc,U as bc,Ut as cle,V as xc,Vn as Sc,Vt as lle,Wt as ule,X as Cc,Xt as wc,Y as Tc,Yt as dle,Z as fle,Zt as ple,_ as mle,_n as hle,a as Ec,an as gle,at as _le,b as vle,bn as yle,bt as Dc,c as ble,cn as xle,ct as Sle,d as Cle,dn as Oc,dt as wle,en as kc,et as Tle,f as Ac,fn as Ele,ft as jc,g as Dle,gn as Ole,gt as kle,h as Ale,hn as Mc,ht as Nc,i as Pc,in as Fc,it as jle,j as Mle,jn as Ic,jt as Lc,k as Nle,kn as Ple,kt as Rc,l as Fle,ln as zc,lt as Ile,m as Lle,mn as Rle,mt as Bc,n as zle,nn as Ble,nt as Vle,o as Vc,on as Hc,ot as Hle,p as Uc,pn as Wc,pt as Ule,qt as Wle,r as Gc,rn as Kc,rt as Gle,sn as qc,st as Kle,t as qle,tn as Jc,tt as Jle,u as Yc,un as Xc,ut as Yle,v as Zc,vn as Xle,vt as Qc,w as Zle,wn as $c,wt as el,x as Qle,xn as tl,xt as nl,y as $le,yn as eue,z as tue,zn as rl,zt as il}from"./prompt-C69iv9cI.js";import{n as nue,r as rue}from"./companion-Cf_kYtOD.js";import{a as al,c as iue,d as aue,f as oue,i as ol,l as sue,o as sl,p as cue,r as lue,s as uue,t as due}from"./xml-K_hNNh2b.js";import{a as cl,i as ll,n as ul,o as fue,r as dl,t as pue}from"./shellQuote-DgjT8KBA.js";import{n as mue,t as hue}from"./distRoot-CcxmnzqQ.js";import{i as gue,n as _ue,r as vue}from"./cron-DiW7eIPP.js";import{a as yue,i as fl,n as bue,o as pl,r as xue,s as Sue}from"./fileStateCache-C7-TxF8G.js";import{a as Cue,c as wue,i as Tue,n as Eue,o as ml,r as Due,s as Oue,u as hl}from"./localSearch-B6Ho7Vfj.js";import{B as kue,C as gl,D as _l,I as Aue,J as jue,L as Mue,M as vl,N as yl,O as Nue,P as bl,U as Pue,V as xl,W as Fue,X as Sl,Y as Iue,Z as Cl,c as Lue,d as Rue,f as zue,i as Bue,j as wl,n as Vue,o as Hue,q as Uue,r as Tl,s as Wue,t as Gue,y as El,z as Dl}from"./rcDebugLog-CTOZ2K3E.js";import{r as Ol,t as kl}from"./store-DhI7Lcan.js";import{C as Al,S as Kue,T as jl,_ as que,a as Jue,c as Ml,f as Yue,g as Xue,h as Zue,i as Que,m as $ue,n as ede,o as tde,p as nde,s as Nl,t as rde,u as ide,v as Pl,w as Fl,x as ade,y as Il}from"./sessionTracing-_obALZbi.js";import{a as ode,o as sde,r as Ll,s as cde,t as lde}from"./parser-CmngCwjB.js";import{d as ude,l as dde,n as fde,r as pde}from"./commitAttribution-CUqUEjsh.js";import{a as mde,i as hde,n as gde,t as _de}from"./esm-C-1qL9Mn.js";import{n as Rl,r as vde,t as zl}from"./poorMode-D7WXWZtJ.js";import{c as yde,d as bde,i as xde,l as Sde,o as Cde,t as Bl}from"./debugUtils-BBMFODKH.js";import{A as wde,B as Tde,D as Ede,E as Dde,F as Vl,H as Ode,I as Hl,L as kde,M as Ul,N as Ade,O as jde,P as Wl,R as Mde,T as Nde,V as Pde,a as Gl,b as Fde,c as Ide,d as Lde,f as Rde,i as zde,j as Bde,k as Vde,l as Hde,n as Ude,o as Kl,p as Wde,s as ql,v as Gde,w as Kde,x as qde,y as Jde,z as Jl}from"./teamHelpers-CbFFdvPw.js";import{a as Yl,i as Yde,o as Xde,r as Xl,s as Zde}from"./detectRepository-CBk3S2zv.js";import{a as Zl,i as Qde,o as Ql,r as $l,s as $de}from"./api-nHsRf03G.js";import{r as efe,t as tfe}from"./datadog-FKvRNyFi.js";import{i as nfe,n as rfe}from"./sentry-B6tWUNGj.js";import{a as ife,n as afe}from"./trustedDevice-Brc9B8cZ.js";import{n as eu,r as ofe,t as tu}from"./browser-fLRXxIsQ.js";import{a as sfe,i as cfe,n as lfe,r as nu,t as ufe}from"./semver-Tw0AFar5.js";import{n as dfe,r as ffe,t as pfe}from"./stdio-D4cT86R0.js";import{t as ru}from"./useKeybinding-FsOnjW6T.js";import{c as iu,l as au,t as mfe}from"./common-CMCv4N_v.js";import{r as ou,t as su}from"./subprocessEnv-DV6q6o6w.js";import{c as hfe,t as gfe,u as _fe}from"./src-BlLavFUS.js";import{i as vfe,m as yfe,o as bfe,p as xfe}from"./terminalSetup-BLU99dau.js";import{i as Sfe,t as Cfe}from"./src-x7u_sB6m.js";import{a as wfe,d as Tfe,l as Efe,s as Dfe,t as Ofe,u as kfe}from"./referral-D26orIXE.js";import{n as Afe}from"./computerUseLock-BjoDJH2h.js";import{t as jfe}from"./escHotkey-Cyz0yyh1.js";import{i as Mfe}from"./gates-Dyz_t5zJ.js";import{n as Nfe}from"./hostAdapter-CmbGfgNV.js";import{a as Pfe,i as Ffe,n as Ife,r as Lfe,t as Rfe}from"./xdg-CBxMmQux.js";import{a as zfe,n as Bfe,o as Vfe}from"./bridgeConfig-CvKdNJOg.js";import{a as cu,c as lu,i as Hfe,n as Ufe}from"./constants-41VpZw2G.js";import{n as Wfe,t as Gfe}from"./SentryErrorBoundary-CmewX8Dv.js";import{i as uu,r as du}from"./bridgeEnabled-D01faWms.js";import{r as Kfe,t as qfe}from"./TungstenTool-V-Bwqlx3.js";import{a as fu,i as Jfe,n as pu,r as mu,t as Yfe}from"./systemPromptSections-BcN_XBTx.js";import{i as Xfe,n as Zfe,r as Qfe}from"./voiceModeEnabled-BpLBjY2-.js";import{n as $fe,t as epe}from"./worktreeModeEnabled-Db6b_Iy_.js";import{a as tpe,c as npe,i as hu,l as gu,o as rpe,r as _u,s as ipe,u as ape}from"./detection-CQsNad64.js";import{a as ope,i as vu}from"./teammateModeSnapshot-DkkMv2-b.js";import{n as yu,r as bu,t as spe}from"./undercover-j27F8p49.js";import{n as cpe,r as lpe,t as upe}from"./featureCheck-Cm0YNDXO.js";import{a as dpe,n as fpe}from"./prompt-4tea6NJQ.js";import{a as ppe,i as mpe,n as hpe,o as gpe,t as _pe}from"./break-cache-ByJ7U2Ts.js";import{a as vpe,i as ype,n as bpe}from"./types-RJTEOuIt.js";import{i as xpe,n as Spe,r as Cpe}from"./tui-BVc2q4Xv.js";import*as xu from"os";import{homedir as Su,platform as wpe,release as Tpe,tmpdir as Cu,type as Epe,version as Dpe}from"os";import*as wu from"path";import{basename as Tu,delimiter as Ope,dirname as Eu,extname as Du,isAbsolute as Ou,join as Y,normalize as ku,parse as Au,posix as ju,relative as Mu,resolve as Nu,sep as Pu,win32 as Fu}from"path";import{promisify as kpe}from"node:util";import Iu from"node:process";import Lu,{basename as Ape,dirname as jpe,isAbsolute as Mpe,join as Ru,relative as Npe,resolve as zu}from"node:path";import*as Bu from"fs";import{accessSync as Ppe,closeSync as Fpe,constants as Vu,createReadStream as Ipe,fstat as Lpe,fstatSync as Rpe,mkdirSync as zpe,openSync as Bpe,promises as Hu,readFileSync as Uu,readSync as Vpe,rm as Hpe,rmSync as Upe,statSync as Wpe,unlinkSync as Gpe,watch as Kpe,writeFileSync as qpe,writeSync as Wu}from"fs";import*as Gu from"node:child_process";import{execSync as Jpe,spawn as Ype,spawnSync as Xpe}from"node:child_process";import*as Ku from"node:fs";import{chmodSync as Zpe,closeSync as Qpe,existsSync as qu,mkdirSync as Ju,mkdtempSync as $pe,openSync as eme,readFileSync as Yu,readSync as tme,readdirSync as Xu,renameSync as Zu,rmSync as Qu,statSync as nme,unlinkSync as rme,writeFileSync as $u}from"node:fs";import{EOL as ed,homedir as td,tmpdir as nd}from"node:os";import{createCipheriv as ime,createDecipheriv as ame,createHash as ome,randomBytes as rd,randomUUID as sme,scryptSync as cme}from"node:crypto";import{createHash as id,randomBytes as ad,randomUUID as od}from"crypto";import*as sd from"fs/promises";import{access as cd,appendFile as ld,chmod as ud,copyFile as dd,link as fd,lstat as lme,mkdir as pd,open as md,readFile as hd,readdir as gd,readlink as _d,realpath as vd,rename as yd,rm as bd,rmdir as ume,stat as xd,symlink as Sd,truncate as dme,unlink as Cd,utimes as fme,writeFile as wd}from"fs/promises";import{isDeepStrictEqual as pme}from"util";import{execFile as mme,execFileSync as Td,spawn as Ed,spawnSync as Dd}from"child_process";import{createServer as Od}from"http";import{fileURLToPath as hme,parse as gme,pathToFileURL as kd}from"url";import _me,{createConnection as vme,isIP as yme}from"net";import{setMaxListeners as bme}from"events";import{PassThrough as xme}from"node:stream";import{request as Sme}from"node:https";import{readFile as Cme,writeFile as wme}from"node:fs/promises";import{Agent as Tme,createServer as Eme,request as Ad}from"node:http";import{lookup as Dme}from"dns";import{URL as jd,fileURLToPath as Ome}from"node:url";import{BlockList as kme,connect as Md,isIP as Nd}from"node:net";import{connect as Ame}from"node:tls";import{text as jme}from"node:stream/consumers";import{join as Pd}from"path/posix";function Fd(){return Jr(`tengu_turtle_carbon`,!0)}function Mme(e){return/\bultrathink\b/i.test(e)}function Nme(e){let t=[],n=e.matchAll(/\bultrathink\b/gi);for(let e of n)e.index!==void 0&&t.push({word:e[0],start:e.index,end:e.index+e[0].length});return t}function Id(e,t=!1){let n=t?Rme:Lme;return n[e%n.length]}function Pme(e){let t=mi(e,`thinking`);if(t!==void 0)return t;if(process.env.USER_TYPE===`ant`&&Jre(e.toLowerCase()))return!0;let n=ni(e),r=ar();return r===`foundry`||r===`firstParty`?!n.includes(`claude-3-`):n.includes(`sonnet-4`)||n.includes(`opus-4`)}function Fme(e){let t=mi(e,`adaptive_thinking`);if(t!==void 0)return t;let n=ni(e);if(n.includes(`opus-4-7`)||n.includes(`opus-4-6`)||n.includes(`sonnet-4-6`))return!0;if(n.includes(`opus`)||n.includes(`sonnet`)||n.includes(`haiku`))return!1;let r=ar();return r===`firstParty`||r===`foundry`}function Ime(){if(process.env.MAX_THINKING_TOKENS)return parseInt(process.env.MAX_THINKING_TOKENS,10)>0;let{settings:e}=dae();return e.alwaysThinkingEnabled!==!1}var Lme,Rme,Ld=n((()=>{wr(),hr(),voe(),Pn(),Gi(),nr(),Lme=[`rainbow_red`,`rainbow_orange`,`rainbow_yellow`,`rainbow_green`,`rainbow_blue`,`rainbow_indigo`,`rainbow_violet`],Rme=[`rainbow_red_shimmer`,`rainbow_orange_shimmer`,`rainbow_yellow_shimmer`,`rainbow_green_shimmer`,`rainbow_blue_shimmer`,`rainbow_indigo_shimmer`,`rainbow_violet_shimmer`]}));function Rd(e){let t=e.toLowerCase();if(x(process.env.CLAUDE_CODE_ALWAYS_ENABLE_EFFORT))return!0;let n=mi(e,`effort`);return n===void 0?ar()===`openai`&&Yn()&&Uie(e)||t.includes(`opus-4-7`)||t.includes(`opus-4-6`)||t.includes(`sonnet-4-6`)||t.includes(`deepseek-v4-pro`)?!0:t.includes(`haiku`)||t.includes(`sonnet`)||t.includes(`opus`)?!1:ar()===`firstParty`:n}function zme(e){let t=mi(e,`max_effort`);return t===void 0?!0:t}function Bme(e){let t=mi(e,`xhigh_effort`);return t===void 0?!0:t}function zd(e){return Ud.includes(e)}function Bd(e){if(e==null||e===``)return;if(typeof e==`number`&&qme(e))return e;let t=String(e).toLowerCase();if(zd(t))return t;let n=parseInt(t,10);if(!isNaN(n)&&qme(n))return n}function Vme(e){if(e===`low`||e===`medium`||e===`high`||e===`xhigh`||e===`max`&&process.env.USER_TYPE===`ant`)return e}function Hme(){return Vme(Qn().effortLevel)}function Ume(e,t,n,r){return n!==void 0||r||e!==t?e:void 0}function Wme(){let e=process.env.CLAUDE_CODE_EFFORT_LEVEL;return e?.toLowerCase()===`unset`||e?.toLowerCase()===`auto`?null:Bd(e)}function Vd(e,t){let n=Wme();if(n===null)return;let r=n??t??Zme(e);return r===`max`&&ar()===`openai`&&Yn()&&Bme(e)?`xhigh`:r}function Gme(e,t){return Hd(Vd(e,t)??`high`)}function Kme(e,t){if(t===void 0)return``;let n=Vd(e,t);return n===void 0?``:` with ${Hd(n)} effort`}function qme(e){return Number.isInteger(e)}function Hd(e){return typeof e==`string`?zd(e)?e:`high`:process.env.USER_TYPE===`ant`&&typeof e==`number`?e<=50?`low`:e<=85?`medium`:e<=100?`high`:`max`:`high`}function Jme(e){switch(e){case`low`:return`Quick, straightforward implementation with minimal overhead`;case`medium`:return`Balanced approach with standard implementation and testing`;case`high`:return`Comprehensive implementation with extensive testing and documentation`;case`xhigh`:return`Extended reasoning beyond high, short of max`;case`max`:return`Maximum capability with deepest reasoning`}}function Yme(e){return process.env.USER_TYPE===`ant`&&typeof e==`number`?`[ANT-ONLY] Numeric effort value of ${e}`:typeof e==`string`?Jme(e):`Balanced approach with standard implementation and testing`}function Xme(){let e=Jr(`tengu_grey_step2`,Wd);return{...Wd,...e}}function Zme(e){if(process.env.USER_TYPE===`ant`){let t=Zne();if(t?.defaultModel!==void 0&&e.toLowerCase()===t.defaultModel.toLowerCase()&&t?.defaultModelEffortLevel)return t.defaultModelEffortLevel;let n=Jre(e);if(n){if(n.defaultEffortLevel)return n.defaultEffortLevel;if(n.defaultEffortValue!==void 0)return n.defaultEffortValue}return}if(ar()===`openai`&&Yn()&&Uie(e))return`medium`;if((e.toLowerCase().includes(`opus-4-7`)||e.toLowerCase().includes(`opus-4-6`))&&(Boe()||Xme().enabled&&(xae()||Poe())))return`high`;if(Fd()&&Rd(e))return`medium`}var Ud,Wd,Gd=n((()=>{Ld(),Gi(),Wi(),wr(),Pn(),voe(),y(),nr(),ioe(),Ud=[`low`,`medium`,`high`,`xhigh`,`max`],Wd={enabled:!0,dialogTitle:`We recommend medium effort for Opus`,dialogDescription:`Effort determines how long Claude thinks for when completing your task. We recommend medium effort for most tasks to balance speed and intelligence and maximize rate limits. Use ultrathink to trigger high effort when needed.`}})),Kd=a((e=>{var t=Symbol.for(`yaml.alias`),n=Symbol.for(`yaml.document`),r=Symbol.for(`yaml.map`),i=Symbol.for(`yaml.pair`),a=Symbol.for(`yaml.scalar`),o=Symbol.for(`yaml.seq`),s=Symbol.for(`yaml.node.type`),c=e=>!!e&&typeof e==`object`&&e[s]===t,l=e=>!!e&&typeof e==`object`&&e[s]===n,u=e=>!!e&&typeof e==`object`&&e[s]===r,d=e=>!!e&&typeof e==`object`&&e[s]===i,f=e=>!!e&&typeof e==`object`&&e[s]===a,p=e=>!!e&&typeof e==`object`&&e[s]===o;function m(e){if(e&&typeof e==`object`)switch(e[s]){case r:case o:return!0}return!1}function h(e){if(e&&typeof e==`object`)switch(e[s]){case t:case r:case a:case o:return!0}return!1}e.ALIAS=t,e.DOC=n,e.MAP=r,e.NODE_TYPE=s,e.PAIR=i,e.SCALAR=a,e.SEQ=o,e.hasAnchor=e=>(f(e)||m(e))&&!!e.anchor,e.isAlias=c,e.isCollection=m,e.isDocument=l,e.isMap=u,e.isNode=h,e.isPair=d,e.isScalar=f,e.isSeq=p})),qd=a((e=>{var t=Kd(),n=Symbol(`break visit`),r=Symbol(`skip children`),i=Symbol(`remove node`);function a(e,n){let r=l(n);t.isDocument(e)?o(null,e.contents,r,Object.freeze([e]))===i&&(e.contents=null):o(null,e,r,Object.freeze([]))}a.BREAK=n,a.SKIP=r,a.REMOVE=i;function o(e,r,a,s){let c=u(e,r,a,s);if(t.isNode(c)||t.isPair(c))return d(e,s,c),o(e,c,a,s);if(typeof c!=`symbol`){if(t.isCollection(r)){s=Object.freeze(s.concat(r));for(let e=0;e<r.items.length;++e){let t=o(e,r.items[e],a,s);if(typeof t==`number`)e=t-1;else if(t===n)return n;else t===i&&(r.items.splice(e,1),--e)}}else if(t.isPair(r)){s=Object.freeze(s.concat(r));let e=o(`key`,r.key,a,s);if(e===n)return n;e===i&&(r.key=null);let t=o(`value`,r.value,a,s);if(t===n)return n;t===i&&(r.value=null)}}return c}async function s(e,n){let r=l(n);t.isDocument(e)?await c(null,e.contents,r,Object.freeze([e]))===i&&(e.contents=null):await c(null,e,r,Object.freeze([]))}s.BREAK=n,s.SKIP=r,s.REMOVE=i;async function c(e,r,a,o){let s=await u(e,r,a,o);if(t.isNode(s)||t.isPair(s))return d(e,o,s),c(e,s,a,o);if(typeof s!=`symbol`){if(t.isCollection(r)){o=Object.freeze(o.concat(r));for(let e=0;e<r.items.length;++e){let t=await c(e,r.items[e],a,o);if(typeof t==`number`)e=t-1;else if(t===n)return n;else t===i&&(r.items.splice(e,1),--e)}}else if(t.isPair(r)){o=Object.freeze(o.concat(r));let e=await c(`key`,r.key,a,o);if(e===n)return n;e===i&&(r.key=null);let t=await c(`value`,r.value,a,o);if(t===n)return n;t===i&&(r.value=null)}}return s}function l(e){return typeof e==`object`&&(e.Collection||e.Node||e.Value)?Object.assign({Alias:e.Node,Map:e.Node,Scalar:e.Node,Seq:e.Node},e.Value&&{Map:e.Value,Scalar:e.Value,Seq:e.Value},e.Collection&&{Map:e.Collection,Seq:e.Collection},e):e}function u(e,n,r,i){if(typeof r==`function`)return r(e,n,i);if(t.isMap(n))return r.Map?.(e,n,i);if(t.isSeq(n))return r.Seq?.(e,n,i);if(t.isPair(n))return r.Pair?.(e,n,i);if(t.isScalar(n))return r.Scalar?.(e,n,i);if(t.isAlias(n))return r.Alias?.(e,n,i)}function d(e,n,r){let i=n[n.length-1];if(t.isCollection(i))i.items[e]=r;else if(t.isPair(i))e===`key`?i.key=r:i.value=r;else if(t.isDocument(i))i.contents=r;else{let e=t.isAlias(i)?`alias`:`scalar`;throw Error(`Cannot replace node with ${e} parent`)}}e.visit=a,e.visitAsync=s})),Qme=a((e=>{var t=Kd(),n=qd(),r={"!":`%21`,",":`%2C`,"[":`%5B`,"]":`%5D`,"{":`%7B`,"}":`%7D`},i=e=>e.replace(/[!,[\]{}]/g,e=>r[e]),a=class e{constructor(t,n){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},e.defaultYaml,t),this.tags=Object.assign({},e.defaultTags,n)}clone(){let t=new e(this.yaml,this.tags);return t.docStart=this.docStart,t}atDocument(){let t=new e(this.yaml,this.tags);switch(this.yaml.version){case`1.1`:this.atNextDocument=!0;break;case`1.2`:this.atNextDocument=!1,this.yaml={explicit:e.defaultYaml.explicit,version:`1.2`},this.tags=Object.assign({},e.defaultTags);break}return t}add(t,n){this.atNextDocument&&(this.yaml={explicit:e.defaultYaml.explicit,version:`1.1`},this.tags=Object.assign({},e.defaultTags),this.atNextDocument=!1);let r=t.trim().split(/[ \t]+/),i=r.shift();switch(i){case`%TAG`:{if(r.length!==2&&(n(0,`%TAG directive should contain exactly two parts`),r.length<2))return!1;let[e,t]=r;return this.tags[e]=t,!0}case`%YAML`:{if(this.yaml.explicit=!0,r.length!==1)return n(0,`%YAML directive should contain exactly one part`),!1;let[e]=r;if(e===`1.1`||e===`1.2`)return this.yaml.version=e,!0;{let t=/^\d+\.\d+$/.test(e);return n(6,`Unsupported YAML version ${e}`,t),!1}}default:return n(0,`Unknown directive ${i}`,!0),!1}}tagName(e,t){if(e===`!`)return`!`;if(e[0]!==`!`)return t(`Not a valid tag: ${e}`),null;if(e[1]===`<`){let n=e.slice(2,-1);return n===`!`||n===`!!`?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==`>`&&t(`Verbatim tags must end with a >`),n)}let[,n,r]=e.match(/^(.*!)([^!]*)$/s);r||t(`The ${e} tag has no suffix`);let i=this.tags[n];if(i)try{return i+decodeURIComponent(r)}catch(e){return t(String(e)),null}return n===`!`?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,n]of Object.entries(this.tags))if(e.startsWith(n))return t+i(e.substring(n.length));return e[0]===`!`?e:`!<${e}>`}toString(e){let r=this.yaml.explicit?[`%YAML ${this.yaml.version||`1.2`}`]:[],i=Object.entries(this.tags),a;if(e&&i.length>0&&t.isNode(e.contents)){let r={};n.visit(e.contents,(e,n)=>{t.isNode(n)&&n.tag&&(r[n.tag]=!0)}),a=Object.keys(r)}else a=[];for(let[t,n]of i)t===`!!`&&n===`tag:yaml.org,2002:`||(!e||a.some(e=>e.startsWith(n)))&&r.push(`%TAG ${t} ${n}`);return r.join(`
|
|
2
2
|
`)}};a.defaultYaml={explicit:!1,version:`1.2`},a.defaultTags={"!!":`tag:yaml.org,2002:`},e.Directives=a})),Jd=a((e=>{var t=Kd(),n=qd();function r(e){if(/[\x00-\x19\s,[\]{}]/.test(e)){let t=`Anchor must not contain whitespace or control characters: ${JSON.stringify(e)}`;throw Error(t)}return!0}function i(e){let t=new Set;return n.visit(e,{Value(e,n){n.anchor&&t.add(n.anchor)}}),t}function a(e,t){for(let n=1;;++n){let r=`${e}${n}`;if(!t.has(r))return r}}function o(e,n){let r=[],o=new Map,s=null;return{onAnchor:t=>{r.push(t),s??(s=i(e));let o=a(n,s);return s.add(o),o},setAnchors:()=>{for(let e of r){let n=o.get(e);if(typeof n==`object`&&n.anchor&&(t.isScalar(n.node)||t.isCollection(n.node)))n.node.anchor=n.anchor;else{let t=Error(`Failed to resolve repeated object (this should not happen)`);throw t.source=e,t}}},sourceObjects:o}}e.anchorIsValid=r,e.anchorNames=i,e.createNodeAnchors=o,e.findNewAnchor=a})),$me=a((e=>{function t(e,n,r,i){if(i&&typeof i==`object`)if(Array.isArray(i))for(let n=0,r=i.length;n<r;++n){let r=i[n],a=t(e,i,String(n),r);a===void 0?delete i[n]:a!==r&&(i[n]=a)}else if(i instanceof Map)for(let n of Array.from(i.keys())){let r=i.get(n),a=t(e,i,n,r);a===void 0?i.delete(n):a!==r&&i.set(n,a)}else if(i instanceof Set)for(let n of Array.from(i)){let r=t(e,i,n,n);r===void 0?i.delete(n):r!==n&&(i.delete(n),i.add(r))}else for(let[n,r]of Object.entries(i)){let a=t(e,i,n,r);a===void 0?delete i[n]:a!==r&&(i[n]=a)}return e.call(n,r,i)}e.applyReviver=t})),Yd=a((e=>{var t=Kd();function n(e,r,i){if(Array.isArray(e))return e.map((e,t)=>n(e,String(t),i));if(e&&typeof e.toJSON==`function`){if(!i||!t.hasAnchor(e))return e.toJSON(r,i);let n={aliasCount:0,count:1,res:void 0};i.anchors.set(e,n),i.onCreate=e=>{n.res=e,delete i.onCreate};let a=e.toJSON(r,i);return i.onCreate&&i.onCreate(a),a}return typeof e==`bigint`&&!i?.keep?Number(e):e}e.toJS=n})),Xd=a((e=>{var t=$me(),n=Kd(),r=Yd();e.NodeBase=class{constructor(e){Object.defineProperty(this,n.NODE_TYPE,{value:e})}clone(){let e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(e.range=this.range.slice()),e}toJS(e,{mapAsMap:i,maxAliasCount:a,onAnchor:o,reviver:s}={}){if(!n.isDocument(e))throw TypeError(`A document argument is required`);let c={anchors:new Map,doc:e,keep:!0,mapAsMap:i===!0,mapKeyWarned:!1,maxAliasCount:typeof a==`number`?a:100},l=r.toJS(this,``,c);if(typeof o==`function`)for(let{count:e,res:t}of c.anchors.values())o(t,e);return typeof s==`function`?t.applyReviver(s,{"":l},``,l):l}}})),Zd=a((e=>{var t=Jd(),n=qd(),r=Kd(),i=Xd(),a=Yd(),o=class extends i.NodeBase{constructor(e){super(r.ALIAS),this.source=e,Object.defineProperty(this,`tag`,{set(){throw Error(`Alias nodes cannot have tags`)}})}resolve(e,t){let i;t?.aliasResolveCache?i=t.aliasResolveCache:(i=[],n.visit(e,{Node:(e,t)=>{(r.isAlias(t)||r.hasAnchor(t))&&i.push(t)}}),t&&(t.aliasResolveCache=i));let a;for(let e of i){if(e===this)break;e.anchor===this.source&&(a=e)}return a}toJSON(e,t){if(!t)return{source:this.source};let{anchors:n,doc:r,maxAliasCount:i}=t,o=this.resolve(r,t);if(!o){let e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw ReferenceError(e)}let c=n.get(o);if(c||(a.toJS(o,null,t),c=n.get(o)),c?.res===void 0)throw ReferenceError(`This should not happen: Alias anchor was not resolved?`);if(i>=0&&(c.count+=1,c.aliasCount===0&&(c.aliasCount=s(r,o,n)),c.count*c.aliasCount>i))throw ReferenceError(`Excessive alias count indicates a resource exhaustion attack`);return c.res}toString(e,n,r){let i=`*${this.source}`;if(e){if(t.anchorIsValid(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw Error(e)}if(e.implicitKey)return`${i} `}return i}};function s(e,t,n){if(r.isAlias(t)){let r=t.resolve(e),i=n&&r&&n.get(r);return i?i.count*i.aliasCount:0}else if(r.isCollection(t)){let r=0;for(let i of t.items){let t=s(e,i,n);t>r&&(r=t)}return r}else if(r.isPair(t)){let r=s(e,t.key,n),i=s(e,t.value,n);return Math.max(r,i)}return 1}e.Alias=o})),Qd=a((e=>{var t=Kd(),n=Xd(),r=Yd(),i=e=>!e||typeof e!=`function`&&typeof e!=`object`,a=class extends n.NodeBase{constructor(e){super(t.SCALAR),this.value=e}toJSON(e,t){return t?.keep?this.value:r.toJS(this.value,e,t)}toString(){return String(this.value)}};a.BLOCK_FOLDED=`BLOCK_FOLDED`,a.BLOCK_LITERAL=`BLOCK_LITERAL`,a.PLAIN=`PLAIN`,a.QUOTE_DOUBLE=`QUOTE_DOUBLE`,a.QUOTE_SINGLE=`QUOTE_SINGLE`,e.Scalar=a,e.isScalarValue=i})),$d=a((e=>{var t=Zd(),n=Kd(),r=Qd(),i=`tag:yaml.org,2002:`;function a(e,t,n){if(t){let e=n.filter(e=>e.tag===t),r=e.find(e=>!e.format)??e[0];if(!r)throw Error(`Tag ${t} not found`);return r}return n.find(t=>t.identify?.(e)&&!t.format)}function o(e,o,s){if(n.isDocument(e)&&(e=e.contents),n.isNode(e))return e;if(n.isPair(e)){let t=s.schema[n.MAP].createNode?.(s.schema,null,s);return t.items.push(e),t}(e instanceof String||e instanceof Number||e instanceof Boolean||typeof BigInt<`u`&&e instanceof BigInt)&&(e=e.valueOf());let{aliasDuplicateObjects:c,onAnchor:l,onTagObj:u,schema:d,sourceObjects:f}=s,p;if(c&&e&&typeof e==`object`){if(p=f.get(e),p)return p.anchor??(p.anchor=l(e)),new t.Alias(p.anchor);p={anchor:null,node:null},f.set(e,p)}o?.startsWith(`!!`)&&(o=i+o.slice(2));let m=a(e,o,d.tags);if(!m){if(e&&typeof e.toJSON==`function`&&(e=e.toJSON()),!e||typeof e!=`object`){let t=new r.Scalar(e);return p&&(p.node=t),t}m=e instanceof Map?d[n.MAP]:Symbol.iterator in Object(e)?d[n.SEQ]:d[n.MAP]}u&&(u(m),delete s.onTagObj);let h=m?.createNode?m.createNode(s.schema,e,s):typeof m?.nodeClass?.from==`function`?m.nodeClass.from(s.schema,e,s):new r.Scalar(e);return o?h.tag=o:m.default||(h.tag=m.tag),p&&(p.node=h),h}e.createNode=o})),ef=a((e=>{var t=$d(),n=Kd(),r=Xd();function i(e,n,r){let i=r;for(let e=n.length-1;e>=0;--e){let t=n[e];if(typeof t==`number`&&Number.isInteger(t)&&t>=0){let e=[];e[t]=i,i=e}else i=new Map([[t,i]])}return t.createNode(i,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw Error(`This should not happen, please report a bug.`)},schema:e,sourceObjects:new Map})}var a=e=>e==null||typeof e==`object`&&!!e[Symbol.iterator]().next().done;e.Collection=class extends r.NodeBase{constructor(e,t){super(e),Object.defineProperty(this,`schema`,{value:t,configurable:!0,enumerable:!1,writable:!0})}clone(e){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(t.schema=e),t.items=t.items.map(t=>n.isNode(t)||n.isPair(t)?t.clone(e):t),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(a(e))this.add(t);else{let[r,...a]=e,o=this.get(r,!0);if(n.isCollection(o))o.addIn(a,t);else if(o===void 0&&this.schema)this.set(r,i(this.schema,a,t));else throw Error(`Expected YAML collection at ${r}. Remaining path: ${a}`)}}deleteIn(e){let[t,...r]=e;if(r.length===0)return this.delete(t);let i=this.get(t,!0);if(n.isCollection(i))return i.deleteIn(r);throw Error(`Expected YAML collection at ${t}. Remaining path: ${r}`)}getIn(e,t){let[r,...i]=e,a=this.get(r,!0);return i.length===0?!t&&n.isScalar(a)?a.value:a:n.isCollection(a)?a.getIn(i,t):void 0}hasAllNullValues(e){return this.items.every(t=>{if(!n.isPair(t))return!1;let r=t.value;return r==null||e&&n.isScalar(r)&&r.value==null&&!r.commentBefore&&!r.comment&&!r.tag})}hasIn(e){let[t,...r]=e;if(r.length===0)return this.has(t);let i=this.get(t,!0);return n.isCollection(i)?i.hasIn(r):!1}setIn(e,t){let[r,...a]=e;if(a.length===0)this.set(r,t);else{let e=this.get(r,!0);if(n.isCollection(e))e.setIn(a,t);else if(e===void 0&&this.schema)this.set(r,i(this.schema,a,t));else throw Error(`Expected YAML collection at ${r}. Remaining path: ${a}`)}}},e.collectionFromPath=i,e.isEmptyPath=a})),tf=a((e=>{var t=e=>e.replace(/^(?!$)(?: $)?/gm,`#`);function n(e,t){return/^\n+$/.test(e)?e.substring(1):t?e.replace(/^(?! *$)/gm,t):e}e.indentComment=n,e.lineComment=(e,t,r)=>e.endsWith(`
|
|
3
3
|
`)?n(r,t):r.includes(`
|
|
4
4
|
`)?`
|
|
@@ -114,7 +114,7 @@ $&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,`$1$2`).replace(/\
|
|
|
114
114
|
`)+1;for(;e!==0;)this.onNewLine(this.offset+e),e=this.source.indexOf(`
|
|
115
115
|
`,e)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:return this.flowScalar(this.type);case`block-scalar-header`:return{type:`block-scalar`,offset:this.offset,indent:this.indent,props:[this.sourceToken],source:``};case`flow-map-start`:case`flow-seq-start`:return{type:`flow-collection`,offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case`seq-item-ind`:return{type:`block-seq`,offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case`explicit-key-ind`:{this.onKeyLine=!0;let t=l(c(e));return t.push(this.sourceToken),{type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:t,explicitKey:!0}]}}case`map-value-ind`:{this.onKeyLine=!0;let t=l(c(e));return{type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:t,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){return this.type!==`comment`||this.indent<=t?!1:e.every(e=>e.type===`newline`||e.type===`space`)}*documentEnd(e){this.type!==`doc-mode`&&(e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type===`newline`&&(yield*this.pop()))}*lineEnd(e){switch(this.type){case`comma`:case`doc-start`:case`doc-end`:case`flow-seq-end`:case`flow-map-end`:case`map-value-ind`:yield*this.pop(),yield*this.step();break;case`newline`:this.onKeyLine=!1;default:e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type===`newline`&&(yield*this.pop())}}}})),Bhe=a((e=>{var t=Nhe(),n=hf(),r=gf(),i=nhe(),a=Kd(),o=Rhe(),s=zhe();function c(e){let t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new o.LineCounter||null,prettyErrors:t}}function l(e,n={}){let{lineCounter:i,prettyErrors:a}=c(n),o=new s.Parser(i?.addNewLine),l=new t.Composer(n),u=Array.from(l.compose(o.parse(e)));if(a&&i)for(let t of u)t.errors.forEach(r.prettifyError(e,i)),t.warnings.forEach(r.prettifyError(e,i));return u.length>0?u:Object.assign([],{empty:!0},l.streamInfo())}function u(e,n={}){let{lineCounter:i,prettyErrors:a}=c(n),o=new s.Parser(i?.addNewLine),l=new t.Composer(n),u=null;for(let t of l.compose(o.parse(e),!0,e.length))if(!u)u=t;else if(u.options.logLevel!==`silent`){u.errors.push(new r.YAMLParseError(t.range.slice(0,2),`MULTIPLE_DOCS`,`Source contains multiple documents; please use YAML.parseAllDocuments()`));break}return a&&i&&(u.errors.forEach(r.prettifyError(e,i)),u.warnings.forEach(r.prettifyError(e,i))),u}function d(e,t,n){let r;typeof t==`function`?r=t:n===void 0&&t&&typeof t==`object`&&(n=t);let a=u(e,n);if(!a)return null;if(a.warnings.forEach(e=>i.warn(a.options.logLevel,e)),a.errors.length>0){if(a.options.logLevel!==`silent`)throw a.errors[0];a.errors=[]}return a.toJS(Object.assign({reviver:r},n))}function f(e,t,r){let i=null;if(typeof t==`function`||Array.isArray(t)?i=t:r===void 0&&t&&(r=t),typeof r==`string`&&(r=r.length),typeof r==`number`){let e=Math.round(r);r=e<1?void 0:e>8?{indent:8}:{indent:e}}if(e===void 0){let{keepUndefined:e}=r??t??{};if(!e)return}return a.isDocument(e)&&!i?e.toString(r):new n.Document(e,i,r).toString(r)}e.parse=d,e.parseAllDocuments=l,e.parseDocument=u,e.stringify=f})),Vhe=a((e=>{var t=Nhe(),n=hf(),r=yhe(),i=gf(),a=Zd(),o=Kd(),s=of(),c=Qd(),l=sf(),u=lf(),d=bf(),f=Lhe(),p=Rhe(),m=zhe(),h=Bhe(),g=qd();e.Composer=t.Composer,e.Document=n.Document,e.Schema=r.Schema,e.YAMLError=i.YAMLError,e.YAMLParseError=i.YAMLParseError,e.YAMLWarning=i.YAMLWarning,e.Alias=a.Alias,e.isAlias=o.isAlias,e.isCollection=o.isCollection,e.isDocument=o.isDocument,e.isMap=o.isMap,e.isNode=o.isNode,e.isPair=o.isPair,e.isScalar=o.isScalar,e.isSeq=o.isSeq,e.Pair=s.Pair,e.Scalar=c.Scalar,e.YAMLMap=l.YAMLMap,e.YAMLSeq=u.YAMLSeq,e.CST=d,e.Lexer=f.Lexer,e.LineCounter=p.LineCounter,e.Parser=m.Parser,e.parse=h.parse,e.parseAllDocuments=h.parseAllDocuments,e.parseDocument=h.parseDocument,e.stringify=h.stringify,e.visit=g.visit,e.visitAsync=g.visitAsync}));function xf(e){return typeof Bun<`u`?Bun.YAML.parse(e):Vhe().parse(e)}var Hhe=n((()=>{}));function Uhe(e){let t=e.split(`
|
|
116
116
|
`),n=[];for(let e of t){let t=e.match(/^([a-zA-Z_-]+):\s+(.+)$/);if(t){let[,r,i]=t;if(!r||!i){n.push(e);continue}if(i.startsWith(`"`)&&i.endsWith(`"`)||i.startsWith(`'`)&&i.endsWith(`'`)){n.push(e);continue}if(qhe.test(i)){let e=i.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`);n.push(`${r}: "${e}"`);continue}}n.push(e)}return n.join(`
|
|
117
|
-
`)}function Sf(e,t){let n=e.match(Ef);if(!n)return{frontmatter:{},content:e};let r=n[1]||``,i=e.slice(n[0].length),a={};try{let e=xf(r);e&&typeof e==`object`&&!Array.isArray(e)&&(a=e)}catch{try{let e=xf(Uhe(r));e&&typeof e==`object`&&!Array.isArray(e)&&(a=e)}catch(e){U(`Failed to parse YAML frontmatter${t?` in ${t}`:``}: ${e instanceof Error?e.message:e}`,{level:`warn`})}}return{frontmatter:a,content:i}}function Cf(e){if(Array.isArray(e))return e.flatMap(Cf);if(typeof e!=`string`)return[];let t=[],n=``,r=0;for(let i=0;i<e.length;i++){let a=e[i];if(a===`{`)r++,n+=a;else if(a===`}`)r--,n+=a;else if(a===`,`&&r===0){let e=n.trim();e&&t.push(e),n=``}else n+=a}let i=n.trim();return i&&t.push(i),t.filter(e=>e.length>0).flatMap(e=>Whe(e))}function Whe(e){let t=e.match(/^([^{]*)\{([^}]+)\}(.*)$/);if(!t)return[e];let n=t[1]||``,r=t[2]||``,i=t[3]||``,a=r.split(`,`).map(e=>e.trim()),o=[];for(let e of a){let t=Whe(n+e+i);o.push(...t)}return o}function Ghe(e){if(e==null)return;let t=typeof e==`number`?e:parseInt(String(e),10);if(Number.isInteger(t)&&t>0)return t}function wf(e,t,n){return e==null?null:typeof e==`string`?e.trim()||null:typeof e==`number`||typeof e==`boolean`?String(e):(U(`Description invalid for ${n?`${n}:${t}`:t??`unknown`} - omitting`,{level:`warn`}),null)}function Tf(e){return e===!0||e===`true`}function Khe(e,t){if(e==null)return;let n=String(e).trim().toLowerCase();if(n!==``){if(Df.includes(n))return n;U(`Frontmatter 'shell: ${e}' in ${t} is not recognized. Valid values: ${Df.join(`, `)}. Falling back to bash.`,{level:`warn`})}}var qhe,Ef,Df,Of=n((()=>{W(),Hhe(),qhe=/[{}[\]*&#!|>%@`]|: /,Ef=/^---\s*\n([\s\S]*?)---\s*\n?/,Df=[`bash`,`powershell`]}));function Jhe(e){return ar()===`vertex`?kf:e?.isNonInteractive?e.hasAppendSystemPrompt?Af:jf:kf}function Yhe(){return h(process.env.CLAUDE_CODE_ATTRIBUTION_HEADER)?!1:Jr(`tengu_attribution_header`,!0)}function Xhe(e){if(!Yhe())return``;let t=`2.6.
|
|
117
|
+
`)}function Sf(e,t){let n=e.match(Ef);if(!n)return{frontmatter:{},content:e};let r=n[1]||``,i=e.slice(n[0].length),a={};try{let e=xf(r);e&&typeof e==`object`&&!Array.isArray(e)&&(a=e)}catch{try{let e=xf(Uhe(r));e&&typeof e==`object`&&!Array.isArray(e)&&(a=e)}catch(e){U(`Failed to parse YAML frontmatter${t?` in ${t}`:``}: ${e instanceof Error?e.message:e}`,{level:`warn`})}}return{frontmatter:a,content:i}}function Cf(e){if(Array.isArray(e))return e.flatMap(Cf);if(typeof e!=`string`)return[];let t=[],n=``,r=0;for(let i=0;i<e.length;i++){let a=e[i];if(a===`{`)r++,n+=a;else if(a===`}`)r--,n+=a;else if(a===`,`&&r===0){let e=n.trim();e&&t.push(e),n=``}else n+=a}let i=n.trim();return i&&t.push(i),t.filter(e=>e.length>0).flatMap(e=>Whe(e))}function Whe(e){let t=e.match(/^([^{]*)\{([^}]+)\}(.*)$/);if(!t)return[e];let n=t[1]||``,r=t[2]||``,i=t[3]||``,a=r.split(`,`).map(e=>e.trim()),o=[];for(let e of a){let t=Whe(n+e+i);o.push(...t)}return o}function Ghe(e){if(e==null)return;let t=typeof e==`number`?e:parseInt(String(e),10);if(Number.isInteger(t)&&t>0)return t}function wf(e,t,n){return e==null?null:typeof e==`string`?e.trim()||null:typeof e==`number`||typeof e==`boolean`?String(e):(U(`Description invalid for ${n?`${n}:${t}`:t??`unknown`} - omitting`,{level:`warn`}),null)}function Tf(e){return e===!0||e===`true`}function Khe(e,t){if(e==null)return;let n=String(e).trim().toLowerCase();if(n!==``){if(Df.includes(n))return n;U(`Frontmatter 'shell: ${e}' in ${t} is not recognized. Valid values: ${Df.join(`, `)}. Falling back to bash.`,{level:`warn`})}}var qhe,Ef,Df,Of=n((()=>{W(),Hhe(),qhe=/[{}[\]*&#!|>%@`]|: /,Ef=/^---\s*\n([\s\S]*?)---\s*\n?/,Df=[`bash`,`powershell`]}));function Jhe(e){return ar()===`vertex`?kf:e?.isNonInteractive?e.hasAppendSystemPrompt?Af:jf:kf}function Yhe(){return h(process.env.CLAUDE_CODE_ATTRIBUTION_HEADER)?!1:Jr(`tengu_attribution_header`,!0)}function Xhe(e){if(!Yhe())return``;let t=`2.6.11.${e}`,n=process.env.CLAUDE_CODE_ENTRYPOINT??`unknown`,r=dre(),i=`x-anthropic-billing-header: cc_version=${t}; cc_entrypoint=${n};${r?` cc_workload=${r};`:``}`;return U(`attribution header ${i}`),i}var kf,Af,jf,Zhe,Mf,Nf=n((()=>{wr(),W(),y(),Pn(),eie(),kf=`You are Claude Code, Anthropic's official CLI for Claude.`,Af=`You are Claude Code, Anthropic's official CLI for Claude, running within the Claude Agent SDK.`,jf=`You are a Claude agent, built on Anthropic's Claude Agent SDK.`,Zhe=[kf,Af,jf],Mf=new Set(Zhe)})),Pf,Ff=n((()=>{Pf=e=>!1})),Qhe=a(((e,n)=>{var r=t(`child_process`),i=r.spawn,a=r.exec;n.exports=function(e,t,n){if(typeof t==`function`&&n===void 0&&(n=t,t=void 0),e=parseInt(e),Number.isNaN(e)){if(n)return n(Error(`pid must be a number`));throw Error(`pid must be a number`)}var r={},s={};switch(r[e]=[],s[e]=1,process.platform){case`win32`:a(`taskkill /pid `+e+` /T /F`,n);break;case`darwin`:c(e,r,s,function(e){return i(`pgrep`,[`-P`,e])},function(){o(r,t,n)});break;default:c(e,r,s,function(e){return i(`ps`,[`-o`,`pid`,`--no-headers`,`--ppid`,e])},function(){o(r,t,n)});break}};function o(e,t,n){var r={};try{Object.keys(e).forEach(function(n){e[n].forEach(function(e){r[e]||(s(e,t),r[e]=1)}),r[n]||(s(n,t),r[n]=1)})}catch(e){if(n)return n(e);throw e}if(n)return n()}function s(e,t){try{process.kill(parseInt(e,10),t)}catch(e){if(e.code!==`ESRCH`)throw e}}function c(e,t,n,r,i){var a=r(e),o=``;a.stdout.on(`data`,function(e){var e=e.toString(`ascii`);o+=e}),a.on(`close`,function(a){if(delete n[e],a!=0){Object.keys(n).length==0&&i();return}o.match(/\d+/g).forEach(function(a){a=parseInt(a,10),t[e].push(a),t[a]=[],n[a]=1,c(a,t,n,r,i)})})}}));function If(){return h(process.env.CLAUDE_CODE_REPL)?!1:x(process.env.CLAUDE_REPL_MODE)?!0:process.env.USER_TYPE===`ant`&&process.env.CLAUDE_CODE_ENTRYPOINT===`cli`}var Lf,$he,Rf=n((()=>{y(),Qi(),ic(),Ic(),tl(),Wc(),Xc(),mc(),qc(),Lf=`REPL`,$he=new Set([Mc,Oc,fc,zc,lc,ec,Hc,bn])}));function zf(){if(!x(process.env.EMBEDDED_SEARCH_TOOLS))return!1;let e=process.env.CLAUDE_CODE_ENTRYPOINT;return e!==`sdk-ts`&&e!==`sdk-py`&&e!==`sdk-cli`&&e!==`local-agent`}function ege(){return process.execPath}var Bf=n((()=>{y()})),tge,nge=n((()=>{tge={type:`local-jsx`,name:`add-dir`,description:`Add a new working directory`,argumentHint:`<path>`,load:()=>import(`./add-dir-7UeFZkdv.js`)}}));function rge(){return!0}var ige,age=n((()=>{ige={type:`local-jsx`,name:`autofix-pr`,description:`Auto-fix CI failures on a pull request`,argumentHint:`PR_NUMBER | stop | OWNER/REPO#N`,isEnabled:rge,isHidden:!1,bridgeSafe:!0,getBridgeInvocationError:e=>{let t=e.trim();if(!t)return`PR number required, e.g. /autofix-pr 386`;if(!(t===`stop`||t===`off`)&&!/^[1-9]\d{0,9}$/.test(t)&&!/^[\w.-]+\/[\w.-]+#[1-9]\d{0,9}$/.test(t))return`Invalid args. Use /autofix-pr <pr-number> | stop | <owner>/<repo>#<n>`},load:async()=>({call:(await import(`./launchAutofixPr-BMfXGXwN.js`)).callAutofixPr})}})),oge,sge=n((()=>{oge={isEnabled:()=>!1,isHidden:!0,name:`stub`}})),Vf,cge=n((()=>{Vf={type:`local-jsx`,name:`btw`,description:`Ask a quick side question without interrupting the main conversation`,immediate:!0,argumentHint:`<question>`,load:()=>import(`./btw-B8s-X_cm.js`)}})),lge,uge=n((()=>{lge={isEnabled:()=>!1,isHidden:!0,name:`stub`}}));function dge(e,t,n){return kpe(Gu.execFile)(e,t,n)}function fge(e,t,n){return Gu.execFileSync(e,t,n)}function pge(){try{return fge(`git`,[`remote`,`get-url`,`origin`],{stdio:[`ignore`,`pipe`,`ignore`],timeout:3e3}).toString().trim()||null}catch{return null}}function mge(e){let t=e.match(/^git@github\.com:([\w.-]+)\/([\w.-]+?)(?:\.git)?$/);if(t)return{owner:t[1],repo:t[2]};let n=e.match(/^https?:\/\/github\.com\/([\w.-]+)\/([\w.-]+?)(?:\.git)?$/);return n?{owner:n[1],repo:n[2]}:null}function hge(){try{return fge(`gh`,[`--version`],{stdio:[`ignore`,`pipe`,`ignore`],timeout:3e3}),!0}catch{return!1}}async function gge(e,t){try{let n=(await dge(`gh`,[`api`,`repos/${e}/${t}`,`--jq`,`.has_issues`],{timeout:8e3})).stdout.trim();return n===`true`?!0:n===`false`?!1:null}catch{return null}}function _ge(e){let t=Ru(e,`.github`,`ISSUE_TEMPLATE`);if(!qu(t))return null;try{let e=Xu(t).filter(e=>e.endsWith(`.md`)||e.endsWith(`.yml`)||e.endsWith(`.yaml`));if(e.length===0)return null;let n=e.find(e=>e.endsWith(`.md`));return n&&Yu(Ru(t,n),`utf8`).replace(/^---[\s\S]*?---\n?/,``).trim()||null}catch{return null}}function vge(e=5){try{let t=Ft(),n=Gt(),r=n?Ru(n,`${t}.jsonl`):Ru(_(),`projects`,Wo(fn()),`${t}.jsonl`);if(!qu(r))return`(no session log found)`;let i=Yu(r,`utf8`).trim().split(`
|
|
118
118
|
`).filter(Boolean),a=[],o=[];for(let e of i)try{let t=JSON.parse(e),n=t.role;if(Array.isArray(t.content))for(let e of t.content)e.type===`tool_result`&&e.is_error===!0&&typeof e.content==`string`&&o.push(e.content.slice(0,200));if(n===`user`||n===`assistant`){let e=t.content,r=``;typeof e==`string`?r=e.slice(0,200):Array.isArray(e)&&(r=(e.find(e=>e.type===`text`)?.text)?.slice(0,200)??``),r&&a.push(`[${n}] ${r}`)}}catch{}let s=a.slice(-e*2),c=s.length>0?s.join(`
|
|
119
119
|
`):`(no conversation content in log)`;return o.length>0&&(c+=`
|
|
120
120
|
|
|
@@ -364,7 +364,7 @@ Reply with ONLY the suggestion, no quotes or explanation.`,WMe={user_intent:eb,s
|
|
|
364
364
|
`))return!0;let n=t.indexOf(`#`);if(n!==-1&&!(n>0&&t[n-1]===`s`)||/^!/.test(t)||/[/\d$]!/.test(t)||/\d\s*~\s*\d|,\s*~\s*\d|\$\s*~\s*\d/.test(t)||/^,/.test(t)||/,\s*[+-]/.test(t)||/s\\/.test(t)||/\\[|#%@]/.test(t)||/\\\/.*[wW]/.test(t)||/\/[^/]*\s+[wWeE]/.test(t)||/^s\//.test(t)&&!/^s\/[^/]*\/[^/]*\/[^/]*$/.test(t)||/^s./.test(t)&&/[wWeE]$/.test(t)&&!/^s([^\\\n]).*?\1.*?\1[^wWeE]*$/.test(t)||/^[wW]\s*\S+/.test(t)||/^\d+\s*[wW]\s*\S+/.test(t)||/^\$\s*[wW]\s*\S+/.test(t)||/^\/[^/]*\/[IMim]*\s*[wW]\s*\S+/.test(t)||/^\d+,\d+\s*[wW]\s*\S+/.test(t)||/^\d+,\$\s*[wW]\s*\S+/.test(t)||/^\/[^/]*\/[IMim]*,\/[^/]*\/[IMim]*\s*[wW]\s*\S+/.test(t)||/^e/.test(t)||/^\d+\s*e/.test(t)||/^\$\s*e/.test(t)||/^\/[^/]*\/[IMim]*\s*e/.test(t)||/^\d+,\d+\s*e/.test(t)||/^\d+,\$\s*e/.test(t)||/^\/[^/]*\/[IMim]*,\/[^/]*\/[IMim]*\s*e/.test(t))return!0;let r=t.match(/s([^\\\n]).*?\1.*?\1(.*?)$/);if(r){let e=r[2]||``;if(e.includes(`w`)||e.includes(`W`)||e.includes(`e`)||e.includes(`E`))return!0}return!!(t.match(/y([^\\\n])/)&&/[wWeE]/.test(t))}function oPe(e,t){let n=h9(e.command);for(let e of n){let n=e.trim();if(n.split(/\s+/)[0]===`sed`&&!_b(n,{allowFileWrites:t.mode===`acceptEdits`}))return{behavior:`ask`,message:`sed command requires approval (contains potentially dangerous operations)`,decisionReason:{type:`other`,reason:`sed command contains operations that require explicit approval (e.g., write commands, execute commands)`}}}return{behavior:`passthrough`,message:`No dangerous sed operations detected`}}var vb=n((()=>{w9(),dl()}));function sPe(e,t,n){let r=xb[e],i=r(t);for(let t of i){let r=Qm(t.replace(/^['"]|['"]$/g,``)),i=Ou(r)?r:Nu(n,r);if(eh(i))return{behavior:`ask`,message:`Dangerous ${e} operation detected: '${i}'\n\nThis command would remove a critical system directory. This requires explicit approval and cannot be auto-allowed by permission rules.`,decisionReason:{type:`other`,reason:`Dangerous ${e} operation on critical path: ${i}`},suggestions:[]}}return{behavior:`passthrough`,message:`No dangerous removals detected for ${e} command`}}function yb(e){let t=[],n=!1;for(let r of e)n?t.push(r):r===`--`?n=!0:r?.startsWith(`-`)||t.push(r);return t}function cPe(e,t,n=[]){let r=[],i=!1,a=!1;for(let n=0;n<e.length;n++){let o=e[n];if(o!=null){if(!a&&o===`--`){a=!0;continue}if(!a&&o.startsWith(`-`)){let e=o.split(`=`)[0];e&&[`-e`,`--regexp`,`-f`,`--file`].includes(e)&&(i=!0),e&&t.has(e)&&!o.includes(`=`)&&n++;continue}if(!i){i=!0;continue}r.push(o)}}return r.length>0?r:n}function lPe(e,t,n,r,i,a){let o=xb[e],s=o(t),c=a??Cb[e],l=xPe[e];if(l&&!l(t))return{behavior:`ask`,message:`${e} with flags requires manual approval to ensure path safety. For security, Claude Code cannot automatically validate ${e} commands that use flags, as some flags like --target-directory=PATH can bypass path validation.`,decisionReason:{type:`other`,reason:`${e} command with flags requires manual approval`}};if(i&&c!==`read`)return{behavior:`ask`,message:`Commands that change directories and perform write operations require explicit approval to ensure paths are evaluated correctly. For security, Claude Code cannot automatically determine the final working directory when 'cd' is used in compound commands.`,decisionReason:{type:`other`,reason:`Compound command contains cd with write operation - manual approval required to prevent path resolution bypass`}};for(let t of s){let{allowed:i,resolvedPath:a,decisionReason:o}=Mye(t,n,r,c);if(!i){let t=Oye(Array.from(w5(r))),n=o?.type===`other`||o?.type===`safetyCheck`?o.reason:`${e} in '${a}' was blocked. For security, Claude Code may only ${bPe[e]} the allowed working directories for this session: ${t}.`;return o?.type===`rule`?{behavior:`deny`,message:n,decisionReason:o}:{behavior:`ask`,message:n,blockedPath:a,decisionReason:o}}}return{behavior:`passthrough`,message:`Path validation passed for ${e} command`}}function uPe(e,t){return(n,r,i,a)=>{let o=lPe(e,n,r,i,a,t);if(o.behavior===`deny`)return o;if(e===`rm`||e===`rmdir`){let t=sPe(e,n,r);if(t.behavior!==`passthrough`)return t}if(o.behavior===`passthrough`)return o;if(o.behavior===`ask`){let n=t??Cb[e],r=[];if(o.blockedPath)if(n===`read`){let e=zy(Zo(o.blockedPath),`session`);e&&r.push(e)}else r.push({type:`addDirectories`,directories:[Zo(o.blockedPath)],destination:`session`});(n===`write`||n===`create`)&&r.push({type:`setMode`,mode:`acceptEdits`,destination:`session`}),o.suggestions=r}return o}}function dPe(e){let t=cl(e,e=>`$${e}`);if(!t.success)return[];let n=t.tokens,r=[];for(let e of n)typeof e==`string`?r.push(e):typeof e==`object`&&e&&`op`in e&&e.op===`glob`&&`pattern`in e&&r.push(String(e.pattern));return r}function fPe(e,t,n,r){let i=iQ(e),a=dPe(i);if(a.length===0)return{behavior:`passthrough`,message:`Empty command - no paths to validate`};let[o,...s]=a;return!o||!Sb.includes(o)?{behavior:`passthrough`,message:`Command '${o}' is not a path-restricted command`}:uPe(o,o===`sed`&&_b(i)?`read`:void 0)(s,t,n,r)}function pPe(e,t,n,r){let i=yPe(e.argv);if(i.length===0)return{behavior:`passthrough`,message:`Empty command - no paths to validate`};let[a,...o]=i;return!a||!Sb.includes(a)?{behavior:`passthrough`,message:`Command '${a}' is not a path-restricted command`}:uPe(a,a===`sed`&&_b(iQ(e.text))?`read`:void 0)(o,t,n,r)}function mPe(e,t,n,r){if(r&&e.length>0)return{behavior:`ask`,message:`Commands that change directories and write via output redirection require explicit approval to ensure paths are evaluated correctly. For security, Claude Code cannot automatically determine the final working directory when 'cd' is used in compound commands.`,decisionReason:{type:`other`,reason:`Compound command contains cd with output redirection - manual approval required to prevent path resolution bypass`}};for(let{target:r}of e){if(r===`/dev/null`)continue;let{allowed:e,resolvedPath:i,decisionReason:a}=Mye(r,t,n,`create`);if(!e){let e=Oye(Array.from(w5(n))),t=a?.type===`other`||a?.type===`safetyCheck`?a.reason:a?.type===`rule`?`Output redirection to '${i}' was blocked by a deny rule.`:`Output redirection to '${i}' was blocked. For security, Claude Code may only write to files in the allowed working directories for this session: ${e}.`;return a?.type===`rule`?{behavior:`deny`,message:t,decisionReason:a}:{behavior:`ask`,message:t,blockedPath:i,decisionReason:a,suggestions:[{type:`addDirectories`,directories:[Zo(i)],destination:`session`}]}}}return{behavior:`passthrough`,message:`No unsafe redirections found`}}function bb(e,t,n,r,i,a){if(!a&&/>>\s*>\s*\(|>\s*>\s*\(|<\s*\(/.test(e.command))return{behavior:`ask`,message:`Process substitution (>(...) or <(...)) can execute arbitrary commands and requires manual approval`,decisionReason:{type:`other`,reason:`Process substitution requires manual approval`}};let{redirections:o,hasDangerousRedirection:s}=i?hPe(i):g9(e.command);if(s)return{behavior:`ask`,message:`Shell expansion syntax in paths requires manual approval`,decisionReason:{type:`other`,reason:`Shell expansion syntax in paths requires manual approval`}};let c=mPe(o,t,n,r);if(c.behavior!==`passthrough`)return c;if(a)for(let e of a){let i=pPe(e,t,n,r);if(i.behavior===`ask`||i.behavior===`deny`)return i}else{let i=h9(e.command);for(let e of i){let i=fPe(e,t,n,r);if(i.behavior===`ask`||i.behavior===`deny`)return i}}return{behavior:`passthrough`,message:`All path commands validated successfully`}}function hPe(e){let t=[];for(let n of e)switch(n.op){case`>`:case`>|`:case`&>`:t.push({target:n.target,operator:`>`});break;case`>>`:case`&>>`:t.push({target:n.target,operator:`>>`});break;case`>&`:/^\d+$/.test(n.target)||t.push({target:n.target,operator:`>`});break;case`<`:case`<<`:case`<&`:case`<<<`:break}return{redirections:t,hasDangerousRedirection:!1}}function gPe(e){let t=1;for(;t<e.length;){let n=e[t],r=e[t+1];if(n===`--foreground`||n===`--preserve-status`||n===`--verbose`)t++;else if(/^--(?:kill-after|signal)=[A-Za-z0-9_.+-]+$/.test(n))t++;else if((n===`--kill-after`||n===`--signal`)&&r&&wb.test(r))t+=2;else if(n===`--`){t++;break}else if(n.startsWith(`--`))return-1;else if(n===`-v`)t++;else if((n===`-k`||n===`-s`)&&r&&wb.test(r))t+=2;else if(/^-[ks][A-Za-z0-9_.+-]+$/.test(n))t++;else if(n.startsWith(`-`))return-1;else break}return t}function _Pe(e){let t=1;for(;t<e.length;){let n=e[t];if(/^-[ioe]$/.test(n)&&e[t+1])t+=2;else if(/^-[ioe]./.test(n))t++;else if(/^--(input|output|error)=/.test(n))t++;else if(n.startsWith(`-`))return-1;else break}return t>1&&t<e.length?t:-1}function vPe(e){let t=1;for(;t<e.length;){let n=e[t];if(n.includes(`=`)&&!n.startsWith(`-`))t++;else if(n===`-i`||n===`-0`||n===`-v`)t++;else if(n===`-u`&&e[t+1])t+=2;else if(n.startsWith(`-`))return-1;else break}return t<e.length?t:-1}function yPe(e){let t=e;for(;;)if(t[0]===`time`||t[0]===`nohup`)t=t.slice(t[1]===`--`?2:1);else if(t[0]===`timeout`){let e=gPe(t);if(e<0||!t[e]||!/^\d+(?:\.\d+)?[smhd]?$/.test(t[e]))return t;t=t.slice(e+1)}else if(t[0]===`nice`)t=t[1]===`-n`&&t[2]&&/^-?\d+$/.test(t[2])?t.slice(t[3]===`--`?4:3):t[1]&&/^-\d+$/.test(t[1])?t.slice(t[2]===`--`?3:2):t.slice(t[1]===`--`?2:1);else if(t[0]===`stdbuf`){let e=_Pe(t);if(e<0)return t;t=t.slice(e)}else if(t[0]===`env`){let e=vPe(t);if(e<0)return t;t=t.slice(e)}else return t}var xb,Sb,bPe,Cb,xPe,wb,SPe=n((()=>{w9(),dl(),Jo(),N5(),By(),ih(),bQ(),vb(),xb={cd:e=>e.length===0?[Su()]:[e.join(` `)],ls:e=>{let t=yb(e);return t.length>0?t:[`.`]},find:e=>{let t=[],n=new Set([`-newer`,`-anewer`,`-cnewer`,`-mnewer`,`-samefile`,`-path`,`-wholename`,`-ilname`,`-lname`,`-ipath`,`-iwholename`]),r=/^-newer[acmBt][acmtB]$/,i=!1,a=!1;for(let o=0;o<e.length;o++){let s=e[o];if(s){if(a){t.push(s);continue}if(s===`--`){a=!0;continue}if(s.startsWith(`-`)){if([`-H`,`-L`,`-P`].includes(s))continue;if(i=!0,n.has(s)||r.test(s)){let n=e[o+1];n&&(t.push(n),o++)}continue}i||t.push(s)}}return t.length>0?t:[`.`]},mkdir:yb,touch:yb,rm:yb,rmdir:yb,mv:yb,cp:yb,cat:yb,head:yb,tail:yb,sort:yb,uniq:yb,wc:yb,cut:yb,paste:yb,column:yb,file:yb,stat:yb,diff:yb,awk:yb,strings:yb,hexdump:yb,od:yb,base64:yb,nl:yb,sha256sum:yb,sha1sum:yb,md5sum:yb,tr:e=>{let t=e.some(e=>e===`-d`||e===`--delete`||e.startsWith(`-`)&&e.includes(`d`));return yb(e).slice(t?1:2)},grep:e=>{let t=cPe(e,new Set([`-e`,`--regexp`,`-f`,`--file`,`--exclude`,`--include`,`--exclude-dir`,`--include-dir`,`-m`,`--max-count`,`-A`,`--after-context`,`-B`,`--before-context`,`-C`,`--context`]));return t.length===0&&e.some(e=>[`-r`,`-R`,`--recursive`].includes(e))?[`.`]:t},rg:e=>cPe(e,new Set([`-e`,`--regexp`,`-f`,`--file`,`-t`,`--type`,`-T`,`--type-not`,`-g`,`--glob`,`-m`,`--max-count`,`--max-depth`,`-r`,`--replace`,`-A`,`--after-context`,`-B`,`--before-context`,`-C`,`--context`]),[`.`]),sed:e=>{let t=[],n=!1,r=!1,i=!1;for(let a=0;a<e.length;a++){if(n){n=!1;continue}let o=e[a];if(o){if(!i&&o===`--`){i=!0;continue}if(!i&&o.startsWith(`-`)){if([`-f`,`--file`].includes(o)){let i=e[a+1];i&&(t.push(i),n=!0),r=!0}else [`-e`,`--expression`].includes(o)?(n=!0,r=!0):(o.includes(`e`)||o.includes(`f`))&&(r=!0);continue}if(!r){r=!0;continue}t.push(o)}}return t},jq:e=>{let t=[],n=new Set([`-e`,`--expression`,`-f`,`--from-file`,`--arg`,`--argjson`,`--slurpfile`,`--rawfile`,`--args`,`--jsonargs`,`-L`,`--library-path`,`--indent`,`--tab`]),r=!1,i=!1;for(let a=0;a<e.length;a++){let o=e[a];if(o!=null){if(!i&&o===`--`){i=!0;continue}if(!i&&o.startsWith(`-`)){let e=o.split(`=`)[0];e&&[`-e`,`--expression`].includes(e)&&(r=!0),e&&n.has(e)&&!o.includes(`=`)&&a++;continue}if(!r){r=!0;continue}t.push(o)}}return t},git:e=>e.length>=1&&e[0]===`diff`&&e.includes(`--no-index`)?yb(e.slice(1)).slice(0,2):[]},Sb=Object.keys(xb),bPe={cd:`change directories to`,ls:`list files in`,find:`search files in`,mkdir:`create directories in`,touch:`create or modify files in`,rm:`remove files from`,rmdir:`remove directories from`,mv:`move files to/from`,cp:`copy files to/from`,cat:`concatenate files from`,head:`read the beginning of files from`,tail:`read the end of files from`,sort:`sort contents of files from`,uniq:`filter duplicate lines from files in`,wc:`count lines/words/bytes in files from`,cut:`extract columns from files in`,paste:`merge files from`,column:`format files from`,tr:`transform text from files in`,file:`examine file types in`,stat:`read file stats from`,diff:`compare files from`,awk:`process text from files in`,strings:`extract strings from files in`,hexdump:`display hex dump of files from`,od:`display octal dump of files from`,base64:`encode/decode files from`,nl:`number lines in files from`,grep:`search for patterns in files from`,rg:`search for patterns in files from`,sed:`edit files in`,git:`access files with git from`,jq:`process JSON from files in`,sha256sum:`compute SHA-256 checksums for files in`,sha1sum:`compute SHA-1 checksums for files in`,md5sum:`compute MD5 checksums for files in`},Cb={cd:`read`,ls:`read`,find:`read`,mkdir:`create`,touch:`create`,rm:`write`,rmdir:`write`,mv:`write`,cp:`write`,cat:`read`,head:`read`,tail:`read`,sort:`read`,uniq:`read`,wc:`read`,cut:`read`,paste:`read`,column:`read`,tr:`read`,file:`read`,stat:`read`,diff:`read`,awk:`read`,strings:`read`,hexdump:`read`,od:`read`,base64:`read`,nl:`read`,grep:`read`,rg:`read`,sed:`write`,git:`read`,jq:`read`,sha256sum:`read`,sha1sum:`read`,md5sum:`read`},xPe={mv:e=>!e.some(e=>e?.startsWith(`-`)),cp:e=>!e.some(e=>e?.startsWith(`-`))},wb=/^[A-Za-z0-9_.+-]+$/}));function CPe(){let e=NPe;if(No()===`windows`){let{xargs:t,...n}=e;e=n}return process.env.USER_TYPE===`ant`?{...e,...PPe}:e}function wPe(e){let t=cl(e,e=>`$${e}`);if(!t.success)return!1;let n=t.tokens.map(e=>typeof e!=`string`&&(e=e,e.op===`glob`)?e.pattern:e);if(n.some(e=>typeof e!=`string`))return!1;let r=n;if(r.length===0)return!1;let i,a=0,o=CPe();for(let[e]of Object.entries(o)){let t=e.split(` `);if(r.length>=t.length){let n=!0;for(let e=0;e<t.length;e++)if(r[e]!==t[e]){n=!1;break}if(n){i=o[e],a=t.length;break}}}if(!i)return!1;if(r[0]===`git`&&r[1]===`ls-remote`)for(let e=2;e<r.length;e++){let t=r[e];if(t&&!t.startsWith(`-`)&&(t.includes(`://`)||t.includes(`@`)||t.includes(`:`)||t.includes(`$`)))return!1}for(let e=a;e<r.length;e++){let t=r[e];if(t&&(t.includes(`$`)||t.includes(`{`)&&(t.includes(`,`)||t.includes(`..`))))return!1}return!(!Lm(r,a,i,{commandName:r[0],rawCommand:e,xargsTargetCommands:r[0]===`xargs`?FPe:void 0})||i.regex&&!i.regex.test(e)||!i.regex&&/`/.test(e)||!i.regex&&(r[0]===`rg`||r[0]===`grep`)&&/[\n\r]/.test(e)||i.additionalCommandIsDangerousCallback&&i.additionalCommandIsDangerousCallback(e,r.slice(a)))}function TPe(e){return RegExp(`^${e}(?:\\s|$)[^<>()$\`|{}&;\\n\\r]*$`)}function EPe(e){let t=!1,n=!1,r=!1;for(let i=0;i<e.length;i++){let a=e[i];if(r){r=!1;continue}if(a===`\\`&&!t){r=!0;continue}if(a===`'`&&!n){t=!t;continue}if(a===`"`&&!t){n=!n;continue}if(!t){if(a===`$`){let t=e[i+1];if(t&&/[A-Za-z_@*#?!$0-9-]/.test(t))return!0}if(!n&&a&&/[?*[\]]/.test(a))return!0}}return!1}function DPe(e){let t=e.trim();if(t.endsWith(` 2>&1`)&&(t=t.slice(0,-5).trim()),Im(t)||EPe(t))return!1;if(wPe(t))return!0;for(let e of LPe)if(e.test(t))return!(t.includes(`git`)&&/\s-c[\s=]/.test(t)||t.includes(`git`)&&/\s--exec-path[\s=]/.test(t)||t.includes(`git`)&&/\s--config-env[\s=]/.test(t));return!1}function OPe(e){return h9(e).some(e=>cQ(e.trim()))}function kPe(e){let t=e.replace(/^\.?\//,``);return RPe.some(e=>e.test(t))}function APe(e){let t=cl(e,e=>`$${e}`);if(!t.success)return[];let n=t.tokens.filter(e=>typeof e==`string`);if(n.length===0)return[];let r=n[0];if(!r||!(r in Cb))return[];let i=Cb[r];if(i!==`write`&&i!==`create`||zPe.has(r))return[];let a=xb[r];return a?a(n.slice(1)):[]}function jPe(e){let t=h9(e);for(let e of t){let t=e.trim(),n=APe(t);for(let e of n)if(kPe(e))return!0;let{redirections:r}=g9(t);for(let{target:e}of r)if(kPe(e))return!0}return!1}function MPe(e,t){let{command:n}=e;if(!cl(n,e=>`$${e}`).success)return{behavior:`passthrough`,message:`Command cannot be parsed, requires further permission checks`};if(fb(n).behavior!==`passthrough`)return{behavior:`passthrough`,message:`Command is not read-only, requires further permission checks`};if(Im(n))return{behavior:`ask`,message:`Command contains Windows UNC path that could be vulnerable to WebDAV attacks`};let r=OPe(n);return t&&r?{behavior:`passthrough`,message:`Compound commands with cd and git require permission checks for enhanced security`}:r&&wse()?{behavior:`passthrough`,message:`Git commands in directories with bare repository structure require permission checks for enhanced security`}:r&&jPe(n)?{behavior:`passthrough`,message:`Compound commands that create git internal files and run git require permission checks for enhanced security`}:r&&Nm.isSandboxingEnabled()&&Ga()!==fn()?{behavior:`passthrough`,message:`Git commands outside the original working directory require permission checks when sandbox is enabled`}:h9(n).every(e=>fb(e).behavior===`passthrough`?DPe(e):!1)?{behavior:`allow`,updatedInput:e}:{behavior:`passthrough`,message:`Command is not read-only, requires further permission checks`}}var Tb,NPe,PPe,FPe,IPe,LPe,RPe,zPe,BPe=n((()=>{tn(),w9(),dl(),Wa(),no(),Po(),Pm(),Zm(),bQ(),gb(),SPe(),vb(),Tb={"-h":`none`,"--help":`none`,"-V":`none`,"--version":`none`,"-H":`none`,"--hidden":`none`,"-I":`none`,"--no-ignore":`none`,"--no-ignore-vcs":`none`,"--no-ignore-parent":`none`,"-s":`none`,"--case-sensitive":`none`,"-i":`none`,"--ignore-case":`none`,"-g":`none`,"--glob":`none`,"--regex":`none`,"-F":`none`,"--fixed-strings":`none`,"-a":`none`,"--absolute-path":`none`,"-L":`none`,"--follow":`none`,"-p":`none`,"--full-path":`none`,"-0":`none`,"--print0":`none`,"-d":`number`,"--max-depth":`number`,"--min-depth":`number`,"--exact-depth":`number`,"-t":`string`,"--type":`string`,"-e":`string`,"--extension":`string`,"-S":`string`,"--size":`string`,"--changed-within":`string`,"--changed-before":`string`,"-o":`string`,"--owner":`string`,"-E":`string`,"--exclude":`string`,"--ignore-file":`string`,"-c":`string`,"--color":`string`,"-j":`number`,"--threads":`number`,"--max-buffer-time":`string`,"--max-results":`number`,"-1":`none`,"-q":`none`,"--quiet":`none`,"--show-errors":`none`,"--strip-cwd-prefix":`none`,"--one-file-system":`none`,"--prune":`none`,"--search-path":`string`,"--base-directory":`string`,"--path-separator":`string`,"--batch-size":`number`,"--no-require-git":`none`,"--hyperlink":`string`,"--and":`string`,"--format":`string`},NPe={xargs:{safeFlags:{"-I":`{}`,"-n":`number`,"-P":`number`,"-L":`number`,"-s":`number`,"-E":`EOF`,"-0":`none`,"-t":`none`,"-r":`none`,"-x":`none`,"-d":`char`}},...Km,file:{safeFlags:{"--brief":`none`,"-b":`none`,"--mime":`none`,"-i":`none`,"--mime-type":`none`,"--mime-encoding":`none`,"--apple":`none`,"--check-encoding":`none`,"-c":`none`,"--exclude":`string`,"--exclude-quiet":`string`,"--print0":`none`,"-0":`none`,"-f":`string`,"-F":`string`,"--separator":`string`,"--help":`none`,"--version":`none`,"-v":`none`,"--no-dereference":`none`,"-h":`none`,"--dereference":`none`,"-L":`none`,"--magic-file":`string`,"-m":`string`,"--keep-going":`none`,"-k":`none`,"--list":`none`,"-l":`none`,"--no-buffer":`none`,"-n":`none`,"--preserve-date":`none`,"-p":`none`,"--raw":`none`,"-r":`none`,"-s":`none`,"--special-files":`none`,"--uncompress":`none`,"-z":`none`}},sed:{safeFlags:{"--expression":`string`,"-e":`string`,"--quiet":`none`,"--silent":`none`,"-n":`none`,"--regexp-extended":`none`,"-r":`none`,"--posix":`none`,"-E":`none`,"--line-length":`number`,"-l":`number`,"--zero-terminated":`none`,"-z":`none`,"--separate":`none`,"-s":`none`,"--unbuffered":`none`,"-u":`none`,"--debug":`none`,"--help":`none`,"--version":`none`},additionalCommandIsDangerousCallback:(e,t)=>!_b(e)},sort:{safeFlags:{"--ignore-leading-blanks":`none`,"-b":`none`,"--dictionary-order":`none`,"-d":`none`,"--ignore-case":`none`,"-f":`none`,"--general-numeric-sort":`none`,"-g":`none`,"--human-numeric-sort":`none`,"-h":`none`,"--ignore-nonprinting":`none`,"-i":`none`,"--month-sort":`none`,"-M":`none`,"--numeric-sort":`none`,"-n":`none`,"--random-sort":`none`,"-R":`none`,"--reverse":`none`,"-r":`none`,"--sort":`string`,"--stable":`none`,"-s":`none`,"--unique":`none`,"-u":`none`,"--version-sort":`none`,"-V":`none`,"--zero-terminated":`none`,"-z":`none`,"--key":`string`,"-k":`string`,"--field-separator":`string`,"-t":`string`,"--check":`none`,"-c":`none`,"--check-char-order":`none`,"-C":`none`,"--merge":`none`,"-m":`none`,"--buffer-size":`string`,"-S":`string`,"--parallel":`number`,"--batch-size":`number`,"--help":`none`,"--version":`none`}},man:{safeFlags:{"-a":`none`,"--all":`none`,"-d":`none`,"-f":`none`,"--whatis":`none`,"-h":`none`,"-k":`none`,"--apropos":`none`,"-l":`string`,"-w":`none`,"-S":`string`,"-s":`string`}},help:{safeFlags:{"-d":`none`,"-m":`none`,"-s":`none`}},netstat:{safeFlags:{"-a":`none`,"-L":`none`,"-l":`none`,"-n":`none`,"-f":`string`,"-g":`none`,"-i":`none`,"-I":`string`,"-s":`none`,"-r":`none`,"-m":`none`,"-v":`none`}},ps:{safeFlags:{"-e":`none`,"-A":`none`,"-a":`none`,"-d":`none`,"-N":`none`,"--deselect":`none`,"-f":`none`,"-F":`none`,"-l":`none`,"-j":`none`,"-y":`none`,"-w":`none`,"-ww":`none`,"--width":`number`,"-c":`none`,"-H":`none`,"--forest":`none`,"--headers":`none`,"--no-headers":`none`,"-n":`string`,"--sort":`string`,"-L":`none`,"-T":`none`,"-m":`none`,"-C":`string`,"-G":`string`,"-g":`string`,"-p":`string`,"--pid":`string`,"-q":`string`,"--quick-pid":`string`,"-s":`string`,"--sid":`string`,"-t":`string`,"--tty":`string`,"-U":`string`,"-u":`string`,"--user":`string`,"--help":`none`,"--info":`none`,"-V":`none`,"--version":`none`},additionalCommandIsDangerousCallback:(e,t)=>t.some(e=>!e.startsWith(`-`)&&/^[a-zA-Z]*e[a-zA-Z]*$/.test(e))},base64:{respectsDoubleDash:!1,safeFlags:{"-d":`none`,"-D":`none`,"--decode":`none`,"-b":`number`,"--break":`number`,"-w":`number`,"--wrap":`number`,"-i":`string`,"--input":`string`,"--ignore-garbage":`none`,"-h":`none`,"--help":`none`,"--version":`none`}},grep:{safeFlags:{"-e":`string`,"--regexp":`string`,"-f":`string`,"--file":`string`,"-F":`none`,"--fixed-strings":`none`,"-G":`none`,"--basic-regexp":`none`,"-E":`none`,"--extended-regexp":`none`,"-P":`none`,"--perl-regexp":`none`,"-i":`none`,"--ignore-case":`none`,"--no-ignore-case":`none`,"-v":`none`,"--invert-match":`none`,"-w":`none`,"--word-regexp":`none`,"-x":`none`,"--line-regexp":`none`,"-c":`none`,"--count":`none`,"--color":`string`,"--colour":`string`,"-L":`none`,"--files-without-match":`none`,"-l":`none`,"--files-with-matches":`none`,"-m":`number`,"--max-count":`number`,"-o":`none`,"--only-matching":`none`,"-q":`none`,"--quiet":`none`,"--silent":`none`,"-s":`none`,"--no-messages":`none`,"-b":`none`,"--byte-offset":`none`,"-H":`none`,"--with-filename":`none`,"-h":`none`,"--no-filename":`none`,"--label":`string`,"-n":`none`,"--line-number":`none`,"-T":`none`,"--initial-tab":`none`,"-u":`none`,"--unix-byte-offsets":`none`,"-Z":`none`,"--null":`none`,"-z":`none`,"--null-data":`none`,"-A":`number`,"--after-context":`number`,"-B":`number`,"--before-context":`number`,"-C":`number`,"--context":`number`,"--group-separator":`string`,"--no-group-separator":`none`,"-a":`none`,"--text":`none`,"--binary-files":`string`,"-D":`string`,"--devices":`string`,"-d":`string`,"--directories":`string`,"--exclude":`string`,"--exclude-from":`string`,"--exclude-dir":`string`,"--include":`string`,"-r":`none`,"--recursive":`none`,"-R":`none`,"--dereference-recursive":`none`,"--line-buffered":`none`,"-U":`none`,"--binary":`none`,"--help":`none`,"-V":`none`,"--version":`none`}},...Eye,sha256sum:{safeFlags:{"-b":`none`,"--binary":`none`,"-t":`none`,"--text":`none`,"-c":`none`,"--check":`none`,"--ignore-missing":`none`,"--quiet":`none`,"--status":`none`,"--strict":`none`,"-w":`none`,"--warn":`none`,"--tag":`none`,"-z":`none`,"--zero":`none`,"--help":`none`,"--version":`none`}},sha1sum:{safeFlags:{"-b":`none`,"--binary":`none`,"-t":`none`,"--text":`none`,"-c":`none`,"--check":`none`,"--ignore-missing":`none`,"--quiet":`none`,"--status":`none`,"--strict":`none`,"-w":`none`,"--warn":`none`,"--tag":`none`,"-z":`none`,"--zero":`none`,"--help":`none`,"--version":`none`}},md5sum:{safeFlags:{"-b":`none`,"--binary":`none`,"-t":`none`,"--text":`none`,"-c":`none`,"--check":`none`,"--ignore-missing":`none`,"--quiet":`none`,"--status":`none`,"--strict":`none`,"-w":`none`,"--warn":`none`,"--tag":`none`,"-z":`none`,"--zero":`none`,"--help":`none`,"--version":`none`}},tree:{safeFlags:{"-a":`none`,"-d":`none`,"-l":`none`,"-f":`none`,"-x":`none`,"-L":`number`,"-P":`string`,"-I":`string`,"--gitignore":`none`,"--gitfile":`string`,"--ignore-case":`none`,"--matchdirs":`none`,"--metafirst":`none`,"--prune":`none`,"--info":`none`,"--infofile":`string`,"--noreport":`none`,"--charset":`string`,"--filelimit":`number`,"-q":`none`,"-N":`none`,"-Q":`none`,"-p":`none`,"-u":`none`,"-g":`none`,"-s":`none`,"-h":`none`,"--si":`none`,"--du":`none`,"-D":`none`,"--timefmt":`string`,"-F":`none`,"--inodes":`none`,"--device":`none`,"-v":`none`,"-t":`none`,"-c":`none`,"-U":`none`,"-r":`none`,"--dirsfirst":`none`,"--filesfirst":`none`,"--sort":`string`,"-i":`none`,"-A":`none`,"-S":`none`,"-n":`none`,"-C":`none`,"-X":`none`,"-J":`none`,"-H":`string`,"--nolinks":`none`,"--hintro":`string`,"--houtro":`string`,"-T":`string`,"--hyperlink":`none`,"--scheme":`string`,"--authority":`string`,"--fromfile":`none`,"--fromtabfile":`none`,"--fflinks":`none`,"--help":`none`,"--version":`none`}},date:{safeFlags:{"-d":`string`,"--date":`string`,"-r":`string`,"--reference":`string`,"-u":`none`,"--utc":`none`,"--universal":`none`,"-I":`none`,"--iso-8601":`string`,"-R":`none`,"--rfc-email":`none`,"--rfc-3339":`string`,"--debug":`none`,"--help":`none`,"--version":`none`},additionalCommandIsDangerousCallback:(e,t)=>{let n=new Set([`-d`,`--date`,`-r`,`--reference`,`--iso-8601`,`--rfc-3339`]),r=0;for(;r<t.length;){let e=t[r];if(e.startsWith(`--`)&&e.includes(`=`))r++;else if(e.startsWith(`-`))n.has(e)?r+=2:r++;else{if(!e.startsWith(`+`))return!0;r++}}return!1}},hostname:{safeFlags:{"-f":`none`,"--fqdn":`none`,"--long":`none`,"-s":`none`,"--short":`none`,"-i":`none`,"--ip-address":`none`,"-I":`none`,"--all-ip-addresses":`none`,"-a":`none`,"--alias":`none`,"-d":`none`,"--domain":`none`,"-A":`none`,"--all-fqdns":`none`,"-v":`none`,"--verbose":`none`,"-h":`none`,"--help":`none`,"-V":`none`,"--version":`none`},regex:/^hostname(?:\s+(?:-[a-zA-Z]|--[a-zA-Z-]+))*\s*$/},info:{safeFlags:{"-f":`string`,"--file":`string`,"-d":`string`,"--directory":`string`,"-n":`string`,"--node":`string`,"-a":`none`,"--all":`none`,"-k":`string`,"--apropos":`string`,"-w":`none`,"--where":`none`,"--location":`none`,"--show-options":`none`,"--vi-keys":`none`,"--subnodes":`none`,"-h":`none`,"--help":`none`,"--usage":`none`,"--version":`none`}},lsof:{safeFlags:{"-?":`none`,"-h":`none`,"-v":`none`,"-a":`none`,"-b":`none`,"-C":`none`,"-l":`none`,"-n":`none`,"-N":`none`,"-O":`none`,"-P":`none`,"-Q":`none`,"-R":`none`,"-t":`none`,"-U":`none`,"-V":`none`,"-X":`none`,"-H":`none`,"-E":`none`,"-F":`none`,"-g":`none`,"-i":`none`,"-K":`none`,"-L":`none`,"-o":`none`,"-r":`none`,"-s":`none`,"-S":`none`,"-T":`none`,"-x":`none`,"-A":`string`,"-c":`string`,"-d":`string`,"-e":`string`,"-k":`string`,"-p":`string`,"-u":`string`},additionalCommandIsDangerousCallback:(e,t)=>t.some(e=>e===`+m`||e.startsWith(`+m`))},pgrep:{safeFlags:{"-d":`string`,"--delimiter":`string`,"-l":`none`,"--list-name":`none`,"-a":`none`,"--list-full":`none`,"-v":`none`,"--inverse":`none`,"-w":`none`,"--lightweight":`none`,"-c":`none`,"--count":`none`,"-f":`none`,"--full":`none`,"-g":`string`,"--pgroup":`string`,"-G":`string`,"--group":`string`,"-i":`none`,"--ignore-case":`none`,"-n":`none`,"--newest":`none`,"-o":`none`,"--oldest":`none`,"-O":`string`,"--older":`string`,"-P":`string`,"--parent":`string`,"-s":`string`,"--session":`string`,"-t":`string`,"--terminal":`string`,"-u":`string`,"--euid":`string`,"-U":`string`,"--uid":`string`,"-x":`none`,"--exact":`none`,"-F":`string`,"--pidfile":`string`,"-L":`none`,"--logpidfile":`none`,"-r":`string`,"--runstates":`string`,"--ns":`string`,"--nslist":`string`,"--help":`none`,"-V":`none`,"--version":`none`}},tput:{safeFlags:{"-T":`string`,"-V":`none`,"-x":`none`},additionalCommandIsDangerousCallback:(e,t)=>{let n=new Set([`init`,`reset`,`rs1`,`rs2`,`rs3`,`is1`,`is2`,`is3`,`iprog`,`if`,`rf`,`clear`,`flash`,`mc0`,`mc4`,`mc5`,`mc5i`,`mc5p`,`pfkey`,`pfloc`,`pfx`,`pfxl`,`smcup`,`rmcup`]),r=new Set([`-T`]),i=0,a=!1;for(;i<t.length;){let e=t[i];if(e===`--`)a=!0,i++;else if(!a&&e.startsWith(`-`)){if(e===`-S`||!e.startsWith(`--`)&&e.length>2&&e.includes(`S`))return!0;r.has(e)?i+=2:i++}else{if(n.has(e))return!0;i++}}return!1}},ss:{safeFlags:{"-h":`none`,"--help":`none`,"-V":`none`,"--version":`none`,"-n":`none`,"--numeric":`none`,"-r":`none`,"--resolve":`none`,"-a":`none`,"--all":`none`,"-l":`none`,"--listening":`none`,"-o":`none`,"--options":`none`,"-e":`none`,"--extended":`none`,"-m":`none`,"--memory":`none`,"-p":`none`,"--processes":`none`,"-i":`none`,"--info":`none`,"-s":`none`,"--summary":`none`,"-4":`none`,"--ipv4":`none`,"-6":`none`,"--ipv6":`none`,"-0":`none`,"--packet":`none`,"-t":`none`,"--tcp":`none`,"-M":`none`,"--mptcp":`none`,"-S":`none`,"--sctp":`none`,"-u":`none`,"--udp":`none`,"-d":`none`,"--dccp":`none`,"-w":`none`,"--raw":`none`,"-x":`none`,"--unix":`none`,"--tipc":`none`,"--vsock":`none`,"-f":`string`,"--family":`string`,"-A":`string`,"--query":`string`,"--socket":`string`,"-Z":`none`,"--context":`none`,"-z":`none`,"--contexts":`none`,"-b":`none`,"--bpf":`none`,"-E":`none`,"--events":`none`,"-H":`none`,"--no-header":`none`,"-O":`none`,"--oneline":`none`,"--tipcinfo":`none`,"--tos":`none`,"--cgroup":`none`,"--inet-sockopt":`none`}},fd:{safeFlags:{...Tb}},fdfind:{safeFlags:{...Tb}},...Dye,...Jm},PPe={...qm,aki:{safeFlags:{"-h":`none`,"--help":`none`,"-k":`none`,"--keyword":`none`,"-s":`none`,"--semantic":`none`,"--no-adaptive":`none`,"-n":`number`,"--limit":`number`,"-o":`number`,"--offset":`number`,"--source":`string`,"--exclude-source":`string`,"-a":`string`,"--after":`string`,"-b":`string`,"--before":`string`,"--collection":`string`,"--drive":`string`,"--folder":`string`,"--descendants":`none`,"-m":`string`,"--meta":`string`,"-t":`string`,"--threshold":`string`,"--kw-weight":`string`,"--sem-weight":`string`,"-j":`none`,"--json":`none`,"-c":`none`,"--chunk":`none`,"--preview":`none`,"-d":`none`,"--full-doc":`none`,"-v":`none`,"--verbose":`none`,"--stats":`none`,"-S":`number`,"--summarize":`number`,"--explain":`none`,"--examine":`string`,"--url":`string`,"--multi-turn":`number`,"--multi-turn-model":`string`,"--multi-turn-context":`string`,"--no-rerank":`none`,"--audit":`none`,"--local":`none`,"--staging":`none`}}},FPe=[`echo`,`printf`,`wc`,`grep`,`head`,`tail`],IPe=[...Ym,`cal`,`uptime`,`cat`,`head`,`tail`,`wc`,`stat`,`strings`,`hexdump`,`od`,`nl`,`id`,`uname`,`free`,`df`,`du`,`locale`,`groups`,`nproc`,`basename`,`dirname`,`realpath`,`cut`,`paste`,`tr`,`column`,`tac`,`rev`,`fold`,`expand`,`unexpand`,`fmt`,`comm`,`cmp`,`numfmt`,`readlink`,`diff`,`true`,`false`,`sleep`,`which`,`type`,`expr`,`test`,`getconf`,`seq`,`tsort`,`pr`],LPe=new Set([...IPe.map(TPe),/^echo(?:\s+(?:'[^']*'|"[^"$<>\n\r]*"|[^|;&`$(){}><#\\!"'\s]+))*(?:\s+2>&1)?\s*$/,/^claude -h$/,/^claude --help$/,/^uniq(?:\s+(?:-[a-zA-Z]+|--[a-zA-Z-]+(?:=\S+)?|-[fsw]\s+\d+))*(?:\s|$)\s*$/,/^pwd$/,/^whoami$/,/^node -v$/,/^node --version$/,/^python --version$/,/^python3 --version$/,/^history(?:\s+\d+)?\s*$/,/^alias$/,/^arch(?:\s+(?:--help|-h))?\s*$/,/^ip addr$/,/^ifconfig(?:\s+[a-zA-Z][a-zA-Z0-9_-]*)?\s*$/,/^jq(?!\s+.*(?:-f\b|--from-file|--rawfile|--slurpfile|--run-tests|-L\b|--library-path|\benv\b|\$ENV\b))(?:\s+(?:-[a-zA-Z]+|--[a-zA-Z-]+(?:=\S+)?))*(?:\s+'[^'`]*'|\s+"[^"`]*"|\s+[^-\s'"][^\s]*)+\s*$/,/^cd(?:\s+(?:'[^']*'|"[^"]*"|[^\s;|&`$(){}><#\\]+))?$/,/^ls(?:\s+[^<>()$`|{}&;\n\r]*)?$/,/^find(?:\s+(?:\\[()]|(?!-delete\b|-exec\b|-execdir\b|-ok\b|-okdir\b|-fprint0?\b|-fls\b|-fprintf\b)[^<>()$`|{}&;\n\r\s]|\s)+)?$/]),RPe=[/^HEAD$/,/^objects(?:\/|$)/,/^refs(?:\/|$)/,/^hooks(?:\/|$)/],zPe=new Set([`rm`,`rmdir`,`sed`])}));async function VPe(e){let t;do t=await e.next();while(!t.done);return t.value}async function*HPe(e,t=1/0){let n=e=>{let t=e.next().then(({done:n,value:r})=>({done:n,value:r,generator:e,promise:t}));return t},r=[...e],i=new Set;for(;i.size<t&&r.length>0;){let e=r.shift();i.add(n(e))}for(;i.size>0;){let{done:e,value:t,generator:a,promise:o}=await Promise.race(i);if(i.delete(o),!e)i.add(n(a)),t!==void 0&&(yield t);else if(r.length>0){let e=r.shift();i.add(n(e))}}}async function UPe(e){let t=[];for await(let n of e)t.push(n);return t}async function*WPe(e){for(let t of e)yield t}var Eb=n((()=>{}));function Db(e){if(typeof process<`u`&&process.env[e])return process.env[e];if(typeof globalThis<`u`)return globalThis[e]}function GPe(e){let t=atob(e);return Uint8Array.from(t,e=>e.codePointAt(0))}function Ob(e){let t=Array.from(e,e=>String.fromCharCode(e)).join(``);return btoa(t)}function KPe(e){return typeof Buffer<`u`?Buffer.from(e,`utf8`).toString(`base64`):Ob(new TextEncoder().encode(e))}function qPe(){if(typeof process==`object`&&`env`in process){if(Db(`LANGFUSE_DEBUG`)?.toLowerCase()===`true`)return 0;switch((Db(`LANGFUSE_LOG_LEVEL`)??``).toUpperCase()){case`NONE`:return 4;case`ERROR`:return 3;case`WARN`:return 2;case`INFO`:return 1;case`DEBUG`:return 0;default:return}}}function kb(e,t){return JSON.parse(e,t)}function JPe({message:e,statusCode:t,body:n}){let r=[];return e!=null&&r.push(e),t!=null&&r.push(`Status code: ${t.toString()}`),n!=null&&r.push(`Body: ${Hb(n,void 0,2)}`),r.join(`
|
|
365
365
|
`)}function Ab(...e){let t={};for(let[n,r]of e.filter(e=>e!=null).flatMap(e=>Object.entries(e)))r==null?n in t&&delete t[n]:t[n]=r;return t}function jb(...e){let t={};for(let[n,r]of e.filter(e=>e!=null).flatMap(e=>Object.entries(e)))r!=null&&(t[n]=r);return t}function YPe(e,t){if(e==null)return``;let n=String(e);return t?encodeURIComponent(n):n}function Mb(e,t=``,n){let r=[];for(let[i,a]of Object.entries(e)){let e=t?`${t}[${i}]`:i;if(a!==void 0)if(Array.isArray(a)){if(a.length===0)continue;for(let t=0;t<a.length;t++){let i=a[t];if(i!==void 0)if(typeof i==`object`&&!Array.isArray(i)&&i!==null){let a=n.arrayFormat===`indices`?`${e}[${t}]`:e;r.push(...Mb(i,a,n))}else{let a=n.arrayFormat===`indices`?`${e}[${t}]`:e,o=n.encode?encodeURIComponent(a):a;r.push(`${o}=${YPe(i,n.encode)}`)}}}else if(typeof a==`object`&&a){if(Object.keys(a).length===0)continue;r.push(...Mb(a,e,n))}else{let t=n.encode?encodeURIComponent(e):e;r.push(`${t}=${YPe(a,n.encode)}`)}}return r}function XPe(e,t){return typeof e!=`object`||!e?``:Mb(e,``,{...pIe,...t}).join(`&`)}function ZPe(e,t){let n=XPe(t,{arrayFormat:`repeat`});return n?`${e}?${n}`:e}function QPe(e){let t={get bodyUsed(){return e.bodyUsed},stream:()=>e.body,arrayBuffer:e.arrayBuffer.bind(e),blob:e.blob.bind(e)};return`bytes`in e&&typeof e.bytes==`function`&&(t.bytes=e.bytes.bind(e)),t}function $Pe(e){return e.body!=null}async function eFe(e,t){if(!$Pe(e))return;switch(t){case`binary-response`:return QPe(e);case`blob`:return await e.blob();case`arrayBuffer`:return await e.arrayBuffer();case`sse`:return e.body;case`streaming`:return e.body;case`text`:return await e.text()}let n=await e.text();if(n.length>0)try{return kb(n)}catch{return{ok:!1,error:{reason:`non-json`,statusCode:e.status,rawBody:n}}}}async function tFe(e){let t=e.headers.get(`Content-Type`)?.toLowerCase();if(t==null||t.length===0)return eFe(e);switch(t.indexOf(`;`)!==-1&&(t=t.split(`;`)[0]?.trim()??``),t){case`application/hal+json`:case`application/json`:case`application/ld+json`:case`application/problem+json`:case`application/vnd.api+json`:case`text/json`:let n=await e.text();return n.length>0?kb(n):void 0;default:if(t.startsWith(`application/vnd.`)&&t.endsWith(`+json`)){let t=await e.text();return t.length>0?kb(t):void 0}return await e.text()}}async function nFe(){return fetch}async function rFe({body:e,type:t}){return t.includes(`json`)?Hb(e):e}function iFe(e){let t=new AbortController,n=setTimeout(()=>t.abort(mIe),e);return{signal:t.signal,abortId:n}}function aFe(...e){let t=e.length===1&&Array.isArray(e[0])?e[0]:e,n=new AbortController;for(let e of t){if(e.aborted){n.abort(e?.reason);break}e.addEventListener(`abort`,()=>n.abort(e?.reason),{signal:n.signal})}return n.signal}function oFe(e){return{headers:e.headers,redirected:e.redirected,status:e.status,statusText:e.statusText,type:e.type,url:e.url}}function sFe(e){return e*(1+Math.random()*ex)}function cFe(e){return e*(1+(Math.random()-.5)*ex)}function lFe(e,t){let n=e.headers.get(`Retry-After`);if(n){let e=parseInt(n,10);if(!isNaN(e)&&e>0)return Math.min(e*1e3,$b);let t=new Date(n);if(!isNaN(t.getTime())){let e=t.getTime()-Date.now();if(e>0)return Math.min(Math.max(e,0),$b)}}let r=e.headers.get(`X-RateLimit-Reset`);if(r){let e=parseInt(r,10);if(!isNaN(e)){let t=e*1e3-Date.now();if(t>0)return sFe(Math.min(t,$b))}}return cFe(Math.min(gIe*2**t,$b))}async function uFe(e,t=_Ie){let n=await e();for(let r=0;r<t&&([408,429].includes(n.status)||n.status>=500);++r){let t=lFe(n,r);await new Promise(e=>setTimeout(e,t)),n=await e()}return n}async function dFe(e){let t={};if(e.body!==void 0&&e.contentType!=null&&(t[`Content-Type`]=e.contentType),e.headers==null)return t;for(let[n,r]of Object.entries(e.headers)){let e=await Z.get(r);if(typeof e==`string`){t[n]=e;continue}e!=null&&(t[n]=`${e}`)}return t}async function fFe(e){let t=ZPe(e.url,e.queryParameters),n=await rFe({body:e.body,type:e.requestType===`json`?`json`:`other`}),r=await nFe();try{let i=await uFe(async()=>hIe(r,t,e.method,await dFe(e),n,e.timeoutMs,e.abortSignal,e.withCredentials,e.duplex),e.maxRetries);return i.status>=200&&i.status<400?{ok:!0,body:await eFe(i,e.responseType),headers:i.headers,rawResponse:oFe(i)}:{ok:!1,error:{reason:`status-code`,statusCode:i.status,body:await tFe(i)},rawResponse:oFe(i)}}catch(t){return e.abortSignal!=null&&e.abortSignal.aborted?{ok:!1,error:{reason:`unknown`,errorMessage:`The user aborted a request`},rawResponse:Zb}:t instanceof Error&&t.name===`AbortError`?{ok:!1,error:{reason:`timeout`},rawResponse:Zb}:t instanceof Error?{ok:!1,error:{reason:`unknown`,errorMessage:t.message},rawResponse:Qb}:{ok:!1,error:{reason:`unknown`,errorMessage:Hb(t)},rawResponse:Qb}}}function pFe(e,...t){if(!e)return``;if(t.length===0)return e;if(e.includes(`://`)){let n;try{n=new URL(e)}catch{return mFe(e,...t)}let r=t[t.length-1],i=r&&r.endsWith(`/`);for(let e of t){let t=gFe(e);t&&(n.pathname=hFe(n.pathname,t))}return i&&!n.pathname.endsWith(`/`)&&(n.pathname+=`/`),n.toString()}return mFe(e,...t)}function mFe(e,...t){if(t.length===0)return e;let n=e,r=t[t.length-1],i=r&&r.endsWith(`/`);for(let e of t){let t=gFe(e);t&&(n=hFe(n,t))}return i&&!n.endsWith(`/`)&&(n+=`/`),n}function hFe(e,t){return e.endsWith(`/`)?e+t:e+`/`+t}function gFe(e){if(!e)return e;let t=0,n=e.length;return e.startsWith(`/`)&&(t=1),e.endsWith(`/`)&&(n=e.length-1),t===0&&n===e.length?e:e.slice(t,n)}function _Fe(e){let t=atob(e);return Uint8Array.from(t,e=>e.codePointAt(0))}function vFe(e){let t=String.fromCodePoint(...e);return btoa(t)}function yFe(e){return typeof Buffer<`u`?Buffer.from(e,`utf8`).toString(`base64`):vFe(new TextEncoder().encode(e))}function bFe(e){if(typeof Buffer<`u`)return Buffer.from(e,`base64`).toString(`utf8`);let t=_Fe(e);return new TextDecoder().decode(t)}function xFe(e){let t={},n=ye.getBaggage(e);n&&n.getAllEntries().forEach(([e,n])=>{if(e.startsWith(sx)){let r=CFe(e);r&&(t[r]=e==SFe(`tags`)?n.value.split(JIe):n.value)}});let r=e.getValue(ox.userId);if(r&&typeof r==`string`){let e=Nb(`userId`);t[e]=r}let i=e.getValue(ox.sessionId);if(i&&typeof i==`string`){let e=Nb(`sessionId`);t[e]=i}let a=e.getValue(ox.version);if(a&&typeof a==`string`){let e=Nb(`version`);t[e]=a}let o=e.getValue(ox.traceName);if(o&&typeof o==`string`){let e=Nb(`traceName`);t[e]=o}let s=e.getValue(ox.tags);if(s&&Array.isArray(s)){let e=Nb(`tags`);t[e]=s}let c=e.getValue(ox.metadata);if(c&&typeof c==`object`&&c)for(let[e,n]of Object.entries(c)){let r=`langfuse.trace.metadata.${e}`;t[r]=String(n)}for(let n of qIe){let r=ox[n],i=e.getValue(r);if(i&&typeof i==`string`){let e=Nb(n);t[e]=i}}return t[Nb(`experimentItemRootObservationId`)]&&(t[`langfuse.environment`]=DFe),t}function Nb(e){switch(e){case`userId`:return`user.id`;case`sessionId`:return`session.id`;case`version`:return`langfuse.version`;case`traceName`:return`langfuse.trace.name`;case`metadata`:return`langfuse.trace.metadata`;case`tags`:return`langfuse.trace.tags`;case`experimentId`:return`langfuse.experiment.id`;case`experimentName`:return`langfuse.experiment.name`;case`experimentMetadata`:return`langfuse.experiment.metadata`;case`experimentDatasetId`:return`langfuse.experiment.dataset.id`;case`experimentItemId`:return`langfuse.experiment.item.id`;case`experimentItemMetadata`:return`langfuse.experiment.item.metadata`;case`experimentItemRootObservationId`:return`langfuse.experiment.item.root_observation_id`;default:throw Error(`Unhandled propagated key`,e)}}function SFe(e){switch(e){case`userId`:return`${sx}user_id`;case`sessionId`:return`${sx}session_id`;case`version`:return`${sx}version`;case`traceName`:return`${sx}trace_name`;case`metadata`:return`${sx}metadata`;case`tags`:return`${sx}tags`;case`experimentId`:return`${sx}experiment_id`;case`experimentName`:return`${sx}experiment_name`;case`experimentMetadata`:return`${sx}experiment_metadata`;case`experimentDatasetId`:return`${sx}experiment_dataset_id`;case`experimentItemId`:return`${sx}experiment_item_id`;case`experimentItemMetadata`:return`${sx}experiment_item_metadata`;case`experimentItemRootObservationId`:return`${sx}experiment_item_root_observation_id`;default:throw Error(`Unhandled propagated key`,e)}}function CFe(e){if(!e.startsWith(sx))return;let t=e.slice(sx.length);if(t.startsWith(`metadata_`))return`langfuse.trace.metadata.${t.slice(9)}`;switch(t){case`user_id`:return Nb(`userId`);case`session_id`:return Nb(`sessionId`);case`version`:return Nb(`version`);case`trace_name`:return Nb(`traceName`);case`tags`:return Nb(`tags`);case`experiment_id`:return Nb(`experimentId`);case`experiment_name`:return Nb(`experimentName`);case`experiment_metadata`:return Nb(`experimentMetadata`);case`experiment_dataset_id`:return Nb(`experimentDatasetId`);case`experiment_item_id`:return Nb(`experimentItemId`);case`experiment_item_metadata`:return Nb(`experimentItemMetadata`);case`experiment_item_root_observation_id`:return Nb(`experimentItemRootObservationId`)}}var wFe,Pb,Fb,Ib,Lb,TFe,Rb,EFe,zb,Bb,DFe,Vb,OFe,kFe,AFe,jFe,MFe,NFe,PFe,FFe,IFe,LFe,RFe,zFe,BFe,VFe,HFe,UFe,WFe,GFe,Hb,X,Ub,Wb,Gb,Kb,qb,Jb,KFe,Yb,qFe,JFe,YFe,XFe,ZFe,QFe,$Fe,eIe,tIe,nIe,rIe,iIe,aIe,oIe,sIe,cIe,lIe,uIe,dIe,fIe,pIe,mIe,hIe,Xb,Zb,Qb,gIe,$b,_Ie,ex,Z,tx,nx,rx,vIe,ix,yIe,bIe,xIe,SIe,CIe,wIe,TIe,EIe,DIe,OIe,kIe,AIe,jIe,MIe,NIe,PIe,FIe,IIe,LIe,RIe,zIe,BIe,VIe,HIe,UIe,WIe,GIe,KIe,ax,qIe,ox,sx,JIe,YIe=n((()=>{be(),wFe=Object.defineProperty,Pb=(e,t)=>{for(var n in t)wFe(e,n,{get:t[n],enumerable:!0})},Fb=(e=>(e[e.NONE=4]=`NONE`,e[e.ERROR=3]=`ERROR`,e[e.WARN=2]=`WARN`,e[e.INFO=1]=`INFO`,e[e.DEBUG=0]=`DEBUG`,e))(Fb||{}),Ib=class{constructor(e={level:1}){this.config={enableTimestamp:!0,...e}}shouldLog(e){return e>=this.config.level}formatMessage(e,t){return[this.config.enableTimestamp?new Date().toISOString():``,this.config.prefix||`[Langfuse SDK]`,`[${e}]`,t].filter(Boolean).join(` `)}error(e,...t){this.shouldLog(3)&&console.error(this.formatMessage(`ERROR`,e),...t)}warn(e,...t){this.shouldLog(2)&&console.warn(this.formatMessage(`WARN`,e),...t)}info(e,...t){this.shouldLog(1)&&console.info(this.formatMessage(`INFO`,e),...t)}debug(e,...t){this.shouldLog(0)&&console.debug(this.formatMessage(`DEBUG`,e),...t)}setLevel(e){this.config.level=e}getLevel(){return this.config.level}isLevelEnabled(e){return this.shouldLog(e)}},Lb=class e{static getInstance(){return e.instance||(e.instance=new Ib(e.defaultConfig)),e.instance}static configure(t){e.defaultConfig=t,e.instance=new Ib(t)}static reset(){e.instance=null,e.defaultConfig={level:1}}},Lb.instance=null,Lb.defaultConfig={level:qPe()??1},TFe=Lb,Rb=()=>TFe.getInstance(),EFe={name:`@langfuse/core`,version:`5.1.0`,description:`Core functions and utilities for Langfuse packages`,type:`module`,sideEffects:!1,main:`./dist/index.cjs`,module:`./dist/index.mjs`,types:`./dist/index.d.ts`,exports:{".":{types:`./dist/index.d.ts`,import:`./dist/index.mjs`,require:`./dist/index.cjs`}},scripts:{build:`tsup`,test:`vitest run`,"test:watch":`vitest`,format:`prettier --write "src/**/*.ts"`,"format:check":`prettier --check "src/**/*.ts"`,clean:`rm -rf dist`},author:`Langfuse`,license:`MIT`,repository:{type:`git`,url:`https://github.com/langfuse/langfuse-js.git`,directory:`packages/core`},files:[`dist`],peerDependencies:{"@opentelemetry/api":`^1.9.0`},devDependencies:{"@types/node":`^24.1.0`}},zb=`langfuse-sdk`,Bb=EFe.version,DFe=`sdk-experiment`,Vb=(e=>(e.TRACE_NAME=`langfuse.trace.name`,e.TRACE_USER_ID=`user.id`,e.TRACE_SESSION_ID=`session.id`,e.TRACE_TAGS=`langfuse.trace.tags`,e.TRACE_PUBLIC=`langfuse.trace.public`,e.TRACE_METADATA=`langfuse.trace.metadata`,e.TRACE_INPUT=`langfuse.trace.input`,e.TRACE_OUTPUT=`langfuse.trace.output`,e.OBSERVATION_TYPE=`langfuse.observation.type`,e.OBSERVATION_METADATA=`langfuse.observation.metadata`,e.OBSERVATION_LEVEL=`langfuse.observation.level`,e.OBSERVATION_STATUS_MESSAGE=`langfuse.observation.status_message`,e.OBSERVATION_INPUT=`langfuse.observation.input`,e.OBSERVATION_OUTPUT=`langfuse.observation.output`,e.OBSERVATION_COMPLETION_START_TIME=`langfuse.observation.completion_start_time`,e.OBSERVATION_MODEL=`langfuse.observation.model.name`,e.OBSERVATION_MODEL_PARAMETERS=`langfuse.observation.model.parameters`,e.OBSERVATION_USAGE_DETAILS=`langfuse.observation.usage_details`,e.OBSERVATION_COST_DETAILS=`langfuse.observation.cost_details`,e.OBSERVATION_PROMPT_NAME=`langfuse.observation.prompt.name`,e.OBSERVATION_PROMPT_VERSION=`langfuse.observation.prompt.version`,e.ENVIRONMENT=`langfuse.environment`,e.RELEASE=`langfuse.release`,e.VERSION=`langfuse.version`,e.AS_ROOT=`langfuse.internal.as_root`,e.EXPERIMENT_ID=`langfuse.experiment.id`,e.EXPERIMENT_NAME=`langfuse.experiment.name`,e.EXPERIMENT_DESCRIPTION=`langfuse.experiment.description`,e.EXPERIMENT_METADATA=`langfuse.experiment.metadata`,e.EXPERIMENT_DATASET_ID=`langfuse.experiment.dataset.id`,e.EXPERIMENT_ITEM_ID=`langfuse.experiment.item.id`,e.EXPERIMENT_ITEM_EXPECTED_OUTPUT=`langfuse.experiment.item.expected_output`,e.EXPERIMENT_ITEM_METADATA=`langfuse.experiment.item.metadata`,e.EXPERIMENT_ITEM_ROOT_OBSERVATION_ID=`langfuse.experiment.item.root_observation_id`,e.TRACE_COMPAT_USER_ID=`langfuse.user.id`,e.TRACE_COMPAT_SESSION_ID=`langfuse.session.id`,e))(Vb||{}),OFe={},Pb(OFe,{AnnotationQueueObjectType:()=>AFe,AnnotationQueueStatus:()=>kFe}),kFe={Pending:`PENDING`,Completed:`COMPLETED`},AFe={Trace:`TRACE`,Observation:`OBSERVATION`,Session:`SESSION`},jFe={},Pb(jFe,{BlobStorageExportFrequency:()=>FFe,BlobStorageExportMode:()=>PFe,BlobStorageIntegrationFileType:()=>NFe,BlobStorageIntegrationType:()=>MFe,BlobStorageSyncStatus:()=>IFe}),MFe={S3:`S3`,S3Compatible:`S3_COMPATIBLE`,AzureBlobStorage:`AZURE_BLOB_STORAGE`},NFe={Json:`JSON`,Csv:`CSV`,Jsonl:`JSONL`},PFe={FullHistory:`FULL_HISTORY`,FromToday:`FROM_TODAY`,FromCustomDate:`FROM_CUSTOM_DATE`},FFe={Hourly:`hourly`,Daily:`daily`,Weekly:`weekly`},IFe={Idle:`idle`,Queued:`queued`,UpToDate:`up_to_date`,Disabled:`disabled`,Error:`error`},LFe={},Pb(LFe,{AccessDeniedError:()=>Kb,CommentObjectType:()=>VFe,DatasetStatus:()=>HFe,Error:()=>Wb,MethodNotAllowedError:()=>Jb,ModelUsageUnit:()=>zFe,NotFoundError:()=>qb,ObservationLevel:()=>BFe,PricingTierOperator:()=>RFe,ScoreConfigDataType:()=>WFe,ScoreDataType:()=>GFe,ScoreSource:()=>UFe,UnauthorizedError:()=>Gb}),RFe={Gt:`gt`,Gte:`gte`,Lt:`lt`,Lte:`lte`,Eq:`eq`,Neq:`neq`},zFe={Characters:`CHARACTERS`,Tokens:`TOKENS`,Milliseconds:`MILLISECONDS`,Seconds:`SECONDS`,Images:`IMAGES`,Requests:`REQUESTS`},BFe={Debug:`DEBUG`,Default:`DEFAULT`,Warning:`WARNING`,Error:`ERROR`},VFe={Trace:`TRACE`,Observation:`OBSERVATION`,Session:`SESSION`,Prompt:`PROMPT`},HFe={Active:`ACTIVE`,Archived:`ARCHIVED`},UFe={Annotation:`ANNOTATION`,Api:`API`,Eval:`EVAL`},WFe={Numeric:`NUMERIC`,Boolean:`BOOLEAN`,Categorical:`CATEGORICAL`,Text:`TEXT`},GFe={Numeric:`NUMERIC`,Boolean:`BOOLEAN`,Categorical:`CATEGORICAL`,Correction:`CORRECTION`,Text:`TEXT`},Hb=(e,t,n)=>JSON.stringify(e,t,n),X=class e extends Error{constructor({message:t,statusCode:n,body:r,rawResponse:i}){super(JPe({message:t,statusCode:n,body:r})),Object.setPrototypeOf(this,e.prototype),this.statusCode=n,this.body=r,this.rawResponse=i}},Ub=class e extends Error{constructor(t){super(t),Object.setPrototypeOf(this,e.prototype)}},Wb=class e extends X{constructor(t,n){super({message:`Error`,statusCode:400,body:t,rawResponse:n}),Object.setPrototypeOf(this,e.prototype)}},Gb=class e extends X{constructor(t,n){super({message:`UnauthorizedError`,statusCode:401,body:t,rawResponse:n}),Object.setPrototypeOf(this,e.prototype)}},Kb=class e extends X{constructor(t,n){super({message:`AccessDeniedError`,statusCode:403,body:t,rawResponse:n}),Object.setPrototypeOf(this,e.prototype)}},qb=class e extends X{constructor(t,n){super({message:`NotFoundError`,statusCode:404,body:t,rawResponse:n}),Object.setPrototypeOf(this,e.prototype)}},Jb=class e extends X{constructor(t,n){super({message:`MethodNotAllowedError`,statusCode:405,body:t,rawResponse:n}),Object.setPrototypeOf(this,e.prototype)}},KFe={},Pb(KFe,{ServiceUnavailableError:()=>Yb}),Yb=class e extends X{constructor(t){super({message:`ServiceUnavailableError`,statusCode:503,rawResponse:t}),Object.setPrototypeOf(this,e.prototype)}},qFe={},Pb(qFe,{ObservationType:()=>JFe}),JFe={Span:`SPAN`,Generation:`GENERATION`,Event:`EVENT`,Agent:`AGENT`,Tool:`TOOL`,Chain:`CHAIN`,Retriever:`RETRIEVER`,Evaluator:`EVALUATOR`,Embedding:`EMBEDDING`,Guardrail:`GUARDRAIL`},YFe={},Pb(YFe,{metricsV1:()=>XFe,observationsV1:()=>ZFe,scoreV1:()=>QFe}),XFe={},ZFe={},QFe={},$Fe={},Pb($Fe,{LlmAdapter:()=>eIe}),eIe={Anthropic:`anthropic`,OpenAi:`openai`,Azure:`azure`,Bedrock:`bedrock`,GoogleVertexAi:`google-vertex-ai`,GoogleAiStudio:`google-ai-studio`},tIe={},Pb(tIe,{MediaContentType:()=>nIe}),nIe={ImagePng:`image/png`,ImageJpeg:`image/jpeg`,ImageJpg:`image/jpg`,ImageWebp:`image/webp`,ImageGif:`image/gif`,ImageSvgXml:`image/svg+xml`,ImageTiff:`image/tiff`,ImageBmp:`image/bmp`,ImageAvif:`image/avif`,ImageHeic:`image/heic`,AudioMpeg:`audio/mpeg`,AudioMp3:`audio/mp3`,AudioWav:`audio/wav`,AudioOgg:`audio/ogg`,AudioOga:`audio/oga`,AudioAac:`audio/aac`,AudioMp4:`audio/mp4`,AudioFlac:`audio/flac`,AudioOpus:`audio/opus`,AudioWebm:`audio/webm`,VideoMp4:`video/mp4`,VideoWebm:`video/webm`,VideoOgg:`video/ogg`,VideoMpeg:`video/mpeg`,VideoQuicktime:`video/quicktime`,VideoXMsvideo:`video/x-msvideo`,VideoXMatroska:`video/x-matroska`,TextPlain:`text/plain`,TextHtml:`text/html`,TextCss:`text/css`,TextCsv:`text/csv`,TextMarkdown:`text/markdown`,TextXPython:`text/x-python`,ApplicationJavascript:`application/javascript`,TextXTypescript:`text/x-typescript`,ApplicationXYaml:`application/x-yaml`,ApplicationPdf:`application/pdf`,ApplicationMsword:`application/msword`,ApplicationMsExcel:`application/vnd.ms-excel`,ApplicationOpenxmlSpreadsheet:`application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`,ApplicationZip:`application/zip`,ApplicationJson:`application/json`,ApplicationXml:`application/xml`,ApplicationOctetStream:`application/octet-stream`,ApplicationOpenxmlWord:`application/vnd.openxmlformats-officedocument.wordprocessingml.document`,ApplicationOpenxmlPresentation:`application/vnd.openxmlformats-officedocument.presentationml.presentation`,ApplicationRtf:`application/rtf`,ApplicationXNdjson:`application/x-ndjson`,ApplicationParquet:`application/vnd.apache.parquet`,ApplicationGzip:`application/gzip`,ApplicationXTar:`application/x-tar`,ApplicationX7ZCompressed:`application/x-7z-compressed`},rIe={},Pb(rIe,{MembershipRole:()=>iIe}),iIe={Owner:`OWNER`,Admin:`ADMIN`,Member:`MEMBER`,Viewer:`VIEWER`},aIe={},Pb(aIe,{ChatMessageType:()=>sIe,CreateChatPromptType:()=>lIe,CreateTextPromptType:()=>uIe,PlaceholderMessageType:()=>cIe,PromptType:()=>oIe}),oIe={Chat:`chat`,Text:`text`},sIe={Chatmessage:`chatmessage`},cIe={Placeholder:`placeholder`},lIe={Chat:`chat`},uIe={Text:`text`},dIe={},Pb(dIe,{pagination:()=>fIe}),fIe={},pIe={arrayFormat:`indices`,encode:!0},mIe=`timeout`,hIe=async(e,t,n,r,i,a,o,s,c)=>{let l=[],u;if(a!=null){let{signal:e,abortId:t}=iFe(a);u=t,l.push(e)}o!=null&&l.push(o);let d=await e(t,{method:n,headers:r,body:i,signal:aFe(l),credentials:s?`include`:void 0,duplex:c});return u!=null&&clearTimeout(u),d},Xb=globalThis.Headers===void 0?class e{constructor(t){if(this.headers=new Map,t)if(t instanceof e)t.forEach((e,t)=>this.append(t,e));else if(Array.isArray(t))for(let[e,n]of t)if(typeof e==`string`&&typeof n==`string`)this.append(e,n);else throw TypeError(`Each header entry must be a [string, string] tuple`);else for(let[e,n]of Object.entries(t))if(typeof n==`string`)this.append(e,n);else throw TypeError(`Header values must be strings`)}append(e,t){let n=e.toLowerCase(),r=this.headers.get(n)||[];this.headers.set(n,[...r,t])}delete(e){let t=e.toLowerCase();this.headers.delete(t)}get(e){let t=e.toLowerCase(),n=this.headers.get(t);return n?n.join(`, `):null}has(e){let t=e.toLowerCase();return this.headers.has(t)}set(e,t){let n=e.toLowerCase();this.headers.set(n,[t])}forEach(e,t){let n=t?e.bind(t):e;this.headers.forEach((e,t)=>n(e.join(`, `),t,this))}getSetCookie(){return this.headers.get(`set-cookie`)||[]}*entries(){for(let[e,t]of this.headers.entries())yield[e,t.join(`, `)]}*keys(){yield*this.headers.keys()}*values(){for(let e of this.headers.values())yield e.join(`, `)}[Symbol.iterator](){return this.entries()}}:globalThis.Headers,Zb={headers:new Xb,redirected:!1,status:499,statusText:`Client Closed Request`,type:`error`,url:``},Qb={headers:new Xb,redirected:!1,status:0,statusText:`Unknown Error`,type:`error`,url:``},gIe=1e3,$b=6e4,_Ie=2,ex=.2,Z={get:async e=>typeof e==`function`?e():e},tx=fFe,nx=class e extends Promise{constructor(e){super(e=>{e(void 0)}),this.innerPromise=e}static fromFunction(t,...n){return new e(t(...n))}static interceptFunction(t){return(...n)=>e.fromPromise(t(...n))}static fromPromise(t){return new e(t)}static fromExecutor(t){return new e(new Promise(t))}static fromResult(t){return new e(Promise.resolve(t))}unwrap(){return this.unwrappedPromise||(this.unwrappedPromise=this.innerPromise.then(({data:e})=>e)),this.unwrappedPromise}then(e,t){return this.unwrap().then(e,t)}catch(e){return this.unwrap().catch(e)}finally(e){return this.unwrap().finally(e)}async withRawResponse(){return await this.innerPromise}},rx={},Pb(rx,{join:()=>pFe,toQueryString:()=>XPe}),vIe=/^Basic /i,ix={toAuthorizationHeader:e=>{if(e!=null)return`Basic ${yFe(`${e.username}:${e.password}`)}`},fromAuthorizationHeader:e=>{let[t,n]=bFe(e.replace(vIe,``)).split(`:`,2);if(t==null||n==null)throw Error(`Invalid basic auth`);return{username:t,password:n}}},yIe=class{constructor(e){this._options=e}listQueues(e={},t){return nx.fromPromise(this.__listQueues(e,t))}async __listQueues(e={},t){let{page:n,limit:r}=e,i={};n!=null&&(i.page=n.toString()),r!=null&&(i.limit=r.toString());let a=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),o=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/annotation-queues`),method:`GET`,headers:a,queryParameters:{...i,...t?.queryParams},timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(o.ok)return{data:o.body,rawResponse:o.rawResponse};if(o.error.reason===`status-code`)switch(o.error.statusCode){case 400:throw new Wb(o.error.body,o.rawResponse);case 401:throw new Gb(o.error.body,o.rawResponse);case 403:throw new Kb(o.error.body,o.rawResponse);case 405:throw new Jb(o.error.body,o.rawResponse);case 404:throw new qb(o.error.body,o.rawResponse);default:throw new X({statusCode:o.error.statusCode,body:o.error.body,rawResponse:o.rawResponse})}switch(o.error.reason){case`non-json`:throw new X({statusCode:o.error.statusCode,body:o.error.rawBody,rawResponse:o.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/annotation-queues.`);case`unknown`:throw new X({message:o.error.errorMessage,rawResponse:o.rawResponse})}}createQueue(e,t){return nx.fromPromise(this.__createQueue(e,t))}async __createQueue(e,t){let n=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),r=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/annotation-queues`),method:`POST`,headers:n,contentType:`application/json`,queryParameters:t?.queryParams,requestType:`json`,body:e,timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(r.ok)return{data:r.body,rawResponse:r.rawResponse};if(r.error.reason===`status-code`)switch(r.error.statusCode){case 400:throw new Wb(r.error.body,r.rawResponse);case 401:throw new Gb(r.error.body,r.rawResponse);case 403:throw new Kb(r.error.body,r.rawResponse);case 405:throw new Jb(r.error.body,r.rawResponse);case 404:throw new qb(r.error.body,r.rawResponse);default:throw new X({statusCode:r.error.statusCode,body:r.error.body,rawResponse:r.rawResponse})}switch(r.error.reason){case`non-json`:throw new X({statusCode:r.error.statusCode,body:r.error.rawBody,rawResponse:r.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling POST /api/public/annotation-queues.`);case`unknown`:throw new X({message:r.error.errorMessage,rawResponse:r.rawResponse})}}getQueue(e,t){return nx.fromPromise(this.__getQueue(e,t))}async __getQueue(e,t){let n=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),r=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/annotation-queues/${encodeURIComponent(e)}`),method:`GET`,headers:n,queryParameters:t?.queryParams,timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(r.ok)return{data:r.body,rawResponse:r.rawResponse};if(r.error.reason===`status-code`)switch(r.error.statusCode){case 400:throw new Wb(r.error.body,r.rawResponse);case 401:throw new Gb(r.error.body,r.rawResponse);case 403:throw new Kb(r.error.body,r.rawResponse);case 405:throw new Jb(r.error.body,r.rawResponse);case 404:throw new qb(r.error.body,r.rawResponse);default:throw new X({statusCode:r.error.statusCode,body:r.error.body,rawResponse:r.rawResponse})}switch(r.error.reason){case`non-json`:throw new X({statusCode:r.error.statusCode,body:r.error.rawBody,rawResponse:r.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/annotation-queues/{queueId}.`);case`unknown`:throw new X({message:r.error.errorMessage,rawResponse:r.rawResponse})}}listQueueItems(e,t={},n){return nx.fromPromise(this.__listQueueItems(e,t,n))}async __listQueueItems(e,t={},n){let{status:r,page:i,limit:a}=t,o={};r!=null&&(o.status=r),i!=null&&(o.page=i.toString()),a!=null&&(o.limit=a.toString());let s=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":n?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":n?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":n?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),n?.headers),c=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/annotation-queues/${encodeURIComponent(e)}/items`),method:`GET`,headers:s,queryParameters:{...o,...n?.queryParams},timeoutMs:n?.timeoutInSeconds==null?6e4:n.timeoutInSeconds*1e3,maxRetries:n?.maxRetries,abortSignal:n?.abortSignal});if(c.ok)return{data:c.body,rawResponse:c.rawResponse};if(c.error.reason===`status-code`)switch(c.error.statusCode){case 400:throw new Wb(c.error.body,c.rawResponse);case 401:throw new Gb(c.error.body,c.rawResponse);case 403:throw new Kb(c.error.body,c.rawResponse);case 405:throw new Jb(c.error.body,c.rawResponse);case 404:throw new qb(c.error.body,c.rawResponse);default:throw new X({statusCode:c.error.statusCode,body:c.error.body,rawResponse:c.rawResponse})}switch(c.error.reason){case`non-json`:throw new X({statusCode:c.error.statusCode,body:c.error.rawBody,rawResponse:c.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/annotation-queues/{queueId}/items.`);case`unknown`:throw new X({message:c.error.errorMessage,rawResponse:c.rawResponse})}}getQueueItem(e,t,n){return nx.fromPromise(this.__getQueueItem(e,t,n))}async __getQueueItem(e,t,n){let r=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":n?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":n?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":n?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),n?.headers),i=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/annotation-queues/${encodeURIComponent(e)}/items/${encodeURIComponent(t)}`),method:`GET`,headers:r,queryParameters:n?.queryParams,timeoutMs:n?.timeoutInSeconds==null?6e4:n.timeoutInSeconds*1e3,maxRetries:n?.maxRetries,abortSignal:n?.abortSignal});if(i.ok)return{data:i.body,rawResponse:i.rawResponse};if(i.error.reason===`status-code`)switch(i.error.statusCode){case 400:throw new Wb(i.error.body,i.rawResponse);case 401:throw new Gb(i.error.body,i.rawResponse);case 403:throw new Kb(i.error.body,i.rawResponse);case 405:throw new Jb(i.error.body,i.rawResponse);case 404:throw new qb(i.error.body,i.rawResponse);default:throw new X({statusCode:i.error.statusCode,body:i.error.body,rawResponse:i.rawResponse})}switch(i.error.reason){case`non-json`:throw new X({statusCode:i.error.statusCode,body:i.error.rawBody,rawResponse:i.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/annotation-queues/{queueId}/items/{itemId}.`);case`unknown`:throw new X({message:i.error.errorMessage,rawResponse:i.rawResponse})}}createQueueItem(e,t,n){return nx.fromPromise(this.__createQueueItem(e,t,n))}async __createQueueItem(e,t,n){let r=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":n?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":n?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":n?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),n?.headers),i=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/annotation-queues/${encodeURIComponent(e)}/items`),method:`POST`,headers:r,contentType:`application/json`,queryParameters:n?.queryParams,requestType:`json`,body:t,timeoutMs:n?.timeoutInSeconds==null?6e4:n.timeoutInSeconds*1e3,maxRetries:n?.maxRetries,abortSignal:n?.abortSignal});if(i.ok)return{data:i.body,rawResponse:i.rawResponse};if(i.error.reason===`status-code`)switch(i.error.statusCode){case 400:throw new Wb(i.error.body,i.rawResponse);case 401:throw new Gb(i.error.body,i.rawResponse);case 403:throw new Kb(i.error.body,i.rawResponse);case 405:throw new Jb(i.error.body,i.rawResponse);case 404:throw new qb(i.error.body,i.rawResponse);default:throw new X({statusCode:i.error.statusCode,body:i.error.body,rawResponse:i.rawResponse})}switch(i.error.reason){case`non-json`:throw new X({statusCode:i.error.statusCode,body:i.error.rawBody,rawResponse:i.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling POST /api/public/annotation-queues/{queueId}/items.`);case`unknown`:throw new X({message:i.error.errorMessage,rawResponse:i.rawResponse})}}updateQueueItem(e,t,n,r){return nx.fromPromise(this.__updateQueueItem(e,t,n,r))}async __updateQueueItem(e,t,n,r){let i=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":r?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":r?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":r?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),r?.headers),a=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/annotation-queues/${encodeURIComponent(e)}/items/${encodeURIComponent(t)}`),method:`PATCH`,headers:i,contentType:`application/json`,queryParameters:r?.queryParams,requestType:`json`,body:n,timeoutMs:r?.timeoutInSeconds==null?6e4:r.timeoutInSeconds*1e3,maxRetries:r?.maxRetries,abortSignal:r?.abortSignal});if(a.ok)return{data:a.body,rawResponse:a.rawResponse};if(a.error.reason===`status-code`)switch(a.error.statusCode){case 400:throw new Wb(a.error.body,a.rawResponse);case 401:throw new Gb(a.error.body,a.rawResponse);case 403:throw new Kb(a.error.body,a.rawResponse);case 405:throw new Jb(a.error.body,a.rawResponse);case 404:throw new qb(a.error.body,a.rawResponse);default:throw new X({statusCode:a.error.statusCode,body:a.error.body,rawResponse:a.rawResponse})}switch(a.error.reason){case`non-json`:throw new X({statusCode:a.error.statusCode,body:a.error.rawBody,rawResponse:a.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling PATCH /api/public/annotation-queues/{queueId}/items/{itemId}.`);case`unknown`:throw new X({message:a.error.errorMessage,rawResponse:a.rawResponse})}}deleteQueueItem(e,t,n){return nx.fromPromise(this.__deleteQueueItem(e,t,n))}async __deleteQueueItem(e,t,n){let r=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":n?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":n?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":n?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),n?.headers),i=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/annotation-queues/${encodeURIComponent(e)}/items/${encodeURIComponent(t)}`),method:`DELETE`,headers:r,queryParameters:n?.queryParams,timeoutMs:n?.timeoutInSeconds==null?6e4:n.timeoutInSeconds*1e3,maxRetries:n?.maxRetries,abortSignal:n?.abortSignal});if(i.ok)return{data:i.body,rawResponse:i.rawResponse};if(i.error.reason===`status-code`)switch(i.error.statusCode){case 400:throw new Wb(i.error.body,i.rawResponse);case 401:throw new Gb(i.error.body,i.rawResponse);case 403:throw new Kb(i.error.body,i.rawResponse);case 405:throw new Jb(i.error.body,i.rawResponse);case 404:throw new qb(i.error.body,i.rawResponse);default:throw new X({statusCode:i.error.statusCode,body:i.error.body,rawResponse:i.rawResponse})}switch(i.error.reason){case`non-json`:throw new X({statusCode:i.error.statusCode,body:i.error.rawBody,rawResponse:i.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling DELETE /api/public/annotation-queues/{queueId}/items/{itemId}.`);case`unknown`:throw new X({message:i.error.errorMessage,rawResponse:i.rawResponse})}}createQueueAssignment(e,t,n){return nx.fromPromise(this.__createQueueAssignment(e,t,n))}async __createQueueAssignment(e,t,n){let r=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":n?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":n?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":n?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),n?.headers),i=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/annotation-queues/${encodeURIComponent(e)}/assignments`),method:`POST`,headers:r,contentType:`application/json`,queryParameters:n?.queryParams,requestType:`json`,body:t,timeoutMs:n?.timeoutInSeconds==null?6e4:n.timeoutInSeconds*1e3,maxRetries:n?.maxRetries,abortSignal:n?.abortSignal});if(i.ok)return{data:i.body,rawResponse:i.rawResponse};if(i.error.reason===`status-code`)switch(i.error.statusCode){case 400:throw new Wb(i.error.body,i.rawResponse);case 401:throw new Gb(i.error.body,i.rawResponse);case 403:throw new Kb(i.error.body,i.rawResponse);case 405:throw new Jb(i.error.body,i.rawResponse);case 404:throw new qb(i.error.body,i.rawResponse);default:throw new X({statusCode:i.error.statusCode,body:i.error.body,rawResponse:i.rawResponse})}switch(i.error.reason){case`non-json`:throw new X({statusCode:i.error.statusCode,body:i.error.rawBody,rawResponse:i.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling POST /api/public/annotation-queues/{queueId}/assignments.`);case`unknown`:throw new X({message:i.error.errorMessage,rawResponse:i.rawResponse})}}deleteQueueAssignment(e,t,n){return nx.fromPromise(this.__deleteQueueAssignment(e,t,n))}async __deleteQueueAssignment(e,t,n){let r=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":n?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":n?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":n?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),n?.headers),i=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/annotation-queues/${encodeURIComponent(e)}/assignments`),method:`DELETE`,headers:r,contentType:`application/json`,queryParameters:n?.queryParams,requestType:`json`,body:t,timeoutMs:n?.timeoutInSeconds==null?6e4:n.timeoutInSeconds*1e3,maxRetries:n?.maxRetries,abortSignal:n?.abortSignal});if(i.ok)return{data:i.body,rawResponse:i.rawResponse};if(i.error.reason===`status-code`)switch(i.error.statusCode){case 400:throw new Wb(i.error.body,i.rawResponse);case 401:throw new Gb(i.error.body,i.rawResponse);case 403:throw new Kb(i.error.body,i.rawResponse);case 405:throw new Jb(i.error.body,i.rawResponse);case 404:throw new qb(i.error.body,i.rawResponse);default:throw new X({statusCode:i.error.statusCode,body:i.error.body,rawResponse:i.rawResponse})}switch(i.error.reason){case`non-json`:throw new X({statusCode:i.error.statusCode,body:i.error.rawBody,rawResponse:i.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling DELETE /api/public/annotation-queues/{queueId}/assignments.`);case`unknown`:throw new X({message:i.error.errorMessage,rawResponse:i.rawResponse})}}async _getAuthorizationHeader(){let e=await Z.get(this._options.username),t=await Z.get(this._options.password);if(e!=null&&t!=null)return ix.toAuthorizationHeader({username:e,password:t})}},bIe=class{constructor(e){this._options=e}getBlobStorageIntegrations(e){return nx.fromPromise(this.__getBlobStorageIntegrations(e))}async __getBlobStorageIntegrations(e){let t=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":e?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":e?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":e?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),e?.headers),n=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/integrations/blob-storage`),method:`GET`,headers:t,queryParameters:e?.queryParams,timeoutMs:e?.timeoutInSeconds==null?6e4:e.timeoutInSeconds*1e3,maxRetries:e?.maxRetries,abortSignal:e?.abortSignal});if(n.ok)return{data:n.body,rawResponse:n.rawResponse};if(n.error.reason===`status-code`)switch(n.error.statusCode){case 400:throw new Wb(n.error.body,n.rawResponse);case 401:throw new Gb(n.error.body,n.rawResponse);case 403:throw new Kb(n.error.body,n.rawResponse);case 405:throw new Jb(n.error.body,n.rawResponse);case 404:throw new qb(n.error.body,n.rawResponse);default:throw new X({statusCode:n.error.statusCode,body:n.error.body,rawResponse:n.rawResponse})}switch(n.error.reason){case`non-json`:throw new X({statusCode:n.error.statusCode,body:n.error.rawBody,rawResponse:n.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/integrations/blob-storage.`);case`unknown`:throw new X({message:n.error.errorMessage,rawResponse:n.rawResponse})}}upsertBlobStorageIntegration(e,t){return nx.fromPromise(this.__upsertBlobStorageIntegration(e,t))}async __upsertBlobStorageIntegration(e,t){let n=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),r=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/integrations/blob-storage`),method:`PUT`,headers:n,contentType:`application/json`,queryParameters:t?.queryParams,requestType:`json`,body:e,timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(r.ok)return{data:r.body,rawResponse:r.rawResponse};if(r.error.reason===`status-code`)switch(r.error.statusCode){case 400:throw new Wb(r.error.body,r.rawResponse);case 401:throw new Gb(r.error.body,r.rawResponse);case 403:throw new Kb(r.error.body,r.rawResponse);case 405:throw new Jb(r.error.body,r.rawResponse);case 404:throw new qb(r.error.body,r.rawResponse);default:throw new X({statusCode:r.error.statusCode,body:r.error.body,rawResponse:r.rawResponse})}switch(r.error.reason){case`non-json`:throw new X({statusCode:r.error.statusCode,body:r.error.rawBody,rawResponse:r.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling PUT /api/public/integrations/blob-storage.`);case`unknown`:throw new X({message:r.error.errorMessage,rawResponse:r.rawResponse})}}getBlobStorageIntegrationStatus(e,t){return nx.fromPromise(this.__getBlobStorageIntegrationStatus(e,t))}async __getBlobStorageIntegrationStatus(e,t){let n=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),r=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/integrations/blob-storage/${encodeURIComponent(e)}`),method:`GET`,headers:n,queryParameters:t?.queryParams,timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(r.ok)return{data:r.body,rawResponse:r.rawResponse};if(r.error.reason===`status-code`)switch(r.error.statusCode){case 400:throw new Wb(r.error.body,r.rawResponse);case 401:throw new Gb(r.error.body,r.rawResponse);case 403:throw new Kb(r.error.body,r.rawResponse);case 405:throw new Jb(r.error.body,r.rawResponse);case 404:throw new qb(r.error.body,r.rawResponse);default:throw new X({statusCode:r.error.statusCode,body:r.error.body,rawResponse:r.rawResponse})}switch(r.error.reason){case`non-json`:throw new X({statusCode:r.error.statusCode,body:r.error.rawBody,rawResponse:r.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/integrations/blob-storage/{id}.`);case`unknown`:throw new X({message:r.error.errorMessage,rawResponse:r.rawResponse})}}deleteBlobStorageIntegration(e,t){return nx.fromPromise(this.__deleteBlobStorageIntegration(e,t))}async __deleteBlobStorageIntegration(e,t){let n=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),r=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/integrations/blob-storage/${encodeURIComponent(e)}`),method:`DELETE`,headers:n,queryParameters:t?.queryParams,timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(r.ok)return{data:r.body,rawResponse:r.rawResponse};if(r.error.reason===`status-code`)switch(r.error.statusCode){case 400:throw new Wb(r.error.body,r.rawResponse);case 401:throw new Gb(r.error.body,r.rawResponse);case 403:throw new Kb(r.error.body,r.rawResponse);case 405:throw new Jb(r.error.body,r.rawResponse);case 404:throw new qb(r.error.body,r.rawResponse);default:throw new X({statusCode:r.error.statusCode,body:r.error.body,rawResponse:r.rawResponse})}switch(r.error.reason){case`non-json`:throw new X({statusCode:r.error.statusCode,body:r.error.rawBody,rawResponse:r.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling DELETE /api/public/integrations/blob-storage/{id}.`);case`unknown`:throw new X({message:r.error.errorMessage,rawResponse:r.rawResponse})}}async _getAuthorizationHeader(){let e=await Z.get(this._options.username),t=await Z.get(this._options.password);if(e!=null&&t!=null)return ix.toAuthorizationHeader({username:e,password:t})}},xIe=class{constructor(e){this._options=e}create(e,t){return nx.fromPromise(this.__create(e,t))}async __create(e,t){let n=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),r=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/comments`),method:`POST`,headers:n,contentType:`application/json`,queryParameters:t?.queryParams,requestType:`json`,body:e,timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(r.ok)return{data:r.body,rawResponse:r.rawResponse};if(r.error.reason===`status-code`)switch(r.error.statusCode){case 400:throw new Wb(r.error.body,r.rawResponse);case 401:throw new Gb(r.error.body,r.rawResponse);case 403:throw new Kb(r.error.body,r.rawResponse);case 405:throw new Jb(r.error.body,r.rawResponse);case 404:throw new qb(r.error.body,r.rawResponse);default:throw new X({statusCode:r.error.statusCode,body:r.error.body,rawResponse:r.rawResponse})}switch(r.error.reason){case`non-json`:throw new X({statusCode:r.error.statusCode,body:r.error.rawBody,rawResponse:r.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling POST /api/public/comments.`);case`unknown`:throw new X({message:r.error.errorMessage,rawResponse:r.rawResponse})}}get(e={},t){return nx.fromPromise(this.__get(e,t))}async __get(e={},t){let{page:n,limit:r,objectType:i,objectId:a,authorUserId:o}=e,s={};n!=null&&(s.page=n.toString()),r!=null&&(s.limit=r.toString()),i!=null&&(s.objectType=i),a!=null&&(s.objectId=a),o!=null&&(s.authorUserId=o);let c=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),l=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/comments`),method:`GET`,headers:c,queryParameters:{...s,...t?.queryParams},timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(l.ok)return{data:l.body,rawResponse:l.rawResponse};if(l.error.reason===`status-code`)switch(l.error.statusCode){case 400:throw new Wb(l.error.body,l.rawResponse);case 401:throw new Gb(l.error.body,l.rawResponse);case 403:throw new Kb(l.error.body,l.rawResponse);case 405:throw new Jb(l.error.body,l.rawResponse);case 404:throw new qb(l.error.body,l.rawResponse);default:throw new X({statusCode:l.error.statusCode,body:l.error.body,rawResponse:l.rawResponse})}switch(l.error.reason){case`non-json`:throw new X({statusCode:l.error.statusCode,body:l.error.rawBody,rawResponse:l.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/comments.`);case`unknown`:throw new X({message:l.error.errorMessage,rawResponse:l.rawResponse})}}getById(e,t){return nx.fromPromise(this.__getById(e,t))}async __getById(e,t){let n=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),r=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/comments/${encodeURIComponent(e)}`),method:`GET`,headers:n,queryParameters:t?.queryParams,timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(r.ok)return{data:r.body,rawResponse:r.rawResponse};if(r.error.reason===`status-code`)switch(r.error.statusCode){case 400:throw new Wb(r.error.body,r.rawResponse);case 401:throw new Gb(r.error.body,r.rawResponse);case 403:throw new Kb(r.error.body,r.rawResponse);case 405:throw new Jb(r.error.body,r.rawResponse);case 404:throw new qb(r.error.body,r.rawResponse);default:throw new X({statusCode:r.error.statusCode,body:r.error.body,rawResponse:r.rawResponse})}switch(r.error.reason){case`non-json`:throw new X({statusCode:r.error.statusCode,body:r.error.rawBody,rawResponse:r.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/comments/{commentId}.`);case`unknown`:throw new X({message:r.error.errorMessage,rawResponse:r.rawResponse})}}async _getAuthorizationHeader(){let e=await Z.get(this._options.username),t=await Z.get(this._options.password);if(e!=null&&t!=null)return ix.toAuthorizationHeader({username:e,password:t})}},SIe=class{constructor(e){this._options=e}create(e,t){return nx.fromPromise(this.__create(e,t))}async __create(e,t){let n=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),r=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/dataset-items`),method:`POST`,headers:n,contentType:`application/json`,queryParameters:t?.queryParams,requestType:`json`,body:e,timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(r.ok)return{data:r.body,rawResponse:r.rawResponse};if(r.error.reason===`status-code`)switch(r.error.statusCode){case 400:throw new Wb(r.error.body,r.rawResponse);case 401:throw new Gb(r.error.body,r.rawResponse);case 403:throw new Kb(r.error.body,r.rawResponse);case 405:throw new Jb(r.error.body,r.rawResponse);case 404:throw new qb(r.error.body,r.rawResponse);default:throw new X({statusCode:r.error.statusCode,body:r.error.body,rawResponse:r.rawResponse})}switch(r.error.reason){case`non-json`:throw new X({statusCode:r.error.statusCode,body:r.error.rawBody,rawResponse:r.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling POST /api/public/dataset-items.`);case`unknown`:throw new X({message:r.error.errorMessage,rawResponse:r.rawResponse})}}get(e,t){return nx.fromPromise(this.__get(e,t))}async __get(e,t){let n=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),r=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/dataset-items/${encodeURIComponent(e)}`),method:`GET`,headers:n,queryParameters:t?.queryParams,timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(r.ok)return{data:r.body,rawResponse:r.rawResponse};if(r.error.reason===`status-code`)switch(r.error.statusCode){case 400:throw new Wb(r.error.body,r.rawResponse);case 401:throw new Gb(r.error.body,r.rawResponse);case 403:throw new Kb(r.error.body,r.rawResponse);case 405:throw new Jb(r.error.body,r.rawResponse);case 404:throw new qb(r.error.body,r.rawResponse);default:throw new X({statusCode:r.error.statusCode,body:r.error.body,rawResponse:r.rawResponse})}switch(r.error.reason){case`non-json`:throw new X({statusCode:r.error.statusCode,body:r.error.rawBody,rawResponse:r.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/dataset-items/{id}.`);case`unknown`:throw new X({message:r.error.errorMessage,rawResponse:r.rawResponse})}}list(e={},t){return nx.fromPromise(this.__list(e,t))}async __list(e={},t){let{datasetName:n,sourceTraceId:r,sourceObservationId:i,version:a,page:o,limit:s}=e,c={};n!=null&&(c.datasetName=n),r!=null&&(c.sourceTraceId=r),i!=null&&(c.sourceObservationId=i),a!=null&&(c.version=a),o!=null&&(c.page=o.toString()),s!=null&&(c.limit=s.toString());let l=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),u=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/dataset-items`),method:`GET`,headers:l,queryParameters:{...c,...t?.queryParams},timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(u.ok)return{data:u.body,rawResponse:u.rawResponse};if(u.error.reason===`status-code`)switch(u.error.statusCode){case 400:throw new Wb(u.error.body,u.rawResponse);case 401:throw new Gb(u.error.body,u.rawResponse);case 403:throw new Kb(u.error.body,u.rawResponse);case 405:throw new Jb(u.error.body,u.rawResponse);case 404:throw new qb(u.error.body,u.rawResponse);default:throw new X({statusCode:u.error.statusCode,body:u.error.body,rawResponse:u.rawResponse})}switch(u.error.reason){case`non-json`:throw new X({statusCode:u.error.statusCode,body:u.error.rawBody,rawResponse:u.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/dataset-items.`);case`unknown`:throw new X({message:u.error.errorMessage,rawResponse:u.rawResponse})}}delete(e,t){return nx.fromPromise(this.__delete(e,t))}async __delete(e,t){let n=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),r=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/dataset-items/${encodeURIComponent(e)}`),method:`DELETE`,headers:n,queryParameters:t?.queryParams,timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(r.ok)return{data:r.body,rawResponse:r.rawResponse};if(r.error.reason===`status-code`)switch(r.error.statusCode){case 400:throw new Wb(r.error.body,r.rawResponse);case 401:throw new Gb(r.error.body,r.rawResponse);case 403:throw new Kb(r.error.body,r.rawResponse);case 405:throw new Jb(r.error.body,r.rawResponse);case 404:throw new qb(r.error.body,r.rawResponse);default:throw new X({statusCode:r.error.statusCode,body:r.error.body,rawResponse:r.rawResponse})}switch(r.error.reason){case`non-json`:throw new X({statusCode:r.error.statusCode,body:r.error.rawBody,rawResponse:r.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling DELETE /api/public/dataset-items/{id}.`);case`unknown`:throw new X({message:r.error.errorMessage,rawResponse:r.rawResponse})}}async _getAuthorizationHeader(){let e=await Z.get(this._options.username),t=await Z.get(this._options.password);if(e!=null&&t!=null)return ix.toAuthorizationHeader({username:e,password:t})}},CIe=class{constructor(e){this._options=e}create(e,t){return nx.fromPromise(this.__create(e,t))}async __create(e,t){let n=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),r=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/dataset-run-items`),method:`POST`,headers:n,contentType:`application/json`,queryParameters:t?.queryParams,requestType:`json`,body:e,timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(r.ok)return{data:r.body,rawResponse:r.rawResponse};if(r.error.reason===`status-code`)switch(r.error.statusCode){case 400:throw new Wb(r.error.body,r.rawResponse);case 401:throw new Gb(r.error.body,r.rawResponse);case 403:throw new Kb(r.error.body,r.rawResponse);case 405:throw new Jb(r.error.body,r.rawResponse);case 404:throw new qb(r.error.body,r.rawResponse);default:throw new X({statusCode:r.error.statusCode,body:r.error.body,rawResponse:r.rawResponse})}switch(r.error.reason){case`non-json`:throw new X({statusCode:r.error.statusCode,body:r.error.rawBody,rawResponse:r.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling POST /api/public/dataset-run-items.`);case`unknown`:throw new X({message:r.error.errorMessage,rawResponse:r.rawResponse})}}list(e,t){return nx.fromPromise(this.__list(e,t))}async __list(e,t){let{datasetId:n,runName:r,page:i,limit:a}=e,o={};o.datasetId=n,o.runName=r,i!=null&&(o.page=i.toString()),a!=null&&(o.limit=a.toString());let s=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),c=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/dataset-run-items`),method:`GET`,headers:s,queryParameters:{...o,...t?.queryParams},timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(c.ok)return{data:c.body,rawResponse:c.rawResponse};if(c.error.reason===`status-code`)switch(c.error.statusCode){case 400:throw new Wb(c.error.body,c.rawResponse);case 401:throw new Gb(c.error.body,c.rawResponse);case 403:throw new Kb(c.error.body,c.rawResponse);case 405:throw new Jb(c.error.body,c.rawResponse);case 404:throw new qb(c.error.body,c.rawResponse);default:throw new X({statusCode:c.error.statusCode,body:c.error.body,rawResponse:c.rawResponse})}switch(c.error.reason){case`non-json`:throw new X({statusCode:c.error.statusCode,body:c.error.rawBody,rawResponse:c.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/dataset-run-items.`);case`unknown`:throw new X({message:c.error.errorMessage,rawResponse:c.rawResponse})}}async _getAuthorizationHeader(){let e=await Z.get(this._options.username),t=await Z.get(this._options.password);if(e!=null&&t!=null)return ix.toAuthorizationHeader({username:e,password:t})}},wIe=class{constructor(e){this._options=e}list(e={},t){return nx.fromPromise(this.__list(e,t))}async __list(e={},t){let{page:n,limit:r}=e,i={};n!=null&&(i.page=n.toString()),r!=null&&(i.limit=r.toString());let a=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),o=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/v2/datasets`),method:`GET`,headers:a,queryParameters:{...i,...t?.queryParams},timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(o.ok)return{data:o.body,rawResponse:o.rawResponse};if(o.error.reason===`status-code`)switch(o.error.statusCode){case 400:throw new Wb(o.error.body,o.rawResponse);case 401:throw new Gb(o.error.body,o.rawResponse);case 403:throw new Kb(o.error.body,o.rawResponse);case 405:throw new Jb(o.error.body,o.rawResponse);case 404:throw new qb(o.error.body,o.rawResponse);default:throw new X({statusCode:o.error.statusCode,body:o.error.body,rawResponse:o.rawResponse})}switch(o.error.reason){case`non-json`:throw new X({statusCode:o.error.statusCode,body:o.error.rawBody,rawResponse:o.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/v2/datasets.`);case`unknown`:throw new X({message:o.error.errorMessage,rawResponse:o.rawResponse})}}get(e,t){return nx.fromPromise(this.__get(e,t))}async __get(e,t){let n=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),r=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/v2/datasets/${encodeURIComponent(e)}`),method:`GET`,headers:n,queryParameters:t?.queryParams,timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(r.ok)return{data:r.body,rawResponse:r.rawResponse};if(r.error.reason===`status-code`)switch(r.error.statusCode){case 400:throw new Wb(r.error.body,r.rawResponse);case 401:throw new Gb(r.error.body,r.rawResponse);case 403:throw new Kb(r.error.body,r.rawResponse);case 405:throw new Jb(r.error.body,r.rawResponse);case 404:throw new qb(r.error.body,r.rawResponse);default:throw new X({statusCode:r.error.statusCode,body:r.error.body,rawResponse:r.rawResponse})}switch(r.error.reason){case`non-json`:throw new X({statusCode:r.error.statusCode,body:r.error.rawBody,rawResponse:r.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/v2/datasets/{datasetName}.`);case`unknown`:throw new X({message:r.error.errorMessage,rawResponse:r.rawResponse})}}create(e,t){return nx.fromPromise(this.__create(e,t))}async __create(e,t){let n=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),r=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/v2/datasets`),method:`POST`,headers:n,contentType:`application/json`,queryParameters:t?.queryParams,requestType:`json`,body:e,timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(r.ok)return{data:r.body,rawResponse:r.rawResponse};if(r.error.reason===`status-code`)switch(r.error.statusCode){case 400:throw new Wb(r.error.body,r.rawResponse);case 401:throw new Gb(r.error.body,r.rawResponse);case 403:throw new Kb(r.error.body,r.rawResponse);case 405:throw new Jb(r.error.body,r.rawResponse);case 404:throw new qb(r.error.body,r.rawResponse);default:throw new X({statusCode:r.error.statusCode,body:r.error.body,rawResponse:r.rawResponse})}switch(r.error.reason){case`non-json`:throw new X({statusCode:r.error.statusCode,body:r.error.rawBody,rawResponse:r.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling POST /api/public/v2/datasets.`);case`unknown`:throw new X({message:r.error.errorMessage,rawResponse:r.rawResponse})}}getRun(e,t,n){return nx.fromPromise(this.__getRun(e,t,n))}async __getRun(e,t,n){let r=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":n?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":n?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":n?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),n?.headers),i=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/datasets/${encodeURIComponent(e)}/runs/${encodeURIComponent(t)}`),method:`GET`,headers:r,queryParameters:n?.queryParams,timeoutMs:n?.timeoutInSeconds==null?6e4:n.timeoutInSeconds*1e3,maxRetries:n?.maxRetries,abortSignal:n?.abortSignal});if(i.ok)return{data:i.body,rawResponse:i.rawResponse};if(i.error.reason===`status-code`)switch(i.error.statusCode){case 400:throw new Wb(i.error.body,i.rawResponse);case 401:throw new Gb(i.error.body,i.rawResponse);case 403:throw new Kb(i.error.body,i.rawResponse);case 405:throw new Jb(i.error.body,i.rawResponse);case 404:throw new qb(i.error.body,i.rawResponse);default:throw new X({statusCode:i.error.statusCode,body:i.error.body,rawResponse:i.rawResponse})}switch(i.error.reason){case`non-json`:throw new X({statusCode:i.error.statusCode,body:i.error.rawBody,rawResponse:i.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/datasets/{datasetName}/runs/{runName}.`);case`unknown`:throw new X({message:i.error.errorMessage,rawResponse:i.rawResponse})}}deleteRun(e,t,n){return nx.fromPromise(this.__deleteRun(e,t,n))}async __deleteRun(e,t,n){let r=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":n?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":n?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":n?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),n?.headers),i=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/datasets/${encodeURIComponent(e)}/runs/${encodeURIComponent(t)}`),method:`DELETE`,headers:r,queryParameters:n?.queryParams,timeoutMs:n?.timeoutInSeconds==null?6e4:n.timeoutInSeconds*1e3,maxRetries:n?.maxRetries,abortSignal:n?.abortSignal});if(i.ok)return{data:i.body,rawResponse:i.rawResponse};if(i.error.reason===`status-code`)switch(i.error.statusCode){case 400:throw new Wb(i.error.body,i.rawResponse);case 401:throw new Gb(i.error.body,i.rawResponse);case 403:throw new Kb(i.error.body,i.rawResponse);case 405:throw new Jb(i.error.body,i.rawResponse);case 404:throw new qb(i.error.body,i.rawResponse);default:throw new X({statusCode:i.error.statusCode,body:i.error.body,rawResponse:i.rawResponse})}switch(i.error.reason){case`non-json`:throw new X({statusCode:i.error.statusCode,body:i.error.rawBody,rawResponse:i.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling DELETE /api/public/datasets/{datasetName}/runs/{runName}.`);case`unknown`:throw new X({message:i.error.errorMessage,rawResponse:i.rawResponse})}}getRuns(e,t={},n){return nx.fromPromise(this.__getRuns(e,t,n))}async __getRuns(e,t={},n){let{page:r,limit:i}=t,a={};r!=null&&(a.page=r.toString()),i!=null&&(a.limit=i.toString());let o=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":n?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":n?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":n?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),n?.headers),s=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/datasets/${encodeURIComponent(e)}/runs`),method:`GET`,headers:o,queryParameters:{...a,...n?.queryParams},timeoutMs:n?.timeoutInSeconds==null?6e4:n.timeoutInSeconds*1e3,maxRetries:n?.maxRetries,abortSignal:n?.abortSignal});if(s.ok)return{data:s.body,rawResponse:s.rawResponse};if(s.error.reason===`status-code`)switch(s.error.statusCode){case 400:throw new Wb(s.error.body,s.rawResponse);case 401:throw new Gb(s.error.body,s.rawResponse);case 403:throw new Kb(s.error.body,s.rawResponse);case 405:throw new Jb(s.error.body,s.rawResponse);case 404:throw new qb(s.error.body,s.rawResponse);default:throw new X({statusCode:s.error.statusCode,body:s.error.body,rawResponse:s.rawResponse})}switch(s.error.reason){case`non-json`:throw new X({statusCode:s.error.statusCode,body:s.error.rawBody,rawResponse:s.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/datasets/{datasetName}/runs.`);case`unknown`:throw new X({message:s.error.errorMessage,rawResponse:s.rawResponse})}}async _getAuthorizationHeader(){let e=await Z.get(this._options.username),t=await Z.get(this._options.password);if(e!=null&&t!=null)return ix.toAuthorizationHeader({username:e,password:t})}},TIe=class{constructor(e){this._options=e}health(e){return nx.fromPromise(this.__health(e))}async __health(e){let t=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":e?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":e?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":e?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),e?.headers),n=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/health`),method:`GET`,headers:t,queryParameters:e?.queryParams,timeoutMs:e?.timeoutInSeconds==null?6e4:e.timeoutInSeconds*1e3,maxRetries:e?.maxRetries,abortSignal:e?.abortSignal});if(n.ok)return{data:n.body,rawResponse:n.rawResponse};if(n.error.reason===`status-code`)switch(n.error.statusCode){case 503:throw new Yb(n.rawResponse);case 400:throw new Wb(n.error.body,n.rawResponse);case 401:throw new Gb(n.error.body,n.rawResponse);case 403:throw new Kb(n.error.body,n.rawResponse);case 405:throw new Jb(n.error.body,n.rawResponse);case 404:throw new qb(n.error.body,n.rawResponse);default:throw new X({statusCode:n.error.statusCode,body:n.error.body,rawResponse:n.rawResponse})}switch(n.error.reason){case`non-json`:throw new X({statusCode:n.error.statusCode,body:n.error.rawBody,rawResponse:n.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/health.`);case`unknown`:throw new X({message:n.error.errorMessage,rawResponse:n.rawResponse})}}async _getAuthorizationHeader(){let e=await Z.get(this._options.username),t=await Z.get(this._options.password);if(e!=null&&t!=null)return ix.toAuthorizationHeader({username:e,password:t})}},EIe=class{constructor(e){this._options=e}batch(e,t){return nx.fromPromise(this.__batch(e,t))}async __batch(e,t){let n=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),r=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/ingestion`),method:`POST`,headers:n,contentType:`application/json`,queryParameters:t?.queryParams,requestType:`json`,body:e,timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(r.ok)return{data:r.body,rawResponse:r.rawResponse};if(r.error.reason===`status-code`)switch(r.error.statusCode){case 400:throw new Wb(r.error.body,r.rawResponse);case 401:throw new Gb(r.error.body,r.rawResponse);case 403:throw new Kb(r.error.body,r.rawResponse);case 405:throw new Jb(r.error.body,r.rawResponse);case 404:throw new qb(r.error.body,r.rawResponse);default:throw new X({statusCode:r.error.statusCode,body:r.error.body,rawResponse:r.rawResponse})}switch(r.error.reason){case`non-json`:throw new X({statusCode:r.error.statusCode,body:r.error.rawBody,rawResponse:r.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling POST /api/public/ingestion.`);case`unknown`:throw new X({message:r.error.errorMessage,rawResponse:r.rawResponse})}}async _getAuthorizationHeader(){let e=await Z.get(this._options.username),t=await Z.get(this._options.password);if(e!=null&&t!=null)return ix.toAuthorizationHeader({username:e,password:t})}},DIe=class{constructor(e){this._options=e}metrics(e,t){return nx.fromPromise(this.__metrics(e,t))}async __metrics(e,t){let{query:n}=e,r={};r.query=n;let i=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),a=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/metrics`),method:`GET`,headers:i,queryParameters:{...r,...t?.queryParams},timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(a.ok)return{data:a.body,rawResponse:a.rawResponse};if(a.error.reason===`status-code`)switch(a.error.statusCode){case 400:throw new Wb(a.error.body,a.rawResponse);case 401:throw new Gb(a.error.body,a.rawResponse);case 403:throw new Kb(a.error.body,a.rawResponse);case 405:throw new Jb(a.error.body,a.rawResponse);case 404:throw new qb(a.error.body,a.rawResponse);default:throw new X({statusCode:a.error.statusCode,body:a.error.body,rawResponse:a.rawResponse})}switch(a.error.reason){case`non-json`:throw new X({statusCode:a.error.statusCode,body:a.error.rawBody,rawResponse:a.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/metrics.`);case`unknown`:throw new X({message:a.error.errorMessage,rawResponse:a.rawResponse})}}async _getAuthorizationHeader(){let e=await Z.get(this._options.username),t=await Z.get(this._options.password);if(e!=null&&t!=null)return ix.toAuthorizationHeader({username:e,password:t})}},OIe=class{constructor(e){this._options=e}get(e,t){return nx.fromPromise(this.__get(e,t))}async __get(e,t){let n=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),r=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/observations/${encodeURIComponent(e)}`),method:`GET`,headers:n,queryParameters:t?.queryParams,timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(r.ok)return{data:r.body,rawResponse:r.rawResponse};if(r.error.reason===`status-code`)switch(r.error.statusCode){case 400:throw new Wb(r.error.body,r.rawResponse);case 401:throw new Gb(r.error.body,r.rawResponse);case 403:throw new Kb(r.error.body,r.rawResponse);case 405:throw new Jb(r.error.body,r.rawResponse);case 404:throw new qb(r.error.body,r.rawResponse);default:throw new X({statusCode:r.error.statusCode,body:r.error.body,rawResponse:r.rawResponse})}switch(r.error.reason){case`non-json`:throw new X({statusCode:r.error.statusCode,body:r.error.rawBody,rawResponse:r.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/observations/{observationId}.`);case`unknown`:throw new X({message:r.error.errorMessage,rawResponse:r.rawResponse})}}getMany(e={},t){return nx.fromPromise(this.__getMany(e,t))}async __getMany(e={},t){let{page:n,limit:r,name:i,userId:a,type:o,traceId:s,level:c,parentObservationId:l,environment:u,fromStartTime:d,toStartTime:f,version:p,filter:m}=e,h={};n!=null&&(h.page=n.toString()),r!=null&&(h.limit=r.toString()),i!=null&&(h.name=i),a!=null&&(h.userId=a),o!=null&&(h.type=o),s!=null&&(h.traceId=s),c!=null&&(h.level=c),l!=null&&(h.parentObservationId=l),u!=null&&(Array.isArray(u)?h.environment=u.map(e=>e):h.environment=u),d!=null&&(h.fromStartTime=d),f!=null&&(h.toStartTime=f),p!=null&&(h.version=p),m!=null&&(h.filter=m);let g=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),_=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/observations`),method:`GET`,headers:g,queryParameters:{...h,...t?.queryParams},timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(_.ok)return{data:_.body,rawResponse:_.rawResponse};if(_.error.reason===`status-code`)switch(_.error.statusCode){case 400:throw new Wb(_.error.body,_.rawResponse);case 401:throw new Gb(_.error.body,_.rawResponse);case 403:throw new Kb(_.error.body,_.rawResponse);case 405:throw new Jb(_.error.body,_.rawResponse);case 404:throw new qb(_.error.body,_.rawResponse);default:throw new X({statusCode:_.error.statusCode,body:_.error.body,rawResponse:_.rawResponse})}switch(_.error.reason){case`non-json`:throw new X({statusCode:_.error.statusCode,body:_.error.rawBody,rawResponse:_.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/observations.`);case`unknown`:throw new X({message:_.error.errorMessage,rawResponse:_.rawResponse})}}async _getAuthorizationHeader(){let e=await Z.get(this._options.username),t=await Z.get(this._options.password);if(e!=null&&t!=null)return ix.toAuthorizationHeader({username:e,password:t})}},kIe=class{constructor(e){this._options=e}create(e,t){return nx.fromPromise(this.__create(e,t))}async __create(e,t){let n=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),r=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/scores`),method:`POST`,headers:n,contentType:`application/json`,queryParameters:t?.queryParams,requestType:`json`,body:e,timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(r.ok)return{data:r.body,rawResponse:r.rawResponse};if(r.error.reason===`status-code`)switch(r.error.statusCode){case 400:throw new Wb(r.error.body,r.rawResponse);case 401:throw new Gb(r.error.body,r.rawResponse);case 403:throw new Kb(r.error.body,r.rawResponse);case 405:throw new Jb(r.error.body,r.rawResponse);case 404:throw new qb(r.error.body,r.rawResponse);default:throw new X({statusCode:r.error.statusCode,body:r.error.body,rawResponse:r.rawResponse})}switch(r.error.reason){case`non-json`:throw new X({statusCode:r.error.statusCode,body:r.error.rawBody,rawResponse:r.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling POST /api/public/scores.`);case`unknown`:throw new X({message:r.error.errorMessage,rawResponse:r.rawResponse})}}delete(e,t){return nx.fromPromise(this.__delete(e,t))}async __delete(e,t){let n=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),r=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/scores/${encodeURIComponent(e)}`),method:`DELETE`,headers:n,queryParameters:t?.queryParams,timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(r.ok)return{data:void 0,rawResponse:r.rawResponse};if(r.error.reason===`status-code`)switch(r.error.statusCode){case 400:throw new Wb(r.error.body,r.rawResponse);case 401:throw new Gb(r.error.body,r.rawResponse);case 403:throw new Kb(r.error.body,r.rawResponse);case 405:throw new Jb(r.error.body,r.rawResponse);case 404:throw new qb(r.error.body,r.rawResponse);default:throw new X({statusCode:r.error.statusCode,body:r.error.body,rawResponse:r.rawResponse})}switch(r.error.reason){case`non-json`:throw new X({statusCode:r.error.statusCode,body:r.error.rawBody,rawResponse:r.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling DELETE /api/public/scores/{scoreId}.`);case`unknown`:throw new X({message:r.error.errorMessage,rawResponse:r.rawResponse})}}async _getAuthorizationHeader(){let e=await Z.get(this._options.username),t=await Z.get(this._options.password);if(e!=null&&t!=null)return ix.toAuthorizationHeader({username:e,password:t})}},AIe=class{constructor(e){this._options=e}get metricsV1(){return this._metricsV1??(this._metricsV1=new DIe(this._options))}get observationsV1(){return this._observationsV1??(this._observationsV1=new OIe(this._options))}get scoreV1(){return this._scoreV1??(this._scoreV1=new kIe(this._options))}},jIe=class{constructor(e){this._options=e}list(e={},t){return nx.fromPromise(this.__list(e,t))}async __list(e={},t){let{page:n,limit:r}=e,i={};n!=null&&(i.page=n.toString()),r!=null&&(i.limit=r.toString());let a=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),o=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/llm-connections`),method:`GET`,headers:a,queryParameters:{...i,...t?.queryParams},timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(o.ok)return{data:o.body,rawResponse:o.rawResponse};if(o.error.reason===`status-code`)switch(o.error.statusCode){case 400:throw new Wb(o.error.body,o.rawResponse);case 401:throw new Gb(o.error.body,o.rawResponse);case 403:throw new Kb(o.error.body,o.rawResponse);case 405:throw new Jb(o.error.body,o.rawResponse);case 404:throw new qb(o.error.body,o.rawResponse);default:throw new X({statusCode:o.error.statusCode,body:o.error.body,rawResponse:o.rawResponse})}switch(o.error.reason){case`non-json`:throw new X({statusCode:o.error.statusCode,body:o.error.rawBody,rawResponse:o.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/llm-connections.`);case`unknown`:throw new X({message:o.error.errorMessage,rawResponse:o.rawResponse})}}upsert(e,t){return nx.fromPromise(this.__upsert(e,t))}async __upsert(e,t){let n=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),r=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/llm-connections`),method:`PUT`,headers:n,contentType:`application/json`,queryParameters:t?.queryParams,requestType:`json`,body:e,timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(r.ok)return{data:r.body,rawResponse:r.rawResponse};if(r.error.reason===`status-code`)switch(r.error.statusCode){case 400:throw new Wb(r.error.body,r.rawResponse);case 401:throw new Gb(r.error.body,r.rawResponse);case 403:throw new Kb(r.error.body,r.rawResponse);case 405:throw new Jb(r.error.body,r.rawResponse);case 404:throw new qb(r.error.body,r.rawResponse);default:throw new X({statusCode:r.error.statusCode,body:r.error.body,rawResponse:r.rawResponse})}switch(r.error.reason){case`non-json`:throw new X({statusCode:r.error.statusCode,body:r.error.rawBody,rawResponse:r.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling PUT /api/public/llm-connections.`);case`unknown`:throw new X({message:r.error.errorMessage,rawResponse:r.rawResponse})}}async _getAuthorizationHeader(){let e=await Z.get(this._options.username),t=await Z.get(this._options.password);if(e!=null&&t!=null)return ix.toAuthorizationHeader({username:e,password:t})}},MIe=class{constructor(e){this._options=e}get(e,t){return nx.fromPromise(this.__get(e,t))}async __get(e,t){let n=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),r=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/media/${encodeURIComponent(e)}`),method:`GET`,headers:n,queryParameters:t?.queryParams,timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(r.ok)return{data:r.body,rawResponse:r.rawResponse};if(r.error.reason===`status-code`)switch(r.error.statusCode){case 400:throw new Wb(r.error.body,r.rawResponse);case 401:throw new Gb(r.error.body,r.rawResponse);case 403:throw new Kb(r.error.body,r.rawResponse);case 405:throw new Jb(r.error.body,r.rawResponse);case 404:throw new qb(r.error.body,r.rawResponse);default:throw new X({statusCode:r.error.statusCode,body:r.error.body,rawResponse:r.rawResponse})}switch(r.error.reason){case`non-json`:throw new X({statusCode:r.error.statusCode,body:r.error.rawBody,rawResponse:r.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/media/{mediaId}.`);case`unknown`:throw new X({message:r.error.errorMessage,rawResponse:r.rawResponse})}}patch(e,t,n){return nx.fromPromise(this.__patch(e,t,n))}async __patch(e,t,n){let r=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":n?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":n?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":n?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),n?.headers),i=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/media/${encodeURIComponent(e)}`),method:`PATCH`,headers:r,contentType:`application/json`,queryParameters:n?.queryParams,requestType:`json`,body:t,timeoutMs:n?.timeoutInSeconds==null?6e4:n.timeoutInSeconds*1e3,maxRetries:n?.maxRetries,abortSignal:n?.abortSignal});if(i.ok)return{data:void 0,rawResponse:i.rawResponse};if(i.error.reason===`status-code`)switch(i.error.statusCode){case 400:throw new Wb(i.error.body,i.rawResponse);case 401:throw new Gb(i.error.body,i.rawResponse);case 403:throw new Kb(i.error.body,i.rawResponse);case 405:throw new Jb(i.error.body,i.rawResponse);case 404:throw new qb(i.error.body,i.rawResponse);default:throw new X({statusCode:i.error.statusCode,body:i.error.body,rawResponse:i.rawResponse})}switch(i.error.reason){case`non-json`:throw new X({statusCode:i.error.statusCode,body:i.error.rawBody,rawResponse:i.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling PATCH /api/public/media/{mediaId}.`);case`unknown`:throw new X({message:i.error.errorMessage,rawResponse:i.rawResponse})}}getUploadUrl(e,t){return nx.fromPromise(this.__getUploadUrl(e,t))}async __getUploadUrl(e,t){let n=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),r=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/media`),method:`POST`,headers:n,contentType:`application/json`,queryParameters:t?.queryParams,requestType:`json`,body:e,timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(r.ok)return{data:r.body,rawResponse:r.rawResponse};if(r.error.reason===`status-code`)switch(r.error.statusCode){case 400:throw new Wb(r.error.body,r.rawResponse);case 401:throw new Gb(r.error.body,r.rawResponse);case 403:throw new Kb(r.error.body,r.rawResponse);case 405:throw new Jb(r.error.body,r.rawResponse);case 404:throw new qb(r.error.body,r.rawResponse);default:throw new X({statusCode:r.error.statusCode,body:r.error.body,rawResponse:r.rawResponse})}switch(r.error.reason){case`non-json`:throw new X({statusCode:r.error.statusCode,body:r.error.rawBody,rawResponse:r.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling POST /api/public/media.`);case`unknown`:throw new X({message:r.error.errorMessage,rawResponse:r.rawResponse})}}async _getAuthorizationHeader(){let e=await Z.get(this._options.username),t=await Z.get(this._options.password);if(e!=null&&t!=null)return ix.toAuthorizationHeader({username:e,password:t})}},NIe=class{constructor(e){this._options=e}metrics(e,t){return nx.fromPromise(this.__metrics(e,t))}async __metrics(e,t){let{query:n}=e,r={};r.query=n;let i=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),a=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/v2/metrics`),method:`GET`,headers:i,queryParameters:{...r,...t?.queryParams},timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(a.ok)return{data:a.body,rawResponse:a.rawResponse};if(a.error.reason===`status-code`)switch(a.error.statusCode){case 400:throw new Wb(a.error.body,a.rawResponse);case 401:throw new Gb(a.error.body,a.rawResponse);case 403:throw new Kb(a.error.body,a.rawResponse);case 405:throw new Jb(a.error.body,a.rawResponse);case 404:throw new qb(a.error.body,a.rawResponse);default:throw new X({statusCode:a.error.statusCode,body:a.error.body,rawResponse:a.rawResponse})}switch(a.error.reason){case`non-json`:throw new X({statusCode:a.error.statusCode,body:a.error.rawBody,rawResponse:a.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/v2/metrics.`);case`unknown`:throw new X({message:a.error.errorMessage,rawResponse:a.rawResponse})}}async _getAuthorizationHeader(){let e=await Z.get(this._options.username),t=await Z.get(this._options.password);if(e!=null&&t!=null)return ix.toAuthorizationHeader({username:e,password:t})}},PIe=class{constructor(e){this._options=e}create(e,t){return nx.fromPromise(this.__create(e,t))}async __create(e,t){let n=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),r=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/models`),method:`POST`,headers:n,contentType:`application/json`,queryParameters:t?.queryParams,requestType:`json`,body:e,timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(r.ok)return{data:r.body,rawResponse:r.rawResponse};if(r.error.reason===`status-code`)switch(r.error.statusCode){case 400:throw new Wb(r.error.body,r.rawResponse);case 401:throw new Gb(r.error.body,r.rawResponse);case 403:throw new Kb(r.error.body,r.rawResponse);case 405:throw new Jb(r.error.body,r.rawResponse);case 404:throw new qb(r.error.body,r.rawResponse);default:throw new X({statusCode:r.error.statusCode,body:r.error.body,rawResponse:r.rawResponse})}switch(r.error.reason){case`non-json`:throw new X({statusCode:r.error.statusCode,body:r.error.rawBody,rawResponse:r.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling POST /api/public/models.`);case`unknown`:throw new X({message:r.error.errorMessage,rawResponse:r.rawResponse})}}list(e={},t){return nx.fromPromise(this.__list(e,t))}async __list(e={},t){let{page:n,limit:r}=e,i={};n!=null&&(i.page=n.toString()),r!=null&&(i.limit=r.toString());let a=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),o=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/models`),method:`GET`,headers:a,queryParameters:{...i,...t?.queryParams},timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(o.ok)return{data:o.body,rawResponse:o.rawResponse};if(o.error.reason===`status-code`)switch(o.error.statusCode){case 400:throw new Wb(o.error.body,o.rawResponse);case 401:throw new Gb(o.error.body,o.rawResponse);case 403:throw new Kb(o.error.body,o.rawResponse);case 405:throw new Jb(o.error.body,o.rawResponse);case 404:throw new qb(o.error.body,o.rawResponse);default:throw new X({statusCode:o.error.statusCode,body:o.error.body,rawResponse:o.rawResponse})}switch(o.error.reason){case`non-json`:throw new X({statusCode:o.error.statusCode,body:o.error.rawBody,rawResponse:o.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/models.`);case`unknown`:throw new X({message:o.error.errorMessage,rawResponse:o.rawResponse})}}get(e,t){return nx.fromPromise(this.__get(e,t))}async __get(e,t){let n=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),r=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/models/${encodeURIComponent(e)}`),method:`GET`,headers:n,queryParameters:t?.queryParams,timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(r.ok)return{data:r.body,rawResponse:r.rawResponse};if(r.error.reason===`status-code`)switch(r.error.statusCode){case 400:throw new Wb(r.error.body,r.rawResponse);case 401:throw new Gb(r.error.body,r.rawResponse);case 403:throw new Kb(r.error.body,r.rawResponse);case 405:throw new Jb(r.error.body,r.rawResponse);case 404:throw new qb(r.error.body,r.rawResponse);default:throw new X({statusCode:r.error.statusCode,body:r.error.body,rawResponse:r.rawResponse})}switch(r.error.reason){case`non-json`:throw new X({statusCode:r.error.statusCode,body:r.error.rawBody,rawResponse:r.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/models/{id}.`);case`unknown`:throw new X({message:r.error.errorMessage,rawResponse:r.rawResponse})}}delete(e,t){return nx.fromPromise(this.__delete(e,t))}async __delete(e,t){let n=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),r=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/models/${encodeURIComponent(e)}`),method:`DELETE`,headers:n,queryParameters:t?.queryParams,timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(r.ok)return{data:void 0,rawResponse:r.rawResponse};if(r.error.reason===`status-code`)switch(r.error.statusCode){case 400:throw new Wb(r.error.body,r.rawResponse);case 401:throw new Gb(r.error.body,r.rawResponse);case 403:throw new Kb(r.error.body,r.rawResponse);case 405:throw new Jb(r.error.body,r.rawResponse);case 404:throw new qb(r.error.body,r.rawResponse);default:throw new X({statusCode:r.error.statusCode,body:r.error.body,rawResponse:r.rawResponse})}switch(r.error.reason){case`non-json`:throw new X({statusCode:r.error.statusCode,body:r.error.rawBody,rawResponse:r.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling DELETE /api/public/models/{id}.`);case`unknown`:throw new X({message:r.error.errorMessage,rawResponse:r.rawResponse})}}async _getAuthorizationHeader(){let e=await Z.get(this._options.username),t=await Z.get(this._options.password);if(e!=null&&t!=null)return ix.toAuthorizationHeader({username:e,password:t})}},FIe=class{constructor(e){this._options=e}getMany(e={},t){return nx.fromPromise(this.__getMany(e,t))}async __getMany(e={},t){let{fields:n,expandMetadata:r,limit:i,cursor:a,parseIoAsJson:o,name:s,userId:c,type:l,traceId:u,level:d,parentObservationId:f,environment:p,fromStartTime:m,toStartTime:h,version:g,filter:_}=e,v={};n!=null&&(v.fields=n),r!=null&&(v.expandMetadata=r),i!=null&&(v.limit=i.toString()),a!=null&&(v.cursor=a),o!=null&&(v.parseIoAsJson=o.toString()),s!=null&&(v.name=s),c!=null&&(v.userId=c),l!=null&&(v.type=l),u!=null&&(v.traceId=u),d!=null&&(v.level=d),f!=null&&(v.parentObservationId=f),p!=null&&(Array.isArray(p)?v.environment=p.map(e=>e):v.environment=p),m!=null&&(v.fromStartTime=m),h!=null&&(v.toStartTime=h),g!=null&&(v.version=g),_!=null&&(v.filter=_);let y=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),b=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/v2/observations`),method:`GET`,headers:y,queryParameters:{...v,...t?.queryParams},timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(b.ok)return{data:b.body,rawResponse:b.rawResponse};if(b.error.reason===`status-code`)switch(b.error.statusCode){case 400:throw new Wb(b.error.body,b.rawResponse);case 401:throw new Gb(b.error.body,b.rawResponse);case 403:throw new Kb(b.error.body,b.rawResponse);case 405:throw new Jb(b.error.body,b.rawResponse);case 404:throw new qb(b.error.body,b.rawResponse);default:throw new X({statusCode:b.error.statusCode,body:b.error.body,rawResponse:b.rawResponse})}switch(b.error.reason){case`non-json`:throw new X({statusCode:b.error.statusCode,body:b.error.rawBody,rawResponse:b.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/v2/observations.`);case`unknown`:throw new X({message:b.error.errorMessage,rawResponse:b.rawResponse})}}async _getAuthorizationHeader(){let e=await Z.get(this._options.username),t=await Z.get(this._options.password);if(e!=null&&t!=null)return ix.toAuthorizationHeader({username:e,password:t})}},IIe=class{constructor(e){this._options=e}exportTraces(e,t){return nx.fromPromise(this.__exportTraces(e,t))}async __exportTraces(e,t){let n=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),r=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/otel/v1/traces`),method:`POST`,headers:n,contentType:`application/json`,queryParameters:t?.queryParams,requestType:`json`,body:e,timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(r.ok)return{data:r.body,rawResponse:r.rawResponse};if(r.error.reason===`status-code`)switch(r.error.statusCode){case 400:throw new Wb(r.error.body,r.rawResponse);case 401:throw new Gb(r.error.body,r.rawResponse);case 403:throw new Kb(r.error.body,r.rawResponse);case 405:throw new Jb(r.error.body,r.rawResponse);case 404:throw new qb(r.error.body,r.rawResponse);default:throw new X({statusCode:r.error.statusCode,body:r.error.body,rawResponse:r.rawResponse})}switch(r.error.reason){case`non-json`:throw new X({statusCode:r.error.statusCode,body:r.error.rawBody,rawResponse:r.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling POST /api/public/otel/v1/traces.`);case`unknown`:throw new X({message:r.error.errorMessage,rawResponse:r.rawResponse})}}async _getAuthorizationHeader(){let e=await Z.get(this._options.username),t=await Z.get(this._options.password);if(e!=null&&t!=null)return ix.toAuthorizationHeader({username:e,password:t})}},LIe=class{constructor(e){this._options=e}getOrganizationMemberships(e){return nx.fromPromise(this.__getOrganizationMemberships(e))}async __getOrganizationMemberships(e){let t=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":e?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":e?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":e?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),e?.headers),n=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/organizations/memberships`),method:`GET`,headers:t,queryParameters:e?.queryParams,timeoutMs:e?.timeoutInSeconds==null?6e4:e.timeoutInSeconds*1e3,maxRetries:e?.maxRetries,abortSignal:e?.abortSignal});if(n.ok)return{data:n.body,rawResponse:n.rawResponse};if(n.error.reason===`status-code`)switch(n.error.statusCode){case 400:throw new Wb(n.error.body,n.rawResponse);case 401:throw new Gb(n.error.body,n.rawResponse);case 403:throw new Kb(n.error.body,n.rawResponse);case 405:throw new Jb(n.error.body,n.rawResponse);case 404:throw new qb(n.error.body,n.rawResponse);default:throw new X({statusCode:n.error.statusCode,body:n.error.body,rawResponse:n.rawResponse})}switch(n.error.reason){case`non-json`:throw new X({statusCode:n.error.statusCode,body:n.error.rawBody,rawResponse:n.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/organizations/memberships.`);case`unknown`:throw new X({message:n.error.errorMessage,rawResponse:n.rawResponse})}}updateOrganizationMembership(e,t){return nx.fromPromise(this.__updateOrganizationMembership(e,t))}async __updateOrganizationMembership(e,t){let n=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),r=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/organizations/memberships`),method:`PUT`,headers:n,contentType:`application/json`,queryParameters:t?.queryParams,requestType:`json`,body:e,timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(r.ok)return{data:r.body,rawResponse:r.rawResponse};if(r.error.reason===`status-code`)switch(r.error.statusCode){case 400:throw new Wb(r.error.body,r.rawResponse);case 401:throw new Gb(r.error.body,r.rawResponse);case 403:throw new Kb(r.error.body,r.rawResponse);case 405:throw new Jb(r.error.body,r.rawResponse);case 404:throw new qb(r.error.body,r.rawResponse);default:throw new X({statusCode:r.error.statusCode,body:r.error.body,rawResponse:r.rawResponse})}switch(r.error.reason){case`non-json`:throw new X({statusCode:r.error.statusCode,body:r.error.rawBody,rawResponse:r.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling PUT /api/public/organizations/memberships.`);case`unknown`:throw new X({message:r.error.errorMessage,rawResponse:r.rawResponse})}}deleteOrganizationMembership(e,t){return nx.fromPromise(this.__deleteOrganizationMembership(e,t))}async __deleteOrganizationMembership(e,t){let n=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),r=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/organizations/memberships`),method:`DELETE`,headers:n,contentType:`application/json`,queryParameters:t?.queryParams,requestType:`json`,body:e,timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(r.ok)return{data:r.body,rawResponse:r.rawResponse};if(r.error.reason===`status-code`)switch(r.error.statusCode){case 400:throw new Wb(r.error.body,r.rawResponse);case 401:throw new Gb(r.error.body,r.rawResponse);case 403:throw new Kb(r.error.body,r.rawResponse);case 405:throw new Jb(r.error.body,r.rawResponse);case 404:throw new qb(r.error.body,r.rawResponse);default:throw new X({statusCode:r.error.statusCode,body:r.error.body,rawResponse:r.rawResponse})}switch(r.error.reason){case`non-json`:throw new X({statusCode:r.error.statusCode,body:r.error.rawBody,rawResponse:r.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling DELETE /api/public/organizations/memberships.`);case`unknown`:throw new X({message:r.error.errorMessage,rawResponse:r.rawResponse})}}getProjectMemberships(e,t){return nx.fromPromise(this.__getProjectMemberships(e,t))}async __getProjectMemberships(e,t){let n=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),r=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/projects/${encodeURIComponent(e)}/memberships`),method:`GET`,headers:n,queryParameters:t?.queryParams,timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(r.ok)return{data:r.body,rawResponse:r.rawResponse};if(r.error.reason===`status-code`)switch(r.error.statusCode){case 400:throw new Wb(r.error.body,r.rawResponse);case 401:throw new Gb(r.error.body,r.rawResponse);case 403:throw new Kb(r.error.body,r.rawResponse);case 405:throw new Jb(r.error.body,r.rawResponse);case 404:throw new qb(r.error.body,r.rawResponse);default:throw new X({statusCode:r.error.statusCode,body:r.error.body,rawResponse:r.rawResponse})}switch(r.error.reason){case`non-json`:throw new X({statusCode:r.error.statusCode,body:r.error.rawBody,rawResponse:r.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/projects/{projectId}/memberships.`);case`unknown`:throw new X({message:r.error.errorMessage,rawResponse:r.rawResponse})}}updateProjectMembership(e,t,n){return nx.fromPromise(this.__updateProjectMembership(e,t,n))}async __updateProjectMembership(e,t,n){let r=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":n?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":n?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":n?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),n?.headers),i=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/projects/${encodeURIComponent(e)}/memberships`),method:`PUT`,headers:r,contentType:`application/json`,queryParameters:n?.queryParams,requestType:`json`,body:t,timeoutMs:n?.timeoutInSeconds==null?6e4:n.timeoutInSeconds*1e3,maxRetries:n?.maxRetries,abortSignal:n?.abortSignal});if(i.ok)return{data:i.body,rawResponse:i.rawResponse};if(i.error.reason===`status-code`)switch(i.error.statusCode){case 400:throw new Wb(i.error.body,i.rawResponse);case 401:throw new Gb(i.error.body,i.rawResponse);case 403:throw new Kb(i.error.body,i.rawResponse);case 405:throw new Jb(i.error.body,i.rawResponse);case 404:throw new qb(i.error.body,i.rawResponse);default:throw new X({statusCode:i.error.statusCode,body:i.error.body,rawResponse:i.rawResponse})}switch(i.error.reason){case`non-json`:throw new X({statusCode:i.error.statusCode,body:i.error.rawBody,rawResponse:i.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling PUT /api/public/projects/{projectId}/memberships.`);case`unknown`:throw new X({message:i.error.errorMessage,rawResponse:i.rawResponse})}}deleteProjectMembership(e,t,n){return nx.fromPromise(this.__deleteProjectMembership(e,t,n))}async __deleteProjectMembership(e,t,n){let r=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":n?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":n?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":n?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),n?.headers),i=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/projects/${encodeURIComponent(e)}/memberships`),method:`DELETE`,headers:r,contentType:`application/json`,queryParameters:n?.queryParams,requestType:`json`,body:t,timeoutMs:n?.timeoutInSeconds==null?6e4:n.timeoutInSeconds*1e3,maxRetries:n?.maxRetries,abortSignal:n?.abortSignal});if(i.ok)return{data:i.body,rawResponse:i.rawResponse};if(i.error.reason===`status-code`)switch(i.error.statusCode){case 400:throw new Wb(i.error.body,i.rawResponse);case 401:throw new Gb(i.error.body,i.rawResponse);case 403:throw new Kb(i.error.body,i.rawResponse);case 405:throw new Jb(i.error.body,i.rawResponse);case 404:throw new qb(i.error.body,i.rawResponse);default:throw new X({statusCode:i.error.statusCode,body:i.error.body,rawResponse:i.rawResponse})}switch(i.error.reason){case`non-json`:throw new X({statusCode:i.error.statusCode,body:i.error.rawBody,rawResponse:i.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling DELETE /api/public/projects/{projectId}/memberships.`);case`unknown`:throw new X({message:i.error.errorMessage,rawResponse:i.rawResponse})}}getOrganizationProjects(e){return nx.fromPromise(this.__getOrganizationProjects(e))}async __getOrganizationProjects(e){let t=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":e?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":e?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":e?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),e?.headers),n=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/organizations/projects`),method:`GET`,headers:t,queryParameters:e?.queryParams,timeoutMs:e?.timeoutInSeconds==null?6e4:e.timeoutInSeconds*1e3,maxRetries:e?.maxRetries,abortSignal:e?.abortSignal});if(n.ok)return{data:n.body,rawResponse:n.rawResponse};if(n.error.reason===`status-code`)switch(n.error.statusCode){case 400:throw new Wb(n.error.body,n.rawResponse);case 401:throw new Gb(n.error.body,n.rawResponse);case 403:throw new Kb(n.error.body,n.rawResponse);case 405:throw new Jb(n.error.body,n.rawResponse);case 404:throw new qb(n.error.body,n.rawResponse);default:throw new X({statusCode:n.error.statusCode,body:n.error.body,rawResponse:n.rawResponse})}switch(n.error.reason){case`non-json`:throw new X({statusCode:n.error.statusCode,body:n.error.rawBody,rawResponse:n.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/organizations/projects.`);case`unknown`:throw new X({message:n.error.errorMessage,rawResponse:n.rawResponse})}}getOrganizationApiKeys(e){return nx.fromPromise(this.__getOrganizationApiKeys(e))}async __getOrganizationApiKeys(e){let t=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":e?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":e?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":e?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),e?.headers),n=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/organizations/apiKeys`),method:`GET`,headers:t,queryParameters:e?.queryParams,timeoutMs:e?.timeoutInSeconds==null?6e4:e.timeoutInSeconds*1e3,maxRetries:e?.maxRetries,abortSignal:e?.abortSignal});if(n.ok)return{data:n.body,rawResponse:n.rawResponse};if(n.error.reason===`status-code`)switch(n.error.statusCode){case 400:throw new Wb(n.error.body,n.rawResponse);case 401:throw new Gb(n.error.body,n.rawResponse);case 403:throw new Kb(n.error.body,n.rawResponse);case 405:throw new Jb(n.error.body,n.rawResponse);case 404:throw new qb(n.error.body,n.rawResponse);default:throw new X({statusCode:n.error.statusCode,body:n.error.body,rawResponse:n.rawResponse})}switch(n.error.reason){case`non-json`:throw new X({statusCode:n.error.statusCode,body:n.error.rawBody,rawResponse:n.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/organizations/apiKeys.`);case`unknown`:throw new X({message:n.error.errorMessage,rawResponse:n.rawResponse})}}async _getAuthorizationHeader(){let e=await Z.get(this._options.username),t=await Z.get(this._options.password);if(e!=null&&t!=null)return ix.toAuthorizationHeader({username:e,password:t})}},RIe=class{constructor(e){this._options=e}get(e){return nx.fromPromise(this.__get(e))}async __get(e){let t=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":e?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":e?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":e?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),e?.headers),n=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/projects`),method:`GET`,headers:t,queryParameters:e?.queryParams,timeoutMs:e?.timeoutInSeconds==null?6e4:e.timeoutInSeconds*1e3,maxRetries:e?.maxRetries,abortSignal:e?.abortSignal});if(n.ok)return{data:n.body,rawResponse:n.rawResponse};if(n.error.reason===`status-code`)switch(n.error.statusCode){case 400:throw new Wb(n.error.body,n.rawResponse);case 401:throw new Gb(n.error.body,n.rawResponse);case 403:throw new Kb(n.error.body,n.rawResponse);case 405:throw new Jb(n.error.body,n.rawResponse);case 404:throw new qb(n.error.body,n.rawResponse);default:throw new X({statusCode:n.error.statusCode,body:n.error.body,rawResponse:n.rawResponse})}switch(n.error.reason){case`non-json`:throw new X({statusCode:n.error.statusCode,body:n.error.rawBody,rawResponse:n.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/projects.`);case`unknown`:throw new X({message:n.error.errorMessage,rawResponse:n.rawResponse})}}create(e,t){return nx.fromPromise(this.__create(e,t))}async __create(e,t){let n=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),r=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/projects`),method:`POST`,headers:n,contentType:`application/json`,queryParameters:t?.queryParams,requestType:`json`,body:e,timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(r.ok)return{data:r.body,rawResponse:r.rawResponse};if(r.error.reason===`status-code`)switch(r.error.statusCode){case 400:throw new Wb(r.error.body,r.rawResponse);case 401:throw new Gb(r.error.body,r.rawResponse);case 403:throw new Kb(r.error.body,r.rawResponse);case 405:throw new Jb(r.error.body,r.rawResponse);case 404:throw new qb(r.error.body,r.rawResponse);default:throw new X({statusCode:r.error.statusCode,body:r.error.body,rawResponse:r.rawResponse})}switch(r.error.reason){case`non-json`:throw new X({statusCode:r.error.statusCode,body:r.error.rawBody,rawResponse:r.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling POST /api/public/projects.`);case`unknown`:throw new X({message:r.error.errorMessage,rawResponse:r.rawResponse})}}update(e,t,n){return nx.fromPromise(this.__update(e,t,n))}async __update(e,t,n){let r=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":n?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":n?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":n?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),n?.headers),i=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/projects/${encodeURIComponent(e)}`),method:`PUT`,headers:r,contentType:`application/json`,queryParameters:n?.queryParams,requestType:`json`,body:t,timeoutMs:n?.timeoutInSeconds==null?6e4:n.timeoutInSeconds*1e3,maxRetries:n?.maxRetries,abortSignal:n?.abortSignal});if(i.ok)return{data:i.body,rawResponse:i.rawResponse};if(i.error.reason===`status-code`)switch(i.error.statusCode){case 400:throw new Wb(i.error.body,i.rawResponse);case 401:throw new Gb(i.error.body,i.rawResponse);case 403:throw new Kb(i.error.body,i.rawResponse);case 405:throw new Jb(i.error.body,i.rawResponse);case 404:throw new qb(i.error.body,i.rawResponse);default:throw new X({statusCode:i.error.statusCode,body:i.error.body,rawResponse:i.rawResponse})}switch(i.error.reason){case`non-json`:throw new X({statusCode:i.error.statusCode,body:i.error.rawBody,rawResponse:i.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling PUT /api/public/projects/{projectId}.`);case`unknown`:throw new X({message:i.error.errorMessage,rawResponse:i.rawResponse})}}delete(e,t){return nx.fromPromise(this.__delete(e,t))}async __delete(e,t){let n=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),r=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/projects/${encodeURIComponent(e)}`),method:`DELETE`,headers:n,queryParameters:t?.queryParams,timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(r.ok)return{data:r.body,rawResponse:r.rawResponse};if(r.error.reason===`status-code`)switch(r.error.statusCode){case 400:throw new Wb(r.error.body,r.rawResponse);case 401:throw new Gb(r.error.body,r.rawResponse);case 403:throw new Kb(r.error.body,r.rawResponse);case 405:throw new Jb(r.error.body,r.rawResponse);case 404:throw new qb(r.error.body,r.rawResponse);default:throw new X({statusCode:r.error.statusCode,body:r.error.body,rawResponse:r.rawResponse})}switch(r.error.reason){case`non-json`:throw new X({statusCode:r.error.statusCode,body:r.error.rawBody,rawResponse:r.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling DELETE /api/public/projects/{projectId}.`);case`unknown`:throw new X({message:r.error.errorMessage,rawResponse:r.rawResponse})}}getApiKeys(e,t){return nx.fromPromise(this.__getApiKeys(e,t))}async __getApiKeys(e,t){let n=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),r=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/projects/${encodeURIComponent(e)}/apiKeys`),method:`GET`,headers:n,queryParameters:t?.queryParams,timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(r.ok)return{data:r.body,rawResponse:r.rawResponse};if(r.error.reason===`status-code`)switch(r.error.statusCode){case 400:throw new Wb(r.error.body,r.rawResponse);case 401:throw new Gb(r.error.body,r.rawResponse);case 403:throw new Kb(r.error.body,r.rawResponse);case 405:throw new Jb(r.error.body,r.rawResponse);case 404:throw new qb(r.error.body,r.rawResponse);default:throw new X({statusCode:r.error.statusCode,body:r.error.body,rawResponse:r.rawResponse})}switch(r.error.reason){case`non-json`:throw new X({statusCode:r.error.statusCode,body:r.error.rawBody,rawResponse:r.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/projects/{projectId}/apiKeys.`);case`unknown`:throw new X({message:r.error.errorMessage,rawResponse:r.rawResponse})}}createApiKey(e,t={},n){return nx.fromPromise(this.__createApiKey(e,t,n))}async __createApiKey(e,t={},n){let r=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":n?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":n?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":n?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),n?.headers),i=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/projects/${encodeURIComponent(e)}/apiKeys`),method:`POST`,headers:r,contentType:`application/json`,queryParameters:n?.queryParams,requestType:`json`,body:t,timeoutMs:n?.timeoutInSeconds==null?6e4:n.timeoutInSeconds*1e3,maxRetries:n?.maxRetries,abortSignal:n?.abortSignal});if(i.ok)return{data:i.body,rawResponse:i.rawResponse};if(i.error.reason===`status-code`)switch(i.error.statusCode){case 400:throw new Wb(i.error.body,i.rawResponse);case 401:throw new Gb(i.error.body,i.rawResponse);case 403:throw new Kb(i.error.body,i.rawResponse);case 405:throw new Jb(i.error.body,i.rawResponse);case 404:throw new qb(i.error.body,i.rawResponse);default:throw new X({statusCode:i.error.statusCode,body:i.error.body,rawResponse:i.rawResponse})}switch(i.error.reason){case`non-json`:throw new X({statusCode:i.error.statusCode,body:i.error.rawBody,rawResponse:i.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling POST /api/public/projects/{projectId}/apiKeys.`);case`unknown`:throw new X({message:i.error.errorMessage,rawResponse:i.rawResponse})}}deleteApiKey(e,t,n){return nx.fromPromise(this.__deleteApiKey(e,t,n))}async __deleteApiKey(e,t,n){let r=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":n?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":n?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":n?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),n?.headers),i=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/projects/${encodeURIComponent(e)}/apiKeys/${encodeURIComponent(t)}`),method:`DELETE`,headers:r,queryParameters:n?.queryParams,timeoutMs:n?.timeoutInSeconds==null?6e4:n.timeoutInSeconds*1e3,maxRetries:n?.maxRetries,abortSignal:n?.abortSignal});if(i.ok)return{data:i.body,rawResponse:i.rawResponse};if(i.error.reason===`status-code`)switch(i.error.statusCode){case 400:throw new Wb(i.error.body,i.rawResponse);case 401:throw new Gb(i.error.body,i.rawResponse);case 403:throw new Kb(i.error.body,i.rawResponse);case 405:throw new Jb(i.error.body,i.rawResponse);case 404:throw new qb(i.error.body,i.rawResponse);default:throw new X({statusCode:i.error.statusCode,body:i.error.body,rawResponse:i.rawResponse})}switch(i.error.reason){case`non-json`:throw new X({statusCode:i.error.statusCode,body:i.error.rawBody,rawResponse:i.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling DELETE /api/public/projects/{projectId}/apiKeys/{apiKeyId}.`);case`unknown`:throw new X({message:i.error.errorMessage,rawResponse:i.rawResponse})}}async _getAuthorizationHeader(){let e=await Z.get(this._options.username),t=await Z.get(this._options.password);if(e!=null&&t!=null)return ix.toAuthorizationHeader({username:e,password:t})}},zIe=class{constructor(e){this._options=e}update(e,t,n,r){return nx.fromPromise(this.__update(e,t,n,r))}async __update(e,t,n,r){let i=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":r?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":r?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":r?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),r?.headers),a=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/v2/prompts/${encodeURIComponent(e)}/versions/${encodeURIComponent(t)}`),method:`PATCH`,headers:i,contentType:`application/json`,queryParameters:r?.queryParams,requestType:`json`,body:n,timeoutMs:r?.timeoutInSeconds==null?6e4:r.timeoutInSeconds*1e3,maxRetries:r?.maxRetries,abortSignal:r?.abortSignal});if(a.ok)return{data:a.body,rawResponse:a.rawResponse};if(a.error.reason===`status-code`)switch(a.error.statusCode){case 400:throw new Wb(a.error.body,a.rawResponse);case 401:throw new Gb(a.error.body,a.rawResponse);case 403:throw new Kb(a.error.body,a.rawResponse);case 405:throw new Jb(a.error.body,a.rawResponse);case 404:throw new qb(a.error.body,a.rawResponse);default:throw new X({statusCode:a.error.statusCode,body:a.error.body,rawResponse:a.rawResponse})}switch(a.error.reason){case`non-json`:throw new X({statusCode:a.error.statusCode,body:a.error.rawBody,rawResponse:a.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling PATCH /api/public/v2/prompts/{name}/versions/{version}.`);case`unknown`:throw new X({message:a.error.errorMessage,rawResponse:a.rawResponse})}}async _getAuthorizationHeader(){let e=await Z.get(this._options.username),t=await Z.get(this._options.password);if(e!=null&&t!=null)return ix.toAuthorizationHeader({username:e,password:t})}},BIe=class{constructor(e){this._options=e}get(e,t={},n){return nx.fromPromise(this.__get(e,t,n))}async __get(e,t={},n){let{version:r,label:i,resolve:a}=t,o={};r!=null&&(o.version=r.toString()),i!=null&&(o.label=i),a!=null&&(o.resolve=a.toString());let s=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":n?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":n?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":n?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),n?.headers),c=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/v2/prompts/${encodeURIComponent(e)}`),method:`GET`,headers:s,queryParameters:{...o,...n?.queryParams},timeoutMs:n?.timeoutInSeconds==null?6e4:n.timeoutInSeconds*1e3,maxRetries:n?.maxRetries,abortSignal:n?.abortSignal});if(c.ok)return{data:c.body,rawResponse:c.rawResponse};if(c.error.reason===`status-code`)switch(c.error.statusCode){case 400:throw new Wb(c.error.body,c.rawResponse);case 401:throw new Gb(c.error.body,c.rawResponse);case 403:throw new Kb(c.error.body,c.rawResponse);case 405:throw new Jb(c.error.body,c.rawResponse);case 404:throw new qb(c.error.body,c.rawResponse);default:throw new X({statusCode:c.error.statusCode,body:c.error.body,rawResponse:c.rawResponse})}switch(c.error.reason){case`non-json`:throw new X({statusCode:c.error.statusCode,body:c.error.rawBody,rawResponse:c.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/v2/prompts/{promptName}.`);case`unknown`:throw new X({message:c.error.errorMessage,rawResponse:c.rawResponse})}}list(e={},t){return nx.fromPromise(this.__list(e,t))}async __list(e={},t){let{name:n,label:r,tag:i,page:a,limit:o,fromUpdatedAt:s,toUpdatedAt:c}=e,l={};n!=null&&(l.name=n),r!=null&&(l.label=r),i!=null&&(l.tag=i),a!=null&&(l.page=a.toString()),o!=null&&(l.limit=o.toString()),s!=null&&(l.fromUpdatedAt=s),c!=null&&(l.toUpdatedAt=c);let u=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),d=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/v2/prompts`),method:`GET`,headers:u,queryParameters:{...l,...t?.queryParams},timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(d.ok)return{data:d.body,rawResponse:d.rawResponse};if(d.error.reason===`status-code`)switch(d.error.statusCode){case 400:throw new Wb(d.error.body,d.rawResponse);case 401:throw new Gb(d.error.body,d.rawResponse);case 403:throw new Kb(d.error.body,d.rawResponse);case 405:throw new Jb(d.error.body,d.rawResponse);case 404:throw new qb(d.error.body,d.rawResponse);default:throw new X({statusCode:d.error.statusCode,body:d.error.body,rawResponse:d.rawResponse})}switch(d.error.reason){case`non-json`:throw new X({statusCode:d.error.statusCode,body:d.error.rawBody,rawResponse:d.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/v2/prompts.`);case`unknown`:throw new X({message:d.error.errorMessage,rawResponse:d.rawResponse})}}create(e,t){return nx.fromPromise(this.__create(e,t))}async __create(e,t){let n=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),r=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/v2/prompts`),method:`POST`,headers:n,contentType:`application/json`,queryParameters:t?.queryParams,requestType:`json`,body:e,timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(r.ok)return{data:r.body,rawResponse:r.rawResponse};if(r.error.reason===`status-code`)switch(r.error.statusCode){case 400:throw new Wb(r.error.body,r.rawResponse);case 401:throw new Gb(r.error.body,r.rawResponse);case 403:throw new Kb(r.error.body,r.rawResponse);case 405:throw new Jb(r.error.body,r.rawResponse);case 404:throw new qb(r.error.body,r.rawResponse);default:throw new X({statusCode:r.error.statusCode,body:r.error.body,rawResponse:r.rawResponse})}switch(r.error.reason){case`non-json`:throw new X({statusCode:r.error.statusCode,body:r.error.rawBody,rawResponse:r.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling POST /api/public/v2/prompts.`);case`unknown`:throw new X({message:r.error.errorMessage,rawResponse:r.rawResponse})}}delete(e,t={},n){return nx.fromPromise(this.__delete(e,t,n))}async __delete(e,t={},n){let{label:r,version:i}=t,a={};r!=null&&(a.label=r),i!=null&&(a.version=i.toString());let o=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":n?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":n?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":n?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),n?.headers),s=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/v2/prompts/${encodeURIComponent(e)}`),method:`DELETE`,headers:o,queryParameters:{...a,...n?.queryParams},timeoutMs:n?.timeoutInSeconds==null?6e4:n.timeoutInSeconds*1e3,maxRetries:n?.maxRetries,abortSignal:n?.abortSignal});if(s.ok)return{data:void 0,rawResponse:s.rawResponse};if(s.error.reason===`status-code`)switch(s.error.statusCode){case 400:throw new Wb(s.error.body,s.rawResponse);case 401:throw new Gb(s.error.body,s.rawResponse);case 403:throw new Kb(s.error.body,s.rawResponse);case 405:throw new Jb(s.error.body,s.rawResponse);case 404:throw new qb(s.error.body,s.rawResponse);default:throw new X({statusCode:s.error.statusCode,body:s.error.body,rawResponse:s.rawResponse})}switch(s.error.reason){case`non-json`:throw new X({statusCode:s.error.statusCode,body:s.error.rawBody,rawResponse:s.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling DELETE /api/public/v2/prompts/{promptName}.`);case`unknown`:throw new X({message:s.error.errorMessage,rawResponse:s.rawResponse})}}async _getAuthorizationHeader(){let e=await Z.get(this._options.username),t=await Z.get(this._options.password);if(e!=null&&t!=null)return ix.toAuthorizationHeader({username:e,password:t})}},VIe=class{constructor(e){this._options=e}getServiceProviderConfig(e){return nx.fromPromise(this.__getServiceProviderConfig(e))}async __getServiceProviderConfig(e){let t=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":e?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":e?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":e?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),e?.headers),n=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/scim/ServiceProviderConfig`),method:`GET`,headers:t,queryParameters:e?.queryParams,timeoutMs:e?.timeoutInSeconds==null?6e4:e.timeoutInSeconds*1e3,maxRetries:e?.maxRetries,abortSignal:e?.abortSignal});if(n.ok)return{data:n.body,rawResponse:n.rawResponse};if(n.error.reason===`status-code`)switch(n.error.statusCode){case 400:throw new Wb(n.error.body,n.rawResponse);case 401:throw new Gb(n.error.body,n.rawResponse);case 403:throw new Kb(n.error.body,n.rawResponse);case 405:throw new Jb(n.error.body,n.rawResponse);case 404:throw new qb(n.error.body,n.rawResponse);default:throw new X({statusCode:n.error.statusCode,body:n.error.body,rawResponse:n.rawResponse})}switch(n.error.reason){case`non-json`:throw new X({statusCode:n.error.statusCode,body:n.error.rawBody,rawResponse:n.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/scim/ServiceProviderConfig.`);case`unknown`:throw new X({message:n.error.errorMessage,rawResponse:n.rawResponse})}}getResourceTypes(e){return nx.fromPromise(this.__getResourceTypes(e))}async __getResourceTypes(e){let t=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":e?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":e?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":e?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),e?.headers),n=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/scim/ResourceTypes`),method:`GET`,headers:t,queryParameters:e?.queryParams,timeoutMs:e?.timeoutInSeconds==null?6e4:e.timeoutInSeconds*1e3,maxRetries:e?.maxRetries,abortSignal:e?.abortSignal});if(n.ok)return{data:n.body,rawResponse:n.rawResponse};if(n.error.reason===`status-code`)switch(n.error.statusCode){case 400:throw new Wb(n.error.body,n.rawResponse);case 401:throw new Gb(n.error.body,n.rawResponse);case 403:throw new Kb(n.error.body,n.rawResponse);case 405:throw new Jb(n.error.body,n.rawResponse);case 404:throw new qb(n.error.body,n.rawResponse);default:throw new X({statusCode:n.error.statusCode,body:n.error.body,rawResponse:n.rawResponse})}switch(n.error.reason){case`non-json`:throw new X({statusCode:n.error.statusCode,body:n.error.rawBody,rawResponse:n.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/scim/ResourceTypes.`);case`unknown`:throw new X({message:n.error.errorMessage,rawResponse:n.rawResponse})}}getSchemas(e){return nx.fromPromise(this.__getSchemas(e))}async __getSchemas(e){let t=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":e?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":e?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":e?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),e?.headers),n=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/scim/Schemas`),method:`GET`,headers:t,queryParameters:e?.queryParams,timeoutMs:e?.timeoutInSeconds==null?6e4:e.timeoutInSeconds*1e3,maxRetries:e?.maxRetries,abortSignal:e?.abortSignal});if(n.ok)return{data:n.body,rawResponse:n.rawResponse};if(n.error.reason===`status-code`)switch(n.error.statusCode){case 400:throw new Wb(n.error.body,n.rawResponse);case 401:throw new Gb(n.error.body,n.rawResponse);case 403:throw new Kb(n.error.body,n.rawResponse);case 405:throw new Jb(n.error.body,n.rawResponse);case 404:throw new qb(n.error.body,n.rawResponse);default:throw new X({statusCode:n.error.statusCode,body:n.error.body,rawResponse:n.rawResponse})}switch(n.error.reason){case`non-json`:throw new X({statusCode:n.error.statusCode,body:n.error.rawBody,rawResponse:n.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/scim/Schemas.`);case`unknown`:throw new X({message:n.error.errorMessage,rawResponse:n.rawResponse})}}listUsers(e={},t){return nx.fromPromise(this.__listUsers(e,t))}async __listUsers(e={},t){let{filter:n,startIndex:r,count:i}=e,a={};n!=null&&(a.filter=n),r!=null&&(a.startIndex=r.toString()),i!=null&&(a.count=i.toString());let o=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),s=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/scim/Users`),method:`GET`,headers:o,queryParameters:{...a,...t?.queryParams},timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(s.ok)return{data:s.body,rawResponse:s.rawResponse};if(s.error.reason===`status-code`)switch(s.error.statusCode){case 400:throw new Wb(s.error.body,s.rawResponse);case 401:throw new Gb(s.error.body,s.rawResponse);case 403:throw new Kb(s.error.body,s.rawResponse);case 405:throw new Jb(s.error.body,s.rawResponse);case 404:throw new qb(s.error.body,s.rawResponse);default:throw new X({statusCode:s.error.statusCode,body:s.error.body,rawResponse:s.rawResponse})}switch(s.error.reason){case`non-json`:throw new X({statusCode:s.error.statusCode,body:s.error.rawBody,rawResponse:s.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/scim/Users.`);case`unknown`:throw new X({message:s.error.errorMessage,rawResponse:s.rawResponse})}}createUser(e,t){return nx.fromPromise(this.__createUser(e,t))}async __createUser(e,t){let n=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),r=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/scim/Users`),method:`POST`,headers:n,contentType:`application/json`,queryParameters:t?.queryParams,requestType:`json`,body:e,timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(r.ok)return{data:r.body,rawResponse:r.rawResponse};if(r.error.reason===`status-code`)switch(r.error.statusCode){case 400:throw new Wb(r.error.body,r.rawResponse);case 401:throw new Gb(r.error.body,r.rawResponse);case 403:throw new Kb(r.error.body,r.rawResponse);case 405:throw new Jb(r.error.body,r.rawResponse);case 404:throw new qb(r.error.body,r.rawResponse);default:throw new X({statusCode:r.error.statusCode,body:r.error.body,rawResponse:r.rawResponse})}switch(r.error.reason){case`non-json`:throw new X({statusCode:r.error.statusCode,body:r.error.rawBody,rawResponse:r.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling POST /api/public/scim/Users.`);case`unknown`:throw new X({message:r.error.errorMessage,rawResponse:r.rawResponse})}}getUser(e,t){return nx.fromPromise(this.__getUser(e,t))}async __getUser(e,t){let n=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),r=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/scim/Users/${encodeURIComponent(e)}`),method:`GET`,headers:n,queryParameters:t?.queryParams,timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(r.ok)return{data:r.body,rawResponse:r.rawResponse};if(r.error.reason===`status-code`)switch(r.error.statusCode){case 400:throw new Wb(r.error.body,r.rawResponse);case 401:throw new Gb(r.error.body,r.rawResponse);case 403:throw new Kb(r.error.body,r.rawResponse);case 405:throw new Jb(r.error.body,r.rawResponse);case 404:throw new qb(r.error.body,r.rawResponse);default:throw new X({statusCode:r.error.statusCode,body:r.error.body,rawResponse:r.rawResponse})}switch(r.error.reason){case`non-json`:throw new X({statusCode:r.error.statusCode,body:r.error.rawBody,rawResponse:r.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/scim/Users/{userId}.`);case`unknown`:throw new X({message:r.error.errorMessage,rawResponse:r.rawResponse})}}deleteUser(e,t){return nx.fromPromise(this.__deleteUser(e,t))}async __deleteUser(e,t){let n=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),r=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/scim/Users/${encodeURIComponent(e)}`),method:`DELETE`,headers:n,queryParameters:t?.queryParams,timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(r.ok)return{data:r.body,rawResponse:r.rawResponse};if(r.error.reason===`status-code`)switch(r.error.statusCode){case 400:throw new Wb(r.error.body,r.rawResponse);case 401:throw new Gb(r.error.body,r.rawResponse);case 403:throw new Kb(r.error.body,r.rawResponse);case 405:throw new Jb(r.error.body,r.rawResponse);case 404:throw new qb(r.error.body,r.rawResponse);default:throw new X({statusCode:r.error.statusCode,body:r.error.body,rawResponse:r.rawResponse})}switch(r.error.reason){case`non-json`:throw new X({statusCode:r.error.statusCode,body:r.error.rawBody,rawResponse:r.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling DELETE /api/public/scim/Users/{userId}.`);case`unknown`:throw new X({message:r.error.errorMessage,rawResponse:r.rawResponse})}}async _getAuthorizationHeader(){let e=await Z.get(this._options.username),t=await Z.get(this._options.password);if(e!=null&&t!=null)return ix.toAuthorizationHeader({username:e,password:t})}},HIe=class{constructor(e){this._options=e}create(e,t){return nx.fromPromise(this.__create(e,t))}async __create(e,t){let n=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),r=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/score-configs`),method:`POST`,headers:n,contentType:`application/json`,queryParameters:t?.queryParams,requestType:`json`,body:e,timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(r.ok)return{data:r.body,rawResponse:r.rawResponse};if(r.error.reason===`status-code`)switch(r.error.statusCode){case 400:throw new Wb(r.error.body,r.rawResponse);case 401:throw new Gb(r.error.body,r.rawResponse);case 403:throw new Kb(r.error.body,r.rawResponse);case 405:throw new Jb(r.error.body,r.rawResponse);case 404:throw new qb(r.error.body,r.rawResponse);default:throw new X({statusCode:r.error.statusCode,body:r.error.body,rawResponse:r.rawResponse})}switch(r.error.reason){case`non-json`:throw new X({statusCode:r.error.statusCode,body:r.error.rawBody,rawResponse:r.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling POST /api/public/score-configs.`);case`unknown`:throw new X({message:r.error.errorMessage,rawResponse:r.rawResponse})}}get(e={},t){return nx.fromPromise(this.__get(e,t))}async __get(e={},t){let{page:n,limit:r}=e,i={};n!=null&&(i.page=n.toString()),r!=null&&(i.limit=r.toString());let a=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),o=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/score-configs`),method:`GET`,headers:a,queryParameters:{...i,...t?.queryParams},timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(o.ok)return{data:o.body,rawResponse:o.rawResponse};if(o.error.reason===`status-code`)switch(o.error.statusCode){case 400:throw new Wb(o.error.body,o.rawResponse);case 401:throw new Gb(o.error.body,o.rawResponse);case 403:throw new Kb(o.error.body,o.rawResponse);case 405:throw new Jb(o.error.body,o.rawResponse);case 404:throw new qb(o.error.body,o.rawResponse);default:throw new X({statusCode:o.error.statusCode,body:o.error.body,rawResponse:o.rawResponse})}switch(o.error.reason){case`non-json`:throw new X({statusCode:o.error.statusCode,body:o.error.rawBody,rawResponse:o.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/score-configs.`);case`unknown`:throw new X({message:o.error.errorMessage,rawResponse:o.rawResponse})}}getById(e,t){return nx.fromPromise(this.__getById(e,t))}async __getById(e,t){let n=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),r=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/score-configs/${encodeURIComponent(e)}`),method:`GET`,headers:n,queryParameters:t?.queryParams,timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(r.ok)return{data:r.body,rawResponse:r.rawResponse};if(r.error.reason===`status-code`)switch(r.error.statusCode){case 400:throw new Wb(r.error.body,r.rawResponse);case 401:throw new Gb(r.error.body,r.rawResponse);case 403:throw new Kb(r.error.body,r.rawResponse);case 405:throw new Jb(r.error.body,r.rawResponse);case 404:throw new qb(r.error.body,r.rawResponse);default:throw new X({statusCode:r.error.statusCode,body:r.error.body,rawResponse:r.rawResponse})}switch(r.error.reason){case`non-json`:throw new X({statusCode:r.error.statusCode,body:r.error.rawBody,rawResponse:r.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/score-configs/{configId}.`);case`unknown`:throw new X({message:r.error.errorMessage,rawResponse:r.rawResponse})}}update(e,t,n){return nx.fromPromise(this.__update(e,t,n))}async __update(e,t,n){let r=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":n?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":n?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":n?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),n?.headers),i=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/score-configs/${encodeURIComponent(e)}`),method:`PATCH`,headers:r,contentType:`application/json`,queryParameters:n?.queryParams,requestType:`json`,body:t,timeoutMs:n?.timeoutInSeconds==null?6e4:n.timeoutInSeconds*1e3,maxRetries:n?.maxRetries,abortSignal:n?.abortSignal});if(i.ok)return{data:i.body,rawResponse:i.rawResponse};if(i.error.reason===`status-code`)switch(i.error.statusCode){case 400:throw new Wb(i.error.body,i.rawResponse);case 401:throw new Gb(i.error.body,i.rawResponse);case 403:throw new Kb(i.error.body,i.rawResponse);case 405:throw new Jb(i.error.body,i.rawResponse);case 404:throw new qb(i.error.body,i.rawResponse);default:throw new X({statusCode:i.error.statusCode,body:i.error.body,rawResponse:i.rawResponse})}switch(i.error.reason){case`non-json`:throw new X({statusCode:i.error.statusCode,body:i.error.rawBody,rawResponse:i.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling PATCH /api/public/score-configs/{configId}.`);case`unknown`:throw new X({message:i.error.errorMessage,rawResponse:i.rawResponse})}}async _getAuthorizationHeader(){let e=await Z.get(this._options.username),t=await Z.get(this._options.password);if(e!=null&&t!=null)return ix.toAuthorizationHeader({username:e,password:t})}},UIe=class{constructor(e){this._options=e}getMany(e={},t){return nx.fromPromise(this.__getMany(e,t))}async __getMany(e={},t){let{page:n,limit:r,userId:i,name:a,fromTimestamp:o,toTimestamp:s,environment:c,source:l,operator:u,value:d,scoreIds:f,configId:p,sessionId:m,datasetRunId:h,traceId:g,observationId:_,queueId:v,dataType:y,traceTags:b,fields:x,filter:S}=e,C={};n!=null&&(C.page=n.toString()),r!=null&&(C.limit=r.toString()),i!=null&&(C.userId=i),a!=null&&(C.name=a),o!=null&&(C.fromTimestamp=o),s!=null&&(C.toTimestamp=s),c!=null&&(Array.isArray(c)?C.environment=c.map(e=>e):C.environment=c),l!=null&&(C.source=l),u!=null&&(C.operator=u),d!=null&&(C.value=d.toString()),f!=null&&(C.scoreIds=f),p!=null&&(C.configId=p),m!=null&&(C.sessionId=m),h!=null&&(C.datasetRunId=h),g!=null&&(C.traceId=g),_!=null&&(C.observationId=_),v!=null&&(C.queueId=v),y!=null&&(C.dataType=y),b!=null&&(Array.isArray(b)?C.traceTags=b.map(e=>e):C.traceTags=b),x!=null&&(C.fields=x),S!=null&&(C.filter=S);let w=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),T=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/v2/scores`),method:`GET`,headers:w,queryParameters:{...C,...t?.queryParams},timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(T.ok)return{data:T.body,rawResponse:T.rawResponse};if(T.error.reason===`status-code`)switch(T.error.statusCode){case 400:throw new Wb(T.error.body,T.rawResponse);case 401:throw new Gb(T.error.body,T.rawResponse);case 403:throw new Kb(T.error.body,T.rawResponse);case 405:throw new Jb(T.error.body,T.rawResponse);case 404:throw new qb(T.error.body,T.rawResponse);default:throw new X({statusCode:T.error.statusCode,body:T.error.body,rawResponse:T.rawResponse})}switch(T.error.reason){case`non-json`:throw new X({statusCode:T.error.statusCode,body:T.error.rawBody,rawResponse:T.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/v2/scores.`);case`unknown`:throw new X({message:T.error.errorMessage,rawResponse:T.rawResponse})}}getById(e,t){return nx.fromPromise(this.__getById(e,t))}async __getById(e,t){let n=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),r=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/v2/scores/${encodeURIComponent(e)}`),method:`GET`,headers:n,queryParameters:t?.queryParams,timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(r.ok)return{data:r.body,rawResponse:r.rawResponse};if(r.error.reason===`status-code`)switch(r.error.statusCode){case 400:throw new Wb(r.error.body,r.rawResponse);case 401:throw new Gb(r.error.body,r.rawResponse);case 403:throw new Kb(r.error.body,r.rawResponse);case 405:throw new Jb(r.error.body,r.rawResponse);case 404:throw new qb(r.error.body,r.rawResponse);default:throw new X({statusCode:r.error.statusCode,body:r.error.body,rawResponse:r.rawResponse})}switch(r.error.reason){case`non-json`:throw new X({statusCode:r.error.statusCode,body:r.error.rawBody,rawResponse:r.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/v2/scores/{scoreId}.`);case`unknown`:throw new X({message:r.error.errorMessage,rawResponse:r.rawResponse})}}async _getAuthorizationHeader(){let e=await Z.get(this._options.username),t=await Z.get(this._options.password);if(e!=null&&t!=null)return ix.toAuthorizationHeader({username:e,password:t})}},WIe=class{constructor(e){this._options=e}list(e={},t){return nx.fromPromise(this.__list(e,t))}async __list(e={},t){let{page:n,limit:r,fromTimestamp:i,toTimestamp:a,environment:o}=e,s={};n!=null&&(s.page=n.toString()),r!=null&&(s.limit=r.toString()),i!=null&&(s.fromTimestamp=i),a!=null&&(s.toTimestamp=a),o!=null&&(Array.isArray(o)?s.environment=o.map(e=>e):s.environment=o);let c=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),l=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/sessions`),method:`GET`,headers:c,queryParameters:{...s,...t?.queryParams},timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(l.ok)return{data:l.body,rawResponse:l.rawResponse};if(l.error.reason===`status-code`)switch(l.error.statusCode){case 400:throw new Wb(l.error.body,l.rawResponse);case 401:throw new Gb(l.error.body,l.rawResponse);case 403:throw new Kb(l.error.body,l.rawResponse);case 405:throw new Jb(l.error.body,l.rawResponse);case 404:throw new qb(l.error.body,l.rawResponse);default:throw new X({statusCode:l.error.statusCode,body:l.error.body,rawResponse:l.rawResponse})}switch(l.error.reason){case`non-json`:throw new X({statusCode:l.error.statusCode,body:l.error.rawBody,rawResponse:l.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/sessions.`);case`unknown`:throw new X({message:l.error.errorMessage,rawResponse:l.rawResponse})}}get(e,t){return nx.fromPromise(this.__get(e,t))}async __get(e,t){let n=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),r=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/sessions/${encodeURIComponent(e)}`),method:`GET`,headers:n,queryParameters:t?.queryParams,timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(r.ok)return{data:r.body,rawResponse:r.rawResponse};if(r.error.reason===`status-code`)switch(r.error.statusCode){case 400:throw new Wb(r.error.body,r.rawResponse);case 401:throw new Gb(r.error.body,r.rawResponse);case 403:throw new Kb(r.error.body,r.rawResponse);case 405:throw new Jb(r.error.body,r.rawResponse);case 404:throw new qb(r.error.body,r.rawResponse);default:throw new X({statusCode:r.error.statusCode,body:r.error.body,rawResponse:r.rawResponse})}switch(r.error.reason){case`non-json`:throw new X({statusCode:r.error.statusCode,body:r.error.rawBody,rawResponse:r.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/sessions/{sessionId}.`);case`unknown`:throw new X({message:r.error.errorMessage,rawResponse:r.rawResponse})}}async _getAuthorizationHeader(){let e=await Z.get(this._options.username),t=await Z.get(this._options.password);if(e!=null&&t!=null)return ix.toAuthorizationHeader({username:e,password:t})}},GIe=class{constructor(e){this._options=e}get(e,t={},n){return nx.fromPromise(this.__get(e,t,n))}async __get(e,t={},n){let{fields:r}=t,i={};r!=null&&(i.fields=r);let a=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":n?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":n?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":n?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),n?.headers),o=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/traces/${encodeURIComponent(e)}`),method:`GET`,headers:a,queryParameters:{...i,...n?.queryParams},timeoutMs:n?.timeoutInSeconds==null?6e4:n.timeoutInSeconds*1e3,maxRetries:n?.maxRetries,abortSignal:n?.abortSignal});if(o.ok)return{data:o.body,rawResponse:o.rawResponse};if(o.error.reason===`status-code`)switch(o.error.statusCode){case 400:throw new Wb(o.error.body,o.rawResponse);case 401:throw new Gb(o.error.body,o.rawResponse);case 403:throw new Kb(o.error.body,o.rawResponse);case 405:throw new Jb(o.error.body,o.rawResponse);case 404:throw new qb(o.error.body,o.rawResponse);default:throw new X({statusCode:o.error.statusCode,body:o.error.body,rawResponse:o.rawResponse})}switch(o.error.reason){case`non-json`:throw new X({statusCode:o.error.statusCode,body:o.error.rawBody,rawResponse:o.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/traces/{traceId}.`);case`unknown`:throw new X({message:o.error.errorMessage,rawResponse:o.rawResponse})}}delete(e,t){return nx.fromPromise(this.__delete(e,t))}async __delete(e,t){let n=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),r=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/traces/${encodeURIComponent(e)}`),method:`DELETE`,headers:n,queryParameters:t?.queryParams,timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(r.ok)return{data:r.body,rawResponse:r.rawResponse};if(r.error.reason===`status-code`)switch(r.error.statusCode){case 400:throw new Wb(r.error.body,r.rawResponse);case 401:throw new Gb(r.error.body,r.rawResponse);case 403:throw new Kb(r.error.body,r.rawResponse);case 405:throw new Jb(r.error.body,r.rawResponse);case 404:throw new qb(r.error.body,r.rawResponse);default:throw new X({statusCode:r.error.statusCode,body:r.error.body,rawResponse:r.rawResponse})}switch(r.error.reason){case`non-json`:throw new X({statusCode:r.error.statusCode,body:r.error.rawBody,rawResponse:r.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling DELETE /api/public/traces/{traceId}.`);case`unknown`:throw new X({message:r.error.errorMessage,rawResponse:r.rawResponse})}}list(e={},t){return nx.fromPromise(this.__list(e,t))}async __list(e={},t){let{page:n,limit:r,userId:i,name:a,sessionId:o,fromTimestamp:s,toTimestamp:c,orderBy:l,tags:u,version:d,release:f,environment:p,fields:m,filter:h}=e,g={};n!=null&&(g.page=n.toString()),r!=null&&(g.limit=r.toString()),i!=null&&(g.userId=i),a!=null&&(g.name=a),o!=null&&(g.sessionId=o),s!=null&&(g.fromTimestamp=s),c!=null&&(g.toTimestamp=c),l!=null&&(g.orderBy=l),u!=null&&(Array.isArray(u)?g.tags=u.map(e=>e):g.tags=u),d!=null&&(g.version=d),f!=null&&(g.release=f),p!=null&&(Array.isArray(p)?g.environment=p.map(e=>e):g.environment=p),m!=null&&(g.fields=m),h!=null&&(g.filter=h);let _=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),v=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/traces`),method:`GET`,headers:_,queryParameters:{...g,...t?.queryParams},timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(v.ok)return{data:v.body,rawResponse:v.rawResponse};if(v.error.reason===`status-code`)switch(v.error.statusCode){case 400:throw new Wb(v.error.body,v.rawResponse);case 401:throw new Gb(v.error.body,v.rawResponse);case 403:throw new Kb(v.error.body,v.rawResponse);case 405:throw new Jb(v.error.body,v.rawResponse);case 404:throw new qb(v.error.body,v.rawResponse);default:throw new X({statusCode:v.error.statusCode,body:v.error.body,rawResponse:v.rawResponse})}switch(v.error.reason){case`non-json`:throw new X({statusCode:v.error.statusCode,body:v.error.rawBody,rawResponse:v.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling GET /api/public/traces.`);case`unknown`:throw new X({message:v.error.errorMessage,rawResponse:v.rawResponse})}}deleteMultiple(e,t){return nx.fromPromise(this.__deleteMultiple(e,t))}async __deleteMultiple(e,t){let n=Ab(this._options?.headers,jb({Authorization:await this._getAuthorizationHeader(),"X-Langfuse-Sdk-Name":t?.xLangfuseSdkName??this._options?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":t?.xLangfuseSdkVersion??this._options?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":t?.xLangfusePublicKey??this._options?.xLangfusePublicKey}),t?.headers),r=await tx({url:rx.join(await Z.get(this._options.baseUrl)??await Z.get(this._options.environment),`/api/public/traces`),method:`DELETE`,headers:n,contentType:`application/json`,queryParameters:t?.queryParams,requestType:`json`,body:e,timeoutMs:t?.timeoutInSeconds==null?6e4:t.timeoutInSeconds*1e3,maxRetries:t?.maxRetries,abortSignal:t?.abortSignal});if(r.ok)return{data:r.body,rawResponse:r.rawResponse};if(r.error.reason===`status-code`)switch(r.error.statusCode){case 400:throw new Wb(r.error.body,r.rawResponse);case 401:throw new Gb(r.error.body,r.rawResponse);case 403:throw new Kb(r.error.body,r.rawResponse);case 405:throw new Jb(r.error.body,r.rawResponse);case 404:throw new qb(r.error.body,r.rawResponse);default:throw new X({statusCode:r.error.statusCode,body:r.error.body,rawResponse:r.rawResponse})}switch(r.error.reason){case`non-json`:throw new X({statusCode:r.error.statusCode,body:r.error.rawBody,rawResponse:r.rawResponse});case`timeout`:throw new Ub(`Timeout exceeded when calling DELETE /api/public/traces.`);case`unknown`:throw new X({message:r.error.errorMessage,rawResponse:r.rawResponse})}}async _getAuthorizationHeader(){let e=await Z.get(this._options.username),t=await Z.get(this._options.password);if(e!=null&&t!=null)return ix.toAuthorizationHeader({username:e,password:t})}},KIe=class{constructor(e){this._options={...e,headers:Ab({"X-Langfuse-Sdk-Name":e?.xLangfuseSdkName,"X-Langfuse-Sdk-Version":e?.xLangfuseSdkVersion,"X-Langfuse-Public-Key":e?.xLangfusePublicKey},e?.headers)}}get annotationQueues(){return this._annotationQueues??(this._annotationQueues=new yIe(this._options))}get blobStorageIntegrations(){return this._blobStorageIntegrations??(this._blobStorageIntegrations=new bIe(this._options))}get comments(){return this._comments??(this._comments=new xIe(this._options))}get datasetItems(){return this._datasetItems??(this._datasetItems=new SIe(this._options))}get datasetRunItems(){return this._datasetRunItems??(this._datasetRunItems=new CIe(this._options))}get datasets(){return this._datasets??(this._datasets=new wIe(this._options))}get health(){return this._health??(this._health=new TIe(this._options))}get ingestion(){return this._ingestion??(this._ingestion=new EIe(this._options))}get legacy(){return this._legacy??(this._legacy=new AIe(this._options))}get llmConnections(){return this._llmConnections??(this._llmConnections=new jIe(this._options))}get media(){return this._media??(this._media=new MIe(this._options))}get metrics(){return this._metrics??(this._metrics=new NIe(this._options))}get models(){return this._models??(this._models=new PIe(this._options))}get observations(){return this._observations??(this._observations=new FIe(this._options))}get opentelemetry(){return this._opentelemetry??(this._opentelemetry=new IIe(this._options))}get organizations(){return this._organizations??(this._organizations=new LIe(this._options))}get projects(){return this._projects??(this._projects=new RIe(this._options))}get promptVersion(){return this._promptVersion??(this._promptVersion=new zIe(this._options))}get prompts(){return this._prompts??(this._prompts=new BIe(this._options))}get scim(){return this._scim??(this._scim=new VIe(this._options))}get scoreConfigs(){return this._scoreConfigs??(this._scoreConfigs=new HIe(this._options))}get scores(){return this._scores??(this._scores=new UIe(this._options))}get sessions(){return this._sessions??(this._sessions=new WIe(this._options))}get trace(){return this._trace??(this._trace=new GIe(this._options))}},ax=class{constructor(e){let{source:t}=e;if(this._source=t,t===`base64_data_uri`){let[t,n]=this.parseBase64DataUri(e.base64DataUri);this._contentBytes=t,this._contentType=n}else this._contentBytes=e.contentBytes,this._contentType=e.contentType}parseBase64DataUri(e){try{if(!e||typeof e!=`string`)throw Error(`Data URI is not a string`);if(!e.startsWith(`data:`))throw Error(`Data URI does not start with 'data:'`);let[t,n]=e.slice(5).split(`,`,2);if(!t||!n)throw Error(`Invalid URI`);let r=t.split(`;`);if(!r.includes(`base64`))throw Error(`Data is not base64 encoded`);let i=r[0];if(!i)throw Error(`Content type is empty`);return[GPe(n),i]}catch(e){return Rb().error(`Error parsing base64 data URI`,e),[void 0,void 0]}}async getId(){let e=await this.getSha256Hash();return e?e.replaceAll(`+`,`-`).replaceAll(`/`,`_`).slice(0,22):null}get contentLength(){return this._contentBytes?.length}async getSha256Hash(){if(this._contentBytes)try{let e=await crypto.subtle.digest(`SHA-256`,this._contentBytes);return Ob(new Uint8Array(e))}catch(e){Rb().warn(`[Langfuse] Failed to generate SHA-256 hash for media content:`,e);return}}async getTag(){let e=await this.getId();return!this._contentType||!this._source||!e?null:`@@@langfuseMedia:type=${this._contentType}|id=${e}|source=${this._source}@@@`}get base64DataUri(){return this._contentBytes?`data:${this._contentType};base64,${Ob(this._contentBytes)}`:null}toJSON(){return this.base64DataUri}},qIe=[`experimentId`,`experimentName`,`experimentMetadata`,`experimentDatasetId`,`experimentItemId`,`experimentItemMetadata`,`experimentItemRootObservationId`],ox={userId:Ce(`langfuse_user_id`),sessionId:Ce(`langfuse_session_id`),metadata:Ce(`langfuse_metadata`),version:Ce(`langfuse_version`),tags:Ce(`langfuse_tags`),traceName:Ce(`langfuse_trace_name`),experimentId:Ce(`langfuse_experiment_id`),experimentName:Ce(`langfuse_experiment_name`),experimentMetadata:Ce(`langfuse_experiment_metadata`),experimentDatasetId:Ce(`langfuse_experiment_dataset_id`),experimentItemId:Ce(`langfuse_experiment_item_id`),experimentItemMetadata:Ce(`langfuse_experiment_item_metadata`),experimentItemRootObservationId:Ce(`langfuse_experiment_item_root_observation_id`)},sx=`langfuse_`,JIe=`,`}));function XIe(e){return e.instrumentationScope.name===zb}function ZIe(e){return Object.keys(e.attributes).some(e=>e.startsWith(`gen_ai.`))}function QIe(e){let t=e.instrumentationScope.name;return tLe.some(e=>t===e||t.startsWith(`${e}.`))}function $Ie(e){return XIe(e)||ZIe(e)||QIe(e)}var eLe,tLe,nLe,rLe=n((()=>{YIe(),Te(),De(),_de(),eLe=class{constructor(e){this.pendingMediaUploads=new Set,this.apiClient=e.apiClient}get logger(){return Rb()}async flush(){await Promise.all(Array.from(this.pendingMediaUploads))}async process(e){let t=[Vb.OBSERVATION_INPUT,Vb.TRACE_INPUT,Vb.OBSERVATION_OUTPUT,Vb.TRACE_OUTPUT,Vb.OBSERVATION_METADATA,Vb.TRACE_METADATA];for(let n of t){let t=Object.keys(e.attributes).filter(e=>e.startsWith(n));for(let r of t){let t=e.attributes[r];if(typeof t!=`string`){this.logger.warn(`Span attribute ${n} is not a stringified object. Skipping media handling.`);continue}let i=t,a=[...new Set(t.match(/data:[^;]+;base64,[A-Za-z0-9+/]+=*/g)??[])];if(a.length!==0){for(let t of a){let r=new ax({base64DataUri:t,source:`base64_data_uri`}),a=await r.getTag();if(!a){this.logger.warn(`Failed to create Langfuse media tag. Skipping media item.`);continue}this.scheduleUpload({span:e,media:r,field:n.includes(`input`)?`input`:n.includes(`output`)?`output`:`metadata`}),i=i.replaceAll(t,a)}e.attributes[r]=i}}}if(e.instrumentationScope.name===`ai`)for(let t of[`ai.prompt.messages`,`ai.prompt`]){let n=e.attributes[t];if(!n||typeof n!=`string`)continue;let r=n;try{let i=JSON.parse(n);if(Array.isArray(i)){for(let t of i)if(Array.isArray(t.content)){let n=t.content;for(let t of n)if(t.type===`file`){let n=null;if(t.data!=null&&t.mediaType!=null&&typeof t.data!=`object`&&!String(t.data).startsWith(`http`)&&(n=t.data),t.image!=null&&t.mediaType!=null&&!t.image.startsWith(`http`)&&(n=t.image),!n)continue;let i=new ax({contentType:t.mediaType,contentBytes:GPe(n),source:`bytes`}),a=await i.getTag();if(!a){this.logger.warn(`Failed to create Langfuse media tag. Skipping media item.`);continue}this.scheduleUpload({span:e,media:i,field:`input`}),r=r.replaceAll(n,a)}}}e.attributes[t]=r}catch(n){this.logger.warn(`Failed to handle media for AI SDK attribute ${t} for span ${e.spanContext().spanId}`,n)}}}scheduleUpload(e){let{span:t,field:n,media:r}=e,i=this.handleUpload({media:r,traceId:t.spanContext().traceId,observationId:t.spanContext().spanId,field:n}).catch(e=>{this.logger.error(`Media upload failed with error: `,e)});this.pendingMediaUploads.add(i),i.finally(()=>{this.pendingMediaUploads.delete(i)})}async handleUpload({media:e,traceId:t,observationId:n,field:r}){try{let i=await e.getSha256Hash();if(!e.contentLength||!e._contentType||!i||!e._contentBytes)return;let{uploadUrl:a,mediaId:o}=await this.apiClient.media.getUploadUrl({contentLength:e.contentLength,traceId:t,observationId:n,field:r,contentType:e._contentType,sha256Hash:i});if(!a){this.logger.debug(`Media status: Media with ID ${o} already uploaded. Skipping duplicate upload.`);return}let s=await e.getId();if(s!==o){this.logger.error(`Media integrity error: Media ID mismatch between SDK (${s}) and Server (${o}). Upload cancelled. Please check media ID generation logic.`);return}this.logger.debug(`Uploading media ${o}...`);let c=Date.now(),l=await this.uploadWithBackoff({uploadUrl:a,contentBytes:e._contentBytes,contentType:e._contentType,contentSha256Hash:i,maxRetries:3,baseDelay:1e3});if(!l)throw Error(`Media upload process failed`);await this.apiClient.media.patch(o,{uploadedAt:new Date().toISOString(),uploadHttpStatus:l.status,uploadHttpError:await l.text(),uploadTimeMs:Date.now()-c}),this.logger.debug(`Media upload status reported for ${o}`)}catch(e){this.logger.error(`Error processing media item: ${e}`)}}async uploadWithBackoff(e){let{uploadUrl:t,contentType:n,contentSha256Hash:r,contentBytes:i,maxRetries:a,baseDelay:o}=e;for(let e=0;e<=a;e++)try{let o;try{o=new URL(t).hostname}catch{o=``}let s=o===`storage.googleapis.com`||o.endsWith(`.storage.googleapis.com`)?{"Content-Type":n}:{"Content-Type":n,"x-amz-checksum-sha256":r,"x-ms-blob-type":`BlockBlob`},c=await fetch(t,{method:`PUT`,body:i,headers:s});if(e<a&&c.status!==200&&c.status!==201)throw Error(`Upload failed with status ${c.status}`);return c}catch(t){if(e===a)throw t;let n=o*2**e,r=Math.random()*1e3;await new Promise(e=>setTimeout(e,n+r))}}},tLe=[zb,`agent_framework`,`ai`,`haystack`,`langsmith`,`litellm`,`openinference`,`opentelemetry.instrumentation.anthropic`,`strands-agents`,`vllm`],nLe=class{constructor(e){this.pendingEndedSpans=new Set;let t=Rb(),n=e?.publicKey??Db(`LANGFUSE_PUBLIC_KEY`),r=e?.secretKey??Db(`LANGFUSE_SECRET_KEY`),i=e?.baseUrl??Db(`LANGFUSE_BASE_URL`)??Db(`LANGFUSE_BASEURL`)??`https://cloud.langfuse.com`;!e?.exporter&&!n&&t.warn(`No exporter configured and no public key provided in constructor or as LANGFUSE_PUBLIC_KEY env var. Span exports will fail.`),!e?.exporter&&!r&&t.warn(`No exporter configured and no secret key provided in constructor or as LANGFUSE_SECRET_KEY env var. Span exports will fail.`);let a=e?.flushAt??Db(`LANGFUSE_FLUSH_AT`),o=e?.flushInterval??Db(`LANGFUSE_FLUSH_INTERVAL`),s=KPe(`${n}:${r}`),c=e?.timeout??Number(Db(`LANGFUSE_TIMEOUT`)??5),l=e?.exporter??new Ee({url:`${i}/api/public/otel/v1/traces`,headers:{Authorization:`Basic ${s}`,"x-langfuse-sdk-name":`javascript`,"x-langfuse-sdk-version":Bb,"x-langfuse-public-key":n??`<missing>`,...e?.additionalHeaders},timeoutMillis:c*1e3});this.processor=e?.exportMode===`immediate`?new gde(l):new mde(l,{maxExportBatchSize:a?Number(a):void 0,scheduledDelayMillis:o?Number(o)*1e3:void 0}),this.publicKey=n,this.baseUrl=i,this.environment=e?.environment??Db(`LANGFUSE_TRACING_ENVIRONMENT`),this.release=e?.release??Db(`LANGFUSE_RELEASE`),this.mask=e?.mask,this.shouldExportSpan=e?.shouldExportSpan??(({otelSpan:e})=>$Ie(e)),this.apiClient=new KIe({baseUrl:this.baseUrl,username:this.publicKey,password:r,xLangfusePublicKey:this.publicKey,xLangfuseSdkVersion:Bb,xLangfuseSdkName:`javascript`,environment:``,headers:e?.additionalHeaders}),this.mediaService=new eLe({apiClient:this.apiClient}),t.debug(`Initialized LangfuseSpanProcessor with params:`,{publicKey:n,baseUrl:i,environment:this.environment,release:this.release,timeoutSeconds:c,flushAt:a,flushIntervalSeconds:o})}get logger(){return Rb()}onStart(e,t){return e.setAttributes({[Vb.ENVIRONMENT]:this.environment,[Vb.RELEASE]:this.release,...xFe(t)}),this.processor.onStart(e,t)}onEnd(e){let t=this.processEndedSpan(e).catch(e=>{this.logger.error(e)});this.pendingEndedSpans.add(t),t.finally(()=>this.pendingEndedSpans.delete(t))}async flush(){await Promise.all(Array.from(this.pendingEndedSpans)),await this.mediaService.flush()}async forceFlush(){return await this.flush(),this.processor.forceFlush()}async shutdown(){return await this.flush(),this.processor.shutdown()}async processEndedSpan(e){try{if(this.shouldExportSpan({otelSpan:e})===!1){this.logger.debug(`Dropped span due to shouldExportSpan filter.`,{spanName:e.name,instrumentationScope:e.instrumentationScope.name});return}}catch(t){this.logger.error(`shouldExportSpan failed with error. Dropping span.`,{spanName:e.name,instrumentationScope:e.instrumentationScope.name},t);return}await this.applyMaskInPlace(e),await this.mediaService.process(e),this.logger.isLevelEnabled(Fb.DEBUG)&&this.logger.debug(`Processed span:
|
|
366
366
|
${JSON.stringify({name:e.name,traceId:e.spanContext().traceId,spanId:e.spanContext().spanId,parentSpanId:e.parentSpanContext?.spanId??null,attributes:e.attributes,startTime:new Date(we(e.startTime)),endTime:new Date(we(e.endTime)),durationMs:we(e.duration),kind:e.kind,status:e.status,resource:e.resource.attributes,instrumentationScope:e.instrumentationScope},null,2)}`),this.processor.onEnd(e)}async applyMaskInPlace(e){let t=[Vb.OBSERVATION_INPUT,Vb.TRACE_INPUT,Vb.OBSERVATION_OUTPUT,Vb.TRACE_OUTPUT,Vb.OBSERVATION_METADATA,Vb.TRACE_METADATA];for(let n of t)n in e.attributes&&(e.attributes[n]=await this.applyMask(e.attributes[n]))}async applyMask(e){if(!this.mask)return e;try{return await this.mask({data:e})}catch(e){return this.logger.warn(`Applying mask function failed due to error, fully masking property. Error: ${e}`),`<fully masked due to failed mask function>`}}}}));function iLe({input:e,output:t}={}){let n={[Vb.TRACE_INPUT]:cx(e),[Vb.TRACE_OUTPUT]:cx(t)};return Object.fromEntries(Object.entries(n).filter(([e,t])=>t!=null))}function aLe(e,t){let{metadata:n,input:r,output:i,level:a,statusMessage:o,version:s,completionStartTime:c,model:l,modelParameters:u,usageDetails:d,costDetails:f,prompt:p}=t,m={[Vb.OBSERVATION_TYPE]:e,[Vb.OBSERVATION_LEVEL]:a,[Vb.OBSERVATION_STATUS_MESSAGE]:o,[Vb.VERSION]:s,[Vb.OBSERVATION_INPUT]:cx(r),[Vb.OBSERVATION_OUTPUT]:cx(i),[Vb.OBSERVATION_MODEL]:l,[Vb.OBSERVATION_USAGE_DETAILS]:cx(d),[Vb.OBSERVATION_COST_DETAILS]:cx(f),[Vb.OBSERVATION_COMPLETION_START_TIME]:cx(c),[Vb.OBSERVATION_MODEL_PARAMETERS]:cx(u),...p&&!p.isFallback?{[Vb.OBSERVATION_PROMPT_NAME]:p.name,[Vb.OBSERVATION_PROMPT_VERSION]:p.version}:{},...oLe(n,`observation`)};return Object.fromEntries(Object.entries(m).filter(([e,t])=>t!=null))}function cx(e){try{return typeof e==`string`?e:e==null?void 0:JSON.stringify(e)}catch{return`<failed to serialize>`}}function oLe(e,t){let n=t===`observation`?Vb.OBSERVATION_METADATA:Vb.TRACE_METADATA,r={};if(e==null)return r;if(typeof e!=`object`||Array.isArray(e)){let t=cx(e);t&&(r[n]=t)}else for(let[t,i]of Object.entries(e)){let e=typeof i==`string`?i:cx(i);e&&(r[`${n}.${t}`]=e)}return r}function sLe(){return{isolatedTracerProvider:null}}function cLe(){let e=sLe();try{let t=globalThis;return typeof t!=`object`||!t?(Rb().warn(`globalThis is not available, using fallback state`),e):(t[ux]||Object.defineProperty(t,ux,{value:e,writable:!1,configurable:!1,enumerable:!1}),t[ux])}catch(t){return t instanceof Error?Rb().error(`Failed to access global state: ${t.message}`):Rb().error(`Failed to access global state: ${String(t)}`),e}}function lLe(e){cLe().isolatedTracerProvider=e}function uLe(){let{isolatedTracerProvider:e}=cLe();return e||xe.getTracerProvider()}function dLe(){return uLe().getTracer(zb,Bb)}function fLe(e){return dLe().startSpan(e.name,{startTime:e.startTime},pLe(e.parentSpanContext))}function pLe(e){if(e)return xe.setSpanContext(Se.active(),e)}function lx(e,t,n){let{asType:r=`span`,...i}=n||{},a=fLe({name:e,...i});switch(r){case`generation`:return new xLe({otelSpan:a,attributes:t});case`embedding`:return new SLe({otelSpan:a,attributes:t});case`agent`:return new hLe({otelSpan:a,attributes:t});case`tool`:return new gLe({otelSpan:a,attributes:t});case`chain`:return new _Le({otelSpan:a,attributes:t});case`retriever`:return new vLe({otelSpan:a,attributes:t});case`evaluator`:return new yLe({otelSpan:a,attributes:t});case`guardrail`:return new bLe({otelSpan:a,attributes:t});case`event`:return new CLe({otelSpan:a,attributes:t,timestamp:i?.startTime??new Date});default:return new mLe({otelSpan:a,attributes:t})}}var ux,dx,mLe,hLe,gLe,_Le,vLe,yLe,bLe,xLe,SLe,CLe,wLe=n((()=>{be(),YIe(),ux=Symbol.for(`langfuse`),dx=class{constructor(e){this.otelSpan=e.otelSpan,this.id=e.otelSpan.spanContext().spanId,this.traceId=e.otelSpan.spanContext().traceId,this.type=e.type,e.attributes&&this.otelSpan.setAttributes(aLe(e.type,e.attributes))}get tracer(){return dLe()}end(e){this.otelSpan.end(e)}updateOtelSpanAttributes(e){this.otelSpan.setAttributes(aLe(this.type,e))}setTraceIO(e){return this.otelSpan.setAttributes(iLe(e)),this}setTraceAsPublic(){return this.otelSpan.setAttributes({[Vb.TRACE_PUBLIC]:!0}),this}startObservation(e,t,n){let{asType:r=`span`}=n||{};return lx(e,t,{asType:r,parentSpanContext:this.otelSpan.spanContext()})}},mLe=class extends dx{constructor(e){super({...e,type:`span`})}update(e){return super.updateOtelSpanAttributes(e),this}},hLe=class extends dx{constructor(e){super({...e,type:`agent`})}update(e){return super.updateOtelSpanAttributes(e),this}},gLe=class extends dx{constructor(e){super({...e,type:`tool`})}update(e){return super.updateOtelSpanAttributes(e),this}},_Le=class extends dx{constructor(e){super({...e,type:`chain`})}update(e){return super.updateOtelSpanAttributes(e),this}},vLe=class extends dx{constructor(e){super({...e,type:`retriever`})}update(e){return super.updateOtelSpanAttributes(e),this}},yLe=class extends dx{constructor(e){super({...e,type:`evaluator`})}update(e){return super.updateOtelSpanAttributes(e),this}},bLe=class extends dx{constructor(e){super({...e,type:`guardrail`})}update(e){return super.updateOtelSpanAttributes(e),this}},xLe=class extends dx{constructor(e){super({...e,type:`generation`})}update(e){return this.updateOtelSpanAttributes(e),this}},SLe=class extends dx{constructor(e){super({...e,type:`embedding`})}update(e){return this.updateOtelSpanAttributes(e),this}},CLe=class extends dx{constructor(e){super({...e,type:`event`}),this.otelSpan.end(e.timestamp)}}}));function TLe(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function ELe(){let e=new Set;for(let t of[process.env.HOME,process.env.USERPROFILE,Su()])t&&(e.add(t),e.add(t.replace(/\\/g,`/`)));return[...Array.from(e,TLe),`/Users/[^/\\\\]+`,`[A-Za-z]:[/\\\\]Users[/\\\\][^/\\\\]+`]}function DLe(e){return typeof e==`string`?e.replace(px,`~`):typeof e==`object`&&e?OLe(e):e}function OLe(e){let t={};for(let[n,r]of Object.entries(e))mx.test(n)?t[n]=`[REDACTED]`:typeof r==`string`?t[n]=r.replace(px,`~`):typeof r==`object`&&r?t[n]=OLe(r):t[n]=r;return t}function kLe(e,t){if(typeof t!=`object`||!t)return t;let n={...t};for(let e of Object.keys(n))mx.test(e)&&(n[e]=`[REDACTED]`);for(let e of[`file_path`,`path`,`directory`])e in n&&typeof n[e]==`string`&&(n[e]=n[e].replace(px,`~`));return n}function ALe(e,t){return jLe.has(e)?`[file content redacted, ${t.length} chars]`:MLe.has(e)&&t.length>fx?t.slice(0,fx)+`
|
|
367
|
-
[truncated]`:NLe.has(e)?`[${e} output redacted, ${t.length} chars]`:t}var fx,jLe,MLe,NLe,px,mx,hx=n((()=>{fx=500,jLe=new Set([`FileReadTool`,`FileWriteTool`,`FileEditTool`]),MLe=new Set([`BashTool`,`PowerShellTool`]),NLe=new Set([`ConfigTool`,`MCPTool`,`VaultHttpFetch`,`LocalVaultFetch`]),px=RegExp(`(?:${ELe().join(`|`)})`,`g`),mx=/(?:api_?key|token|secret|password|credential|auth_header)/i}));function gx(){return!!(process.env.LANGFUSE_PUBLIC_KEY&&process.env.LANGFUSE_SECRET_KEY)}function PLe(){if(_x!==null)return!0;if(!gx())return U(`[langfuse] No keys configured, running in no-op mode`),!1;try{return _x=new nLe({publicKey:process.env.LANGFUSE_PUBLIC_KEY,secretKey:process.env.LANGFUSE_SECRET_KEY,baseUrl:process.env.LANGFUSE_BASE_URL??`https://cloud.langfuse.com`,flushAt:parseInt(process.env.LANGFUSE_FLUSH_AT??`20`,10),flushInterval:parseInt(process.env.LANGFUSE_FLUSH_INTERVAL??`10`,10),mask:({data:e})=>DLe(e),environment:process.env.LANGFUSE_TRACING_ENVIRONMENT??`development`,release:`2.6.10`,exportMode:process.env.LANGFUSE_EXPORT_MODE??`batched`,timeout:parseInt(process.env.LANGFUSE_TIMEOUT??`5`,10)}),vx=new hde({spanProcessors:[_x]}),lLe(vx),U(`[langfuse] Initialized with LangfuseSpanProcessor`),!0}catch(e){return U(`[langfuse] Init failed: ${e}`,{level:`error`}),_x=null,vx=null,!1}}async function FLe(){try{_x&&await _x.forceFlush()}catch(e){U(`[langfuse] Flush error: ${e}`,{level:`error`})}}async function ILe(){try{_x&&(await _x.forceFlush(),await _x.shutdown()),_x=null,vx=null,U(`[langfuse] Shutdown complete`)}catch(e){U(`[langfuse] Shutdown error: ${e}`,{level:`error`})}}var _x,vx,LLe=n((()=>{_de(),rLe(),wLe(),hx(),W(),_x=null,vx=null}));function yx(e){return e??process.env.LANGFUSE_USER_ID??wae().email??wae().deviceId}function bx(e){if(!gx())return null;try{let t=lx(e.name??(e.querySource?`agent-run:${e.querySource}`:`agent-run`),{input:e.input,metadata:{provider:e.provider,model:e.model,agentType:`main`,...e.querySource&&{querySource:e.querySource}}},{asType:`agent`});t.otelSpan.setAttribute(Vb.TRACE_SESSION_ID,e.sessionId),t._sessionId=e.sessionId;let n=yx(e.username);return n&&(t.otelSpan.setAttribute(Vb.TRACE_USER_ID,n),t._userId=n),U(`[langfuse] Trace created: ${t.id}`),t}catch(e){return U(`[langfuse] createTrace failed: ${e}`,{level:`error`}),null}}function xx(e,t){if(!(!e||!gx()))try{let n=lx(HLe[t.provider]??`Chat${t.provider}`,{model:t.model,input:t.tools?{messages:t.input,tools:t.tools}:t.input,metadata:{provider:t.provider,model:t.model,...t.thinking&&{thinking:t.thinking}},...t.completionStartTime&&{completionStartTime:t.completionStartTime}},{asType:`generation`,...t.startTime&&{startTime:t.startTime},parentSpanContext:e.otelSpan.spanContext()}),r=e._sessionId;r&&n.otelSpan.setAttribute(Vb.TRACE_SESSION_ID,r);let i=e._userId;i&&n.otelSpan.setAttribute(Vb.TRACE_USER_ID,i);let a=t.usage.cache_read_input_tokens??0,o=t.usage.cache_creation_input_tokens??0;n.update({output:t.output,usageDetails:{input:t.usage.input_tokens+o+a,output:t.usage.output_tokens,...a>0&&{cache_read:a},...o>0&&{cache_creation:o}}}),n.end(t.endTime),U(`[langfuse] LLM observation recorded: ${n.id}`)}catch(e){U(`[langfuse] recordLLMObservation failed: ${e}`,{level:`error`})}}function RLe(e,t){if(!(!e||!gx()))try{let n=t.parentBatchSpan??e,r=lx(t.toolName,{input:kLe(t.toolName,t.input),metadata:{toolUseId:t.toolUseId,isError:String(t.isError??!1)}},{asType:`tool`,...t.startTime&&{startTime:t.startTime},parentSpanContext:n.otelSpan.spanContext()}),i=e._sessionId;i&&r.otelSpan.setAttribute(Vb.TRACE_SESSION_ID,i);let a=e._userId;a&&r.otelSpan.setAttribute(Vb.TRACE_USER_ID,a),r.update({output:ALe(t.toolName,t.output),...t.isError&&{level:`ERROR`}}),r.end(),U(`[langfuse] Tool observation recorded: ${t.toolName} (${r.id})`)}catch(e){U(`[langfuse] recordToolObservation failed: ${e}`,{level:`error`})}}function zLe(e,t){if(!e||!gx())return null;try{let n=lx(`tools`,{metadata:{toolNames:t.toolNames.join(`, `),toolCount:String(t.toolNames.length),batchIndex:String(t.batchIndex)}},{asType:`span`,parentSpanContext:e.otelSpan.spanContext()}),r=e._sessionId;r&&n.otelSpan.setAttribute(Vb.TRACE_SESSION_ID,r);let i=e._userId;return i&&n.otelSpan.setAttribute(Vb.TRACE_USER_ID,i),U(`[langfuse] Tool batch span created: ${n.id} (tools=${t.toolNames.join(`,`)})`),n}catch(e){return U(`[langfuse] createToolBatchSpan failed: ${e}`,{level:`error`}),null}}function Sx(e){if(e)try{e.end(),U(`[langfuse] Tool batch span ended: ${e.id}`)}catch(e){U(`[langfuse] endToolBatchSpan failed: ${e}`,{level:`error`})}}function BLe(e){if(!gx())return null;try{let t=lx(`agent:${e.agentType}`,{input:e.input,metadata:{provider:e.provider,model:e.model,agentType:e.agentType,agentId:e.agentId}},{asType:`agent`});t.otelSpan.setAttribute(Vb.TRACE_SESSION_ID,e.sessionId),t._sessionId=e.sessionId;let n=yx(e.username);return n&&(t.otelSpan.setAttribute(Vb.TRACE_USER_ID,n),t._userId=n),U(`[langfuse] Sub-agent trace created: ${t.id} (type=${e.agentType})`),t}catch(e){return U(`[langfuse] createSubagentTrace failed: ${e}`,{level:`error`}),null}}function VLe(e,t){if(!e||!gx())return null;try{let n=lx(t.name,{input:t.input,metadata:{provider:t.provider,model:t.model,querySource:t.querySource}},{asType:`span`,parentSpanContext:e.otelSpan.spanContext()}),r=e,i=r._sessionId??t.sessionId;i&&(n.otelSpan.setAttribute(Vb.TRACE_SESSION_ID,i),n._sessionId=i);let a=r._userId??yx(t.username);return a&&(n.otelSpan.setAttribute(Vb.TRACE_USER_ID,a),n._userId=a),U(`[langfuse] Child span created: ${n.id} (parent=${e.id})`),n}catch(e){return U(`[langfuse] createChildSpan failed: ${e}`,{level:`error`}),null}}function Cx(e,t,n){if(e)try{let r={};t!==void 0&&(r.output=t),n===`interrupted`?r.level=`WARNING`:n===`error`&&(r.level=`ERROR`),Object.keys(r).length>0&&e.update(r),e.end(),U(`[langfuse] Trace ended: ${e.id}${n?` (${n})`:``}`)}catch(e){U(`[langfuse] endTrace failed: ${e}`,{level:`error`})}}var HLe,ULe=n((()=>{wLe(),LLe(),hx(),W(),Aoe(),HLe={firstParty:`ChatAnthropic`,bedrock:`ChatBedrockAnthropic`,vertex:`ChatVertexAnthropic`,foundry:`ChatFoundry`,openai:`ChatOpenAI`,gemini:`ChatGoogleGenerativeAI`,grok:`ChatXAI`}})),wx=n((()=>{LLe(),ULe(),hx()}));function WLe(){return parseInt(process.env.CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY||``,10)||10}async function*GLe(e,t,n,r){let i=e.length>0?zLe(r.langfuseTrace??null,{toolNames:e.map(e=>e.name),batchIndex:0}):null,a=i?{...r,langfuseBatchSpan:i}:r;for(let{isConcurrencySafe:r,blocks:i}of KLe(e,a))if(r){let e={};for await(let r of JLe(i,t,n,a)){if(r.contextModifier){let{toolUseID:t,modifyContext:n}=r.contextModifier;e[t]||(e[t]=[]),e[t].push(n)}yield{message:r.message,newContext:a}}for(let t of i){let n=e[t.id];if(n)for(let e of n)a=e(a)}yield{newContext:a}}else for await(let e of qLe(i,t,n,a))e.newContext&&(a=e.newContext),yield{message:e.message,newContext:a};Sx(i)}function KLe(e,t){return e.reduce((e,n)=>{let r=rl(t.options.tools,n.name),i=r?.inputSchema.safeParse(n.input),a=i?.success?(()=>{try{return!!r?.isConcurrencySafe(i.data)}catch{return!1}})():!1;return a&&e[e.length-1]?.isConcurrencySafe?e[e.length-1].blocks.push(n):e.push({isConcurrencySafe:a,blocks:[n]}),e},[])}async function*qLe(e,t,n,r){let i=r;for(let a of e){r.setInProgressToolUseIDs(e=>new Set(e).add(a.id));for await(let e of wQ(a,t.find(e=>Array.isArray(e.message.content)&&e.message.content.some(e=>e.type===`tool_use`&&e.id===a.id)),n,i))e.contextModifier&&(i=e.contextModifier.modifyContext(i)),yield{message:e.message,newContext:i};YLe(r,a.id)}}async function*JLe(e,t,n,r){yield*HPe(e.map(async function*(e){r.setInProgressToolUseIDs(t=>new Set(t).add(e.id)),yield*wQ(e,t.find(t=>Array.isArray(t.message.content)&&t.message.content.some(t=>t.type===`tool_use`&&t.id===e.id)),n,r),YLe(r,e.id)}),WLe())}function YLe(e,t){e.setInProgressToolUseIDs(e=>{let n=new Set(e);return n.delete(t),n})}var XLe=n((()=>{Sc(),Eb(),CRt(),wx()}));function ZLe(e){return typeof e==`string`?e:e==null?``:typeof e==`object`?JSON.stringify(e):String(e)}function QLe(e,t=null){if(!e)return!1;if(e.type===`assistant`){let t=e.message.content,n=Array.isArray(t)?t[t.length-1]:void 0;return n?.type===`text`||n?.type===`thinking`||n?.type===`redacted_thinking`}if(e.type===`user`){let t=e.message.content;if(Array.isArray(t)&&t.length>0&&t.every(e=>`type`in e&&e.type===`tool_result`))return!0}return t===`end_turn`}function*$Le(e){switch(e.type){case`assistant`:for(let t of g4([e]))m4(t)&&(yield{type:`assistant`,message:t.message,parent_tool_use_id:null,session_id:Ft(),uuid:t.uuid,error:t.error});return;case`progress`:{let t=e.data;if(t.type===`agent_progress`||t.type===`skill_progress`)for(let n of g4([t.message]))switch(n.type){case`assistant`:if(!m4(n))break;yield{type:`assistant`,message:n.message,parent_tool_use_id:e.parentToolUseID,session_id:Ft(),uuid:n.uuid,error:n.error};break;case`user`:yield{type:`user`,message:n.message,parent_tool_use_id:e.parentToolUseID,session_id:Ft(),uuid:n.uuid,timestamp:n.timestamp,isSynthetic:n.isMeta||n.isVisibleInTranscriptOnly,tool_use_result:n.mcpMeta?{content:n.toolUseResult,...n.mcpMeta}:n.toolUseResult};break}else if(t.type===`bash_progress`||t.type===`powershell_progress`){if(!x(process.env.CLAUDE_CODE_REMOTE)&&!process.env.CLAUDE_CODE_CONTAINER_ID)break;let n=e.parentToolUseID,r=Date.now();if(r-(Tx.get(n)||0)>=oRe){if(Tx.size>=aRe){let e=Tx.keys().next().value;e!==void 0&&Tx.delete(e)}Tx.set(n,r),yield{type:`tool_progress`,tool_use_id:e.toolUseID,tool_name:t.type===`bash_progress`?`Bash`:`PowerShell`,parent_tool_use_id:e.parentToolUseID,elapsed_time_seconds:t.elapsedTimeSeconds,task_id:t.taskId,session_id:Ft(),uuid:e.uuid}}}break}case`user`:for(let t of g4([e]))yield{type:`user`,message:t.message,parent_tool_use_id:null,session_id:Ft(),uuid:t.uuid,timestamp:t.timestamp,isSynthetic:t.isMeta||t.isVisibleInTranscriptOnly,tool_use_result:t.mcpMeta?{content:t.toolUseResult,...t.mcpMeta}:t.toolUseResult};return;default:}}async function*eRe(e,t,n,r){let i=!ln(),{permissionResult:a,assistantMessage:o}=e,s=a.toolUseID;if(!s)return;let c=o.message.content,l;if(Array.isArray(c)){for(let e of c)if(e.type===`tool_use`&&e.id===s){l=e;break}}if(!l)return;let u=l.name,d=l.input;if(!rl(t,u))return;let f=d;if(a.behavior===`allow`){let e=a;e.updatedInput===void 0?U(`Orphaned permission for ${u}: updatedInput is undefined, falling back to original tool input`,{level:`warn`}):f=e.updatedInput}let p={...l,input:f},m=(async()=>a.behavior===`allow`?{behavior:`allow`,updatedInput:a.updatedInput,decisionReason:{type:`mode`,mode:`default`}}:{behavior:`deny`,message:a.message,decisionReason:{type:`mode`,mode:`default`}});n.some(e=>e.type===`assistant`&&Array.isArray(e.message.content)&&e.message.content.some(e=>e.type===`tool_use`&&`id`in e&&e.id===s))||(n.push(o),i&&await E8(n)),yield{...o,session_id:Ft(),parent_tool_use_id:null};for await(let e of GLe([p],[o],m,r))e.message&&(n.push(e.message),i&&await E8(n),yield{...e.message,session_id:Ft(),parent_tool_use_id:null})}function tRe(e,t,n=iRe){let r=yue(n),i=new Map,a=new Map,o=new Map;for(let n of e)if(n.type===`assistant`&&Array.isArray(n.message.content)){for(let e of n.message.content)if(e.type===`tool_use`&&e.name===`Read`){let n=e.input;if(n?.file_path&&n?.offset===void 0&&n?.limit===void 0){let r=Yo(n.file_path,t);i.set(e.id,r)}}else if(e.type===`tool_use`&&e.name===`Write`){let n=e.input;if(n?.file_path&&n.content!==void 0&&n.content!==null){let r=Yo(n.file_path,t);a.set(e.id,{filePath:r,content:ZLe(n.content)})}}else if(e.type===`tool_use`&&e.name===`Edit`){let n=e.input;if(n?.file_path){let r=Yo(n.file_path,t);o.set(e.id,r)}}}for(let t of e)if(t.type===`user`&&Array.isArray(t.message.content)){for(let e of t.message.content)if(e.type===`tool_result`&&e.tool_use_id){let n=i.get(e.tool_use_id);if(n&&typeof e.content==`string`&&!e.content.startsWith(`File unchanged since last read. The content from the earlier Read tool_result in this conversation is still current — refer to that instead of re-reading.`)){let i=e.content.replace(/<system-reminder>[\s\S]*?<\/system-reminder>/g,``).split(`
|
|
367
|
+
[truncated]`:NLe.has(e)?`[${e} output redacted, ${t.length} chars]`:t}var fx,jLe,MLe,NLe,px,mx,hx=n((()=>{fx=500,jLe=new Set([`FileReadTool`,`FileWriteTool`,`FileEditTool`]),MLe=new Set([`BashTool`,`PowerShellTool`]),NLe=new Set([`ConfigTool`,`MCPTool`,`VaultHttpFetch`,`LocalVaultFetch`]),px=RegExp(`(?:${ELe().join(`|`)})`,`g`),mx=/(?:api_?key|token|secret|password|credential|auth_header)/i}));function gx(){return!!(process.env.LANGFUSE_PUBLIC_KEY&&process.env.LANGFUSE_SECRET_KEY)}function PLe(){if(_x!==null)return!0;if(!gx())return U(`[langfuse] No keys configured, running in no-op mode`),!1;try{return _x=new nLe({publicKey:process.env.LANGFUSE_PUBLIC_KEY,secretKey:process.env.LANGFUSE_SECRET_KEY,baseUrl:process.env.LANGFUSE_BASE_URL??`https://cloud.langfuse.com`,flushAt:parseInt(process.env.LANGFUSE_FLUSH_AT??`20`,10),flushInterval:parseInt(process.env.LANGFUSE_FLUSH_INTERVAL??`10`,10),mask:({data:e})=>DLe(e),environment:process.env.LANGFUSE_TRACING_ENVIRONMENT??`development`,release:`2.6.11`,exportMode:process.env.LANGFUSE_EXPORT_MODE??`batched`,timeout:parseInt(process.env.LANGFUSE_TIMEOUT??`5`,10)}),vx=new hde({spanProcessors:[_x]}),lLe(vx),U(`[langfuse] Initialized with LangfuseSpanProcessor`),!0}catch(e){return U(`[langfuse] Init failed: ${e}`,{level:`error`}),_x=null,vx=null,!1}}async function FLe(){try{_x&&await _x.forceFlush()}catch(e){U(`[langfuse] Flush error: ${e}`,{level:`error`})}}async function ILe(){try{_x&&(await _x.forceFlush(),await _x.shutdown()),_x=null,vx=null,U(`[langfuse] Shutdown complete`)}catch(e){U(`[langfuse] Shutdown error: ${e}`,{level:`error`})}}var _x,vx,LLe=n((()=>{_de(),rLe(),wLe(),hx(),W(),_x=null,vx=null}));function yx(e){return e??process.env.LANGFUSE_USER_ID??wae().email??wae().deviceId}function bx(e){if(!gx())return null;try{let t=lx(e.name??(e.querySource?`agent-run:${e.querySource}`:`agent-run`),{input:e.input,metadata:{provider:e.provider,model:e.model,agentType:`main`,...e.querySource&&{querySource:e.querySource}}},{asType:`agent`});t.otelSpan.setAttribute(Vb.TRACE_SESSION_ID,e.sessionId),t._sessionId=e.sessionId;let n=yx(e.username);return n&&(t.otelSpan.setAttribute(Vb.TRACE_USER_ID,n),t._userId=n),U(`[langfuse] Trace created: ${t.id}`),t}catch(e){return U(`[langfuse] createTrace failed: ${e}`,{level:`error`}),null}}function xx(e,t){if(!(!e||!gx()))try{let n=lx(HLe[t.provider]??`Chat${t.provider}`,{model:t.model,input:t.tools?{messages:t.input,tools:t.tools}:t.input,metadata:{provider:t.provider,model:t.model,...t.thinking&&{thinking:t.thinking}},...t.completionStartTime&&{completionStartTime:t.completionStartTime}},{asType:`generation`,...t.startTime&&{startTime:t.startTime},parentSpanContext:e.otelSpan.spanContext()}),r=e._sessionId;r&&n.otelSpan.setAttribute(Vb.TRACE_SESSION_ID,r);let i=e._userId;i&&n.otelSpan.setAttribute(Vb.TRACE_USER_ID,i);let a=t.usage.cache_read_input_tokens??0,o=t.usage.cache_creation_input_tokens??0;n.update({output:t.output,usageDetails:{input:t.usage.input_tokens+o+a,output:t.usage.output_tokens,...a>0&&{cache_read:a},...o>0&&{cache_creation:o}}}),n.end(t.endTime),U(`[langfuse] LLM observation recorded: ${n.id}`)}catch(e){U(`[langfuse] recordLLMObservation failed: ${e}`,{level:`error`})}}function RLe(e,t){if(!(!e||!gx()))try{let n=t.parentBatchSpan??e,r=lx(t.toolName,{input:kLe(t.toolName,t.input),metadata:{toolUseId:t.toolUseId,isError:String(t.isError??!1)}},{asType:`tool`,...t.startTime&&{startTime:t.startTime},parentSpanContext:n.otelSpan.spanContext()}),i=e._sessionId;i&&r.otelSpan.setAttribute(Vb.TRACE_SESSION_ID,i);let a=e._userId;a&&r.otelSpan.setAttribute(Vb.TRACE_USER_ID,a),r.update({output:ALe(t.toolName,t.output),...t.isError&&{level:`ERROR`}}),r.end(),U(`[langfuse] Tool observation recorded: ${t.toolName} (${r.id})`)}catch(e){U(`[langfuse] recordToolObservation failed: ${e}`,{level:`error`})}}function zLe(e,t){if(!e||!gx())return null;try{let n=lx(`tools`,{metadata:{toolNames:t.toolNames.join(`, `),toolCount:String(t.toolNames.length),batchIndex:String(t.batchIndex)}},{asType:`span`,parentSpanContext:e.otelSpan.spanContext()}),r=e._sessionId;r&&n.otelSpan.setAttribute(Vb.TRACE_SESSION_ID,r);let i=e._userId;return i&&n.otelSpan.setAttribute(Vb.TRACE_USER_ID,i),U(`[langfuse] Tool batch span created: ${n.id} (tools=${t.toolNames.join(`,`)})`),n}catch(e){return U(`[langfuse] createToolBatchSpan failed: ${e}`,{level:`error`}),null}}function Sx(e){if(e)try{e.end(),U(`[langfuse] Tool batch span ended: ${e.id}`)}catch(e){U(`[langfuse] endToolBatchSpan failed: ${e}`,{level:`error`})}}function BLe(e){if(!gx())return null;try{let t=lx(`agent:${e.agentType}`,{input:e.input,metadata:{provider:e.provider,model:e.model,agentType:e.agentType,agentId:e.agentId}},{asType:`agent`});t.otelSpan.setAttribute(Vb.TRACE_SESSION_ID,e.sessionId),t._sessionId=e.sessionId;let n=yx(e.username);return n&&(t.otelSpan.setAttribute(Vb.TRACE_USER_ID,n),t._userId=n),U(`[langfuse] Sub-agent trace created: ${t.id} (type=${e.agentType})`),t}catch(e){return U(`[langfuse] createSubagentTrace failed: ${e}`,{level:`error`}),null}}function VLe(e,t){if(!e||!gx())return null;try{let n=lx(t.name,{input:t.input,metadata:{provider:t.provider,model:t.model,querySource:t.querySource}},{asType:`span`,parentSpanContext:e.otelSpan.spanContext()}),r=e,i=r._sessionId??t.sessionId;i&&(n.otelSpan.setAttribute(Vb.TRACE_SESSION_ID,i),n._sessionId=i);let a=r._userId??yx(t.username);return a&&(n.otelSpan.setAttribute(Vb.TRACE_USER_ID,a),n._userId=a),U(`[langfuse] Child span created: ${n.id} (parent=${e.id})`),n}catch(e){return U(`[langfuse] createChildSpan failed: ${e}`,{level:`error`}),null}}function Cx(e,t,n){if(e)try{let r={};t!==void 0&&(r.output=t),n===`interrupted`?r.level=`WARNING`:n===`error`&&(r.level=`ERROR`),Object.keys(r).length>0&&e.update(r),e.end(),U(`[langfuse] Trace ended: ${e.id}${n?` (${n})`:``}`)}catch(e){U(`[langfuse] endTrace failed: ${e}`,{level:`error`})}}var HLe,ULe=n((()=>{wLe(),LLe(),hx(),W(),Aoe(),HLe={firstParty:`ChatAnthropic`,bedrock:`ChatBedrockAnthropic`,vertex:`ChatVertexAnthropic`,foundry:`ChatFoundry`,openai:`ChatOpenAI`,gemini:`ChatGoogleGenerativeAI`,grok:`ChatXAI`}})),wx=n((()=>{LLe(),ULe(),hx()}));function WLe(){return parseInt(process.env.CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY||``,10)||10}async function*GLe(e,t,n,r){let i=e.length>0?zLe(r.langfuseTrace??null,{toolNames:e.map(e=>e.name),batchIndex:0}):null,a=i?{...r,langfuseBatchSpan:i}:r;for(let{isConcurrencySafe:r,blocks:i}of KLe(e,a))if(r){let e={};for await(let r of JLe(i,t,n,a)){if(r.contextModifier){let{toolUseID:t,modifyContext:n}=r.contextModifier;e[t]||(e[t]=[]),e[t].push(n)}yield{message:r.message,newContext:a}}for(let t of i){let n=e[t.id];if(n)for(let e of n)a=e(a)}yield{newContext:a}}else for await(let e of qLe(i,t,n,a))e.newContext&&(a=e.newContext),yield{message:e.message,newContext:a};Sx(i)}function KLe(e,t){return e.reduce((e,n)=>{let r=rl(t.options.tools,n.name),i=r?.inputSchema.safeParse(n.input),a=i?.success?(()=>{try{return!!r?.isConcurrencySafe(i.data)}catch{return!1}})():!1;return a&&e[e.length-1]?.isConcurrencySafe?e[e.length-1].blocks.push(n):e.push({isConcurrencySafe:a,blocks:[n]}),e},[])}async function*qLe(e,t,n,r){let i=r;for(let a of e){r.setInProgressToolUseIDs(e=>new Set(e).add(a.id));for await(let e of wQ(a,t.find(e=>Array.isArray(e.message.content)&&e.message.content.some(e=>e.type===`tool_use`&&e.id===a.id)),n,i))e.contextModifier&&(i=e.contextModifier.modifyContext(i)),yield{message:e.message,newContext:i};YLe(r,a.id)}}async function*JLe(e,t,n,r){yield*HPe(e.map(async function*(e){r.setInProgressToolUseIDs(t=>new Set(t).add(e.id)),yield*wQ(e,t.find(t=>Array.isArray(t.message.content)&&t.message.content.some(t=>t.type===`tool_use`&&t.id===e.id)),n,r),YLe(r,e.id)}),WLe())}function YLe(e,t){e.setInProgressToolUseIDs(e=>{let n=new Set(e);return n.delete(t),n})}var XLe=n((()=>{Sc(),Eb(),CRt(),wx()}));function ZLe(e){return typeof e==`string`?e:e==null?``:typeof e==`object`?JSON.stringify(e):String(e)}function QLe(e,t=null){if(!e)return!1;if(e.type===`assistant`){let t=e.message.content,n=Array.isArray(t)?t[t.length-1]:void 0;return n?.type===`text`||n?.type===`thinking`||n?.type===`redacted_thinking`}if(e.type===`user`){let t=e.message.content;if(Array.isArray(t)&&t.length>0&&t.every(e=>`type`in e&&e.type===`tool_result`))return!0}return t===`end_turn`}function*$Le(e){switch(e.type){case`assistant`:for(let t of g4([e]))m4(t)&&(yield{type:`assistant`,message:t.message,parent_tool_use_id:null,session_id:Ft(),uuid:t.uuid,error:t.error});return;case`progress`:{let t=e.data;if(t.type===`agent_progress`||t.type===`skill_progress`)for(let n of g4([t.message]))switch(n.type){case`assistant`:if(!m4(n))break;yield{type:`assistant`,message:n.message,parent_tool_use_id:e.parentToolUseID,session_id:Ft(),uuid:n.uuid,error:n.error};break;case`user`:yield{type:`user`,message:n.message,parent_tool_use_id:e.parentToolUseID,session_id:Ft(),uuid:n.uuid,timestamp:n.timestamp,isSynthetic:n.isMeta||n.isVisibleInTranscriptOnly,tool_use_result:n.mcpMeta?{content:n.toolUseResult,...n.mcpMeta}:n.toolUseResult};break}else if(t.type===`bash_progress`||t.type===`powershell_progress`){if(!x(process.env.CLAUDE_CODE_REMOTE)&&!process.env.CLAUDE_CODE_CONTAINER_ID)break;let n=e.parentToolUseID,r=Date.now();if(r-(Tx.get(n)||0)>=oRe){if(Tx.size>=aRe){let e=Tx.keys().next().value;e!==void 0&&Tx.delete(e)}Tx.set(n,r),yield{type:`tool_progress`,tool_use_id:e.toolUseID,tool_name:t.type===`bash_progress`?`Bash`:`PowerShell`,parent_tool_use_id:e.parentToolUseID,elapsed_time_seconds:t.elapsedTimeSeconds,task_id:t.taskId,session_id:Ft(),uuid:e.uuid}}}break}case`user`:for(let t of g4([e]))yield{type:`user`,message:t.message,parent_tool_use_id:null,session_id:Ft(),uuid:t.uuid,timestamp:t.timestamp,isSynthetic:t.isMeta||t.isVisibleInTranscriptOnly,tool_use_result:t.mcpMeta?{content:t.toolUseResult,...t.mcpMeta}:t.toolUseResult};return;default:}}async function*eRe(e,t,n,r){let i=!ln(),{permissionResult:a,assistantMessage:o}=e,s=a.toolUseID;if(!s)return;let c=o.message.content,l;if(Array.isArray(c)){for(let e of c)if(e.type===`tool_use`&&e.id===s){l=e;break}}if(!l)return;let u=l.name,d=l.input;if(!rl(t,u))return;let f=d;if(a.behavior===`allow`){let e=a;e.updatedInput===void 0?U(`Orphaned permission for ${u}: updatedInput is undefined, falling back to original tool input`,{level:`warn`}):f=e.updatedInput}let p={...l,input:f},m=(async()=>a.behavior===`allow`?{behavior:`allow`,updatedInput:a.updatedInput,decisionReason:{type:`mode`,mode:`default`}}:{behavior:`deny`,message:a.message,decisionReason:{type:`mode`,mode:`default`}});n.some(e=>e.type===`assistant`&&Array.isArray(e.message.content)&&e.message.content.some(e=>e.type===`tool_use`&&`id`in e&&e.id===s))||(n.push(o),i&&await E8(n)),yield{...o,session_id:Ft(),parent_tool_use_id:null};for await(let e of GLe([p],[o],m,r))e.message&&(n.push(e.message),i&&await E8(n),yield{...e.message,session_id:Ft(),parent_tool_use_id:null})}function tRe(e,t,n=iRe){let r=yue(n),i=new Map,a=new Map,o=new Map;for(let n of e)if(n.type===`assistant`&&Array.isArray(n.message.content)){for(let e of n.message.content)if(e.type===`tool_use`&&e.name===`Read`){let n=e.input;if(n?.file_path&&n?.offset===void 0&&n?.limit===void 0){let r=Yo(n.file_path,t);i.set(e.id,r)}}else if(e.type===`tool_use`&&e.name===`Write`){let n=e.input;if(n?.file_path&&n.content!==void 0&&n.content!==null){let r=Yo(n.file_path,t);a.set(e.id,{filePath:r,content:ZLe(n.content)})}}else if(e.type===`tool_use`&&e.name===`Edit`){let n=e.input;if(n?.file_path){let r=Yo(n.file_path,t);o.set(e.id,r)}}}for(let t of e)if(t.type===`user`&&Array.isArray(t.message.content)){for(let e of t.message.content)if(e.type===`tool_result`&&e.tool_use_id){let n=i.get(e.tool_use_id);if(n&&typeof e.content==`string`&&!e.content.startsWith(`File unchanged since last read. The content from the earlier Read tool_result in this conversation is still current — refer to that instead of re-reading.`)){let i=e.content.replace(/<system-reminder>[\s\S]*?<\/system-reminder>/g,``).split(`
|
|
368
368
|
`).map(zae).join(`
|
|
369
369
|
`).trim();if(t.timestamp){let e=new Date(t.timestamp).getTime();r.set(n,{content:i,timestamp:e,offset:void 0,limit:void 0})}}let s=a.get(e.tool_use_id);if(s&&t.timestamp){let e=new Date(t.timestamp).getTime();r.set(s.filePath,{content:s.content,timestamp:e,offset:void 0,limit:void 0})}let c=o.get(e.tool_use_id);if(c&&e.is_error!==!0)try{let{content:e}=xi(c);r.set(c,{content:e,timestamp:vr(c),offset:void 0,limit:void 0})}catch(e){if(!Aa(e))throw e}}}return r}function nRe(e){let t=new Set;for(let n of e)if(n.type===`assistant`&&Array.isArray(n.message.content)){for(let e of n.message.content)if(e.type===`tool_use`&&e.name===`Bash`){let{input:n}=e;if(typeof n!=`object`||!n||!(`command`in n))continue;let r=rRe(typeof n.command==`string`?n.command:void 0);r&&t.add(r)}}return t}function rRe(e){if(!e)return;let t=e.trim().split(/\s+/);for(let e of t)if(!/^[A-Za-z_]\w*=/.test(e)&&!sRe.has(e))return e}var iRe,aRe,oRe,Tx,sRe,cRe=n((()=>{tn(),XLe(),Sc(),ic(),Ic(),tl(),Wc(),W(),y(),ka(),pi(),qi(),pl(),i3(),Jo(),h5(),iRe=10,aRe=100,oRe=3e4,Tx=new Map,sRe=new Set([`sudo`])}));function Ex(e){Hpe(e,{recursive:!0,force:!0,maxRetries:3,retryDelay:100},()=>{})}function Dx(e){return Y(M5(),`speculation`,String(process.pid),e)}function Ox(e,t){return{behavior:`deny`,message:e,decisionReason:{type:`other`,reason:t}}}async function lRe(e,t,n){let r=!0;for(let i of t){let t=Y(e,i),a=Y(n,i);try{await pd(Eu(a),{recursive:!0}),await dd(t,a)}catch{r=!1,U(`[Speculation] Failed to copy ${i} to main`)}}return r}function kx(e,t,n,r,i,a,o){G(`tengu_speculation`,{speculation_id:e,outcome:t,duration_ms:Date.now()-n,suggestion_length:r,tools_executed:Ax(i),completed:a!==null,boundary_type:a?.type,boundary_tool:uRe(a),boundary_detail:dRe(a),...o})}function Ax(e){return fs(e.filter(jx).flatMap(e=>e.message.content).filter(e=>typeof e==`object`&&!!e&&`type`in e),e=>e.type===`tool_result`&&!e.is_error)}function uRe(e){if(e)switch(e.type){case`bash`:return`Bash`;case`edit`:case`denied_tool`:return e.toolName;case`complete`:return}}function dRe(e){if(e)switch(e.type){case`bash`:return e.command.slice(0,200);case`edit`:return e.filePath;case`denied_tool`:return e.detail;case`complete`:return}}function jx(e){return e.type===`user`&&`message`in e&&Array.isArray(e.message?.content)}function fRe(e){let t=new Set(e.filter(jx).flatMap(e=>e.message.content).filter(e=>typeof e==`object`&&!!e&&e.type===`tool_result`&&typeof e.tool_use_id==`string`).filter(e=>!e.is_error&&!(typeof e.content==`string`&&e.content.includes(`[Request interrupted by user for tool use]`))).map(e=>e.tool_use_id)),n=e=>e.type!==`thinking`&&e.type!==`redacted_thinking`&&!(e.type===`tool_use`&&!t.has(e.id))&&!(e.type===`tool_result`&&!t.has(e.tool_use_id))&&!(e.type===`text`&&(e.text===`[Request interrupted by user]`||e.text===`[Request interrupted by user for tool use]`));return e.map(e=>{if(!(`message`in e)||!Array.isArray(e.message?.content))return e;let t=e.message.content.filter(n);return t.length===e.message.content.length?e:t.length===0||!t.some(e=>e.type!==`text`||e.text!==void 0&&e.text.trim()!==``)?null:{...e,message:{...e.message,content:t}}}).filter(e=>e!==null)}function pRe(e,t,n,r){if(process.env.USER_TYPE!==`ant`||e.length===0||n===0)return null;let i=Ax(e),a=t?.type===`complete`?t.outputTokens:null,o=[];if(i>0)o.push(`Speculated ${i} tool ${i===1?`use`:`uses`}`);else{let t=e.length;o.push(`Speculated ${t} ${t===1?`turn`:`turns`}`)}a!==null&&o.push(`${As(a)} tokens`);let s=`+${Ds(n)} saved`,c=r===n?``:` (${Ds(r)} this session)`;return I4(`[ANT-ONLY] ${o.join(` · `)} · ${s}${c}`,`warning`)}function Mx(e,t){e(e=>{if(e.speculation.status!==`active`)return e;let n=e.speculation,r=t(n);return Object.entries(r).some(([e,t])=>n[e]!==t)?{...e,speculation:{...n,...r}}:e})}function Nx(e){e(e=>e.speculation.status===`idle`?e:{...e,speculation:nb})}function mRe(){let e=process.env.USER_TYPE===`ant`&&(Tr().speculationEnabled??!0);return U(`[Speculation] enabled=${e}`),e}async function hRe(e,t,n,r,i){try{let a=IMe(e.toolUseContext.getAppState());if(a){Qy(`pipeline_${a}`);return}let o={...e,messages:[...e.messages,d4({content:t}),...n]},s=ay(i);if(s.signal.aborted)return;let c=Zy(),{suggestion:l,generationRequestId:u}=await BMe(s,c,S$(o));if(s.signal.aborted||VMe(l,c))return;U(`[Speculation] Pipelined suggestion: "${l.slice(0,50)}..."`),Mx(r,()=>({pipelinedSuggestion:{text:l,promptId:c,generationRequestId:u}}))}catch(e){if(e instanceof Error&&e.name===`AbortError`)return;U(`[Speculation] Pipelined suggestion failed: ${H(e)}`)}}async function gRe(e,t,n,r=!1,i){if(!mRe())return;Px(n);let a=od().slice(0,8),o=ay(t.toolUseContext.abortController);if(o.signal.aborted)return;let s=Date.now(),c={current:[]},l={current:new Set},u=Dx(a),d=cn();try{await pd(u,{recursive:!0})}catch{U(`[Speculation] Failed to create overlay directory`);return}let f={current:t};n(t=>({...t,speculation:{status:`active`,id:a,abort:()=>o.abort(),startTime:s,messagesRef:c,writtenPathsRef:l,boundary:null,suggestionLength:e.length,toolUseCount:0,isPipelined:r,contextRef:f}})),U(`[Speculation] Starting speculation ${a}`);try{let r=await w$({promptMessages:[d4({content:e})],cacheSafeParams:i??S$(t),skipTranscript:!0,canUseTool:async(e,r)=>{let i=xRe.has(e.name),a=SRe.has(e.name);if(i){let{mode:i,isBypassPermissionsModeAvailable:a}=t.toolUseContext.getAppState().toolPermissionContext;if(!(i===`acceptEdits`||i===`bypassPermissions`||i===`plan`&&a)){U(`[Speculation] Stopping at file edit: ${e.name}`);let t=`file_path`in r?r.file_path:void 0;return Mx(n,()=>({boundary:{type:`edit`,toolName:e.name,filePath:t??``,completedAt:Date.now()}})),o.abort(),Ox(`Speculation paused: file edit requires permission`,`speculation_edit_boundary`)}}if(i||a){let t=`notebook_path`in r?`notebook_path`:`path`in r?`path`:`file_path`,n=r[t];if(n){let a=Mu(d,n);if(Ou(a)||a.startsWith(`..`))return i?(U(`[Speculation] Denied ${e.name}: path outside cwd: ${n}`),Ox(`Write outside cwd not allowed during speculation`,`speculation_write_outside_root`)):{behavior:`allow`,updatedInput:r,decisionReason:{type:`other`,reason:`speculation_read_outside_root`}};if(i){if(!l.current.has(a)){let e=Y(u,a);await pd(Eu(e),{recursive:!0});try{await dd(Y(d,a),e)}catch{}l.current.add(a)}r={...r,[t]:Y(u,a)}}else l.current.has(a)&&(r={...r,[t]:Y(u,a)});return U(`[Speculation] ${i?`Write`:`Read`} ${n} -> ${r[t]}`),{behavior:`allow`,updatedInput:r,decisionReason:{type:`other`,reason:`speculation_file_access`}}}if(a)return{behavior:`allow`,updatedInput:r,decisionReason:{type:`other`,reason:`speculation_read_default_cwd`}}}if(e.name===`Bash`){let e=`command`in r&&typeof r.command==`string`?r.command:``;return!e||MPe({command:e},uQ(e)).behavior!==`allow`?(U(`[Speculation] Stopping at bash: ${e.slice(0,50)||`missing command`}`),Mx(n,()=>({boundary:{type:`bash`,command:e,completedAt:Date.now()}})),o.abort(),Ox(`Speculation paused: bash boundary`,`speculation_bash_boundary`)):{behavior:`allow`,updatedInput:r,decisionReason:{type:`other`,reason:`speculation_readonly_bash`}}}U(`[Speculation] Stopping at denied tool: ${e.name}`);let s=String(`url`in r&&r.url||`file_path`in r&&r.file_path||`path`in r&&r.path||`command`in r&&r.command||``).slice(0,200);return Mx(n,()=>({boundary:{type:`denied_tool`,toolName:e.name,detail:s,completedAt:Date.now()}})),o.abort(),Ox(`Tool ${e.name} not allowed during speculation`,`speculation_unknown_tool`)},querySource:`speculation`,forkLabel:`speculation`,maxTurns:yRe,overrides:{abortController:o,requireCanUseTool:!0},onMessage:e=>{if((e.type===`assistant`||e.type===`user`)&&(c.current.push(e),c.current.length>=bRe&&o.abort(),jx(e))){let t=fs(e.message.content,e=>e.type===`tool_result`&&!e.is_error);t>0&&Mx(n,e=>({toolUseCount:e.toolUseCount+t}))}}});if(o.signal.aborted)return;Mx(n,()=>({boundary:{type:`complete`,completedAt:Date.now(),outputTokens:r.totalUsage.output_tokens}})),U(`[Speculation] Complete: ${Ax(c.current)} tools`),hRe(f.current,e,c.current,n,o)}catch(t){if(o.abort(),t instanceof Error&&t.name===`AbortError`){Ex(u),Nx(n);return}Ex(u),q(t instanceof Error?t:Error(`Speculation failed`)),kx(a,`error`,s,e.length,c.current,null,{error_type:t instanceof Error?t.name:`Unknown`,error_message:H(t).slice(0,200),error_phase:`start`,is_pipelined:r}),Nx(n)}}async function _Re(e,t,n){if(e.status!==`active`)return null;let{id:r,messagesRef:i,writtenPathsRef:a,abort:o,startTime:s,suggestionLength:c,isPipelined:l}=e,u=i.current,d=Dx(r),f=Date.now();o(),n>0&&await lRe(d,a.current,cn()),Ex(d);let p=e.boundary,m=Math.min(f,p?.completedAt??1/0)-s;if(t(e=>(e.speculation.status===`active`&&e.speculation.boundary&&(p=e.speculation.boundary,m=Math.min(f,p.completedAt??1/0)-s),{...e,speculation:nb,speculationSessionTimeSavedMs:e.speculationSessionTimeSavedMs+m})),U(p===null?`[Speculation] Accept ${r}: still running, using ${u.length} messages`:`[Speculation] Accept ${r}: already complete`),kx(r,`accepted`,s,c,u,p,{message_count:u.length,time_saved_ms:m,is_pipelined:l}),m>0){let e={type:`speculation-accept`,timestamp:new Date().toISOString(),timeSavedMs:m};ld(d8(),V(e)+`
|
|
370
370
|
`,{mode:384}).catch(()=>{U(`[Speculation] Failed to write speculation-accept to transcript`)})}return{messages:u,boundary:p,timeSavedMs:m}}function Px(e){e(e=>{if(e.speculation.status!==`active`)return e;let{id:t,abort:n,startTime:r,boundary:i,suggestionLength:a,messagesRef:o,isPipelined:s}=e.speculation;return U(`[Speculation] Aborting ${t}`),kx(t,`aborted`,r,a,o.current,i,{abort_reason:`user_typed`,is_pipelined:s}),n(),Ex(Dx(t)),{...e,speculation:nb}})}async function vRe(e,t,n,r,i){try{let{setMessages:a,readFileState:o,cwd:s}=i;n(e=>e.promptSuggestion.text===null&&e.promptSuggestion.promptId===null?e:{...e,promptSuggestion:{text:null,promptId:null,shownAt:0,acceptedAt:0,generationRequestId:null}});let c=e.messagesRef.current,l=fRe(c),u=d4({content:r});a(e=>[...e,u]);let d=await _Re(e,n,l.length),f=d?.boundary?.type===`complete`;if(!f){let e=l.findLastIndex(e=>e.type!==`assistant`);l=l.slice(0,e+1)}let p=d?.timeSavedMs??0,m=t+p,h=pRe(l,d?.boundary??null,p,m);a(e=>[...e,...l]);let g=tRe(l,s,100);if(o.current=Sue(o.current,g),h&&a(e=>[...e,h]),U(`[Speculation] ${d?.boundary?.type??`incomplete`}, injected ${l.length} messages`),f&&e.pipelinedSuggestion){let{text:t,promptId:i,generationRequestId:a}=e.pipelinedSuggestion;U(`[Speculation] Promoting pipelined suggestion: "${t.slice(0,50)}..."`),n(e=>({...e,promptSuggestion:{text:t,promptId:i,shownAt:Date.now(),acceptedAt:0,generationRequestId:a}})),gRe(t,{...e.contextRef.current,messages:[...e.contextRef.current.messages,d4({content:r}),...l]},n,!0)}return{queryRequired:!f}}catch(t){return q(t instanceof Error?t:Error(`handleSpeculationAccept failed`)),kx(e.id,`error`,e.startTime,e.suggestionLength,e.messagesRef.current,e.boundary,{error_type:t instanceof Error?t.name:`Unknown`,error_message:H(t).slice(0,200),error_phase:`accept`,is_pipelined:e.isPipelined}),Ex(Dx(e.id)),Nx(n),{queryRequired:!0}}}var yRe,bRe,xRe,SRe,Fx=n((()=>{tn(),rb(),bQ(),BPe(),oy(),Ss(),xn(),W(),ka(),pl(),E$(),Ns(),Ao(),i3(),N5(),cRe(),h5(),Va(),Ua(),tb(),yRe=20,bRe=100,xRe=new Set([`Edit`,`Write`,`NotebookEdit`]),SRe=new Set([`Read`,`Glob`,`Grep`,`SearchExtraTools`,`LSP`,`TaskGet`,`TaskList`])}));function Ix(e,t,n){t(t=>{let r=t.tasks?.[e];if(!r)return t;let i=n(r);return i===r?t:{...t,tasks:{...t.tasks,[e]:i}}})}function Lx(e,t){let n=!1;t(t=>{let r=t.tasks[e.id];n=r!==void 0;let i=r&&`retain`in r?{...e,retain:r.retain,startTime:r.startTime,messages:r.messages,diskLoaded:r.diskLoaded,pendingMessages:r.pendingMessages}:e;return{...t,tasks:{...t.tasks,[e.id]:i}}}),!n&&vl({type:`system`,subtype:`task_started`,task_id:e.id,tool_use_id:e.toolUseId,description:e.description,task_type:e.type,workflow_name:`workflowName`in e?e.workflowName:void 0,prompt:`prompt`in e?e.prompt:void 0})}function Rx(e,t){t(t=>{let n=t.tasks?.[e];if(!n||!t7(n.status)||!n.notified||`retain`in n&&(n.evictAfter??1/0)>Date.now())return t;let{[e]:r,...i}=t.tasks;return{...t,tasks:i}})}function CRe(e){let t=e.tasks??{};return Object.values(t).filter(e=>e.status===`running`)}async function wRe(e){let t=[],n={},r=[],i=e.tasks??{};for(let e of Object.values(i)){if(e.notified)switch(e.status){case`completed`:case`failed`:case`killed`:r.push(e.id);continue;case`pending`:continue;case`running`:break}if(e.status===`running`){let t=await Z6t(e.id,e.outputOffset);t.content&&(n[e.id]=t.newOffset)}}return{attachments:t,updatedTaskOffsets:n,evictedTaskIds:r}}function TRe(e,t,n){let r=Object.keys(t);r.length===0&&n.length===0||e(e=>{let i=!1,a={...e.tasks};for(let e of r){let n=a[e];n?.status===`running`&&(a[e]={...n,outputOffset:t[e]},i=!0)}for(let e of n){let t=a[e];!t||!t7(t.status)||!t.notified||`retain`in t&&(t.evictAfter??1/0)>Date.now()||(delete a[e],i=!0)}return i?{...e,tasks:a}:e})}var ERe,zx,Bx=n((()=>{i7(),xv(),yl(),e7(),ERe=3e3,zx=3e4}));function Vx(e){return e}function Hx(e){return e}function DRe(e){return ORe.test(e)?e:null}var ORe,Ux=n((()=>{ORe=/^a(?:.+-)?[0-9a-f]{16}$/}));function kRe(e){let t=e.indexOf(`
|
|
@@ -808,16 +808,16 @@ The assistant did not use the todo list because this is a single command executi
|
|
|
808
808
|
- activeForm: "Fixing authentication bug"
|
|
809
809
|
|
|
810
810
|
When in doubt, use this tool. Being proactive with task management demonstrates attentiveness and ensures you complete all requirements successfully.
|
|
811
|
-
`,aze=`Update the todo list for the current session. To be used proactively and often to track progress and pending tasks. Make sure that at least one task is in_progress at all times. Always provide both content (imperative) and activeForm (present continuous) for each task.`})),sze,cze,cS,lS=n((()=>{it(),tn(),wr(),Sc(),Fs(),Wl(),rze(),Qi(),il(),oze(),sze=J(()=>Pe({todos:sS().describe(`The updated todo list`)})),cze=J(()=>L({oldTodos:sS().describe(`The todo list before the update`),newTodos:sS().describe(`The todo list after the update`),verificationNudgeNeeded:We().optional()})),cS=sc({name:_c,searchHint:`manage the session task checklist`,maxResultSizeChars:1e5,strict:!0,async description(){return aze},async prompt(){return ize},get inputSchema(){return sze()},get outputSchema(){return cze()},userFacingName(){return``},shouldDefer:!0,isEnabled(){return!Vl()},toAutoClassifierInput(e){return`${e.todos.length} items`},async checkPermissions(e){return{behavior:`allow`,updatedInput:e}},renderToolUseMessage(){return null},async call({todos:e},t){let n=t.getAppState(),r=t.agentId??Ft(),i=n.todos[r]??[],a=e.every(e=>e.status===`completed`),o=a?[]:e,s=!1;return Jr(`tengu_hive_evidence`,!1)&&!t.agentId&&a&&e.length>=3&&!e.some(e=>/verif/i.test(e.content))&&(s=!0),t.setAppState(e=>({...e,todos:{...e.todos,[r]:o}})),{data:{oldTodos:i,newTodos:e,verificationNudgeNeeded:s}}},mapToolResultToToolResultBlockParam({verificationNudgeNeeded:e},t){return{tool_use_id:t,type:`tool_result`,content:`Todos have been modified successfully. Ensure that you continue to use the todo list to track your progress. Please proceed with the current tasks if applicable`+(e?`\n\nNOTE: You just closed out 3+ tasks and none of them was a verification step. Before writing your final summary, spawn the verification agent (subagent_type="${Bi}"). You cannot self-assign PARTIAL by listing caveats in your summary \u2014 only the verifier issues a verdict.`:``)}}})}));async function uS(){let e=Xn()?.accessToken;if(!e)throw Error(`Claude Code web sessions require authentication with a Claude.ai account. API key authentication is not sufficient. Please run /login to authenticate, or check your authentication status with /status.`);let t=await Mi();if(!t)throw Error(`Unable to get organization UUID`);let n=`${ro().BASE_API_URL}/v1/environment_providers`;try{let r={...Zl(e),"x-organization-uuid":t},i=await Oe.get(n,{headers:r,timeout:15e3});if(i.status!==200)throw Error(`Failed to fetch environments: ${i.status} ${i.statusText}`);return i.data.environments}catch(e){let t=xa(e);throw q(t),Error(`Failed to fetch environments: ${t.message}`)}}async function lze(e){let t=Xn()?.accessToken;if(!t)throw Error(`No access token available`);let n=await Mi();if(!n)throw Error(`Unable to get organization UUID`);let r=`${ro().BASE_API_URL}/v1/environment_providers/cloud/create`;return(await Oe.post(r,{name:e,kind:`anthropic_cloud`,description:``,config:{environment_type:`anthropic`,cwd:`/home/user`,init_script:null,environment:{},languages:[{name:`python`,version:`3.11`},{name:`node`,version:`20`}],network_config:{allowed_hosts:[],allow_default_hosts:!0}}},{headers:{...Zl(t),"anthropic-beta":`ccr-byoc-2025-07-29`,"x-organization-uuid":n},timeout:15e3})).data}var dS=n((()=>{ke(),io(),aa(),Wi(),ka(),Ao(),Ql()}));async function uze(){return di()?gr():!1}async function dze(){return await _se({ignoreUntracked:!0})}async function fze(){try{return(await uS()).length>0}catch(e){return U(`checkHasRemoteEnvironment failed: ${H(e)}`),!1}}function pze(){return to(Ga())!==null}async function fS(e,t,n){try{let r=Xn()?.accessToken;if(!r)return U(`checkGithubAppInstalled: No access token found, assuming app not installed`),!1;let i=await Mi();if(!i)return U(`checkGithubAppInstalled: No org UUID found, assuming app not installed`),!1;let a=`${ro().BASE_API_URL}/api/oauth/organizations/${i}/code/repos/${e}/${t}`,o={...Zl(r),"x-organization-uuid":i};U(`Checking GitHub app installation for ${e}/${t}`);let s=await Oe.get(a,{headers:o,timeout:15e3,signal:n});if(s.status===200){if(s.data.status){let n=s.data.status.app_installed;return U(`GitHub app ${n?`is`:`is not`} installed on ${e}/${t}`),n}return U(`GitHub app is not installed on ${e}/${t} (status is null)`),!1}return U(`checkGithubAppInstalled: Unexpected response status ${s.status}`),!1}catch(n){if(Oe.isAxiosError(n)){let r=n.response?.status;if(r&&r>=400&&r<500)return U(`checkGithubAppInstalled: Got ${r} error, app likely not installed on ${e}/${t}`),!1}return U(`checkGithubAppInstalled error: ${H(n)}`),!1}}async function mze(){try{let e=Xn()?.accessToken;if(!e)return U(`checkGithubTokenSynced: No access token found`),!1;let t=await Mi();if(!t)return U(`checkGithubTokenSynced: No org UUID found`),!1;let n=`${ro().BASE_API_URL}/api/oauth/organizations/${t}/sync/github/auth`,r={...Zl(e),"x-organization-uuid":t};U(`Checking if GitHub token is synced via web-setup`);let i=await Oe.get(n,{headers:r,timeout:15e3}),a=i.status===200&&i.data?.is_authenticated===!0;return U(`GitHub token synced: ${a} (status=${i.status}, data=${JSON.stringify(i.data)})`),a}catch(e){if(Oe.isAxiosError(e)){let t=e.response?.status;if(t&&t>=400&&t<500)return U(`checkGithubTokenSynced: Got ${t}, token not synced`),!1}return U(`checkGithubTokenSynced error: ${H(e)}`),!1}}async function hze(e,t){return await fS(e,t)?{hasAccess:!0,method:`github-app`}:Jr(`tengu_cobalt_lantern`,!1)&&await mze()?{hasAccess:!0,method:`token-sync`}:{hasAccess:!1,method:`none`}}var pS=n((()=>{ke(),io(),aa(),wr(),Wi(),Wa(),W(),Yl(),ka(),no(),Ql(),dS()}));async function gze({skipBundle:e=!1}={}){let t=[];if(!C3(`allow_remote_sessions`))return t.push({type:`policy_blocked`}),t;let[n,r,i]=await Promise.all([uze(),fze(),Xl()]);n&&t.push({type:`not_logged_in`}),r||t.push({type:`no_remote_environment`});let a=!e&&(x(process.env.CCR_FORCE_BUNDLE)||x(process.env.CCR_ENABLE_BUNDLE)||await Iae(`tengu_ccr_bundle_seed_enabled`));return pze()?a||(i===null?t.push({type:`no_git_remote`}):i.host===`github.com`&&(await fS(i.owner,i.name)||t.push({type:`github_app_not_installed`}))):t.push({type:`not_in_git_repo`}),t}var _ze=n((()=>{wr(),M3(),Yl(),y(),pS()}));function mS(){if(process.stdout.isTTY)try{Wu(1,pte);let e=pt.get(process.stdout);if(e?.isAltScreenActive)try{e.unmount()}catch{Wu(1,dte)}e?.drainStdin(),e?.detachForShutdown(),Wu(1,ute),Wu(1,Wee),Wu(1,$ee),Wu(1,lte),Wu(1,ite),Wu(1,Xee),fte()&&Wu(1,hte(Gee)),x(process.env.CLAUDE_CODE_DISABLE_TERMINAL_TITLE)||(process.platform===`win32`?process.title=``:Wu(1,Ree))}catch{}}function hS(){if(!yS&&process.stdout.isTTY&&Ate()&&!ln())try{let e=Ft();if(!S8(e))return;let t=U8(e),n;n=t?`"${t.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`)}"`:e,Wu(1,ut.dim(`\nResume this session with:\nclaude --resume ${n}\n`)),yS=!0}catch{}}function gS(e){xS!==void 0&&(clearTimeout(xS),xS=void 0);try{pt.get(process.stdout)?.drainStdin()}catch{}try{process.exit(e)}catch{process.kill(process.pid,`SIGKILL`)}throw Error(`unreachable`)}function _S(e=0,t=`other`,n){process.exitCode=e,bze=vS(e,t,n).catch(t=>{U(`Graceful shutdown failed: ${t}`,{level:`error`}),mS(),hS(),gS(e)}).catch(()=>{})}function vze(){return bS}async function vS(e=0,t=`other`,n){if(bS)return;bS=!0;let{executeSessionEndHooks:r,getSessionEndHookTimeoutMs:i}=await import(`./hooks-
|
|
811
|
+
`,aze=`Update the todo list for the current session. To be used proactively and often to track progress and pending tasks. Make sure that at least one task is in_progress at all times. Always provide both content (imperative) and activeForm (present continuous) for each task.`})),sze,cze,cS,lS=n((()=>{it(),tn(),wr(),Sc(),Fs(),Wl(),rze(),Qi(),il(),oze(),sze=J(()=>Pe({todos:sS().describe(`The updated todo list`)})),cze=J(()=>L({oldTodos:sS().describe(`The todo list before the update`),newTodos:sS().describe(`The todo list after the update`),verificationNudgeNeeded:We().optional()})),cS=sc({name:_c,searchHint:`manage the session task checklist`,maxResultSizeChars:1e5,strict:!0,async description(){return aze},async prompt(){return ize},get inputSchema(){return sze()},get outputSchema(){return cze()},userFacingName(){return``},shouldDefer:!0,isEnabled(){return!Vl()},toAutoClassifierInput(e){return`${e.todos.length} items`},async checkPermissions(e){return{behavior:`allow`,updatedInput:e}},renderToolUseMessage(){return null},async call({todos:e},t){let n=t.getAppState(),r=t.agentId??Ft(),i=n.todos[r]??[],a=e.every(e=>e.status===`completed`),o=a?[]:e,s=!1;return Jr(`tengu_hive_evidence`,!1)&&!t.agentId&&a&&e.length>=3&&!e.some(e=>/verif/i.test(e.content))&&(s=!0),t.setAppState(e=>({...e,todos:{...e.todos,[r]:o}})),{data:{oldTodos:i,newTodos:e,verificationNudgeNeeded:s}}},mapToolResultToToolResultBlockParam({verificationNudgeNeeded:e},t){return{tool_use_id:t,type:`tool_result`,content:`Todos have been modified successfully. Ensure that you continue to use the todo list to track your progress. Please proceed with the current tasks if applicable`+(e?`\n\nNOTE: You just closed out 3+ tasks and none of them was a verification step. Before writing your final summary, spawn the verification agent (subagent_type="${Bi}"). You cannot self-assign PARTIAL by listing caveats in your summary \u2014 only the verifier issues a verdict.`:``)}}})}));async function uS(){let e=Xn()?.accessToken;if(!e)throw Error(`Claude Code web sessions require authentication with a Claude.ai account. API key authentication is not sufficient. Please run /login to authenticate, or check your authentication status with /status.`);let t=await Mi();if(!t)throw Error(`Unable to get organization UUID`);let n=`${ro().BASE_API_URL}/v1/environment_providers`;try{let r={...Zl(e),"x-organization-uuid":t},i=await Oe.get(n,{headers:r,timeout:15e3});if(i.status!==200)throw Error(`Failed to fetch environments: ${i.status} ${i.statusText}`);return i.data.environments}catch(e){let t=xa(e);throw q(t),Error(`Failed to fetch environments: ${t.message}`)}}async function lze(e){let t=Xn()?.accessToken;if(!t)throw Error(`No access token available`);let n=await Mi();if(!n)throw Error(`Unable to get organization UUID`);let r=`${ro().BASE_API_URL}/v1/environment_providers/cloud/create`;return(await Oe.post(r,{name:e,kind:`anthropic_cloud`,description:``,config:{environment_type:`anthropic`,cwd:`/home/user`,init_script:null,environment:{},languages:[{name:`python`,version:`3.11`},{name:`node`,version:`20`}],network_config:{allowed_hosts:[],allow_default_hosts:!0}}},{headers:{...Zl(t),"anthropic-beta":`ccr-byoc-2025-07-29`,"x-organization-uuid":n},timeout:15e3})).data}var dS=n((()=>{ke(),io(),aa(),Wi(),ka(),Ao(),Ql()}));async function uze(){return di()?gr():!1}async function dze(){return await _se({ignoreUntracked:!0})}async function fze(){try{return(await uS()).length>0}catch(e){return U(`checkHasRemoteEnvironment failed: ${H(e)}`),!1}}function pze(){return to(Ga())!==null}async function fS(e,t,n){try{let r=Xn()?.accessToken;if(!r)return U(`checkGithubAppInstalled: No access token found, assuming app not installed`),!1;let i=await Mi();if(!i)return U(`checkGithubAppInstalled: No org UUID found, assuming app not installed`),!1;let a=`${ro().BASE_API_URL}/api/oauth/organizations/${i}/code/repos/${e}/${t}`,o={...Zl(r),"x-organization-uuid":i};U(`Checking GitHub app installation for ${e}/${t}`);let s=await Oe.get(a,{headers:o,timeout:15e3,signal:n});if(s.status===200){if(s.data.status){let n=s.data.status.app_installed;return U(`GitHub app ${n?`is`:`is not`} installed on ${e}/${t}`),n}return U(`GitHub app is not installed on ${e}/${t} (status is null)`),!1}return U(`checkGithubAppInstalled: Unexpected response status ${s.status}`),!1}catch(n){if(Oe.isAxiosError(n)){let r=n.response?.status;if(r&&r>=400&&r<500)return U(`checkGithubAppInstalled: Got ${r} error, app likely not installed on ${e}/${t}`),!1}return U(`checkGithubAppInstalled error: ${H(n)}`),!1}}async function mze(){try{let e=Xn()?.accessToken;if(!e)return U(`checkGithubTokenSynced: No access token found`),!1;let t=await Mi();if(!t)return U(`checkGithubTokenSynced: No org UUID found`),!1;let n=`${ro().BASE_API_URL}/api/oauth/organizations/${t}/sync/github/auth`,r={...Zl(e),"x-organization-uuid":t};U(`Checking if GitHub token is synced via web-setup`);let i=await Oe.get(n,{headers:r,timeout:15e3}),a=i.status===200&&i.data?.is_authenticated===!0;return U(`GitHub token synced: ${a} (status=${i.status}, data=${JSON.stringify(i.data)})`),a}catch(e){if(Oe.isAxiosError(e)){let t=e.response?.status;if(t&&t>=400&&t<500)return U(`checkGithubTokenSynced: Got ${t}, token not synced`),!1}return U(`checkGithubTokenSynced error: ${H(e)}`),!1}}async function hze(e,t){return await fS(e,t)?{hasAccess:!0,method:`github-app`}:Jr(`tengu_cobalt_lantern`,!1)&&await mze()?{hasAccess:!0,method:`token-sync`}:{hasAccess:!1,method:`none`}}var pS=n((()=>{ke(),io(),aa(),wr(),Wi(),Wa(),W(),Yl(),ka(),no(),Ql(),dS()}));async function gze({skipBundle:e=!1}={}){let t=[];if(!C3(`allow_remote_sessions`))return t.push({type:`policy_blocked`}),t;let[n,r,i]=await Promise.all([uze(),fze(),Xl()]);n&&t.push({type:`not_logged_in`}),r||t.push({type:`no_remote_environment`});let a=!e&&(x(process.env.CCR_FORCE_BUNDLE)||x(process.env.CCR_ENABLE_BUNDLE)||await Iae(`tengu_ccr_bundle_seed_enabled`));return pze()?a||(i===null?t.push({type:`no_git_remote`}):i.host===`github.com`&&(await fS(i.owner,i.name)||t.push({type:`github_app_not_installed`}))):t.push({type:`not_in_git_repo`}),t}var _ze=n((()=>{wr(),M3(),Yl(),y(),pS()}));function mS(){if(process.stdout.isTTY)try{Wu(1,pte);let e=pt.get(process.stdout);if(e?.isAltScreenActive)try{e.unmount()}catch{Wu(1,dte)}e?.drainStdin(),e?.detachForShutdown(),Wu(1,ute),Wu(1,Wee),Wu(1,$ee),Wu(1,lte),Wu(1,ite),Wu(1,Xee),fte()&&Wu(1,hte(Gee)),x(process.env.CLAUDE_CODE_DISABLE_TERMINAL_TITLE)||(process.platform===`win32`?process.title=``:Wu(1,Ree))}catch{}}function hS(){if(!yS&&process.stdout.isTTY&&Ate()&&!ln())try{let e=Ft();if(!S8(e))return;let t=U8(e),n;n=t?`"${t.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`)}"`:e,Wu(1,ut.dim(`\nResume this session with:\nclaude --resume ${n}\n`)),yS=!0}catch{}}function gS(e){xS!==void 0&&(clearTimeout(xS),xS=void 0);try{pt.get(process.stdout)?.drainStdin()}catch{}try{process.exit(e)}catch{process.kill(process.pid,`SIGKILL`)}throw Error(`unreachable`)}function _S(e=0,t=`other`,n){process.exitCode=e,bze=vS(e,t,n).catch(t=>{U(`Graceful shutdown failed: ${t}`,{level:`error`}),mS(),hS(),gS(e)}).catch(()=>{})}function vze(){return bS}async function vS(e=0,t=`other`,n){if(bS)return;bS=!0;let{executeSessionEndHooks:r,getSessionEndHookTimeoutMs:i}=await import(`./hooks-QXGwOfWj.js`),a=i();xS=setTimeout(e=>{mS(),hS(),gS(e)},Math.max(5e3,a+3500),e),xS.unref(),process.exitCode=e,mS(),hS();let o;try{let e=(async()=>{try{await ese()}catch{}})();await Promise.race([e,new Promise((e,t)=>{o=setTimeout(e=>e(new xze),2e3,t)})]),clearTimeout(o)}catch{clearTimeout(o)}try{await r(t,{...n,signal:AbortSignal.timeout(a),timeoutMs:a})}catch{}try{xce()}catch{}let s=Yte();s&&G(`tengu_cache_eviction_hint`,{scope:`session_end`,last_request_id:s});try{await Promise.race([Promise.all([Uoe(),efe(),rfe(2e3)]),Hs(500)])}catch{}if(n?.finalMessage)try{Wu(2,n.finalMessage+`
|
|
812
812
|
`)}catch{}gS(e)}var yS,yze,bS,xS,SS,bze,xze,CS=n((()=>{ft(),l(),le(),tn(),Tt(),tfe(),Gre(),Ua(),Ma(),W(),Ya(),y(),h5(),Us(),nfe(),bce(),yS=!1,yze=c(()=>{M(()=>{}),process.on(`SIGINT`,()=>{process.argv.includes(`-p`)||process.argv.includes(`--print`)||(Ja(`info`,`shutdown_signal`,{signal:`SIGINT`}),vS(0))}),process.on(`SIGTERM`,()=>{Ja(`info`,`shutdown_signal`,{signal:`SIGTERM`}),vS(143)}),process.platform!==`win32`&&(process.on(`SIGHUP`,()=>{Ja(`info`,`shutdown_signal`,{signal:`SIGHUP`}),vS(129)}),process.stdin.isTTY&&(SS=setInterval(()=>{Ote()||(!process.stdout.writable||!process.stdin.readable)&&(clearInterval(SS),Ja(`info`,`shutdown_signal`,{signal:`orphan_detected`}),vS(129))},3e4),SS.unref())),process.on(`uncaughtException`,e=>{Ja(`error`,`uncaught_exception`,{error_name:e.name,error_message:e.message.slice(0,2e3)}),G(`tengu_uncaught_exception`,{error_name:e.name})}),process.on(`unhandledRejection`,e=>{let t=e instanceof Error?e.name:typeof e==`string`?`string`:`unknown`;Ja(`error`,`unhandled_rejection`,e instanceof Error?{error_name:e.name,error_message:e.message.slice(0,2e3),error_stack:e.stack?.slice(0,4e3)}:{error_message:String(e).slice(0,2e3)}),G(`tengu_unhandled_rejection`,{error_name:t})})}),bS=!1,xze=class extends Error{constructor(){super(`Cleanup timeout`)}}}));async function Sze(){try{await jr(()=>{let e=ii();if(e.error)throw Error(`Failed to get auth headers: ${e.error}`);return Oe.post(`${ro().BASE_API_URL}/api/oauth/account/grove_notice_viewed`,{},{headers:{...e.headers,"User-Agent":Cn()}})}),TS.cache.clear?.()}catch(e){q(e)}}async function Cze(e){try{await jr(()=>{let t=ii();if(t.error)throw Error(`Failed to get auth headers: ${t.error}`);return Oe.patch(`${ro().BASE_API_URL}/api/oauth/account/settings`,{grove_enabled:e},{headers:{...t.headers,"User-Agent":Cn()}})}),TS.cache.clear?.()}catch(e){q(e)}}async function wze(){if(!hae())return!1;let e=qr()?.accountUuid;if(!e)return!1;let t=Tr().groveConfigCache?.[e];return t?Date.now()-t.timestamp>wS?(U(`Grove: Cache stale, returning cached data and refreshing in background`),Tze(e),t.grove_enabled):(U(`Grove: Using fresh cached config`),t.grove_enabled):(U(`Grove: No cache, fetching config in background (dialog skipped this session)`),Tze(e),!1)}async function Tze(e){try{let t=await ES();if(!t.success)return;let n=t.data.grove_enabled,r=Tr().groveConfigCache?.[e];if(r?.grove_enabled===n&&Date.now()-r.timestamp<=wS)return;fr(t=>({...t,groveConfigCache:{...t.groveConfigCache,[e]:{grove_enabled:n,timestamp:Date.now()}}}))}catch(e){U(`Grove: Failed to fetch and store config: ${e}`)}}function Eze(e,t,n){if(!e.success||!t.success)return!1;let r=e.data,i=t.data;if(r.grove_enabled!==null)return!1;if(n||!i.notice_is_grace_period)return!0;let a=i.notice_reminder_frequency;return a!==null&&r.grove_notice_viewed_at?Math.floor((Date.now()-new Date(r.grove_notice_viewed_at).getTime())/(1e3*60*60*24))>=a:r.grove_notice_viewed_at==null}async function Dze(){let[e,t]=await Promise.all([TS(),ES()]);if(Eze(e,t,!1)){let e=t.success?t.data:null;G(`tengu_grove_print_viewed`,{dismissable:e?.notice_is_grace_period}),e===null||e.notice_is_grace_period?(cse(`
|
|
813
813
|
An update to our Consumer Terms and Privacy Policy will take effect on October 8, 2025. Run \`claude\` to review the updated terms.
|
|
814
814
|
|
|
815
815
|
`),await Sze()):(cse(`
|
|
816
816
|
[ACTION REQUIRED] An update to our Consumer Terms and Privacy Policy has taken effect on October 8, 2025. You must run \`claude\` to review the updated terms.
|
|
817
817
|
|
|
818
|
-
`),await vS(1))}}var wS,TS,ES,Oze=n((()=>{ke(),l(),Ua(),Wi(),W(),CS(),To(),lse(),io(),xn(),fa(),Ao(),ki(),wS=1440*60*1e3,TS=c(async()=>{if(Do())return{success:!1};try{return{success:!0,data:(await jr(()=>{let e=ii();if(e.error)throw Error(`Failed to get auth headers: ${e.error}`);return Oe.get(`${ro().BASE_API_URL}/api/oauth/account/settings`,{headers:{...e.headers,"User-Agent":Cn()}})})).data}}catch(e){return q(e),TS.cache.clear?.(),{success:!1}}}),ES=c(async()=>{if(Do())return{success:!1};try{let{grove_enabled:e,domain_excluded:t,notice_is_grace_period:n,notice_reminder_frequency:r}=(await jr(()=>{let e=ii();if(e.error)throw Error(`Failed to get auth headers: ${e.error}`);return Oe.get(`${ro().BASE_API_URL}/api/claude_code_grove`,{headers:{...e.headers,"User-Agent":mie()},timeout:3e3})})).data;return{success:!0,data:{grove_enabled:e,domain_excluded:t??!1,notice_is_grace_period:n??!0,notice_reminder_frequency:r}}}catch(e){return U(`Failed to fetch Grove notice config: ${e}`),{success:!1}}})}));function kze(){return Promise.resolve({ok:!0})}function Aze(){return!0}var jze=n((()=>{}));function Mze(){OS=void 0,xoe()}function DS(){if(OS!==void 0)return OS;if(ar()!==`firstParty`||!Wn()||process.env.CLAUDE_CODE_ENTRYPOINT===`local-agent`)return OS=li(!1);let e=Xn();if(e?.accessToken&&e.subscriptionType===null||e?.accessToken&&e.scopes?.includes(`user:inference`)&&(e.subscriptionType===`enterprise`||e.subscriptionType===`team`))return OS=li(!0);try{let{key:e}=Un({skipRetrievingKeyFromApiKeyHelper:!0});if(e)return OS=li(!0)}catch{}return OS=li(!1)}var OS,Nze=n((()=>{io(),Wi(),Pn(),Lae()})),Pze,Fze=n((()=>{it(),Fs(),Pze=J(()=>L({uuid:F(),checksum:F(),settings:Fe(F(),ze())}))}));function Ize(){NS||DS()&&(NS=new Promise(e=>{PS=e,setTimeout(()=>{PS&&(U(`Remote settings: Loading promise timed out, resolving anyway`),PS(),PS=null)},$ze)}))}function Lze(){return`${ro().BASE_API_URL}/api/claude_code/settings`}function kS(e){if(Array.isArray(e))return e.map(kS);if(typeof e==`object`&&e){let t={};for(let n of Object.keys(e).sort())t[n]=kS(e[n]);return t}return e}function Rze(e){let t=V(kS(e));return`sha256:${id(`sha256`).update(t).digest(`hex`)}`}function zze(){return DS()}async function Bze(){NS&&await NS}function Vze(){try{let{key:e}=Un({skipRetrievingKeyFromApiKeyHelper:!0});if(e)return{headers:{"x-api-key":e}}}catch{}let e=Xn();return e?.accessToken?{headers:{Authorization:`Bearer ${e.accessToken}`,"anthropic-beta":Ese}}:{headers:{},error:`No authentication available`}}async function Hze(e){let t=null;for(let n=1;n<=jS+1;n++){if(t=await Uze(e),t.success||t.skipRetry||n>jS)return t;let r=s3(n);U(`Remote settings: Retry ${n}/${jS} after ${r}ms`),await Hs(r)}return t}async function Uze(e){try{await gr();let t=Vze();if(t.error)return{success:!1,error:`Authentication required for remote settings`,skipRetry:!0};let n=Lze(),r={...t.headers,"User-Agent":Cn()};e&&(r[`If-None-Match`]=`"${e}"`);let i=await Oe.get(n,{headers:r,timeout:Zze,validateStatus:e=>e===200||e===204||e===304||e===404});if(i.status===304)return U(`Remote settings: Using cached settings (304)`),{success:!0,settings:null,checksum:e};if(i.status===204||i.status===404)return U(`Remote settings: No settings found (${i.status})`),{success:!0,settings:{},checksum:void 0};let a=Pze().safeParse(i.data);if(!a.success)return U(`Remote settings: Invalid response format - ${a.error.message}`),{success:!1,error:`Invalid remote settings format`};let o=Foe().safeParse(a.data.settings);return o.success?(U(`Remote settings: Fetched successfully`),{success:!0,settings:o.data,checksum:a.data.checksum}):(U(`Remote settings: Settings validation failed - ${o.error.message}`),{success:!1,error:`Invalid settings structure`})}catch(e){let{kind:t,status:n,message:r}=Zoe(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 Wze(e){try{let t=ai(),n=await md(t,`w`,384);try{await n.writeFile(V(e,null,2),{encoding:`utf-8`}),await n.datasync()}finally{await n.close()}U(`Remote settings: Saved to ${t}`)}catch(e){U(`Remote settings: Failed to save - ${e instanceof Error?e.message:`unknown error`}`)}}async function Gze(){Xze(),Mze(),NS=null,PS=null;try{await Cd(ai())}catch{}}async function AS(){if(!DS())return null;let e=ta(),t=e?Rze(e):void 0;try{let n=await Hze(t);if(!n.success)return e?(U(`Remote settings: Using stale cache after fetch failure`),hi(e),e):null;if(n.settings===null&&e)return U(`Remote settings: Cache still valid (304 Not Modified)`),hi(e),e;let r=n.settings||{};if(Object.keys(r).length>0)return Aze(await kze(e,r))?(hi(r),await Wze(r),U(`Remote settings: Applied new settings successfully`),r):(U(`Remote settings: User rejected new settings, using cached settings`),e);hi(r);try{await Cd(ai()),U(`Remote settings: Deleted cached file (404 response)`)}catch(e){Ea(e)!==`ENOENT`&&U(`Remote settings: Failed to delete cached file - ${e instanceof Error?e.message:`unknown error`}`)}return r}catch{return e?(U(`Remote settings: Using stale cache after error`),hi(e),e):null}}async function Kze(){DS()&&!NS&&(NS=new Promise(e=>{PS=e})),ta()&&PS&&(PS(),PS=null);try{let e=await AS();DS()&&Yze(),e!==null&&lm.notifyChange(`policySettings`)}finally{PS&&(PS(),PS=null)}}async function qze(){if(await Gze(),!DS()){lm.notifyChange(`policySettings`);return}await AS(),U(`Remote settings: Refreshed after auth change`),lm.notifyChange(`policySettings`)}async function Jze(){if(!DS())return;let e=ta(),t=e?V(e):null;try{await AS();let e=ta();(e?V(e):null)!==t&&(U(`Remote settings: Changed during background poll`),lm.notifyChange(`policySettings`))}catch{}}function Yze(){MS===null&&DS()&&(MS=setInterval(()=>{Jze()},Qze),MS.unref(),ja(async()=>Xze()))}function Xze(){MS!==null&&(clearInterval(MS),MS=null)}var Zze,jS,Qze,MS,NS,PS,$ze,eBe=n((()=>{ke(),io(),Wi(),Ma(),W(),ka(),um(),Dr(),Us(),Va(),ki(),_3(),jze(),Nze(),Lae(),Fze(),Zze=1e4,jS=5,Qze=3600*1e3,MS=null,NS=null,PS=null,$ze=3e4}));function FS(){return Y(tBe(),yBe)}function tBe(){return(process.env.CLAUDE_CONFIG_DIR??Y(Su(),`.claude`)).normalize(`NFC`)}function nBe(){return Y(process.env.CODEX_HOME??Y(process.env.HOME??``,`.codex`),`auth.json`)}function IS(e){return typeof e==`string`&&e.length>0?e:void 0}function rBe(e){try{let t=JSON.parse(e);return t&&typeof t==`object`?t:null}catch{return null}}function iBe(e){let[,t]=e.split(`.`);if(!t)return null;try{let e=t.replace(/-/g,`+`).replace(/_/g,`/`),n=e.padEnd(e.length+(4-e.length%4)%4,`=`);return rBe(Buffer.from(n,`base64`).toString(`utf8`))}catch{return null}}function aBe(e){let t=iBe(e),n=t?.[`https://api.openai.com/auth`];return n&&typeof n==`object`?n:t??{}}function oBe(e){let t=iBe(e)?.exp;return typeof t==`number`?t*1e3:null}function LS(e){if(e.accountId)return e.accountId;for(let t of[e.idToken,e.accessToken]){if(!t)continue;let e=aBe(t),n=IS(e.chatgpt_account_id)??IS(e.chatgpt_account_user_id)??IS(e.account_id);if(n)return n}}async function sBe(e){try{let t=await hd(e,`utf8`),n=JSON.parse(t),r=n.tokens,i=r?.id_token,a=r?.access_token,o=r?.refresh_token;return!i||!a||!o?null:{idToken:i,accessToken:a,refreshToken:o,accountId:LS({idToken:i,accessToken:a,accountId:r.account_id}),lastRefresh:n.last_refresh}}catch{return null}}async function cBe(e){let t=FS();await pd(tBe(),{recursive:!0});let n={auth_mode:`chatgpt`,tokens:{id_token:e.idToken,access_token:e.accessToken,refresh_token:e.refreshToken,account_id:LS(e)},last_refresh:new Date().toISOString()};await wd(t,`${JSON.stringify(n,null,2)}\n`,{mode:384}),await ud(t,384).catch(()=>void 0)}async function lBe(e,t){let n=await fetch(e,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)});if(!n.ok)throw Error(`ChatGPT auth request failed (${n.status})`);return await n.json()}async function uBe(e,t){let n=await fetch(e,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:t});if(!n.ok){let e=await n.text().catch(()=>``);throw Error(`ChatGPT token request failed (${n.status})${e?`: ${e}`:``}`)}return await n.json()}async function dBe(){let e=await lBe(`${RS}/api/accounts/deviceauth/usercode`,{client_id:zS}),t=e.user_code??e.usercode;if(!e.device_auth_id||!t)throw Error(`ChatGPT auth response did not include a device code`);let n=typeof e.interval==`number`?e.interval:Number.parseInt(e.interval??`5`,10);return{verificationUrl:`${RS}/codex/device`,userCode:t,deviceAuthId:e.device_auth_id,intervalSeconds:Number.isFinite(n)&&n>0?n:5}}async function fBe(e,t){let n=Date.now();for(;Date.now()-n<900*1e3;){if(t?.aborted)throw Error(`ChatGPT login cancelled`);let n=await fetch(`${RS}/api/accounts/deviceauth/token`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({device_auth_id:e.deviceAuthId,user_code:e.userCode}),signal:t});if(n.ok){let e=await n.json();return{authorizationCode:e.authorization_code,codeVerifier:e.code_verifier}}if(n.status!==403&&n.status!==404)throw Error(`ChatGPT device auth failed (${n.status})`);await new Promise(t=>setTimeout(t,e.intervalSeconds*1e3))}throw Error(`ChatGPT device auth timed out after 15 minutes`)}async function pBe(e){let t=new URLSearchParams({grant_type:`authorization_code`,code:e.authorizationCode,redirect_uri:`${RS}/deviceauth/callback`,client_id:zS,code_verifier:e.codeVerifier}),n=await uBe(`${RS}/oauth/token`,t);return{idToken:n.id_token,accessToken:n.access_token,refreshToken:n.refresh_token,accountId:LS({idToken:n.id_token,accessToken:n.access_token})}}async function mBe(e){let t=new URLSearchParams({grant_type:`refresh_token`,refresh_token:e.refreshToken,client_id:zS,scope:`openid profile email offline_access api.connectors.read api.connectors.invoke`}),n=await uBe(`${RS}/oauth/token`,t);return{idToken:n.id_token,accessToken:n.access_token,refreshToken:n.refresh_token??e.refreshToken,accountId:LS({idToken:n.id_token,accessToken:n.access_token,accountId:e.accountId})}}async function hBe(e,t){let n=await pBe(await fBe(e,t));return await cBe(n),n}function gBe(){return process.env.OPENAI_AUTH_MODE===`chatgpt`}async function _Be(){await Cd(FS()).catch(e=>{if(e.code!==`ENOENT`)throw e})}async function vBe(){let e=await sBe(FS());if(e||(e=await sBe(nBe()),e&&U(`[OpenAI] Using ChatGPT auth from Codex auth.json`)),!e)throw Error(`ChatGPT account is not logged in. Run /login and select ChatGPT account with subscription.`);let t=oBe(e.accessToken);return t!==null&&t<=Date.now()+bBe&&(e=await mBe(e),await cBe(e)),{accessToken:e.accessToken,accountId:e.accountId??LS(e)}}var RS,zS,yBe,bBe,BS=n((()=>{W(),RS=`https://auth.openai.com`,zS=`app_EMoamEEZ73f0CkXaXp7hrann`,yBe=`openai-chatgpt-auth.json`,bBe=300*1e3}));async function VS({clearOnboarding:e=!1}){let{flushTelemetry:t}=await import(`./instrumentation-DbKu2GCL.js`);await t(),await Qne(),await _Be(),xBe(),Tn().delete(),await HS(),fr(t=>{let n={...t};return e&&(n.hasCompletedOnboarding=!1,n.subscriptionNoticeCount=0,n.hasAvailableSubscription=!1,n.customApiKeyResponses?.approved&&(n.customApiKeyResponses={...n.customApiKeyResponses,approved:[]})),n.oauthAccount=void 0,n})}function xBe(){delete process.env.OPENAI_AUTH_MODE;let e=_r(`userSettings`)??{},t=e.env??{},n=!!(t.OPENAI_API_KEY??process.env.OPENAI_API_KEY)&&!!(t.OPENAI_BASE_URL??process.env.OPENAI_BASE_URL);Ni(`userSettings`,{...e.modelType===`openai`&&!n?{modelType:void 0}:{},env:{OPENAI_AUTH_MODE:void 0}})}async function HS(){Xn.cache?.clear?.(),afe(),Mie(),nie(),Hoe(),hie(),ES.cache?.clear?.(),TS.cache?.clear?.(),await Gze(),await w3()}async function SBe(){await VS({clearOnboarding:!0});let e=(0,CBe.jsx)(z,{children:`Successfully logged out.`});return setTimeout(()=>{_S(0,`logout`)},200),e}var CBe,wBe=n((()=>{R(),ife(),Tt(),wr(),Oze(),M3(),eBe(),BS(),Wi(),zr(),xn(),CS(),Fr(),Gi(),Ore(),Aoe(),CBe=jt()}));async function TBe(){try{if(Tr().claudeCodeFirstTokenDate!==void 0)return;let e=ii();if(e.error){q(Error(`Failed to get auth headers: ${e.error}`));return}let t=`${ro().BASE_API_URL}/api/organization/claude_code_first_token_date`,n=(await Oe.get(t,{headers:{...e.headers,"User-Agent":Cn()},timeout:1e4})).data?.first_token_date??null;if(n!==null){let e=new Date(n).getTime();if(isNaN(e)){q(Error(`Received invalid first_token_date from API: ${n}`));return}}fr(e=>({...e,claudeCodeFirstTokenDate:n}))}catch(e){q(e)}}var EBe=n((()=>{ke(),io(),xn(),fa(),Ao(),ki()})),DBe,OBe=n((()=>{Ua(),io(),Ao(),aa(),O(),DBe=class{constructor(e=`/callback`){k(this,`localServer`,void 0),k(this,`port`,0),k(this,`promiseResolver`,null),k(this,`promiseRejecter`,null),k(this,`expectedState`,null),k(this,`pendingResponse`,null),k(this,`callbackPath`,void 0),this.localServer=Od(),this.callbackPath=e}async start(e){return new Promise((t,n)=>{this.localServer.once(`error`,e=>{n(Error(`Failed to start OAuth callback server: ${e.message}`))}),this.localServer.listen(e??0,`localhost`,()=>{this.port=this.localServer.address().port,t(this.port)})})}getPort(){return this.port}hasPendingResponse(){return this.pendingResponse!==null}async waitForAuthorization(e,t){return new Promise((n,r)=>{this.promiseResolver=n,this.promiseRejecter=r,this.expectedState=e,this.startLocalListener(t)})}handleSuccessRedirect(e,t){if(!this.pendingResponse)return;if(t){t(this.pendingResponse,e),this.pendingResponse=null,G(`tengu_oauth_automatic_redirect`,{custom_handler:!0});return}let n=bi(e)?ro().CLAUDEAI_SUCCESS_URL:ro().CONSOLE_SUCCESS_URL;this.pendingResponse.writeHead(302,{Location:n}),this.pendingResponse.end(),this.pendingResponse=null,G(`tengu_oauth_automatic_redirect`,{})}handleErrorRedirect(){if(!this.pendingResponse)return;let e=ro().CLAUDEAI_SUCCESS_URL;this.pendingResponse.writeHead(302,{Location:e}),this.pendingResponse.end(),this.pendingResponse=null,G(`tengu_oauth_automatic_redirect_error`,{})}startLocalListener(e){this.localServer.on(`request`,this.handleRedirect.bind(this)),this.localServer.on(`error`,this.handleError.bind(this)),e()}handleRedirect(e,t){let n=new URL(e.url||``,`http://${e.headers.host||`localhost`}`);if(n.pathname!==this.callbackPath){t.writeHead(404),t.end();return}let r=n.searchParams.get(`code`)??void 0,i=n.searchParams.get(`state`)??void 0;this.validateAndRespond(r,i,t)}validateAndRespond(e,t,n){if(!e){n.writeHead(400),n.end(`Authorization code not found`),this.reject(Error(`No authorization code received`));return}if(t!==this.expectedState){n.writeHead(400),n.end(`Invalid state parameter`),this.reject(Error(`Invalid state parameter`));return}this.pendingResponse=n,this.resolve(e)}handleError(e){q(e),this.close(),this.reject(e)}resolve(e){this.promiseResolver&&(this.promiseResolver(e),this.promiseResolver=null,this.promiseRejecter=null)}reject(e){this.promiseRejecter&&(this.promiseRejecter(e),this.promiseResolver=null,this.promiseRejecter=null)}close(){this.pendingResponse&&this.handleErrorRedirect(),this.localServer&&(this.localServer.removeAllListeners(),this.localServer.close())}}}));function US(e){return e.toString(`base64`).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=/g,``)}function kBe(){return US(ad(32))}function ABe(e){let t=id(`sha256`);return t.update(e),US(t.digest())}function jBe(){return US(ad(32))}var MBe=n((()=>{})),WS,GS=n((()=>{Ua(),tu(),OBe(),aa(),MBe(),O(),WS=class{constructor(){k(this,`codeVerifier`,void 0),k(this,`authCodeListener`,null),k(this,`port`,null),k(this,`manualAuthCodeResolver`,null),this.codeVerifier=kBe()}async startOAuthFlow(e,t){this.authCodeListener=new DBe,this.port=await this.authCodeListener.start();let n=ABe(this.codeVerifier),r=jBe(),i={codeChallenge:n,state:r,port:this.port,loginWithClaudeAi:t?.loginWithClaudeAi,inferenceOnly:t?.inferenceOnly,orgUUID:t?.orgUUID,loginHint:t?.loginHint,loginMethod:t?.loginMethod},a=Eae({...i,isManual:!0}),o=Eae({...i,isManual:!1}),s=await this.waitForAuthorizationCode(r,async()=>{t?.skipBrowserOpen?await e(a,o):(await e(a),await eu(o))}),c=this.authCodeListener?.hasPendingResponse()??!1;G(`tengu_oauth_auth_code_received`,{automatic:c});try{let e=await Yae(s,r,this.codeVerifier,this.port,!c,t?.expiresIn),n=await rae(e.access_token);if(c){let t=mae(e.scope);this.authCodeListener?.handleSuccessRedirect(t)}return this.formatTokens(e,n.subscriptionType,n.rateLimitTier,n.rawProfile)}catch(e){throw c&&this.authCodeListener?.handleErrorRedirect(),e}finally{this.authCodeListener?.close()}}async waitForAuthorizationCode(e,t){return new Promise((n,r)=>{this.manualAuthCodeResolver=n,this.authCodeListener?.waitForAuthorization(e,t).then(e=>{this.manualAuthCodeResolver=null,n(e)}).catch(e=>{this.manualAuthCodeResolver=null,r(e)})})}handleManualAuthCodeInput(e){this.manualAuthCodeResolver&&(this.manualAuthCodeResolver(e.authorizationCode),this.manualAuthCodeResolver=null,this.authCodeListener?.close())}formatTokens(e,t,n,r){return{accessToken:e.access_token,refreshToken:e.refresh_token,expiresAt:Date.now()+e.expires_in*1e3,scopes:mae(e.scope),subscriptionType:t,rateLimitTier:n,profile:r,tokenAccount:e.account?{uuid:e.account.uuid,emailAddress:e.account.email_address,organizationUuid:e.organization?.uuid}:void 0}}cleanup(){this.authCodeListener?.close(),this.manualAuthCodeResolver=null}}}));function NBe(){return Y(_(),`local`)}function PBe(){return Y(NBe(),`claude`)}function FBe(){return(process.argv[1]||``).includes(`/.claude/local/node_modules/`)}async function IBe(){try{return await cd(Y(NBe(),`node_modules`,`.bin`,`claude`)),!0}catch{return!1}}function KS(){let e=process.env.SHELL||``;return e.includes(`zsh`)?`zsh`:e.includes(`bash`)?`bash`:e.includes(`fish`)?`fish`:`unknown`}var qS=n((()=>{xn(),y(),ka(),es(),Fa(),Ao(),Va()}));function JS(e){let t=e?.homedir??Su();return{zsh:Y((e?.env??process.env).ZDOTDIR||t,`.zshrc`),bash:Y(t,`.bashrc`),fish:Y(t,`.config/fish/config.fish`)}}function LBe(e){let t=!1;return{filtered:e.filter(e=>{if(YS.test(e)){let n=e.match(/alias\s+claude\s*=\s*["']([^"']+)["']/);if(n||(n=e.match(/alias\s+claude\s*=\s*([^#\n]+)/)),n&&n[1]&&n[1].trim()===PBe())return t=!0,!1}return!0}),hadAlias:t}}async function RBe(e){try{return(await hd(e,{encoding:`utf8`})).split(`
|
|
818
|
+
`),await vS(1))}}var wS,TS,ES,Oze=n((()=>{ke(),l(),Ua(),Wi(),W(),CS(),To(),lse(),io(),xn(),fa(),Ao(),ki(),wS=1440*60*1e3,TS=c(async()=>{if(Do())return{success:!1};try{return{success:!0,data:(await jr(()=>{let e=ii();if(e.error)throw Error(`Failed to get auth headers: ${e.error}`);return Oe.get(`${ro().BASE_API_URL}/api/oauth/account/settings`,{headers:{...e.headers,"User-Agent":Cn()}})})).data}}catch(e){return q(e),TS.cache.clear?.(),{success:!1}}}),ES=c(async()=>{if(Do())return{success:!1};try{let{grove_enabled:e,domain_excluded:t,notice_is_grace_period:n,notice_reminder_frequency:r}=(await jr(()=>{let e=ii();if(e.error)throw Error(`Failed to get auth headers: ${e.error}`);return Oe.get(`${ro().BASE_API_URL}/api/claude_code_grove`,{headers:{...e.headers,"User-Agent":mie()},timeout:3e3})})).data;return{success:!0,data:{grove_enabled:e,domain_excluded:t??!1,notice_is_grace_period:n??!0,notice_reminder_frequency:r}}}catch(e){return U(`Failed to fetch Grove notice config: ${e}`),{success:!1}}})}));function kze(){return Promise.resolve({ok:!0})}function Aze(){return!0}var jze=n((()=>{}));function Mze(){OS=void 0,xoe()}function DS(){if(OS!==void 0)return OS;if(ar()!==`firstParty`||!Wn()||process.env.CLAUDE_CODE_ENTRYPOINT===`local-agent`)return OS=li(!1);let e=Xn();if(e?.accessToken&&e.subscriptionType===null||e?.accessToken&&e.scopes?.includes(`user:inference`)&&(e.subscriptionType===`enterprise`||e.subscriptionType===`team`))return OS=li(!0);try{let{key:e}=Un({skipRetrievingKeyFromApiKeyHelper:!0});if(e)return OS=li(!0)}catch{}return OS=li(!1)}var OS,Nze=n((()=>{io(),Wi(),Pn(),Lae()})),Pze,Fze=n((()=>{it(),Fs(),Pze=J(()=>L({uuid:F(),checksum:F(),settings:Fe(F(),ze())}))}));function Ize(){NS||DS()&&(NS=new Promise(e=>{PS=e,setTimeout(()=>{PS&&(U(`Remote settings: Loading promise timed out, resolving anyway`),PS(),PS=null)},$ze)}))}function Lze(){return`${ro().BASE_API_URL}/api/claude_code/settings`}function kS(e){if(Array.isArray(e))return e.map(kS);if(typeof e==`object`&&e){let t={};for(let n of Object.keys(e).sort())t[n]=kS(e[n]);return t}return e}function Rze(e){let t=V(kS(e));return`sha256:${id(`sha256`).update(t).digest(`hex`)}`}function zze(){return DS()}async function Bze(){NS&&await NS}function Vze(){try{let{key:e}=Un({skipRetrievingKeyFromApiKeyHelper:!0});if(e)return{headers:{"x-api-key":e}}}catch{}let e=Xn();return e?.accessToken?{headers:{Authorization:`Bearer ${e.accessToken}`,"anthropic-beta":Ese}}:{headers:{},error:`No authentication available`}}async function Hze(e){let t=null;for(let n=1;n<=jS+1;n++){if(t=await Uze(e),t.success||t.skipRetry||n>jS)return t;let r=s3(n);U(`Remote settings: Retry ${n}/${jS} after ${r}ms`),await Hs(r)}return t}async function Uze(e){try{await gr();let t=Vze();if(t.error)return{success:!1,error:`Authentication required for remote settings`,skipRetry:!0};let n=Lze(),r={...t.headers,"User-Agent":Cn()};e&&(r[`If-None-Match`]=`"${e}"`);let i=await Oe.get(n,{headers:r,timeout:Zze,validateStatus:e=>e===200||e===204||e===304||e===404});if(i.status===304)return U(`Remote settings: Using cached settings (304)`),{success:!0,settings:null,checksum:e};if(i.status===204||i.status===404)return U(`Remote settings: No settings found (${i.status})`),{success:!0,settings:{},checksum:void 0};let a=Pze().safeParse(i.data);if(!a.success)return U(`Remote settings: Invalid response format - ${a.error.message}`),{success:!1,error:`Invalid remote settings format`};let o=Foe().safeParse(a.data.settings);return o.success?(U(`Remote settings: Fetched successfully`),{success:!0,settings:o.data,checksum:a.data.checksum}):(U(`Remote settings: Settings validation failed - ${o.error.message}`),{success:!1,error:`Invalid settings structure`})}catch(e){let{kind:t,status:n,message:r}=Zoe(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 Wze(e){try{let t=ai(),n=await md(t,`w`,384);try{await n.writeFile(V(e,null,2),{encoding:`utf-8`}),await n.datasync()}finally{await n.close()}U(`Remote settings: Saved to ${t}`)}catch(e){U(`Remote settings: Failed to save - ${e instanceof Error?e.message:`unknown error`}`)}}async function Gze(){Xze(),Mze(),NS=null,PS=null;try{await Cd(ai())}catch{}}async function AS(){if(!DS())return null;let e=ta(),t=e?Rze(e):void 0;try{let n=await Hze(t);if(!n.success)return e?(U(`Remote settings: Using stale cache after fetch failure`),hi(e),e):null;if(n.settings===null&&e)return U(`Remote settings: Cache still valid (304 Not Modified)`),hi(e),e;let r=n.settings||{};if(Object.keys(r).length>0)return Aze(await kze(e,r))?(hi(r),await Wze(r),U(`Remote settings: Applied new settings successfully`),r):(U(`Remote settings: User rejected new settings, using cached settings`),e);hi(r);try{await Cd(ai()),U(`Remote settings: Deleted cached file (404 response)`)}catch(e){Ea(e)!==`ENOENT`&&U(`Remote settings: Failed to delete cached file - ${e instanceof Error?e.message:`unknown error`}`)}return r}catch{return e?(U(`Remote settings: Using stale cache after error`),hi(e),e):null}}async function Kze(){DS()&&!NS&&(NS=new Promise(e=>{PS=e})),ta()&&PS&&(PS(),PS=null);try{let e=await AS();DS()&&Yze(),e!==null&&lm.notifyChange(`policySettings`)}finally{PS&&(PS(),PS=null)}}async function qze(){if(await Gze(),!DS()){lm.notifyChange(`policySettings`);return}await AS(),U(`Remote settings: Refreshed after auth change`),lm.notifyChange(`policySettings`)}async function Jze(){if(!DS())return;let e=ta(),t=e?V(e):null;try{await AS();let e=ta();(e?V(e):null)!==t&&(U(`Remote settings: Changed during background poll`),lm.notifyChange(`policySettings`))}catch{}}function Yze(){MS===null&&DS()&&(MS=setInterval(()=>{Jze()},Qze),MS.unref(),ja(async()=>Xze()))}function Xze(){MS!==null&&(clearInterval(MS),MS=null)}var Zze,jS,Qze,MS,NS,PS,$ze,eBe=n((()=>{ke(),io(),Wi(),Ma(),W(),ka(),um(),Dr(),Us(),Va(),ki(),_3(),jze(),Nze(),Lae(),Fze(),Zze=1e4,jS=5,Qze=3600*1e3,MS=null,NS=null,PS=null,$ze=3e4}));function FS(){return Y(tBe(),yBe)}function tBe(){return(process.env.CLAUDE_CONFIG_DIR??Y(Su(),`.claude`)).normalize(`NFC`)}function nBe(){return Y(process.env.CODEX_HOME??Y(process.env.HOME??``,`.codex`),`auth.json`)}function IS(e){return typeof e==`string`&&e.length>0?e:void 0}function rBe(e){try{let t=JSON.parse(e);return t&&typeof t==`object`?t:null}catch{return null}}function iBe(e){let[,t]=e.split(`.`);if(!t)return null;try{let e=t.replace(/-/g,`+`).replace(/_/g,`/`),n=e.padEnd(e.length+(4-e.length%4)%4,`=`);return rBe(Buffer.from(n,`base64`).toString(`utf8`))}catch{return null}}function aBe(e){let t=iBe(e),n=t?.[`https://api.openai.com/auth`];return n&&typeof n==`object`?n:t??{}}function oBe(e){let t=iBe(e)?.exp;return typeof t==`number`?t*1e3:null}function LS(e){if(e.accountId)return e.accountId;for(let t of[e.idToken,e.accessToken]){if(!t)continue;let e=aBe(t),n=IS(e.chatgpt_account_id)??IS(e.chatgpt_account_user_id)??IS(e.account_id);if(n)return n}}async function sBe(e){try{let t=await hd(e,`utf8`),n=JSON.parse(t),r=n.tokens,i=r?.id_token,a=r?.access_token,o=r?.refresh_token;return!i||!a||!o?null:{idToken:i,accessToken:a,refreshToken:o,accountId:LS({idToken:i,accessToken:a,accountId:r.account_id}),lastRefresh:n.last_refresh}}catch{return null}}async function cBe(e){let t=FS();await pd(tBe(),{recursive:!0});let n={auth_mode:`chatgpt`,tokens:{id_token:e.idToken,access_token:e.accessToken,refresh_token:e.refreshToken,account_id:LS(e)},last_refresh:new Date().toISOString()};await wd(t,`${JSON.stringify(n,null,2)}\n`,{mode:384}),await ud(t,384).catch(()=>void 0)}async function lBe(e,t){let n=await fetch(e,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)});if(!n.ok)throw Error(`ChatGPT auth request failed (${n.status})`);return await n.json()}async function uBe(e,t){let n=await fetch(e,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:t});if(!n.ok){let e=await n.text().catch(()=>``);throw Error(`ChatGPT token request failed (${n.status})${e?`: ${e}`:``}`)}return await n.json()}async function dBe(){let e=await lBe(`${RS}/api/accounts/deviceauth/usercode`,{client_id:zS}),t=e.user_code??e.usercode;if(!e.device_auth_id||!t)throw Error(`ChatGPT auth response did not include a device code`);let n=typeof e.interval==`number`?e.interval:Number.parseInt(e.interval??`5`,10);return{verificationUrl:`${RS}/codex/device`,userCode:t,deviceAuthId:e.device_auth_id,intervalSeconds:Number.isFinite(n)&&n>0?n:5}}async function fBe(e,t){let n=Date.now();for(;Date.now()-n<900*1e3;){if(t?.aborted)throw Error(`ChatGPT login cancelled`);let n=await fetch(`${RS}/api/accounts/deviceauth/token`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({device_auth_id:e.deviceAuthId,user_code:e.userCode}),signal:t});if(n.ok){let e=await n.json();return{authorizationCode:e.authorization_code,codeVerifier:e.code_verifier}}if(n.status!==403&&n.status!==404)throw Error(`ChatGPT device auth failed (${n.status})`);await new Promise(t=>setTimeout(t,e.intervalSeconds*1e3))}throw Error(`ChatGPT device auth timed out after 15 minutes`)}async function pBe(e){let t=new URLSearchParams({grant_type:`authorization_code`,code:e.authorizationCode,redirect_uri:`${RS}/deviceauth/callback`,client_id:zS,code_verifier:e.codeVerifier}),n=await uBe(`${RS}/oauth/token`,t);return{idToken:n.id_token,accessToken:n.access_token,refreshToken:n.refresh_token,accountId:LS({idToken:n.id_token,accessToken:n.access_token})}}async function mBe(e){let t=new URLSearchParams({grant_type:`refresh_token`,refresh_token:e.refreshToken,client_id:zS,scope:`openid profile email offline_access api.connectors.read api.connectors.invoke`}),n=await uBe(`${RS}/oauth/token`,t);return{idToken:n.id_token,accessToken:n.access_token,refreshToken:n.refresh_token??e.refreshToken,accountId:LS({idToken:n.id_token,accessToken:n.access_token,accountId:e.accountId})}}async function hBe(e,t){let n=await pBe(await fBe(e,t));return await cBe(n),n}function gBe(){return process.env.OPENAI_AUTH_MODE===`chatgpt`}async function _Be(){await Cd(FS()).catch(e=>{if(e.code!==`ENOENT`)throw e})}async function vBe(){let e=await sBe(FS());if(e||(e=await sBe(nBe()),e&&U(`[OpenAI] Using ChatGPT auth from Codex auth.json`)),!e)throw Error(`ChatGPT account is not logged in. Run /login and select ChatGPT account with subscription.`);let t=oBe(e.accessToken);return t!==null&&t<=Date.now()+bBe&&(e=await mBe(e),await cBe(e)),{accessToken:e.accessToken,accountId:e.accountId??LS(e)}}var RS,zS,yBe,bBe,BS=n((()=>{W(),RS=`https://auth.openai.com`,zS=`app_EMoamEEZ73f0CkXaXp7hrann`,yBe=`openai-chatgpt-auth.json`,bBe=300*1e3}));async function VS({clearOnboarding:e=!1}){let{flushTelemetry:t}=await import(`./instrumentation-BXJk0mxI.js`);await t(),await Qne(),await _Be(),xBe(),Tn().delete(),await HS(),fr(t=>{let n={...t};return e&&(n.hasCompletedOnboarding=!1,n.subscriptionNoticeCount=0,n.hasAvailableSubscription=!1,n.customApiKeyResponses?.approved&&(n.customApiKeyResponses={...n.customApiKeyResponses,approved:[]})),n.oauthAccount=void 0,n})}function xBe(){delete process.env.OPENAI_AUTH_MODE;let e=_r(`userSettings`)??{},t=e.env??{},n=!!(t.OPENAI_API_KEY??process.env.OPENAI_API_KEY)&&!!(t.OPENAI_BASE_URL??process.env.OPENAI_BASE_URL);Ni(`userSettings`,{...e.modelType===`openai`&&!n?{modelType:void 0}:{},env:{OPENAI_AUTH_MODE:void 0}})}async function HS(){Xn.cache?.clear?.(),afe(),Mie(),nie(),Hoe(),hie(),ES.cache?.clear?.(),TS.cache?.clear?.(),await Gze(),await w3()}async function SBe(){await VS({clearOnboarding:!0});let e=(0,CBe.jsx)(z,{children:`Successfully logged out.`});return setTimeout(()=>{_S(0,`logout`)},200),e}var CBe,wBe=n((()=>{R(),ife(),Tt(),wr(),Oze(),M3(),eBe(),BS(),Wi(),zr(),xn(),CS(),Fr(),Gi(),Ore(),Aoe(),CBe=jt()}));async function TBe(){try{if(Tr().claudeCodeFirstTokenDate!==void 0)return;let e=ii();if(e.error){q(Error(`Failed to get auth headers: ${e.error}`));return}let t=`${ro().BASE_API_URL}/api/organization/claude_code_first_token_date`,n=(await Oe.get(t,{headers:{...e.headers,"User-Agent":Cn()},timeout:1e4})).data?.first_token_date??null;if(n!==null){let e=new Date(n).getTime();if(isNaN(e)){q(Error(`Received invalid first_token_date from API: ${n}`));return}}fr(e=>({...e,claudeCodeFirstTokenDate:n}))}catch(e){q(e)}}var EBe=n((()=>{ke(),io(),xn(),fa(),Ao(),ki()})),DBe,OBe=n((()=>{Ua(),io(),Ao(),aa(),O(),DBe=class{constructor(e=`/callback`){k(this,`localServer`,void 0),k(this,`port`,0),k(this,`promiseResolver`,null),k(this,`promiseRejecter`,null),k(this,`expectedState`,null),k(this,`pendingResponse`,null),k(this,`callbackPath`,void 0),this.localServer=Od(),this.callbackPath=e}async start(e){return new Promise((t,n)=>{this.localServer.once(`error`,e=>{n(Error(`Failed to start OAuth callback server: ${e.message}`))}),this.localServer.listen(e??0,`localhost`,()=>{this.port=this.localServer.address().port,t(this.port)})})}getPort(){return this.port}hasPendingResponse(){return this.pendingResponse!==null}async waitForAuthorization(e,t){return new Promise((n,r)=>{this.promiseResolver=n,this.promiseRejecter=r,this.expectedState=e,this.startLocalListener(t)})}handleSuccessRedirect(e,t){if(!this.pendingResponse)return;if(t){t(this.pendingResponse,e),this.pendingResponse=null,G(`tengu_oauth_automatic_redirect`,{custom_handler:!0});return}let n=bi(e)?ro().CLAUDEAI_SUCCESS_URL:ro().CONSOLE_SUCCESS_URL;this.pendingResponse.writeHead(302,{Location:n}),this.pendingResponse.end(),this.pendingResponse=null,G(`tengu_oauth_automatic_redirect`,{})}handleErrorRedirect(){if(!this.pendingResponse)return;let e=ro().CLAUDEAI_SUCCESS_URL;this.pendingResponse.writeHead(302,{Location:e}),this.pendingResponse.end(),this.pendingResponse=null,G(`tengu_oauth_automatic_redirect_error`,{})}startLocalListener(e){this.localServer.on(`request`,this.handleRedirect.bind(this)),this.localServer.on(`error`,this.handleError.bind(this)),e()}handleRedirect(e,t){let n=new URL(e.url||``,`http://${e.headers.host||`localhost`}`);if(n.pathname!==this.callbackPath){t.writeHead(404),t.end();return}let r=n.searchParams.get(`code`)??void 0,i=n.searchParams.get(`state`)??void 0;this.validateAndRespond(r,i,t)}validateAndRespond(e,t,n){if(!e){n.writeHead(400),n.end(`Authorization code not found`),this.reject(Error(`No authorization code received`));return}if(t!==this.expectedState){n.writeHead(400),n.end(`Invalid state parameter`),this.reject(Error(`Invalid state parameter`));return}this.pendingResponse=n,this.resolve(e)}handleError(e){q(e),this.close(),this.reject(e)}resolve(e){this.promiseResolver&&(this.promiseResolver(e),this.promiseResolver=null,this.promiseRejecter=null)}reject(e){this.promiseRejecter&&(this.promiseRejecter(e),this.promiseResolver=null,this.promiseRejecter=null)}close(){this.pendingResponse&&this.handleErrorRedirect(),this.localServer&&(this.localServer.removeAllListeners(),this.localServer.close())}}}));function US(e){return e.toString(`base64`).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=/g,``)}function kBe(){return US(ad(32))}function ABe(e){let t=id(`sha256`);return t.update(e),US(t.digest())}function jBe(){return US(ad(32))}var MBe=n((()=>{})),WS,GS=n((()=>{Ua(),tu(),OBe(),aa(),MBe(),O(),WS=class{constructor(){k(this,`codeVerifier`,void 0),k(this,`authCodeListener`,null),k(this,`port`,null),k(this,`manualAuthCodeResolver`,null),this.codeVerifier=kBe()}async startOAuthFlow(e,t){this.authCodeListener=new DBe,this.port=await this.authCodeListener.start();let n=ABe(this.codeVerifier),r=jBe(),i={codeChallenge:n,state:r,port:this.port,loginWithClaudeAi:t?.loginWithClaudeAi,inferenceOnly:t?.inferenceOnly,orgUUID:t?.orgUUID,loginHint:t?.loginHint,loginMethod:t?.loginMethod},a=Eae({...i,isManual:!0}),o=Eae({...i,isManual:!1}),s=await this.waitForAuthorizationCode(r,async()=>{t?.skipBrowserOpen?await e(a,o):(await e(a),await eu(o))}),c=this.authCodeListener?.hasPendingResponse()??!1;G(`tengu_oauth_auth_code_received`,{automatic:c});try{let e=await Yae(s,r,this.codeVerifier,this.port,!c,t?.expiresIn),n=await rae(e.access_token);if(c){let t=mae(e.scope);this.authCodeListener?.handleSuccessRedirect(t)}return this.formatTokens(e,n.subscriptionType,n.rateLimitTier,n.rawProfile)}catch(e){throw c&&this.authCodeListener?.handleErrorRedirect(),e}finally{this.authCodeListener?.close()}}async waitForAuthorizationCode(e,t){return new Promise((n,r)=>{this.manualAuthCodeResolver=n,this.authCodeListener?.waitForAuthorization(e,t).then(e=>{this.manualAuthCodeResolver=null,n(e)}).catch(e=>{this.manualAuthCodeResolver=null,r(e)})})}handleManualAuthCodeInput(e){this.manualAuthCodeResolver&&(this.manualAuthCodeResolver(e.authorizationCode),this.manualAuthCodeResolver=null,this.authCodeListener?.close())}formatTokens(e,t,n,r){return{accessToken:e.access_token,refreshToken:e.refresh_token,expiresAt:Date.now()+e.expires_in*1e3,scopes:mae(e.scope),subscriptionType:t,rateLimitTier:n,profile:r,tokenAccount:e.account?{uuid:e.account.uuid,emailAddress:e.account.email_address,organizationUuid:e.organization?.uuid}:void 0}}cleanup(){this.authCodeListener?.close(),this.manualAuthCodeResolver=null}}}));function NBe(){return Y(_(),`local`)}function PBe(){return Y(NBe(),`claude`)}function FBe(){return(process.argv[1]||``).includes(`/.claude/local/node_modules/`)}async function IBe(){try{return await cd(Y(NBe(),`node_modules`,`.bin`,`claude`)),!0}catch{return!1}}function KS(){let e=process.env.SHELL||``;return e.includes(`zsh`)?`zsh`:e.includes(`bash`)?`bash`:e.includes(`fish`)?`fish`:`unknown`}var qS=n((()=>{xn(),y(),ka(),es(),Fa(),Ao(),Va()}));function JS(e){let t=e?.homedir??Su();return{zsh:Y((e?.env??process.env).ZDOTDIR||t,`.zshrc`),bash:Y(t,`.bashrc`),fish:Y(t,`.config/fish/config.fish`)}}function LBe(e){let t=!1;return{filtered:e.filter(e=>{if(YS.test(e)){let n=e.match(/alias\s+claude\s*=\s*["']([^"']+)["']/);if(n||(n=e.match(/alias\s+claude\s*=\s*([^#\n]+)/)),n&&n[1]&&n[1].trim()===PBe())return t=!0,!1}return!0}),hadAlias:t}}async function RBe(e){try{return(await hd(e,{encoding:`utf8`})).split(`
|
|
819
819
|
`)}catch(e){if(Aa(e))return null;throw e}}async function zBe(e,t){let n=await md(e,`w`);try{await n.writeFile(t.join(`
|
|
820
|
-
`),{encoding:`utf8`}),await n.datasync()}finally{await n.close()}}async function BBe(e){let t=JS(e);for(let e of Object.values(t)){let t=await RBe(e);if(t){for(let e of t)if(YS.test(e)){let t=e.match(/alias\s+claude=["']?([^"'\s]+)/);if(t&&t[1])return t[1]}}}return null}async function VBe(e){let t=await BBe(e);if(!t)return null;let n=e?.homedir??Su(),r=t.startsWith(`~`)?t.replace(`~`,n):t;try{let e=await xd(r);if(e.isFile()||e.isSymbolicLink())return t}catch{}return null}var YS,XS=n((()=>{ka(),qS(),YS=/^\s*alias\s+claude\s*=/}));async function HBe(){let e=await UBe();return process.env.USER_TYPE===`ant`?e.ant||void 0:e.external||void 0}async function UBe(){try{return await yi(`tengu_max_version_config`,{})}catch(e){return q(e),{}}}function WBe(e){let t=Qn()?.minimumVersion;if(!t)return!1;let n=!lfe(e,t);return n&&U(`Skipping update to ${e} - below minimumVersion ${t}`),n}async function GBe(){let e=po.isRunningWithBun(),t=null;return t=e?await $o(`bun`,[`pm`,`bin`,`-g`],{cwd:Su()}):await $o(`npm`,[`-g`,`config`,`get`,`prefix`],{cwd:Su()}),t.code===0?t.stdout.trim():(q(Error(`Failed to check ${e?`bun`:`npm`} permissions`)),null)}async function KBe(){try{let e=await GBe();if(!e)return{hasPermissions:!1,npmPrefix:null};try{return await cd(e,Vu.W_OK),{hasPermissions:!0,npmPrefix:e}}catch{return q(new ZBe(`Insufficient permissions for global npm install.`)),{hasPermissions:!1,npmPrefix:e}}}catch(e){return q(e),{hasPermissions:!1,npmPrefix:null}}}async function qBe(){let e=await $o(`npm`,[`view`,``,`dist-tags`,`--json`,`--prefer-online`],{abortSignal:AbortSignal.timeout(5e3),cwd:Su()});if(e.code!==0)return U(`npm view dist-tags failed with code ${e.code}`),{latest:null,stable:null};try{let t=Da(e.stdout.trim());return{latest:typeof t.latest==`string`?t.latest:null,stable:typeof t.stable==`string`?t.stable:null}}catch(e){return U(`Failed to parse dist-tags: ${e}`),{latest:null,stable:null}}}async function JBe(e){try{return(await Oe.get(`${XBe}/${e}`,{timeout:5e3,responseType:`text`})).data.trim()}catch(t){return U(`Failed to fetch ${e} from GCS: ${t}`),null}}async function YBe(){let[e,t]=await Promise.all([JBe(`latest`),JBe(`stable`)]);return{latest:e,stable:t}}var XBe,ZBe,ZS=n((()=>{ke(),wr(),xn(),W(),fo(),y(),ka(),es(),Fa(),CS(),Ao(),nu(),Gi(),XS(),Va(),XBe=`https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases`,ZBe=class extends Yoe{}}));function QS(e,t){return t.includes(e.id)||e.idLike.some(e=>t.includes(e))}function QBe(){let e=process.execPath||process.argv[0]||``;return/[/\\]mise[/\\]installs[/\\]/i.test(e)?(U(`Detected mise installation: ${e}`),!0):!1}function $Be(){let e=process.execPath||process.argv[0]||``;return/[/\\]\.?asdf[/\\]installs[/\\]/i.test(e)?(U(`Detected asdf installation: ${e}`),!0):!1}function $S(){let e=No();if(e!==`macos`&&e!==`linux`&&e!==`wsl`)return!1;let t=process.execPath||process.argv[0]||``;return t.includes(`/Caskroom/`)?(U(`Detected Homebrew cask installation: ${t}`),!0):!1}function eVe(){if(No()!==`windows`)return!1;let e=process.execPath||process.argv[0]||``;for(let t of[/Microsoft[/\\]WinGet[/\\]Packages/i,/Microsoft[/\\]WinGet[/\\]Links/i])if(t.test(e))return U(`Detected winget installation: ${e}`),!0;return!1}var eC,tC,nC,rC,iC,tVe,nVe=n((()=>{l(),W(),es(),Po(),eC=c(async()=>{try{let e=await hd(`/etc/os-release`,`utf8`),t=e.match(/^ID=["']?(\S+?)["']?\s*$/m),n=e.match(/^ID_LIKE=["']?(.+?)["']?\s*$/m);return{id:t?.[1]??``,idLike:n?.[1]?.split(` `)??[]}}catch{return null}}),tC=c(async()=>{if(No()!==`linux`)return!1;let e=await eC();if(e&&!QS(e,[`arch`]))return!1;let t=await ts(`pacman`,[`-Qo`,process.execPath||process.argv[0]||``],{timeout:5e3,useCwd:!1});return t.code===0&&t.stdout?(U(`Detected pacman installation: ${t.stdout.trim()}`),!0):!1}),nC=c(async()=>{if(No()!==`linux`)return!1;let e=await eC();if(e&&!QS(e,[`debian`]))return!1;let t=await ts(`dpkg`,[`-S`,process.execPath||process.argv[0]||``],{timeout:5e3,useCwd:!1});return t.code===0&&t.stdout?(U(`Detected deb installation: ${t.stdout.trim()}`),!0):!1}),rC=c(async()=>{if(No()!==`linux`)return!1;let e=await eC();if(e&&!QS(e,[`fedora`,`rhel`,`suse`]))return!1;let t=await ts(`rpm`,[`-qf`,process.execPath||process.argv[0]||``],{timeout:5e3,useCwd:!1});return t.code===0&&t.stdout?(U(`Detected rpm installation: ${t.stdout.trim()}`),!0):!1}),iC=c(async()=>{if(No()!==`linux`)return!1;let e=await eC();if(e&&!QS(e,[`alpine`]))return!1;let t=await ts(`apk`,[`info`,`--who-owns`,process.execPath||process.argv[0]||``],{timeout:5e3,useCwd:!1});return t.code===0&&t.stdout?(U(`Detected apk installation: ${t.stdout.trim()}`),!0):!1}),tVe=c(async()=>$S()?`homebrew`:eVe()?`winget`:QBe()?`mise`:$Be()?`asdf`:await tC()?`pacman`:await iC()?`apk`:await nC()?`deb`:await rC()?`rpm`:`unknown`)}));function rVe(){let e=process.argv[1]||``,t=process.execPath||process.argv[0]||``;return No()===`windows`&&(e=e.split(Fu.sep).join(ju.sep),t=t.split(Fu.sep).join(ju.sep)),[e,t]}async function aC(){let[e]=rVe();if(ao())return $S()||eVe()||QBe()||$Be()||await tC()||await nC()||await rC()||await iC()?`package-manager`:`native`;if(FBe())return`npm-local`;if([`/usr/local/lib/node_modules`,`/usr/lib/node_modules`,`/opt/homebrew/lib/node_modules`,`/opt/homebrew/bin`,`/usr/local/bin`,`/.nvm/versions/node/`].some(t=>e.includes(t))||e.includes(`/npm/`)||e.includes(`/nvm/`))return`npm-global`;let t=await co(`npm config get prefix`,{shell:!0,reject:!1}),n=t.exitCode===0?t.stdout.trim():null;return n&&e.startsWith(n)?`npm-global`:`unknown`}async function iVe(){if(ao()){try{return await vd(process.execPath)}catch{}try{let e=await lo(`claude`);if(e)return e}catch{}try{return await za().stat(Y(Su(),`.local/bin/claude`)),Y(Su(),`.local/bin/claude`)}catch{}return`native`}try{return process.argv[0]||`unknown`}catch{return`unknown`}}function aVe(){try{return ao()?process.execPath||`unknown`:process.argv[1]||`unknown`}catch{return`unknown`}}async function oVe(){let e=za(),t=[],n=Y(Su(),`.claude`,`local`);await IBe()&&t.push({type:`npm-local`,path:n});let r=[`@anthropic-ai/claude-code`],i=await ts(`npm`,[`-g`,`config`,`get`,`prefix`]);if(i.code===0&&i.stdout){let n=i.stdout.trim(),a=No()===`windows`,o=a?Y(n,`claude`):Y(n,`bin`,`claude`),s=!1;try{await e.stat(o),s=!0}catch{}if(s){let e=!1;try{(await vd(o)).includes(`/Caskroom/`)&&(e=$S())}catch{}e||t.push({type:`npm-global`,path:o})}else for(let i of r){let r=a?Y(n,`node_modules`,i):Y(n,`lib`,`node_modules`,i);try{await e.stat(r),t.push({type:`npm-global-orphan`,path:r})}catch{}}}let a=Y(Su(),`.local`,`bin`,`claude`);try{await e.stat(a),t.push({type:`native`,path:a})}catch{}if(Tr().installMethod===`native`){let n=Y(Su(),`.local`,`share`,`claude`);try{await e.stat(n),t.some(e=>e.type===`native`)||t.push({type:`native`,path:n})}catch{}}return t}async function sVe(e){let t=[];try{let e=Da(await hd(Y(wn(),`managed-settings.json`),`utf-8`)),n=e&&typeof e==`object`?e.strictPluginOnlyCustomization:void 0;if(n!==void 0&&typeof n!=`boolean`)if(!Array.isArray(n))t.push({issue:`managed-settings.json: strictPluginOnlyCustomization has an invalid value (expected true or an array, got ${typeof n})`,fix:`The field is silently ignored (schema .catch rescues it). Set it to true, or an array of: ${tae.join(`, `)}.`});else{let e=n.filter(e=>typeof e==`string`&&!tae.includes(e));e.length>0&&t.push({issue:`managed-settings.json: strictPluginOnlyCustomization has ${e.length} value(s) this client doesn't recognize: ${e.map(String).join(`, `)}`,fix:`These are silently ignored (forwards-compat). Known surfaces for this version: ${tae.join(`, `)}. Either remove them, or this client is older than the managed-settings intended.`})}}catch{}let n=Tr();if(e===`development`)return t;if(e===`native`){let e=(process.env.PATH||``).split(Ope),n=Y(Su(),`.local`,`bin`),r=n;if(No()===`windows`&&(r=n.split(Fu.sep).join(ju.sep)),!e.some(e=>{let t=e;No()===`windows`&&(t=e.split(Fu.sep).join(ju.sep));let n=t.replace(/\/+$/,``),i=e.replace(/[/\\]+$/,``);return n===r||i===`~/.local/bin`||i===`$HOME/.local/bin`}))if(No()===`windows`){let e=n.split(ju.sep).join(Fu.sep);t.push({issue:`Native installation exists but ${e} is not in your PATH`,fix:`Add it by opening: System Properties → Environment Variables → Edit User PATH → New → Add the path above. Then restart your terminal.`})}else{let e=KS(),n=JS()[e],r=n?n.replace(Su(),`~`):`your shell config file`;t.push({issue:`Native installation exists but ~/.local/bin is not in your PATH`,fix:`Run: echo 'export PATH="$HOME/.local/bin:$PATH"' >> ${r} then open a new terminal or run: source ${r}`})}}x(process.env.DISABLE_INSTALLATION_CHECKS)||(e===`npm-local`&&n.installMethod!==`local`&&t.push({issue:`Running from local installation but config install method is '${n.installMethod}'`,fix:`Consider using native installation: claude install`}),e===`native`&&n.installMethod!==`native`&&t.push({issue:`Running native installation but config install method is '${n.installMethod}'`,fix:`Run claude install to update configuration`})),e===`npm-global`&&await IBe()&&t.push({issue:`Local installation exists but not being used`,fix:`Consider using native installation: claude install`});let r=await BBe(),i=await VBe();return e===`npm-local`&&!await lo(`claude`)&&!i&&(r?t.push({issue:`Local installation not accessible`,fix:`Alias exists but points to invalid target: ${r}. Update alias: alias claude="~/.claude/local/claude"`}):t.push({issue:`Local installation not accessible`,fix:`Create alias: alias claude="~/.claude/local/claude"`})),t}function cVe(){if(No()!==`linux`)return[];let e=[],t=Nm.getLinuxGlobPatternWarnings();if(t.length>0){let n=t.slice(0,3).join(`, `),r=t.length-3,i=r>0?`${n} (${r} more)`:n;e.push({issue:`Glob patterns in sandbox permission rules are not fully supported on Linux`,fix:`Found ${t.length} pattern(s): ${i}. On Linux, glob patterns in Edit/Read rules will be ignored.`})}return e}async function lVe(){let e=await aC(),t=typeof MACRO<`u`?`2.6.10`:`unknown`,n=await iVe(),r=aVe(),i=await oVe(),a=await sVe(e);if(a.push(...cVe()),e===`native`){let e=i.filter(e=>e.type===`npm-global`||e.type===`npm-global-orphan`||e.type===`npm-local`),t=No()===`windows`;for(let n of e)n.type===`npm-global`?a.push({issue:`Leftover npm global installation at ${n.path}`,fix:`Run: npm -g uninstall @anthropic-ai/claude-code`}):n.type===`npm-global-orphan`?a.push({issue:`Orphaned npm global package at ${n.path}`,fix:t?`Run: rmdir /s /q "${n.path}"`:`Run: rm -rf ${n.path}`}):n.type===`npm-local`&&a.push({issue:`Leftover npm local installation at ${n.path}`,fix:t?`Run: rmdir /s /q "${n.path}"`:`Run: rm -rf ${n.path}`})}let o=Tr().installMethod||`not set`,s=null;e===`npm-global`&&(s=(await KBe()).hasPermissions,!s&&!Roe()&&a.push({issue:`Insufficient permissions for auto-updates`,fix:"Do one of: (1) Re-install node without sudo, or (2) Use `claude install` for native installation"}));let c=rye(),l={working:c.working??!0,mode:c.mode,systemPath:c.mode===`system`?c.path:null},u=e===`package-manager`?await tVe():void 0;return{installationType:e,version:t,installationPath:n,invokedBinary:r,configInstallMethod:o,autoUpdates:(()=>{let e=Roe();return e?`disabled (${Toe(e)})`:`enabled`})(),hasUpdatePermissions:s,multipleInstallations:i,warnings:a,packageManager:u,ripgrepStatus:l}}var oC=n((()=>{so(),ZS(),oo(),xn(),Wa(),y(),es(),Fa(),qS(),nVe(),Po(),vm(),Pm(),zn(),Dr(),XS(),Va(),uo()})),uVe,dVe=n((()=>{Je(),uVe=class{constructor(e){this._client=e}async*callToolStream(e,t=Qe,n){let r=this._client,i={...n,task:n?.task??(r.isToolTask(e.name)?{}:void 0)},a=r.requestStream({method:`tools/call`,params:e},t,i),o=r.getToolOutputValidator(e.name);for await(let t of a){if(t.type===`result`&&o){let n=t.result;if(!n.structuredContent&&!n.isError){yield{type:`error`,error:new Ye(Xe.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`)};return}if(n.structuredContent)try{let e=o(n.structuredContent);if(!e.valid){yield{type:`error`,error:new Ye(Xe.InvalidParams,`Structured content does not match the tool's output schema: ${e.errorMessage}`)};return}}catch(e){if(e instanceof Ye){yield{type:`error`,error:e};return}yield{type:`error`,error:new Ye(Xe.InvalidParams,`Failed to validate structured content: ${e instanceof Error?e.message:String(e)}`)};return}}yield t}}async getTask(e,t){return this._client.getTask({taskId:e},t)}async getTaskResult(e,t,n){return this._client.getTaskResult({taskId:e},t,n)}async listTasks(e,t){return this._client.listTasks(e?{cursor:e}:void 0,t)}async cancelTask(e,t){return this._client.cancelTask({taskId:e},t)}requestStream(e,t,n){return this._client.requestStream(e,t,n)}}}));function sC(e,t){if(!(!e||typeof t!=`object`||!t)){if(e.type===`object`&&e.properties&&typeof e.properties==`object`){let n=t,r=e.properties;for(let e of Object.keys(r)){let t=r[e];n[e]===void 0&&Object.prototype.hasOwnProperty.call(t,`default`)&&(n[e]=t.default),n[e]!==void 0&&sC(t,n[e])}}if(Array.isArray(e.anyOf))for(let n of e.anyOf)typeof n!=`boolean`&&sC(n,t);if(Array.isArray(e.oneOf))for(let n of e.oneOf)typeof n!=`boolean`&&sC(n,t)}}function fVe(e){if(!e)return{supportsFormMode:!1,supportsUrlMode:!1};let t=e.form!==void 0,n=e.url!==void 0;return{supportsFormMode:t||!t&&!n,supportsUrlMode:n}}var cC,pVe=n((()=>{Dee(),Je(),Mee(),see(),dVe(),yee(),cC=class extends xee{constructor(e,t){super(t),this._clientInfo=e,this._cachedToolOutputValidators=new Map,this._cachedKnownTaskTools=new Set,this._cachedRequiredTaskTools=new Set,this._listChangedDebounceTimers=new Map,this._capabilities=t?.capabilities??{},this._jsonSchemaValidator=t?.jsonSchemaValidator??new kee,t?.listChanged&&(this._pendingListChangedConfig=t.listChanged)}_setupListChangedHandlers(e){e.tools&&this._serverCapabilities?.tools?.listChanged&&this._setupListChangedHandler(`tools`,Iee,e.tools,async()=>(await this.listTools()).tools),e.prompts&&this._serverCapabilities?.prompts?.listChanged&&this._setupListChangedHandler(`prompts`,oee,e.prompts,async()=>(await this.listPrompts()).prompts),e.resources&&this._serverCapabilities?.resources?.listChanged&&this._setupListChangedHandler(`resources`,dee,e.resources,async()=>(await this.listResources()).resources)}get experimental(){return this._experimental||(this._experimental={tasks:new uVe(this)}),this._experimental}registerCapabilities(e){if(this.transport)throw Error(`Cannot register capabilities after connecting to transport`);this._capabilities=Nee(this._capabilities,e)}setRequestHandler(e,t){let n=_ee(e)?.method;if(!n)throw Error(`Schema is missing a method literal`);let r;if(uee(n)){let e=n;r=e._zod?.def?.value??e.value}else{let e=n;r=e._def?.value??e.value}if(typeof r!=`string`)throw Error(`Schema method literal must be a string`);let i=r;return i===`elicitation/create`?super.setRequestHandler(e,async(e,n)=>{let r=$e(et,e);if(!r.success){let e=r.error instanceof Error?r.error.message:String(r.error);throw new Ye(Xe.InvalidParams,`Invalid elicitation request: ${e}`)}let{params:i}=r.data;i.mode=i.mode??`form`;let{supportsFormMode:a,supportsUrlMode:o}=fVe(this._capabilities.elicitation);if(i.mode===`form`&&!a)throw new Ye(Xe.InvalidParams,`Client does not support form-mode elicitation requests`);if(i.mode===`url`&&!o)throw new Ye(Xe.InvalidParams,`Client does not support URL-mode elicitation requests`);let s=await Promise.resolve(t(e,n));if(i.task){let e=$e(vee,s);if(!e.success){let t=e.error instanceof Error?e.error.message:String(e.error);throw new Ye(Xe.InvalidParams,`Invalid task creation result: ${t}`)}return e.data}let c=$e(Fee,s);if(!c.success){let e=c.error instanceof Error?c.error.message:String(c.error);throw new Ye(Xe.InvalidParams,`Invalid elicitation result: ${e}`)}let l=c.data,u=i.mode===`form`?i.requestedSchema:void 0;if(i.mode===`form`&&l.action===`accept`&&l.content&&u&&this._capabilities.elicitation?.form?.applyDefaults)try{sC(u,l.content)}catch{}return l}):i===`sampling/createMessage`?super.setRequestHandler(e,async(e,n)=>{let r=$e(Oee,e);if(!r.success){let e=r.error instanceof Error?r.error.message:String(r.error);throw new Ye(Xe.InvalidParams,`Invalid sampling request: ${e}`)}let{params:i}=r.data,a=await Promise.resolve(t(e,n));if(i.task){let e=$e(vee,a);if(!e.success){let t=e.error instanceof Error?e.error.message:String(e.error);throw new Ye(Xe.InvalidParams,`Invalid task creation result: ${t}`)}return e.data}let o=$e(i.tools||i.toolChoice?See:Cee,a);if(!o.success){let e=o.error instanceof Error?o.error.message:String(o.error);throw new Ye(Xe.InvalidParams,`Invalid sampling result: ${e}`)}return o.data}):super.setRequestHandler(e,t)}assertCapability(e,t){if(!this._serverCapabilities?.[e])throw Error(`Server does not support ${e} (required for ${t})`)}async connect(e,t){if(await super.connect(e),e.sessionId===void 0)try{let n=await this.request({method:`initialize`,params:{protocolVersion:aee,capabilities:this._capabilities,clientInfo:this._clientInfo}},Pee,t);if(n===void 0)throw Error(`Server sent invalid initialize result: ${n}`);if(!mee.includes(n.protocolVersion))throw Error(`Server's protocol version is not supported: ${n.protocolVersion}`);this._serverCapabilities=n.capabilities,this._serverVersion=n.serverInfo,e.setProtocolVersion&&e.setProtocolVersion(n.protocolVersion),this._instructions=n.instructions,await this.notification({method:`notifications/initialized`}),this._pendingListChangedConfig&&(this._setupListChangedHandlers(this._pendingListChangedConfig),this._pendingListChangedConfig=void 0)}catch(e){throw this.close(),e}}getServerCapabilities(){return this._serverCapabilities}getServerVersion(){return this._serverVersion}getInstructions(){return this._instructions}assertCapabilityForMethod(e){switch(e){case`logging/setLevel`:if(!this._serverCapabilities?.logging)throw Error(`Server does not support logging (required for ${e})`);break;case`prompts/get`:case`prompts/list`:if(!this._serverCapabilities?.prompts)throw Error(`Server does not support prompts (required for ${e})`);break;case`resources/list`:case`resources/templates/list`:case`resources/read`:case`resources/subscribe`:case`resources/unsubscribe`:if(!this._serverCapabilities?.resources)throw Error(`Server does not support resources (required for ${e})`);if(e===`resources/subscribe`&&!this._serverCapabilities.resources.subscribe)throw Error(`Server does not support resource subscriptions (required for ${e})`);break;case`tools/call`:case`tools/list`:if(!this._serverCapabilities?.tools)throw Error(`Server does not support tools (required for ${e})`);break;case`completion/complete`:if(!this._serverCapabilities?.completions)throw Error(`Server does not support completions (required for ${e})`);break;case`initialize`:break;case`ping`:break}}assertNotificationCapability(e){switch(e){case`notifications/roots/list_changed`:if(!this._capabilities.roots?.listChanged)throw Error(`Client does not support roots list changed notifications (required for ${e})`);break;case`notifications/initialized`:break;case`notifications/cancelled`:break;case`notifications/progress`:break}}assertRequestHandlerCapability(e){if(this._capabilities)switch(e){case`sampling/createMessage`:if(!this._capabilities.sampling)throw Error(`Client does not support sampling capability (required for ${e})`);break;case`elicitation/create`:if(!this._capabilities.elicitation)throw Error(`Client does not support elicitation capability (required for ${e})`);break;case`roots/list`:if(!this._capabilities.roots)throw Error(`Client does not support roots capability (required for ${e})`);break;case`tasks/get`:case`tasks/list`:case`tasks/result`:case`tasks/cancel`:if(!this._capabilities.tasks)throw Error(`Client does not support tasks capability (required for ${e})`);break;case`ping`:break}}assertTaskCapability(e){wee(this._serverCapabilities?.tasks?.requests,e,`Server`)}assertTaskHandlerCapability(e){this._capabilities&&jee(this._capabilities.tasks?.requests,e,`Client`)}async ping(e){return this.request({method:`ping`},tt,e)}async complete(e,t){return this.request({method:`completion/complete`,params:e},Aee,t)}async setLoggingLevel(e,t){return this.request({method:`logging/setLevel`,params:{level:e}},tt,t)}async getPrompt(e,t){return this.request({method:`prompts/get`,params:e},ree,t)}async listPrompts(e,t){return this.request({method:`prompts/list`,params:e},pee,t)}async listResources(e,t){return this.request({method:`resources/list`,params:e},nee,t)}async listResourceTemplates(e,t){return this.request({method:`resources/templates/list`,params:e},Eee,t)}async readResource(e,t){return this.request({method:`resources/read`,params:e},lee,t)}async subscribeResource(e,t){return this.request({method:`resources/subscribe`,params:e},tt,t)}async unsubscribeResource(e,t){return this.request({method:`resources/unsubscribe`,params:e},tt,t)}async callTool(e,t=Qe,n){if(this.isToolTaskRequired(e.name))throw new Ye(Xe.InvalidRequest,`Tool "${e.name}" requires task-based execution. Use client.experimental.tasks.callToolStream() instead.`);let r=await this.request({method:`tools/call`,params:e},t,n),i=this.getToolOutputValidator(e.name);if(i){if(!r.structuredContent&&!r.isError)throw new Ye(Xe.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`);if(r.structuredContent)try{let e=i(r.structuredContent);if(!e.valid)throw new Ye(Xe.InvalidParams,`Structured content does not match the tool's output schema: ${e.errorMessage}`)}catch(e){throw e instanceof Ye?e:new Ye(Xe.InvalidParams,`Failed to validate structured content: ${e instanceof Error?e.message:String(e)}`)}}return r}isToolTask(e){return this._serverCapabilities?.tasks?.requests?.tools?.call?this._cachedKnownTaskTools.has(e):!1}isToolTaskRequired(e){return this._cachedRequiredTaskTools.has(e)}cacheToolMetadata(e){this._cachedToolOutputValidators.clear(),this._cachedKnownTaskTools.clear(),this._cachedRequiredTaskTools.clear();for(let t of e){if(t.outputSchema){let e=this._jsonSchemaValidator.getValidator(t.outputSchema);this._cachedToolOutputValidators.set(t.name,e)}let e=t.execution?.taskSupport;(e===`required`||e===`optional`)&&this._cachedKnownTaskTools.add(t.name),e===`required`&&this._cachedRequiredTaskTools.add(t.name)}}getToolOutputValidator(e){return this._cachedToolOutputValidators.get(e)}async listTools(e,t){let n=await this.request({method:`tools/list`,params:e},fee,t);return this.cacheToolMetadata(n.tools),n}_setupListChangedHandler(e,t,n,r){let i=iee.safeParse(n);if(!i.success)throw Error(`Invalid ${e} listChanged options: ${i.error.message}`);if(typeof n.onChanged!=`function`)throw Error(`Invalid ${e} listChanged options: onChanged must be a function`);let{autoRefresh:a,debounceMs:o}=i.data,{onChanged:s}=n,c=async()=>{if(!a){s(null,null);return}try{s(null,await r())}catch(e){s(e instanceof Error?e:Error(String(e)),null)}};this.setNotificationHandler(t,()=>{if(o){let t=this._listChangedDebounceTimers.get(e);t&&clearTimeout(t);let n=setTimeout(c,o);this._listChangedDebounceTimers.set(e,n)}else c()})}async sendRootsListChanged(){return this.notification({method:`notifications/roots/list_changed`})}}}));function lC(e){}function mVe(e){if(typeof e==`function`)throw TypeError("`callbacks` must be an object, got a function instead. Did you mean `{onEvent: fn}`?");let{onEvent:t=lC,onError:n=lC,onRetry:r=lC,onComment:i}=e,a=``,o=!0,s,c=``,l=``;function u(e){let t=o?e.replace(/^\xEF\xBB\xBF/,``):e,[n,r]=hVe(`${a}${t}`);for(let e of n)d(e);a=r,o=!1}function d(e){if(e===``){p();return}if(e.startsWith(`:`)){i&&i(e.slice(e.startsWith(`: `)?2:1));return}let t=e.indexOf(`:`);if(t!==-1){let n=e.slice(0,t),r=e[t+1]===` `?2:1;f(n,e.slice(t+r),e);return}f(e,``,e)}function f(e,t,i){switch(e){case`event`:l=t;break;case`data`:c=`${c}${t}
|
|
820
|
+
`),{encoding:`utf8`}),await n.datasync()}finally{await n.close()}}async function BBe(e){let t=JS(e);for(let e of Object.values(t)){let t=await RBe(e);if(t){for(let e of t)if(YS.test(e)){let t=e.match(/alias\s+claude=["']?([^"'\s]+)/);if(t&&t[1])return t[1]}}}return null}async function VBe(e){let t=await BBe(e);if(!t)return null;let n=e?.homedir??Su(),r=t.startsWith(`~`)?t.replace(`~`,n):t;try{let e=await xd(r);if(e.isFile()||e.isSymbolicLink())return t}catch{}return null}var YS,XS=n((()=>{ka(),qS(),YS=/^\s*alias\s+claude\s*=/}));async function HBe(){let e=await UBe();return process.env.USER_TYPE===`ant`?e.ant||void 0:e.external||void 0}async function UBe(){try{return await yi(`tengu_max_version_config`,{})}catch(e){return q(e),{}}}function WBe(e){let t=Qn()?.minimumVersion;if(!t)return!1;let n=!lfe(e,t);return n&&U(`Skipping update to ${e} - below minimumVersion ${t}`),n}async function GBe(){let e=po.isRunningWithBun(),t=null;return t=e?await $o(`bun`,[`pm`,`bin`,`-g`],{cwd:Su()}):await $o(`npm`,[`-g`,`config`,`get`,`prefix`],{cwd:Su()}),t.code===0?t.stdout.trim():(q(Error(`Failed to check ${e?`bun`:`npm`} permissions`)),null)}async function KBe(){try{let e=await GBe();if(!e)return{hasPermissions:!1,npmPrefix:null};try{return await cd(e,Vu.W_OK),{hasPermissions:!0,npmPrefix:e}}catch{return q(new ZBe(`Insufficient permissions for global npm install.`)),{hasPermissions:!1,npmPrefix:e}}}catch(e){return q(e),{hasPermissions:!1,npmPrefix:null}}}async function qBe(){let e=await $o(`npm`,[`view`,``,`dist-tags`,`--json`,`--prefer-online`],{abortSignal:AbortSignal.timeout(5e3),cwd:Su()});if(e.code!==0)return U(`npm view dist-tags failed with code ${e.code}`),{latest:null,stable:null};try{let t=Da(e.stdout.trim());return{latest:typeof t.latest==`string`?t.latest:null,stable:typeof t.stable==`string`?t.stable:null}}catch(e){return U(`Failed to parse dist-tags: ${e}`),{latest:null,stable:null}}}async function JBe(e){try{return(await Oe.get(`${XBe}/${e}`,{timeout:5e3,responseType:`text`})).data.trim()}catch(t){return U(`Failed to fetch ${e} from GCS: ${t}`),null}}async function YBe(){let[e,t]=await Promise.all([JBe(`latest`),JBe(`stable`)]);return{latest:e,stable:t}}var XBe,ZBe,ZS=n((()=>{ke(),wr(),xn(),W(),fo(),y(),ka(),es(),Fa(),CS(),Ao(),nu(),Gi(),XS(),Va(),XBe=`https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases`,ZBe=class extends Yoe{}}));function QS(e,t){return t.includes(e.id)||e.idLike.some(e=>t.includes(e))}function QBe(){let e=process.execPath||process.argv[0]||``;return/[/\\]mise[/\\]installs[/\\]/i.test(e)?(U(`Detected mise installation: ${e}`),!0):!1}function $Be(){let e=process.execPath||process.argv[0]||``;return/[/\\]\.?asdf[/\\]installs[/\\]/i.test(e)?(U(`Detected asdf installation: ${e}`),!0):!1}function $S(){let e=No();if(e!==`macos`&&e!==`linux`&&e!==`wsl`)return!1;let t=process.execPath||process.argv[0]||``;return t.includes(`/Caskroom/`)?(U(`Detected Homebrew cask installation: ${t}`),!0):!1}function eVe(){if(No()!==`windows`)return!1;let e=process.execPath||process.argv[0]||``;for(let t of[/Microsoft[/\\]WinGet[/\\]Packages/i,/Microsoft[/\\]WinGet[/\\]Links/i])if(t.test(e))return U(`Detected winget installation: ${e}`),!0;return!1}var eC,tC,nC,rC,iC,tVe,nVe=n((()=>{l(),W(),es(),Po(),eC=c(async()=>{try{let e=await hd(`/etc/os-release`,`utf8`),t=e.match(/^ID=["']?(\S+?)["']?\s*$/m),n=e.match(/^ID_LIKE=["']?(.+?)["']?\s*$/m);return{id:t?.[1]??``,idLike:n?.[1]?.split(` `)??[]}}catch{return null}}),tC=c(async()=>{if(No()!==`linux`)return!1;let e=await eC();if(e&&!QS(e,[`arch`]))return!1;let t=await ts(`pacman`,[`-Qo`,process.execPath||process.argv[0]||``],{timeout:5e3,useCwd:!1});return t.code===0&&t.stdout?(U(`Detected pacman installation: ${t.stdout.trim()}`),!0):!1}),nC=c(async()=>{if(No()!==`linux`)return!1;let e=await eC();if(e&&!QS(e,[`debian`]))return!1;let t=await ts(`dpkg`,[`-S`,process.execPath||process.argv[0]||``],{timeout:5e3,useCwd:!1});return t.code===0&&t.stdout?(U(`Detected deb installation: ${t.stdout.trim()}`),!0):!1}),rC=c(async()=>{if(No()!==`linux`)return!1;let e=await eC();if(e&&!QS(e,[`fedora`,`rhel`,`suse`]))return!1;let t=await ts(`rpm`,[`-qf`,process.execPath||process.argv[0]||``],{timeout:5e3,useCwd:!1});return t.code===0&&t.stdout?(U(`Detected rpm installation: ${t.stdout.trim()}`),!0):!1}),iC=c(async()=>{if(No()!==`linux`)return!1;let e=await eC();if(e&&!QS(e,[`alpine`]))return!1;let t=await ts(`apk`,[`info`,`--who-owns`,process.execPath||process.argv[0]||``],{timeout:5e3,useCwd:!1});return t.code===0&&t.stdout?(U(`Detected apk installation: ${t.stdout.trim()}`),!0):!1}),tVe=c(async()=>$S()?`homebrew`:eVe()?`winget`:QBe()?`mise`:$Be()?`asdf`:await tC()?`pacman`:await iC()?`apk`:await nC()?`deb`:await rC()?`rpm`:`unknown`)}));function rVe(){let e=process.argv[1]||``,t=process.execPath||process.argv[0]||``;return No()===`windows`&&(e=e.split(Fu.sep).join(ju.sep),t=t.split(Fu.sep).join(ju.sep)),[e,t]}async function aC(){let[e]=rVe();if(ao())return $S()||eVe()||QBe()||$Be()||await tC()||await nC()||await rC()||await iC()?`package-manager`:`native`;if(FBe())return`npm-local`;if([`/usr/local/lib/node_modules`,`/usr/lib/node_modules`,`/opt/homebrew/lib/node_modules`,`/opt/homebrew/bin`,`/usr/local/bin`,`/.nvm/versions/node/`].some(t=>e.includes(t))||e.includes(`/npm/`)||e.includes(`/nvm/`))return`npm-global`;let t=await co(`npm config get prefix`,{shell:!0,reject:!1}),n=t.exitCode===0?t.stdout.trim():null;return n&&e.startsWith(n)?`npm-global`:`unknown`}async function iVe(){if(ao()){try{return await vd(process.execPath)}catch{}try{let e=await lo(`claude`);if(e)return e}catch{}try{return await za().stat(Y(Su(),`.local/bin/claude`)),Y(Su(),`.local/bin/claude`)}catch{}return`native`}try{return process.argv[0]||`unknown`}catch{return`unknown`}}function aVe(){try{return ao()?process.execPath||`unknown`:process.argv[1]||`unknown`}catch{return`unknown`}}async function oVe(){let e=za(),t=[],n=Y(Su(),`.claude`,`local`);await IBe()&&t.push({type:`npm-local`,path:n});let r=[`@anthropic-ai/claude-code`],i=await ts(`npm`,[`-g`,`config`,`get`,`prefix`]);if(i.code===0&&i.stdout){let n=i.stdout.trim(),a=No()===`windows`,o=a?Y(n,`claude`):Y(n,`bin`,`claude`),s=!1;try{await e.stat(o),s=!0}catch{}if(s){let e=!1;try{(await vd(o)).includes(`/Caskroom/`)&&(e=$S())}catch{}e||t.push({type:`npm-global`,path:o})}else for(let i of r){let r=a?Y(n,`node_modules`,i):Y(n,`lib`,`node_modules`,i);try{await e.stat(r),t.push({type:`npm-global-orphan`,path:r})}catch{}}}let a=Y(Su(),`.local`,`bin`,`claude`);try{await e.stat(a),t.push({type:`native`,path:a})}catch{}if(Tr().installMethod===`native`){let n=Y(Su(),`.local`,`share`,`claude`);try{await e.stat(n),t.some(e=>e.type===`native`)||t.push({type:`native`,path:n})}catch{}}return t}async function sVe(e){let t=[];try{let e=Da(await hd(Y(wn(),`managed-settings.json`),`utf-8`)),n=e&&typeof e==`object`?e.strictPluginOnlyCustomization:void 0;if(n!==void 0&&typeof n!=`boolean`)if(!Array.isArray(n))t.push({issue:`managed-settings.json: strictPluginOnlyCustomization has an invalid value (expected true or an array, got ${typeof n})`,fix:`The field is silently ignored (schema .catch rescues it). Set it to true, or an array of: ${tae.join(`, `)}.`});else{let e=n.filter(e=>typeof e==`string`&&!tae.includes(e));e.length>0&&t.push({issue:`managed-settings.json: strictPluginOnlyCustomization has ${e.length} value(s) this client doesn't recognize: ${e.map(String).join(`, `)}`,fix:`These are silently ignored (forwards-compat). Known surfaces for this version: ${tae.join(`, `)}. Either remove them, or this client is older than the managed-settings intended.`})}}catch{}let n=Tr();if(e===`development`)return t;if(e===`native`){let e=(process.env.PATH||``).split(Ope),n=Y(Su(),`.local`,`bin`),r=n;if(No()===`windows`&&(r=n.split(Fu.sep).join(ju.sep)),!e.some(e=>{let t=e;No()===`windows`&&(t=e.split(Fu.sep).join(ju.sep));let n=t.replace(/\/+$/,``),i=e.replace(/[/\\]+$/,``);return n===r||i===`~/.local/bin`||i===`$HOME/.local/bin`}))if(No()===`windows`){let e=n.split(ju.sep).join(Fu.sep);t.push({issue:`Native installation exists but ${e} is not in your PATH`,fix:`Add it by opening: System Properties → Environment Variables → Edit User PATH → New → Add the path above. Then restart your terminal.`})}else{let e=KS(),n=JS()[e],r=n?n.replace(Su(),`~`):`your shell config file`;t.push({issue:`Native installation exists but ~/.local/bin is not in your PATH`,fix:`Run: echo 'export PATH="$HOME/.local/bin:$PATH"' >> ${r} then open a new terminal or run: source ${r}`})}}x(process.env.DISABLE_INSTALLATION_CHECKS)||(e===`npm-local`&&n.installMethod!==`local`&&t.push({issue:`Running from local installation but config install method is '${n.installMethod}'`,fix:`Consider using native installation: claude install`}),e===`native`&&n.installMethod!==`native`&&t.push({issue:`Running native installation but config install method is '${n.installMethod}'`,fix:`Run claude install to update configuration`})),e===`npm-global`&&await IBe()&&t.push({issue:`Local installation exists but not being used`,fix:`Consider using native installation: claude install`});let r=await BBe(),i=await VBe();return e===`npm-local`&&!await lo(`claude`)&&!i&&(r?t.push({issue:`Local installation not accessible`,fix:`Alias exists but points to invalid target: ${r}. Update alias: alias claude="~/.claude/local/claude"`}):t.push({issue:`Local installation not accessible`,fix:`Create alias: alias claude="~/.claude/local/claude"`})),t}function cVe(){if(No()!==`linux`)return[];let e=[],t=Nm.getLinuxGlobPatternWarnings();if(t.length>0){let n=t.slice(0,3).join(`, `),r=t.length-3,i=r>0?`${n} (${r} more)`:n;e.push({issue:`Glob patterns in sandbox permission rules are not fully supported on Linux`,fix:`Found ${t.length} pattern(s): ${i}. On Linux, glob patterns in Edit/Read rules will be ignored.`})}return e}async function lVe(){let e=await aC(),t=typeof MACRO<`u`?`2.6.11`:`unknown`,n=await iVe(),r=aVe(),i=await oVe(),a=await sVe(e);if(a.push(...cVe()),e===`native`){let e=i.filter(e=>e.type===`npm-global`||e.type===`npm-global-orphan`||e.type===`npm-local`),t=No()===`windows`;for(let n of e)n.type===`npm-global`?a.push({issue:`Leftover npm global installation at ${n.path}`,fix:`Run: npm -g uninstall @anthropic-ai/claude-code`}):n.type===`npm-global-orphan`?a.push({issue:`Orphaned npm global package at ${n.path}`,fix:t?`Run: rmdir /s /q "${n.path}"`:`Run: rm -rf ${n.path}`}):n.type===`npm-local`&&a.push({issue:`Leftover npm local installation at ${n.path}`,fix:t?`Run: rmdir /s /q "${n.path}"`:`Run: rm -rf ${n.path}`})}let o=Tr().installMethod||`not set`,s=null;e===`npm-global`&&(s=(await KBe()).hasPermissions,!s&&!Roe()&&a.push({issue:`Insufficient permissions for auto-updates`,fix:"Do one of: (1) Re-install node without sudo, or (2) Use `claude install` for native installation"}));let c=rye(),l={working:c.working??!0,mode:c.mode,systemPath:c.mode===`system`?c.path:null},u=e===`package-manager`?await tVe():void 0;return{installationType:e,version:t,installationPath:n,invokedBinary:r,configInstallMethod:o,autoUpdates:(()=>{let e=Roe();return e?`disabled (${Toe(e)})`:`enabled`})(),hasUpdatePermissions:s,multipleInstallations:i,warnings:a,packageManager:u,ripgrepStatus:l}}var oC=n((()=>{so(),ZS(),oo(),xn(),Wa(),y(),es(),Fa(),qS(),nVe(),Po(),vm(),Pm(),zn(),Dr(),XS(),Va(),uo()})),uVe,dVe=n((()=>{Je(),uVe=class{constructor(e){this._client=e}async*callToolStream(e,t=Qe,n){let r=this._client,i={...n,task:n?.task??(r.isToolTask(e.name)?{}:void 0)},a=r.requestStream({method:`tools/call`,params:e},t,i),o=r.getToolOutputValidator(e.name);for await(let t of a){if(t.type===`result`&&o){let n=t.result;if(!n.structuredContent&&!n.isError){yield{type:`error`,error:new Ye(Xe.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`)};return}if(n.structuredContent)try{let e=o(n.structuredContent);if(!e.valid){yield{type:`error`,error:new Ye(Xe.InvalidParams,`Structured content does not match the tool's output schema: ${e.errorMessage}`)};return}}catch(e){if(e instanceof Ye){yield{type:`error`,error:e};return}yield{type:`error`,error:new Ye(Xe.InvalidParams,`Failed to validate structured content: ${e instanceof Error?e.message:String(e)}`)};return}}yield t}}async getTask(e,t){return this._client.getTask({taskId:e},t)}async getTaskResult(e,t,n){return this._client.getTaskResult({taskId:e},t,n)}async listTasks(e,t){return this._client.listTasks(e?{cursor:e}:void 0,t)}async cancelTask(e,t){return this._client.cancelTask({taskId:e},t)}requestStream(e,t,n){return this._client.requestStream(e,t,n)}}}));function sC(e,t){if(!(!e||typeof t!=`object`||!t)){if(e.type===`object`&&e.properties&&typeof e.properties==`object`){let n=t,r=e.properties;for(let e of Object.keys(r)){let t=r[e];n[e]===void 0&&Object.prototype.hasOwnProperty.call(t,`default`)&&(n[e]=t.default),n[e]!==void 0&&sC(t,n[e])}}if(Array.isArray(e.anyOf))for(let n of e.anyOf)typeof n!=`boolean`&&sC(n,t);if(Array.isArray(e.oneOf))for(let n of e.oneOf)typeof n!=`boolean`&&sC(n,t)}}function fVe(e){if(!e)return{supportsFormMode:!1,supportsUrlMode:!1};let t=e.form!==void 0,n=e.url!==void 0;return{supportsFormMode:t||!t&&!n,supportsUrlMode:n}}var cC,pVe=n((()=>{Dee(),Je(),Mee(),see(),dVe(),yee(),cC=class extends xee{constructor(e,t){super(t),this._clientInfo=e,this._cachedToolOutputValidators=new Map,this._cachedKnownTaskTools=new Set,this._cachedRequiredTaskTools=new Set,this._listChangedDebounceTimers=new Map,this._capabilities=t?.capabilities??{},this._jsonSchemaValidator=t?.jsonSchemaValidator??new kee,t?.listChanged&&(this._pendingListChangedConfig=t.listChanged)}_setupListChangedHandlers(e){e.tools&&this._serverCapabilities?.tools?.listChanged&&this._setupListChangedHandler(`tools`,Iee,e.tools,async()=>(await this.listTools()).tools),e.prompts&&this._serverCapabilities?.prompts?.listChanged&&this._setupListChangedHandler(`prompts`,oee,e.prompts,async()=>(await this.listPrompts()).prompts),e.resources&&this._serverCapabilities?.resources?.listChanged&&this._setupListChangedHandler(`resources`,dee,e.resources,async()=>(await this.listResources()).resources)}get experimental(){return this._experimental||(this._experimental={tasks:new uVe(this)}),this._experimental}registerCapabilities(e){if(this.transport)throw Error(`Cannot register capabilities after connecting to transport`);this._capabilities=Nee(this._capabilities,e)}setRequestHandler(e,t){let n=_ee(e)?.method;if(!n)throw Error(`Schema is missing a method literal`);let r;if(uee(n)){let e=n;r=e._zod?.def?.value??e.value}else{let e=n;r=e._def?.value??e.value}if(typeof r!=`string`)throw Error(`Schema method literal must be a string`);let i=r;return i===`elicitation/create`?super.setRequestHandler(e,async(e,n)=>{let r=$e(et,e);if(!r.success){let e=r.error instanceof Error?r.error.message:String(r.error);throw new Ye(Xe.InvalidParams,`Invalid elicitation request: ${e}`)}let{params:i}=r.data;i.mode=i.mode??`form`;let{supportsFormMode:a,supportsUrlMode:o}=fVe(this._capabilities.elicitation);if(i.mode===`form`&&!a)throw new Ye(Xe.InvalidParams,`Client does not support form-mode elicitation requests`);if(i.mode===`url`&&!o)throw new Ye(Xe.InvalidParams,`Client does not support URL-mode elicitation requests`);let s=await Promise.resolve(t(e,n));if(i.task){let e=$e(vee,s);if(!e.success){let t=e.error instanceof Error?e.error.message:String(e.error);throw new Ye(Xe.InvalidParams,`Invalid task creation result: ${t}`)}return e.data}let c=$e(Fee,s);if(!c.success){let e=c.error instanceof Error?c.error.message:String(c.error);throw new Ye(Xe.InvalidParams,`Invalid elicitation result: ${e}`)}let l=c.data,u=i.mode===`form`?i.requestedSchema:void 0;if(i.mode===`form`&&l.action===`accept`&&l.content&&u&&this._capabilities.elicitation?.form?.applyDefaults)try{sC(u,l.content)}catch{}return l}):i===`sampling/createMessage`?super.setRequestHandler(e,async(e,n)=>{let r=$e(Oee,e);if(!r.success){let e=r.error instanceof Error?r.error.message:String(r.error);throw new Ye(Xe.InvalidParams,`Invalid sampling request: ${e}`)}let{params:i}=r.data,a=await Promise.resolve(t(e,n));if(i.task){let e=$e(vee,a);if(!e.success){let t=e.error instanceof Error?e.error.message:String(e.error);throw new Ye(Xe.InvalidParams,`Invalid task creation result: ${t}`)}return e.data}let o=$e(i.tools||i.toolChoice?See:Cee,a);if(!o.success){let e=o.error instanceof Error?o.error.message:String(o.error);throw new Ye(Xe.InvalidParams,`Invalid sampling result: ${e}`)}return o.data}):super.setRequestHandler(e,t)}assertCapability(e,t){if(!this._serverCapabilities?.[e])throw Error(`Server does not support ${e} (required for ${t})`)}async connect(e,t){if(await super.connect(e),e.sessionId===void 0)try{let n=await this.request({method:`initialize`,params:{protocolVersion:aee,capabilities:this._capabilities,clientInfo:this._clientInfo}},Pee,t);if(n===void 0)throw Error(`Server sent invalid initialize result: ${n}`);if(!mee.includes(n.protocolVersion))throw Error(`Server's protocol version is not supported: ${n.protocolVersion}`);this._serverCapabilities=n.capabilities,this._serverVersion=n.serverInfo,e.setProtocolVersion&&e.setProtocolVersion(n.protocolVersion),this._instructions=n.instructions,await this.notification({method:`notifications/initialized`}),this._pendingListChangedConfig&&(this._setupListChangedHandlers(this._pendingListChangedConfig),this._pendingListChangedConfig=void 0)}catch(e){throw this.close(),e}}getServerCapabilities(){return this._serverCapabilities}getServerVersion(){return this._serverVersion}getInstructions(){return this._instructions}assertCapabilityForMethod(e){switch(e){case`logging/setLevel`:if(!this._serverCapabilities?.logging)throw Error(`Server does not support logging (required for ${e})`);break;case`prompts/get`:case`prompts/list`:if(!this._serverCapabilities?.prompts)throw Error(`Server does not support prompts (required for ${e})`);break;case`resources/list`:case`resources/templates/list`:case`resources/read`:case`resources/subscribe`:case`resources/unsubscribe`:if(!this._serverCapabilities?.resources)throw Error(`Server does not support resources (required for ${e})`);if(e===`resources/subscribe`&&!this._serverCapabilities.resources.subscribe)throw Error(`Server does not support resource subscriptions (required for ${e})`);break;case`tools/call`:case`tools/list`:if(!this._serverCapabilities?.tools)throw Error(`Server does not support tools (required for ${e})`);break;case`completion/complete`:if(!this._serverCapabilities?.completions)throw Error(`Server does not support completions (required for ${e})`);break;case`initialize`:break;case`ping`:break}}assertNotificationCapability(e){switch(e){case`notifications/roots/list_changed`:if(!this._capabilities.roots?.listChanged)throw Error(`Client does not support roots list changed notifications (required for ${e})`);break;case`notifications/initialized`:break;case`notifications/cancelled`:break;case`notifications/progress`:break}}assertRequestHandlerCapability(e){if(this._capabilities)switch(e){case`sampling/createMessage`:if(!this._capabilities.sampling)throw Error(`Client does not support sampling capability (required for ${e})`);break;case`elicitation/create`:if(!this._capabilities.elicitation)throw Error(`Client does not support elicitation capability (required for ${e})`);break;case`roots/list`:if(!this._capabilities.roots)throw Error(`Client does not support roots capability (required for ${e})`);break;case`tasks/get`:case`tasks/list`:case`tasks/result`:case`tasks/cancel`:if(!this._capabilities.tasks)throw Error(`Client does not support tasks capability (required for ${e})`);break;case`ping`:break}}assertTaskCapability(e){wee(this._serverCapabilities?.tasks?.requests,e,`Server`)}assertTaskHandlerCapability(e){this._capabilities&&jee(this._capabilities.tasks?.requests,e,`Client`)}async ping(e){return this.request({method:`ping`},tt,e)}async complete(e,t){return this.request({method:`completion/complete`,params:e},Aee,t)}async setLoggingLevel(e,t){return this.request({method:`logging/setLevel`,params:{level:e}},tt,t)}async getPrompt(e,t){return this.request({method:`prompts/get`,params:e},ree,t)}async listPrompts(e,t){return this.request({method:`prompts/list`,params:e},pee,t)}async listResources(e,t){return this.request({method:`resources/list`,params:e},nee,t)}async listResourceTemplates(e,t){return this.request({method:`resources/templates/list`,params:e},Eee,t)}async readResource(e,t){return this.request({method:`resources/read`,params:e},lee,t)}async subscribeResource(e,t){return this.request({method:`resources/subscribe`,params:e},tt,t)}async unsubscribeResource(e,t){return this.request({method:`resources/unsubscribe`,params:e},tt,t)}async callTool(e,t=Qe,n){if(this.isToolTaskRequired(e.name))throw new Ye(Xe.InvalidRequest,`Tool "${e.name}" requires task-based execution. Use client.experimental.tasks.callToolStream() instead.`);let r=await this.request({method:`tools/call`,params:e},t,n),i=this.getToolOutputValidator(e.name);if(i){if(!r.structuredContent&&!r.isError)throw new Ye(Xe.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`);if(r.structuredContent)try{let e=i(r.structuredContent);if(!e.valid)throw new Ye(Xe.InvalidParams,`Structured content does not match the tool's output schema: ${e.errorMessage}`)}catch(e){throw e instanceof Ye?e:new Ye(Xe.InvalidParams,`Failed to validate structured content: ${e instanceof Error?e.message:String(e)}`)}}return r}isToolTask(e){return this._serverCapabilities?.tasks?.requests?.tools?.call?this._cachedKnownTaskTools.has(e):!1}isToolTaskRequired(e){return this._cachedRequiredTaskTools.has(e)}cacheToolMetadata(e){this._cachedToolOutputValidators.clear(),this._cachedKnownTaskTools.clear(),this._cachedRequiredTaskTools.clear();for(let t of e){if(t.outputSchema){let e=this._jsonSchemaValidator.getValidator(t.outputSchema);this._cachedToolOutputValidators.set(t.name,e)}let e=t.execution?.taskSupport;(e===`required`||e===`optional`)&&this._cachedKnownTaskTools.add(t.name),e===`required`&&this._cachedRequiredTaskTools.add(t.name)}}getToolOutputValidator(e){return this._cachedToolOutputValidators.get(e)}async listTools(e,t){let n=await this.request({method:`tools/list`,params:e},fee,t);return this.cacheToolMetadata(n.tools),n}_setupListChangedHandler(e,t,n,r){let i=iee.safeParse(n);if(!i.success)throw Error(`Invalid ${e} listChanged options: ${i.error.message}`);if(typeof n.onChanged!=`function`)throw Error(`Invalid ${e} listChanged options: onChanged must be a function`);let{autoRefresh:a,debounceMs:o}=i.data,{onChanged:s}=n,c=async()=>{if(!a){s(null,null);return}try{s(null,await r())}catch(e){s(e instanceof Error?e:Error(String(e)),null)}};this.setNotificationHandler(t,()=>{if(o){let t=this._listChangedDebounceTimers.get(e);t&&clearTimeout(t);let n=setTimeout(c,o);this._listChangedDebounceTimers.set(e,n)}else c()})}async sendRootsListChanged(){return this.notification({method:`notifications/roots/list_changed`})}}}));function lC(e){}function mVe(e){if(typeof e==`function`)throw TypeError("`callbacks` must be an object, got a function instead. Did you mean `{onEvent: fn}`?");let{onEvent:t=lC,onError:n=lC,onRetry:r=lC,onComment:i}=e,a=``,o=!0,s,c=``,l=``;function u(e){let t=o?e.replace(/^\xEF\xBB\xBF/,``):e,[n,r]=hVe(`${a}${t}`);for(let e of n)d(e);a=r,o=!1}function d(e){if(e===``){p();return}if(e.startsWith(`:`)){i&&i(e.slice(e.startsWith(`: `)?2:1));return}let t=e.indexOf(`:`);if(t!==-1){let n=e.slice(0,t),r=e[t+1]===` `?2:1;f(n,e.slice(t+r),e);return}f(e,``,e)}function f(e,t,i){switch(e){case`event`:l=t;break;case`data`:c=`${c}${t}
|
|
821
821
|
`;break;case`id`:s=t.includes(`\0`)?void 0:t;break;case`retry`:/^\d+$/.test(t)?r(parseInt(t,10)):n(new uC(`Invalid \`retry\` value: "${t}"`,{type:`invalid-retry`,value:t,line:i}));break;default:n(new uC(`Unknown field "${e.length>20?`${e.slice(0,20)}\u2026`:e}"`,{type:`unknown-field`,field:e,value:t,line:i}));break}}function p(){c.length>0&&t({id:s,event:l||void 0,data:c.endsWith(`
|
|
822
822
|
`)?c.slice(0,-1):c}),s=void 0,c=``,l=``}function m(e={}){a&&e.consume&&d(a),o=!0,s=void 0,c=``,l=``,a=``}return{feed:u,reset:m}}function hVe(e){let t=[],n=``,r=0;for(;r<e.length;){let i=e.indexOf(`\r`,r),a=e.indexOf(`
|
|
823
823
|
`,r),o=-1;if(i!==-1&&a!==-1?o=Math.min(i,a):i===-1?a!==-1&&(o=a):o=i===e.length-1?-1:i,o===-1){n=e.slice(r);break}else{let n=e.slice(r,o);t.push(n),r=o+1,e[r-1]===`\r`&&e[r]===`
|
|
@@ -920,10 +920,10 @@ Parameters:
|
|
|
920
920
|
`)).filter(e=>e.trim()),c=s.filter(e=>dO(e));if(t&&c.length>0){let e=/\/TemporaryItems\/.*screencaptureui.*\/Screenshot/i.test(o);return Promise.all(c.map(e=>P$e(e))).then(c=>{let l=c.filter(e=>e!==null);if(l.length>0){for(let e of l){let n=Tu(e.path);t(e.base64,e.mediaType,n,e.dimensions,e.path)}let e=s.filter(e=>!dO(e));e.length>0&&n&&n(e.join(`
|
|
921
921
|
`)),r(!1)}else e&&a?i():(n&&n(o),r(!1))}),{chunks:[],timeoutId:null}}return a&&t&&o.length===0?(i(),{chunks:[],timeoutId:null}):(n&&n(o),r(!1),{chunks:[],timeoutId:null})})},x0e,i,n,e,o,u,l,c)),[u,l,n,e]);return{wrappedOnInput:(r,a,s)=>{let f=s.keypress.isPasted;f&&o(!0);let p=r.split(/ (?=\/|[A-Za-z]:\\)/).flatMap(e=>e.split(`
|
|
922
922
|
`)).some(e=>dO(e.trim()));if(f&&r.length===0&&l&&n){u(),o(!1);return}if(e&&(r.length>800||c.current||p||f||r.length>=3&&!a.return&&!a.tab&&!a.escape&&!a.upArrow&&!a.downArrow&&!a.leftArrow&&!a.rightArrow)){c.current=!0,i(({chunks:e,timeoutId:t})=>({chunks:[...e,r],timeoutId:d(t)}));return}t(r,a),r.length>10&&o(!1)},pasteState:r,isPasting:a}}var Ak,b0e,x0e,S0e=n((()=>{Ak=r(R(),1),Ao(),zee(),pO(),Po(),b0e=50,x0e=100}));function C0e(e,t){if(t.length===0)return[{text:e,start:0}];let n=[...t].sort((e,t)=>e.start===t.start?t.priority-e.priority:e.start-t.start),r=[],i=[];for(let e of n)e.start!==e.end&&(i.some(t=>e.start>=t.start&&e.start<t.end||e.end>t.start&&e.end<=t.end||e.start<=t.start&&e.end>=t.end)||(r.push(e),i.push({start:e.start,end:e.end})));return new T0e(e).segment(r)}function w0e(e){return kt(e).filter(e=>e.code!==e.endCode)}var T0e,E0e=n((()=>{yte(),O(),T0e=class{constructor(e){k(this,`tokens`,void 0),k(this,`visiblePos`,0),k(this,`stringPos`,0),k(this,`tokenIdx`,0),k(this,`charIdx`,0),k(this,`codes`,[]),this.text=e,this.tokens=xte(e)}segment(e){let t=[];for(let n of e){let e=this.segmentTo(n.start);e&&t.push(e);let r=this.segmentTo(n.end);r&&(r.highlight=n,t.push(r))}let n=this.segmentTo(1/0);return n&&t.push(n),t}segmentTo(e){if(this.tokenIdx>=this.tokens.length||e<=this.visiblePos)return null;let t=this.visiblePos;for(;this.tokenIdx<this.tokens.length;){let e=this.tokens[this.tokenIdx];if(e.type!==`ansi`)break;this.codes.push(e),this.stringPos+=e.code.length,this.tokenIdx++}let n=this.stringPos,r=[...this.codes];for(;this.visiblePos<e&&this.tokenIdx<this.tokens.length;){let t=this.tokens[this.tokenIdx];if(t.type===`ansi`)this.codes.push(t),this.stringPos+=t.code.length,this.tokenIdx++;else{let n=e-this.visiblePos,r=t.value.length-this.charIdx,i=Math.min(n,r);this.stringPos+=i,this.visiblePos+=i,this.charIdx+=i,this.charIdx>=t.value.length&&(this.tokenIdx++,this.charIdx=0)}}if(this.stringPos===n)return null;let i=w0e(r),a=w0e(this.codes);this.codes=a;let o=gt(i),s=gt(tte(a));return{text:o+this.text.substring(n,this.stringPos)+s,start:t}}}}));function D0e({char:e,index:t,glimmerIndex:n,messageColor:r,shimmerColor:i}){let a=t===n,o=Math.abs(t-n)===1;return(0,O0e.jsx)(z,{color:a||o?i:r,children:e})}var O0e,jk=n((()=>{R(),Tt(),O0e=jt()}));function k0e({text:e,highlights:t}){let{lines:n,hasShimmer:r,sweepStart:i,cycleLength:a}=A0e.useMemo(()=>{let n=C0e(e,t),r=[[]],i=0;for(let e of n){let t=e.text.split(`
|
|
923
|
-
`);for(let n=0;n<t.length;n++){n>0&&(r.push([]),i+=1);let a=t[n];a.length>0&&r[r.length-1].push({text:a,highlight:e.highlight,start:i}),i+=a.length}}let a=t.some(e=>e.shimmerColor),o=0,s=1;if(a){let e=1/0,n=-1/0;for(let r of t)r.shimmerColor&&(e=Math.min(e,r.start),n=Math.max(n,r.end));o=e-10,s=n-e+20}return{lines:r,hasShimmer:a,sweepStart:o,cycleLength:s}},[e,t]),[o,s]=ot(r?50:null),c=r?i+Math.floor(s/50)%a:-100;return(0,Mk.jsx)(B,{ref:o,flexDirection:`column`,children:n.map((e,t)=>(0,Mk.jsx)(B,{children:e.length===0?(0,Mk.jsx)(z,{children:` `}):e.map((e,t)=>e.highlight?.shimmerColor&&e.highlight.color?(0,Mk.jsx)(z,{children:e.text.split(``).map((t,n)=>(0,Mk.jsx)(D0e,{char:t,index:e.start+n,glimmerIndex:c,messageColor:e.highlight.color,shimmerColor:e.highlight.shimmerColor},n))},t):(0,Mk.jsx)(z,{color:e.highlight?.color,dimColor:e.highlight?.dimColor,inverse:e.highlight?.inverse,children:(0,Mk.jsx)(yt,{children:e.text})},t))},t))})}var A0e,Mk,j0e=n((()=>{A0e=r(R(),1),Tt(),E0e(),jk(),Mk=jt()}));function M0e({inputState:e,children:t,terminalFocus:n,invert:r,hidePlaceholderText:i,...a}){let{onInput:o,renderedValue:s,cursorLine:c,cursorColumn:l}=e,u=Bee({line:c,column:l,active:!!(a.focus&&a.showCursor&&n)}),{wrappedOnInput:d,isPasting:f}=y0e({onPaste:a.onPaste,onInput:(e,t)=>{f&&t.return||o(e,t)},onImagePaste:a.onImagePaste}),{onIsPastingChange:p}=a;N0e.useEffect(()=>{p&&p(f)},[f,p]);let{showPlaceholder:m,renderedPlaceholder:h}=_0e({placeholder:a.placeholder,value:a.value,showCursor:a.showCursor,focus:a.focus,terminalFocus:n,invert:r,hidePlaceholderText:i});At(d,{isActive:a.focus});let g=a.value&&a.value.trim().indexOf(` `)===-1||a.value&&a.value.endsWith(` `),_=!!(a.argumentHint&&a.value&&g&&a.value.startsWith(`/`)),v=a.showCursor&&a.highlights?a.highlights.filter(e=>e.dimColor||a.cursorOffset<e.start||a.cursorOffset>=e.end):a.highlights,{viewportCharOffset:y,viewportCharEnd:b}=e,x=v&&y>0?v.filter(e=>e.end>y&&e.start<b).map(e=>({...e,start:Math.max(0,e.start-y),end:e.end-y})):v;return x&&x.length>0?(0,Nk.jsxs)(B,{ref:u,children:[(0,Nk.jsx)(k0e,{text:s,highlights:x}),_&&(0,Nk.jsxs)(z,{dimColor:!0,children:[a.value?.endsWith(` `)?``:` `,a.argumentHint]}),t]}):(0,Nk.jsx)(B,{ref:u,children:(0,Nk.jsxs)(z,{wrap:`truncate-end`,dimColor:a.dimColor,children:[m&&a.placeholderElement?a.placeholderElement:m&&h?(0,Nk.jsx)(yt,{children:h}):(0,Nk.jsx)(yt,{children:s}),_&&(0,Nk.jsxs)(z,{dimColor:!0,children:[a.value?.endsWith(` `)?``:` `,a.argumentHint]}),t]})})}var N0e,Nk,P0e=n((()=>{N0e=r(R(),1),v0e(),S0e(),Tt(),j0e(),Nk=jt()}));function F0e(){return process.env.TERM===`xterm-ghostty`?[`·`,`✢`,`✱`,`✶`,`✻`,`*`]:(process.platform,[`·`,`✢`,`✱`,`✶`,`✻`,`✽`])}function Pk(e,t,n){return{r:Math.round(e.r+(t.r-e.r)*n),g:Math.round(e.g+(t.g-e.g)*n),b:Math.round(e.b+(t.b-e.b)*n)}}function Fk(e){return`rgb(${e.r},${e.g},${e.b})`}function I0e(e){let t=(e%360+360)%360,n=.6,r=(1-Math.abs(2*n-1))*.7,i=r*(1-Math.abs(t/60%2-1)),a=n-r/2,o=0,s=0,c=0;return t<60?(o=r,s=i):t<120?(o=i,s=r):t<180?(s=r,c=i):t<240?(s=i,c=r):t<300?(o=i,c=r):(o=r,c=i),{r:Math.round((o+a)*255),g:Math.round((s+a)*255),b:Math.round((c+a)*255)}}function Ik(e){let t=Lk.get(e);if(t!==void 0)return t;let n=e.match(/rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/),r=n?{r:parseInt(n[1],10),g:parseInt(n[2],10),b:parseInt(n[3],10)}:null;return Lk.set(e,r),r}var Lk,Rk=n((()=>{Lk=new Map}));function zk(e){let[t]=_t(),n=qee(),r=(0,Bk.useMemo)(()=>x(process.env.CLAUDE_CODE_ACCESSIBILITY),[]),i=ZO().prefersReducedMotion??!1,a=xO(e=>e.voiceState)===`recording`,o=xO(e=>e.voiceAudioLevels),s=(0,Bk.useRef)(Array(R0e).fill(0)),[c,l]=ot(a&&!i?50:null),u=c,d=l;_1e(n,!!e.onImagePaste);let f=n&&!r,p;if(!f)p=e=>e;else if(a&&!i){let e=s.current,t=o.length>0?o[o.length-1]??0:0,n=Math.min(t*z0e,1);e[0]=(e[0]??0)*Hk+n*(1-Hk);let r=e[0]??0,i=Math.max(1,Math.min(Math.round(r*8),8)),a=t<B0e,c=d/1e3*90%360,{r:l,g:u,b:f}=a?{r:128,g:128,b:128}:I0e(c);p=()=>ut.rgb(l,u,f)(L0e[i])}else p=ut.inverse;return(0,Vk.jsx)(B,{ref:u,children:(0,Vk.jsx)(M0e,{inputState:h0e({value:e.value,onChange:e.onChange,onSubmit:e.onSubmit,onExit:e.onExit,onExitMessage:e.onExitMessage,onHistoryReset:e.onHistoryReset,onHistoryUp:e.onHistoryUp,onHistoryDown:e.onHistoryDown,onClearInput:e.onClearInput,focus:e.focus,mask:e.mask,multiline:e.multiline,cursorChar:e.showCursor?` `:``,highlightPastedText:e.highlightPastedText,invert:p,themeText:Dt(`text`,t),columns:e.columns,maxVisibleLines:e.maxVisibleLines,onImagePaste:e.onImagePaste,disableCursorMovementForUpDownKeys:e.disableCursorMovementForUpDownKeys,disableEscapeDoublePress:e.disableEscapeDoublePress,externalOffset:e.cursorOffset,onOffsetChange:e.onChangeCursorOffset,inputFilter:e.inputFilter,inlineGhostText:e.inlineGhostText,dim:ut.dim}),terminalFocus:n,highlights:e.highlights,invert:p,hidePlaceholderText:a,...e})})}var Bk,Vk,L0e,R0e,Hk,z0e,B0e,Uk=n((()=>{ft(),Bk=r(R(),1),wO(),x1e(),QO(),g0e(),Tt(),y(),P0e(),Rk(),Vk=jt(),L0e=` ▁▂▃▄▅▆▇█`,R0e=1,Hk=.7,z0e=1.8,B0e=.15}));function Wk({isFocused:e,isSelected:t,children:n,description:r,shouldShowDownArrow:i,shouldShowUpArrow:a,declareCursor:o}){return(0,V0e.jsx)(rte,{isFocused:e,isSelected:t,description:r,showScrollDown:i,showScrollUp:a,styled:!1,declareCursor:o,children:n})}var V0e,Gk=n((()=>{R(),Tt(),V0e=jt()}));function Kk({option:e,isFocused:t,isSelected:n,shouldShowDownArrow:r,shouldShowUpArrow:i,maxIndexWidth:a,index:o,inputValue:s,onInputChange:c,onSubmit:l,onExit:u,layout:d,children:f,showLabel:p=!1,onOpenEditor:m,resetCursorOnUpdate:h=!1,onImagePaste:g,pastedContents:_,onRemoveImage:v,imagesSelected:y,selectedImageIndex:b=0,onImagesSelectedChange:x,onSelectedImageIndexChange:S}){let C=_?Object.values(_).filter(e=>e.type===`image`):[],w=p||e.showLabelWithValue===!0,[T,E]=(0,qk.useState)(s.length),D=(0,qk.useRef)(!1);(0,qk.useEffect)(()=>{h&&t&&(D.current?D.current=!1:E(s.length))},[h,t,s]),Et(`chat:externalEditor`,()=>{m?.(s,c)},{context:`Chat`,isActive:t&&!!m}),Et(`chat:imagePaste`,()=>{g&&uO().then(e=>{e&&g(e.base64,e.mediaType,void 0,e.dimensions)})},{context:`Chat`,isActive:t&&!!g}),Et(`attachments:remove`,()=>{C.length>0&&v&&v(C.at(-1).id)},{context:`Attachments`,isActive:t&&!y&&s===``&&C.length>0&&!!v}),wt({"attachments:next":()=>{C.length>1&&S?.((b+1)%C.length)},"attachments:previous":()=>{C.length>1&&S?.((b-1+C.length)%C.length)},"attachments:remove":()=>{let e=C[b];e&&v&&(v(e.id),C.length<=1?x?.(!1):S?.(Math.min(b,C.length-2)))},"attachments:exit":()=>{x?.(!1)}},{context:`Attachments`,isActive:t&&!!y}),At((e,t)=>{t.upArrow&&x?.(!1)},{isActive:t&&!!y}),(0,qk.useEffect)(()=>{!t&&y&&x?.(!1)},[t,y,x]);let ee=d===`expanded`?a+3:a+4;return(0,Jk.jsxs)(B,{flexDirection:`column`,flexShrink:0,children:[(0,Jk.jsx)(Wk,{isFocused:t,isSelected:n,shouldShowDownArrow:r,shouldShowUpArrow:i,declareCursor:!1,children:(0,Jk.jsxs)(B,{flexDirection:`row`,flexShrink:d===`compact`?0:void 0,children:[(0,Jk.jsx)(z,{dimColor:!0,children:`${o}.`.padEnd(a+2)}),f,w?(0,Jk.jsxs)(Jk.Fragment,{children:[(0,Jk.jsx)(z,{color:t?`suggestion`:void 0,children:e.label}),t?(0,Jk.jsxs)(Jk.Fragment,{children:[(0,Jk.jsx)(z,{color:`suggestion`,children:e.labelValueSeparator??`, `}),(0,Jk.jsx)(zk,{value:s,onChange:t=>{D.current=!0,c(t),e.onChange(t)},onSubmit:l,onExit:u,placeholder:e.placeholder,focus:!y,showCursor:!0,multiline:!0,cursorOffset:T,onChangeCursorOffset:E,columns:80,onImagePaste:g,onPaste:t=>{D.current=!0;let n=s.slice(0,T),r=s.slice(T),i=n+t+r;c(i),e.onChange(i),E(n.length+t.length)}})]}):s&&(0,Jk.jsxs)(z,{children:[e.labelValueSeparator??`, `,s]})]}):t?(0,Jk.jsx)(zk,{value:s,onChange:t=>{D.current=!0,c(t),e.onChange(t)},onSubmit:l,onExit:u,placeholder:e.placeholder||(typeof e.label==`string`?e.label:void 0),focus:!y,showCursor:!0,multiline:!0,cursorOffset:T,onChangeCursorOffset:E,columns:80,onImagePaste:g,onPaste:t=>{D.current=!0;let n=s.slice(0,T),r=s.slice(T),i=n+t+r;c(i),e.onChange(i),E(n.length+t.length)}}):(0,Jk.jsx)(z,{color:s?void 0:`inactive`,children:s||e.placeholder||e.label})]})}),e.description&&(0,Jk.jsx)(B,{paddingLeft:ee,children:(0,Jk.jsx)(z,{dimColor:e.dimDescription!==!1,color:n?`success`:t?`suggestion`:void 0,children:e.description})}),C.length>0&&(0,Jk.jsxs)(B,{flexDirection:`row`,gap:1,paddingLeft:ee,children:[C.map((e,t)=>(0,Jk.jsx)(K$e,{imageId:e.id,isSelected:!!y&&t===b},e.id)),(0,Jk.jsx)(B,{flexGrow:1,justifyContent:`flex-start`,flexDirection:`row`,children:(0,Jk.jsx)(z,{dimColor:!0,children:y?(0,Jk.jsxs)(St,{children:[C.length>1&&(0,Jk.jsxs)(Jk.Fragment,{children:[(0,Jk.jsx)(vO,{action:`attachments:next`,context:`Attachments`,fallback:`→`,description:`next`}),(0,Jk.jsx)(vO,{action:`attachments:previous`,context:`Attachments`,fallback:`←`,description:`prev`})]}),(0,Jk.jsx)(vO,{action:`attachments:remove`,context:`Attachments`,fallback:`backspace`,description:`remove`}),(0,Jk.jsx)(vO,{action:`attachments:exit`,context:`Attachments`,fallback:`esc`,description:`cancel`})]}):t?`(↓ to select)`:null})})]}),d===`expanded`&&(0,Jk.jsx)(z,{children:` `})]})}var qk,Jk,H0e=n((()=>{qk=r(R(),1),Tt(),ru(),pO(),q$e(),yO(),Uk(),Gk(),Jk=jt()}));function Yk(e,t=!0){let n=(0,Xk.useContext)(VO)?.setState;(0,Xk.useEffect)(()=>{if(!(!t||!n))return n(t=>{if(t.activeOverlays.has(e))return t;let n=new Set(t.activeOverlays);return n.add(e),{...t,activeOverlays:n}}),()=>{n(t=>{if(!t.activeOverlays.has(e))return t;let n=new Set(t.activeOverlays);return n.delete(e),{...t,activeOverlays:n}})}},[e,t,n]),(0,Xk.useLayoutEffect)(()=>{if(t)return()=>pt.get(process.stdout)?.invalidatePrevFrame()},[t])}function U0e(){return FO(e=>e.activeOverlays.size>0)}function W0e(){return FO(e=>{for(let t of e.activeOverlays)if(!G0e.has(t))return!0;return!1})}var Xk,G0e,Zk=n((()=>{Xk=r(R(),1),Tt(),UO(),G0e=new Set([`autocomplete`])})),Qk,K0e,q0e=n((()=>{Qk=r(R(),1),Zk(),Tt(),ru(),Di(),K0e=({isDisabled:e=!1,disableSelection:t=!1,state:n,options:r,isMultiSelect:i=!1,onUpFromFirstItem:a,onDownFromLastItem:o,onInputModeToggle:s,inputValues:c,imagesSelected:l=!1,onEnterImageSelection:u})=>{Yk(`select`,!!n.onCancel);let d=(0,Qk.useMemo)(()=>r.find(e=>e.value===n.focusedValue)?.type===`input`,[r,n.focusedValue]);wt((0,Qk.useMemo)(()=>{let e={};return d||(e[`select:next`]=()=>{if(o){let e=r[r.length-1];if(e&&n.focusedValue===e.value){o();return}}n.focusNextOption()},e[`select:previous`]=()=>{if(a&&n.visibleFromIndex===0){let e=r[0];if(e&&n.focusedValue===e.value){a();return}}n.focusPreviousOption()},e[`select:accept`]=()=>{t!==!0&&n.focusedValue!==void 0&&r.find(e=>e.value===n.focusedValue)?.disabled!==!0&&(n.selectFocusedOption?.(),n.onChange?.(n.focusedValue))}),n.onCancel&&(e[`select:cancel`]=()=>{n.onCancel()}),e},[r,n,o,a,d,t]),{context:`Select`,isActive:!e}),At((e,d,f)=>{let p=qre(e),m=r.find(e=>e.value===n.focusedValue),h=m?.type===`input`;if(d.tab&&s&&n.focusedValue!==void 0){s(n.focusedValue);return}if(h){if(l)return;if(d.downArrow&&u?.()){f.stopImmediatePropagation();return}if(d.downArrow||d.ctrl&&e===`n`){if(o){let e=r[r.length-1];if(e&&n.focusedValue===e.value){o(),f.stopImmediatePropagation();return}}n.focusNextOption(),f.stopImmediatePropagation();return}if(d.upArrow||d.ctrl&&e===`p`){if(a&&n.visibleFromIndex===0){let e=r[0];if(e&&n.focusedValue===e.value){a(),f.stopImmediatePropagation();return}}n.focusPreviousOption(),f.stopImmediatePropagation();return}return}if(d.pageDown&&n.focusNextPage(),d.pageUp&&n.focusPreviousPage(),t!==!0&&(i&&Zre(e)===` `&&n.focusedValue!==void 0&&m?.disabled!==!0&&(n.selectFocusedOption?.(),n.onChange?.(n.focusedValue)),t!==`numeric`&&/^[0-9]+$/.test(p))){let e=parseInt(p,10)-1;if(e>=0&&e<n.options.length){let t=n.options[e];if(t.disabled===!0)return;if(t.type===`input`){if((c?.get(t.value)??``).trim()){n.onChange?.(t.value);return}if(t.allowEmptySubmitToCancel){n.onChange?.(t.value);return}n.focusOption(t.value);return}n.onChange?.(t.value);return}}},{isActive:!e})}})),J0e,Y0e=n((()=>{O(),J0e=class extends Map{constructor(e){let t=[],n,r,i,a=0;for(let o of e){let e={label:o.label,value:o.value,description:o.description,previous:i,next:void 0,index:a};i&&(i.next=e),n||(n=e),r=e,t.push([o.value,e]),a++,i=e}super(t),k(this,`first`,void 0),k(this,`last`,void 0),this.first=n,this.last=r}}}));function X0e({visibleOptionCount:e=5,options:t,initialFocusValue:n,onFocus:r,focusValue:i}){let[a,o]=(0,$k.useReducer)(Z0e,{visibleOptionCount:e,options:t,initialFocusValue:i||n},eA),s=(0,$k.useRef)(r);s.current=r;let[c,l]=(0,$k.useState)(t);t!==c&&!pme(t,c)&&(o({type:`reset`,state:eA({visibleOptionCount:e,options:t,initialFocusValue:i??a.focusedValue??n,currentViewport:{visibleFromIndex:a.visibleFromIndex,visibleToIndex:a.visibleToIndex}})}),l(t));let u=(0,$k.useCallback)(()=>{o({type:`focus-next-option`})},[]),d=(0,$k.useCallback)(()=>{o({type:`focus-previous-option`})},[]),f=(0,$k.useCallback)(()=>{o({type:`focus-next-page`})},[]),p=(0,$k.useCallback)(()=>{o({type:`focus-previous-page`})},[]),m=(0,$k.useCallback)(e=>{e!==void 0&&o({type:`set-focus`,value:e})},[]),h=(0,$k.useMemo)(()=>t.map((e,t)=>({...e,index:t})).slice(a.visibleFromIndex,a.visibleToIndex),[t,a.visibleFromIndex,a.visibleToIndex]),g=(0,$k.useMemo)(()=>{if(a.focusedValue!==void 0)return t.some(e=>e.value===a.focusedValue)?a.focusedValue:t[0]?.value},[a.focusedValue,t]),_=(0,$k.useMemo)(()=>t.find(e=>e.value===g)?.type===`input`,[g,t]);return(0,$k.useEffect)(()=>{g!==void 0&&s.current?.(g)},[g]),(0,$k.useEffect)(()=>{i!==void 0&&o({type:`set-focus`,value:i})},[i]),{focusedValue:g,focusedIndex:(0,$k.useMemo)(()=>{if(g===void 0)return 0;let e=t.findIndex(e=>e.value===g);return e>=0?e+1:0},[g,t]),visibleFromIndex:a.visibleFromIndex,visibleToIndex:a.visibleToIndex,visibleOptions:h,isInInput:_??!1,focusNextOption:u,focusPreviousOption:d,focusNextPage:f,focusPreviousPage:p,focusOption:m,options:t}}var $k,Z0e,eA,Q0e=n((()=>{$k=r(R(),1),Y0e(),Z0e=(e,t)=>{switch(t.type){case`focus-next-option`:{if(e.focusedValue===void 0)return e;let t=e.optionMap.get(e.focusedValue);if(!t)return e;let n=t.next||e.optionMap.first;if(!n)return e;if(!t.next&&n===e.optionMap.first)return{...e,focusedValue:n.value,visibleFromIndex:0,visibleToIndex:e.visibleOptionCount};if(!(n.index>=e.visibleToIndex))return{...e,focusedValue:n.value};let r=Math.min(e.optionMap.size,e.visibleToIndex+1),i=r-e.visibleOptionCount;return{...e,focusedValue:n.value,visibleFromIndex:i,visibleToIndex:r}}case`focus-previous-option`:{if(e.focusedValue===void 0)return e;let t=e.optionMap.get(e.focusedValue);if(!t)return e;let n=t.previous||e.optionMap.last;if(!n)return e;if(!t.previous&&n===e.optionMap.last){let t=e.optionMap.size,r=Math.max(0,t-e.visibleOptionCount);return{...e,focusedValue:n.value,visibleFromIndex:r,visibleToIndex:t}}if(!(n.index<=e.visibleFromIndex))return{...e,focusedValue:n.value};let r=Math.max(0,e.visibleFromIndex-1),i=r+e.visibleOptionCount;return{...e,focusedValue:n.value,visibleFromIndex:r,visibleToIndex:i}}case`focus-next-page`:{if(e.focusedValue===void 0)return e;let t=e.optionMap.get(e.focusedValue);if(!t)return e;let n=Math.min(e.optionMap.size-1,t.index+e.visibleOptionCount),r=e.optionMap.first;for(;r&&r.index<n&&r.next;)r=r.next;if(!r)return e;let i=Math.min(e.optionMap.size,r.index+1),a=Math.max(0,i-e.visibleOptionCount);return{...e,focusedValue:r.value,visibleFromIndex:a,visibleToIndex:i}}case`focus-previous-page`:{if(e.focusedValue===void 0)return e;let t=e.optionMap.get(e.focusedValue);if(!t)return e;let n=Math.max(0,t.index-e.visibleOptionCount),r=e.optionMap.first;for(;r&&r.index<n&&r.next;)r=r.next;if(!r)return e;let i=Math.max(0,r.index),a=Math.min(e.optionMap.size,i+e.visibleOptionCount);return{...e,focusedValue:r.value,visibleFromIndex:i,visibleToIndex:a}}case`reset`:return t.state;case`set-focus`:{if(e.focusedValue===t.value)return e;let n=e.optionMap.get(t.value);if(!n)return e;if(n.index>=e.visibleFromIndex&&n.index<e.visibleToIndex)return{...e,focusedValue:t.value};let r,i;return n.index<e.visibleFromIndex?(r=n.index,i=Math.min(e.optionMap.size,r+e.visibleOptionCount)):(i=Math.min(e.optionMap.size,n.index+1),r=Math.max(0,i-e.visibleOptionCount)),{...e,focusedValue:t.value,visibleFromIndex:r,visibleToIndex:i}}}},eA=({visibleOptionCount:e,options:t,initialFocusValue:n,currentViewport:r})=>{let i=typeof e==`number`?Math.min(e,t.length):t.length,a=new J0e(t),o=n!==void 0&&a.get(n),s=o?n:a.first?.value,c=0,l=i;if(o){let e=o.index;r?e>=r.visibleFromIndex&&e<r.visibleToIndex?(c=r.visibleFromIndex,l=Math.min(a.size,r.visibleToIndex)):e<r.visibleFromIndex?(c=e,l=Math.min(a.size,c+i)):(l=Math.min(a.size,e+1),c=Math.max(0,l-i)):e>=i&&(l=Math.min(a.size,e+1),c=Math.max(0,l-i)),c=Math.max(0,Math.min(c,a.size-1)),l=Math.min(a.size,Math.max(i,l))}return{optionMap:a,visibleOptionCount:i,focusedValue:s,visibleFromIndex:c,visibleToIndex:l}}}));function $0e({visibleOptionCount:e=5,options:t,defaultValue:n,onChange:r,onCancel:i,onFocus:a,focusValue:o}){let[s,c]=(0,tA.useState)(n),l=X0e({visibleOptionCount:e,options:t,initialFocusValue:void 0,onFocus:a,focusValue:o}),u=(0,tA.useCallback)(()=>{c(l.focusedValue)},[l.focusedValue]);return{...l,value:s,selectFocusedOption:u,onChange:r,onCancel:i}}var tA,e2e=n((()=>{tA=r(R(),1),Q0e()}));function nA(e){return typeof e==`string`?e:typeof e==`number`?String(e):e?Array.isArray(e)?e.map(nA).join(``):iA.isValidElement(e)?nA(e.props.children):``:``}function rA({isDisabled:e=!1,hideIndexes:t=!1,visibleOptionCount:n=5,highlightText:r,options:i,defaultValue:a,onCancel:o,onChange:s,onFocus:c,defaultFocusValue:l,layout:u=`compact`,disableSelection:d=!1,inlineDescriptions:f=!1,onUpFromFirstItem:p,onDownFromLastItem:m,onInputModeToggle:h,onOpenEditor:g,onImagePaste:_,pastedContents:v,onRemoveImage:y}){let[b,x]=(0,iA.useState)(!1),[S,C]=(0,iA.useState)(0),[w,T]=(0,iA.useState)(()=>{let e=new Map;return i.forEach(t=>{t.type===`input`&&t.initialValue&&e.set(t.value,t.initialValue)}),e}),E=(0,iA.useRef)(new Map);(0,iA.useEffect)(()=>{for(let e of i)if(e.type===`input`&&e.initialValue!==void 0){let t=E.current.get(e.value)??``,n=w.get(e.value)??``,r=e.initialValue;r!==t&&n===t&&T(t=>{let n=new Map(t);return n.set(e.value,r),n}),E.current.set(e.value,r)}},[i,w]);let D=$0e({visibleOptionCount:n,options:i,defaultValue:a,onChange:s,onCancel:o,onFocus:c,focusValue:l});K0e({isDisabled:e,disableSelection:d||(t?`numeric`:!1),state:D,options:i,isMultiSelect:!1,onUpFromFirstItem:p,onDownFromLastItem:m,onInputModeToggle:h,inputValues:w,imagesSelected:b,onEnterImageSelection:()=>{if(v&&Object.values(v).some(e=>e.type===`image`)){let e=fs(Object.values(v),e=>e.type===`image`);return x(!0),C(e-1),!0}return!1}});let ee={container:()=>({flexDirection:`column`}),highlightedText:()=>({bold:!0})};if(u===`expanded`){let t=D.options.length.toString().length;return(0,aA.jsx)(B,{...ee.container(),children:D.visibleOptions.map((n,a)=>{let c=n.index===D.visibleFromIndex,l=n.index===D.visibleToIndex-1,u=D.visibleToIndex<i.length,d=D.visibleFromIndex>0,p=D.visibleFromIndex+a+1,m=!e&&D.focusedValue===n.value,h=D.value===n.value;if(n.type===`input`){let e=w.has(n.value)?w.get(n.value):n.initialValue||``;return(0,aA.jsx)(Kk,{option:n,isFocused:m,isSelected:h,shouldShowDownArrow:u&&l,shouldShowUpArrow:d&&c,maxIndexWidth:t,index:p,inputValue:e,onInputChange:e=>{T(t=>{let r=new Map(t);return r.set(n.value,e),r})},onSubmit:e=>{let t=v&&Object.values(v).some(e=>e.type===`image`);e.trim()||t||n.allowEmptySubmitToCancel?s?.(n.value):o?.()},onExit:o,layout:`expanded`,showLabel:f,onOpenEditor:g,resetCursorOnUpdate:n.resetCursorOnUpdate,onImagePaste:_,pastedContents:v,onRemoveImage:y,imagesSelected:b,selectedImageIndex:S,onImagesSelectedChange:x,onSelectedImageIndexChange:C},String(n.value))}let E=n.label;if(typeof n.label==`string`&&r&&n.label.includes(r)){let e=n.label,t=e.indexOf(r);E=(0,aA.jsxs)(aA.Fragment,{children:[e.slice(0,t),(0,aA.jsx)(z,{...ee.highlightedText(),children:r}),e.slice(t+r.length)]})}let O=n.disabled===!0,k=O?void 0:h?`success`:m?`suggestion`:void 0;return(0,aA.jsxs)(B,{flexDirection:`column`,flexShrink:0,children:[(0,aA.jsx)(Wk,{isFocused:m,isSelected:h,shouldShowDownArrow:u&&l,shouldShowUpArrow:d&&c,children:(0,aA.jsx)(z,{dimColor:O,color:k,children:E})}),n.description&&(0,aA.jsx)(B,{paddingLeft:2,children:(0,aA.jsx)(z,{dimColor:O||n.dimDescription!==!1,color:k,children:(0,aA.jsx)(yt,{children:n.description})})}),(0,aA.jsx)(z,{children:` `})]},String(n.value))})})}if(u===`compact-vertical`){let n=t?0:D.options.length.toString().length;return(0,aA.jsx)(B,{...ee.container(),children:D.visibleOptions.map((a,c)=>{let l=a.index===D.visibleFromIndex,u=a.index===D.visibleToIndex-1,d=D.visibleToIndex<i.length,p=D.visibleFromIndex>0,m=D.visibleFromIndex+c+1,h=!e&&D.focusedValue===a.value,E=D.value===a.value;if(a.type===`input`){let e=w.has(a.value)?w.get(a.value):a.initialValue||``;return(0,aA.jsx)(Kk,{option:a,isFocused:h,isSelected:E,shouldShowDownArrow:d&&u,shouldShowUpArrow:p&&l,maxIndexWidth:n,index:m,inputValue:e,onInputChange:e=>{T(t=>{let n=new Map(t);return n.set(a.value,e),n})},onSubmit:e=>{let t=v&&Object.values(v).some(e=>e.type===`image`);e.trim()||t||a.allowEmptySubmitToCancel?s?.(a.value):o?.()},onExit:o,layout:`compact`,showLabel:f,onOpenEditor:g,resetCursorOnUpdate:a.resetCursorOnUpdate,onImagePaste:_,pastedContents:v,onRemoveImage:y,imagesSelected:b,selectedImageIndex:S,onImagesSelectedChange:x,onSelectedImageIndexChange:C},String(a.value))}let O=a.label;if(typeof a.label==`string`&&r&&a.label.includes(r)){let e=a.label,t=e.indexOf(r);O=(0,aA.jsxs)(aA.Fragment,{children:[e.slice(0,t),(0,aA.jsx)(z,{...ee.highlightedText(),children:r}),e.slice(t+r.length)]})}let k=a.disabled===!0;return(0,aA.jsxs)(B,{flexDirection:`column`,flexShrink:0,children:[(0,aA.jsx)(Wk,{isFocused:h,isSelected:E,shouldShowDownArrow:d&&u,shouldShowUpArrow:p&&l,children:(0,aA.jsxs)(aA.Fragment,{children:[!t&&(0,aA.jsx)(z,{dimColor:!0,children:`${m}.`.padEnd(n+1)}),(0,aA.jsx)(z,{dimColor:k,color:k?void 0:E?`success`:h?`suggestion`:void 0,children:O})]})}),a.description&&(0,aA.jsx)(B,{paddingLeft:t?4:n+4,children:(0,aA.jsx)(z,{dimColor:k||a.dimDescription!==!1,color:k?void 0:E?`success`:h?`suggestion`:void 0,children:(0,aA.jsx)(yt,{children:a.description})})})]},String(a.value))})})}let O=t?0:D.options.length.toString().length,k=D.visibleOptions.some(e=>e.type===`input`),te=!f&&!k&&D.visibleOptions.some(e=>e.description),ne=D.visibleOptions.map((t,n)=>{let a=t.index===D.visibleFromIndex,o=t.index===D.visibleToIndex-1,s=D.visibleToIndex<i.length,c=D.visibleFromIndex>0,l=D.visibleFromIndex+n+1,u=!e&&D.focusedValue===t.value,d=D.value===t.value,f=t.disabled===!0,p=t.label;if(typeof t.label==`string`&&r&&t.label.includes(r)){let e=t.label,n=e.indexOf(r);p=(0,aA.jsxs)(aA.Fragment,{children:[e.slice(0,n),(0,aA.jsx)(z,{...ee.highlightedText(),children:r}),e.slice(n+r.length)]})}return{option:t,index:l,label:p,isFocused:u,isSelected:d,isOptionDisabled:f,shouldShowDownArrow:s&&o,shouldShowUpArrow:c&&a}});if(te){let e=Math.max(...ne.map(e=>{if(e.option.type===`input`)return 0;let n=nA(e.option.label),r=t?0:O+2,i=e.isSelected?2:0;return 2+r+st(n)+i}));return(0,aA.jsx)(B,{...ee.container(),children:ne.map(n=>{if(n.option.type===`input`)return null;let r=nA(n.option.label),i=t?0:O+2,a=n.isSelected?2:0,o=e-(2+i+st(r)+a);return(0,aA.jsxs)(t2e,{isFocused:n.isFocused,children:[(0,aA.jsxs)(B,{flexDirection:`row`,flexShrink:0,children:[n.isFocused?(0,aA.jsx)(z,{color:`suggestion`,children:ue.pointer}):n.shouldShowDownArrow?(0,aA.jsx)(z,{dimColor:!0,children:ue.arrowDown}):n.shouldShowUpArrow?(0,aA.jsx)(z,{dimColor:!0,children:ue.arrowUp}):(0,aA.jsx)(z,{children:` `}),(0,aA.jsx)(z,{children:` `}),(0,aA.jsxs)(z,{dimColor:n.isOptionDisabled,color:n.isOptionDisabled?void 0:n.isSelected?`success`:n.isFocused?`suggestion`:void 0,children:[!t&&(0,aA.jsx)(z,{dimColor:!0,children:`${n.index}.`.padEnd(O+2)}),n.label]}),n.isSelected&&(0,aA.jsxs)(z,{color:`success`,children:[` `,ue.tick]}),o>0&&(0,aA.jsx)(z,{children:` `.repeat(o)})]}),(0,aA.jsx)(B,{flexGrow:1,marginLeft:2,children:(0,aA.jsx)(z,{wrap:`wrap`,dimColor:n.isOptionDisabled||n.option.dimDescription!==!1,color:n.isOptionDisabled?void 0:n.isSelected?`success`:n.isFocused?`suggestion`:void 0,children:(0,aA.jsx)(yt,{children:n.option.description||` `})})})]},String(n.option.value))})})}return(0,aA.jsx)(B,{...ee.container(),children:D.visibleOptions.map((n,a)=>{if(n.type===`input`){let t=w.has(n.value)?w.get(n.value):n.initialValue||``,r=n.index===D.visibleFromIndex,c=n.index===D.visibleToIndex-1,l=D.visibleToIndex<i.length,u=D.visibleFromIndex>0,d=D.visibleFromIndex+a+1;return(0,aA.jsx)(Kk,{option:n,isFocused:!e&&D.focusedValue===n.value,isSelected:D.value===n.value,shouldShowDownArrow:l&&c,shouldShowUpArrow:u&&r,maxIndexWidth:O,index:d,inputValue:t,onInputChange:e=>{T(t=>{let r=new Map(t);return r.set(n.value,e),r})},onSubmit:e=>{let t=v&&Object.values(v).some(e=>e.type===`image`);e.trim()||t||n.allowEmptySubmitToCancel?s?.(n.value):o?.()},onExit:o,layout:`compact`,showLabel:f,onOpenEditor:g,resetCursorOnUpdate:n.resetCursorOnUpdate,onImagePaste:_,pastedContents:v,onRemoveImage:y,imagesSelected:b,selectedImageIndex:S,onImagesSelectedChange:x,onSelectedImageIndexChange:C},String(n.value))}let c=n.label;if(typeof n.label==`string`&&r&&n.label.includes(r)){let e=n.label,t=e.indexOf(r);c=(0,aA.jsxs)(aA.Fragment,{children:[e.slice(0,t),(0,aA.jsx)(z,{...ee.highlightedText(),children:r}),e.slice(t+r.length)]})}let l=n.index===D.visibleFromIndex,u=n.index===D.visibleToIndex-1,d=D.visibleToIndex<i.length,p=D.visibleFromIndex>0,m=D.visibleFromIndex+a+1,h=!e&&D.focusedValue===n.value,E=D.value===n.value,k=n.disabled===!0;return(0,aA.jsxs)(Wk,{isFocused:h,isSelected:E,shouldShowDownArrow:d&&u,shouldShowUpArrow:p&&l,children:[(0,aA.jsxs)(B,{flexDirection:`row`,flexShrink:0,children:[!t&&(0,aA.jsx)(z,{dimColor:!0,children:`${m}.`.padEnd(O+2)}),(0,aA.jsxs)(z,{dimColor:k,color:k?void 0:E?`success`:h?`suggestion`:void 0,children:[c,f&&n.description&&(0,aA.jsxs)(z,{dimColor:k||n.dimDescription!==!1,children:[` `,n.description]})]})]}),!f&&n.description&&(0,aA.jsx)(B,{flexShrink:99,marginLeft:2,children:(0,aA.jsx)(z,{wrap:`wrap-trim`,dimColor:k||n.dimDescription!==!1,color:k?void 0:E?`success`:h?`suggestion`:void 0,children:(0,aA.jsx)(yt,{children:n.description})})})]},String(n.value))})})}function t2e({isFocused:e,children:t}){return(0,aA.jsx)(B,{ref:Bee({line:0,column:0,active:e}),flexDirection:`row`,children:t})}var iA,aA,oA=n((()=>{N(),iA=r(R(),1),Tt(),Ss(),H0e(),Gk(),q0e(),e2e(),aA=jt()})),n2e=n((()=>{hfe(),_fe(),N(),R(),R(),Tt(),es(),Di(),oA(),jt()})),r2e=n((()=>{R(),OT(),Tt(),Ns(),jt()})),i2e=n((()=>{gfe(),R(),tn(),n2e(),W(),R_(),Afe(),jfe(),Mfe(),Nfe(),r2e()}));function a2e(){return parseInt(process.env.MCP_TOOL_TIMEOUT||``,10)||N2e}function sA(){return Y(_(),`mcp-needs-auth-cache.json`)}function o2e(){return CA||(CA=hd(sA(),`utf-8`).then(e=>Da(e)).catch(()=>({}))),CA}async function s2e(e){let t=(await o2e())[e];return t?Date.now()-t.timestamp<I2e:!1}function c2e(e){wA=wA.then(async()=>{let t=await o2e();t[e]={timestamp:Date.now()};let n=sA();await pd(Eu(n),{recursive:!0}),await wd(n,V(t)),CA=null}).catch(()=>{})}function l2e(){CA=null,Cd(sA()).catch(()=>{})}function cA(e){let t=aE(e);return t?{mcpServerBaseUrl:t}:{}}function lA(e,t,n){return G(`tengu_mcp_server_needs_auth`,{transportType:n,...cA(t)}),K(e,`Authentication required for ${{sse:`SSE`,http:`HTTP`,"claudeai-proxy":`claude.ai proxy`}[n]} server`),c2e(e),{name:e,type:`needs-auth`,config:t}}function u2e(e){return async(t,n)=>{let r=async()=>{await gr();let r=Xn();if(!r)throw Error(`No claude.ai OAuth token available`);let i=new Headers(n?.headers);return i.set(`Authorization`,`Bearer ${r.accessToken}`),{response:await e(t,{...n,headers:i}),sentToken:r.accessToken}},{response:i,sentToken:a}=await r();if(i.status!==401)return i;let o=await qae(a).catch(()=>!1);if(G(`tengu_mcp_claudeai_proxy_401`,{tokenChanged:o}),!o){let e=Xn()?.accessToken;if(!e||e===a)return i}try{return(await r()).response}catch{return i}}}async function d2e(e,t){let n=(await import(`./wrapper-BSK0MCQH.js`)).default;return new n(e,[`mcp`],t)}function uA(){return parseInt(process.env.MCP_TIMEOUT||``,10)||3e4}function dA(e){return async(t,n)=>{if((n?.method??`GET`).toUpperCase()===`GET`)return e(t,n);let r=new Headers(n?.headers);r.has(`accept`)||r.set(`accept`,R2e);let i=new AbortController,a=setTimeout(e=>e.abort(new DOMException(`The operation timed out.`,`TimeoutError`)),TA,i);a.unref?.();let o=n?.signal,s=()=>i.abort(o?.reason);o?.addEventListener(`abort`,s),o?.aborted&&i.abort(o.reason);let c=()=>{clearTimeout(a),o?.removeEventListener(`abort`,s)};try{let a=await e(t,{...n,headers:r,signal:i.signal});return c(),a}catch(e){throw c(),e}}}function f2e(){return parseInt(process.env.MCP_SERVER_CONNECTION_BATCH_SIZE||``,10)||3}function p2e(){return parseInt(process.env.MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE||``,10)||20}function m2e(e){return!e.type||e.type===`stdio`||e.type===`sdk`}function h2e(e){return!e.name.startsWith(`mcp__ide__`)||z2e.includes(e.name)}function fA(e,t){return`${e}-${V(t)}`}async function pA(e,t){let n=fA(e,t);try{let n=await EA(e,t);n.type===`connected`&&await n.cleanup()}catch{}EA.cache.delete(n),OA.cache.delete(e),kA.cache.delete(e),AA.cache.delete(e)}async function mA(e){if(e.config.type===`sdk`)return e;let t=await EA(e.name,e.config);if(t.type!==`connected`)throw new Ta(`MCP server "${e.name}" is not connected`,`MCP server not connected`);return t}function g2e(e,t){if(e.type!==t.type)return!1;let{scope:n,...r}=e,{scope:i,...a}=t;return V(r)===V(a)}function _2e(e,t){let n=Object.keys(e);return n.length>0?n.map(t=>`${t}=${String(e[t])}`).join(` `):t}async function hA(e,t,n){return(await A2e({client:n,tool:e,args:t,signal:iy().signal})).content}async function v2e(e,t){try{yr(),await pA(e,t);let n=await EA(e,t);if(n.type!==`connected`)return{client:n,tools:[],commands:[]};t.type===`claudeai-proxy`&&yGe(e);let r=!!n.capabilities?.resources,[i,a,o,s]=await Promise.all([OA(n),AA(n),Promise.resolve([]),r?kA(n):Promise.resolve([])]),c=[...a,...o],l=[];return r&&([FT,BE].some(e=>i.some(t=>nc(t,e.name)))||l.push(FT,BE)),{client:n,tools:[...i,...l],commands:c,resources:s.length>0?s:void 0}}catch(n){return ko(e,`Error during reconnection: ${H(n)}`),{client:{name:e,type:`failed`,config:t},tools:[],commands:[]}}}async function y2e(e,t,n){await Me(e,n,{concurrency:t})}async function b2e(e,t){let n=!1,r=Object.entries(t??(await WGe()).servers),i=[];for(let t of r)tE(t[0])?e({client:{name:t[0],type:`disabled`,config:t[1]},tools:[],commands:[]}):i.push(t);let a=i.length,o=fs(i,([e,t])=>t.type===`stdio`),s=fs(i,([e,t])=>t.type===`sse`),c=fs(i,([e,t])=>t.type===`http`),l=fs(i,([e,t])=>t.type===`sse-ide`),u=fs(i,([e,t])=>t.type===`ws-ide`),d=i.filter(([e,t])=>m2e(t)),f=i.filter(([e,t])=>!m2e(t)),p={totalServers:a,stdioCount:o,sseCount:s,httpCount:c,sseIdeCount:l,wsIdeCount:u},m=async([t,r])=>{try{if(tE(t)){e({client:{name:t,type:`disabled`,config:r},tools:[],commands:[]});return}if((r.type===`claudeai-proxy`||r.type===`http`||r.type===`sse`)&&(await s2e(t)||(r.type===`http`||r.type===`sse`)&&$Ke(t,r))){K(t,`Skipping connection (cached needs-auth)`),e({client:{name:t,type:`needs-auth`,config:r},tools:[fqe(t,r)],commands:[]});return}let i=await EA(t,r,p);if(i.type!==`connected`){e({client:i,tools:i.type===`needs-auth`?[fqe(t,r)]:[],commands:[]});return}r.type===`claudeai-proxy`&&yGe(t);let a=!!i.capabilities?.resources,[o,s,c,l]=await Promise.all([OA(i),AA(i),Promise.resolve([]),a?kA(i):Promise.resolve([])]),u=[...s,...c],d=[];a&&!n&&(n=!0,d.push(FT,BE)),e({client:i,tools:[...o,...d],commands:u,resources:l.length>0?l:void 0})}catch(n){ko(t,`Error fetching tools/commands/resources: ${H(n)}`),e({client:{name:t,type:`failed`,config:r},tools:[],commands:[]})}};await Promise.all([y2e(d,f2e(),m),y2e(f,p2e(),m)])}function x2e(e){return new Promise(t=>{let n=0,r=0;if(n=Object.keys(e).length,n===0){t({clients:[],tools:[],commands:[]});return}let i=[],a=[],o=[];b2e(e=>{if(i.push(e.client),a.push(...e.tools),o.push(...e.commands),r++,r>=n){let e=o.reduce((e,t)=>e+(t.name.length+(t.description??``).length+(t.argumentHint??``).length),0);G(`tengu_mcp_tools_commands_loaded`,{tools_count:a.length,commands_count:o.length,commands_metadata_length:e}),t({clients:i,tools:a,commands:o})}},e).catch(e=>{ko(`prefetchAllMcpResources`,`Failed to get MCP resources: ${H(e)}`),t({clients:[],tools:[],commands:[]})})})}async function S2e(e,t,n,r=!1){switch(e.type){case`text`:{let t={type:`text`,text:e.text};if(r){let n=e._meta;n&&(t._meta=n)}return[t]}case`audio`:{let n=e;return await C2e(Buffer.from(n.data,`base64`),n.mimeType,t,`[Audio from ${t}] `)}case`image`:{let t=Buffer.from(String(e.data),`base64`),r=e.mimeType?.split(`/`)[1]||`png`,i=await j_(t,t.length,r,n);return[{type:`image`,source:{data:i.buffer.toString(`base64`),media_type:`image/${i.mediaType}`,type:`base64`}}]}case`resource`:{let r=e.resource,i=`[Resource from ${t} at ${r.uri}] `;if(`text`in r)return[{type:`text`,text:`${i}${r.text}`}];if(`blob`in r)if(L2e.has(r.mimeType??``)){let e=Buffer.from(r.blob,`base64`),t=r.mimeType?.split(`/`)[1]||`png`,a=await j_(e,e.length,t,n),o=[];return i&&o.push({type:`text`,text:i}),o.push({type:`image`,source:{data:a.buffer.toString(`base64`),media_type:`image/${a.mediaType}`,type:`base64`}}),o}else return await C2e(Buffer.from(r.blob,`base64`),r.mimeType,t,i);return[]}case`resource_link`:{let t=e,n=`[Resource link: ${t.name}] ${t.uri}`;return t.description&&(n+=` (${t.description})`),[{type:`text`,text:n}]}default:return[]}}async function C2e(e,t,n,r){let i=await LE(e,t,`mcp-${Ls(n)}-blob-${Date.now()}-${Math.random().toString(36).slice(2,8)}`);return`error`in i?[{type:`text`,text:`${r}Binary content (${t||`unknown type`}, ${e.length} bytes) could not be saved to disk: ${i.error}`}]:[{type:`text`,text:Wqe(i.filepath,t,i.size,r)}]}function gA(e,t=2){if(e===null)return`null`;if(Array.isArray(e))return e.length===0?`[]`:`[${gA(e[0],t-1)}]`;if(typeof e==`object`){if(t<=0)return`{...}`;let n=Object.entries(e).slice(0,10).map(([e,n])=>`${e}: ${gA(n,t-1)}`),r=Object.keys(e).length>10?`, ...`:``;return`{${n.join(`, `)}${r}}`}return typeof e}async function w2e(e,t,n,r){if(e&&typeof e==`object`){if(`toolResult`in e)return{content:String(e.toolResult),type:`toolResult`};if(`structuredContent`in e&&e.structuredContent!==void 0)return{content:V(e.structuredContent),type:`structuredContent`,schema:gA(e.structuredContent)};if(`content`in e&&Array.isArray(e.content)){let t=(await Promise.all(e.content.map(e=>S2e(e,n,r,!0)))).flat();return{content:t,type:`contentArray`,schema:gA(t)}}}let i=`MCP server "${n}" tool "${t}": unexpected response format`;throw ko(n,i),new Ta(i,`MCP tool unexpected response format`)}function T2e(e){return!e||typeof e==`string`?!1:e.some(e=>e.type===`image`)}async function E2e(e,t,n,r,i=!1){let{content:a,type:o,schema:s}=await w2e(e,t,n,r);if(n===`ide`||i&&!T2e(a)||!await qUe(a))return a;let c=HUe(a);if(h(process.env.ENABLE_MCP_LARGE_OUTPUT_FILES))return G(`tengu_mcp_large_result_handled`,{outcome:`truncated`,reason:`env_disabled`,sizeEstimateTokens:c}),await YUe(a);if(!a)return a;if(T2e(a))return G(`tengu_mcp_large_result_handled`,{outcome:`truncated`,reason:`contains_images`,sizeEstimateTokens:c}),await YUe(a);let l=Date.now(),u=`mcp-${Ls(n)}-${Ls(t)}-${l}`,d=O2e(a),f=typeof a==`string`?a:d??V(a,null,2),p=await DE(f,u);if(jE(p)){let e=f.length;return G(`tengu_mcp_large_result_handled`,{outcome:`truncated`,reason:`persist_failed`,sizeEstimateTokens:c}),`Error: result (${e.toLocaleString()} characters) exceeds maximum allowed tokens. Failed to save output to file: ${p.error}. If this MCP server provides pagination or filtering tools, use them to retrieve specific portions of the data.`}G(`tengu_mcp_large_result_handled`,{outcome:`persisted`,reason:`file_saved`,sizeEstimateTokens:c,persistedSizeChars:p.originalSize});let m=d===void 0?Bqe(o,s):Bqe(`toolResult`);return Vqe(p.filepath,p.originalSize,m)}function D2e(){let e=process.env.MCP_TRUNCATION_PROMPT_OVERRIDE;return e?e!==`legacy`:ci(`tengu_mcp_subagent_prompt`)}function O2e(e){if(!D2e()||!Array.isArray(e)||e.length!==1)return;let t=e[0];if(!(!t||t.type!==`text`)&&!(`annotations`in t||`_meta`in t))return t.text}async function k2e({client:e,clientConnection:t,tool:n,args:r,meta:i,signal:a,setAppState:o,onProgress:s,imageLimits:c,hasResultSizeAnnotation:l=!1,callToolFn:u=A2e,handleElicitation:d}){for(let f=0;;f++)try{return await u({client:e,tool:n,args:r,meta:i,signal:a,onProgress:s,imageLimits:c,hasResultSizeAnnotation:l})}catch(e){if(!(e instanceof Ye)||e.code!==Xe.UrlElicitationRequired||f>=3)throw e;let r=e.data,i=(typeof r==`object`&&r&&`elicitations`in r&&Array.isArray(r.elicitations)?r.elicitations:[]).filter(e=>{if(typeof e!=`object`||!e)return!1;let t=e;return t.mode===`url`&&typeof t.url==`string`&&typeof t.elicitationId==`string`&&typeof t.message==`string`}),s=t.type===`connected`?t.name:`unknown`;if(i.length===0)throw K(s,`Tool '${n}' returned -32042 but no valid elicitations in error data`),e;K(s,`Tool '${n}' requires URL elicitation (error -32042, attempt ${f+1}), processing ${i.length} elicitation(s)`);for(let e of i){let{elicitationId:t}=e,r=await GE(s,e,a);if(r){if(K(s,`URL elicitation ${t} resolved by hook: ${V(r)}`),r.action!==`accept`)return{content:`URL elicitation was ${r.action===`decline`?`declined`:r.action+`ed`} by a hook. The tool "${n}" could not complete because it requires the user to open a URL.`};continue}let i;if(d)i=await d(s,e,a);else{let n={actionLabel:`Retry now`,showCancel:!0};i=await new Promise(r=>{let i=()=>{r({action:`cancel`})};if(a.aborted){i();return}a.addEventListener(`abort`,i,{once:!0}),o(o=>({...o,elicitation:{queue:[...o.elicitation.queue,{serverName:s,requestId:`error-elicit-${t}`,params:e,signal:a,waitingState:n,respond:e=>{e.action!==`accept`&&(a.removeEventListener(`abort`,i),r(e))},onWaitingDismiss:e=>{a.removeEventListener(`abort`,i),r(e===`retry`?{action:`accept`}:{action:`cancel`})}}]}}))})}let c=await KE(s,i,a,`url`,t);if(c.action!==`accept`)return K(s,`User ${c.action===`decline`?`declined`:c.action+`ed`} URL elicitation ${t}`),{content:`URL elicitation was ${c.action===`decline`?`declined`:c.action+`ed`} by the user. The tool "${n}" could not complete because it requires the user to open a URL.`};K(s,`Elicitation ${t} completed, retrying tool call`)}}}async function A2e({client:{client:e,name:t,config:n},tool:r,args:i,meta:a,signal:o,onProgress:s,imageLimits:c,hasResultSizeAnnotation:l=!1}){let u=Date.now(),d;try{K(t,`Calling MCP tool: ${r}`),d=setInterval((e,t,n)=>{let r=Date.now()-e;K(t,`Tool '${n}' still running (${`${Math.floor(r/1e3)}s`} elapsed)`)},3e4,u,t,r);let n=a2e(),f,p=new Promise((e,i)=>{f=setTimeout((e,t,n,r)=>{e(new Ta(`MCP server "${t}" tool "${n}" timed out after ${Math.floor(r/1e3)}s`,`MCP tool timeout`))},n,i,t,r,n)}),m=await Promise.race([e.callTool({name:r,arguments:i,_meta:a},Qe,{signal:o,timeout:n,onprogress:s?e=>{s({type:`mcp_progress`,status:`progress`,serverName:t,toolName:r,progress:e.progress,total:e.total,progressMessage:e.message})}:void 0}),p]).finally(()=>{f&&clearTimeout(f)});if(`isError`in m&&m.isError){let e=`Unknown error`;if(`content`in m&&Array.isArray(m.content)&&m.content.length>0){let t=m.content[0];t&&typeof t==`object`&&`text`in t&&(e=t.text)}else `error`in m&&(e=String(m.error));throw ko(t,e),new yA(e,`MCP tool returned error`,`_meta`in m&&m._meta?{_meta:m._meta}:void 0)}let h=Date.now()-u;K(t,`Tool '${r}' completed successfully in ${h<1e3?`${h}ms`:h<6e4?`${Math.floor(h/1e3)}s`:`${Math.floor(h/6e4)}m ${Math.floor(h%6e4/1e3)}s`}`);let g=tJe(t);return g&&G(`tengu_code_indexing_tool_used`,{tool:g,source:`mcp`,success:!0}),{content:await E2e(m,r,t,c,l),_meta:m._meta,structuredContent:m.structuredContent}}catch(e){d!==void 0&&clearInterval(d);let i=Date.now()-u;if(e instanceof Error&&e.name!==`AbortError`&&K(t,`Tool '${r}' failed after ${Math.floor(i/1e3)}s: ${e.message}`),e instanceof Error){if((`code`in e?e.code:void 0)===401||e instanceof Tw)throw K(t,`Tool call returned 401 Unauthorized - token may have expired`),G(`tengu_mcp_tool_call_auth_error`,{}),new _A(t,`MCP server "${t}" requires re-authorization (token expired)`);let r=bA(e),i=`code`in e&&e.code===-32e3&&e.message.includes(`Connection closed`)&&(n.type===`http`||n.type===`claudeai-proxy`);if(r||i)throw K(t,`MCP session expired during tool call (${r?`404/-32001`:`connection closed`}), clearing connection cache for re-initialization`),G(`tengu_mcp_session_expired`,{}),await pA(t,n),new vA(t)}if(!(e instanceof Error)||e.name!==`AbortError`)throw e;return{content:void 0}}finally{d!==void 0&&clearInterval(d)}}function j2e(e){let t=e.message.content?.[0];if(!(!t||typeof t==`string`||t.type!==`tool_use`))return t.id}async function M2e(e,t){let n=[],r=[],i=await Promise.allSettled(Object.entries(e).map(async([e,n])=>{let r=new T$e(e,t),i=new cC({name:`claude-code`,title:`Claude Code`,version:`2.6.10`,description:`Anthropic's agentic coding tool`,websiteUrl:aS},{capabilities:{}});try{await i.connect(r);let t=i.getServerCapabilities(),a={type:`connected`,name:e,capabilities:t||{},client:i,config:{...n,scope:`dynamic`},cleanup:async()=>{await i.close()}},o=[];if(t?.tools){let e=await OA(a);o.push(...e)}return{client:a,tools:o}}catch(t){return ko(e,`Failed to connect SDK MCP server: ${t}`),{client:{type:`failed`,name:e,config:{...n,scope:`user`}},tools:[]}}}));for(let e of i)e.status===`fulfilled`&&(n.push(e.value.client),r.push(...e.value.tools));return{clients:n,tools:r}}var _A,vA,yA,bA,N2e,xA,P2e,F2e,SA,I2e,CA,wA,L2e,TA,R2e,z2e,EA,DA,OA,kA,AA,jA=n((()=>{pVe(),oHe(),dHe(),hHe(),WC(),Je(),Yre(),l(),qie(),Ne(),tn(),io(),oS(),Sc(),RUe(),uWe(),mqe(),VE(),oy(),Ss(),Wi(),Ma(),rJe(),W(),y(),ka(),fa(),$A(),R_(),Ao(),RE(),QUe(),aJe(),Ro(),zs(),Vs(),Nue(),su(),IE(),wr(),Ua(),lJe(),Pi(),Rs(),oE(),g$e(),O(),Ow(),x$e(),Kne(),Us(),CE(),CGe(),rE(),w$e(),E$e(),iu(),Va(),_A=class extends Error{constructor(e,t){super(t),k(this,`serverName`,void 0),this.name=`McpAuthError`,this.serverName=e}},vA=class extends Error{constructor(e){super(`MCP server "${e}" session expired`),this.name=`McpSessionExpiredError`}},yA=class extends Ta{constructor(e,t,n){super(e,t),this.mcpMeta=n,this.name=`McpToolCallError`}},bA=u$e,N2e=1e8,xA=d$e,P2e=()=>D$e(),F2e=()=>i2e(),SA=(zce(),e(Rce)).isComputerUseMCPServer,I2e=900*1e3,CA=null,wA=Promise.resolve(),L2e=new Set([`image/jpeg`,`image/png`,`image/gif`,`image/webp`]),TA=6e4,R2e=`application/json, text/event-stream`,z2e=[`mcp__ide__executeCode`,`mcp__ide__getDiagnostics`],EA=c(async(e,t,n)=>{let r=Date.now(),i;try{let a,o=_l();if(t.type===`sse`){let n=new SE(e,t),r=await lO(e,t),i={authProvider:n,fetch:dA(iqe(UC(),n)),requestInit:{headers:{"User-Agent":ha(),...r}}};i.eventSourceInit={fetch:async(e,t)=>{let i={},a=await n.tokens();a&&(i.Authorization=`Bearer ${a.access_token}`);let o=Bs();return fetch(e,{...t,...o,headers:{"User-Agent":ha(),...i,...t?.headers,...r,Accept:`text/event-stream`}})}},a=new kw(new URL(t.url),i),K(e,`SSE transport initialized, awaiting connection`)}else if(t.type===`sse-ide`){K(e,`Setting up SSE-IDE transport to ${t.url}`);let n=Bs(),r=n.dispatcher?{eventSourceInit:{fetch:async(e,t)=>fetch(e,{...t,...n,headers:{"User-Agent":ha(),...t?.headers}})}}:{};a=new kw(new URL(t.url),Object.keys(r).length>0?r:void 0)}else if(t.type===`ws-ide`){let e=Oce(),n={"User-Agent":ha(),...t.authToken&&{"X-Claude-Code-Ide-Authorization":t.authToken}},r;r=typeof Bun<`u`?new globalThis.WebSocket(t.url,{protocols:[`mcp`],headers:n,proxy:Ace(t.url),tls:e||void 0}):await d2e(t.url,{headers:n,agent:Tce(t.url),...e||{}}),a=new WE(r)}else if(t.type===`ws`){K(e,`Initializing WebSocket transport to ${t.url}`);let n=await lO(e,t),r=Oce(),i={"User-Agent":ha(),...o&&{Authorization:`Bearer ${o}`},...n},s=pr(i,(e,t)=>t.toLowerCase()===`authorization`?`[REDACTED]`:e);K(e,`WebSocket transport options: ${V({url:t.url,headers:s,hasSessionAuth:!!o})}`);let c;c=typeof Bun<`u`?new globalThis.WebSocket(t.url,{protocols:[`mcp`],headers:i,proxy:Ace(t.url),tls:r||void 0}):await d2e(t.url,{headers:i,agent:Tce(t.url),...r||{}}),a=new WE(c)}else if(t.type===`http`){K(e,`Initializing HTTP transport to ${t.url}`),K(e,`Node version: ${process.version}, Platform: ${process.platform}`),K(e,`Environment: ${V({NODE_OPTIONS:process.env.NODE_OPTIONS||`not set`,UV_THREADPOOL_SIZE:process.env.UV_THREADPOOL_SIZE||`default`,HTTP_PROXY:process.env.HTTP_PROXY||`not set`,HTTPS_PROXY:process.env.HTTPS_PROXY||`not set`,NO_PROXY:process.env.NO_PROXY||`not set`})}`);let n=new SE(e,t),r=await lO(e,t),i=!!await n.tokens(),s=Bs();K(e,`Proxy options: ${s.dispatcher?`custom dispatcher`:`default`}`);let c={authProvider:n,fetch:dA(iqe(UC(),n)),requestInit:{...s,headers:{"User-Agent":ha(),...o&&!i&&{Authorization:`Bearer ${o}`},...r}}},l=c.requestInit?.headers?pr(c.requestInit.headers,(e,t)=>t.toLowerCase()===`authorization`?`[REDACTED]`:e):void 0;K(e,`HTTP transport options: ${V({url:t.url,headers:l,hasAuthProvider:!!n,timeoutMs:TA})}`),a=new jw(new URL(t.url),c),K(e,`HTTP transport created successfully`)}else if(t.type===`sdk`)throw Error(`SDK servers should be handled in print.ts`);else if(t.type===`claudeai-proxy`){if(K(e,`Initializing claude.ai proxy transport for server ${t.id}`),!Xn())throw Error(`No claude.ai OAuth token found`);let n=ro(),r=`${n.MCP_PROXY_URL}${n.MCP_PROXY_PATH.replace(`{server_id}`,t.id)}`;K(e,`Using claude.ai proxy at ${r}`);let i=u2e(globalThis.fetch),o=Bs(),s={fetch:dA(i),requestInit:{...o,headers:{"User-Agent":ha(),"X-Mcp-Client-Session-Id":Ft()}}};a=new jw(new URL(r),s),K(e,`claude.ai proxy transport created successfully`)}else if((t.type===`stdio`||!t.type)&&au(e)){let{createChromeContext:n}=await import(`./mcpServer-Do9XTs2J.js`),{createClaudeForChromeMcpServer:r}=await import(`./src-CRsA-Z4y.js`),{createLinkedTransportPair:o}=await import(`./InProcessTransport-DB52dh4f.js`);i=r(n(t.env));let[s,c]=o();await i.connect(c),a=s,K(e,`In-process Chrome MCP server started`)}else if((t.type===`stdio`||!t.type)&&SA(e)){let{createComputerUseMcpServerForCli:t}=await import(`./mcpServer-DcSto-Od.js`),{createLinkedTransportPair:n}=await import(`./InProcessTransport-DB52dh4f.js`);i=await t();let[r,o]=n();await i.connect(o),a=r,K(e,`In-process Computer Use MCP server started`)}else if(t.type===`stdio`||!t.type){let e=t;a=new uHe({command:process.env.CLAUDE_CODE_SHELL_PREFIX||e.command,args:process.env.CLAUDE_CODE_SHELL_PREFIX?[[e.command,...e.args].join(` `)]:e.args,env:{...ou(),...e.env},stderr:`pipe`})}else throw Error(`Unsupported server type: ${t.type}`);let s,c=``;if(t.type===`stdio`||!t.type){let e=a;e.stderr&&(s=e=>{if(c.length<64*1024*1024)try{c+=e.toString()}catch{}},e.stderr.on(`data`,s))}let l=new cC({name:`claude-code`,title:`Claude Code`,version:`2.6.10`,description:`Anthropic's agentic coding tool`,websiteUrl:aS},{capabilities:{roots:{},elicitation:{}}});if(t.type===`http`&&K(e,`Client created, setting up request handler`),l.setRequestHandler(Tee,async()=>(K(e,`Received ListRoots request from server`),{roots:[{uri:`file://${fn()}`}]})),K(e,`Starting connection with timeout of ${uA()}ms`),t.type===`http`){K(e,`Testing basic HTTP connectivity to ${t.url}`);try{let n=new URL(t.url);K(e,`Parsed URL: host=${n.hostname}, port=${n.port||`default`}, protocol=${n.protocol}`),(n.hostname===`127.0.0.1`||n.hostname===`localhost`)&&K(e,`Using loopback address: ${n.hostname}`)}catch(t){K(e,`Failed to parse URL: ${t}`)}}let u=l.connect(a),d=new Promise((t,n)=>{let o=setTimeout(()=>{K(e,`Connection timeout triggered after ${Date.now()-r}ms (limit: ${uA()}ms)`),i&&i.close().catch(()=>{}),a.close().catch(()=>{}),n(new Ta(`MCP server "${e}" connection timed out after ${uA()}ms`,`MCP connection timeout`))},uA());u.then(()=>{clearTimeout(o)},e=>{clearTimeout(o)})});try{await Promise.race([u,d]),c&&(ko(e,`Server stderr: ${c}`),c=``);let n=Date.now()-r;K(e,`Successfully connected (transport: ${t.type||`stdio`}) in ${n}ms`)}catch(n){let o=Date.now()-r;if(t.type===`sse`&&n instanceof Error){if(K(e,`SSE Connection failed after ${o}ms: ${V({url:t.url,error:n.message,errorType:n.constructor.name,stack:n.stack})}`),ko(e,n),n instanceof Tw)return lA(e,t,`sse`)}else if(t.type===`http`&&n instanceof Error){let r=n;if(K(e,`HTTP Connection failed after ${o}ms: ${n.message} (code: ${r.code||`none`}, errno: ${r.errno||`none`})`),ko(e,n),n instanceof Tw)return lA(e,t,`http`)}else if(t.type===`claudeai-proxy`&&n instanceof Error){if(K(e,`claude.ai proxy connection failed after ${o}ms: ${n.message}`),ko(e,n),n.code===401)return lA(e,t,`claudeai-proxy`)}else (t.type===`sse-ide`||t.type===`ws-ide`)&&G(`tengu_mcp_ide_server_connection_failed`,{connectionDurationMs:o});throw i&&i.close().catch(()=>{}),a.close().catch(()=>{}),c&&ko(e,`Server stderr: ${c}`),n}let f=l.getServerCapabilities(),p=l.getServerVersion(),m=l.getInstructions(),h=m;if(m&&m.length>xA&&(h=m.slice(0,xA)+`… [truncated]`,K(e,`Server instructions truncated from ${m.length} to ${xA} chars`)),K(e,`Connection established with capabilities: ${V({hasTools:!!f?.tools,hasPrompts:!!f?.prompts,hasResources:!!f?.resources,hasResourceSubscribe:!!f?.resources?.subscribe,serverVersion:p||`unknown`})}`),U(`[MCP] Server "${e}" connected with subscribe=${!!f?.resources?.subscribe}`),l.setRequestHandler(et,async t=>(K(e,`Elicitation request received during initialization: ${V(t)}`),{action:`cancel`})),t.type===`sse-ide`||t.type===`ws-ide`){G(`tengu_mcp_ide_server_connection_succeeded`,{connectionDurationMs:Date.now()-r,serverVersion:p});try{c4e(l)}catch(t){ko(e,`Failed to send ide_connected notification: ${t}`)}}let g=Date.now(),_=!1,v=l.onerror,y=l.onclose,b=0,x=!1,S=t=>{x||(x=!0,K(e,`Closing transport (${t})`),l.close().catch(t=>{K(e,`Error during close: ${H(t)}`)}))},C=e=>e.includes(`ECONNRESET`)||e.includes(`ETIMEDOUT`)||e.includes(`EPIPE`)||e.includes(`EHOSTUNREACH`)||e.includes(`ECONNREFUSED`)||e.includes(`Body Timeout Error`)||e.includes(`terminated`)||e.includes(`SSE stream disconnected`)||e.includes(`Failed to reconnect SSE stream`);l.onerror=n=>{let r=Date.now()-g;_=!0;let i=t.type||`stdio`;if(K(e,`${i.toUpperCase()} connection dropped after ${Math.floor(r/1e3)}s uptime`),n.message&&(n.message.includes(`ECONNRESET`)?K(e,`Connection reset - server may have crashed or restarted`):n.message.includes(`ETIMEDOUT`)?K(e,`Connection timeout - network issue or server unresponsive`):n.message.includes(`ECONNREFUSED`)?K(e,`Connection refused - server may be down`):n.message.includes(`EPIPE`)?K(e,`Broken pipe - server closed connection unexpectedly`):n.message.includes(`EHOSTUNREACH`)?K(e,`Host unreachable - network connectivity issue`):n.message.includes(`ESRCH`)?K(e,`Process not found - stdio server process terminated`):n.message.includes(`spawn`)?K(e,`Failed to spawn process - check command and permissions`):K(e,`Connection error: ${n.message}`)),(i===`http`||i===`claudeai-proxy`)&&bA(n)){K(e,`MCP session expired (server returned 404 with session-not-found), triggering reconnection`),S(`session expired`),v&&v(n);return}if(i===`sse`||i===`http`||i===`claudeai-proxy`){if(n.message.includes(`Maximum reconnection attempts`)){S(`SSE reconnection exhausted`),v&&v(n);return}C(n.message)?(b++,K(e,`Terminal connection error ${b}/3`),b>=3&&(b=0,S(`max consecutive terminal errors`))):b=0}v&&v(n)},l.onclose=()=>{let n=Date.now()-g;K(e,`${(t.type??`unknown`).toUpperCase()} connection closed after ${Math.floor(n/1e3)}s (${_?`with errors`:`cleanly`})`);let r=fA(e,t);OA.cache.delete(e),kA.cache.delete(e),AA.cache.delete(e),EA.cache.delete(r),K(e,`Cleared connection cache for reconnection`),y&&y()};let w=async()=>{if(i){try{await i.close()}catch(t){K(e,`Error closing in-process server: ${t}`)}try{await l.close()}catch(t){K(e,`Error closing client: ${t}`)}return}if(s&&(t.type===`stdio`||!t.type)&&a.stderr?.off(`data`,s),t.type===`stdio`)try{let t=a.pid;if(t){K(e,`Sending SIGINT to MCP server process`);try{process.kill(t,`SIGINT`)}catch(t){K(e,`Error sending SIGINT: ${t}`);return}await new Promise(async n=>{let r=!1,i=setInterval(()=>{try{process.kill(t,0)}catch{r||(r=!0,clearInterval(i),clearTimeout(a),K(e,`MCP server process exited cleanly`),n())}},50),a=setTimeout(()=>{r||(r=!0,clearInterval(i),K(e,`Cleanup timeout reached, stopping process monitoring`),n())},600);try{if(await Hs(100),!r){try{process.kill(t,0),K(e,`SIGINT failed, sending SIGTERM to MCP server process`);try{process.kill(t,`SIGTERM`)}catch(t){K(e,`Error sending SIGTERM: ${t}`),r=!0,clearInterval(i),clearTimeout(a),n();return}}catch{r=!0,clearInterval(i),clearTimeout(a),n();return}if(await Hs(400),!r)try{process.kill(t,0),K(e,`SIGTERM failed, sending SIGKILL to MCP server process`);try{process.kill(t,`SIGKILL`)}catch(t){K(e,`Error sending SIGKILL: ${t}`)}}catch{r=!0,clearInterval(i),clearTimeout(a),n()}}r||(r=!0,clearInterval(i),clearTimeout(a),n())}catch{r||(r=!0,clearInterval(i),clearTimeout(a),n())}})}}catch(t){K(e,`Error terminating process: ${t}`)}try{await l.close()}catch(t){K(e,`Error closing client: ${t}`)}},T=ja(w),E=async()=>{T?.(),await w()};return G(`tengu_mcp_server_connection_succeeded`,{connectionDurationMs:Date.now()-r,transportType:t.type??`stdio`,totalServers:n?.totalServers,stdioCount:n?.stdioCount,sseCount:n?.sseCount,httpCount:n?.httpCount,sseIdeCount:n?.sseIdeCount,wsIdeCount:n?.wsIdeCount,...cA(t)}),{name:e,client:l,type:`connected`,capabilities:f??{},serverInfo:p,instructions:h,config:t,cleanup:E}}catch(a){let o=Date.now()-r;return G(`tengu_mcp_server_connection_failed`,{connectionDurationMs:o,totalServers:n?.totalServers||1,stdioCount:n?.stdioCount||+(t.type===`stdio`),sseCount:n?.sseCount||+(t.type===`sse`),httpCount:n?.httpCount||+(t.type===`http`),sseIdeCount:n?.sseIdeCount||+(t.type===`sse-ide`),wsIdeCount:n?.wsIdeCount||+(t.type===`ws-ide`),transportType:t.type??`stdio`,...cA(t)}),K(e,`Connection failed after ${o}ms: ${H(a)}`),ko(e,`Connection failed: ${H(a)}`),i&&i.close().catch(()=>{}),{name:e,type:`failed`,config:t,error:H(a)}}},fA),DA=20,OA=Lo(async e=>{if(e.type!==`connected`)return[];try{if(!e.capabilities?.tools)return[];let t=cO((await e.client.request({method:`tools/list`},fee)).tools),n=e.config.type===`sdk`&&x(process.env.CLAUDE_AGENT_SDK_MCP_NO_PREFIX);return t.map(t=>{let r=kae(e.name,t.name);return{...lWe,name:n?t.name:r,mcpInfo:{serverName:e.name,toolName:t.name},isMcp:!0,searchHint:typeof t._meta?.[`anthropic/searchHint`]==`string`&&t._meta[`anthropic/searchHint`].replace(/\s+/g,` `).trim()||void 0,alwaysLoad:t._meta?.[`anthropic/alwaysLoad`]===!0,async description(){return t.description??``},async prompt(){let e=t.description??``;return e.length>xA?e.slice(0,xA)+`… [truncated]`:e},isConcurrencySafe(){return t.annotations?.readOnlyHint??!1},isReadOnly(){return t.annotations?.readOnlyHint??!1},toAutoClassifierInput(e){return _2e(e,t.name)},isDestructive(){return t.annotations?.destructiveHint??!1},isOpenWorld(){return t.annotations?.openWorldHint??!1},isSearchOrReadCommand(){return v$e(e.name,t.name)},inputJSONSchema:t.inputSchema,async checkPermissions(){return{behavior:`passthrough`,message:`MCPTool requires permission.`,suggestions:[{type:`addRules`,rules:[{toolName:r,ruleContent:void 0}],behavior:`allow`,destination:`localSettings`}]}},async call(n,r,i,a,o){let s=j2e(a),c=s?{"claudecode/toolUseId":s}:{};o&&s&&o({toolUseID:s,data:{type:`mcp_progress`,status:`started`,serverName:e.name,toolName:t.name}});let l=Date.now();for(let i=0;;i++)try{let i=await k2e({client:await mA(e),clientConnection:e,tool:t.name,args:n,meta:c,signal:r.abortController.signal,setAppState:r.setAppState,onProgress:o&&s?e=>{o({toolUseID:s,data:e})}:void 0,handleElicitation:r.handleElicitation});return o&&s&&o({toolUseID:s,data:{type:`mcp_progress`,status:`completed`,serverName:e.name,toolName:t.name,elapsedTimeMs:Date.now()-l}}),{data:i.content,...(i._meta||i.structuredContent)&&{mcpMeta:{...i._meta&&{_meta:i._meta},...i.structuredContent&&{structuredContent:i.structuredContent}}}}}catch(n){if(n instanceof vA&&i<1){K(e.name,`Retrying tool '${t.name}' after session recovery`);continue}if(o&&s&&o({toolUseID:s,data:{type:`mcp_progress`,status:`failed`,serverName:e.name,toolName:t.name,elapsedTimeMs:Date.now()-l}}),n instanceof Error&&!(n instanceof Ta)){let e=n.constructor.name;if(e===`Error`)throw new Ta(n.message,n.message.slice(0,200));if(e===`McpError`&&`code`in n&&typeof n.code==`number`)throw new Ta(n.message,`McpError ${n.code}`)}throw n}},userFacingName(){let n=t.annotations?.title||t.name;return`${e.name} - ${n} (MCP)`},...au(e.name)&&(e.config.type===`stdio`||!e.config.type)?P2e().getClaudeInChromeMCPToolOverrides(t.name):{},...(e.config.type===`stdio`||!e.config.type)&&SA(e.name)?F2e().getComputerUseMCPToolOverrides(t.name):{}}}).filter(h2e)}catch(t){return ko(e.name,`Failed to fetch tools: ${H(t)}`),[]}},e=>e.name,DA),kA=Lo(async e=>{if(e.type!==`connected`)return[];try{if(!e.capabilities?.resources)return[];let t=await e.client.request({method:`resources/list`},nee);return t.resources?t.resources.map(t=>({...t,server:e.name})):[]}catch(t){return ko(e.name,`Failed to fetch resources: ${H(t)}`),[]}},e=>e.name,DA),AA=Lo(async e=>{if(e.type!==`connected`)return[];try{if(!e.capabilities?.prompts)return[];let t=await e.client.request({method:`prompts/list`},pee);return t.prompts?cO(t.prompts).map(t=>{let n=Object.values(t.arguments??{}).map(e=>e.name);return{type:`prompt`,name:`mcp__`+Ls(e.name)+`__`+t.name,description:t.description??``,hasUserSpecifiedDescription:!!t.description,contentLength:0,isEnabled:()=>!0,isHidden:!1,isMcp:!0,progressMessage:`running`,userFacingName(){return`${e.name}:${t.name} (MCP)`},argNames:n,source:`mcp`,async getPromptForCommand(r){let i=r.split(` `);try{let r=await mA(e),a=await r.client.getPrompt({name:t.name,arguments:Eoe(n,i)});return(await Promise.all(a.messages.map(e=>S2e(e.content,r.name)))).flat()}catch(n){throw ko(e.name,`Error running command '${t.name}': ${H(n)}`),n}}}}):[]}catch(t){return ko(e.name,`Failed to fetch commands: ${H(t)}`),[]}},e=>e.name,DA)}));function B2e(e){let t=Su(),n=[],r=MA[e.toLowerCase()];if(!r)return n;let i=process.env.APPDATA||Y(t,`AppData`,`Roaming`),a=process.env.LOCALAPPDATA||Y(t,`AppData`,`Local`);switch(wpe()){case`darwin`:n.push(Y(t,`Library`,`Application Support`,`JetBrains`),Y(t,`Library`,`Application Support`)),e.toLowerCase()===`androidstudio`&&n.push(Y(t,`Library`,`Application Support`,`Google`));break;case`win32`:n.push(Y(i,`JetBrains`),Y(a,`JetBrains`),Y(i)),e.toLowerCase()===`androidstudio`&&n.push(Y(a,`Google`));break;case`linux`:n.push(Y(t,`.config`,`JetBrains`),Y(t,`.local`,`share`,`JetBrains`));for(let e of r)n.push(Y(t,`.`+e));e.toLowerCase()===`androidstudio`&&n.push(Y(t,`.config`,`Google`));break;default:break}return n}async function V2e(e){let t=[],n=za(),r=B2e(e),i=MA[e.toLowerCase()];if(!i)return t;let a=i.map(e=>RegExp(`^`+e));for(let e of r)try{let r=await n.readdir(e);for(let i of a)for(let a of r){if(!i.test(a.name)||!a.isDirectory()&&!a.isSymbolicLink())continue;let r=Y(e,a.name);if(wpe()===`linux`){t.push(r);continue}let o=Y(r,`plugins`);try{await n.stat(o),t.push(o)}catch{}}}catch{}return t.filter((e,n)=>t.indexOf(e)===n)}async function H2e(e){let t=await V2e(e);for(let e of t){let t=Y(e,K2e);try{return await za().stat(t),!0}catch{}}return!1}async function U2e(e,t=!1){if(!t){let t=PA.get(e);if(t)return t}let n=H2e(e).then(t=>(NA.set(e,t),t));return PA.set(e,n),n}async function W2e(e,t=!1){return t&&(NA.delete(e),PA.delete(e)),U2e(e,t)}function G2e(e){return NA.get(e)??!1}var K2e,MA,NA,PA,q2e=n((()=>{Fa(),K2e=`claude-code-jetbrains-plugin`,MA={pycharm:[`PyCharm`],intellij:[`IntelliJIdea`,`IdeaIC`],webstorm:[`WebStorm`],phpstorm:[`PhpStorm`],rubymine:[`RubyMine`],clion:[`CLion`],goland:[`GoLand`],rider:[`Rider`],datagrip:[`DataGrip`],appcode:[`AppCode`],dataspell:[`DataSpell`],aqua:[`Aqua`],gateway:[`Gateway`],fleet:[`Fleet`],androidstudio:[`AndroidStudio`]},NA=new Map,PA=new Map}));function J2e(e,t){let n=e.match(/^\\\\wsl(?:\.localhost|\$)\\([^\\]+)(.*)$/);return n?n[1]===t:!0}var FA,Y2e=n((()=>{FA=class{constructor(e){this.wslDistroName=e}toLocalPath(e){if(!e)return e;if(this.wslDistroName){let t=e.match(/^\\\\wsl(?:\.localhost|\$)\\([^\\]+)(.*)$/);if(t&&t[1]!==this.wslDistroName)return e}try{return Td(`wslpath`,[`-u`,e],{encoding:`utf8`,stdio:[`pipe`,`pipe`,`ignore`]}).trim()}catch{return e.replace(/\\/g,`/`).replace(/^([A-Z]):/i,(e,t)=>`/mnt/${t.toLowerCase()}`)}}toIDEPath(e){if(!e)return e;try{return Td(`wslpath`,[`-w`,e],{encoding:`utf8`,stdio:[`pipe`,`pipe`,`ignore`]}).trim()}catch{return e}}}}));function X2e({onDone:e,installationStatus:t}){Q2e(),wt({"confirm:yes":e,"confirm:no":e},{context:`Confirmation`});let n=t?.ideType??zA(),r=RA(n),i=UA(n),a=t?.installedVersion,o=r?`plugin`:`extension`,s=po.platform===`darwin`?`Cmd+Option+K`:`Ctrl+Alt+K`;return(0,IA.jsxs)(IA.Fragment,{children:[(0,IA.jsx)(bt,{title:(0,IA.jsxs)(IA.Fragment,{children:[(0,IA.jsx)(z,{color:`claude`,children:`✻ `}),(0,IA.jsxs)(z,{children:[`Welcome to Claude Code for `,i]})]}),subtitle:a?`installed ${o} v${a}`:void 0,color:`ide`,onCancel:e,hideInputGuide:!0,children:(0,IA.jsxs)(B,{flexDirection:`column`,gap:1,children:[(0,IA.jsxs)(z,{children:[`• Claude has context of `,(0,IA.jsx)(z,{color:`suggestion`,children:`⧉ open files`}),` and`,` `,(0,IA.jsx)(z,{color:`suggestion`,children:`⧉ selected lines`})]}),(0,IA.jsxs)(z,{children:[`• Review Claude Code's changes `,(0,IA.jsx)(z,{color:`diffAddedWord`,children:`+11`}),` `,(0,IA.jsx)(z,{color:`diffRemovedWord`,children:`-22`}),` in the comfort of your IDE`]}),(0,IA.jsxs)(z,{children:[`• Cmd+Esc`,(0,IA.jsx)(z,{dimColor:!0,children:` for Quick Launch`})]}),(0,IA.jsxs)(z,{children:[`• `,s,(0,IA.jsx)(z,{dimColor:!0,children:` to reference files or lines in your input`})]})]})}),(0,IA.jsx)(B,{paddingX:1,children:(0,IA.jsx)(z,{dimColor:!0,italic:!0,children:`Press Enter to continue`})})]})}function Z2e(){let e=Tr(),t=$r.terminal||`unknown`;return e.hasIdeOnboardingBeenShown?.[t]===!0}function Q2e(){if(Z2e())return;let e=$r.terminal||`unknown`;fr(t=>({...t,hasIdeOnboardingBeenShown:{...t.hasIdeOnboardingBeenShown,[e]:!0}}))}var IA,$2e=n((()=>{R(),na(),Tt(),ru(),xn(),fo(),$A(),IA=jt()}));function e4e(e){try{return process.kill(e,0),!0}catch{return!1}}function t4e(){let e=null;return()=>(e||(e=Ice(process.ppid,10).then(e=>new Set(e))),e)}function LA(e){if(!e)return!1;let t=GA[e];return t&&t.ideKind===`vscode`}function RA(e){if(!e)return!1;let t=GA[e];return t&&t.ideKind===`jetbrains`}function zA(){return JA()?po.terminal:null}async function BA(){try{let e=await r4e();return(await Promise.all(e.map(async e=>{try{let t=(await za().readdir(e)).filter(e=>e.name.endsWith(`.lock`));return(await Promise.all(t.map(async t=>{let n=Y(e,t.name);try{return{path:n,mtime:(await za().stat(n)).mtime}}catch{return null}}))).filter(e=>e!==null)}catch(e){return Aa(e)||q(e),[]}}))).flat().sort((e,t)=>t.mtime.getTime()-e.mtime.getTime()).map(e=>e.path)}catch(e){return q(e),[]}}async function n4e(e){try{let t=await za().readFile(e,{encoding:`utf-8`}),n=[],r,i,a=!1,o=!1,s;try{let e=Da(t);e.workspaceFolders&&(n=e.workspaceFolders),r=e.pid,i=e.ideName,a=e.transport===`ws`,o=e.runningInWindows===!0,s=e.authToken}catch{n=t.split(`
|
|
924
|
-
`).map(e=>e.trim())}let c=e.split(Pu).pop();if(!c)return null;let l=c.replace(`.lock`,``);return{workspaceFolders:n,port:parseInt(l,10),pid:r,ideName:i,useWebSocket:a,runningInWindows:o,authToken:s}}catch(e){return q(e),null}}async function VA(e,t,n=500){try{return new Promise(r=>{let i=vme({host:e,port:t,timeout:n});i.on(`connect`,()=>{i.destroy(),r(!0)}),i.on(`error`,()=>{r(!1)}),i.on(`timeout`,()=>{i.destroy(),r(!1)})})}catch{return!1}}async function r4e(){let e=[Y(_(),`ide`)];if(No()!==`wsl`)return e;let t=await O4e();if(t){let n=new FA(process.env.WSL_DISTRO_NAME).toLocalPath(t);e.push(Nu(n,`.claude`,`ide`))}try{let t=`/mnt/c/Users`,n=await za().readdir(t);for(let r of n)!r.isDirectory()&&!r.isSymbolicLink()||r.name===`Public`||r.name===`Default`||r.name===`Default User`||r.name===`All Users`||e.push(Y(t,r.name,`.claude`,`ide`))}catch(e){Aa(e)?U(`WSL IDE lockfile path detection failed (${e.code}): ${H(e)}`):q(e)}return e}async function i4e(){try{let e=await BA();for(let t of e){let e=await n4e(t);if(!e){try{await za().unlink(t)}catch(e){q(e)}continue}let n=await QA(e.runningInWindows,e.port),r=!1;if(e.pid?e4e(e.pid)||No()===`wsl`&&await VA(n,e.port)||(r=!0):await VA(n,e.port)||(r=!0),r)try{await za().unlink(t)}catch(e){q(e)}}}catch(e){q(e)}}async function a4e(e){try{let t=await d4e(e);return G(`tengu_ext_installed`,{}),Tr().diffTool||fr(e=>({...e,diffTool:`auto`})),{installed:!0,error:null,installedVersion:t,ideType:e}}catch(t){G(`tengu_ext_install_error`,{});let n=t instanceof Error?t.message:String(t);return q(t),{installed:!1,error:n,installedVersion:null,ideType:e}}}async function o4e(){YA&&YA.abort(),YA=iy();let e=YA.signal;await i4e();let t=Date.now();for(;Date.now()-t<3e4&&!e.aborted;){if(Ote()){await Hs(1e3,e);continue}let t=await s4e(!1);if(e.aborted)return null;if(t.length===1)return t[0];await Hs(1e3,e)}return null}async function s4e(e){let t=[];try{let n=process.env.CLAUDE_CODE_SSE_PORT,r=n?parseInt(n,10):null,i=fn().normalize(`NFC`),a=await BA(),o=await Promise.all(a.map(n4e)),s=t4e(),c=No()!==`wsl`&&JA();for(let n of o){if(!n)continue;let a=!1;if(a=x(process.env.CLAUDE_CODE_IDE_SKIP_VALID_CHECK)||n.port===r?!0:n.workspaceFolders.some(e=>{if(!e)return!1;let t=e;if(No()===`wsl`&&n.runningInWindows&&process.env.WSL_DISTRO_NAME){if(!J2e(e,process.env.WSL_DISTRO_NAME))return!1;let n=Nu(t).normalize(`NFC`);if(i===n||i.startsWith(n+Pu))return!0;t=new FA(process.env.WSL_DISTRO_NAME).toLocalPath(e)}let r=Nu(t).normalize(`NFC`);if(No()===`windows`){let e=i.replace(/^[a-zA-Z]:/,e=>e.toUpperCase()),t=r.replace(/^[a-zA-Z]:/,e=>e.toUpperCase());return e===t||e.startsWith(t+Pu)}return i===r||i.startsWith(r+Pu)}),!a&&!e||c&&!(r!==null&&n.port===r)&&(!n.pid||!e4e(n.pid)||process.ppid!==n.pid&&!(await s()).has(n.pid)))continue;let o=n.ideName??(JA()?UA($r.terminal):`IDE`),l=await QA(n.runningInWindows,n.port),u;u=n.useWebSocket?`ws://${l}:${n.port}`:`http://${l}:${n.port}/sse`,t.push({url:u,name:o,workspaceFolders:n.workspaceFolders,port:n.port,isValid:a,authToken:n.authToken,ideRunningInWindows:n.runningInWindows})}if(!e&&r){let e=t.filter(e=>e.isValid&&e.port===r);if(e.length===1)return e}}catch(e){q(e)}return t}async function c4e(e){await e.notification({method:`ide_connected`,params:{pid:process.pid}})}function l4e(e){return e.some(e=>e.type===`connected`&&e.name===`ide`)}async function u4e(e){if(LA(e)){let t=await h4e(e);if(t)try{if((await $o(t,[`--list-extensions`],{env:HA()})).stdout?.includes(k4e))return!0}catch{}}else if(RA(e))return await W2e(e);return!1}async function d4e(e){if(LA(e)){let t=await h4e(e);if(t){if(process.env.USER_TYPE===`ant`)return await D4e(t);let e=await p4e(t);if(!e||cfe(e,f4e())){await Hs(500);let n=await $o(t,[`--force`,`--install-extension`,`anthropic.claude-code`],{env:HA()});if(n.code!==0)throw Error(`${n.code}: ${n.error} ${n.stderr}`);e=f4e()}return e}}return null}function HA(){if(No()===`linux`)return{...process.env,DISPLAY:``}}function f4e(){return`2.6.
|
|
923
|
+
`);for(let n=0;n<t.length;n++){n>0&&(r.push([]),i+=1);let a=t[n];a.length>0&&r[r.length-1].push({text:a,highlight:e.highlight,start:i}),i+=a.length}}let a=t.some(e=>e.shimmerColor),o=0,s=1;if(a){let e=1/0,n=-1/0;for(let r of t)r.shimmerColor&&(e=Math.min(e,r.start),n=Math.max(n,r.end));o=e-10,s=n-e+20}return{lines:r,hasShimmer:a,sweepStart:o,cycleLength:s}},[e,t]),[o,s]=ot(r?50:null),c=r?i+Math.floor(s/50)%a:-100;return(0,Mk.jsx)(B,{ref:o,flexDirection:`column`,children:n.map((e,t)=>(0,Mk.jsx)(B,{children:e.length===0?(0,Mk.jsx)(z,{children:` `}):e.map((e,t)=>e.highlight?.shimmerColor&&e.highlight.color?(0,Mk.jsx)(z,{children:e.text.split(``).map((t,n)=>(0,Mk.jsx)(D0e,{char:t,index:e.start+n,glimmerIndex:c,messageColor:e.highlight.color,shimmerColor:e.highlight.shimmerColor},n))},t):(0,Mk.jsx)(z,{color:e.highlight?.color,dimColor:e.highlight?.dimColor,inverse:e.highlight?.inverse,children:(0,Mk.jsx)(yt,{children:e.text})},t))},t))})}var A0e,Mk,j0e=n((()=>{A0e=r(R(),1),Tt(),E0e(),jk(),Mk=jt()}));function M0e({inputState:e,children:t,terminalFocus:n,invert:r,hidePlaceholderText:i,...a}){let{onInput:o,renderedValue:s,cursorLine:c,cursorColumn:l}=e,u=Bee({line:c,column:l,active:!!(a.focus&&a.showCursor&&n)}),{wrappedOnInput:d,isPasting:f}=y0e({onPaste:a.onPaste,onInput:(e,t)=>{f&&t.return||o(e,t)},onImagePaste:a.onImagePaste}),{onIsPastingChange:p}=a;N0e.useEffect(()=>{p&&p(f)},[f,p]);let{showPlaceholder:m,renderedPlaceholder:h}=_0e({placeholder:a.placeholder,value:a.value,showCursor:a.showCursor,focus:a.focus,terminalFocus:n,invert:r,hidePlaceholderText:i});At(d,{isActive:a.focus});let g=a.value&&a.value.trim().indexOf(` `)===-1||a.value&&a.value.endsWith(` `),_=!!(a.argumentHint&&a.value&&g&&a.value.startsWith(`/`)),v=a.showCursor&&a.highlights?a.highlights.filter(e=>e.dimColor||a.cursorOffset<e.start||a.cursorOffset>=e.end):a.highlights,{viewportCharOffset:y,viewportCharEnd:b}=e,x=v&&y>0?v.filter(e=>e.end>y&&e.start<b).map(e=>({...e,start:Math.max(0,e.start-y),end:e.end-y})):v;return x&&x.length>0?(0,Nk.jsxs)(B,{ref:u,children:[(0,Nk.jsx)(k0e,{text:s,highlights:x}),_&&(0,Nk.jsxs)(z,{dimColor:!0,children:[a.value?.endsWith(` `)?``:` `,a.argumentHint]}),t]}):(0,Nk.jsx)(B,{ref:u,children:(0,Nk.jsxs)(z,{wrap:`truncate-end`,dimColor:a.dimColor,children:[m&&a.placeholderElement?a.placeholderElement:m&&h?(0,Nk.jsx)(yt,{children:h}):(0,Nk.jsx)(yt,{children:s}),_&&(0,Nk.jsxs)(z,{dimColor:!0,children:[a.value?.endsWith(` `)?``:` `,a.argumentHint]}),t]})})}var N0e,Nk,P0e=n((()=>{N0e=r(R(),1),v0e(),S0e(),Tt(),j0e(),Nk=jt()}));function F0e(){return process.env.TERM===`xterm-ghostty`?[`·`,`✢`,`✱`,`✶`,`✻`,`*`]:(process.platform,[`·`,`✢`,`✱`,`✶`,`✻`,`✽`])}function Pk(e,t,n){return{r:Math.round(e.r+(t.r-e.r)*n),g:Math.round(e.g+(t.g-e.g)*n),b:Math.round(e.b+(t.b-e.b)*n)}}function Fk(e){return`rgb(${e.r},${e.g},${e.b})`}function I0e(e){let t=(e%360+360)%360,n=.6,r=(1-Math.abs(2*n-1))*.7,i=r*(1-Math.abs(t/60%2-1)),a=n-r/2,o=0,s=0,c=0;return t<60?(o=r,s=i):t<120?(o=i,s=r):t<180?(s=r,c=i):t<240?(s=i,c=r):t<300?(o=i,c=r):(o=r,c=i),{r:Math.round((o+a)*255),g:Math.round((s+a)*255),b:Math.round((c+a)*255)}}function Ik(e){let t=Lk.get(e);if(t!==void 0)return t;let n=e.match(/rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/),r=n?{r:parseInt(n[1],10),g:parseInt(n[2],10),b:parseInt(n[3],10)}:null;return Lk.set(e,r),r}var Lk,Rk=n((()=>{Lk=new Map}));function zk(e){let[t]=_t(),n=qee(),r=(0,Bk.useMemo)(()=>x(process.env.CLAUDE_CODE_ACCESSIBILITY),[]),i=ZO().prefersReducedMotion??!1,a=xO(e=>e.voiceState)===`recording`,o=xO(e=>e.voiceAudioLevels),s=(0,Bk.useRef)(Array(R0e).fill(0)),[c,l]=ot(a&&!i?50:null),u=c,d=l;_1e(n,!!e.onImagePaste);let f=n&&!r,p;if(!f)p=e=>e;else if(a&&!i){let e=s.current,t=o.length>0?o[o.length-1]??0:0,n=Math.min(t*z0e,1);e[0]=(e[0]??0)*Hk+n*(1-Hk);let r=e[0]??0,i=Math.max(1,Math.min(Math.round(r*8),8)),a=t<B0e,c=d/1e3*90%360,{r:l,g:u,b:f}=a?{r:128,g:128,b:128}:I0e(c);p=()=>ut.rgb(l,u,f)(L0e[i])}else p=ut.inverse;return(0,Vk.jsx)(B,{ref:u,children:(0,Vk.jsx)(M0e,{inputState:h0e({value:e.value,onChange:e.onChange,onSubmit:e.onSubmit,onExit:e.onExit,onExitMessage:e.onExitMessage,onHistoryReset:e.onHistoryReset,onHistoryUp:e.onHistoryUp,onHistoryDown:e.onHistoryDown,onClearInput:e.onClearInput,focus:e.focus,mask:e.mask,multiline:e.multiline,cursorChar:e.showCursor?` `:``,highlightPastedText:e.highlightPastedText,invert:p,themeText:Dt(`text`,t),columns:e.columns,maxVisibleLines:e.maxVisibleLines,onImagePaste:e.onImagePaste,disableCursorMovementForUpDownKeys:e.disableCursorMovementForUpDownKeys,disableEscapeDoublePress:e.disableEscapeDoublePress,externalOffset:e.cursorOffset,onOffsetChange:e.onChangeCursorOffset,inputFilter:e.inputFilter,inlineGhostText:e.inlineGhostText,dim:ut.dim}),terminalFocus:n,highlights:e.highlights,invert:p,hidePlaceholderText:a,...e})})}var Bk,Vk,L0e,R0e,Hk,z0e,B0e,Uk=n((()=>{ft(),Bk=r(R(),1),wO(),x1e(),QO(),g0e(),Tt(),y(),P0e(),Rk(),Vk=jt(),L0e=` ▁▂▃▄▅▆▇█`,R0e=1,Hk=.7,z0e=1.8,B0e=.15}));function Wk({isFocused:e,isSelected:t,children:n,description:r,shouldShowDownArrow:i,shouldShowUpArrow:a,declareCursor:o}){return(0,V0e.jsx)(rte,{isFocused:e,isSelected:t,description:r,showScrollDown:i,showScrollUp:a,styled:!1,declareCursor:o,children:n})}var V0e,Gk=n((()=>{R(),Tt(),V0e=jt()}));function Kk({option:e,isFocused:t,isSelected:n,shouldShowDownArrow:r,shouldShowUpArrow:i,maxIndexWidth:a,index:o,inputValue:s,onInputChange:c,onSubmit:l,onExit:u,layout:d,children:f,showLabel:p=!1,onOpenEditor:m,resetCursorOnUpdate:h=!1,onImagePaste:g,pastedContents:_,onRemoveImage:v,imagesSelected:y,selectedImageIndex:b=0,onImagesSelectedChange:x,onSelectedImageIndexChange:S}){let C=_?Object.values(_).filter(e=>e.type===`image`):[],w=p||e.showLabelWithValue===!0,[T,E]=(0,qk.useState)(s.length),D=(0,qk.useRef)(!1);(0,qk.useEffect)(()=>{h&&t&&(D.current?D.current=!1:E(s.length))},[h,t,s]),Et(`chat:externalEditor`,()=>{m?.(s,c)},{context:`Chat`,isActive:t&&!!m}),Et(`chat:imagePaste`,()=>{g&&uO().then(e=>{e&&g(e.base64,e.mediaType,void 0,e.dimensions)})},{context:`Chat`,isActive:t&&!!g}),Et(`attachments:remove`,()=>{C.length>0&&v&&v(C.at(-1).id)},{context:`Attachments`,isActive:t&&!y&&s===``&&C.length>0&&!!v}),wt({"attachments:next":()=>{C.length>1&&S?.((b+1)%C.length)},"attachments:previous":()=>{C.length>1&&S?.((b-1+C.length)%C.length)},"attachments:remove":()=>{let e=C[b];e&&v&&(v(e.id),C.length<=1?x?.(!1):S?.(Math.min(b,C.length-2)))},"attachments:exit":()=>{x?.(!1)}},{context:`Attachments`,isActive:t&&!!y}),At((e,t)=>{t.upArrow&&x?.(!1)},{isActive:t&&!!y}),(0,qk.useEffect)(()=>{!t&&y&&x?.(!1)},[t,y,x]);let ee=d===`expanded`?a+3:a+4;return(0,Jk.jsxs)(B,{flexDirection:`column`,flexShrink:0,children:[(0,Jk.jsx)(Wk,{isFocused:t,isSelected:n,shouldShowDownArrow:r,shouldShowUpArrow:i,declareCursor:!1,children:(0,Jk.jsxs)(B,{flexDirection:`row`,flexShrink:d===`compact`?0:void 0,children:[(0,Jk.jsx)(z,{dimColor:!0,children:`${o}.`.padEnd(a+2)}),f,w?(0,Jk.jsxs)(Jk.Fragment,{children:[(0,Jk.jsx)(z,{color:t?`suggestion`:void 0,children:e.label}),t?(0,Jk.jsxs)(Jk.Fragment,{children:[(0,Jk.jsx)(z,{color:`suggestion`,children:e.labelValueSeparator??`, `}),(0,Jk.jsx)(zk,{value:s,onChange:t=>{D.current=!0,c(t),e.onChange(t)},onSubmit:l,onExit:u,placeholder:e.placeholder,focus:!y,showCursor:!0,multiline:!0,cursorOffset:T,onChangeCursorOffset:E,columns:80,onImagePaste:g,onPaste:t=>{D.current=!0;let n=s.slice(0,T),r=s.slice(T),i=n+t+r;c(i),e.onChange(i),E(n.length+t.length)}})]}):s&&(0,Jk.jsxs)(z,{children:[e.labelValueSeparator??`, `,s]})]}):t?(0,Jk.jsx)(zk,{value:s,onChange:t=>{D.current=!0,c(t),e.onChange(t)},onSubmit:l,onExit:u,placeholder:e.placeholder||(typeof e.label==`string`?e.label:void 0),focus:!y,showCursor:!0,multiline:!0,cursorOffset:T,onChangeCursorOffset:E,columns:80,onImagePaste:g,onPaste:t=>{D.current=!0;let n=s.slice(0,T),r=s.slice(T),i=n+t+r;c(i),e.onChange(i),E(n.length+t.length)}}):(0,Jk.jsx)(z,{color:s?void 0:`inactive`,children:s||e.placeholder||e.label})]})}),e.description&&(0,Jk.jsx)(B,{paddingLeft:ee,children:(0,Jk.jsx)(z,{dimColor:e.dimDescription!==!1,color:n?`success`:t?`suggestion`:void 0,children:e.description})}),C.length>0&&(0,Jk.jsxs)(B,{flexDirection:`row`,gap:1,paddingLeft:ee,children:[C.map((e,t)=>(0,Jk.jsx)(K$e,{imageId:e.id,isSelected:!!y&&t===b},e.id)),(0,Jk.jsx)(B,{flexGrow:1,justifyContent:`flex-start`,flexDirection:`row`,children:(0,Jk.jsx)(z,{dimColor:!0,children:y?(0,Jk.jsxs)(St,{children:[C.length>1&&(0,Jk.jsxs)(Jk.Fragment,{children:[(0,Jk.jsx)(vO,{action:`attachments:next`,context:`Attachments`,fallback:`→`,description:`next`}),(0,Jk.jsx)(vO,{action:`attachments:previous`,context:`Attachments`,fallback:`←`,description:`prev`})]}),(0,Jk.jsx)(vO,{action:`attachments:remove`,context:`Attachments`,fallback:`backspace`,description:`remove`}),(0,Jk.jsx)(vO,{action:`attachments:exit`,context:`Attachments`,fallback:`esc`,description:`cancel`})]}):t?`(↓ to select)`:null})})]}),d===`expanded`&&(0,Jk.jsx)(z,{children:` `})]})}var qk,Jk,H0e=n((()=>{qk=r(R(),1),Tt(),ru(),pO(),q$e(),yO(),Uk(),Gk(),Jk=jt()}));function Yk(e,t=!0){let n=(0,Xk.useContext)(VO)?.setState;(0,Xk.useEffect)(()=>{if(!(!t||!n))return n(t=>{if(t.activeOverlays.has(e))return t;let n=new Set(t.activeOverlays);return n.add(e),{...t,activeOverlays:n}}),()=>{n(t=>{if(!t.activeOverlays.has(e))return t;let n=new Set(t.activeOverlays);return n.delete(e),{...t,activeOverlays:n}})}},[e,t,n]),(0,Xk.useLayoutEffect)(()=>{if(t)return()=>pt.get(process.stdout)?.invalidatePrevFrame()},[t])}function U0e(){return FO(e=>e.activeOverlays.size>0)}function W0e(){return FO(e=>{for(let t of e.activeOverlays)if(!G0e.has(t))return!0;return!1})}var Xk,G0e,Zk=n((()=>{Xk=r(R(),1),Tt(),UO(),G0e=new Set([`autocomplete`])})),Qk,K0e,q0e=n((()=>{Qk=r(R(),1),Zk(),Tt(),ru(),Di(),K0e=({isDisabled:e=!1,disableSelection:t=!1,state:n,options:r,isMultiSelect:i=!1,onUpFromFirstItem:a,onDownFromLastItem:o,onInputModeToggle:s,inputValues:c,imagesSelected:l=!1,onEnterImageSelection:u})=>{Yk(`select`,!!n.onCancel);let d=(0,Qk.useMemo)(()=>r.find(e=>e.value===n.focusedValue)?.type===`input`,[r,n.focusedValue]);wt((0,Qk.useMemo)(()=>{let e={};return d||(e[`select:next`]=()=>{if(o){let e=r[r.length-1];if(e&&n.focusedValue===e.value){o();return}}n.focusNextOption()},e[`select:previous`]=()=>{if(a&&n.visibleFromIndex===0){let e=r[0];if(e&&n.focusedValue===e.value){a();return}}n.focusPreviousOption()},e[`select:accept`]=()=>{t!==!0&&n.focusedValue!==void 0&&r.find(e=>e.value===n.focusedValue)?.disabled!==!0&&(n.selectFocusedOption?.(),n.onChange?.(n.focusedValue))}),n.onCancel&&(e[`select:cancel`]=()=>{n.onCancel()}),e},[r,n,o,a,d,t]),{context:`Select`,isActive:!e}),At((e,d,f)=>{let p=qre(e),m=r.find(e=>e.value===n.focusedValue),h=m?.type===`input`;if(d.tab&&s&&n.focusedValue!==void 0){s(n.focusedValue);return}if(h){if(l)return;if(d.downArrow&&u?.()){f.stopImmediatePropagation();return}if(d.downArrow||d.ctrl&&e===`n`){if(o){let e=r[r.length-1];if(e&&n.focusedValue===e.value){o(),f.stopImmediatePropagation();return}}n.focusNextOption(),f.stopImmediatePropagation();return}if(d.upArrow||d.ctrl&&e===`p`){if(a&&n.visibleFromIndex===0){let e=r[0];if(e&&n.focusedValue===e.value){a(),f.stopImmediatePropagation();return}}n.focusPreviousOption(),f.stopImmediatePropagation();return}return}if(d.pageDown&&n.focusNextPage(),d.pageUp&&n.focusPreviousPage(),t!==!0&&(i&&Zre(e)===` `&&n.focusedValue!==void 0&&m?.disabled!==!0&&(n.selectFocusedOption?.(),n.onChange?.(n.focusedValue)),t!==`numeric`&&/^[0-9]+$/.test(p))){let e=parseInt(p,10)-1;if(e>=0&&e<n.options.length){let t=n.options[e];if(t.disabled===!0)return;if(t.type===`input`){if((c?.get(t.value)??``).trim()){n.onChange?.(t.value);return}if(t.allowEmptySubmitToCancel){n.onChange?.(t.value);return}n.focusOption(t.value);return}n.onChange?.(t.value);return}}},{isActive:!e})}})),J0e,Y0e=n((()=>{O(),J0e=class extends Map{constructor(e){let t=[],n,r,i,a=0;for(let o of e){let e={label:o.label,value:o.value,description:o.description,previous:i,next:void 0,index:a};i&&(i.next=e),n||(n=e),r=e,t.push([o.value,e]),a++,i=e}super(t),k(this,`first`,void 0),k(this,`last`,void 0),this.first=n,this.last=r}}}));function X0e({visibleOptionCount:e=5,options:t,initialFocusValue:n,onFocus:r,focusValue:i}){let[a,o]=(0,$k.useReducer)(Z0e,{visibleOptionCount:e,options:t,initialFocusValue:i||n},eA),s=(0,$k.useRef)(r);s.current=r;let[c,l]=(0,$k.useState)(t);t!==c&&!pme(t,c)&&(o({type:`reset`,state:eA({visibleOptionCount:e,options:t,initialFocusValue:i??a.focusedValue??n,currentViewport:{visibleFromIndex:a.visibleFromIndex,visibleToIndex:a.visibleToIndex}})}),l(t));let u=(0,$k.useCallback)(()=>{o({type:`focus-next-option`})},[]),d=(0,$k.useCallback)(()=>{o({type:`focus-previous-option`})},[]),f=(0,$k.useCallback)(()=>{o({type:`focus-next-page`})},[]),p=(0,$k.useCallback)(()=>{o({type:`focus-previous-page`})},[]),m=(0,$k.useCallback)(e=>{e!==void 0&&o({type:`set-focus`,value:e})},[]),h=(0,$k.useMemo)(()=>t.map((e,t)=>({...e,index:t})).slice(a.visibleFromIndex,a.visibleToIndex),[t,a.visibleFromIndex,a.visibleToIndex]),g=(0,$k.useMemo)(()=>{if(a.focusedValue!==void 0)return t.some(e=>e.value===a.focusedValue)?a.focusedValue:t[0]?.value},[a.focusedValue,t]),_=(0,$k.useMemo)(()=>t.find(e=>e.value===g)?.type===`input`,[g,t]);return(0,$k.useEffect)(()=>{g!==void 0&&s.current?.(g)},[g]),(0,$k.useEffect)(()=>{i!==void 0&&o({type:`set-focus`,value:i})},[i]),{focusedValue:g,focusedIndex:(0,$k.useMemo)(()=>{if(g===void 0)return 0;let e=t.findIndex(e=>e.value===g);return e>=0?e+1:0},[g,t]),visibleFromIndex:a.visibleFromIndex,visibleToIndex:a.visibleToIndex,visibleOptions:h,isInInput:_??!1,focusNextOption:u,focusPreviousOption:d,focusNextPage:f,focusPreviousPage:p,focusOption:m,options:t}}var $k,Z0e,eA,Q0e=n((()=>{$k=r(R(),1),Y0e(),Z0e=(e,t)=>{switch(t.type){case`focus-next-option`:{if(e.focusedValue===void 0)return e;let t=e.optionMap.get(e.focusedValue);if(!t)return e;let n=t.next||e.optionMap.first;if(!n)return e;if(!t.next&&n===e.optionMap.first)return{...e,focusedValue:n.value,visibleFromIndex:0,visibleToIndex:e.visibleOptionCount};if(!(n.index>=e.visibleToIndex))return{...e,focusedValue:n.value};let r=Math.min(e.optionMap.size,e.visibleToIndex+1),i=r-e.visibleOptionCount;return{...e,focusedValue:n.value,visibleFromIndex:i,visibleToIndex:r}}case`focus-previous-option`:{if(e.focusedValue===void 0)return e;let t=e.optionMap.get(e.focusedValue);if(!t)return e;let n=t.previous||e.optionMap.last;if(!n)return e;if(!t.previous&&n===e.optionMap.last){let t=e.optionMap.size,r=Math.max(0,t-e.visibleOptionCount);return{...e,focusedValue:n.value,visibleFromIndex:r,visibleToIndex:t}}if(!(n.index<=e.visibleFromIndex))return{...e,focusedValue:n.value};let r=Math.max(0,e.visibleFromIndex-1),i=r+e.visibleOptionCount;return{...e,focusedValue:n.value,visibleFromIndex:r,visibleToIndex:i}}case`focus-next-page`:{if(e.focusedValue===void 0)return e;let t=e.optionMap.get(e.focusedValue);if(!t)return e;let n=Math.min(e.optionMap.size-1,t.index+e.visibleOptionCount),r=e.optionMap.first;for(;r&&r.index<n&&r.next;)r=r.next;if(!r)return e;let i=Math.min(e.optionMap.size,r.index+1),a=Math.max(0,i-e.visibleOptionCount);return{...e,focusedValue:r.value,visibleFromIndex:a,visibleToIndex:i}}case`focus-previous-page`:{if(e.focusedValue===void 0)return e;let t=e.optionMap.get(e.focusedValue);if(!t)return e;let n=Math.max(0,t.index-e.visibleOptionCount),r=e.optionMap.first;for(;r&&r.index<n&&r.next;)r=r.next;if(!r)return e;let i=Math.max(0,r.index),a=Math.min(e.optionMap.size,i+e.visibleOptionCount);return{...e,focusedValue:r.value,visibleFromIndex:i,visibleToIndex:a}}case`reset`:return t.state;case`set-focus`:{if(e.focusedValue===t.value)return e;let n=e.optionMap.get(t.value);if(!n)return e;if(n.index>=e.visibleFromIndex&&n.index<e.visibleToIndex)return{...e,focusedValue:t.value};let r,i;return n.index<e.visibleFromIndex?(r=n.index,i=Math.min(e.optionMap.size,r+e.visibleOptionCount)):(i=Math.min(e.optionMap.size,n.index+1),r=Math.max(0,i-e.visibleOptionCount)),{...e,focusedValue:t.value,visibleFromIndex:r,visibleToIndex:i}}}},eA=({visibleOptionCount:e,options:t,initialFocusValue:n,currentViewport:r})=>{let i=typeof e==`number`?Math.min(e,t.length):t.length,a=new J0e(t),o=n!==void 0&&a.get(n),s=o?n:a.first?.value,c=0,l=i;if(o){let e=o.index;r?e>=r.visibleFromIndex&&e<r.visibleToIndex?(c=r.visibleFromIndex,l=Math.min(a.size,r.visibleToIndex)):e<r.visibleFromIndex?(c=e,l=Math.min(a.size,c+i)):(l=Math.min(a.size,e+1),c=Math.max(0,l-i)):e>=i&&(l=Math.min(a.size,e+1),c=Math.max(0,l-i)),c=Math.max(0,Math.min(c,a.size-1)),l=Math.min(a.size,Math.max(i,l))}return{optionMap:a,visibleOptionCount:i,focusedValue:s,visibleFromIndex:c,visibleToIndex:l}}}));function $0e({visibleOptionCount:e=5,options:t,defaultValue:n,onChange:r,onCancel:i,onFocus:a,focusValue:o}){let[s,c]=(0,tA.useState)(n),l=X0e({visibleOptionCount:e,options:t,initialFocusValue:void 0,onFocus:a,focusValue:o}),u=(0,tA.useCallback)(()=>{c(l.focusedValue)},[l.focusedValue]);return{...l,value:s,selectFocusedOption:u,onChange:r,onCancel:i}}var tA,e2e=n((()=>{tA=r(R(),1),Q0e()}));function nA(e){return typeof e==`string`?e:typeof e==`number`?String(e):e?Array.isArray(e)?e.map(nA).join(``):iA.isValidElement(e)?nA(e.props.children):``:``}function rA({isDisabled:e=!1,hideIndexes:t=!1,visibleOptionCount:n=5,highlightText:r,options:i,defaultValue:a,onCancel:o,onChange:s,onFocus:c,defaultFocusValue:l,layout:u=`compact`,disableSelection:d=!1,inlineDescriptions:f=!1,onUpFromFirstItem:p,onDownFromLastItem:m,onInputModeToggle:h,onOpenEditor:g,onImagePaste:_,pastedContents:v,onRemoveImage:y}){let[b,x]=(0,iA.useState)(!1),[S,C]=(0,iA.useState)(0),[w,T]=(0,iA.useState)(()=>{let e=new Map;return i.forEach(t=>{t.type===`input`&&t.initialValue&&e.set(t.value,t.initialValue)}),e}),E=(0,iA.useRef)(new Map);(0,iA.useEffect)(()=>{for(let e of i)if(e.type===`input`&&e.initialValue!==void 0){let t=E.current.get(e.value)??``,n=w.get(e.value)??``,r=e.initialValue;r!==t&&n===t&&T(t=>{let n=new Map(t);return n.set(e.value,r),n}),E.current.set(e.value,r)}},[i,w]);let D=$0e({visibleOptionCount:n,options:i,defaultValue:a,onChange:s,onCancel:o,onFocus:c,focusValue:l});K0e({isDisabled:e,disableSelection:d||(t?`numeric`:!1),state:D,options:i,isMultiSelect:!1,onUpFromFirstItem:p,onDownFromLastItem:m,onInputModeToggle:h,inputValues:w,imagesSelected:b,onEnterImageSelection:()=>{if(v&&Object.values(v).some(e=>e.type===`image`)){let e=fs(Object.values(v),e=>e.type===`image`);return x(!0),C(e-1),!0}return!1}});let ee={container:()=>({flexDirection:`column`}),highlightedText:()=>({bold:!0})};if(u===`expanded`){let t=D.options.length.toString().length;return(0,aA.jsx)(B,{...ee.container(),children:D.visibleOptions.map((n,a)=>{let c=n.index===D.visibleFromIndex,l=n.index===D.visibleToIndex-1,u=D.visibleToIndex<i.length,d=D.visibleFromIndex>0,p=D.visibleFromIndex+a+1,m=!e&&D.focusedValue===n.value,h=D.value===n.value;if(n.type===`input`){let e=w.has(n.value)?w.get(n.value):n.initialValue||``;return(0,aA.jsx)(Kk,{option:n,isFocused:m,isSelected:h,shouldShowDownArrow:u&&l,shouldShowUpArrow:d&&c,maxIndexWidth:t,index:p,inputValue:e,onInputChange:e=>{T(t=>{let r=new Map(t);return r.set(n.value,e),r})},onSubmit:e=>{let t=v&&Object.values(v).some(e=>e.type===`image`);e.trim()||t||n.allowEmptySubmitToCancel?s?.(n.value):o?.()},onExit:o,layout:`expanded`,showLabel:f,onOpenEditor:g,resetCursorOnUpdate:n.resetCursorOnUpdate,onImagePaste:_,pastedContents:v,onRemoveImage:y,imagesSelected:b,selectedImageIndex:S,onImagesSelectedChange:x,onSelectedImageIndexChange:C},String(n.value))}let E=n.label;if(typeof n.label==`string`&&r&&n.label.includes(r)){let e=n.label,t=e.indexOf(r);E=(0,aA.jsxs)(aA.Fragment,{children:[e.slice(0,t),(0,aA.jsx)(z,{...ee.highlightedText(),children:r}),e.slice(t+r.length)]})}let O=n.disabled===!0,k=O?void 0:h?`success`:m?`suggestion`:void 0;return(0,aA.jsxs)(B,{flexDirection:`column`,flexShrink:0,children:[(0,aA.jsx)(Wk,{isFocused:m,isSelected:h,shouldShowDownArrow:u&&l,shouldShowUpArrow:d&&c,children:(0,aA.jsx)(z,{dimColor:O,color:k,children:E})}),n.description&&(0,aA.jsx)(B,{paddingLeft:2,children:(0,aA.jsx)(z,{dimColor:O||n.dimDescription!==!1,color:k,children:(0,aA.jsx)(yt,{children:n.description})})}),(0,aA.jsx)(z,{children:` `})]},String(n.value))})})}if(u===`compact-vertical`){let n=t?0:D.options.length.toString().length;return(0,aA.jsx)(B,{...ee.container(),children:D.visibleOptions.map((a,c)=>{let l=a.index===D.visibleFromIndex,u=a.index===D.visibleToIndex-1,d=D.visibleToIndex<i.length,p=D.visibleFromIndex>0,m=D.visibleFromIndex+c+1,h=!e&&D.focusedValue===a.value,E=D.value===a.value;if(a.type===`input`){let e=w.has(a.value)?w.get(a.value):a.initialValue||``;return(0,aA.jsx)(Kk,{option:a,isFocused:h,isSelected:E,shouldShowDownArrow:d&&u,shouldShowUpArrow:p&&l,maxIndexWidth:n,index:m,inputValue:e,onInputChange:e=>{T(t=>{let n=new Map(t);return n.set(a.value,e),n})},onSubmit:e=>{let t=v&&Object.values(v).some(e=>e.type===`image`);e.trim()||t||a.allowEmptySubmitToCancel?s?.(a.value):o?.()},onExit:o,layout:`compact`,showLabel:f,onOpenEditor:g,resetCursorOnUpdate:a.resetCursorOnUpdate,onImagePaste:_,pastedContents:v,onRemoveImage:y,imagesSelected:b,selectedImageIndex:S,onImagesSelectedChange:x,onSelectedImageIndexChange:C},String(a.value))}let O=a.label;if(typeof a.label==`string`&&r&&a.label.includes(r)){let e=a.label,t=e.indexOf(r);O=(0,aA.jsxs)(aA.Fragment,{children:[e.slice(0,t),(0,aA.jsx)(z,{...ee.highlightedText(),children:r}),e.slice(t+r.length)]})}let k=a.disabled===!0;return(0,aA.jsxs)(B,{flexDirection:`column`,flexShrink:0,children:[(0,aA.jsx)(Wk,{isFocused:h,isSelected:E,shouldShowDownArrow:d&&u,shouldShowUpArrow:p&&l,children:(0,aA.jsxs)(aA.Fragment,{children:[!t&&(0,aA.jsx)(z,{dimColor:!0,children:`${m}.`.padEnd(n+1)}),(0,aA.jsx)(z,{dimColor:k,color:k?void 0:E?`success`:h?`suggestion`:void 0,children:O})]})}),a.description&&(0,aA.jsx)(B,{paddingLeft:t?4:n+4,children:(0,aA.jsx)(z,{dimColor:k||a.dimDescription!==!1,color:k?void 0:E?`success`:h?`suggestion`:void 0,children:(0,aA.jsx)(yt,{children:a.description})})})]},String(a.value))})})}let O=t?0:D.options.length.toString().length,k=D.visibleOptions.some(e=>e.type===`input`),te=!f&&!k&&D.visibleOptions.some(e=>e.description),ne=D.visibleOptions.map((t,n)=>{let a=t.index===D.visibleFromIndex,o=t.index===D.visibleToIndex-1,s=D.visibleToIndex<i.length,c=D.visibleFromIndex>0,l=D.visibleFromIndex+n+1,u=!e&&D.focusedValue===t.value,d=D.value===t.value,f=t.disabled===!0,p=t.label;if(typeof t.label==`string`&&r&&t.label.includes(r)){let e=t.label,n=e.indexOf(r);p=(0,aA.jsxs)(aA.Fragment,{children:[e.slice(0,n),(0,aA.jsx)(z,{...ee.highlightedText(),children:r}),e.slice(n+r.length)]})}return{option:t,index:l,label:p,isFocused:u,isSelected:d,isOptionDisabled:f,shouldShowDownArrow:s&&o,shouldShowUpArrow:c&&a}});if(te){let e=Math.max(...ne.map(e=>{if(e.option.type===`input`)return 0;let n=nA(e.option.label),r=t?0:O+2,i=e.isSelected?2:0;return 2+r+st(n)+i}));return(0,aA.jsx)(B,{...ee.container(),children:ne.map(n=>{if(n.option.type===`input`)return null;let r=nA(n.option.label),i=t?0:O+2,a=n.isSelected?2:0,o=e-(2+i+st(r)+a);return(0,aA.jsxs)(t2e,{isFocused:n.isFocused,children:[(0,aA.jsxs)(B,{flexDirection:`row`,flexShrink:0,children:[n.isFocused?(0,aA.jsx)(z,{color:`suggestion`,children:ue.pointer}):n.shouldShowDownArrow?(0,aA.jsx)(z,{dimColor:!0,children:ue.arrowDown}):n.shouldShowUpArrow?(0,aA.jsx)(z,{dimColor:!0,children:ue.arrowUp}):(0,aA.jsx)(z,{children:` `}),(0,aA.jsx)(z,{children:` `}),(0,aA.jsxs)(z,{dimColor:n.isOptionDisabled,color:n.isOptionDisabled?void 0:n.isSelected?`success`:n.isFocused?`suggestion`:void 0,children:[!t&&(0,aA.jsx)(z,{dimColor:!0,children:`${n.index}.`.padEnd(O+2)}),n.label]}),n.isSelected&&(0,aA.jsxs)(z,{color:`success`,children:[` `,ue.tick]}),o>0&&(0,aA.jsx)(z,{children:` `.repeat(o)})]}),(0,aA.jsx)(B,{flexGrow:1,marginLeft:2,children:(0,aA.jsx)(z,{wrap:`wrap`,dimColor:n.isOptionDisabled||n.option.dimDescription!==!1,color:n.isOptionDisabled?void 0:n.isSelected?`success`:n.isFocused?`suggestion`:void 0,children:(0,aA.jsx)(yt,{children:n.option.description||` `})})})]},String(n.option.value))})})}return(0,aA.jsx)(B,{...ee.container(),children:D.visibleOptions.map((n,a)=>{if(n.type===`input`){let t=w.has(n.value)?w.get(n.value):n.initialValue||``,r=n.index===D.visibleFromIndex,c=n.index===D.visibleToIndex-1,l=D.visibleToIndex<i.length,u=D.visibleFromIndex>0,d=D.visibleFromIndex+a+1;return(0,aA.jsx)(Kk,{option:n,isFocused:!e&&D.focusedValue===n.value,isSelected:D.value===n.value,shouldShowDownArrow:l&&c,shouldShowUpArrow:u&&r,maxIndexWidth:O,index:d,inputValue:t,onInputChange:e=>{T(t=>{let r=new Map(t);return r.set(n.value,e),r})},onSubmit:e=>{let t=v&&Object.values(v).some(e=>e.type===`image`);e.trim()||t||n.allowEmptySubmitToCancel?s?.(n.value):o?.()},onExit:o,layout:`compact`,showLabel:f,onOpenEditor:g,resetCursorOnUpdate:n.resetCursorOnUpdate,onImagePaste:_,pastedContents:v,onRemoveImage:y,imagesSelected:b,selectedImageIndex:S,onImagesSelectedChange:x,onSelectedImageIndexChange:C},String(n.value))}let c=n.label;if(typeof n.label==`string`&&r&&n.label.includes(r)){let e=n.label,t=e.indexOf(r);c=(0,aA.jsxs)(aA.Fragment,{children:[e.slice(0,t),(0,aA.jsx)(z,{...ee.highlightedText(),children:r}),e.slice(t+r.length)]})}let l=n.index===D.visibleFromIndex,u=n.index===D.visibleToIndex-1,d=D.visibleToIndex<i.length,p=D.visibleFromIndex>0,m=D.visibleFromIndex+a+1,h=!e&&D.focusedValue===n.value,E=D.value===n.value,k=n.disabled===!0;return(0,aA.jsxs)(Wk,{isFocused:h,isSelected:E,shouldShowDownArrow:d&&u,shouldShowUpArrow:p&&l,children:[(0,aA.jsxs)(B,{flexDirection:`row`,flexShrink:0,children:[!t&&(0,aA.jsx)(z,{dimColor:!0,children:`${m}.`.padEnd(O+2)}),(0,aA.jsxs)(z,{dimColor:k,color:k?void 0:E?`success`:h?`suggestion`:void 0,children:[c,f&&n.description&&(0,aA.jsxs)(z,{dimColor:k||n.dimDescription!==!1,children:[` `,n.description]})]})]}),!f&&n.description&&(0,aA.jsx)(B,{flexShrink:99,marginLeft:2,children:(0,aA.jsx)(z,{wrap:`wrap-trim`,dimColor:k||n.dimDescription!==!1,color:k?void 0:E?`success`:h?`suggestion`:void 0,children:(0,aA.jsx)(yt,{children:n.description})})})]},String(n.value))})})}function t2e({isFocused:e,children:t}){return(0,aA.jsx)(B,{ref:Bee({line:0,column:0,active:e}),flexDirection:`row`,children:t})}var iA,aA,oA=n((()=>{N(),iA=r(R(),1),Tt(),Ss(),H0e(),Gk(),q0e(),e2e(),aA=jt()})),n2e=n((()=>{hfe(),_fe(),N(),R(),R(),Tt(),es(),Di(),oA(),jt()})),r2e=n((()=>{R(),OT(),Tt(),Ns(),jt()})),i2e=n((()=>{gfe(),R(),tn(),n2e(),W(),R_(),Afe(),jfe(),Mfe(),Nfe(),r2e()}));function a2e(){return parseInt(process.env.MCP_TOOL_TIMEOUT||``,10)||N2e}function sA(){return Y(_(),`mcp-needs-auth-cache.json`)}function o2e(){return CA||(CA=hd(sA(),`utf-8`).then(e=>Da(e)).catch(()=>({}))),CA}async function s2e(e){let t=(await o2e())[e];return t?Date.now()-t.timestamp<I2e:!1}function c2e(e){wA=wA.then(async()=>{let t=await o2e();t[e]={timestamp:Date.now()};let n=sA();await pd(Eu(n),{recursive:!0}),await wd(n,V(t)),CA=null}).catch(()=>{})}function l2e(){CA=null,Cd(sA()).catch(()=>{})}function cA(e){let t=aE(e);return t?{mcpServerBaseUrl:t}:{}}function lA(e,t,n){return G(`tengu_mcp_server_needs_auth`,{transportType:n,...cA(t)}),K(e,`Authentication required for ${{sse:`SSE`,http:`HTTP`,"claudeai-proxy":`claude.ai proxy`}[n]} server`),c2e(e),{name:e,type:`needs-auth`,config:t}}function u2e(e){return async(t,n)=>{let r=async()=>{await gr();let r=Xn();if(!r)throw Error(`No claude.ai OAuth token available`);let i=new Headers(n?.headers);return i.set(`Authorization`,`Bearer ${r.accessToken}`),{response:await e(t,{...n,headers:i}),sentToken:r.accessToken}},{response:i,sentToken:a}=await r();if(i.status!==401)return i;let o=await qae(a).catch(()=>!1);if(G(`tengu_mcp_claudeai_proxy_401`,{tokenChanged:o}),!o){let e=Xn()?.accessToken;if(!e||e===a)return i}try{return(await r()).response}catch{return i}}}async function d2e(e,t){let n=(await import(`./wrapper-BSK0MCQH.js`)).default;return new n(e,[`mcp`],t)}function uA(){return parseInt(process.env.MCP_TIMEOUT||``,10)||3e4}function dA(e){return async(t,n)=>{if((n?.method??`GET`).toUpperCase()===`GET`)return e(t,n);let r=new Headers(n?.headers);r.has(`accept`)||r.set(`accept`,R2e);let i=new AbortController,a=setTimeout(e=>e.abort(new DOMException(`The operation timed out.`,`TimeoutError`)),TA,i);a.unref?.();let o=n?.signal,s=()=>i.abort(o?.reason);o?.addEventListener(`abort`,s),o?.aborted&&i.abort(o.reason);let c=()=>{clearTimeout(a),o?.removeEventListener(`abort`,s)};try{let a=await e(t,{...n,headers:r,signal:i.signal});return c(),a}catch(e){throw c(),e}}}function f2e(){return parseInt(process.env.MCP_SERVER_CONNECTION_BATCH_SIZE||``,10)||3}function p2e(){return parseInt(process.env.MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE||``,10)||20}function m2e(e){return!e.type||e.type===`stdio`||e.type===`sdk`}function h2e(e){return!e.name.startsWith(`mcp__ide__`)||z2e.includes(e.name)}function fA(e,t){return`${e}-${V(t)}`}async function pA(e,t){let n=fA(e,t);try{let n=await EA(e,t);n.type===`connected`&&await n.cleanup()}catch{}EA.cache.delete(n),OA.cache.delete(e),kA.cache.delete(e),AA.cache.delete(e)}async function mA(e){if(e.config.type===`sdk`)return e;let t=await EA(e.name,e.config);if(t.type!==`connected`)throw new Ta(`MCP server "${e.name}" is not connected`,`MCP server not connected`);return t}function g2e(e,t){if(e.type!==t.type)return!1;let{scope:n,...r}=e,{scope:i,...a}=t;return V(r)===V(a)}function _2e(e,t){let n=Object.keys(e);return n.length>0?n.map(t=>`${t}=${String(e[t])}`).join(` `):t}async function hA(e,t,n){return(await A2e({client:n,tool:e,args:t,signal:iy().signal})).content}async function v2e(e,t){try{yr(),await pA(e,t);let n=await EA(e,t);if(n.type!==`connected`)return{client:n,tools:[],commands:[]};t.type===`claudeai-proxy`&&yGe(e);let r=!!n.capabilities?.resources,[i,a,o,s]=await Promise.all([OA(n),AA(n),Promise.resolve([]),r?kA(n):Promise.resolve([])]),c=[...a,...o],l=[];return r&&([FT,BE].some(e=>i.some(t=>nc(t,e.name)))||l.push(FT,BE)),{client:n,tools:[...i,...l],commands:c,resources:s.length>0?s:void 0}}catch(n){return ko(e,`Error during reconnection: ${H(n)}`),{client:{name:e,type:`failed`,config:t},tools:[],commands:[]}}}async function y2e(e,t,n){await Me(e,n,{concurrency:t})}async function b2e(e,t){let n=!1,r=Object.entries(t??(await WGe()).servers),i=[];for(let t of r)tE(t[0])?e({client:{name:t[0],type:`disabled`,config:t[1]},tools:[],commands:[]}):i.push(t);let a=i.length,o=fs(i,([e,t])=>t.type===`stdio`),s=fs(i,([e,t])=>t.type===`sse`),c=fs(i,([e,t])=>t.type===`http`),l=fs(i,([e,t])=>t.type===`sse-ide`),u=fs(i,([e,t])=>t.type===`ws-ide`),d=i.filter(([e,t])=>m2e(t)),f=i.filter(([e,t])=>!m2e(t)),p={totalServers:a,stdioCount:o,sseCount:s,httpCount:c,sseIdeCount:l,wsIdeCount:u},m=async([t,r])=>{try{if(tE(t)){e({client:{name:t,type:`disabled`,config:r},tools:[],commands:[]});return}if((r.type===`claudeai-proxy`||r.type===`http`||r.type===`sse`)&&(await s2e(t)||(r.type===`http`||r.type===`sse`)&&$Ke(t,r))){K(t,`Skipping connection (cached needs-auth)`),e({client:{name:t,type:`needs-auth`,config:r},tools:[fqe(t,r)],commands:[]});return}let i=await EA(t,r,p);if(i.type!==`connected`){e({client:i,tools:i.type===`needs-auth`?[fqe(t,r)]:[],commands:[]});return}r.type===`claudeai-proxy`&&yGe(t);let a=!!i.capabilities?.resources,[o,s,c,l]=await Promise.all([OA(i),AA(i),Promise.resolve([]),a?kA(i):Promise.resolve([])]),u=[...s,...c],d=[];a&&!n&&(n=!0,d.push(FT,BE)),e({client:i,tools:[...o,...d],commands:u,resources:l.length>0?l:void 0})}catch(n){ko(t,`Error fetching tools/commands/resources: ${H(n)}`),e({client:{name:t,type:`failed`,config:r},tools:[],commands:[]})}};await Promise.all([y2e(d,f2e(),m),y2e(f,p2e(),m)])}function x2e(e){return new Promise(t=>{let n=0,r=0;if(n=Object.keys(e).length,n===0){t({clients:[],tools:[],commands:[]});return}let i=[],a=[],o=[];b2e(e=>{if(i.push(e.client),a.push(...e.tools),o.push(...e.commands),r++,r>=n){let e=o.reduce((e,t)=>e+(t.name.length+(t.description??``).length+(t.argumentHint??``).length),0);G(`tengu_mcp_tools_commands_loaded`,{tools_count:a.length,commands_count:o.length,commands_metadata_length:e}),t({clients:i,tools:a,commands:o})}},e).catch(e=>{ko(`prefetchAllMcpResources`,`Failed to get MCP resources: ${H(e)}`),t({clients:[],tools:[],commands:[]})})})}async function S2e(e,t,n,r=!1){switch(e.type){case`text`:{let t={type:`text`,text:e.text};if(r){let n=e._meta;n&&(t._meta=n)}return[t]}case`audio`:{let n=e;return await C2e(Buffer.from(n.data,`base64`),n.mimeType,t,`[Audio from ${t}] `)}case`image`:{let t=Buffer.from(String(e.data),`base64`),r=e.mimeType?.split(`/`)[1]||`png`,i=await j_(t,t.length,r,n);return[{type:`image`,source:{data:i.buffer.toString(`base64`),media_type:`image/${i.mediaType}`,type:`base64`}}]}case`resource`:{let r=e.resource,i=`[Resource from ${t} at ${r.uri}] `;if(`text`in r)return[{type:`text`,text:`${i}${r.text}`}];if(`blob`in r)if(L2e.has(r.mimeType??``)){let e=Buffer.from(r.blob,`base64`),t=r.mimeType?.split(`/`)[1]||`png`,a=await j_(e,e.length,t,n),o=[];return i&&o.push({type:`text`,text:i}),o.push({type:`image`,source:{data:a.buffer.toString(`base64`),media_type:`image/${a.mediaType}`,type:`base64`}}),o}else return await C2e(Buffer.from(r.blob,`base64`),r.mimeType,t,i);return[]}case`resource_link`:{let t=e,n=`[Resource link: ${t.name}] ${t.uri}`;return t.description&&(n+=` (${t.description})`),[{type:`text`,text:n}]}default:return[]}}async function C2e(e,t,n,r){let i=await LE(e,t,`mcp-${Ls(n)}-blob-${Date.now()}-${Math.random().toString(36).slice(2,8)}`);return`error`in i?[{type:`text`,text:`${r}Binary content (${t||`unknown type`}, ${e.length} bytes) could not be saved to disk: ${i.error}`}]:[{type:`text`,text:Wqe(i.filepath,t,i.size,r)}]}function gA(e,t=2){if(e===null)return`null`;if(Array.isArray(e))return e.length===0?`[]`:`[${gA(e[0],t-1)}]`;if(typeof e==`object`){if(t<=0)return`{...}`;let n=Object.entries(e).slice(0,10).map(([e,n])=>`${e}: ${gA(n,t-1)}`),r=Object.keys(e).length>10?`, ...`:``;return`{${n.join(`, `)}${r}}`}return typeof e}async function w2e(e,t,n,r){if(e&&typeof e==`object`){if(`toolResult`in e)return{content:String(e.toolResult),type:`toolResult`};if(`structuredContent`in e&&e.structuredContent!==void 0)return{content:V(e.structuredContent),type:`structuredContent`,schema:gA(e.structuredContent)};if(`content`in e&&Array.isArray(e.content)){let t=(await Promise.all(e.content.map(e=>S2e(e,n,r,!0)))).flat();return{content:t,type:`contentArray`,schema:gA(t)}}}let i=`MCP server "${n}" tool "${t}": unexpected response format`;throw ko(n,i),new Ta(i,`MCP tool unexpected response format`)}function T2e(e){return!e||typeof e==`string`?!1:e.some(e=>e.type===`image`)}async function E2e(e,t,n,r,i=!1){let{content:a,type:o,schema:s}=await w2e(e,t,n,r);if(n===`ide`||i&&!T2e(a)||!await qUe(a))return a;let c=HUe(a);if(h(process.env.ENABLE_MCP_LARGE_OUTPUT_FILES))return G(`tengu_mcp_large_result_handled`,{outcome:`truncated`,reason:`env_disabled`,sizeEstimateTokens:c}),await YUe(a);if(!a)return a;if(T2e(a))return G(`tengu_mcp_large_result_handled`,{outcome:`truncated`,reason:`contains_images`,sizeEstimateTokens:c}),await YUe(a);let l=Date.now(),u=`mcp-${Ls(n)}-${Ls(t)}-${l}`,d=O2e(a),f=typeof a==`string`?a:d??V(a,null,2),p=await DE(f,u);if(jE(p)){let e=f.length;return G(`tengu_mcp_large_result_handled`,{outcome:`truncated`,reason:`persist_failed`,sizeEstimateTokens:c}),`Error: result (${e.toLocaleString()} characters) exceeds maximum allowed tokens. Failed to save output to file: ${p.error}. If this MCP server provides pagination or filtering tools, use them to retrieve specific portions of the data.`}G(`tengu_mcp_large_result_handled`,{outcome:`persisted`,reason:`file_saved`,sizeEstimateTokens:c,persistedSizeChars:p.originalSize});let m=d===void 0?Bqe(o,s):Bqe(`toolResult`);return Vqe(p.filepath,p.originalSize,m)}function D2e(){let e=process.env.MCP_TRUNCATION_PROMPT_OVERRIDE;return e?e!==`legacy`:ci(`tengu_mcp_subagent_prompt`)}function O2e(e){if(!D2e()||!Array.isArray(e)||e.length!==1)return;let t=e[0];if(!(!t||t.type!==`text`)&&!(`annotations`in t||`_meta`in t))return t.text}async function k2e({client:e,clientConnection:t,tool:n,args:r,meta:i,signal:a,setAppState:o,onProgress:s,imageLimits:c,hasResultSizeAnnotation:l=!1,callToolFn:u=A2e,handleElicitation:d}){for(let f=0;;f++)try{return await u({client:e,tool:n,args:r,meta:i,signal:a,onProgress:s,imageLimits:c,hasResultSizeAnnotation:l})}catch(e){if(!(e instanceof Ye)||e.code!==Xe.UrlElicitationRequired||f>=3)throw e;let r=e.data,i=(typeof r==`object`&&r&&`elicitations`in r&&Array.isArray(r.elicitations)?r.elicitations:[]).filter(e=>{if(typeof e!=`object`||!e)return!1;let t=e;return t.mode===`url`&&typeof t.url==`string`&&typeof t.elicitationId==`string`&&typeof t.message==`string`}),s=t.type===`connected`?t.name:`unknown`;if(i.length===0)throw K(s,`Tool '${n}' returned -32042 but no valid elicitations in error data`),e;K(s,`Tool '${n}' requires URL elicitation (error -32042, attempt ${f+1}), processing ${i.length} elicitation(s)`);for(let e of i){let{elicitationId:t}=e,r=await GE(s,e,a);if(r){if(K(s,`URL elicitation ${t} resolved by hook: ${V(r)}`),r.action!==`accept`)return{content:`URL elicitation was ${r.action===`decline`?`declined`:r.action+`ed`} by a hook. The tool "${n}" could not complete because it requires the user to open a URL.`};continue}let i;if(d)i=await d(s,e,a);else{let n={actionLabel:`Retry now`,showCancel:!0};i=await new Promise(r=>{let i=()=>{r({action:`cancel`})};if(a.aborted){i();return}a.addEventListener(`abort`,i,{once:!0}),o(o=>({...o,elicitation:{queue:[...o.elicitation.queue,{serverName:s,requestId:`error-elicit-${t}`,params:e,signal:a,waitingState:n,respond:e=>{e.action!==`accept`&&(a.removeEventListener(`abort`,i),r(e))},onWaitingDismiss:e=>{a.removeEventListener(`abort`,i),r(e===`retry`?{action:`accept`}:{action:`cancel`})}}]}}))})}let c=await KE(s,i,a,`url`,t);if(c.action!==`accept`)return K(s,`User ${c.action===`decline`?`declined`:c.action+`ed`} URL elicitation ${t}`),{content:`URL elicitation was ${c.action===`decline`?`declined`:c.action+`ed`} by the user. The tool "${n}" could not complete because it requires the user to open a URL.`};K(s,`Elicitation ${t} completed, retrying tool call`)}}}async function A2e({client:{client:e,name:t,config:n},tool:r,args:i,meta:a,signal:o,onProgress:s,imageLimits:c,hasResultSizeAnnotation:l=!1}){let u=Date.now(),d;try{K(t,`Calling MCP tool: ${r}`),d=setInterval((e,t,n)=>{let r=Date.now()-e;K(t,`Tool '${n}' still running (${`${Math.floor(r/1e3)}s`} elapsed)`)},3e4,u,t,r);let n=a2e(),f,p=new Promise((e,i)=>{f=setTimeout((e,t,n,r)=>{e(new Ta(`MCP server "${t}" tool "${n}" timed out after ${Math.floor(r/1e3)}s`,`MCP tool timeout`))},n,i,t,r,n)}),m=await Promise.race([e.callTool({name:r,arguments:i,_meta:a},Qe,{signal:o,timeout:n,onprogress:s?e=>{s({type:`mcp_progress`,status:`progress`,serverName:t,toolName:r,progress:e.progress,total:e.total,progressMessage:e.message})}:void 0}),p]).finally(()=>{f&&clearTimeout(f)});if(`isError`in m&&m.isError){let e=`Unknown error`;if(`content`in m&&Array.isArray(m.content)&&m.content.length>0){let t=m.content[0];t&&typeof t==`object`&&`text`in t&&(e=t.text)}else `error`in m&&(e=String(m.error));throw ko(t,e),new yA(e,`MCP tool returned error`,`_meta`in m&&m._meta?{_meta:m._meta}:void 0)}let h=Date.now()-u;K(t,`Tool '${r}' completed successfully in ${h<1e3?`${h}ms`:h<6e4?`${Math.floor(h/1e3)}s`:`${Math.floor(h/6e4)}m ${Math.floor(h%6e4/1e3)}s`}`);let g=tJe(t);return g&&G(`tengu_code_indexing_tool_used`,{tool:g,source:`mcp`,success:!0}),{content:await E2e(m,r,t,c,l),_meta:m._meta,structuredContent:m.structuredContent}}catch(e){d!==void 0&&clearInterval(d);let i=Date.now()-u;if(e instanceof Error&&e.name!==`AbortError`&&K(t,`Tool '${r}' failed after ${Math.floor(i/1e3)}s: ${e.message}`),e instanceof Error){if((`code`in e?e.code:void 0)===401||e instanceof Tw)throw K(t,`Tool call returned 401 Unauthorized - token may have expired`),G(`tengu_mcp_tool_call_auth_error`,{}),new _A(t,`MCP server "${t}" requires re-authorization (token expired)`);let r=bA(e),i=`code`in e&&e.code===-32e3&&e.message.includes(`Connection closed`)&&(n.type===`http`||n.type===`claudeai-proxy`);if(r||i)throw K(t,`MCP session expired during tool call (${r?`404/-32001`:`connection closed`}), clearing connection cache for re-initialization`),G(`tengu_mcp_session_expired`,{}),await pA(t,n),new vA(t)}if(!(e instanceof Error)||e.name!==`AbortError`)throw e;return{content:void 0}}finally{d!==void 0&&clearInterval(d)}}function j2e(e){let t=e.message.content?.[0];if(!(!t||typeof t==`string`||t.type!==`tool_use`))return t.id}async function M2e(e,t){let n=[],r=[],i=await Promise.allSettled(Object.entries(e).map(async([e,n])=>{let r=new T$e(e,t),i=new cC({name:`claude-code`,title:`Claude Code`,version:`2.6.11`,description:`Anthropic's agentic coding tool`,websiteUrl:aS},{capabilities:{}});try{await i.connect(r);let t=i.getServerCapabilities(),a={type:`connected`,name:e,capabilities:t||{},client:i,config:{...n,scope:`dynamic`},cleanup:async()=>{await i.close()}},o=[];if(t?.tools){let e=await OA(a);o.push(...e)}return{client:a,tools:o}}catch(t){return ko(e,`Failed to connect SDK MCP server: ${t}`),{client:{type:`failed`,name:e,config:{...n,scope:`user`}},tools:[]}}}));for(let e of i)e.status===`fulfilled`&&(n.push(e.value.client),r.push(...e.value.tools));return{clients:n,tools:r}}var _A,vA,yA,bA,N2e,xA,P2e,F2e,SA,I2e,CA,wA,L2e,TA,R2e,z2e,EA,DA,OA,kA,AA,jA=n((()=>{pVe(),oHe(),dHe(),hHe(),WC(),Je(),Yre(),l(),qie(),Ne(),tn(),io(),oS(),Sc(),RUe(),uWe(),mqe(),VE(),oy(),Ss(),Wi(),Ma(),rJe(),W(),y(),ka(),fa(),$A(),R_(),Ao(),RE(),QUe(),aJe(),Ro(),zs(),Vs(),Nue(),su(),IE(),wr(),Ua(),lJe(),Pi(),Rs(),oE(),g$e(),O(),Ow(),x$e(),Kne(),Us(),CE(),CGe(),rE(),w$e(),E$e(),iu(),Va(),_A=class extends Error{constructor(e,t){super(t),k(this,`serverName`,void 0),this.name=`McpAuthError`,this.serverName=e}},vA=class extends Error{constructor(e){super(`MCP server "${e}" session expired`),this.name=`McpSessionExpiredError`}},yA=class extends Ta{constructor(e,t,n){super(e,t),this.mcpMeta=n,this.name=`McpToolCallError`}},bA=u$e,N2e=1e8,xA=d$e,P2e=()=>D$e(),F2e=()=>i2e(),SA=(zce(),e(Rce)).isComputerUseMCPServer,I2e=900*1e3,CA=null,wA=Promise.resolve(),L2e=new Set([`image/jpeg`,`image/png`,`image/gif`,`image/webp`]),TA=6e4,R2e=`application/json, text/event-stream`,z2e=[`mcp__ide__executeCode`,`mcp__ide__getDiagnostics`],EA=c(async(e,t,n)=>{let r=Date.now(),i;try{let a,o=_l();if(t.type===`sse`){let n=new SE(e,t),r=await lO(e,t),i={authProvider:n,fetch:dA(iqe(UC(),n)),requestInit:{headers:{"User-Agent":ha(),...r}}};i.eventSourceInit={fetch:async(e,t)=>{let i={},a=await n.tokens();a&&(i.Authorization=`Bearer ${a.access_token}`);let o=Bs();return fetch(e,{...t,...o,headers:{"User-Agent":ha(),...i,...t?.headers,...r,Accept:`text/event-stream`}})}},a=new kw(new URL(t.url),i),K(e,`SSE transport initialized, awaiting connection`)}else if(t.type===`sse-ide`){K(e,`Setting up SSE-IDE transport to ${t.url}`);let n=Bs(),r=n.dispatcher?{eventSourceInit:{fetch:async(e,t)=>fetch(e,{...t,...n,headers:{"User-Agent":ha(),...t?.headers}})}}:{};a=new kw(new URL(t.url),Object.keys(r).length>0?r:void 0)}else if(t.type===`ws-ide`){let e=Oce(),n={"User-Agent":ha(),...t.authToken&&{"X-Claude-Code-Ide-Authorization":t.authToken}},r;r=typeof Bun<`u`?new globalThis.WebSocket(t.url,{protocols:[`mcp`],headers:n,proxy:Ace(t.url),tls:e||void 0}):await d2e(t.url,{headers:n,agent:Tce(t.url),...e||{}}),a=new WE(r)}else if(t.type===`ws`){K(e,`Initializing WebSocket transport to ${t.url}`);let n=await lO(e,t),r=Oce(),i={"User-Agent":ha(),...o&&{Authorization:`Bearer ${o}`},...n},s=pr(i,(e,t)=>t.toLowerCase()===`authorization`?`[REDACTED]`:e);K(e,`WebSocket transport options: ${V({url:t.url,headers:s,hasSessionAuth:!!o})}`);let c;c=typeof Bun<`u`?new globalThis.WebSocket(t.url,{protocols:[`mcp`],headers:i,proxy:Ace(t.url),tls:r||void 0}):await d2e(t.url,{headers:i,agent:Tce(t.url),...r||{}}),a=new WE(c)}else if(t.type===`http`){K(e,`Initializing HTTP transport to ${t.url}`),K(e,`Node version: ${process.version}, Platform: ${process.platform}`),K(e,`Environment: ${V({NODE_OPTIONS:process.env.NODE_OPTIONS||`not set`,UV_THREADPOOL_SIZE:process.env.UV_THREADPOOL_SIZE||`default`,HTTP_PROXY:process.env.HTTP_PROXY||`not set`,HTTPS_PROXY:process.env.HTTPS_PROXY||`not set`,NO_PROXY:process.env.NO_PROXY||`not set`})}`);let n=new SE(e,t),r=await lO(e,t),i=!!await n.tokens(),s=Bs();K(e,`Proxy options: ${s.dispatcher?`custom dispatcher`:`default`}`);let c={authProvider:n,fetch:dA(iqe(UC(),n)),requestInit:{...s,headers:{"User-Agent":ha(),...o&&!i&&{Authorization:`Bearer ${o}`},...r}}},l=c.requestInit?.headers?pr(c.requestInit.headers,(e,t)=>t.toLowerCase()===`authorization`?`[REDACTED]`:e):void 0;K(e,`HTTP transport options: ${V({url:t.url,headers:l,hasAuthProvider:!!n,timeoutMs:TA})}`),a=new jw(new URL(t.url),c),K(e,`HTTP transport created successfully`)}else if(t.type===`sdk`)throw Error(`SDK servers should be handled in print.ts`);else if(t.type===`claudeai-proxy`){if(K(e,`Initializing claude.ai proxy transport for server ${t.id}`),!Xn())throw Error(`No claude.ai OAuth token found`);let n=ro(),r=`${n.MCP_PROXY_URL}${n.MCP_PROXY_PATH.replace(`{server_id}`,t.id)}`;K(e,`Using claude.ai proxy at ${r}`);let i=u2e(globalThis.fetch),o=Bs(),s={fetch:dA(i),requestInit:{...o,headers:{"User-Agent":ha(),"X-Mcp-Client-Session-Id":Ft()}}};a=new jw(new URL(r),s),K(e,`claude.ai proxy transport created successfully`)}else if((t.type===`stdio`||!t.type)&&au(e)){let{createChromeContext:n}=await import(`./mcpServer-C-0K3Azg.js`),{createClaudeForChromeMcpServer:r}=await import(`./src-CRsA-Z4y.js`),{createLinkedTransportPair:o}=await import(`./InProcessTransport-DB52dh4f.js`);i=r(n(t.env));let[s,c]=o();await i.connect(c),a=s,K(e,`In-process Chrome MCP server started`)}else if((t.type===`stdio`||!t.type)&&SA(e)){let{createComputerUseMcpServerForCli:t}=await import(`./mcpServer-C_aDoLMg.js`),{createLinkedTransportPair:n}=await import(`./InProcessTransport-DB52dh4f.js`);i=await t();let[r,o]=n();await i.connect(o),a=r,K(e,`In-process Computer Use MCP server started`)}else if(t.type===`stdio`||!t.type){let e=t;a=new uHe({command:process.env.CLAUDE_CODE_SHELL_PREFIX||e.command,args:process.env.CLAUDE_CODE_SHELL_PREFIX?[[e.command,...e.args].join(` `)]:e.args,env:{...ou(),...e.env},stderr:`pipe`})}else throw Error(`Unsupported server type: ${t.type}`);let s,c=``;if(t.type===`stdio`||!t.type){let e=a;e.stderr&&(s=e=>{if(c.length<64*1024*1024)try{c+=e.toString()}catch{}},e.stderr.on(`data`,s))}let l=new cC({name:`claude-code`,title:`Claude Code`,version:`2.6.11`,description:`Anthropic's agentic coding tool`,websiteUrl:aS},{capabilities:{roots:{},elicitation:{}}});if(t.type===`http`&&K(e,`Client created, setting up request handler`),l.setRequestHandler(Tee,async()=>(K(e,`Received ListRoots request from server`),{roots:[{uri:`file://${fn()}`}]})),K(e,`Starting connection with timeout of ${uA()}ms`),t.type===`http`){K(e,`Testing basic HTTP connectivity to ${t.url}`);try{let n=new URL(t.url);K(e,`Parsed URL: host=${n.hostname}, port=${n.port||`default`}, protocol=${n.protocol}`),(n.hostname===`127.0.0.1`||n.hostname===`localhost`)&&K(e,`Using loopback address: ${n.hostname}`)}catch(t){K(e,`Failed to parse URL: ${t}`)}}let u=l.connect(a),d=new Promise((t,n)=>{let o=setTimeout(()=>{K(e,`Connection timeout triggered after ${Date.now()-r}ms (limit: ${uA()}ms)`),i&&i.close().catch(()=>{}),a.close().catch(()=>{}),n(new Ta(`MCP server "${e}" connection timed out after ${uA()}ms`,`MCP connection timeout`))},uA());u.then(()=>{clearTimeout(o)},e=>{clearTimeout(o)})});try{await Promise.race([u,d]),c&&(ko(e,`Server stderr: ${c}`),c=``);let n=Date.now()-r;K(e,`Successfully connected (transport: ${t.type||`stdio`}) in ${n}ms`)}catch(n){let o=Date.now()-r;if(t.type===`sse`&&n instanceof Error){if(K(e,`SSE Connection failed after ${o}ms: ${V({url:t.url,error:n.message,errorType:n.constructor.name,stack:n.stack})}`),ko(e,n),n instanceof Tw)return lA(e,t,`sse`)}else if(t.type===`http`&&n instanceof Error){let r=n;if(K(e,`HTTP Connection failed after ${o}ms: ${n.message} (code: ${r.code||`none`}, errno: ${r.errno||`none`})`),ko(e,n),n instanceof Tw)return lA(e,t,`http`)}else if(t.type===`claudeai-proxy`&&n instanceof Error){if(K(e,`claude.ai proxy connection failed after ${o}ms: ${n.message}`),ko(e,n),n.code===401)return lA(e,t,`claudeai-proxy`)}else (t.type===`sse-ide`||t.type===`ws-ide`)&&G(`tengu_mcp_ide_server_connection_failed`,{connectionDurationMs:o});throw i&&i.close().catch(()=>{}),a.close().catch(()=>{}),c&&ko(e,`Server stderr: ${c}`),n}let f=l.getServerCapabilities(),p=l.getServerVersion(),m=l.getInstructions(),h=m;if(m&&m.length>xA&&(h=m.slice(0,xA)+`… [truncated]`,K(e,`Server instructions truncated from ${m.length} to ${xA} chars`)),K(e,`Connection established with capabilities: ${V({hasTools:!!f?.tools,hasPrompts:!!f?.prompts,hasResources:!!f?.resources,hasResourceSubscribe:!!f?.resources?.subscribe,serverVersion:p||`unknown`})}`),U(`[MCP] Server "${e}" connected with subscribe=${!!f?.resources?.subscribe}`),l.setRequestHandler(et,async t=>(K(e,`Elicitation request received during initialization: ${V(t)}`),{action:`cancel`})),t.type===`sse-ide`||t.type===`ws-ide`){G(`tengu_mcp_ide_server_connection_succeeded`,{connectionDurationMs:Date.now()-r,serverVersion:p});try{c4e(l)}catch(t){ko(e,`Failed to send ide_connected notification: ${t}`)}}let g=Date.now(),_=!1,v=l.onerror,y=l.onclose,b=0,x=!1,S=t=>{x||(x=!0,K(e,`Closing transport (${t})`),l.close().catch(t=>{K(e,`Error during close: ${H(t)}`)}))},C=e=>e.includes(`ECONNRESET`)||e.includes(`ETIMEDOUT`)||e.includes(`EPIPE`)||e.includes(`EHOSTUNREACH`)||e.includes(`ECONNREFUSED`)||e.includes(`Body Timeout Error`)||e.includes(`terminated`)||e.includes(`SSE stream disconnected`)||e.includes(`Failed to reconnect SSE stream`);l.onerror=n=>{let r=Date.now()-g;_=!0;let i=t.type||`stdio`;if(K(e,`${i.toUpperCase()} connection dropped after ${Math.floor(r/1e3)}s uptime`),n.message&&(n.message.includes(`ECONNRESET`)?K(e,`Connection reset - server may have crashed or restarted`):n.message.includes(`ETIMEDOUT`)?K(e,`Connection timeout - network issue or server unresponsive`):n.message.includes(`ECONNREFUSED`)?K(e,`Connection refused - server may be down`):n.message.includes(`EPIPE`)?K(e,`Broken pipe - server closed connection unexpectedly`):n.message.includes(`EHOSTUNREACH`)?K(e,`Host unreachable - network connectivity issue`):n.message.includes(`ESRCH`)?K(e,`Process not found - stdio server process terminated`):n.message.includes(`spawn`)?K(e,`Failed to spawn process - check command and permissions`):K(e,`Connection error: ${n.message}`)),(i===`http`||i===`claudeai-proxy`)&&bA(n)){K(e,`MCP session expired (server returned 404 with session-not-found), triggering reconnection`),S(`session expired`),v&&v(n);return}if(i===`sse`||i===`http`||i===`claudeai-proxy`){if(n.message.includes(`Maximum reconnection attempts`)){S(`SSE reconnection exhausted`),v&&v(n);return}C(n.message)?(b++,K(e,`Terminal connection error ${b}/3`),b>=3&&(b=0,S(`max consecutive terminal errors`))):b=0}v&&v(n)},l.onclose=()=>{let n=Date.now()-g;K(e,`${(t.type??`unknown`).toUpperCase()} connection closed after ${Math.floor(n/1e3)}s (${_?`with errors`:`cleanly`})`);let r=fA(e,t);OA.cache.delete(e),kA.cache.delete(e),AA.cache.delete(e),EA.cache.delete(r),K(e,`Cleared connection cache for reconnection`),y&&y()};let w=async()=>{if(i){try{await i.close()}catch(t){K(e,`Error closing in-process server: ${t}`)}try{await l.close()}catch(t){K(e,`Error closing client: ${t}`)}return}if(s&&(t.type===`stdio`||!t.type)&&a.stderr?.off(`data`,s),t.type===`stdio`)try{let t=a.pid;if(t){K(e,`Sending SIGINT to MCP server process`);try{process.kill(t,`SIGINT`)}catch(t){K(e,`Error sending SIGINT: ${t}`);return}await new Promise(async n=>{let r=!1,i=setInterval(()=>{try{process.kill(t,0)}catch{r||(r=!0,clearInterval(i),clearTimeout(a),K(e,`MCP server process exited cleanly`),n())}},50),a=setTimeout(()=>{r||(r=!0,clearInterval(i),K(e,`Cleanup timeout reached, stopping process monitoring`),n())},600);try{if(await Hs(100),!r){try{process.kill(t,0),K(e,`SIGINT failed, sending SIGTERM to MCP server process`);try{process.kill(t,`SIGTERM`)}catch(t){K(e,`Error sending SIGTERM: ${t}`),r=!0,clearInterval(i),clearTimeout(a),n();return}}catch{r=!0,clearInterval(i),clearTimeout(a),n();return}if(await Hs(400),!r)try{process.kill(t,0),K(e,`SIGTERM failed, sending SIGKILL to MCP server process`);try{process.kill(t,`SIGKILL`)}catch(t){K(e,`Error sending SIGKILL: ${t}`)}}catch{r=!0,clearInterval(i),clearTimeout(a),n()}}r||(r=!0,clearInterval(i),clearTimeout(a),n())}catch{r||(r=!0,clearInterval(i),clearTimeout(a),n())}})}}catch(t){K(e,`Error terminating process: ${t}`)}try{await l.close()}catch(t){K(e,`Error closing client: ${t}`)}},T=ja(w),E=async()=>{T?.(),await w()};return G(`tengu_mcp_server_connection_succeeded`,{connectionDurationMs:Date.now()-r,transportType:t.type??`stdio`,totalServers:n?.totalServers,stdioCount:n?.stdioCount,sseCount:n?.sseCount,httpCount:n?.httpCount,sseIdeCount:n?.sseIdeCount,wsIdeCount:n?.wsIdeCount,...cA(t)}),{name:e,client:l,type:`connected`,capabilities:f??{},serverInfo:p,instructions:h,config:t,cleanup:E}}catch(a){let o=Date.now()-r;return G(`tengu_mcp_server_connection_failed`,{connectionDurationMs:o,totalServers:n?.totalServers||1,stdioCount:n?.stdioCount||+(t.type===`stdio`),sseCount:n?.sseCount||+(t.type===`sse`),httpCount:n?.httpCount||+(t.type===`http`),sseIdeCount:n?.sseIdeCount||+(t.type===`sse-ide`),wsIdeCount:n?.wsIdeCount||+(t.type===`ws-ide`),transportType:t.type??`stdio`,...cA(t)}),K(e,`Connection failed after ${o}ms: ${H(a)}`),ko(e,`Connection failed: ${H(a)}`),i&&i.close().catch(()=>{}),{name:e,type:`failed`,config:t,error:H(a)}}},fA),DA=20,OA=Lo(async e=>{if(e.type!==`connected`)return[];try{if(!e.capabilities?.tools)return[];let t=cO((await e.client.request({method:`tools/list`},fee)).tools),n=e.config.type===`sdk`&&x(process.env.CLAUDE_AGENT_SDK_MCP_NO_PREFIX);return t.map(t=>{let r=kae(e.name,t.name);return{...lWe,name:n?t.name:r,mcpInfo:{serverName:e.name,toolName:t.name},isMcp:!0,searchHint:typeof t._meta?.[`anthropic/searchHint`]==`string`&&t._meta[`anthropic/searchHint`].replace(/\s+/g,` `).trim()||void 0,alwaysLoad:t._meta?.[`anthropic/alwaysLoad`]===!0,async description(){return t.description??``},async prompt(){let e=t.description??``;return e.length>xA?e.slice(0,xA)+`… [truncated]`:e},isConcurrencySafe(){return t.annotations?.readOnlyHint??!1},isReadOnly(){return t.annotations?.readOnlyHint??!1},toAutoClassifierInput(e){return _2e(e,t.name)},isDestructive(){return t.annotations?.destructiveHint??!1},isOpenWorld(){return t.annotations?.openWorldHint??!1},isSearchOrReadCommand(){return v$e(e.name,t.name)},inputJSONSchema:t.inputSchema,async checkPermissions(){return{behavior:`passthrough`,message:`MCPTool requires permission.`,suggestions:[{type:`addRules`,rules:[{toolName:r,ruleContent:void 0}],behavior:`allow`,destination:`localSettings`}]}},async call(n,r,i,a,o){let s=j2e(a),c=s?{"claudecode/toolUseId":s}:{};o&&s&&o({toolUseID:s,data:{type:`mcp_progress`,status:`started`,serverName:e.name,toolName:t.name}});let l=Date.now();for(let i=0;;i++)try{let i=await k2e({client:await mA(e),clientConnection:e,tool:t.name,args:n,meta:c,signal:r.abortController.signal,setAppState:r.setAppState,onProgress:o&&s?e=>{o({toolUseID:s,data:e})}:void 0,handleElicitation:r.handleElicitation});return o&&s&&o({toolUseID:s,data:{type:`mcp_progress`,status:`completed`,serverName:e.name,toolName:t.name,elapsedTimeMs:Date.now()-l}}),{data:i.content,...(i._meta||i.structuredContent)&&{mcpMeta:{...i._meta&&{_meta:i._meta},...i.structuredContent&&{structuredContent:i.structuredContent}}}}}catch(n){if(n instanceof vA&&i<1){K(e.name,`Retrying tool '${t.name}' after session recovery`);continue}if(o&&s&&o({toolUseID:s,data:{type:`mcp_progress`,status:`failed`,serverName:e.name,toolName:t.name,elapsedTimeMs:Date.now()-l}}),n instanceof Error&&!(n instanceof Ta)){let e=n.constructor.name;if(e===`Error`)throw new Ta(n.message,n.message.slice(0,200));if(e===`McpError`&&`code`in n&&typeof n.code==`number`)throw new Ta(n.message,`McpError ${n.code}`)}throw n}},userFacingName(){let n=t.annotations?.title||t.name;return`${e.name} - ${n} (MCP)`},...au(e.name)&&(e.config.type===`stdio`||!e.config.type)?P2e().getClaudeInChromeMCPToolOverrides(t.name):{},...(e.config.type===`stdio`||!e.config.type)&&SA(e.name)?F2e().getComputerUseMCPToolOverrides(t.name):{}}}).filter(h2e)}catch(t){return ko(e.name,`Failed to fetch tools: ${H(t)}`),[]}},e=>e.name,DA),kA=Lo(async e=>{if(e.type!==`connected`)return[];try{if(!e.capabilities?.resources)return[];let t=await e.client.request({method:`resources/list`},nee);return t.resources?t.resources.map(t=>({...t,server:e.name})):[]}catch(t){return ko(e.name,`Failed to fetch resources: ${H(t)}`),[]}},e=>e.name,DA),AA=Lo(async e=>{if(e.type!==`connected`)return[];try{if(!e.capabilities?.prompts)return[];let t=await e.client.request({method:`prompts/list`},pee);return t.prompts?cO(t.prompts).map(t=>{let n=Object.values(t.arguments??{}).map(e=>e.name);return{type:`prompt`,name:`mcp__`+Ls(e.name)+`__`+t.name,description:t.description??``,hasUserSpecifiedDescription:!!t.description,contentLength:0,isEnabled:()=>!0,isHidden:!1,isMcp:!0,progressMessage:`running`,userFacingName(){return`${e.name}:${t.name} (MCP)`},argNames:n,source:`mcp`,async getPromptForCommand(r){let i=r.split(` `);try{let r=await mA(e),a=await r.client.getPrompt({name:t.name,arguments:Eoe(n,i)});return(await Promise.all(a.messages.map(e=>S2e(e.content,r.name)))).flat()}catch(n){throw ko(e.name,`Error running command '${t.name}': ${H(n)}`),n}}}}):[]}catch(t){return ko(e.name,`Failed to fetch commands: ${H(t)}`),[]}},e=>e.name,DA)}));function B2e(e){let t=Su(),n=[],r=MA[e.toLowerCase()];if(!r)return n;let i=process.env.APPDATA||Y(t,`AppData`,`Roaming`),a=process.env.LOCALAPPDATA||Y(t,`AppData`,`Local`);switch(wpe()){case`darwin`:n.push(Y(t,`Library`,`Application Support`,`JetBrains`),Y(t,`Library`,`Application Support`)),e.toLowerCase()===`androidstudio`&&n.push(Y(t,`Library`,`Application Support`,`Google`));break;case`win32`:n.push(Y(i,`JetBrains`),Y(a,`JetBrains`),Y(i)),e.toLowerCase()===`androidstudio`&&n.push(Y(a,`Google`));break;case`linux`:n.push(Y(t,`.config`,`JetBrains`),Y(t,`.local`,`share`,`JetBrains`));for(let e of r)n.push(Y(t,`.`+e));e.toLowerCase()===`androidstudio`&&n.push(Y(t,`.config`,`Google`));break;default:break}return n}async function V2e(e){let t=[],n=za(),r=B2e(e),i=MA[e.toLowerCase()];if(!i)return t;let a=i.map(e=>RegExp(`^`+e));for(let e of r)try{let r=await n.readdir(e);for(let i of a)for(let a of r){if(!i.test(a.name)||!a.isDirectory()&&!a.isSymbolicLink())continue;let r=Y(e,a.name);if(wpe()===`linux`){t.push(r);continue}let o=Y(r,`plugins`);try{await n.stat(o),t.push(o)}catch{}}}catch{}return t.filter((e,n)=>t.indexOf(e)===n)}async function H2e(e){let t=await V2e(e);for(let e of t){let t=Y(e,K2e);try{return await za().stat(t),!0}catch{}}return!1}async function U2e(e,t=!1){if(!t){let t=PA.get(e);if(t)return t}let n=H2e(e).then(t=>(NA.set(e,t),t));return PA.set(e,n),n}async function W2e(e,t=!1){return t&&(NA.delete(e),PA.delete(e)),U2e(e,t)}function G2e(e){return NA.get(e)??!1}var K2e,MA,NA,PA,q2e=n((()=>{Fa(),K2e=`claude-code-jetbrains-plugin`,MA={pycharm:[`PyCharm`],intellij:[`IntelliJIdea`,`IdeaIC`],webstorm:[`WebStorm`],phpstorm:[`PhpStorm`],rubymine:[`RubyMine`],clion:[`CLion`],goland:[`GoLand`],rider:[`Rider`],datagrip:[`DataGrip`],appcode:[`AppCode`],dataspell:[`DataSpell`],aqua:[`Aqua`],gateway:[`Gateway`],fleet:[`Fleet`],androidstudio:[`AndroidStudio`]},NA=new Map,PA=new Map}));function J2e(e,t){let n=e.match(/^\\\\wsl(?:\.localhost|\$)\\([^\\]+)(.*)$/);return n?n[1]===t:!0}var FA,Y2e=n((()=>{FA=class{constructor(e){this.wslDistroName=e}toLocalPath(e){if(!e)return e;if(this.wslDistroName){let t=e.match(/^\\\\wsl(?:\.localhost|\$)\\([^\\]+)(.*)$/);if(t&&t[1]!==this.wslDistroName)return e}try{return Td(`wslpath`,[`-u`,e],{encoding:`utf8`,stdio:[`pipe`,`pipe`,`ignore`]}).trim()}catch{return e.replace(/\\/g,`/`).replace(/^([A-Z]):/i,(e,t)=>`/mnt/${t.toLowerCase()}`)}}toIDEPath(e){if(!e)return e;try{return Td(`wslpath`,[`-w`,e],{encoding:`utf8`,stdio:[`pipe`,`pipe`,`ignore`]}).trim()}catch{return e}}}}));function X2e({onDone:e,installationStatus:t}){Q2e(),wt({"confirm:yes":e,"confirm:no":e},{context:`Confirmation`});let n=t?.ideType??zA(),r=RA(n),i=UA(n),a=t?.installedVersion,o=r?`plugin`:`extension`,s=po.platform===`darwin`?`Cmd+Option+K`:`Ctrl+Alt+K`;return(0,IA.jsxs)(IA.Fragment,{children:[(0,IA.jsx)(bt,{title:(0,IA.jsxs)(IA.Fragment,{children:[(0,IA.jsx)(z,{color:`claude`,children:`✻ `}),(0,IA.jsxs)(z,{children:[`Welcome to Claude Code for `,i]})]}),subtitle:a?`installed ${o} v${a}`:void 0,color:`ide`,onCancel:e,hideInputGuide:!0,children:(0,IA.jsxs)(B,{flexDirection:`column`,gap:1,children:[(0,IA.jsxs)(z,{children:[`• Claude has context of `,(0,IA.jsx)(z,{color:`suggestion`,children:`⧉ open files`}),` and`,` `,(0,IA.jsx)(z,{color:`suggestion`,children:`⧉ selected lines`})]}),(0,IA.jsxs)(z,{children:[`• Review Claude Code's changes `,(0,IA.jsx)(z,{color:`diffAddedWord`,children:`+11`}),` `,(0,IA.jsx)(z,{color:`diffRemovedWord`,children:`-22`}),` in the comfort of your IDE`]}),(0,IA.jsxs)(z,{children:[`• Cmd+Esc`,(0,IA.jsx)(z,{dimColor:!0,children:` for Quick Launch`})]}),(0,IA.jsxs)(z,{children:[`• `,s,(0,IA.jsx)(z,{dimColor:!0,children:` to reference files or lines in your input`})]})]})}),(0,IA.jsx)(B,{paddingX:1,children:(0,IA.jsx)(z,{dimColor:!0,italic:!0,children:`Press Enter to continue`})})]})}function Z2e(){let e=Tr(),t=$r.terminal||`unknown`;return e.hasIdeOnboardingBeenShown?.[t]===!0}function Q2e(){if(Z2e())return;let e=$r.terminal||`unknown`;fr(t=>({...t,hasIdeOnboardingBeenShown:{...t.hasIdeOnboardingBeenShown,[e]:!0}}))}var IA,$2e=n((()=>{R(),na(),Tt(),ru(),xn(),fo(),$A(),IA=jt()}));function e4e(e){try{return process.kill(e,0),!0}catch{return!1}}function t4e(){let e=null;return()=>(e||(e=Ice(process.ppid,10).then(e=>new Set(e))),e)}function LA(e){if(!e)return!1;let t=GA[e];return t&&t.ideKind===`vscode`}function RA(e){if(!e)return!1;let t=GA[e];return t&&t.ideKind===`jetbrains`}function zA(){return JA()?po.terminal:null}async function BA(){try{let e=await r4e();return(await Promise.all(e.map(async e=>{try{let t=(await za().readdir(e)).filter(e=>e.name.endsWith(`.lock`));return(await Promise.all(t.map(async t=>{let n=Y(e,t.name);try{return{path:n,mtime:(await za().stat(n)).mtime}}catch{return null}}))).filter(e=>e!==null)}catch(e){return Aa(e)||q(e),[]}}))).flat().sort((e,t)=>t.mtime.getTime()-e.mtime.getTime()).map(e=>e.path)}catch(e){return q(e),[]}}async function n4e(e){try{let t=await za().readFile(e,{encoding:`utf-8`}),n=[],r,i,a=!1,o=!1,s;try{let e=Da(t);e.workspaceFolders&&(n=e.workspaceFolders),r=e.pid,i=e.ideName,a=e.transport===`ws`,o=e.runningInWindows===!0,s=e.authToken}catch{n=t.split(`
|
|
924
|
+
`).map(e=>e.trim())}let c=e.split(Pu).pop();if(!c)return null;let l=c.replace(`.lock`,``);return{workspaceFolders:n,port:parseInt(l,10),pid:r,ideName:i,useWebSocket:a,runningInWindows:o,authToken:s}}catch(e){return q(e),null}}async function VA(e,t,n=500){try{return new Promise(r=>{let i=vme({host:e,port:t,timeout:n});i.on(`connect`,()=>{i.destroy(),r(!0)}),i.on(`error`,()=>{r(!1)}),i.on(`timeout`,()=>{i.destroy(),r(!1)})})}catch{return!1}}async function r4e(){let e=[Y(_(),`ide`)];if(No()!==`wsl`)return e;let t=await O4e();if(t){let n=new FA(process.env.WSL_DISTRO_NAME).toLocalPath(t);e.push(Nu(n,`.claude`,`ide`))}try{let t=`/mnt/c/Users`,n=await za().readdir(t);for(let r of n)!r.isDirectory()&&!r.isSymbolicLink()||r.name===`Public`||r.name===`Default`||r.name===`Default User`||r.name===`All Users`||e.push(Y(t,r.name,`.claude`,`ide`))}catch(e){Aa(e)?U(`WSL IDE lockfile path detection failed (${e.code}): ${H(e)}`):q(e)}return e}async function i4e(){try{let e=await BA();for(let t of e){let e=await n4e(t);if(!e){try{await za().unlink(t)}catch(e){q(e)}continue}let n=await QA(e.runningInWindows,e.port),r=!1;if(e.pid?e4e(e.pid)||No()===`wsl`&&await VA(n,e.port)||(r=!0):await VA(n,e.port)||(r=!0),r)try{await za().unlink(t)}catch(e){q(e)}}}catch(e){q(e)}}async function a4e(e){try{let t=await d4e(e);return G(`tengu_ext_installed`,{}),Tr().diffTool||fr(e=>({...e,diffTool:`auto`})),{installed:!0,error:null,installedVersion:t,ideType:e}}catch(t){G(`tengu_ext_install_error`,{});let n=t instanceof Error?t.message:String(t);return q(t),{installed:!1,error:n,installedVersion:null,ideType:e}}}async function o4e(){YA&&YA.abort(),YA=iy();let e=YA.signal;await i4e();let t=Date.now();for(;Date.now()-t<3e4&&!e.aborted;){if(Ote()){await Hs(1e3,e);continue}let t=await s4e(!1);if(e.aborted)return null;if(t.length===1)return t[0];await Hs(1e3,e)}return null}async function s4e(e){let t=[];try{let n=process.env.CLAUDE_CODE_SSE_PORT,r=n?parseInt(n,10):null,i=fn().normalize(`NFC`),a=await BA(),o=await Promise.all(a.map(n4e)),s=t4e(),c=No()!==`wsl`&&JA();for(let n of o){if(!n)continue;let a=!1;if(a=x(process.env.CLAUDE_CODE_IDE_SKIP_VALID_CHECK)||n.port===r?!0:n.workspaceFolders.some(e=>{if(!e)return!1;let t=e;if(No()===`wsl`&&n.runningInWindows&&process.env.WSL_DISTRO_NAME){if(!J2e(e,process.env.WSL_DISTRO_NAME))return!1;let n=Nu(t).normalize(`NFC`);if(i===n||i.startsWith(n+Pu))return!0;t=new FA(process.env.WSL_DISTRO_NAME).toLocalPath(e)}let r=Nu(t).normalize(`NFC`);if(No()===`windows`){let e=i.replace(/^[a-zA-Z]:/,e=>e.toUpperCase()),t=r.replace(/^[a-zA-Z]:/,e=>e.toUpperCase());return e===t||e.startsWith(t+Pu)}return i===r||i.startsWith(r+Pu)}),!a&&!e||c&&!(r!==null&&n.port===r)&&(!n.pid||!e4e(n.pid)||process.ppid!==n.pid&&!(await s()).has(n.pid)))continue;let o=n.ideName??(JA()?UA($r.terminal):`IDE`),l=await QA(n.runningInWindows,n.port),u;u=n.useWebSocket?`ws://${l}:${n.port}`:`http://${l}:${n.port}/sse`,t.push({url:u,name:o,workspaceFolders:n.workspaceFolders,port:n.port,isValid:a,authToken:n.authToken,ideRunningInWindows:n.runningInWindows})}if(!e&&r){let e=t.filter(e=>e.isValid&&e.port===r);if(e.length===1)return e}}catch(e){q(e)}return t}async function c4e(e){await e.notification({method:`ide_connected`,params:{pid:process.pid}})}function l4e(e){return e.some(e=>e.type===`connected`&&e.name===`ide`)}async function u4e(e){if(LA(e)){let t=await h4e(e);if(t)try{if((await $o(t,[`--list-extensions`],{env:HA()})).stdout?.includes(k4e))return!0}catch{}}else if(RA(e))return await W2e(e);return!1}async function d4e(e){if(LA(e)){let t=await h4e(e);if(t){if(process.env.USER_TYPE===`ant`)return await D4e(t);let e=await p4e(t);if(!e||cfe(e,f4e())){await Hs(500);let n=await $o(t,[`--force`,`--install-extension`,`anthropic.claude-code`],{env:HA()});if(n.code!==0)throw Error(`${n.code}: ${n.error} ${n.stderr}`);e=f4e()}return e}}return null}function HA(){if(No()===`linux`)return{...process.env,DISPLAY:``}}function f4e(){return`2.6.11`}async function p4e(e){let{stdout:t}=await ts(e,[`--list-extensions`,`--show-versions`],{env:HA()}),n=t?.split(`
|
|
925
925
|
`)||[];for(let e of n){let[t,n]=e.split(`@`);if(t===`anthropic.claude-code`&&n)return n}return null}function m4e(){try{if(No()!==`macos`)return null;let e=process.ppid;for(let t=0;t<10&&!(!e||e===0||e===1);t++){let t=sce(`ps -o command= -p ${e}`)?.trim();if(t)for(let[e,n]of Object.entries({"Visual Studio Code.app":`code`,"Cursor.app":`cursor`,"Windsurf.app":`windsurf`,"Visual Studio Code - Insiders.app":`code`,"VSCodium.app":`codium`})){let r=t.indexOf(e+`/Contents/MacOS/Electron`);if(r!==-1){let i=r+e.length;return t.substring(0,i)+`/Contents/Resources/app/bin/`+n}}let n=sce(`ps -o ppid= -p ${e}`)?.trim();if(!n)break;e=parseInt(n.trim(),10)}return null}catch{return null}}async function h4e(e){let t=m4e();if(t)try{return await za().stat(t),t}catch{}let n=No()===`windows`?`.cmd`:``;switch(e){case`vscode`:return`code`+n;case`cursor`:return`cursor`+n;case`windsurf`:return`windsurf`+n;default:break}return null}async function g4e(){return(await ts(`cursor`,[`--version`])).code===0}async function _4e(){return(await ts(`windsurf`,[`--version`])).code===0}async function v4e(){let e=await ts(`code`,[`--help`]);return e.code===0&&!!e.stdout?.includes(`Visual Studio Code`)}async function y4e(){let e=[];try{let t=No();if(t===`macos`){let t=(await co(`ps aux | grep -E "Visual Studio Code|Code Helper|Cursor Helper|Windsurf Helper|IntelliJ IDEA|PyCharm|WebStorm|PhpStorm|RubyMine|CLion|GoLand|Rider|DataGrip|AppCode|DataSpell|Aqua|Gateway|Fleet|Android Studio" | grep -v grep`,{shell:!0,reject:!1})).stdout??``;for(let[n,r]of Object.entries(GA))for(let i of r.processKeywordsMac)if(t.includes(i)){e.push(n);break}}else if(t===`windows`){let t=((await co(`tasklist | findstr /I "Code.exe Cursor.exe Windsurf.exe idea64.exe pycharm64.exe webstorm64.exe phpstorm64.exe rubymine64.exe clion64.exe goland64.exe rider64.exe datagrip64.exe appcode.exe dataspell64.exe aqua64.exe gateway64.exe fleet.exe studio64.exe"`,{shell:!0,reject:!1})).stdout??``).toLowerCase();for(let[n,r]of Object.entries(GA))for(let i of r.processKeywordsWindows)if(t.includes(i.toLowerCase())){e.push(n);break}}else if(t===`linux`){let t=((await co(`ps aux | grep -E "code|cursor|windsurf|idea|pycharm|webstorm|phpstorm|rubymine|clion|goland|rider|datagrip|dataspell|aqua|gateway|fleet|android-studio" | grep -v grep`,{shell:!0,reject:!1})).stdout??``).toLowerCase();for(let[n,r]of Object.entries(GA))for(let i of r.processKeywordsLinux)if(t.includes(i)){if(n!==`vscode`){e.push(n);break}else if(!t.includes(`cursor`)&&!t.includes(`appcode`)){e.push(n);break}}}}catch(e){q(e)}return e}async function b4e(){let e=await y4e();return XA=e,e}async function x4e(){return XA===null?b4e():XA}function S4e(e){return C4e(e.find(e=>e.type===`connected`&&e.name===`ide`))}function C4e(e){let t=e?.config;return t?.type===`sse-ide`||t?.type===`ws-ide`?t.ideName:JA()?UA($r.terminal):null}function UA(e){if(!e)return`IDE`;let t=GA[e];if(t)return t.displayName;let n=ZA[e.toLowerCase().trim()];if(n)return n;let r=e.split(` `)[0],i=r?Tu(r).toLowerCase():null;return i?ZA[i]||qoe(i):qoe(e)}function w4e(e){if(!e)return;let t=e.find(e=>e.type===`connected`&&e.name===`ide`);return t?.type===`connected`?t:void 0}async function T4e(e){try{await hA(`closeAllDiffTabs`,{},e)}catch{}}async function E4e(e,t,n,r){o4e().then(e);let i=Tr().autoInstallIdeExtension??!0;if(!x(process.env.CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL)&&i){let i=t??zA();i&&(LA(i)?u4e(i).then(async t=>{a4e(i).catch(e=>({installed:!1,error:e.message||`Installation failed`,installedVersion:null,ideType:i})).then(i=>{r(i),i?.installed&&o4e().then(e),!t&&i?.installed===!0&&!WA().hasIdeOnboardingDialogBeenShown()&&n()})}):RA(i)&&u4e(i).then(async e=>{e&&!WA().hasIdeOnboardingDialogBeenShown()&&n()}))}}async function D4e(e){let t=Y(xu.homedir(),`.npmrc`),n=null,r=za();try{let e=(await r.readFile(t,{encoding:`utf8`})).split(`
|
|
926
|
-
`);for(let t of e){let e=t.match(/\/\/artifactory\.infra\.ant\.dev\/artifactory\/api\/npm\/npm-all\/:_authToken=(.+)/);if(e&&e[1]){n=e[1].trim();break}}}catch(e){throw q(e),Error(`Failed to read npm authentication: ${e}`)}if(!n)throw Error(`No artifactory auth token found in ~/.npmrc`);try{let t=(await Oe.get(`https://artifactory.infra.ant.dev/artifactory/armorcode-claude-code-internal/claude-vscode-releases/stable`,{headers:{Authorization:`Bearer ${n}`}})).data.trim();if(!t)throw Error(`No version found in artifactory response`);let i=`https://artifactory.infra.ant.dev/artifactory/armorcode-claude-code-internal/claude-vscode-releases/${t}/claude-code.vsix`,a=Y(xu.tmpdir(),`claude-code-${t}-${Date.now()}.vsix`);try{let r=await Oe.get(i,{headers:{Authorization:`Bearer ${n}`},responseType:`stream`}),o=za().createWriteStream(a);await new Promise((e,t)=>{r.data.pipe(o),o.on(`finish`,e),o.on(`error`,t)}),await Hs(500);let s=await $o(e,[`--force`,`--install-extension`,a],{env:HA()});if(s.code!==0)throw Error(`${s.code}: ${s.error} ${s.stderr}`);return t}finally{try{await r.unlink(a)}catch{}}}catch(e){throw Oe.isAxiosError(e)?Error(`Failed to fetch extension version from artifactory: ${e.message}`):e}}var WA,GA,KA,qA,JA,O4e,YA,k4e,XA,ZA,QA,$A=n((()=>{ke(),so(),nre(),l(),Ua(),tn(),jA(),xn(),fo(),y(),es(),Fa(),Gs(),q2e(),Ao(),Po(),nu(),oy(),W(),na(),ka(),Y2e(),Us(),Va(),WA=()=>$2e(),GA={cursor:{ideKind:`vscode`,displayName:`Cursor`,processKeywordsMac:[`Cursor Helper`,`Cursor.app`],processKeywordsWindows:[`cursor.exe`],processKeywordsLinux:[`cursor`]},windsurf:{ideKind:`vscode`,displayName:`Windsurf`,processKeywordsMac:[`Windsurf Helper`,`Windsurf.app`],processKeywordsWindows:[`windsurf.exe`],processKeywordsLinux:[`windsurf`]},vscode:{ideKind:`vscode`,displayName:`VS Code`,processKeywordsMac:[`Visual Studio Code`,`Code Helper`],processKeywordsWindows:[`code.exe`],processKeywordsLinux:[`code`]},intellij:{ideKind:`jetbrains`,displayName:`IntelliJ IDEA`,processKeywordsMac:[`IntelliJ IDEA`],processKeywordsWindows:[`idea64.exe`],processKeywordsLinux:[`idea`,`intellij`]},pycharm:{ideKind:`jetbrains`,displayName:`PyCharm`,processKeywordsMac:[`PyCharm`],processKeywordsWindows:[`pycharm64.exe`],processKeywordsLinux:[`pycharm`]},webstorm:{ideKind:`jetbrains`,displayName:`WebStorm`,processKeywordsMac:[`WebStorm`],processKeywordsWindows:[`webstorm64.exe`],processKeywordsLinux:[`webstorm`]},phpstorm:{ideKind:`jetbrains`,displayName:`PhpStorm`,processKeywordsMac:[`PhpStorm`],processKeywordsWindows:[`phpstorm64.exe`],processKeywordsLinux:[`phpstorm`]},rubymine:{ideKind:`jetbrains`,displayName:`RubyMine`,processKeywordsMac:[`RubyMine`],processKeywordsWindows:[`rubymine64.exe`],processKeywordsLinux:[`rubymine`]},clion:{ideKind:`jetbrains`,displayName:`CLion`,processKeywordsMac:[`CLion`],processKeywordsWindows:[`clion64.exe`],processKeywordsLinux:[`clion`]},goland:{ideKind:`jetbrains`,displayName:`GoLand`,processKeywordsMac:[`GoLand`],processKeywordsWindows:[`goland64.exe`],processKeywordsLinux:[`goland`]},rider:{ideKind:`jetbrains`,displayName:`Rider`,processKeywordsMac:[`Rider`],processKeywordsWindows:[`rider64.exe`],processKeywordsLinux:[`rider`]},datagrip:{ideKind:`jetbrains`,displayName:`DataGrip`,processKeywordsMac:[`DataGrip`],processKeywordsWindows:[`datagrip64.exe`],processKeywordsLinux:[`datagrip`]},appcode:{ideKind:`jetbrains`,displayName:`AppCode`,processKeywordsMac:[`AppCode`],processKeywordsWindows:[`appcode.exe`],processKeywordsLinux:[`appcode`]},dataspell:{ideKind:`jetbrains`,displayName:`DataSpell`,processKeywordsMac:[`DataSpell`],processKeywordsWindows:[`dataspell64.exe`],processKeywordsLinux:[`dataspell`]},aqua:{ideKind:`jetbrains`,displayName:`Aqua`,processKeywordsMac:[],processKeywordsWindows:[`aqua64.exe`],processKeywordsLinux:[]},gateway:{ideKind:`jetbrains`,displayName:`Gateway`,processKeywordsMac:[],processKeywordsWindows:[`gateway64.exe`],processKeywordsLinux:[]},fleet:{ideKind:`jetbrains`,displayName:`Fleet`,processKeywordsMac:[],processKeywordsWindows:[`fleet.exe`],processKeywordsLinux:[]},androidstudio:{ideKind:`jetbrains`,displayName:`Android Studio`,processKeywordsMac:[`Android Studio`],processKeywordsWindows:[`studio64.exe`],processKeywordsLinux:[`android-studio`]}},KA=c(()=>LA(po.terminal)),qA=c(()=>RA($r.terminal)),JA=c(()=>KA()||qA()||!!process.env.FORCE_CODE_TERMINAL),O4e=c(async()=>{if(process.env.USERPROFILE)return process.env.USERPROFILE;let{stdout:e,code:t}=await ts(`powershell.exe`,[`-NoProfile`,`-NonInteractive`,`-Command`,`$env:USERPROFILE`]);if(t===0&&e.trim())return e.trim();U(`Unable to get Windows USERPROFILE via PowerShell - IDE detection may be incomplete`)}),YA=null,k4e=process.env.USER_TYPE===`ant`?`anthropic.claude-code-internal`:`anthropic.claude-code`,XA=null,ZA={code:`VS Code`,cursor:`Cursor`,windsurf:`Windsurf`,antigravity:`Antigravity`,vi:`Vim`,vim:`Vim`,nano:`nano`,notepad:`Notepad`,"start /wait notepad":`Notepad`,emacs:`Emacs`,subl:`Sublime Text`,atom:`Atom`},QA=c(async(e,t)=>{if(process.env.CLAUDE_CODE_IDE_HOST_OVERRIDE)return process.env.CLAUDE_CODE_IDE_HOST_OVERRIDE;if(No()!==`wsl`||!e)return`127.0.0.1`;try{let e=await co(`ip route show | grep -i default`,{shell:!0,reject:!1});if(e.exitCode===0&&e.stdout){let n=e.stdout.match(/default via (\d+\.\d+\.\d+\.\d+)/);if(n){let e=n[1];if(await VA(e,t))return e}}}catch{}return`127.0.0.1`},(e,t)=>`${e}:${t}`)}));async function A4e(e=`latest`){let t=Date.now(),{stdout:n,code:r,stderr:i}=await $o(`npm`,[`view`,`@${e}`,`version`,`--prefer-online`,`--registry`,tj],{timeout:3e4,preserveOutputOnError:!0}),a=Date.now()-t;if(r!==0){G(`tengu_version_check_failure`,{latency_ms:a,source_npm:!0,exit_code:r});let e=Error(`npm view failed with code ${r}: ${i}`);throw q(e),e}return G(`tengu_version_check_success`,{latency_ms:a,source_npm:!0}),U(`npm view @${e} version: ${n}`),n.trim()}async function j4e(e=`latest`,t,n){let r=Date.now();try{let i=await Oe.get(`${t}/${e}`,{timeout:3e4,responseType:`text`,...n});return G(`tengu_version_check_success`,{latency_ms:Date.now()-r}),i.data.trim()}catch(n){let i=Date.now()-r,a=n instanceof Error?n.message:String(n),o;Oe.isAxiosError(n)&&n.response&&(o=n.response.status),G(`tengu_version_check_failure`,{latency_ms:i,http_status:o,is_timeout:a.includes(`timeout`)});let s=Error(`Failed to fetch version from ${t}/${e}: ${a}`);throw q(s),s}}async function M4e(e){if(/^v?\d+\.\d+\.\d+(-\S+)?$/.test(e)){let t=e.startsWith(`v`)?e.slice(1):e;if(/^99\.99\./.test(t))throw Error(`Version ${t} is not available for installation. Use 'stable' or 'latest'.`);return t}let t=e;if(t!==`stable`&&t!==`latest`)throw Error(`Invalid channel: ${e}. Use 'stable' or 'latest'`);return process.env.USER_TYPE===`ant`?A4e(t===`stable`?`stable`:`latest`):j4e(t,ej)}async function N4e(e,t){let n=za();await n.rm(t,{recursive:!0,force:!0});let r=oj(),i=`-${r}`;U(`Fetching integrity hash for ${i}@${e}`);let{stdout:a,code:o,stderr:s}=await $o(`npm`,[`view`,`${i}@${e}`,`dist.integrity`,`--registry`,tj],{timeout:3e4,preserveOutputOnError:!0});if(o!==0)throw Error(`npm view integrity failed with code ${o}: ${s}`);let c=a.trim();if(!c)throw Error(`Failed to fetch integrity hash for ${i}@${e}`);U(`Got integrity hash for ${r}: ${c}`),await n.mkdir(t);let l={name:`claude-native-installer`,version:`0.0.1`,dependencies:{"":e}},u={name:`claude-native-installer`,version:`0.0.1`,lockfileVersion:3,requires:!0,packages:{"":{name:`claude-native-installer`,version:`0.0.1`,dependencies:{"":e}},"node_modules/":{version:e,optionalDependencies:{[i]:e}},[`node_modules/${i}`]:{version:e,integrity:c}}};wa(Y(t,`package.json`),V(l,null,2),{encoding:`utf8`,flush:!0}),wa(Y(t,`package-lock.json`),V(u,null,2),{encoding:`utf8`,flush:!0});let d=await $o(`npm`,[`ci`,`--prefer-online`,`--registry`,tj],{timeout:6e4,preserveOutputOnError:!0,cwd:t});if(d.code!==0)throw Error(`npm ci failed with code ${d.code}: ${d.stderr}`);U(`Successfully downloaded and verified @${e}`)}function P4e(){return Number(process.env.CLAUDE_CODE_STALL_TIMEOUT_MS_FOR_TESTING)||R4e}async function F4e(e,t,n,r={}){let i;for(let a=1;a<=3;a++){let o=new AbortController,s,c=()=>{s&&(clearTimeout(s),s=void 0)},l=()=>{c(),s=setTimeout(e=>e.abort(),P4e(),o)};try{l();let i=await Oe.get(e,{timeout:5*6e4,responseType:`arraybuffer`,signal:o.signal,onDownloadProgress:()=>{l()},...r});c();let a=id(`sha256`);a.update(i.data);let s=a.digest(`hex`);if(s!==t)throw Error(`Checksum mismatch: expected ${t}, got ${s}`);await wd(n,Buffer.from(i.data)),await ud(n,493);return}catch(e){c();let t=Oe.isCancel(e);if(i=t?new z4e:xa(e),t&&a<3){U(`Download stalled on attempt ${a}/3, retrying...`),await Hs(1e3);continue}throw i}}throw i??Error(`Download failed after all retries`)}async function I4e(e,t,n,r){let i=za();await i.rm(t,{recursive:!0,force:!0});let a=oj(),o=Date.now();G(`tengu_binary_download_attempt`,{});let s;try{s=(await Oe.get(`${n}/${e}/manifest.json`,{timeout:1e4,responseType:`json`,...r})).data}catch(t){let r=Date.now()-o,i=t instanceof Error?t.message:String(t),a;throw Oe.isAxiosError(t)&&t.response&&(a=t.response.status),G(`tengu_binary_manifest_fetch_failure`,{latency_ms:r,http_status:a,is_timeout:i.includes(`timeout`)}),q(Error(`Failed to fetch manifest from ${n}/${e}/manifest.json: ${i}`)),t}let c=s.platforms[a];if(!c)throw G(`tengu_binary_platform_not_found`,{}),Error(`Platform ${a} not found in manifest for version ${e}`);let l=c.checksum,u=sj(a),d=`${n}/${e}/${a}/${u}`;await i.mkdir(t);let f=Y(t,u);try{await F4e(d,l,f,r||{}),G(`tengu_binary_download_success`,{latency_ms:Date.now()-o})}catch(e){let t=Date.now()-o,n=e instanceof Error?e.message:String(e),r;throw Oe.isAxiosError(e)&&e.response&&(r=e.response.status),G(`tengu_binary_download_failure`,{latency_ms:t,http_status:r,is_timeout:n.includes(`timeout`),is_checksum_mismatch:n.includes(`Checksum mismatch`)}),q(Error(`Failed to download binary from ${d}: ${n}`)),e}}async function L4e(e,t){return process.env.USER_TYPE===`ant`?(await N4e(e,t),`npm`):(await I4e(e,t,ej),`binary`)}var ej,tj,R4e,z4e,B4e=n((()=>{ke(),Ua(),W(),ka(),es(),Fa(),Ao(),Us(),Va(),_3e(),ej=`https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases`,tj=`https://artifactory.infra.ant.dev/artifactory/api/npm/npm-all/`,R4e=6e4,z4e=class extends Error{constructor(){super(`Download stalled: no data received for 60 seconds`),this.name=`StallTimeoutError`}}}));function nj(){let e=process.env.ENABLE_PID_BASED_VERSION_LOCKING;return x(e)?!0:h(e)?!1:Jr(`tengu_pid_based_version_locking`,!1)}function rj(e){if(e<=1)return!1;try{return process.kill(e,0),!0}catch{return!1}}function V4e(e,t){if(!rj(e))return!1;if(e===process.pid)return!0;try{let n=Lce(e);if(!n)return!0;let r=n.toLowerCase(),i=t.toLowerCase();return r.includes(`claude`)||r.includes(i)}catch{return!0}}function ij(e){let t=za();try{let n=t.readFileSync(e,{encoding:`utf8`});if(!n||n.trim()===``)return null;let r=Da(n);return typeof r.pid!=`number`||!r.version||!r.execPath?null:r}catch{return null}}function aj(e){let t=ij(e);if(!t)return!1;let{pid:n,execPath:r}=t;if(!rj(n))return!1;if(!V4e(n,r))return U(`Lock PID ${n} is running but does not appear to be Claude - treating as stale`),!1;let i=za();try{let t=i.statSync(e);if(Date.now()-t.mtimeMs>J4e&&!rj(n))return!1}catch{}return!0}function H4e(e,t){let n=za(),r=`${e}.tmp.${process.pid}.${Date.now()}`;try{wa(r,V(t,null,2),{encoding:`utf8`,flush:!0}),n.renameSync(r,e)}catch(e){try{n.unlinkSync(r)}catch{}throw e}}async function U4e(e,t){let n=za(),r=Tu(e);if(aj(t))return U(`Cannot acquire lock for ${r} - held by PID ${ij(t)?.pid}`),null;let i={pid:process.pid,version:r,execPath:process.execPath,acquiredAt:Date.now()};try{return H4e(t,i),ij(t)?.pid===process.pid?(U(`Acquired PID lock for ${r} (PID ${process.pid})`),()=>{try{ij(t)?.pid===process.pid&&(n.unlinkSync(t),U(`Released PID lock for ${r}`))}catch(e){U(`Failed to release lock for ${r}: ${e}`)}}):null}catch(e){return U(`Failed to acquire lock for ${r}: ${e}`),null}}async function W4e(e,t){let n=await U4e(e,t);if(!n)return!1;let r=()=>{try{n()}catch{}};return process.on(`exit`,r),process.on(`SIGINT`,r),process.on(`SIGTERM`,r),!0}async function G4e(e,t,n){let r=await U4e(e,t);if(!r)return!1;try{return await n(),!0}finally{r()}}function K4e(e){let t=za(),n=[];try{let r=t.readdirStringSync(e).filter(e=>e.endsWith(`.lock`));for(let t of r){let r=Y(e,t),i=ij(r);i&&n.push({version:i.version,pid:i.pid,isProcessRunning:rj(i.pid),execPath:i.execPath,acquiredAt:new Date(i.acquiredAt),lockFilePath:r})}}catch(e){if(Oa(e))return n;q(xa(e))}return n}function q4e(e){let t=za(),n=0;try{let r=t.readdirStringSync(e).filter(e=>e.endsWith(`.lock`));for(let i of r){let r=Y(e,i);try{t.lstatSync(r).isDirectory()?(t.rmSync(r,{recursive:!0,force:!0}),n++,U(`Cleaned up legacy directory lock: ${i}`)):aj(r)||(t.unlinkSync(r),n++,U(`Cleaned up stale lock: ${i}`))}catch{}}}catch(e){if(Oa(e))return 0;q(xa(e))}return n}var J4e,Y4e=n((()=>{wr(),W(),y(),ka(),Fa(),Gs(),Ao(),Va(),J4e=7200*1e3}));function oj(){let e=po.platform,t=process.arch===`x64`?`x64`:process.arch===`arm64`?`arm64`:null;if(!t){let e=Error(`Unsupported architecture: ${process.arch}`);throw U(`Native installer does not support architecture: ${process.arch}`,{level:`error`}),e}return e===`linux`&&$r.isMuslEnvironment()?`linux-${t}-musl`:`${e}-${t}`}function sj(e){return e.startsWith(`win32`)?`claude.exe`:`claude`}function cj(){let e=sj(oj());return{versions:Y(Lfe(),`claude`,`versions`),staging:Y(Ife(),`claude`,`staging`),locks:Y(Ffe(),`claude`,`locks`),executable:Y(Rfe(),e)}}async function lj(e){try{let t=await xd(e);return!t.isFile()||t.size===0?!1:(await cd(e,Vu.X_OK),!0)}catch{return!1}}async function uj(e){let t=cj(),n=[t.versions,t.staging,t.locks];await Promise.all(n.map(e=>pd(e,{recursive:!0}))),await pd(Eu(t.executable),{recursive:!0});let r=Y(t.versions,e);try{await xd(r)}catch{await wd(r,``,{encoding:`utf8`})}return{stagingPath:Y(t.staging,e),installPath:r}}async function X4e(e,t,n=0){let r=cj(),i=dj(r,e);if(await pd(r.locks,{recursive:!0}),nj()){let r=0,a=n+1,o=n>0?1e3:100,s=n>0?5e3:500;for(;r<a;){if(await G4e(e,i,async()=>{try{await t()}catch(e){throw q(e),e}}))return G(`tengu_version_lock_acquired`,{is_pid_based:!0,is_lifetime_lock:!1,attempts:r+1}),!0;r++,r<a&&await Hs(Math.min(o*2**(r-1),s))}return G(`tengu_version_lock_failed`,{is_pid_based:!0,is_lifetime_lock:!1,attempts:a}),fj(e,Error(`Lock held by another process`)),!1}let a=null;try{try{a=await cs(e,{stale:pj,retries:{retries:n,minTimeout:n>0?1e3:100,maxTimeout:n>0?5e3:500},lockfilePath:i,onCompromised:e=>{U(`NON-FATAL: Version lock was compromised during operation: ${e.message}`,{level:`info`})}})}catch(t){return G(`tengu_version_lock_failed`,{is_pid_based:!1,is_lifetime_lock:!1}),fj(e,t),!1}try{return await t(),G(`tengu_version_lock_acquired`,{is_pid_based:!1,is_lifetime_lock:!1}),!0}catch(e){throw q(e),e}}finally{a&&await a()}}async function Z4e(e,t){await pd(Eu(t),{recursive:!0});let n=`${t}.tmp.${process.pid}.${Date.now()}`;try{await dd(e,n),await ud(n,493),await yd(n,t),U(`Atomically installed binary to ${t}`)}catch(e){try{await Cd(n)}catch{}throw e}}async function Q4e(e,t){try{let n=Y(e,`node_modules`,`@anthropic-ai`),r=(await gd(n)).find(e=>e.startsWith(`claude-cli-native-`));if(!r)throw G(`tengu_native_install_package_failure`,{stage_find_package:!0,error_package_not_found:!0}),Error(`Could not find platform-specific native package`);let i=Y(n,r,`cli`);try{await xd(i)}catch{throw G(`tengu_native_install_package_failure`,{stage_binary_exists:!0,error_binary_not_found:!0}),Error(`Native binary not found in staged package`)}await Z4e(i,t),await bd(e,{recursive:!0,force:!0}),G(`tengu_native_install_package_success`,{})}catch(e){let t=H(e);throw!t.includes(`Could not find platform-specific`)&&!t.includes(`Native binary not found`)&&G(`tengu_native_install_package_failure`,{stage_atomic_move:!0,error_move_failed:!0}),q(xa(e)),e}}async function $4e(e,t){try{let n=Y(e,sj(oj()));try{await xd(n)}catch{throw G(`tengu_native_install_binary_failure`,{stage_binary_exists:!0,error_binary_not_found:!0}),Error(`Staged binary not found`)}await Z4e(n,t),await bd(e,{recursive:!0,force:!0}),G(`tengu_native_install_binary_success`,{})}catch(e){throw H(e).includes(`Staged binary not found`)||G(`tengu_native_install_binary_failure`,{stage_atomic_move:!0,error_move_failed:!0}),q(xa(e)),e}}async function e3e(e,t,n){n===`npm`?await Q4e(e,t):await $4e(e,t)}async function t3e(e,t){let{stagingPath:n,installPath:r}=await uj(e),{executable:i}=cj(),a=x(process.env.ENABLE_LOCKLESS_UPDATES)?`${n}.${process.pid}.${Date.now()}`:n,o=!await n3e(e)||t;if(o?(U(t?`Force reinstalling native installer version ${e}`:`Downloading native installer version ${e}`),await e3e(a,r,await L4e(e,a))):U(`Version ${e} already installed, updating symlink`),await i3e(i),await a3e(i,r),!await lj(i)){let e=!1;try{await xd(r),e=!0}catch{}throw Error(`Failed to create executable at ${i}. Source file exists: ${e}. Check write permissions to ${i}.`)}return o}async function n3e(e){let{installPath:t}=await uj(e);return lj(t)}async function r3e(e,t=!1){let n=Date.now(),r=await M4e(e),{executable:i}=cj();if(U(`Checking for native installer update to version ${r}`),!t){let e=await HBe();if(e&&ufe(r,e)){if(U(`Native installer: maxVersion ${e} is set, capping update from ${r} to ${e}`),lfe(`2.6.10`,e))return U(`Native installer: current version 2.6.10 is already at or above maxVersion ${e}, skipping update`),G(`tengu_native_update_skipped_max_version`,{latency_ms:Date.now()-n,max_version:e,available_version:r}),{success:!0,latestVersion:r};r=e}}if(!t&&r===`2.6.10`&&await n3e(r)&&await lj(i))return U(`Found ${r} at ${i}, skipping install`),G(`tengu_native_update_complete`,{latency_ms:Date.now()-n,was_new_install:!1,was_force_reinstall:!1,was_already_running:!0}),{success:!0,latestVersion:r};if(!t&&WBe(r))return G(`tengu_native_update_skipped_minimum_version`,{latency_ms:Date.now()-n,target_version:r}),{success:!0,latestVersion:r};let a=!1,o;if(x(process.env.ENABLE_LOCKLESS_UPDATES))a=await t3e(r,t),o=Date.now()-n;else{let{installPath:e}=await uj(r);t&&await d3e(e);let i=await X4e(e,async()=>{a=await t3e(r,t)},3);if(o=Date.now()-n,!i){let t=cj(),n;if(nj()){let r=dj(t,e);aj(r)&&(n=ij(r)?.pid)}return G(`tengu_native_update_lock_failed`,{latency_ms:o,lock_holder_pid:n}),{success:!1,latestVersion:r,lockFailed:!0,lockHolderPid:n}}}return G(`tengu_native_update_complete`,{latency_ms:o,was_new_install:a,was_force_reinstall:t}),U(`Successfully updated to version ${r}`),{success:!0,latestVersion:r}}async function i3e(e){try{await ume(e),U(`Removed empty directory at ${e}`)}catch(t){let n=Ea(t);n!==`ENOTDIR`&&n!==`ENOENT`&&n!==`ENOTEMPTY`&&U(`Could not remove directory at ${e}: ${t}`)}}async function a3e(e,t){if(oj().startsWith(`win32`))try{await pd(Eu(e),{recursive:!0});let n;try{n=await xd(e)}catch{}if(n){try{let e=await xd(t);if(n.size===e.size)return!1}catch{}let r=`${e}.old.${Date.now()}`;await yd(e,r);try{await dd(t,e);try{await Cd(r)}catch{}}catch(t){try{await yd(r,e)}catch(e){let n=Error(`Failed to restore old executable: ${e}`,{cause:t});throw q(n),n}throw t}}else try{await dd(t,e)}catch(e){throw Oa(e)?Error(`Source file does not exist: ${t}`):e}return!0}catch(n){return q(Error(`Failed to copy executable from ${t} to ${e}: ${n}`)),!1}let n=Eu(e);try{await pd(n,{recursive:!0}),U(`Created directory ${n} for symlink`)}catch(e){return q(Error(`Failed to create directory ${n}: ${e}`)),!1}try{let n=!1;try{await xd(e),n=!0}catch{}if(n){try{let n=await _d(e);if(Nu(Eu(e),n)===Nu(t))return!1}catch{}await Cd(e)}}catch(e){q(Error(`Failed to check/remove existing symlink: ${e}`))}let r=`${e}.tmp.${process.pid}.${Date.now()}`;try{return await Sd(t,r),await yd(r,e),U(`Atomically updated symlink ${e} -> ${t}`),!0}catch(n){try{await Cd(r)}catch{}return q(Error(`Failed to create symlink from ${e} to ${t}: ${n}`)),!1}}async function o3e(e=!1){if(x(process.env.DISABLE_INSTALLATION_CHECKS))return[];let t=await aC();if(t===`development`)return[];let n=Tr();if(!(e||t===`native`||n.installMethod===`native`))return[];let r=cj(),i=[],a=Eu(r.executable),o=Nu(a),s=oj().startsWith(`win32`);try{await cd(a)}catch{i.push({message:`installMethod is native, but directory ${a} does not exist`,userActionRequired:!0,type:`error`})}if(s)await lj(r.executable)||i.push({message:`installMethod is native, but claude command is missing or invalid at ${r.executable}`,userActionRequired:!0,type:`error`});else try{let e=await _d(r.executable);await lj(Nu(Eu(r.executable),e))||i.push({message:`Claude symlink points to missing or invalid binary: ${e}`,userActionRequired:!0,type:`error`})}catch(e){Oa(e)?i.push({message:`installMethod is native, but claude command not found at ${r.executable}`,userActionRequired:!0,type:`error`}):await lj(r.executable)||i.push({message:`${r.executable} exists but is not a valid Claude binary`,userActionRequired:!0,type:`error`})}if(!(process.env.PATH||``).split(Ope).some(e=>{try{let t=Nu(e);return s?t.toLowerCase()===o.toLowerCase():t===o}catch{return!1}}))if(s){let e=a.replace(/\//g,`\\`);i.push({message:`Native installation exists but ${e} is not in your PATH. Add it by opening: System Properties → Environment Variables → Edit User PATH → New → Add the path above. Then restart your terminal.`,userActionRequired:!0,type:`path`})}else{let e=KS(),t=JS()[e],n=t?t.replace(Su(),`~`):`your shell config file`;i.push({message:`Native installation exists but ~/.local/bin is not in your PATH. Run:\n\necho 'export PATH="$HOME/.local/bin:$PATH"' >> ${n} && source ${n}`,userActionRequired:!0,type:`path`})}return i}function s3e(e,t=!1){if(t)return c3e(e,t);if(mj)return U(`installLatest: joining in-flight call`),mj;let n=c3e(e,t);mj=n;let r=()=>{mj=null};return n.then(r,r),n}async function c3e(e,t=!1){let n=await r3e(e,t);return n.success?(Tr().installMethod!==`native`&&(fr(e=>({...e,installMethod:`native`,autoUpdates:!1,autoUpdatesProtectedForNative:!0})),U(`Native installer: Set installMethod to "native" and disabled legacy auto-updater for protection`)),f3e(),{latestVersion:n.latestVersion,wasUpdated:n.success,lockFailed:!1}):{latestVersion:null,wasUpdated:!1,lockFailed:n.lockFailed,lockHolderPid:n.lockHolderPid}}async function l3e(e){try{let t=await _d(e),n=Nu(Eu(e),t);if(await lj(n))return n}catch{}return null}function dj(e,t){let n=Tu(t);return Y(e.locks,`${n}.lock`)}async function u3e(){let e=cj();if(!process.execPath.includes(e.versions))return;let t=Nu(process.execPath);try{let n=dj(e,t);if(await pd(e.locks,{recursive:!0}),nj()){if(!await W4e(t,n)){G(`tengu_version_lock_failed`,{is_pid_based:!0,is_lifetime_lock:!0}),fj(t,Error(`Lock already held by another process`));return}G(`tengu_version_lock_acquired`,{is_pid_based:!0,is_lifetime_lock:!0}),U(`Acquired PID lock on running version: ${t}`)}else{let e;try{e=await cs(t,{stale:pj,retries:0,lockfilePath:n,onCompromised:e=>{U(`NON-FATAL: Lock on running version was compromised: ${e.message}`,{level:`info`})}}),G(`tengu_version_lock_acquired`,{is_pid_based:!1,is_lifetime_lock:!0}),U(`Acquired mtime-based lock on running version: ${t}`),ja(async()=>{try{await e?.()}catch{}})}catch(e){if(Oa(e)){U(`Cannot lock current version - file does not exist: ${t}`,{level:`info`});return}G(`tengu_version_lock_failed`,{is_pid_based:!1,is_lifetime_lock:!0}),fj(t,e);return}}}catch(e){if(Oa(e)){U(`Cannot lock current version - file does not exist: ${t}`,{level:`info`});return}U(`NON-FATAL: Failed to lock current version during execution ${H(e)}`,{level:`info`})}}function fj(e,t){q(Error(`NON-FATAL: Lock acquisition failed for ${e} (expected in multi-process scenarios)`,{cause:t}))}async function d3e(e){let t=dj(cj(),e);try{await Cd(t),U(`Force-removed lock file at ${t}`)}catch(e){U(`Failed to force-remove lock file: ${H(e)}`)}}async function f3e(){await Promise.resolve();let e=cj(),t=Date.now()-36e5;if(oj().startsWith(`win32`)){let t=Eu(e.executable);try{let e=await gd(t),n=0;for(let r of e)if(/^claude\.exe\.old\.\d+$/.test(r))try{await Cd(Y(t,r)),n++}catch{}n>0&&U(`Cleaned up ${n} old Windows executables on startup`)}catch(e){Oa(e)||U(`Failed to clean up old Windows executables: ${e}`)}}try{let n=await gd(e.staging),r=0;for(let i of n){let n=Y(e.staging,i);try{(await xd(n)).mtime.getTime()<t&&(await bd(n,{recursive:!0,force:!0}),r++,U(`Cleaned up old staging directory: ${i}`))}catch{}}r>0&&(U(`Cleaned up ${r} orphaned staging directories`),G(`tengu_native_staging_cleanup`,{cleaned_count:r}))}catch(e){Oa(e)||U(`Failed to clean up staging directories: ${e}`)}if(nj()){let t=q4e(e.locks);t>0&&(U(`Cleaned up ${t} stale version locks`),G(`tengu_native_stale_locks_cleanup`,{cleaned_count:t}))}let n;try{n=await gd(e.versions)}catch(e){Oa(e)||U(`Failed to readdir versions directory: ${e}`);return}let r=[],i=0;for(let a of n){let n=Y(e.versions,a);if(/\.tmp\.\d+\.\d+$/.test(a)){try{(await xd(n)).mtime.getTime()<t&&(await Cd(n),i++,U(`Cleaned up orphaned temp install file: ${a}`))}catch{}continue}try{let e=await xd(n);if(!e.isFile()||process.platform!==`win32`&&e.size>0&&!(e.mode&73))continue;r.push({name:a,path:n,resolvedPath:Nu(n),mtime:e.mtime})}catch{}}if(i>0&&(U(`Cleaned up ${i} orphaned temp install files`),G(`tengu_native_temp_files_cleanup`,{cleaned_count:i})),r.length!==0)try{let t=process.execPath,n=new Set;t&&t.includes(e.versions)&&n.add(Nu(t));let i=await l3e(e.executable);i&&n.add(i);for(let t of r){if(n.has(t.resolvedPath))continue;let r=dj(e,t.resolvedPath),i=!1;if(nj())i=aj(r);else try{i=await mce(t.resolvedPath,{stale:pj,lockfilePath:r})}catch{i=!1}i&&(n.add(t.resolvedPath),U(`Protecting locked version from cleanup: ${t.name}`))}let a=r.filter(e=>!n.has(e.resolvedPath)).sort((e,t)=>t.mtime.getTime()-e.mtime.getTime()).slice(2);if(a.length===0){G(`tengu_native_version_cleanup`,{total_count:r.length,deleted_count:0,protected_count:n.size,retained_count:2,lock_failed_count:0,error_count:0});return}let o=0,s=0,c=0;await Promise.all(a.map(async e=>{try{await X4e(e.path,async()=>{await Cd(e.path)})?o++:(s++,U(`Skipping deletion of ${e.name} - locked by another process`))}catch(t){c++,q(Error(`Failed to delete version ${e.name}: ${t}`))}})),G(`tengu_native_version_cleanup`,{total_count:r.length,deleted_count:o,protected_count:n.size,retained_count:2,lock_failed_count:s,error_count:c})}catch(e){Oa(e)||q(Error(`Version cleanup failed: ${e}`))}}async function p3e(){let e=[],t=JS();for(let[n,r]of Object.entries(t))try{let t=await RBe(r);if(!t)continue;let{filtered:i,hadAlias:a}=LBe(t);a&&(await zBe(r,i),e.push({message:`Removed claude alias from ${r}. Run: unalias claude`,userActionRequired:!0,type:`alias`}),U(`Cleaned up claude alias from ${n} config`))}catch(t){q(t),e.push({message:`Failed to clean up ${r}: ${t}`,userActionRequired:!1,type:`error`})}return e}async function m3e(e){try{let t=await $o(`npm`,[`config`,`get`,`prefix`]);if(t.code!==0||!t.stdout)return{success:!1,error:`Failed to get npm global prefix`};let n=t.stdout.trim(),r=!1;async function i(e,t){try{return await Cd(e),U(`Manually removed ${t}: ${e}`),!0}catch{return!1}}if(oj().startsWith(`win32`)){let e=Y(n,`claude.cmd`),t=Y(n,`claude.ps1`),a=Y(n,`claude`);await i(e,`bin script`)&&(r=!0),await i(t,`PowerShell script`)&&(r=!0),await i(a,`bin executable`)&&(r=!0)}else await i(Y(n,`bin`,`claude`),`bin symlink`)&&(r=!0);return r?(U(`Successfully removed ${e} manually`),{success:!0,warning:`${e} executables removed, but node_modules directory was left intact for safety. You may manually delete it later at: ${oj().startsWith(`win32`)?Y(n,`node_modules`,e):Y(n,`lib`,`node_modules`,e)}`}):{success:!1}}catch(e){return U(`Manual removal failed: ${e}`,{level:`error`}),{success:!1,error:`Manual removal failed: ${e}`}}}async function h3e(e){let{code:t,stderr:n}=await $o(`npm`,[`uninstall`,`-g`,e],{cwd:process.cwd()});if(t===0)return U(`Removed global npm installation of ${e}`),{success:!0};if(n&&!n.includes(`npm ERR! code E404`)){if(n.includes(`npm error code ENOTEMPTY`)){U(`Failed to uninstall global npm package ${e}: ${n}`,{level:`error`}),U(`Attempting manual removal due to ENOTEMPTY error`);let t=await m3e(e);if(t.success)return{success:!0,warning:t.warning};if(t.error)return{success:!1,error:`Failed to remove global npm installation of ${e}: ${n}. Manual removal also failed: ${t.error}`}}return U(`Failed to uninstall global npm package ${e}: ${n}`,{level:`error`}),{success:!1,error:`Failed to remove global npm installation of ${e}: ${n}`}}return{success:!1}}async function g3e(){let e=[],t=[],n=0,r=await h3e(`@anthropic-ai/claude-code`);r.success?(n++,r.warning&&t.push(r.warning)):r.error&&e.push(r.error);let i=Y(Su(),`.claude`,`local`);try{await bd(i,{recursive:!0}),n++,U(`Removed local installation at ${i}`)}catch(t){Oa(t)||(e.push(`Failed to remove ${i}: ${t}`),U(`Failed to remove local installation: ${t}`,{level:`error`}))}return{removed:n,errors:e,warnings:t}}var pj,mj,_3e=n((()=>{Ua(),ZS(),Ma(),xn(),W(),oC(),fo(),na(),y(),ka(),es(),qS(),ls(),Ao(),nu(),XS(),Us(),Pfe(),B4e(),Y4e(),pj=10080*60*1e3,mj=null})),v3e=n((()=>{_3e()}));function y3e(){let e=dae(),t=[`user`,`project`,`local`].flatMap(e=>QT(e).errors);return{settings:e.settings,errors:[...e.errors,...t]}}var b3e=n((()=>{rE(),Gi()}));function x3e(){return process.env.USER_TYPE===`ant`?[{label:`Bash Sandbox`,value:Nm.isSandboxingEnabled()?`Enabled`:`Disabled`}]:[]}function S3e(e,t=null,n){let r=e?.find(e=>e.name===`ide`);if(t){let e=UA(t.ideType),i=RA(t.ideType)?`plugin`:`extension`;if(t.error)return[{label:`IDE`,value:(0,j3e.jsxs)(z,{children:[Dt(`error`,n)(ue.cross),` Error installing `,e,` `,i,`:`,` `,t.error,`
|
|
926
|
+
`);for(let t of e){let e=t.match(/\/\/artifactory\.infra\.ant\.dev\/artifactory\/api\/npm\/npm-all\/:_authToken=(.+)/);if(e&&e[1]){n=e[1].trim();break}}}catch(e){throw q(e),Error(`Failed to read npm authentication: ${e}`)}if(!n)throw Error(`No artifactory auth token found in ~/.npmrc`);try{let t=(await Oe.get(`https://artifactory.infra.ant.dev/artifactory/armorcode-claude-code-internal/claude-vscode-releases/stable`,{headers:{Authorization:`Bearer ${n}`}})).data.trim();if(!t)throw Error(`No version found in artifactory response`);let i=`https://artifactory.infra.ant.dev/artifactory/armorcode-claude-code-internal/claude-vscode-releases/${t}/claude-code.vsix`,a=Y(xu.tmpdir(),`claude-code-${t}-${Date.now()}.vsix`);try{let r=await Oe.get(i,{headers:{Authorization:`Bearer ${n}`},responseType:`stream`}),o=za().createWriteStream(a);await new Promise((e,t)=>{r.data.pipe(o),o.on(`finish`,e),o.on(`error`,t)}),await Hs(500);let s=await $o(e,[`--force`,`--install-extension`,a],{env:HA()});if(s.code!==0)throw Error(`${s.code}: ${s.error} ${s.stderr}`);return t}finally{try{await r.unlink(a)}catch{}}}catch(e){throw Oe.isAxiosError(e)?Error(`Failed to fetch extension version from artifactory: ${e.message}`):e}}var WA,GA,KA,qA,JA,O4e,YA,k4e,XA,ZA,QA,$A=n((()=>{ke(),so(),nre(),l(),Ua(),tn(),jA(),xn(),fo(),y(),es(),Fa(),Gs(),q2e(),Ao(),Po(),nu(),oy(),W(),na(),ka(),Y2e(),Us(),Va(),WA=()=>$2e(),GA={cursor:{ideKind:`vscode`,displayName:`Cursor`,processKeywordsMac:[`Cursor Helper`,`Cursor.app`],processKeywordsWindows:[`cursor.exe`],processKeywordsLinux:[`cursor`]},windsurf:{ideKind:`vscode`,displayName:`Windsurf`,processKeywordsMac:[`Windsurf Helper`,`Windsurf.app`],processKeywordsWindows:[`windsurf.exe`],processKeywordsLinux:[`windsurf`]},vscode:{ideKind:`vscode`,displayName:`VS Code`,processKeywordsMac:[`Visual Studio Code`,`Code Helper`],processKeywordsWindows:[`code.exe`],processKeywordsLinux:[`code`]},intellij:{ideKind:`jetbrains`,displayName:`IntelliJ IDEA`,processKeywordsMac:[`IntelliJ IDEA`],processKeywordsWindows:[`idea64.exe`],processKeywordsLinux:[`idea`,`intellij`]},pycharm:{ideKind:`jetbrains`,displayName:`PyCharm`,processKeywordsMac:[`PyCharm`],processKeywordsWindows:[`pycharm64.exe`],processKeywordsLinux:[`pycharm`]},webstorm:{ideKind:`jetbrains`,displayName:`WebStorm`,processKeywordsMac:[`WebStorm`],processKeywordsWindows:[`webstorm64.exe`],processKeywordsLinux:[`webstorm`]},phpstorm:{ideKind:`jetbrains`,displayName:`PhpStorm`,processKeywordsMac:[`PhpStorm`],processKeywordsWindows:[`phpstorm64.exe`],processKeywordsLinux:[`phpstorm`]},rubymine:{ideKind:`jetbrains`,displayName:`RubyMine`,processKeywordsMac:[`RubyMine`],processKeywordsWindows:[`rubymine64.exe`],processKeywordsLinux:[`rubymine`]},clion:{ideKind:`jetbrains`,displayName:`CLion`,processKeywordsMac:[`CLion`],processKeywordsWindows:[`clion64.exe`],processKeywordsLinux:[`clion`]},goland:{ideKind:`jetbrains`,displayName:`GoLand`,processKeywordsMac:[`GoLand`],processKeywordsWindows:[`goland64.exe`],processKeywordsLinux:[`goland`]},rider:{ideKind:`jetbrains`,displayName:`Rider`,processKeywordsMac:[`Rider`],processKeywordsWindows:[`rider64.exe`],processKeywordsLinux:[`rider`]},datagrip:{ideKind:`jetbrains`,displayName:`DataGrip`,processKeywordsMac:[`DataGrip`],processKeywordsWindows:[`datagrip64.exe`],processKeywordsLinux:[`datagrip`]},appcode:{ideKind:`jetbrains`,displayName:`AppCode`,processKeywordsMac:[`AppCode`],processKeywordsWindows:[`appcode.exe`],processKeywordsLinux:[`appcode`]},dataspell:{ideKind:`jetbrains`,displayName:`DataSpell`,processKeywordsMac:[`DataSpell`],processKeywordsWindows:[`dataspell64.exe`],processKeywordsLinux:[`dataspell`]},aqua:{ideKind:`jetbrains`,displayName:`Aqua`,processKeywordsMac:[],processKeywordsWindows:[`aqua64.exe`],processKeywordsLinux:[]},gateway:{ideKind:`jetbrains`,displayName:`Gateway`,processKeywordsMac:[],processKeywordsWindows:[`gateway64.exe`],processKeywordsLinux:[]},fleet:{ideKind:`jetbrains`,displayName:`Fleet`,processKeywordsMac:[],processKeywordsWindows:[`fleet.exe`],processKeywordsLinux:[]},androidstudio:{ideKind:`jetbrains`,displayName:`Android Studio`,processKeywordsMac:[`Android Studio`],processKeywordsWindows:[`studio64.exe`],processKeywordsLinux:[`android-studio`]}},KA=c(()=>LA(po.terminal)),qA=c(()=>RA($r.terminal)),JA=c(()=>KA()||qA()||!!process.env.FORCE_CODE_TERMINAL),O4e=c(async()=>{if(process.env.USERPROFILE)return process.env.USERPROFILE;let{stdout:e,code:t}=await ts(`powershell.exe`,[`-NoProfile`,`-NonInteractive`,`-Command`,`$env:USERPROFILE`]);if(t===0&&e.trim())return e.trim();U(`Unable to get Windows USERPROFILE via PowerShell - IDE detection may be incomplete`)}),YA=null,k4e=process.env.USER_TYPE===`ant`?`anthropic.claude-code-internal`:`anthropic.claude-code`,XA=null,ZA={code:`VS Code`,cursor:`Cursor`,windsurf:`Windsurf`,antigravity:`Antigravity`,vi:`Vim`,vim:`Vim`,nano:`nano`,notepad:`Notepad`,"start /wait notepad":`Notepad`,emacs:`Emacs`,subl:`Sublime Text`,atom:`Atom`},QA=c(async(e,t)=>{if(process.env.CLAUDE_CODE_IDE_HOST_OVERRIDE)return process.env.CLAUDE_CODE_IDE_HOST_OVERRIDE;if(No()!==`wsl`||!e)return`127.0.0.1`;try{let e=await co(`ip route show | grep -i default`,{shell:!0,reject:!1});if(e.exitCode===0&&e.stdout){let n=e.stdout.match(/default via (\d+\.\d+\.\d+\.\d+)/);if(n){let e=n[1];if(await VA(e,t))return e}}}catch{}return`127.0.0.1`},(e,t)=>`${e}:${t}`)}));async function A4e(e=`latest`){let t=Date.now(),{stdout:n,code:r,stderr:i}=await $o(`npm`,[`view`,`@${e}`,`version`,`--prefer-online`,`--registry`,tj],{timeout:3e4,preserveOutputOnError:!0}),a=Date.now()-t;if(r!==0){G(`tengu_version_check_failure`,{latency_ms:a,source_npm:!0,exit_code:r});let e=Error(`npm view failed with code ${r}: ${i}`);throw q(e),e}return G(`tengu_version_check_success`,{latency_ms:a,source_npm:!0}),U(`npm view @${e} version: ${n}`),n.trim()}async function j4e(e=`latest`,t,n){let r=Date.now();try{let i=await Oe.get(`${t}/${e}`,{timeout:3e4,responseType:`text`,...n});return G(`tengu_version_check_success`,{latency_ms:Date.now()-r}),i.data.trim()}catch(n){let i=Date.now()-r,a=n instanceof Error?n.message:String(n),o;Oe.isAxiosError(n)&&n.response&&(o=n.response.status),G(`tengu_version_check_failure`,{latency_ms:i,http_status:o,is_timeout:a.includes(`timeout`)});let s=Error(`Failed to fetch version from ${t}/${e}: ${a}`);throw q(s),s}}async function M4e(e){if(/^v?\d+\.\d+\.\d+(-\S+)?$/.test(e)){let t=e.startsWith(`v`)?e.slice(1):e;if(/^99\.99\./.test(t))throw Error(`Version ${t} is not available for installation. Use 'stable' or 'latest'.`);return t}let t=e;if(t!==`stable`&&t!==`latest`)throw Error(`Invalid channel: ${e}. Use 'stable' or 'latest'`);return process.env.USER_TYPE===`ant`?A4e(t===`stable`?`stable`:`latest`):j4e(t,ej)}async function N4e(e,t){let n=za();await n.rm(t,{recursive:!0,force:!0});let r=oj(),i=`-${r}`;U(`Fetching integrity hash for ${i}@${e}`);let{stdout:a,code:o,stderr:s}=await $o(`npm`,[`view`,`${i}@${e}`,`dist.integrity`,`--registry`,tj],{timeout:3e4,preserveOutputOnError:!0});if(o!==0)throw Error(`npm view integrity failed with code ${o}: ${s}`);let c=a.trim();if(!c)throw Error(`Failed to fetch integrity hash for ${i}@${e}`);U(`Got integrity hash for ${r}: ${c}`),await n.mkdir(t);let l={name:`claude-native-installer`,version:`0.0.1`,dependencies:{"":e}},u={name:`claude-native-installer`,version:`0.0.1`,lockfileVersion:3,requires:!0,packages:{"":{name:`claude-native-installer`,version:`0.0.1`,dependencies:{"":e}},"node_modules/":{version:e,optionalDependencies:{[i]:e}},[`node_modules/${i}`]:{version:e,integrity:c}}};wa(Y(t,`package.json`),V(l,null,2),{encoding:`utf8`,flush:!0}),wa(Y(t,`package-lock.json`),V(u,null,2),{encoding:`utf8`,flush:!0});let d=await $o(`npm`,[`ci`,`--prefer-online`,`--registry`,tj],{timeout:6e4,preserveOutputOnError:!0,cwd:t});if(d.code!==0)throw Error(`npm ci failed with code ${d.code}: ${d.stderr}`);U(`Successfully downloaded and verified @${e}`)}function P4e(){return Number(process.env.CLAUDE_CODE_STALL_TIMEOUT_MS_FOR_TESTING)||R4e}async function F4e(e,t,n,r={}){let i;for(let a=1;a<=3;a++){let o=new AbortController,s,c=()=>{s&&(clearTimeout(s),s=void 0)},l=()=>{c(),s=setTimeout(e=>e.abort(),P4e(),o)};try{l();let i=await Oe.get(e,{timeout:5*6e4,responseType:`arraybuffer`,signal:o.signal,onDownloadProgress:()=>{l()},...r});c();let a=id(`sha256`);a.update(i.data);let s=a.digest(`hex`);if(s!==t)throw Error(`Checksum mismatch: expected ${t}, got ${s}`);await wd(n,Buffer.from(i.data)),await ud(n,493);return}catch(e){c();let t=Oe.isCancel(e);if(i=t?new z4e:xa(e),t&&a<3){U(`Download stalled on attempt ${a}/3, retrying...`),await Hs(1e3);continue}throw i}}throw i??Error(`Download failed after all retries`)}async function I4e(e,t,n,r){let i=za();await i.rm(t,{recursive:!0,force:!0});let a=oj(),o=Date.now();G(`tengu_binary_download_attempt`,{});let s;try{s=(await Oe.get(`${n}/${e}/manifest.json`,{timeout:1e4,responseType:`json`,...r})).data}catch(t){let r=Date.now()-o,i=t instanceof Error?t.message:String(t),a;throw Oe.isAxiosError(t)&&t.response&&(a=t.response.status),G(`tengu_binary_manifest_fetch_failure`,{latency_ms:r,http_status:a,is_timeout:i.includes(`timeout`)}),q(Error(`Failed to fetch manifest from ${n}/${e}/manifest.json: ${i}`)),t}let c=s.platforms[a];if(!c)throw G(`tengu_binary_platform_not_found`,{}),Error(`Platform ${a} not found in manifest for version ${e}`);let l=c.checksum,u=sj(a),d=`${n}/${e}/${a}/${u}`;await i.mkdir(t);let f=Y(t,u);try{await F4e(d,l,f,r||{}),G(`tengu_binary_download_success`,{latency_ms:Date.now()-o})}catch(e){let t=Date.now()-o,n=e instanceof Error?e.message:String(e),r;throw Oe.isAxiosError(e)&&e.response&&(r=e.response.status),G(`tengu_binary_download_failure`,{latency_ms:t,http_status:r,is_timeout:n.includes(`timeout`),is_checksum_mismatch:n.includes(`Checksum mismatch`)}),q(Error(`Failed to download binary from ${d}: ${n}`)),e}}async function L4e(e,t){return process.env.USER_TYPE===`ant`?(await N4e(e,t),`npm`):(await I4e(e,t,ej),`binary`)}var ej,tj,R4e,z4e,B4e=n((()=>{ke(),Ua(),W(),ka(),es(),Fa(),Ao(),Us(),Va(),_3e(),ej=`https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases`,tj=`https://artifactory.infra.ant.dev/artifactory/api/npm/npm-all/`,R4e=6e4,z4e=class extends Error{constructor(){super(`Download stalled: no data received for 60 seconds`),this.name=`StallTimeoutError`}}}));function nj(){let e=process.env.ENABLE_PID_BASED_VERSION_LOCKING;return x(e)?!0:h(e)?!1:Jr(`tengu_pid_based_version_locking`,!1)}function rj(e){if(e<=1)return!1;try{return process.kill(e,0),!0}catch{return!1}}function V4e(e,t){if(!rj(e))return!1;if(e===process.pid)return!0;try{let n=Lce(e);if(!n)return!0;let r=n.toLowerCase(),i=t.toLowerCase();return r.includes(`claude`)||r.includes(i)}catch{return!0}}function ij(e){let t=za();try{let n=t.readFileSync(e,{encoding:`utf8`});if(!n||n.trim()===``)return null;let r=Da(n);return typeof r.pid!=`number`||!r.version||!r.execPath?null:r}catch{return null}}function aj(e){let t=ij(e);if(!t)return!1;let{pid:n,execPath:r}=t;if(!rj(n))return!1;if(!V4e(n,r))return U(`Lock PID ${n} is running but does not appear to be Claude - treating as stale`),!1;let i=za();try{let t=i.statSync(e);if(Date.now()-t.mtimeMs>J4e&&!rj(n))return!1}catch{}return!0}function H4e(e,t){let n=za(),r=`${e}.tmp.${process.pid}.${Date.now()}`;try{wa(r,V(t,null,2),{encoding:`utf8`,flush:!0}),n.renameSync(r,e)}catch(e){try{n.unlinkSync(r)}catch{}throw e}}async function U4e(e,t){let n=za(),r=Tu(e);if(aj(t))return U(`Cannot acquire lock for ${r} - held by PID ${ij(t)?.pid}`),null;let i={pid:process.pid,version:r,execPath:process.execPath,acquiredAt:Date.now()};try{return H4e(t,i),ij(t)?.pid===process.pid?(U(`Acquired PID lock for ${r} (PID ${process.pid})`),()=>{try{ij(t)?.pid===process.pid&&(n.unlinkSync(t),U(`Released PID lock for ${r}`))}catch(e){U(`Failed to release lock for ${r}: ${e}`)}}):null}catch(e){return U(`Failed to acquire lock for ${r}: ${e}`),null}}async function W4e(e,t){let n=await U4e(e,t);if(!n)return!1;let r=()=>{try{n()}catch{}};return process.on(`exit`,r),process.on(`SIGINT`,r),process.on(`SIGTERM`,r),!0}async function G4e(e,t,n){let r=await U4e(e,t);if(!r)return!1;try{return await n(),!0}finally{r()}}function K4e(e){let t=za(),n=[];try{let r=t.readdirStringSync(e).filter(e=>e.endsWith(`.lock`));for(let t of r){let r=Y(e,t),i=ij(r);i&&n.push({version:i.version,pid:i.pid,isProcessRunning:rj(i.pid),execPath:i.execPath,acquiredAt:new Date(i.acquiredAt),lockFilePath:r})}}catch(e){if(Oa(e))return n;q(xa(e))}return n}function q4e(e){let t=za(),n=0;try{let r=t.readdirStringSync(e).filter(e=>e.endsWith(`.lock`));for(let i of r){let r=Y(e,i);try{t.lstatSync(r).isDirectory()?(t.rmSync(r,{recursive:!0,force:!0}),n++,U(`Cleaned up legacy directory lock: ${i}`)):aj(r)||(t.unlinkSync(r),n++,U(`Cleaned up stale lock: ${i}`))}catch{}}}catch(e){if(Oa(e))return 0;q(xa(e))}return n}var J4e,Y4e=n((()=>{wr(),W(),y(),ka(),Fa(),Gs(),Ao(),Va(),J4e=7200*1e3}));function oj(){let e=po.platform,t=process.arch===`x64`?`x64`:process.arch===`arm64`?`arm64`:null;if(!t){let e=Error(`Unsupported architecture: ${process.arch}`);throw U(`Native installer does not support architecture: ${process.arch}`,{level:`error`}),e}return e===`linux`&&$r.isMuslEnvironment()?`linux-${t}-musl`:`${e}-${t}`}function sj(e){return e.startsWith(`win32`)?`claude.exe`:`claude`}function cj(){let e=sj(oj());return{versions:Y(Lfe(),`claude`,`versions`),staging:Y(Ife(),`claude`,`staging`),locks:Y(Ffe(),`claude`,`locks`),executable:Y(Rfe(),e)}}async function lj(e){try{let t=await xd(e);return!t.isFile()||t.size===0?!1:(await cd(e,Vu.X_OK),!0)}catch{return!1}}async function uj(e){let t=cj(),n=[t.versions,t.staging,t.locks];await Promise.all(n.map(e=>pd(e,{recursive:!0}))),await pd(Eu(t.executable),{recursive:!0});let r=Y(t.versions,e);try{await xd(r)}catch{await wd(r,``,{encoding:`utf8`})}return{stagingPath:Y(t.staging,e),installPath:r}}async function X4e(e,t,n=0){let r=cj(),i=dj(r,e);if(await pd(r.locks,{recursive:!0}),nj()){let r=0,a=n+1,o=n>0?1e3:100,s=n>0?5e3:500;for(;r<a;){if(await G4e(e,i,async()=>{try{await t()}catch(e){throw q(e),e}}))return G(`tengu_version_lock_acquired`,{is_pid_based:!0,is_lifetime_lock:!1,attempts:r+1}),!0;r++,r<a&&await Hs(Math.min(o*2**(r-1),s))}return G(`tengu_version_lock_failed`,{is_pid_based:!0,is_lifetime_lock:!1,attempts:a}),fj(e,Error(`Lock held by another process`)),!1}let a=null;try{try{a=await cs(e,{stale:pj,retries:{retries:n,minTimeout:n>0?1e3:100,maxTimeout:n>0?5e3:500},lockfilePath:i,onCompromised:e=>{U(`NON-FATAL: Version lock was compromised during operation: ${e.message}`,{level:`info`})}})}catch(t){return G(`tengu_version_lock_failed`,{is_pid_based:!1,is_lifetime_lock:!1}),fj(e,t),!1}try{return await t(),G(`tengu_version_lock_acquired`,{is_pid_based:!1,is_lifetime_lock:!1}),!0}catch(e){throw q(e),e}}finally{a&&await a()}}async function Z4e(e,t){await pd(Eu(t),{recursive:!0});let n=`${t}.tmp.${process.pid}.${Date.now()}`;try{await dd(e,n),await ud(n,493),await yd(n,t),U(`Atomically installed binary to ${t}`)}catch(e){try{await Cd(n)}catch{}throw e}}async function Q4e(e,t){try{let n=Y(e,`node_modules`,`@anthropic-ai`),r=(await gd(n)).find(e=>e.startsWith(`claude-cli-native-`));if(!r)throw G(`tengu_native_install_package_failure`,{stage_find_package:!0,error_package_not_found:!0}),Error(`Could not find platform-specific native package`);let i=Y(n,r,`cli`);try{await xd(i)}catch{throw G(`tengu_native_install_package_failure`,{stage_binary_exists:!0,error_binary_not_found:!0}),Error(`Native binary not found in staged package`)}await Z4e(i,t),await bd(e,{recursive:!0,force:!0}),G(`tengu_native_install_package_success`,{})}catch(e){let t=H(e);throw!t.includes(`Could not find platform-specific`)&&!t.includes(`Native binary not found`)&&G(`tengu_native_install_package_failure`,{stage_atomic_move:!0,error_move_failed:!0}),q(xa(e)),e}}async function $4e(e,t){try{let n=Y(e,sj(oj()));try{await xd(n)}catch{throw G(`tengu_native_install_binary_failure`,{stage_binary_exists:!0,error_binary_not_found:!0}),Error(`Staged binary not found`)}await Z4e(n,t),await bd(e,{recursive:!0,force:!0}),G(`tengu_native_install_binary_success`,{})}catch(e){throw H(e).includes(`Staged binary not found`)||G(`tengu_native_install_binary_failure`,{stage_atomic_move:!0,error_move_failed:!0}),q(xa(e)),e}}async function e3e(e,t,n){n===`npm`?await Q4e(e,t):await $4e(e,t)}async function t3e(e,t){let{stagingPath:n,installPath:r}=await uj(e),{executable:i}=cj(),a=x(process.env.ENABLE_LOCKLESS_UPDATES)?`${n}.${process.pid}.${Date.now()}`:n,o=!await n3e(e)||t;if(o?(U(t?`Force reinstalling native installer version ${e}`:`Downloading native installer version ${e}`),await e3e(a,r,await L4e(e,a))):U(`Version ${e} already installed, updating symlink`),await i3e(i),await a3e(i,r),!await lj(i)){let e=!1;try{await xd(r),e=!0}catch{}throw Error(`Failed to create executable at ${i}. Source file exists: ${e}. Check write permissions to ${i}.`)}return o}async function n3e(e){let{installPath:t}=await uj(e);return lj(t)}async function r3e(e,t=!1){let n=Date.now(),r=await M4e(e),{executable:i}=cj();if(U(`Checking for native installer update to version ${r}`),!t){let e=await HBe();if(e&&ufe(r,e)){if(U(`Native installer: maxVersion ${e} is set, capping update from ${r} to ${e}`),lfe(`2.6.11`,e))return U(`Native installer: current version 2.6.11 is already at or above maxVersion ${e}, skipping update`),G(`tengu_native_update_skipped_max_version`,{latency_ms:Date.now()-n,max_version:e,available_version:r}),{success:!0,latestVersion:r};r=e}}if(!t&&r===`2.6.11`&&await n3e(r)&&await lj(i))return U(`Found ${r} at ${i}, skipping install`),G(`tengu_native_update_complete`,{latency_ms:Date.now()-n,was_new_install:!1,was_force_reinstall:!1,was_already_running:!0}),{success:!0,latestVersion:r};if(!t&&WBe(r))return G(`tengu_native_update_skipped_minimum_version`,{latency_ms:Date.now()-n,target_version:r}),{success:!0,latestVersion:r};let a=!1,o;if(x(process.env.ENABLE_LOCKLESS_UPDATES))a=await t3e(r,t),o=Date.now()-n;else{let{installPath:e}=await uj(r);t&&await d3e(e);let i=await X4e(e,async()=>{a=await t3e(r,t)},3);if(o=Date.now()-n,!i){let t=cj(),n;if(nj()){let r=dj(t,e);aj(r)&&(n=ij(r)?.pid)}return G(`tengu_native_update_lock_failed`,{latency_ms:o,lock_holder_pid:n}),{success:!1,latestVersion:r,lockFailed:!0,lockHolderPid:n}}}return G(`tengu_native_update_complete`,{latency_ms:o,was_new_install:a,was_force_reinstall:t}),U(`Successfully updated to version ${r}`),{success:!0,latestVersion:r}}async function i3e(e){try{await ume(e),U(`Removed empty directory at ${e}`)}catch(t){let n=Ea(t);n!==`ENOTDIR`&&n!==`ENOENT`&&n!==`ENOTEMPTY`&&U(`Could not remove directory at ${e}: ${t}`)}}async function a3e(e,t){if(oj().startsWith(`win32`))try{await pd(Eu(e),{recursive:!0});let n;try{n=await xd(e)}catch{}if(n){try{let e=await xd(t);if(n.size===e.size)return!1}catch{}let r=`${e}.old.${Date.now()}`;await yd(e,r);try{await dd(t,e);try{await Cd(r)}catch{}}catch(t){try{await yd(r,e)}catch(e){let n=Error(`Failed to restore old executable: ${e}`,{cause:t});throw q(n),n}throw t}}else try{await dd(t,e)}catch(e){throw Oa(e)?Error(`Source file does not exist: ${t}`):e}return!0}catch(n){return q(Error(`Failed to copy executable from ${t} to ${e}: ${n}`)),!1}let n=Eu(e);try{await pd(n,{recursive:!0}),U(`Created directory ${n} for symlink`)}catch(e){return q(Error(`Failed to create directory ${n}: ${e}`)),!1}try{let n=!1;try{await xd(e),n=!0}catch{}if(n){try{let n=await _d(e);if(Nu(Eu(e),n)===Nu(t))return!1}catch{}await Cd(e)}}catch(e){q(Error(`Failed to check/remove existing symlink: ${e}`))}let r=`${e}.tmp.${process.pid}.${Date.now()}`;try{return await Sd(t,r),await yd(r,e),U(`Atomically updated symlink ${e} -> ${t}`),!0}catch(n){try{await Cd(r)}catch{}return q(Error(`Failed to create symlink from ${e} to ${t}: ${n}`)),!1}}async function o3e(e=!1){if(x(process.env.DISABLE_INSTALLATION_CHECKS))return[];let t=await aC();if(t===`development`)return[];let n=Tr();if(!(e||t===`native`||n.installMethod===`native`))return[];let r=cj(),i=[],a=Eu(r.executable),o=Nu(a),s=oj().startsWith(`win32`);try{await cd(a)}catch{i.push({message:`installMethod is native, but directory ${a} does not exist`,userActionRequired:!0,type:`error`})}if(s)await lj(r.executable)||i.push({message:`installMethod is native, but claude command is missing or invalid at ${r.executable}`,userActionRequired:!0,type:`error`});else try{let e=await _d(r.executable);await lj(Nu(Eu(r.executable),e))||i.push({message:`Claude symlink points to missing or invalid binary: ${e}`,userActionRequired:!0,type:`error`})}catch(e){Oa(e)?i.push({message:`installMethod is native, but claude command not found at ${r.executable}`,userActionRequired:!0,type:`error`}):await lj(r.executable)||i.push({message:`${r.executable} exists but is not a valid Claude binary`,userActionRequired:!0,type:`error`})}if(!(process.env.PATH||``).split(Ope).some(e=>{try{let t=Nu(e);return s?t.toLowerCase()===o.toLowerCase():t===o}catch{return!1}}))if(s){let e=a.replace(/\//g,`\\`);i.push({message:`Native installation exists but ${e} is not in your PATH. Add it by opening: System Properties → Environment Variables → Edit User PATH → New → Add the path above. Then restart your terminal.`,userActionRequired:!0,type:`path`})}else{let e=KS(),t=JS()[e],n=t?t.replace(Su(),`~`):`your shell config file`;i.push({message:`Native installation exists but ~/.local/bin is not in your PATH. Run:\n\necho 'export PATH="$HOME/.local/bin:$PATH"' >> ${n} && source ${n}`,userActionRequired:!0,type:`path`})}return i}function s3e(e,t=!1){if(t)return c3e(e,t);if(mj)return U(`installLatest: joining in-flight call`),mj;let n=c3e(e,t);mj=n;let r=()=>{mj=null};return n.then(r,r),n}async function c3e(e,t=!1){let n=await r3e(e,t);return n.success?(Tr().installMethod!==`native`&&(fr(e=>({...e,installMethod:`native`,autoUpdates:!1,autoUpdatesProtectedForNative:!0})),U(`Native installer: Set installMethod to "native" and disabled legacy auto-updater for protection`)),f3e(),{latestVersion:n.latestVersion,wasUpdated:n.success,lockFailed:!1}):{latestVersion:null,wasUpdated:!1,lockFailed:n.lockFailed,lockHolderPid:n.lockHolderPid}}async function l3e(e){try{let t=await _d(e),n=Nu(Eu(e),t);if(await lj(n))return n}catch{}return null}function dj(e,t){let n=Tu(t);return Y(e.locks,`${n}.lock`)}async function u3e(){let e=cj();if(!process.execPath.includes(e.versions))return;let t=Nu(process.execPath);try{let n=dj(e,t);if(await pd(e.locks,{recursive:!0}),nj()){if(!await W4e(t,n)){G(`tengu_version_lock_failed`,{is_pid_based:!0,is_lifetime_lock:!0}),fj(t,Error(`Lock already held by another process`));return}G(`tengu_version_lock_acquired`,{is_pid_based:!0,is_lifetime_lock:!0}),U(`Acquired PID lock on running version: ${t}`)}else{let e;try{e=await cs(t,{stale:pj,retries:0,lockfilePath:n,onCompromised:e=>{U(`NON-FATAL: Lock on running version was compromised: ${e.message}`,{level:`info`})}}),G(`tengu_version_lock_acquired`,{is_pid_based:!1,is_lifetime_lock:!0}),U(`Acquired mtime-based lock on running version: ${t}`),ja(async()=>{try{await e?.()}catch{}})}catch(e){if(Oa(e)){U(`Cannot lock current version - file does not exist: ${t}`,{level:`info`});return}G(`tengu_version_lock_failed`,{is_pid_based:!1,is_lifetime_lock:!0}),fj(t,e);return}}}catch(e){if(Oa(e)){U(`Cannot lock current version - file does not exist: ${t}`,{level:`info`});return}U(`NON-FATAL: Failed to lock current version during execution ${H(e)}`,{level:`info`})}}function fj(e,t){q(Error(`NON-FATAL: Lock acquisition failed for ${e} (expected in multi-process scenarios)`,{cause:t}))}async function d3e(e){let t=dj(cj(),e);try{await Cd(t),U(`Force-removed lock file at ${t}`)}catch(e){U(`Failed to force-remove lock file: ${H(e)}`)}}async function f3e(){await Promise.resolve();let e=cj(),t=Date.now()-36e5;if(oj().startsWith(`win32`)){let t=Eu(e.executable);try{let e=await gd(t),n=0;for(let r of e)if(/^claude\.exe\.old\.\d+$/.test(r))try{await Cd(Y(t,r)),n++}catch{}n>0&&U(`Cleaned up ${n} old Windows executables on startup`)}catch(e){Oa(e)||U(`Failed to clean up old Windows executables: ${e}`)}}try{let n=await gd(e.staging),r=0;for(let i of n){let n=Y(e.staging,i);try{(await xd(n)).mtime.getTime()<t&&(await bd(n,{recursive:!0,force:!0}),r++,U(`Cleaned up old staging directory: ${i}`))}catch{}}r>0&&(U(`Cleaned up ${r} orphaned staging directories`),G(`tengu_native_staging_cleanup`,{cleaned_count:r}))}catch(e){Oa(e)||U(`Failed to clean up staging directories: ${e}`)}if(nj()){let t=q4e(e.locks);t>0&&(U(`Cleaned up ${t} stale version locks`),G(`tengu_native_stale_locks_cleanup`,{cleaned_count:t}))}let n;try{n=await gd(e.versions)}catch(e){Oa(e)||U(`Failed to readdir versions directory: ${e}`);return}let r=[],i=0;for(let a of n){let n=Y(e.versions,a);if(/\.tmp\.\d+\.\d+$/.test(a)){try{(await xd(n)).mtime.getTime()<t&&(await Cd(n),i++,U(`Cleaned up orphaned temp install file: ${a}`))}catch{}continue}try{let e=await xd(n);if(!e.isFile()||process.platform!==`win32`&&e.size>0&&!(e.mode&73))continue;r.push({name:a,path:n,resolvedPath:Nu(n),mtime:e.mtime})}catch{}}if(i>0&&(U(`Cleaned up ${i} orphaned temp install files`),G(`tengu_native_temp_files_cleanup`,{cleaned_count:i})),r.length!==0)try{let t=process.execPath,n=new Set;t&&t.includes(e.versions)&&n.add(Nu(t));let i=await l3e(e.executable);i&&n.add(i);for(let t of r){if(n.has(t.resolvedPath))continue;let r=dj(e,t.resolvedPath),i=!1;if(nj())i=aj(r);else try{i=await mce(t.resolvedPath,{stale:pj,lockfilePath:r})}catch{i=!1}i&&(n.add(t.resolvedPath),U(`Protecting locked version from cleanup: ${t.name}`))}let a=r.filter(e=>!n.has(e.resolvedPath)).sort((e,t)=>t.mtime.getTime()-e.mtime.getTime()).slice(2);if(a.length===0){G(`tengu_native_version_cleanup`,{total_count:r.length,deleted_count:0,protected_count:n.size,retained_count:2,lock_failed_count:0,error_count:0});return}let o=0,s=0,c=0;await Promise.all(a.map(async e=>{try{await X4e(e.path,async()=>{await Cd(e.path)})?o++:(s++,U(`Skipping deletion of ${e.name} - locked by another process`))}catch(t){c++,q(Error(`Failed to delete version ${e.name}: ${t}`))}})),G(`tengu_native_version_cleanup`,{total_count:r.length,deleted_count:o,protected_count:n.size,retained_count:2,lock_failed_count:s,error_count:c})}catch(e){Oa(e)||q(Error(`Version cleanup failed: ${e}`))}}async function p3e(){let e=[],t=JS();for(let[n,r]of Object.entries(t))try{let t=await RBe(r);if(!t)continue;let{filtered:i,hadAlias:a}=LBe(t);a&&(await zBe(r,i),e.push({message:`Removed claude alias from ${r}. Run: unalias claude`,userActionRequired:!0,type:`alias`}),U(`Cleaned up claude alias from ${n} config`))}catch(t){q(t),e.push({message:`Failed to clean up ${r}: ${t}`,userActionRequired:!1,type:`error`})}return e}async function m3e(e){try{let t=await $o(`npm`,[`config`,`get`,`prefix`]);if(t.code!==0||!t.stdout)return{success:!1,error:`Failed to get npm global prefix`};let n=t.stdout.trim(),r=!1;async function i(e,t){try{return await Cd(e),U(`Manually removed ${t}: ${e}`),!0}catch{return!1}}if(oj().startsWith(`win32`)){let e=Y(n,`claude.cmd`),t=Y(n,`claude.ps1`),a=Y(n,`claude`);await i(e,`bin script`)&&(r=!0),await i(t,`PowerShell script`)&&(r=!0),await i(a,`bin executable`)&&(r=!0)}else await i(Y(n,`bin`,`claude`),`bin symlink`)&&(r=!0);return r?(U(`Successfully removed ${e} manually`),{success:!0,warning:`${e} executables removed, but node_modules directory was left intact for safety. You may manually delete it later at: ${oj().startsWith(`win32`)?Y(n,`node_modules`,e):Y(n,`lib`,`node_modules`,e)}`}):{success:!1}}catch(e){return U(`Manual removal failed: ${e}`,{level:`error`}),{success:!1,error:`Manual removal failed: ${e}`}}}async function h3e(e){let{code:t,stderr:n}=await $o(`npm`,[`uninstall`,`-g`,e],{cwd:process.cwd()});if(t===0)return U(`Removed global npm installation of ${e}`),{success:!0};if(n&&!n.includes(`npm ERR! code E404`)){if(n.includes(`npm error code ENOTEMPTY`)){U(`Failed to uninstall global npm package ${e}: ${n}`,{level:`error`}),U(`Attempting manual removal due to ENOTEMPTY error`);let t=await m3e(e);if(t.success)return{success:!0,warning:t.warning};if(t.error)return{success:!1,error:`Failed to remove global npm installation of ${e}: ${n}. Manual removal also failed: ${t.error}`}}return U(`Failed to uninstall global npm package ${e}: ${n}`,{level:`error`}),{success:!1,error:`Failed to remove global npm installation of ${e}: ${n}`}}return{success:!1}}async function g3e(){let e=[],t=[],n=0,r=await h3e(`@anthropic-ai/claude-code`);r.success?(n++,r.warning&&t.push(r.warning)):r.error&&e.push(r.error);let i=Y(Su(),`.claude`,`local`);try{await bd(i,{recursive:!0}),n++,U(`Removed local installation at ${i}`)}catch(t){Oa(t)||(e.push(`Failed to remove ${i}: ${t}`),U(`Failed to remove local installation: ${t}`,{level:`error`}))}return{removed:n,errors:e,warnings:t}}var pj,mj,_3e=n((()=>{Ua(),ZS(),Ma(),xn(),W(),oC(),fo(),na(),y(),ka(),es(),qS(),ls(),Ao(),nu(),XS(),Us(),Pfe(),B4e(),Y4e(),pj=10080*60*1e3,mj=null})),v3e=n((()=>{_3e()}));function y3e(){let e=dae(),t=[`user`,`project`,`local`].flatMap(e=>QT(e).errors);return{settings:e.settings,errors:[...e.errors,...t]}}var b3e=n((()=>{rE(),Gi()}));function x3e(){return process.env.USER_TYPE===`ant`?[{label:`Bash Sandbox`,value:Nm.isSandboxingEnabled()?`Enabled`:`Disabled`}]:[]}function S3e(e,t=null,n){let r=e?.find(e=>e.name===`ide`);if(t){let e=UA(t.ideType),i=RA(t.ideType)?`plugin`:`extension`;if(t.error)return[{label:`IDE`,value:(0,j3e.jsxs)(z,{children:[Dt(`error`,n)(ue.cross),` Error installing `,e,` `,i,`:`,` `,t.error,`
|
|
927
927
|
`,`Please restart your IDE and try again.`]})}];if(t.installed)return r&&r.type===`connected`?t.installedVersion===r.serverInfo?.version?[{label:`IDE`,value:`Connected to ${e} ${i} version ${t.installedVersion}`}]:[{label:`IDE`,value:`Connected to ${e} ${i} version ${t.installedVersion} (server version: ${r.serverInfo?.version})`}]:[{label:`IDE`,value:`Installed ${e} ${i}`}]}else if(r){let e=C4e(r)??`IDE`;return r.type===`connected`?[{label:`IDE`,value:`Connected to ${e} extension`}]:[{label:`IDE`,value:`${Dt(`error`,n)(ue.cross)} Not connected to ${e}`}]}return[]}function C3e(e=[],t){let n=e.filter(e=>e.name!==`ide`);if(!n.length)return[];let r={connected:0,pending:0,needsAuth:0,failed:0};for(let e of n)e.type===`connected`?r.connected++:e.type===`pending`?r.pending++:e.type===`needs-auth`?r.needsAuth++:r.failed++;let i=[];return r.connected&&i.push(Dt(`success`,t)(`${r.connected} connected`)),r.needsAuth&&i.push(Dt(`warning`,t)(`${r.needsAuth} need auth`)),r.pending&&i.push(Dt(`inactive`,t)(`${r.pending} pending`)),r.failed&&i.push(Dt(`error`,t)(`${r.failed} failed`)),[{label:`MCP servers`,value:`${i.join(`, `)} ${Dt(`inactive`,t)(`· /mcp`)}`}]}async function w3e(){let e=hSe(await Jg()),t=[];return e.forEach(e=>{let n=Wr(e.path);t.push(`Large ${n} will impact performance (${As(e.content.length)} chars > ${As(qg)})`)}),t}function T3e(){return[{label:`Setting sources`,value:Gie().filter(e=>{let t=_r(e);return t!==null&&Object.keys(t).length>0}).map(e=>{if(e===`policySettings`){let e=Bie();if(e===null)return null;switch(e){case`remote`:return`Enterprise managed settings (remote)`;case`plist`:return`Enterprise managed settings (plist)`;case`hklm`:return`Enterprise managed settings (HKLM)`;case`file`:{let{hasBase:e,hasDropIns:t}=toe();return e&&t?`Enterprise managed settings (file + drop-ins)`:t?`Enterprise managed settings (drop-ins)`:`Enterprise managed settings (file)`}case`hkcu`:return`Enterprise managed settings (HKCU)`}}return aie(e)}).filter(e=>e!==null)}]}async function E3e(){return(await o3e()).map(e=>e.message)}async function D3e(){let e=await lVe(),t=[],{errors:n}=y3e();if(n.length>0){let e=Array.from(new Set(n.map(e=>e.file))).join(`, `);t.push(`Found invalid settings files: ${e}. They will be ignored.`)}return e.warnings.forEach(e=>{t.push(e.issue)}),e.hasUpdatePermissions===!1&&t.push(`No write permissions for auto-updates (requires sudo)`),t}function O3e(){let e=ire();if(!e)return[];let t=[];return e.subscription&&t.push({label:`Login method`,value:`${e.subscription} Account`}),e.tokenSource&&t.push({label:`Auth token`,value:e.tokenSource}),e.apiKeySource&&t.push({label:`API key`,value:e.apiKeySource}),e.organization&&!process.env.IS_DEMO&&t.push({label:`Organization`,value:e.organization}),e.email&&!process.env.IS_DEMO&&t.push({label:`Email`,value:e.email}),t}function k3e(){let e=ar(),t=[];if(e!==`firstParty`){let n={bedrock:`AWS Bedrock`,vertex:`Google Vertex AI`,foundry:`Microsoft Foundry`,gemini:`Gemini API`,grok:`Grok API`,openai:`OpenAI API`}[e];t.push({label:`API provider`,value:n})}if(e===`firstParty`){let e=process.env.ANTHROPIC_BASE_URL;e&&t.push({label:`Anthropic base URL`,value:e})}else if(e===`bedrock`){let e=process.env.BEDROCK_BASE_URL;e&&t.push({label:`Bedrock base URL`,value:e}),t.push({label:`AWS region`,value:b()}),x(process.env.CLAUDE_CODE_SKIP_BEDROCK_AUTH)&&t.push({value:`AWS auth skipped`})}else if(e===`vertex`){let e=process.env.VERTEX_BASE_URL;e&&t.push({label:`Vertex base URL`,value:e});let n=process.env.ANTHROPIC_VERTEX_PROJECT_ID;n&&t.push({label:`GCP project`,value:n}),t.push({label:`Default region`,value:v()}),x(process.env.CLAUDE_CODE_SKIP_VERTEX_AUTH)&&t.push({value:`GCP auth skipped`})}else if(e===`foundry`){let e=process.env.ANTHROPIC_FOUNDRY_BASE_URL;e&&t.push({label:`Microsoft Foundry base URL`,value:e});let n=process.env.ANTHROPIC_FOUNDRY_RESOURCE;n&&t.push({label:`Microsoft Foundry resource`,value:n}),x(process.env.CLAUDE_CODE_SKIP_FOUNDRY_AUTH)&&t.push({value:`Microsoft Foundry auth skipped`})}else if(e===`gemini`){let e=process.env.GEMINI_BASE_URL||`https://generativelanguage.googleapis.com/v1beta`;t.push({label:`Gemini base URL`,value:e})}else if(e===`grok`){let e=process.env.GROK_BASE_URL;t.push({label:`Grok base URL`,value:e})}else if(e===`openai`){let e=process.env.OPENAI_BASE_URL;t.push({label:`OpenAI base URL`,value:e})}let n=Nce();n&&t.push({label:`Proxy`,value:n});let r=jce();return process.env.NODE_EXTRA_CA_CERTS&&t.push({label:`Additional CA cert(s)`,value:process.env.NODE_EXTRA_CA_CERTS}),r&&(r.cert&&process.env.CLAUDE_CODE_CLIENT_CERT&&t.push({label:`mTLS client cert`,value:process.env.CLAUDE_CODE_CLIENT_CERT}),r.key&&process.env.CLAUDE_CODE_CLIENT_KEY&&t.push({label:`mTLS client key`,value:process.env.CLAUDE_CODE_CLIENT_KEY})),t}function A3e(e){let t=lie(e);if(e===null&&di()){let e=Ioe();t=`${ut.bold(`Default`)} ${e}`}return t}var j3e,M3e=n((()=>{ft(),N(),R(),Tt(),Wi(),Zg(),oC(),y(),pi(),Ns(),$A(),hr(),Pn(),zs(),v3e(),Vs(),Pm(),b3e(),Li(),Gi(),j3e=jt()}));async function hj(e){await VS({clearOnboarding:!1});let t=e.profile??await woe(e.accessToken);t?vae({accountUuid:t.account.uuid,emailAddress:t.account.email,organizationUuid:t.organization.uuid,displayName:t.account.display_name||void 0,hasExtraUsageEnabled:t.organization.has_extra_usage_enabled??void 0,billingType:t.organization.billing_type??void 0,subscriptionCreatedAt:t.organization.subscription_created_at??void 0,accountCreatedAt:t.account.created_at}):e.tokenAccount&&vae({accountUuid:e.tokenAccount.uuid,emailAddress:e.tokenAccount.emailAddress,organizationUuid:e.tokenAccount.organizationUuid});let n=Kre(e);if(Joe(),n.warning&&G(`tengu_oauth_storage_warning`,{warning:n.warning}),await doe(e.accessToken).catch(e=>U(String(e),{level:`error`})),bi(e.scopes))await TBe().catch(e=>U(String(e),{level:`error`}));else if(!await Yie(e.accessToken))throw Error(`Unable to create API key. The server accepted the request but did not return a key.`);await HS()}async function N3e({email:e,sso:t,console:n,claudeai:r}){n&&r&&(process.stderr.write(`Error: --console and --claudeai cannot be used together.
|
|
928
928
|
`),process.exit(1));let i=Qn(),a=i.forceLoginMethod?i.forceLoginMethod===`claudeai`:!n,o=i.forceLoginOrgUUID,s=process.env.CLAUDE_CODE_OAUTH_REFRESH_TOKEN;if(s){let e=process.env.CLAUDE_CODE_OAUTH_SCOPES;e||(process.stderr.write(`CLAUDE_CODE_OAUTH_SCOPES is required when using CLAUDE_CODE_OAUTH_REFRESH_TOKEN.
|
|
929
929
|
Set it to the space-separated scopes the refresh token was issued with
|
|
@@ -950,7 +950,7 @@ Set it to the space-separated scopes the refresh token was issued with
|
|
|
950
950
|
`,(0,VM.jsx)(z,{color:`warning`,children:`[ANT-ONLY]`}),` `,(0,VM.jsx)(z,{dimColor:!0,children:`Please use this option unless you need to login to a special org for accessing sensitive data (e.g. customer data, HIPI data) with the Console option`})]}),`
|
|
951
951
|
`]}),value:`claudeai`},{label:(0,VM.jsxs)(z,{children:[`Anthropic Console account · `,(0,VM.jsx)(z,{dimColor:!0,children:`API usage billing`}),`
|
|
952
952
|
`]}),value:`console`},{label:(0,VM.jsxs)(z,{children:[`3rd-party platform · `,(0,VM.jsx)(z,{dimColor:!0,children:`Amazon Bedrock, Microsoft Foundry, or Vertex AI`}),`
|
|
953
|
-
`]}),value:`platform`}],onChange:e=>{e===`custom_platform`?(G(`tengu_custom_platform_selected`,{}),d({state:`custom_platform`,baseUrl:process.env.ANTHROPIC_BASE_URL??``,apiKey:process.env.ANTHROPIC_AUTH_TOKEN??``,haikuModel:process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL??``,sonnetModel:process.env.ANTHROPIC_DEFAULT_SONNET_MODEL??``,opusModel:process.env.ANTHROPIC_DEFAULT_OPUS_MODEL??``,activeField:`base_url`})):e===`openai_chat_api`?(G(`tengu_openai_chat_api_selected`,{}),d({state:`openai_chat_api`,baseUrl:process.env.OPENAI_BASE_URL??``,apiKey:process.env.OPENAI_API_KEY??``,haikuModel:process.env.OPENAI_DEFAULT_HAIKU_MODEL??``,sonnetModel:process.env.OPENAI_DEFAULT_SONNET_MODEL??``,opusModel:process.env.OPENAI_DEFAULT_OPUS_MODEL??``,activeField:`base_url`})):e===`chatgpt_subscription`?(G(`tengu_chatgpt_subscription_selected`,{}),d({state:`chatgpt_subscription`,phase:`requesting`})):e===`gemini_api`?(G(`tengu_gemini_api_selected`,{}),d({state:`gemini_api`,baseUrl:process.env.GEMINI_BASE_URL??``,apiKey:process.env.GEMINI_API_KEY??``,haikuModel:process.env.GEMINI_DEFAULT_HAIKU_MODEL??``,sonnetModel:process.env.GEMINI_DEFAULT_SONNET_MODEL??``,opusModel:process.env.GEMINI_DEFAULT_OPUS_MODEL??``,activeField:`base_url`})):e===`platform`?(G(`tengu_oauth_platform_selected`,{}),d({state:`platform_setup`})):(d({state:`ready_to_start`}),e===`claudeai`?(G(`tengu_oauth_claudeai_selected`,{}),f(!0)):(G(`tengu_oauth_console_selected`,{}),f(!1)))}})})]});case`custom_platform`:{let t=[`base_url`,`api_key`,`haiku_model`,`sonnet_model`,`opus_model`],{activeField:n,baseUrl:r,apiKey:i,haikuModel:a,sonnetModel:o,opusModel:s}=e,c={base_url:r,api_key:i,haiku_model:a,sonnet_model:o,opus_model:s},[l,u]=(0,BM.useState)(()=>c[n]),[f,m]=(0,BM.useState)(()=>c[n].length),h=(0,BM.useCallback)((e,t,c)=>{let l={state:`custom_platform`,activeField:c??n,baseUrl:r,apiKey:i,haikuModel:a,sonnetModel:o,opusModel:s};switch(e){case`base_url`:return{...l,baseUrl:t};case`api_key`:return{...l,apiKey:t};case`haiku_model`:return{...l,haikuModel:t};case`sonnet_model`:return{...l,sonnetModel:t};case`opus_model`:return{...l,opusModel:t}}},[n,r,i,a,o,s]);(0,BM.useCallback)(e=>{d(h(n,l,e)),u(c[e]??``),m((c[e]??``).length)},[n,l,c,h,d]);let g=(0,BM.useCallback)(()=>{let e={...c,[n]:l},t={};if(e.base_url){try{new URL(e.base_url)}catch{d({state:`error`,message:`Invalid base URL: please enter a full URL including protocol (e.g., https://api.example.com)`,toRetry:{state:`custom_platform`,baseUrl:``,apiKey:``,haikuModel:``,sonnetModel:``,opusModel:``,activeField:`base_url`}});return}t.ANTHROPIC_BASE_URL=e.base_url}e.api_key&&(t.ANTHROPIC_AUTH_TOKEN=e.api_key),e.haiku_model&&(t.ANTHROPIC_DEFAULT_HAIKU_MODEL=e.haiku_model),e.sonnet_model&&(t.ANTHROPIC_DEFAULT_SONNET_MODEL=e.sonnet_model),e.opus_model&&(t.ANTHROPIC_DEFAULT_OPUS_MODEL=e.opus_model);let{error:r}=Ni(`userSettings`,{modelType:`anthropic`,env:t});if(r)d({state:`error`,message:`Failed to save settings. Please try again.`,toRetry:{state:`custom_platform`,baseUrl:e.base_url??``,apiKey:e.api_key??``,haikuModel:e.haiku_model??``,sonnetModel:e.sonnet_model??``,opusModel:e.opus_model??``,activeField:`base_url`}});else{for(let[e,n]of Object.entries(t))process.env[e]=n;d({state:`success`}),p()}},[n,l,c,d,p]),_=(0,BM.useCallback)(()=>{let e=t.indexOf(n);if(e===t.length-1)d(h(n,l)),g();else{let r=t[e+1];d(h(n,l,r)),u(c[r]??``),m((c[r]??``).length)}},[n,l,h,g,c,d]);Et(`tabs:next`,()=>{let e=t.indexOf(n);e<t.length-1&&(d(h(n,l,t[e+1])),u(c[t[e+1]]??``),m((c[t[e+1]]??``).length))},{context:`FormField`}),Et(`tabs:previous`,()=>{let e=t.indexOf(n);e>0&&(d(h(n,l,t[e-1])),u(c[t[e-1]]??``),m((c[t[e-1]]??``).length))},{context:`FormField`}),Et(`confirm:no`,()=>{d({state:`idle`})},{context:`Confirmation`});let v=ct().columns-20,y=(e,t,r)=>{let i=n===e,a=c[e];return(0,VM.jsxs)(B,{children:[(0,VM.jsx)(z,{backgroundColor:i?`suggestion`:void 0,color:i?`inverseText`:void 0,children:` ${t} `}),(0,VM.jsx)(z,{children:` `}),i?(0,VM.jsx)(zk,{value:l,onChange:u,onSubmit:_,cursorOffset:f,onChangeCursorOffset:m,columns:v,mask:r?.mask?`*`:void 0,focus:!0}):a?(0,VM.jsx)(z,{color:`success`,children:r?.mask?a.slice(0,8)+`·`.repeat(Math.max(0,a.length-8)):a}):null]})};return(0,VM.jsxs)(B,{flexDirection:`column`,gap:1,children:[(0,VM.jsx)(z,{bold:!0,children:`Anthropic Compatible Setup`}),(0,VM.jsxs)(B,{flexDirection:`column`,gap:1,children:[y(`base_url`,`Base URL `),y(`api_key`,`API Key `,{mask:!0}),y(`haiku_model`,`Haiku `),y(`sonnet_model`,`Sonnet `),y(`opus_model`,`Opus `)]}),(0,VM.jsx)(z,{dimColor:!0,children:`↑↓/Tab to switch · Enter on last field to save · Esc to go back`})]})}case`openai_chat_api`:{let t=[`base_url`,`api_key`,`haiku_model`,`sonnet_model`,`opus_model`],{activeField:n,baseUrl:r,apiKey:i,haikuModel:a,sonnetModel:o,opusModel:s}=e,c={base_url:r,api_key:i,haiku_model:a,sonnet_model:o,opus_model:s},[l,u]=(0,BM.useState)(()=>c[n]),[f,m]=(0,BM.useState)(()=>c[n].length),h=(0,BM.useCallback)((e,t,c)=>{let l={state:`openai_chat_api`,activeField:c??n,baseUrl:r,apiKey:i,haikuModel:a,sonnetModel:o,opusModel:s};switch(e){case`base_url`:return{...l,baseUrl:t};case`api_key`:return{...l,apiKey:t};case`haiku_model`:return{...l,haikuModel:t};case`sonnet_model`:return{...l,sonnetModel:t};case`opus_model`:return{...l,opusModel:t}}},[n,r,i,a,o,s]),g=(0,BM.useCallback)(()=>{let e={...c,[n]:l},t={OPENAI_AUTH_MODE:void 0};if(e.base_url){try{new URL(e.base_url)}catch{d({state:`error`,message:`Invalid base URL: please enter a full URL including protocol (e.g., https://api.example.com)`,toRetry:{state:`openai_chat_api`,baseUrl:``,apiKey:``,haikuModel:``,sonnetModel:``,opusModel:``,activeField:`base_url`}});return}t.OPENAI_BASE_URL=e.base_url}e.api_key&&(t.OPENAI_API_KEY=e.api_key),e.haiku_model&&(t.OPENAI_DEFAULT_HAIKU_MODEL=e.haiku_model),e.sonnet_model&&(t.OPENAI_DEFAULT_SONNET_MODEL=e.sonnet_model),e.opus_model&&(t.OPENAI_DEFAULT_OPUS_MODEL=e.opus_model);let{error:r}=Ni(`userSettings`,{modelType:`openai`,env:t});if(r)d({state:`error`,message:`Failed to save settings. Please try again.`,toRetry:{state:`openai_chat_api`,baseUrl:e.base_url??``,apiKey:e.api_key??``,haikuModel:e.haiku_model??``,sonnetModel:e.sonnet_model??``,opusModel:e.opus_model??``,activeField:`base_url`}});else{for(let[e,n]of Object.entries(t))n===void 0?delete process.env[e]:process.env[e]=n;d({state:`success`}),p()}},[n,l,c,d,p]),_=(0,BM.useCallback)(()=>{let e=t.indexOf(n);if(e===t.length-1)d(h(n,l)),g();else{let r=t[e+1];d(h(n,l,r)),u(c[r]??``),m((c[r]??``).length)}},[n,l,h,g,c,d]);Et(`tabs:next`,()=>{let e=t.indexOf(n);e<t.length-1&&(d(h(n,l,t[e+1])),u(c[t[e+1]]??``),m((c[t[e+1]]??``).length))},{context:`FormField`}),Et(`tabs:previous`,()=>{let e=t.indexOf(n);e>0&&(d(h(n,l,t[e-1])),u(c[t[e-1]]??``),m((c[t[e-1]]??``).length))},{context:`FormField`}),Et(`confirm:no`,()=>{d({state:`idle`})},{context:`Confirmation`});let v=ct().columns-20,y=(e,t,r)=>{let i=n===e,a=c[e];return(0,VM.jsxs)(B,{children:[(0,VM.jsx)(z,{backgroundColor:i?`suggestion`:void 0,color:i?`inverseText`:void 0,children:` ${t} `}),(0,VM.jsx)(z,{children:` `}),i?(0,VM.jsx)(zk,{value:l,onChange:u,onSubmit:_,cursorOffset:f,onChangeCursorOffset:m,columns:v,mask:r?.mask?`*`:void 0,focus:!0}):a?(0,VM.jsx)(z,{color:`success`,children:r?.mask?a.slice(0,8)+`·`.repeat(Math.max(0,a.length-8)):a}):null]})};return(0,VM.jsxs)(B,{flexDirection:`column`,gap:1,children:[(0,VM.jsx)(z,{bold:!0,children:`OpenAI Compatible API Setup`}),(0,VM.jsx)(z,{dimColor:!0,children:`Configure an OpenAI Chat Completions compatible endpoint (e.g. Ollama, DeepSeek, vLLM).`}),(0,VM.jsxs)(B,{flexDirection:`column`,gap:1,children:[y(`base_url`,`Base URL `),y(`api_key`,`API Key `,{mask:!0}),y(`haiku_model`,`Haiku `),y(`sonnet_model`,`Sonnet `),y(`opus_model`,`Opus `)]}),(0,VM.jsx)(z,{dimColor:!0,children:`↑↓/Tab to switch · Enter on last field to save · Esc to go back`})]})}case`chatgpt_subscription`:{let t=e,n=(0,BM.useRef)(!1);return(0,BM.useEffect)(()=>{if(n.current)return;n.current=!0;let e=!1,t=new AbortController;async function r(){try{let n=await dBe();if(e||(d({state:`chatgpt_subscription`,phase:`waiting`,deviceCode:n}),eu(n.verificationUrl),await hBe(n,t.signal),e))return;let r={OPENAI_AUTH_MODE:`chatgpt`},{error:i}=Ni(`userSettings`,{modelType:`openai`,env:r});if(i)throw Error(`Failed to save settings. Please try again.`);for(let[e,t]of Object.entries(r))process.env[e]=t;d({state:`success`}),p()}catch(t){if(e)return;d({state:`error`,message:t.message,toRetry:{state:`chatgpt_subscription`,phase:`requesting`}})}}return r(),()=>{e=!0,t.abort()}},[d,p]),(0,VM.jsxs)(B,{flexDirection:`column`,gap:1,children:[(0,VM.jsx)(z,{bold:!0,children:`ChatGPT Account Setup`}),t.phase===`requesting`&&(0,VM.jsxs)(B,{children:[(0,VM.jsx)(PM,{}),(0,VM.jsx)(z,{children:`Requesting sign-in code…`})]}),t.phase===`waiting`&&t.deviceCode&&(0,VM.jsxs)(B,{flexDirection:`column`,gap:1,children:[(0,VM.jsx)(z,{children:`Open this link and sign in with your ChatGPT account:`}),(0,VM.jsx)(ht,{url:t.deviceCode.verificationUrl,children:(0,VM.jsx)(z,{dimColor:!0,children:t.deviceCode.verificationUrl})}),(0,VM.jsxs)(z,{children:[`Enter code: `,(0,VM.jsx)(z,{bold:!0,children:t.deviceCode.userCode})]}),(0,VM.jsxs)(B,{children:[(0,VM.jsx)(PM,{}),(0,VM.jsx)(z,{children:`Waiting for ChatGPT authorization…`})]})]}),(0,VM.jsx)(z,{dimColor:!0,children:`Esc to go back. Device codes expire after 15 minutes.`})]})}case`gemini_api`:{let t=[`base_url`,`api_key`,`haiku_model`,`sonnet_model`,`opus_model`],{activeField:n,baseUrl:r,apiKey:i,haikuModel:a,sonnetModel:o,opusModel:s}=e,c={base_url:r,api_key:i,haiku_model:a,sonnet_model:o,opus_model:s},[l,u]=(0,BM.useState)(()=>c[n]),[f,m]=(0,BM.useState)(()=>c[n].length),h=(0,BM.useCallback)((e,t,c)=>{let l={state:`gemini_api`,activeField:c??n,baseUrl:r,apiKey:i,haikuModel:a,sonnetModel:o,opusModel:s};switch(e){case`base_url`:return{...l,baseUrl:t};case`api_key`:return{...l,apiKey:t};case`haiku_model`:return{...l,haikuModel:t};case`sonnet_model`:return{...l,sonnetModel:t};case`opus_model`:return{...l,opusModel:t}}},[n,r,i,a,o,s]),g=(0,BM.useCallback)(()=>{let e={...c,[n]:l};if(!e.haiku_model||!e.sonnet_model||!e.opus_model){d({state:`error`,message:`Gemini setup requires Haiku, Sonnet, and Opus model names.`,toRetry:{state:`gemini_api`,baseUrl:e.base_url,apiKey:e.api_key,haikuModel:e.haiku_model,sonnetModel:e.sonnet_model,opusModel:e.opus_model,activeField:n}});return}let t={};e.base_url&&(t.GEMINI_BASE_URL=e.base_url),e.api_key&&(t.GEMINI_API_KEY=e.api_key),e.haiku_model&&(t.GEMINI_DEFAULT_HAIKU_MODEL=e.haiku_model),e.sonnet_model&&(t.GEMINI_DEFAULT_SONNET_MODEL=e.sonnet_model),e.opus_model&&(t.GEMINI_DEFAULT_OPUS_MODEL=e.opus_model);let{error:r}=Ni(`userSettings`,{modelType:`gemini`,env:t});if(r)d({state:`error`,message:`Failed to save: ${r.message}`,toRetry:{state:`gemini_api`,baseUrl:``,apiKey:``,haikuModel:``,sonnetModel:``,opusModel:``,activeField:`base_url`}});else{for(let[e,n]of Object.entries(t))process.env[e]=n;d({state:`success`}),p()}},[n,l,c,p,d]),_=(0,BM.useCallback)(()=>{let e=t.indexOf(n);if(e===t.length-1)d(h(n,l)),g();else{let r=t[e+1];d(h(n,l,r)),u(c[r]??``),m((c[r]??``).length)}},[n,h,g,c,l,d]);Et(`tabs:next`,()=>{let e=t.indexOf(n);e<t.length-1&&(d(h(n,l,t[e+1])),u(c[t[e+1]]??``),m((c[t[e+1]]??``).length))},{context:`FormField`}),Et(`tabs:previous`,()=>{let e=t.indexOf(n);e>0&&(d(h(n,l,t[e-1])),u(c[t[e-1]]??``),m((c[t[e-1]]??``).length))},{context:`FormField`}),Et(`confirm:no`,()=>{d({state:`idle`})},{context:`Confirmation`});let v=ct().columns-20,y=(e,t,r)=>{let i=n===e,a=c[e];return(0,VM.jsxs)(B,{children:[(0,VM.jsx)(z,{backgroundColor:i?`suggestion`:void 0,color:i?`inverseText`:void 0,children:` ${t} `}),(0,VM.jsx)(z,{children:` `}),i?(0,VM.jsx)(zk,{value:l,onChange:u,onSubmit:_,cursorOffset:f,onChangeCursorOffset:m,columns:v,mask:r?.mask?`*`:void 0,focus:!0}):a?(0,VM.jsx)(z,{color:`success`,children:r?.mask?a.slice(0,8)+`·`.repeat(Math.max(0,a.length-8)):a}):null]})};return(0,VM.jsxs)(B,{flexDirection:`column`,gap:1,children:[(0,VM.jsx)(z,{bold:!0,children:`Gemini API Setup`}),(0,VM.jsx)(z,{dimColor:!0,children:`Configure a Gemini Generate Content compatible endpoint. Base URL is optional and defaults to Google's v1beta API.`}),(0,VM.jsxs)(B,{flexDirection:`column`,gap:1,children:[y(`base_url`,`Base URL `),y(`api_key`,`API Key `,{mask:!0}),y(`haiku_model`,`Haiku `),y(`sonnet_model`,`Sonnet `),y(`opus_model`,`Opus `)]}),(0,VM.jsx)(z,{dimColor:!0,children:`↑↓/Tab to switch · Enter on last field to save · Esc to go back`})]})}case`platform_setup`:return(0,VM.jsxs)(B,{flexDirection:`column`,gap:1,marginTop:1,children:[(0,VM.jsx)(z,{bold:!0,children:`Using 3rd-party platforms`}),(0,VM.jsxs)(B,{flexDirection:`column`,gap:1,children:[(0,VM.jsx)(z,{children:`Claude Code supports Amazon Bedrock, Microsoft Foundry, and Vertex AI. Set the required environment variables, then restart Claude Code.`}),(0,VM.jsx)(z,{children:`If you are part of an enterprise organization, contact your administrator for setup instructions.`}),(0,VM.jsxs)(B,{flexDirection:`column`,marginTop:1,children:[(0,VM.jsx)(z,{bold:!0,children:`Documentation:`}),(0,VM.jsxs)(z,{children:[`· Amazon Bedrock:`,` `,(0,VM.jsx)(ht,{url:`https://code.claude.com/docs/en/amazon-bedrock`,children:`https://code.claude.com/docs/en/amazon-bedrock`})]}),(0,VM.jsxs)(z,{children:[`· Microsoft Foundry:`,` `,(0,VM.jsx)(ht,{url:`https://code.claude.com/docs/en/microsoft-foundry`,children:`https://code.claude.com/docs/en/microsoft-foundry`})]}),(0,VM.jsxs)(z,{children:[`· Vertex AI:`,` `,(0,VM.jsx)(ht,{url:`https://code.claude.com/docs/en/google-vertex-ai`,children:`https://code.claude.com/docs/en/google-vertex-ai`})]})]}),(0,VM.jsx)(B,{marginTop:1,children:(0,VM.jsxs)(z,{dimColor:!0,children:[`Press `,(0,VM.jsx)(z,{bold:!0,children:`Enter`}),` to go back to login options.`]})})]})]});case`waiting_for_login`:return(0,VM.jsxs)(B,{flexDirection:`column`,gap:1,children:[r&&(0,VM.jsx)(B,{children:(0,VM.jsx)(z,{dimColor:!0,children:r})}),!i&&(0,VM.jsxs)(B,{children:[(0,VM.jsx)(PM,{}),(0,VM.jsx)(z,{children:`Opening browser to sign in…`})]}),i&&(0,VM.jsxs)(B,{children:[(0,VM.jsx)(z,{children:b8e}),(0,VM.jsx)(zk,{value:a,onChange:o,onSubmit:t=>u(t,e.url),cursorOffset:s,onChangeCursorOffset:c,columns:l,mask:`*`})]})]});case`creating_api_key`:return(0,VM.jsx)(B,{flexDirection:`column`,gap:1,children:(0,VM.jsxs)(B,{children:[(0,VM.jsx)(PM,{}),(0,VM.jsx)(z,{children:`Creating API key for Claude Code…`})]})});case`about_to_retry`:return(0,VM.jsx)(B,{flexDirection:`column`,gap:1,children:(0,VM.jsx)(z,{color:`permission`,children:`Retrying…`})});case`success`:return(0,VM.jsx)(B,{flexDirection:`column`,children:t===`setup-token`&&e.token?null:(0,VM.jsxs)(VM.Fragment,{children:[qr()?.emailAddress?(0,VM.jsxs)(z,{dimColor:!0,children:[`Logged in as `,(0,VM.jsx)(z,{children:qr()?.emailAddress})]}):null,(0,VM.jsxs)(z,{color:`success`,children:[`Login successful. Press `,(0,VM.jsx)(z,{bold:!0,children:`Enter`}),` to continue…`]})]})});case`error`:return(0,VM.jsxs)(B,{flexDirection:`column`,gap:1,children:[(0,VM.jsxs)(z,{color:`error`,children:[`OAuth error: `,e.message]}),e.toRetry&&(0,VM.jsx)(B,{marginTop:1,children:(0,VM.jsxs)(z,{color:`permission`,children:[`Press `,(0,VM.jsx)(z,{bold:!0,children:`Enter`}),` to retry.`]})})]});default:return null}}var BM,VM,b8e,x8e=n((()=>{BM=r(R(),1),Ua(),I3e(),kT(),Tt(),ru(),bl(),H3e(),BS(),GS(),Wi(),tu(),Ao(),Gi(),oA(),zM(),Uk(),VM=jt(),b8e=`Paste code here if prompted > `}));function S8e({isDisabled:e=!1,visibleOptionCount:t=5,options:n,defaultValue:r=[],onChange:i,onCancel:a,onFocus:o,focusValue:s,submitButtonText:c,onSubmit:l,onDownFromLastItem:u,onUpFromFirstItem:d,initialFocusLast:f,hideIndexes:p=!1}){let[m,h]=(0,HM.useState)(r),[g,_]=(0,HM.useState)(!1),[v,y]=(0,HM.useState)(n);n!==v&&!pme(n,v)&&(h(r),y(n));let[b,x]=(0,HM.useState)(()=>{let e=new Map;return n.forEach(t=>{t.type===`input`&&t.initialValue&&e.set(t.value,t.initialValue)}),e}),S=(0,HM.useCallback)(e=>{let t=typeof e==`function`?e(m):e;h(t),i?.(t)},[m,i]),C=X0e({visibleOptionCount:t,options:n,initialFocusValue:f?n[n.length-1]?.value:void 0,onFocus:o,focusValue:s});Yk(`multi-select`,void 0);let w=(0,HM.useCallback)((e,t)=>{x(n=>{let r=new Map(n);return r.set(e,t),r});let r=n.find(t=>t.value===e);r&&r.type===`input`&&r.onChange(t),S(n=>t?n.includes(e)?n:[...n,e]:n.filter(t=>t!==e))},[n,S]);return At((e,t,r)=>{let i=qre(e),o=n.find(e=>e.value===C.focusedValue)?.type===`input`;if(o&&!(t.upArrow||t.downArrow||t.escape||t.tab||t.return||t.ctrl&&(e===`n`||e===`p`||t.return)))return;let s=n[n.length-1]?.value;if(t.tab&&!t.shift){c&&l&&C.focusedValue===s&&!g?_(!0):g||C.focusNextOption();return}if(t.tab&&t.shift){c&&l&&g?(_(!1),C.focusOption(s)):C.focusPreviousOption();return}if(t.downArrow||t.ctrl&&e===`n`||!t.ctrl&&!t.shift&&e===`j`){g&&u?u():c&&l&&C.focusedValue===s&&!g?_(!0):!c&&u&&C.focusedValue===s?u():g||C.focusNextOption();return}if(t.upArrow||t.ctrl&&e===`p`||!t.ctrl&&!t.shift&&e===`k`){c&&l&&g?(_(!1),C.focusOption(s)):d&&C.focusedValue===n[0]?.value?d():C.focusPreviousOption();return}if(t.pageDown){C.focusNextPage();return}if(t.pageUp){C.focusPreviousPage();return}if(t.return||Zre(e)===` `){if(t.ctrl&&t.return&&o&&l){l(m);return}if(g&&l){l(m);return}if(t.return&&!c&&l){l(m);return}C.focusedValue!==void 0&&S(m.includes(C.focusedValue)?m.filter(e=>e!==C.focusedValue):[...m,C.focusedValue]);return}if(!p&&/^[0-9]+$/.test(i)){let e=parseInt(i,10)-1;if(e>=0&&e<n.length){let t=n[e].value;S(m.includes(t)?m.filter(e=>e!==t):[...m,t])}return}t.escape&&(a(),r.stopImmediatePropagation())},{isActive:!e}),{...C,selectedValues:m,inputValues:b,isSubmitFocused:g,updateInputValue:w,onCancel:a}}var HM,C8e=n((()=>{HM=r(R(),1),Zk(),Tt(),Di(),Q0e()}));function w8e({isDisabled:e=!1,visibleOptionCount:t=5,options:n,defaultValue:r=[],onCancel:i,onChange:a,onFocus:o,focusValue:s,submitButtonText:c,onSubmit:l,onDownFromLastItem:u,onUpFromFirstItem:d,initialFocusLast:f,onOpenEditor:p,hideIndexes:m=!1,onImagePaste:h,pastedContents:g,onRemoveImage:_}){let v=S8e({isDisabled:e,visibleOptionCount:t,options:n,defaultValue:r,onChange:a,onCancel:i,onFocus:o,focusValue:s,submitButtonText:c,onSubmit:l,onDownFromLastItem:u,onUpFromFirstItem:d,initialFocusLast:f,hideIndexes:m}),y=n.length.toString().length;return(0,UM.jsxs)(B,{flexDirection:`column`,children:[(0,UM.jsx)(B,{flexDirection:`column`,children:v.visibleOptions.map((t,r)=>{let a=!e&&v.focusedValue===t.value&&!v.isSubmitFocused,o=v.selectedValues.includes(t.value),s=t.index===v.visibleFromIndex,c=t.index===v.visibleToIndex-1,l=v.visibleToIndex<n.length,u=v.visibleFromIndex>0,d=v.visibleFromIndex+r+1;if(t.type===`input`){let e=v.inputValues.get(t.value)||``;return(0,UM.jsx)(B,{gap:1,children:(0,UM.jsx)(Kk,{option:t,isFocused:a,isSelected:!1,shouldShowDownArrow:l&&c,shouldShowUpArrow:u&&s,maxIndexWidth:y,index:d,inputValue:e,onInputChange:e=>{v.updateInputValue(t.value,e)},onSubmit:()=>{},onExit:()=>{i()},layout:`compact`,onOpenEditor:p,onImagePaste:h,pastedContents:g,onRemoveImage:_,children:(0,UM.jsxs)(z,{color:o?`success`:void 0,children:[`[`,o?ue.tick:` `,`] `]})})},String(t.value))}return(0,UM.jsx)(B,{gap:1,children:(0,UM.jsxs)(Wk,{isFocused:a,isSelected:!1,shouldShowDownArrow:l&&c,shouldShowUpArrow:u&&s,description:t.description,children:[!m&&(0,UM.jsx)(z,{dimColor:!0,children:`${d}.`.padEnd(y)}),(0,UM.jsxs)(z,{color:o?`success`:void 0,children:[`[`,o?ue.tick:` `,`]`]}),(0,UM.jsx)(z,{color:a?`suggestion`:void 0,children:t.label})]})},String(t.value))})}),c&&l&&(0,UM.jsxs)(B,{marginTop:0,gap:1,children:[v.isSubmitFocused?(0,UM.jsx)(z,{color:`suggestion`,children:ue.pointer}):(0,UM.jsx)(z,{children:` `}),(0,UM.jsx)(B,{marginLeft:3,children:(0,UM.jsx)(z,{color:v.isSubmitFocused?`suggestion`:void 0,bold:!0,children:c})})]})]})}var UM,T8e=n((()=>{N(),R(),Tt(),H0e(),Gk(),C8e(),UM=jt()})),WM=n((()=>{T8e(),oA()}));function E8e({onStashAndContinue:e,onCancel:t}){let[n,r]=(0,GM.useState)(null),i=n===null?[]:[...n.tracked,...n.untracked],[a,o]=(0,GM.useState)(!0),[s,c]=(0,GM.useState)(!1),[l,u]=(0,GM.useState)(null);(0,GM.useEffect)(()=>{(async()=>{try{r(await bse())}catch(e){U(`Error getting changed files: ${e instanceof Error?e.message:String(e)}`,{level:`error`}),u(`Failed to get changed files`)}finally{o(!1)}})()},[]);let d=async()=>{c(!0);try{U(`Stashing changes before teleport...`),await Cse(`Teleport auto-stash`)?(U(`Successfully stashed changes`),e()):u(`Failed to stash changes`)}catch(e){U(`Error stashing changes: ${e instanceof Error?e.message:String(e)}`,{level:`error`}),u(`Failed to stash changes`)}finally{c(!1)}},f=e=>{e===`stash`?d():t()};if(a)return(0,KM.jsx)(B,{flexDirection:`column`,padding:1,children:(0,KM.jsxs)(B,{marginBottom:1,children:[(0,KM.jsx)(PM,{}),(0,KM.jsxs)(z,{children:[` Checking git status`,ue.ellipsis]})]})});if(l)return(0,KM.jsxs)(B,{flexDirection:`column`,padding:1,children:[(0,KM.jsxs)(z,{bold:!0,color:`error`,children:[`Error: `,l]}),(0,KM.jsxs)(B,{marginTop:1,children:[(0,KM.jsx)(z,{dimColor:!0,children:`Press `}),(0,KM.jsx)(z,{bold:!0,children:`Escape`}),(0,KM.jsx)(z,{dimColor:!0,children:` to cancel`})]})]});let p=i.length>8;return(0,KM.jsxs)(bt,{title:`Working Directory Has Changes`,onCancel:t,children:[(0,KM.jsx)(z,{children:`Teleport will switch git branches. The following changes were found:`}),(0,KM.jsx)(B,{flexDirection:`column`,paddingLeft:2,children:i.length>0?p?(0,KM.jsxs)(z,{children:[i.length,` files changed`]}):i.map((e,t)=>(0,KM.jsx)(z,{children:e},t)):(0,KM.jsx)(z,{dimColor:!0,children:`No changes detected`})}),(0,KM.jsx)(z,{children:`Would you like to stash these changes and continue with teleport?`}),s?(0,KM.jsxs)(B,{children:[(0,KM.jsx)(PM,{}),(0,KM.jsx)(z,{children:` Stashing changes...`})]}):(0,KM.jsx)(rA,{options:[{label:`Stash changes and continue`,value:`stash`},{label:`Exit`,value:`exit`}],onChange:f})]})}var GM,KM,D8e=n((()=>{N(),GM=r(R(),1),Tt(),W(),no(),WM(),zM(),KM=jt()}));function O8e({onComplete:e,errorsToIgnore:t=A8e}){let[n,r]=(0,qM.useState)(null),[i,a]=(0,qM.useState)(!1),o=(0,qM.useCallback)(async()=>{let n=await k8e(),i=new Set(Array.from(n).filter(e=>!t.has(e)));if(i.size===0){e();return}i.has(`needsLogin`)?r(`needsLogin`):i.has(`needsGitStash`)&&r(`needsGitStash`)},[e,t]);(0,qM.useEffect)(()=>{o()},[o]);let s=(0,qM.useCallback)(()=>{_S(0)},[]),c=(0,qM.useCallback)(()=>{a(!1),o()},[o]),l=(0,qM.useCallback)(()=>{a(!0)},[a]),u=(0,qM.useCallback)(e=>{e===`login`?l():s()},[l,s]),d=(0,qM.useCallback)(()=>{o()},[o]);if(!n)return null;switch(n){case`needsGitStash`:return(0,JM.jsx)(E8e,{onStashAndContinue:d,onCancel:s});case`needsLogin`:return i?(0,JM.jsx)(v8e,{onDone:c,mode:`login`,forceLoginMethod:`claudeai`}):(0,JM.jsxs)(bt,{title:`Log in to Claude`,onCancel:s,children:[(0,JM.jsxs)(B,{flexDirection:`column`,children:[(0,JM.jsx)(z,{dimColor:!0,children:`Teleport requires a Claude.ai account.`}),(0,JM.jsx)(z,{dimColor:!0,children:`Your Claude Pro/Max subscription will be used by Claude Code.`})]}),(0,JM.jsx)(rA,{options:[{label:`Login with Claude account`,value:`login`},{label:`Exit`,value:`exit`}],onChange:u})]})}}async function k8e(){let e=new Set,[t,n]=await Promise.all([uze(),dze()]);return t&&e.add(`needsLogin`),n||e.add(`needsGitStash`),e}var qM,JM,A8e,j8e=n((()=>{qM=r(R(),1),pS(),CS(),Tt(),x8e(),WM(),D8e(),JM=jt(),A8e=new Set}));function M8e({children:e}){let{addNotification:t,removeNotification:n}=WO();return(0,P8e.jsx)(ate,{loadBindings:Vw,subscribeToChanges:qHe,initWatcher:BHe,onWarnings:(0,N8e.useCallback)((e,r)=>{let i=`keybinding-config-warning`;if(e.length===0){n(i);return}let a=fs(e,e=>e.severity===`error`),o=fs(e,e=>e.severity===`warning`),s;s=a>0&&o>0?`Found ${a} keybinding ${mr(a,`error`)} and ${o} ${mr(o,`warning`)}`:a>0?`Found ${a} keybinding ${mr(a,`error`)}`:`Found ${o} keybinding ${mr(o,`warning`)}`,s+=` · /doctor for details`,t({key:i,text:s,color:a>0?`error`:`warning`,priority:a>0?`immediate`:`high`,timeoutMs:6e4})},[t,n]),onDebugLog:U,children:e})}var N8e,P8e,F8e=n((()=>{N8e=r(R(),1),YO(),Ss(),W(),Di(),Tt(),Yw(),P8e=jt()}));function I8e(e){let t=QM.get(e);return t||(t=Uae(async(t,n,r)=>await L8e(e,t,n,r)),QM.set(e,t)),t}async function L8e(e,t,n,r){for(let i=1;i<=ZM;i++){try{let a=XM.get(e),o={...r};a&&(o[`Last-Uuid`]=a);let s=await Oe.put(n,t,{headers:o,validateStatus:e=>e<500});if(s.status===200||s.status===201)return XM.set(e,t.uuid),U(`Successfully persisted session log entry for session ${e}`),!0;if(s.status===409){let i=s.headers[`x-last-uuid`];if(i===t.uuid)return XM.set(e,t.uuid),U(`Session entry ${t.uuid} already present on server, recovering from stale state`),Ja(`info`,`session_persist_recovered_from_409`),!0;if(i)XM.set(e,i),U(`Session 409: adopting server lastUuid=${i} from header, retrying entry ${t.uuid}`);else{let i=await YM(e,n,r),a=H8e(i);if(a)XM.set(e,a),U(`Session 409: re-fetched ${i.length} entries, adopting lastUuid=${a}, retrying entry ${t.uuid}`);else{let n=s.data.error?.message||`Concurrent modification detected`;return q(Error(`Session persistence conflict: UUID mismatch for session ${e}, entry ${t.uuid}. ${n}`)),Ja(`error`,`session_persist_fail_concurrent_modification`),!1}}Ja(`info`,`session_persist_409_adopt_server_uuid`);continue}if(s.status===401)return U(`Session token expired or invalid`),Ja(`error`,`session_persist_fail_bad_token`),!1;U(`Failed to persist session log: ${s.status} ${s.statusText}`),Ja(`error`,`session_persist_fail_status`,{status:s.status,attempt:i})}catch(e){let t=e;q(Error(`Error persisting session log: ${t.message}`)),Ja(`error`,`session_persist_fail_status`,{status:t.status,attempt:i})}if(i===ZM)return U(`Remote persistence failed after ${ZM} attempts`),Ja(`error`,`session_persist_error_retries_exhausted`,{attempt:i}),!1;let a=Math.min(W8e*2**(i-1),8e3);U(`Remote persistence attempt ${i}/${ZM} failed, retrying in ${a}ms…`),await Hs(a)}return!1}async function R8e(e,t,n){let r=_l();if(!r)return U(`No session token available for session persistence`),Ja(`error`,`session_persist_fail_jwt_no_token`),!1;let i={Authorization:`Bearer ${r}`,"Content-Type":`application/json`};return I8e(e)(t,n,i)}async function z8e(e,t){let n=_l();if(!n)return U(`No session token available for fetching session logs`),Ja(`error`,`session_get_fail_no_token`),null;let r=await YM(e,t,{Authorization:`Bearer ${n}`});if(r&&r.length>0){let t=r.at(-1);t&&`uuid`in t&&t.uuid&&XM.set(e,t.uuid)}return r}async function B8e(e,t,n){let r=`${ro().BASE_API_URL}/v1/session_ingress/session/${e}`;return U(`[session-ingress] Fetching session logs from: ${r}`),await YM(e,r,{...Zl(t),"x-organization-uuid":n})}async function V8e(e,t,n){let r=`${ro().BASE_API_URL}/v1/code/sessions/${e}/teleport-events`,i={...Zl(t),"x-organization-uuid":n};U(`[teleport] Fetching events from: ${r}`);let a=[],o,s=0;for(;s<100;){let t={limit:1e3};o!==void 0&&(t.cursor=o);let n;try{n=await Oe.get(r,{headers:i,params:t,timeout:2e4,validateStatus:e=>e<500})}catch(e){return q(Error(`Teleport events fetch failed: ${e.message}`)),Ja(`error`,`teleport_events_fetch_fail`),null}if(n.status===404)return U(`[teleport] Session ${e} not found (page ${s})`),Ja(`warn`,`teleport_events_not_found`),s===0?null:a;if(n.status===401)throw Ja(`error`,`teleport_events_bad_token`),Error(`Your session has expired. Please run /login to sign in again.`);if(n.status!==200)return q(Error(`Teleport events returned ${n.status}: ${V(n.data)}`)),Ja(`error`,`teleport_events_bad_status`),null;let{data:c,next_cursor:l}=n.data;if(!Array.isArray(c))return q(Error(`Teleport events invalid response shape: ${V(n.data)}`)),Ja(`error`,`teleport_events_invalid_shape`),null;for(let e of c)e.payload!==null&&a.push(e.payload);if(s++,l==null)break;o=l}return s>=100&&(q(Error(`Teleport events hit page cap (100) for ${e}`)),Ja(`warn`,`teleport_events_page_cap`)),U(`[teleport] Fetched ${a.length} events over ${s} page(s) for ${e}`),a}async function YM(e,t,n){try{let r=await Oe.get(t,{headers:n,timeout:2e4,validateStatus:e=>e<500,params:x(process.env.CLAUDE_AFTER_LAST_COMPACT)?{after_last_compact:!0}:void 0});if(r.status===200){let t=r.data;if(!t||typeof t!=`object`||!Array.isArray(t.loglines))return q(Error(`Invalid session logs response format: ${V(t)}`)),Ja(`error`,`session_get_fail_invalid_response`),null;let n=t.loglines;return U(`Fetched ${n.length} session logs for session ${e}`),n}if(r.status===404)return U(`No existing logs for session ${e}`),Ja(`warn`,`session_get_no_logs_for_session`),[];if(r.status===401)throw U(`Auth token expired or invalid`),Ja(`error`,`session_get_fail_bad_token`),Error(`Your session has expired. Please run /login to sign in again.`);return U(`Failed to fetch session logs: ${r.status} ${r.statusText}`),Ja(`error`,`session_get_fail_status`,{status:r.status}),null}catch(e){let t=e;return q(Error(`Error fetching session logs: ${t.message}`)),Ja(`error`,`session_get_fail_status`,{status:t.status}),null}}function H8e(e){if(!e)return;let t=e.findLast(e=>`uuid`in e&&e.uuid);return t&&`uuid`in t?t.uuid:void 0}function U8e(){XM.clear(),QM.clear()}var XM,ZM,W8e,QM,$M=n((()=>{ke(),io(),W(),Ya(),y(),Ao(),Qae(),Nue(),Us(),Va(),Ql(),XM=new Map,ZM=10,W8e=500,QM=new Map}));function eN(){return Kt()?G8e():Tr().fileCheckpointingEnabled!==!1&&!x(process.env.CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING)}function G8e(){return x(process.env.CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING)&&!x(process.env.CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING)}async function tN(e,t,n){if(!eN())return;let r=r5e(t),i;if(e(e=>(i=e,e)),!i)return;let a=i.snapshots.at(-1);if(!a){q(Error(`FileHistory: Missing most recent snapshot`)),G(`tengu_file_history_track_edit_failed`,{});return}if(a.trackedFileBackups[r])return;let o;try{o=await t5e(t,1)}catch(e){q(e),G(`tengu_file_history_track_edit_failed`,{});return}let s=o.backupFileName===null;e(e=>{try{let i=e.snapshots.at(-1);if(!i||i.trackedFileBackups[r])return e;let a=e.trackedFiles.has(r)?e.trackedFiles:new Set(e.trackedFiles).add(r),c={...i,trackedFileBackups:{...i.trackedFileBackups,[r]:o}},l={...e,snapshots:(()=>{let t=e.snapshots.slice();return t[t.length-1]=c,t})(),trackedFiles:a};return k8(n,c,!0).catch(e=>{q(Error(`FileHistory: Failed to record snapshot: ${e}`))}),G(`tengu_file_history_track_edit_success`,{isNewFile:s,version:o.version}),U(`FileHistory: Tracked file modification for ${t}`),l}catch(t){return q(t),G(`tengu_file_history_track_edit_failed`,{}),e}})}async function K8e(e,t){if(!eN())return;let n;if(e(e=>(n=e,e)),!n)return;let r={},i=n.snapshots.at(-1);i&&(U(`FileHistory: Making snapshot for message ${t}`),await Promise.all(Array.from(n.trackedFiles,async e=>{try{let t=aN(e),n=i.trackedFileBackups[e],a=n?n.version+1:1,o;try{o=await xd(t)}catch(e){if(!Oa(e))throw e}if(!o){r[e]={backupFileName:null,version:a,backupTime:new Date},G(`tengu_file_history_backup_deleted_file`,{version:a}),U(`FileHistory: Missing tracked file: ${e}`);return}if(n&&n.backupFileName!==null&&!await nN(t,n.backupFileName,o)){r[e]=n;return}r[e]=await t5e(t,a)}catch(e){q(e),G(`tengu_file_history_backup_file_failed`,{})}}))),e(e=>{try{let n=e.snapshots.at(-1);if(n)for(let t of e.trackedFiles){if(t in r)continue;let e=n.trackedFileBackups[t];e&&(r[t]=e)}let i={messageId:t,trackedFileBackups:r,timestamp:new Date},a=[...e.snapshots,i],o={...e,snapshots:a.length>sN?a.slice(-sN):a,snapshotSequence:(e.snapshotSequence??0)+1};return o5e(e,o).catch(q),k8(t,i,!1).catch(e=>{q(Error(`FileHistory: Failed to record snapshot: ${e}`))}),U(`FileHistory: Added snapshot for ${t}, tracking ${e.trackedFiles.size} files`),G(`tengu_file_history_snapshot_success`,{trackedFilesCount:e.trackedFiles.size,snapshotCount:o.snapshots.length}),o}catch(t){return q(t),G(`tengu_file_history_snapshot_failed`,{}),e}})}async function q8e(e,t){if(!eN())return;let n;if(e(e=>(n=e,e)),!n)return;let r=n.snapshots.findLast(e=>e.messageId===t);if(!r)throw q(Error(`FileHistory: Snapshot for ${t} not found`)),G(`tengu_file_history_rewind_failed`,{trackedFilesCount:n.trackedFiles.size,snapshotFound:!1}),Error(`The selected snapshot was not found`);try{U(`FileHistory: [Rewind] Rewinding to snapshot for ${t}`);let e=await Z8e(n,r);U(`FileHistory: [Rewind] Finished rewinding to ${t}`),G(`tengu_file_history_rewind_success`,{trackedFilesCount:n.trackedFiles.size,filesChangedCount:e.length})}catch(e){throw q(e),G(`tengu_file_history_rewind_failed`,{trackedFilesCount:n.trackedFiles.size,snapshotFound:!0}),e}}function J8e(e,t){return eN()?e.snapshots.some(e=>e.messageId===t):!1}async function Y8e(e,t){if(!eN())return;let n=e.snapshots.findLast(e=>e.messageId===t);if(!n)return;let r=await Promise.all(Array.from(e.trackedFiles,async t=>{try{let r=aN(t),i=n.trackedFileBackups[t],a=i?i.backupFileName:iN(t,e);if(a===void 0)return q(Error(`FileHistory: Error finding the backup file to apply`)),G(`tengu_file_history_rewind_restore_file_failed`,{dryRun:!0}),null;let o=await $8e(r,a===null?void 0:a);return o?.insertions||o?.deletions||a===null&&await Qr(r)?{filePath:r,stats:o}:null}catch(e){return q(e),G(`tengu_file_history_rewind_restore_file_failed`,{dryRun:!0}),null}})),i=[],a=0,o=0;for(let e of r)e&&(i.push(e.filePath),a+=e.stats?.insertions||0,o+=e.stats?.deletions||0);return{filesChanged:i,insertions:a,deletions:o}}async function X8e(e,t){if(!eN())return!1;let n=e.snapshots.findLast(e=>e.messageId===t);if(!n)return!1;for(let t of e.trackedFiles)try{let r=aN(t),i=n.trackedFileBackups[t],a=i?i.backupFileName:iN(t,e);if(a===void 0)continue;if(a===null){if(await Qr(r))return!0;continue}if(await nN(r,a))return!0}catch(e){q(e)}return!1}async function Z8e(e,t){let n=[];for(let r of e.trackedFiles)try{let i=aN(r),a=t.trackedFileBackups[r],o=a?a.backupFileName:iN(r,e);if(o===void 0){q(Error(`FileHistory: Error finding the backup file to apply`)),G(`tengu_file_history_rewind_restore_file_failed`,{dryRun:!1});continue}if(o===null){try{await Cd(i),U(`FileHistory: [Rewind] Deleted ${i}`),n.push(i)}catch(e){if(!Oa(e))throw e}continue}await nN(i,o)&&(await n5e(i,o),U(`FileHistory: [Rewind] Restored ${i} from ${o}`),n.push(i))}catch(e){q(e),G(`tengu_file_history_rewind_restore_file_failed`,{dryRun:!1})}return n}async function nN(e,t,n){let r=rN(t),i=n??null;if(!i)try{i=await xd(e)}catch(e){if(!Oa(e))return!0}let a=null;try{a=await xd(r)}catch(e){if(!Oa(e))return!0}return Q8e(i,a,async()=>{try{let[t,n]=await Promise.all([hd(e,`utf-8`),hd(r,`utf-8`)]);return t!==n}catch{return!0}})}function Q8e(e,t,n){return e===null==(t===null)?e===null||t===null?!1:e.mode!==t.mode||e.size!==t.size?!0:e.mtimeMs<t.mtimeMs?!1:n():!0}async function $8e(e,t){let n=[],r=0,i=0;try{let a=t?rN(t):void 0,[o,s]=await Promise.all([oN(e),a?oN(a):null]);if(o===null&&s===null)return{filesChanged:n,insertions:r,deletions:i};n.push(e),Ah(o??``,s??``).forEach(e=>{e.added&&(r+=e.count||0),e.removed&&(i+=e.count||0)})}catch(e){q(Error(`FileHistory: Error generating diffStats: ${e}`))}return{filesChanged:n,insertions:r,deletions:i}}function e5e(e,t){return`${id(`sha256`).update(e).digest(`hex`).slice(0,16)}@v${t}`}function rN(e,t){return Y(_(),`file-history`,t||Ft(),e)}async function t5e(e,t){if(e===null)return{backupFileName:null,version:t,backupTime:new Date};let n=e5e(e,t),r=rN(n),i;try{i=await xd(e)}catch(e){if(Oa(e))return{backupFileName:null,version:t,backupTime:new Date};throw e}try{await dd(e,r)}catch(t){if(!Oa(t))throw t;await pd(Eu(r),{recursive:!0}),await dd(e,r)}return await ud(r,i.mode),G(`tengu_file_history_backup_file_created`,{version:t,fileSize:i.size}),{backupFileName:n,version:t,backupTime:new Date}}async function n5e(e,t){let n=rN(t),r;try{r=await xd(n)}catch(e){if(Oa(e)){G(`tengu_file_history_rewind_restore_file_failed`,{}),q(Error(`FileHistory: [Rewind] Backup file not found: ${n}`));return}throw e}try{await dd(n,e)}catch(t){if(!Oa(t))throw t;await pd(Eu(e),{recursive:!0}),await dd(n,e)}await ud(e,r.mode)}function iN(e,t){for(let n of t.snapshots){let t=n.trackedFileBackups[e];if(t!==void 0&&t.version===1)return t.backupFileName}}function r5e(e){if(!Ou(e))return e;let t=fn();return e.startsWith(t)?Mu(t,e):e}function aN(e){return Ou(e)?e:Y(fn(),e)}function i5e(e,t){if(!eN())return;let n=[],r=new Set;for(let t of e){let e={};for(let[n,i]of Object.entries(t.trackedFileBackups)){let t=r5e(n);r.add(t),e[t]=i}n.push({...t,trackedFileBackups:e})}t({snapshots:n,trackedFiles:r,snapshotSequence:n.length})}async function a5e(e){if(!eN())return;let t=e.fileHistorySnapshots;if(!t||e.messages.length===0)return;let n=e.messages[e.messages.length-1]?.sessionId;if(!n){q(Error(`FileHistory: Failed to copy backups on restore (no previous session id)`));return}let r=Ft();if(n===r){U(`FileHistory: No need to copy file history for resuming with same session id: ${r}`);return}try{let e=Y(_(),`file-history`,r);await pd(e,{recursive:!0});let i=0;await Promise.allSettled(t.map(async t=>{let a=Object.values(t.trackedFileBackups).filter(e=>e.backupFileName!==null);(await Promise.allSettled(a.map(async({backupFileName:t})=>{let i=rN(t,n),a=Y(e,t);try{await fd(i,a)}catch(e){let r=Ea(e);if(r===`EEXIST`)return;if(r===`ENOENT`)throw q(Error(`FileHistory: Failed to copy backup ${t} on restore (backup file does not exist in ${n})`)),e;q(Error(`FileHistory: Error hard linking backup file from previous session`));try{await dd(i,a)}catch(e){throw q(Error(`FileHistory: Error copying over backup from previous session`)),e}}U(`FileHistory: Copied backup ${t} from session ${n} to ${r}`)}))).some(e=>e.status===`rejected`)?i++:k8(t.messageId,t,!1).catch(e=>{q(Error(`FileHistory: Failed to record copy backup snapshot`))})})),i>0&&G(`tengu_file_history_resume_copy_failed`,{numSnapshots:t.length,failedSnapshots:i})}catch(e){q(e)}}async function o5e(e,t){let n=e.snapshots.at(-1),r=t.snapshots.at(-1);if(r)for(let e of t.trackedFiles){let t=aN(e),i=n?.trackedFileBackups[e],a=r.trackedFileBackups[e];if(i?.backupFileName===a?.backupFileName&&i?.version===a?.version)continue;let o=null;i?.backupFileName&&(o=await oN(rN(i.backupFileName)));let s=null;a?.backupFileName&&(s=await oN(rN(a.backupFileName))),o!==s&&Jy(t,o,s)}}async function oN(e){try{return await hd(e,`utf-8`)}catch{return null}}var sN,cN=n((()=>{Fh(),tn(),Ua(),Xy(),xn(),W(),y(),ka(),pi(),Ao(),h5(),sN=20}));function s5e(){let e=process.env.CLAUDE_CODE_ENVIRONMENT_KIND;return e===`byoc`||e===`anthropic_cloud`?e:null}var c5e=n((()=>{W()}));function l5e(e){return ad(4).readUInt32BE(0)%e}function lN(e){return e[l5e(e.length)]}function u5e(){return`${lN(uN)}-${lN(f5e)}-${lN(dN)}`}function d5e(){return`${lN(uN)}-${lN(dN)}`}var uN,dN,f5e,fN=n((()=>{uN=`abundant.ancient.bright.calm.cheerful.clever.cozy.curious.dapper.dazzling.deep.delightful.eager.elegant.enchanted.fancy.fluffy.gentle.gleaming.golden.graceful.happy.hidden.humble.jolly.joyful.keen.kind.lively.lovely.lucky.luminous.magical.majestic.mellow.merry.mighty.misty.noble.peaceful.playful.polished.precious.proud.quiet.quirky.radiant.rosy.serene.shiny.silly.sleepy.smooth.snazzy.snug.snuggly.soft.sparkling.spicy.splendid.sprightly.starry.steady.sunny.swift.tender.tidy.toasty.tranquil.twinkly.valiant.vast.velvet.vivid.warm.whimsical.wild.wise.witty.wondrous.zany.zesty.zippy.breezy.bubbly.buzzing.cheeky.cosmic.cozy.crispy.crystalline.cuddly.drifting.dreamy.effervescent.ethereal.fizzy.flickering.floating.floofy.fluttering.foamy.frolicking.fuzzy.giggly.glimmering.glistening.glittery.glowing.goofy.groovy.harmonic.hazy.humming.iridescent.jaunty.jazzy.jiggly.melodic.moonlit.mossy.nifty.peppy.prancy.purrfect.purring.quizzical.rippling.rustling.shimmering.shimmying.snappy.snoopy.squishy.swirling.ticklish.tingly.twinkling.velvety.wiggly.wobbly.woolly.zazzy.abstract.adaptive.agile.async.atomic.binary.cached.compiled.composed.compressed.concurrent.cryptic.curried.declarative.delegated.distributed.dynamic.eager.elegant.encapsulated.enumerated.eventual.expressive.federated.functional.generic.greedy.hashed.idempotent.immutable.imperative.indexed.inherited.iterative.lazy.lexical.linear.linked.logical.memoized.modular.mutable.nested.optimized.parallel.parsed.partitioned.piped.polymorphic.pure.reactive.recursive.refactored.reflective.replicated.resilient.robust.scalable.sequential.serialized.sharded.sorted.staged.stateful.stateless.streamed.structured.synchronous.synthetic.temporal.transient.typed.unified.validated.vectorized.virtual`.split(`.`),dN=`aurora.avalanche.blossom.breeze.brook.bubble.canyon.cascade.cloud.clover.comet.coral.cosmos.creek.crescent.crystal.dawn.dewdrop.dusk.eclipse.ember.feather.fern.firefly.flame.flurry.fog.forest.frost.galaxy.garden.glacier.glade.grove.harbor.horizon.island.lagoon.lake.leaf.lightning.meadow.meteor.mist.moon.moonbeam.mountain.nebula.nova.ocean.orbit.pebble.petal.pine.planet.pond.puddle.quasar.rain.rainbow.reef.ripple.river.shore.sky.snowflake.spark.spring.star.stardust.starlight.storm.stream.summit.sun.sunbeam.sunrise.sunset.thunder.tide.twilight.valley.volcano.waterfall.wave.willow.wind.alpaca.axolotl.badger.bear.beaver.bee.bird.bumblebee.bunny.cat.chipmunk.crab.crane.deer.dolphin.dove.dragon.dragonfly.duckling.eagle.elephant.falcon.finch.flamingo.fox.frog.giraffe.goose.hamster.hare.hedgehog.hippo.hummingbird.jellyfish.kitten.koala.ladybug.lark.lemur.llama.lobster.lynx.manatee.meerkat.moth.narwhal.newt.octopus.otter.owl.panda.parrot.peacock.pelican.penguin.phoenix.piglet.platypus.pony.porcupine.puffin.puppy.quail.quokka.rabbit.raccoon.raven.robin.salamander.seahorse.seal.sloth.snail.sparrow.sphinx.squid.squirrel.starfish.swan.tiger.toucan.turtle.unicorn.walrus.whale.wolf.wombat.wren.yeti.zebra.acorn.anchor.balloon.beacon.biscuit.blanket.bonbon.book.boot.cake.candle.candy.castle.charm.clock.cocoa.cookie.crayon.crown.cupcake.donut.dream.fairy.fiddle.flask.flute.fountain.gadget.gem.gizmo.globe.goblet.hammock.harp.haven.hearth.honey.journal.kazoo.kettle.key.kite.lantern.lemon.lighthouse.locket.lollipop.mango.map.marble.marshmallow.melody.mitten.mochi.muffin.music.nest.noodle.oasis.origami.pancake.parasol.peach.pearl.pebble.pie.pillow.pinwheel.pixel.pizza.plum.popcorn.pretzel.prism.pudding.pumpkin.puzzle.quiche.quill.quilt.riddle.rocket.rose.scone.scroll.shell.sketch.snowglobe.sonnet.sparkle.spindle.sprout.sundae.swing.taco.teacup.teapot.thimble.toast.token.tome.tower.treasure.treehouse.trinket.truffle.tulip.umbrella.waffle.wand.whisper.whistle.widget.wreath.zephyr.abelson.adleman.aho.allen.babbage.bachman.backus.barto.bengio.bentley.blum.boole.brooks.catmull.cerf.cherny.church.clarke.cocke.codd.conway.cook.corbato.cray.curry.dahl.diffie.dijkstra.dongarra.eich.emerson.engelbart.feigenbaum.floyd.gosling.graham.gray.hamming.hanrahan.hartmanis.hejlsberg.hellman.hennessy.hickey.hinton.hoare.hollerith.hopcroft.hopper.iverson.kahan.kahn.karp.kay.kernighan.knuth.kurzweil.lamport.lampson.lecun.lerdorf.liskov.lovelace.matsumoto.mccarthy.metcalfe.micali.milner.minsky.moler.moore.naur.neumann.newell.nygaard.papert.parnas.pascal.patterson.pearl.perlis.pike.pnueli.rabin.reddy.ritchie.rivest.rossum.russell.scott.sedgewick.shamir.shannon.sifakis.simon.stallman.stearns.steele.stonebraker.stroustrup.sutherland.sutton.tarjan.thacker.thompson.torvalds.turing.ullman.valiant.wadler.wall.wigderson.wilkes.wilkinson.wirth.wozniak.yao`.split(`.`),f5e=`baking.beaming.booping.bouncing.brewing.bubbling.chasing.churning.coalescing.conjuring.cooking.crafting.crunching.cuddling.dancing.dazzling.discovering.doodling.dreaming.drifting.enchanting.exploring.finding.floating.fluttering.foraging.forging.frolicking.gathering.giggling.gliding.greeting.growing.hatching.herding.honking.hopping.hugging.humming.imagining.inventing.jingling.juggling.jumping.kindling.knitting.launching.leaping.mapping.marinating.meandering.mixing.moseying.munching.napping.nibbling.noodling.orbiting.painting.percolating.petting.plotting.pondering.popping.prancing.purring.puzzling.questing.riding.roaming.rolling.sauteeing.scribbling.seeking.shimmying.singing.skipping.sleeping.snacking.sniffing.snuggling.soaring.sparking.spinning.splashing.sprouting.squishing.stargazing.stirring.strolling.swimming.swinging.tickling.tinkering.toasting.tumbling.twirling.waddling.wandering.watching.weaving.whistling.wibbling.wiggling.wishing.wobbling.wondering.yawning.zooming`.split(`.`)}));function pN(e){let t=e??Ft(),n=nn().get(t);if(!n){let e=gN();for(let t=0;t<x5e;t++){n=u5e();let t=Y(e,`${n}.md`);if(!za().existsSync(t))break}Ine(t,n)}return n}function p5e(e,t){Ine(e,t)}function m5e(){nn().clear()}function mN(e){let t=pN(Ft());return e?Y(gN(),`${t}-agent-${e}.md`):Y(gN(),`${t}.md`)}function hN(e){let t=mN(e);try{return za().readFileSync(t,{encoding:`utf-8`})}catch(e){return Oa(e)||q(e),null}}function h5e(e){return e.messages.find(e=>e.slug)?.slug}async function g5e(e,t){let n=h5e(e);if(!n)return!1;p5e(t??Ft(),n);let r=Y(gN(),`${n}.md`);try{return await za().readFile(r,{encoding:`utf-8`}),!0}catch(t){if(!Oa(t))return q(t),!1;if(s5e()===null)return!1;U(`Plan file missing during resume: ${r}. Attempting recovery.`);let n=y5e(e.messages,`plan`),i=null;if(n&&n.content.length>0?(i=n.content,U(`Plan recovered from file snapshot, ${i.length} chars`,{level:`info`})):(i=v5e(e),i&&U(`Plan recovered from message history, ${i.length} chars`,{level:`info`})),i)try{return await wd(r,i,{encoding:`utf-8`}),!0}catch(e){return q(e),!1}return U(`Plan file recovery failed: no file snapshot or plan content found in message history`),!1}}async function _5e(e,t){let n=h5e(e);if(!n)return!1;let r=gN(),i=Y(r,`${n}.md`),a=Y(r,`${pN(t)}.md`);try{return await dd(i,a),!0}catch(e){return Oa(e)||q(e),!1}}function v5e(e){for(let t=e.messages.length-1;t>=0;t--){let n=e.messages[t];if(n){if(n.type===`assistant`){let{content:e}=n.message;if(Array.isArray(e)){for(let t of e)if(t.type===`tool_use`&&t.name===`ExitPlanMode`){let e=t.input?.plan;if(typeof e==`string`&&e.length>0)return e}}}if(n.type===`user`){let e=n;if(typeof e.planContent==`string`&&e.planContent.length>0)return e.planContent}if(n.type===`attachment`){let e=n;if(e.attachment?.type===`plan_file_reference`){let t=e.attachment.planContent;if(typeof t==`string`&&t.length>0)return t}}}}return null}function y5e(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if(r?.type===`system`&&`subtype`in r&&r.subtype===`file_snapshot`&&`snapshotFiles`in r)return r.snapshotFiles.find(e=>e.key===t)}}async function b5e(){if(s5e()!==null)try{let e=[],t=hN();if(t&&e.push({key:`plan`,path:mN(),content:t}),e.length===0)return;let n={type:`system`,subtype:`file_snapshot`,content:`File snapshot`,level:`info`,isMeta:!0,timestamp:new Date().toISOString(),uuid:od(),snapshotFiles:e},{recordTranscript:r}=await import(`./sessionStorage-DG68Xvsy.js`);await r([n])}catch(e){q(e)}}var x5e,gN,_N=n((()=>{l(),tn(),Jc(),Wa(),W(),y(),ka(),c5e(),Fa(),Ao(),Gi(),fN(),x5e=10,gN=c(function(){let e=Qn().plansDirectory,t;if(e){let n=Ga(),r=Nu(n,e);!r.startsWith(n+Pu)&&r!==n?(q(Error(`plansDirectory must be within project root: ${e}`)),t=Y(_(),`plans`)):t=r}else t=Y(_(),`plans`);try{za().mkdirSync(t)}catch(e){q(e)}return t})}));async function vN(){let e=Y(_(),`session-env`,Ft());return await pd(e,{recursive:!0}),e}async function S5e(e,t){let n=e.toLowerCase();return Y(await vN(),`${n}-hook-${t}.sh`)}async function C5e(){try{let e=await vN(),t=await gd(e);await Promise.all(t.filter(e=>(e.startsWith(`filechanged-hook-`)||e.startsWith(`cwdchanged-hook-`))&&SN.test(e)).map(t=>wd(Y(e,t),``)))}catch(e){Ea(e)!==`ENOENT`&&U(`Failed to clear cwd env files: ${H(e)}`)}}function yN(){U(`Invalidating session environment cache`),bN=void 0}async function w5e(){if(No()===`windows`)return U(`Session environment not yet supported on Windows`),null;if(bN!==void 0)return bN;let e=[],t=process.env.CLAUDE_ENV_FILE;if(t)try{let n=(await hd(t,`utf8`)).trim();n&&(e.push(n),U(`Session environment loaded from CLAUDE_ENV_FILE: ${t} (${n.length} chars)`))}catch(e){Ea(e)!==`ENOENT`&&U(`Failed to read CLAUDE_ENV_FILE: ${H(e)}`)}let n=await vN();try{let t=(await gd(n)).filter(e=>SN.test(e)).sort(T5e);for(let r of t){let t=Y(n,r);try{let n=(await hd(t,`utf8`)).trim();n&&e.push(n)}catch(e){Ea(e)!==`ENOENT`&&U(`Failed to read hook file ${t}: ${H(e)}`)}}t.length>0&&U(`Session environment loaded from ${t.length} hook file(s)`)}catch(e){Ea(e)!==`ENOENT`&&U(`Failed to load session environment from hooks: ${H(e)}`)}return e.length===0?(U(`No session environment scripts found`),bN=null,bN):(bN=e.join(`
|
|
953
|
+
`]}),value:`platform`}],onChange:e=>{e===`custom_platform`?(G(`tengu_custom_platform_selected`,{}),d({state:`custom_platform`,baseUrl:process.env.ANTHROPIC_BASE_URL??``,apiKey:process.env.ANTHROPIC_AUTH_TOKEN??``,haikuModel:process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL??``,sonnetModel:process.env.ANTHROPIC_DEFAULT_SONNET_MODEL??``,opusModel:process.env.ANTHROPIC_DEFAULT_OPUS_MODEL??``,activeField:`base_url`})):e===`openai_chat_api`?(G(`tengu_openai_chat_api_selected`,{}),d({state:`openai_chat_api`,baseUrl:process.env.OPENAI_BASE_URL??``,apiKey:process.env.OPENAI_API_KEY??``,haikuModel:process.env.OPENAI_DEFAULT_HAIKU_MODEL??``,sonnetModel:process.env.OPENAI_DEFAULT_SONNET_MODEL??``,opusModel:process.env.OPENAI_DEFAULT_OPUS_MODEL??``,activeField:`base_url`})):e===`chatgpt_subscription`?(G(`tengu_chatgpt_subscription_selected`,{}),d({state:`chatgpt_subscription`,phase:`requesting`})):e===`gemini_api`?(G(`tengu_gemini_api_selected`,{}),d({state:`gemini_api`,baseUrl:process.env.GEMINI_BASE_URL??``,apiKey:process.env.GEMINI_API_KEY??``,haikuModel:process.env.GEMINI_DEFAULT_HAIKU_MODEL??``,sonnetModel:process.env.GEMINI_DEFAULT_SONNET_MODEL??``,opusModel:process.env.GEMINI_DEFAULT_OPUS_MODEL??``,activeField:`base_url`})):e===`platform`?(G(`tengu_oauth_platform_selected`,{}),d({state:`platform_setup`})):(d({state:`ready_to_start`}),e===`claudeai`?(G(`tengu_oauth_claudeai_selected`,{}),f(!0)):(G(`tengu_oauth_console_selected`,{}),f(!1)))}})})]});case`custom_platform`:{let t=[`base_url`,`api_key`,`haiku_model`,`sonnet_model`,`opus_model`],{activeField:n,baseUrl:r,apiKey:i,haikuModel:a,sonnetModel:o,opusModel:s}=e,c={base_url:r,api_key:i,haiku_model:a,sonnet_model:o,opus_model:s},[l,u]=(0,BM.useState)(()=>c[n]),[f,m]=(0,BM.useState)(()=>c[n].length),h=(0,BM.useCallback)((e,t,c)=>{let l={state:`custom_platform`,activeField:c??n,baseUrl:r,apiKey:i,haikuModel:a,sonnetModel:o,opusModel:s};switch(e){case`base_url`:return{...l,baseUrl:t};case`api_key`:return{...l,apiKey:t};case`haiku_model`:return{...l,haikuModel:t};case`sonnet_model`:return{...l,sonnetModel:t};case`opus_model`:return{...l,opusModel:t}}},[n,r,i,a,o,s]);(0,BM.useCallback)(e=>{d(h(n,l,e)),u(c[e]??``),m((c[e]??``).length)},[n,l,c,h,d]);let g=(0,BM.useCallback)(()=>{let e={...c,[n]:l},t={};if(e.base_url){try{new URL(e.base_url)}catch{d({state:`error`,message:`Invalid base URL: please enter a full URL including protocol (e.g., https://api.example.com)`,toRetry:{state:`custom_platform`,baseUrl:``,apiKey:``,haikuModel:``,sonnetModel:``,opusModel:``,activeField:`base_url`}});return}t.ANTHROPIC_BASE_URL=e.base_url}e.api_key&&(t.ANTHROPIC_AUTH_TOKEN=e.api_key),e.haiku_model&&(t.ANTHROPIC_DEFAULT_HAIKU_MODEL=e.haiku_model),e.sonnet_model&&(t.ANTHROPIC_DEFAULT_SONNET_MODEL=e.sonnet_model),e.opus_model&&(t.ANTHROPIC_DEFAULT_OPUS_MODEL=e.opus_model);let{error:r}=Ni(`userSettings`,{modelType:`anthropic`,env:t});if(r)d({state:`error`,message:`Failed to save settings. Please try again.`,toRetry:{state:`custom_platform`,baseUrl:e.base_url??``,apiKey:e.api_key??``,haikuModel:e.haiku_model??``,sonnetModel:e.sonnet_model??``,opusModel:e.opus_model??``,activeField:`base_url`}});else{for(let[e,n]of Object.entries(t))process.env[e]=n;d({state:`success`}),p()}},[n,l,c,d,p]),_=(0,BM.useCallback)(()=>{let e=t.indexOf(n);if(e===t.length-1)d(h(n,l)),g();else{let r=t[e+1];d(h(n,l,r)),u(c[r]??``),m((c[r]??``).length)}},[n,l,h,g,c,d]);Et(`tabs:next`,()=>{let e=t.indexOf(n);e<t.length-1&&(d(h(n,l,t[e+1])),u(c[t[e+1]]??``),m((c[t[e+1]]??``).length))},{context:`FormField`}),Et(`tabs:previous`,()=>{let e=t.indexOf(n);e>0&&(d(h(n,l,t[e-1])),u(c[t[e-1]]??``),m((c[t[e-1]]??``).length))},{context:`FormField`}),Et(`confirm:no`,()=>{d({state:`idle`})},{context:`Confirmation`});let v=ct().columns-20,y=(e,t,r)=>{let i=n===e,a=c[e];return(0,VM.jsxs)(B,{children:[(0,VM.jsx)(z,{backgroundColor:i?`suggestion`:void 0,color:i?`inverseText`:void 0,children:` ${t} `}),(0,VM.jsx)(z,{children:` `}),i?(0,VM.jsx)(zk,{value:l,onChange:u,onSubmit:_,cursorOffset:f,onChangeCursorOffset:m,columns:v,mask:r?.mask?`*`:void 0,focus:!0}):a?(0,VM.jsx)(z,{color:`success`,children:r?.mask?a.slice(0,8)+`·`.repeat(Math.max(0,a.length-8)):a}):null]})};return(0,VM.jsxs)(B,{flexDirection:`column`,gap:1,children:[(0,VM.jsx)(z,{bold:!0,children:`Anthropic Compatible Setup`}),(0,VM.jsxs)(B,{flexDirection:`column`,gap:1,children:[y(`base_url`,`Base URL `),y(`api_key`,`API Key `,{mask:!0}),y(`haiku_model`,`Haiku `),y(`sonnet_model`,`Sonnet `),y(`opus_model`,`Opus `)]}),(0,VM.jsx)(z,{dimColor:!0,children:`↑↓/Tab to switch · Enter on last field to save · Esc to go back`})]})}case`openai_chat_api`:{let t=[`base_url`,`api_key`,`haiku_model`,`sonnet_model`,`opus_model`],{activeField:n,baseUrl:r,apiKey:i,haikuModel:a,sonnetModel:o,opusModel:s}=e,c={base_url:r,api_key:i,haiku_model:a,sonnet_model:o,opus_model:s},[l,u]=(0,BM.useState)(()=>c[n]),[f,m]=(0,BM.useState)(()=>c[n].length),h=(0,BM.useCallback)((e,t,c)=>{let l={state:`openai_chat_api`,activeField:c??n,baseUrl:r,apiKey:i,haikuModel:a,sonnetModel:o,opusModel:s};switch(e){case`base_url`:return{...l,baseUrl:t};case`api_key`:return{...l,apiKey:t};case`haiku_model`:return{...l,haikuModel:t};case`sonnet_model`:return{...l,sonnetModel:t};case`opus_model`:return{...l,opusModel:t}}},[n,r,i,a,o,s]),g=(0,BM.useCallback)(()=>{let e={...c,[n]:l},t={OPENAI_AUTH_MODE:void 0};if(e.base_url){try{new URL(e.base_url)}catch{d({state:`error`,message:`Invalid base URL: please enter a full URL including protocol (e.g., https://api.example.com)`,toRetry:{state:`openai_chat_api`,baseUrl:``,apiKey:``,haikuModel:``,sonnetModel:``,opusModel:``,activeField:`base_url`}});return}t.OPENAI_BASE_URL=e.base_url}e.api_key&&(t.OPENAI_API_KEY=e.api_key),e.haiku_model&&(t.OPENAI_DEFAULT_HAIKU_MODEL=e.haiku_model),e.sonnet_model&&(t.OPENAI_DEFAULT_SONNET_MODEL=e.sonnet_model),e.opus_model&&(t.OPENAI_DEFAULT_OPUS_MODEL=e.opus_model);let{error:r}=Ni(`userSettings`,{modelType:`openai`,env:t});if(r)d({state:`error`,message:`Failed to save settings. Please try again.`,toRetry:{state:`openai_chat_api`,baseUrl:e.base_url??``,apiKey:e.api_key??``,haikuModel:e.haiku_model??``,sonnetModel:e.sonnet_model??``,opusModel:e.opus_model??``,activeField:`base_url`}});else{for(let[e,n]of Object.entries(t))n===void 0?delete process.env[e]:process.env[e]=n;d({state:`success`}),p()}},[n,l,c,d,p]),_=(0,BM.useCallback)(()=>{let e=t.indexOf(n);if(e===t.length-1)d(h(n,l)),g();else{let r=t[e+1];d(h(n,l,r)),u(c[r]??``),m((c[r]??``).length)}},[n,l,h,g,c,d]);Et(`tabs:next`,()=>{let e=t.indexOf(n);e<t.length-1&&(d(h(n,l,t[e+1])),u(c[t[e+1]]??``),m((c[t[e+1]]??``).length))},{context:`FormField`}),Et(`tabs:previous`,()=>{let e=t.indexOf(n);e>0&&(d(h(n,l,t[e-1])),u(c[t[e-1]]??``),m((c[t[e-1]]??``).length))},{context:`FormField`}),Et(`confirm:no`,()=>{d({state:`idle`})},{context:`Confirmation`});let v=ct().columns-20,y=(e,t,r)=>{let i=n===e,a=c[e];return(0,VM.jsxs)(B,{children:[(0,VM.jsx)(z,{backgroundColor:i?`suggestion`:void 0,color:i?`inverseText`:void 0,children:` ${t} `}),(0,VM.jsx)(z,{children:` `}),i?(0,VM.jsx)(zk,{value:l,onChange:u,onSubmit:_,cursorOffset:f,onChangeCursorOffset:m,columns:v,mask:r?.mask?`*`:void 0,focus:!0}):a?(0,VM.jsx)(z,{color:`success`,children:r?.mask?a.slice(0,8)+`·`.repeat(Math.max(0,a.length-8)):a}):null]})};return(0,VM.jsxs)(B,{flexDirection:`column`,gap:1,children:[(0,VM.jsx)(z,{bold:!0,children:`OpenAI Compatible API Setup`}),(0,VM.jsx)(z,{dimColor:!0,children:`Configure an OpenAI Chat Completions compatible endpoint (e.g. Ollama, DeepSeek, vLLM).`}),(0,VM.jsxs)(B,{flexDirection:`column`,gap:1,children:[y(`base_url`,`Base URL `),y(`api_key`,`API Key `,{mask:!0}),y(`haiku_model`,`Haiku `),y(`sonnet_model`,`Sonnet `),y(`opus_model`,`Opus `)]}),(0,VM.jsx)(z,{dimColor:!0,children:`↑↓/Tab to switch · Enter on last field to save · Esc to go back`})]})}case`chatgpt_subscription`:{let t=e,n=(0,BM.useRef)(!1);return(0,BM.useEffect)(()=>{if(n.current)return;n.current=!0;let e=!1,t=new AbortController;async function r(){try{let n=await dBe();if(e||(d({state:`chatgpt_subscription`,phase:`waiting`,deviceCode:n}),eu(n.verificationUrl),await hBe(n,t.signal),e))return;let r={OPENAI_AUTH_MODE:`chatgpt`},{error:i}=Ni(`userSettings`,{modelType:`openai`,env:r});if(i)throw Error(`Failed to save settings. Please try again.`);for(let[e,t]of Object.entries(r))process.env[e]=t;d({state:`success`}),p()}catch(t){if(e)return;d({state:`error`,message:t.message,toRetry:{state:`chatgpt_subscription`,phase:`requesting`}})}}return r(),()=>{e=!0,t.abort()}},[d,p]),(0,VM.jsxs)(B,{flexDirection:`column`,gap:1,children:[(0,VM.jsx)(z,{bold:!0,children:`ChatGPT Account Setup`}),t.phase===`requesting`&&(0,VM.jsxs)(B,{children:[(0,VM.jsx)(PM,{}),(0,VM.jsx)(z,{children:`Requesting sign-in code…`})]}),t.phase===`waiting`&&t.deviceCode&&(0,VM.jsxs)(B,{flexDirection:`column`,gap:1,children:[(0,VM.jsx)(z,{children:`Open this link and sign in with your ChatGPT account:`}),(0,VM.jsx)(ht,{url:t.deviceCode.verificationUrl,children:(0,VM.jsx)(z,{dimColor:!0,children:t.deviceCode.verificationUrl})}),(0,VM.jsxs)(z,{children:[`Enter code: `,(0,VM.jsx)(z,{bold:!0,children:t.deviceCode.userCode})]}),(0,VM.jsxs)(B,{children:[(0,VM.jsx)(PM,{}),(0,VM.jsx)(z,{children:`Waiting for ChatGPT authorization…`})]})]}),(0,VM.jsx)(z,{dimColor:!0,children:`Esc to go back. Device codes expire after 15 minutes.`})]})}case`gemini_api`:{let t=[`base_url`,`api_key`,`haiku_model`,`sonnet_model`,`opus_model`],{activeField:n,baseUrl:r,apiKey:i,haikuModel:a,sonnetModel:o,opusModel:s}=e,c={base_url:r,api_key:i,haiku_model:a,sonnet_model:o,opus_model:s},[l,u]=(0,BM.useState)(()=>c[n]),[f,m]=(0,BM.useState)(()=>c[n].length),h=(0,BM.useCallback)((e,t,c)=>{let l={state:`gemini_api`,activeField:c??n,baseUrl:r,apiKey:i,haikuModel:a,sonnetModel:o,opusModel:s};switch(e){case`base_url`:return{...l,baseUrl:t};case`api_key`:return{...l,apiKey:t};case`haiku_model`:return{...l,haikuModel:t};case`sonnet_model`:return{...l,sonnetModel:t};case`opus_model`:return{...l,opusModel:t}}},[n,r,i,a,o,s]),g=(0,BM.useCallback)(()=>{let e={...c,[n]:l};if(!e.haiku_model||!e.sonnet_model||!e.opus_model){d({state:`error`,message:`Gemini setup requires Haiku, Sonnet, and Opus model names.`,toRetry:{state:`gemini_api`,baseUrl:e.base_url,apiKey:e.api_key,haikuModel:e.haiku_model,sonnetModel:e.sonnet_model,opusModel:e.opus_model,activeField:n}});return}let t={};e.base_url&&(t.GEMINI_BASE_URL=e.base_url),e.api_key&&(t.GEMINI_API_KEY=e.api_key),e.haiku_model&&(t.GEMINI_DEFAULT_HAIKU_MODEL=e.haiku_model),e.sonnet_model&&(t.GEMINI_DEFAULT_SONNET_MODEL=e.sonnet_model),e.opus_model&&(t.GEMINI_DEFAULT_OPUS_MODEL=e.opus_model);let{error:r}=Ni(`userSettings`,{modelType:`gemini`,env:t});if(r)d({state:`error`,message:`Failed to save: ${r.message}`,toRetry:{state:`gemini_api`,baseUrl:``,apiKey:``,haikuModel:``,sonnetModel:``,opusModel:``,activeField:`base_url`}});else{for(let[e,n]of Object.entries(t))process.env[e]=n;d({state:`success`}),p()}},[n,l,c,p,d]),_=(0,BM.useCallback)(()=>{let e=t.indexOf(n);if(e===t.length-1)d(h(n,l)),g();else{let r=t[e+1];d(h(n,l,r)),u(c[r]??``),m((c[r]??``).length)}},[n,h,g,c,l,d]);Et(`tabs:next`,()=>{let e=t.indexOf(n);e<t.length-1&&(d(h(n,l,t[e+1])),u(c[t[e+1]]??``),m((c[t[e+1]]??``).length))},{context:`FormField`}),Et(`tabs:previous`,()=>{let e=t.indexOf(n);e>0&&(d(h(n,l,t[e-1])),u(c[t[e-1]]??``),m((c[t[e-1]]??``).length))},{context:`FormField`}),Et(`confirm:no`,()=>{d({state:`idle`})},{context:`Confirmation`});let v=ct().columns-20,y=(e,t,r)=>{let i=n===e,a=c[e];return(0,VM.jsxs)(B,{children:[(0,VM.jsx)(z,{backgroundColor:i?`suggestion`:void 0,color:i?`inverseText`:void 0,children:` ${t} `}),(0,VM.jsx)(z,{children:` `}),i?(0,VM.jsx)(zk,{value:l,onChange:u,onSubmit:_,cursorOffset:f,onChangeCursorOffset:m,columns:v,mask:r?.mask?`*`:void 0,focus:!0}):a?(0,VM.jsx)(z,{color:`success`,children:r?.mask?a.slice(0,8)+`·`.repeat(Math.max(0,a.length-8)):a}):null]})};return(0,VM.jsxs)(B,{flexDirection:`column`,gap:1,children:[(0,VM.jsx)(z,{bold:!0,children:`Gemini API Setup`}),(0,VM.jsx)(z,{dimColor:!0,children:`Configure a Gemini Generate Content compatible endpoint. Base URL is optional and defaults to Google's v1beta API.`}),(0,VM.jsxs)(B,{flexDirection:`column`,gap:1,children:[y(`base_url`,`Base URL `),y(`api_key`,`API Key `,{mask:!0}),y(`haiku_model`,`Haiku `),y(`sonnet_model`,`Sonnet `),y(`opus_model`,`Opus `)]}),(0,VM.jsx)(z,{dimColor:!0,children:`↑↓/Tab to switch · Enter on last field to save · Esc to go back`})]})}case`platform_setup`:return(0,VM.jsxs)(B,{flexDirection:`column`,gap:1,marginTop:1,children:[(0,VM.jsx)(z,{bold:!0,children:`Using 3rd-party platforms`}),(0,VM.jsxs)(B,{flexDirection:`column`,gap:1,children:[(0,VM.jsx)(z,{children:`Claude Code supports Amazon Bedrock, Microsoft Foundry, and Vertex AI. Set the required environment variables, then restart Claude Code.`}),(0,VM.jsx)(z,{children:`If you are part of an enterprise organization, contact your administrator for setup instructions.`}),(0,VM.jsxs)(B,{flexDirection:`column`,marginTop:1,children:[(0,VM.jsx)(z,{bold:!0,children:`Documentation:`}),(0,VM.jsxs)(z,{children:[`· Amazon Bedrock:`,` `,(0,VM.jsx)(ht,{url:`https://code.claude.com/docs/en/amazon-bedrock`,children:`https://code.claude.com/docs/en/amazon-bedrock`})]}),(0,VM.jsxs)(z,{children:[`· Microsoft Foundry:`,` `,(0,VM.jsx)(ht,{url:`https://code.claude.com/docs/en/microsoft-foundry`,children:`https://code.claude.com/docs/en/microsoft-foundry`})]}),(0,VM.jsxs)(z,{children:[`· Vertex AI:`,` `,(0,VM.jsx)(ht,{url:`https://code.claude.com/docs/en/google-vertex-ai`,children:`https://code.claude.com/docs/en/google-vertex-ai`})]})]}),(0,VM.jsx)(B,{marginTop:1,children:(0,VM.jsxs)(z,{dimColor:!0,children:[`Press `,(0,VM.jsx)(z,{bold:!0,children:`Enter`}),` to go back to login options.`]})})]})]});case`waiting_for_login`:return(0,VM.jsxs)(B,{flexDirection:`column`,gap:1,children:[r&&(0,VM.jsx)(B,{children:(0,VM.jsx)(z,{dimColor:!0,children:r})}),!i&&(0,VM.jsxs)(B,{children:[(0,VM.jsx)(PM,{}),(0,VM.jsx)(z,{children:`Opening browser to sign in…`})]}),i&&(0,VM.jsxs)(B,{children:[(0,VM.jsx)(z,{children:b8e}),(0,VM.jsx)(zk,{value:a,onChange:o,onSubmit:t=>u(t,e.url),cursorOffset:s,onChangeCursorOffset:c,columns:l,mask:`*`})]})]});case`creating_api_key`:return(0,VM.jsx)(B,{flexDirection:`column`,gap:1,children:(0,VM.jsxs)(B,{children:[(0,VM.jsx)(PM,{}),(0,VM.jsx)(z,{children:`Creating API key for Claude Code…`})]})});case`about_to_retry`:return(0,VM.jsx)(B,{flexDirection:`column`,gap:1,children:(0,VM.jsx)(z,{color:`permission`,children:`Retrying…`})});case`success`:return(0,VM.jsx)(B,{flexDirection:`column`,children:t===`setup-token`&&e.token?null:(0,VM.jsxs)(VM.Fragment,{children:[qr()?.emailAddress?(0,VM.jsxs)(z,{dimColor:!0,children:[`Logged in as `,(0,VM.jsx)(z,{children:qr()?.emailAddress})]}):null,(0,VM.jsxs)(z,{color:`success`,children:[`Login successful. Press `,(0,VM.jsx)(z,{bold:!0,children:`Enter`}),` to continue…`]})]})});case`error`:return(0,VM.jsxs)(B,{flexDirection:`column`,gap:1,children:[(0,VM.jsxs)(z,{color:`error`,children:[`OAuth error: `,e.message]}),e.toRetry&&(0,VM.jsx)(B,{marginTop:1,children:(0,VM.jsxs)(z,{color:`permission`,children:[`Press `,(0,VM.jsx)(z,{bold:!0,children:`Enter`}),` to retry.`]})})]});default:return null}}var BM,VM,b8e,x8e=n((()=>{BM=r(R(),1),Ua(),I3e(),kT(),Tt(),ru(),bl(),H3e(),BS(),GS(),Wi(),tu(),Ao(),Gi(),oA(),zM(),Uk(),VM=jt(),b8e=`Paste code here if prompted > `}));function S8e({isDisabled:e=!1,visibleOptionCount:t=5,options:n,defaultValue:r=[],onChange:i,onCancel:a,onFocus:o,focusValue:s,submitButtonText:c,onSubmit:l,onDownFromLastItem:u,onUpFromFirstItem:d,initialFocusLast:f,hideIndexes:p=!1}){let[m,h]=(0,HM.useState)(r),[g,_]=(0,HM.useState)(!1),[v,y]=(0,HM.useState)(n);n!==v&&!pme(n,v)&&(h(r),y(n));let[b,x]=(0,HM.useState)(()=>{let e=new Map;return n.forEach(t=>{t.type===`input`&&t.initialValue&&e.set(t.value,t.initialValue)}),e}),S=(0,HM.useCallback)(e=>{let t=typeof e==`function`?e(m):e;h(t),i?.(t)},[m,i]),C=X0e({visibleOptionCount:t,options:n,initialFocusValue:f?n[n.length-1]?.value:void 0,onFocus:o,focusValue:s});Yk(`multi-select`,void 0);let w=(0,HM.useCallback)((e,t)=>{x(n=>{let r=new Map(n);return r.set(e,t),r});let r=n.find(t=>t.value===e);r&&r.type===`input`&&r.onChange(t),S(n=>t?n.includes(e)?n:[...n,e]:n.filter(t=>t!==e))},[n,S]);return At((e,t,r)=>{let i=qre(e),o=n.find(e=>e.value===C.focusedValue)?.type===`input`;if(o&&!(t.upArrow||t.downArrow||t.escape||t.tab||t.return||t.ctrl&&(e===`n`||e===`p`||t.return)))return;let s=n[n.length-1]?.value;if(t.tab&&!t.shift){c&&l&&C.focusedValue===s&&!g?_(!0):g||C.focusNextOption();return}if(t.tab&&t.shift){c&&l&&g?(_(!1),C.focusOption(s)):C.focusPreviousOption();return}if(t.downArrow||t.ctrl&&e===`n`||!t.ctrl&&!t.shift&&e===`j`){g&&u?u():c&&l&&C.focusedValue===s&&!g?_(!0):!c&&u&&C.focusedValue===s?u():g||C.focusNextOption();return}if(t.upArrow||t.ctrl&&e===`p`||!t.ctrl&&!t.shift&&e===`k`){c&&l&&g?(_(!1),C.focusOption(s)):d&&C.focusedValue===n[0]?.value?d():C.focusPreviousOption();return}if(t.pageDown){C.focusNextPage();return}if(t.pageUp){C.focusPreviousPage();return}if(t.return||Zre(e)===` `){if(t.ctrl&&t.return&&o&&l){l(m);return}if(g&&l){l(m);return}if(t.return&&!c&&l){l(m);return}C.focusedValue!==void 0&&S(m.includes(C.focusedValue)?m.filter(e=>e!==C.focusedValue):[...m,C.focusedValue]);return}if(!p&&/^[0-9]+$/.test(i)){let e=parseInt(i,10)-1;if(e>=0&&e<n.length){let t=n[e].value;S(m.includes(t)?m.filter(e=>e!==t):[...m,t])}return}t.escape&&(a(),r.stopImmediatePropagation())},{isActive:!e}),{...C,selectedValues:m,inputValues:b,isSubmitFocused:g,updateInputValue:w,onCancel:a}}var HM,C8e=n((()=>{HM=r(R(),1),Zk(),Tt(),Di(),Q0e()}));function w8e({isDisabled:e=!1,visibleOptionCount:t=5,options:n,defaultValue:r=[],onCancel:i,onChange:a,onFocus:o,focusValue:s,submitButtonText:c,onSubmit:l,onDownFromLastItem:u,onUpFromFirstItem:d,initialFocusLast:f,onOpenEditor:p,hideIndexes:m=!1,onImagePaste:h,pastedContents:g,onRemoveImage:_}){let v=S8e({isDisabled:e,visibleOptionCount:t,options:n,defaultValue:r,onChange:a,onCancel:i,onFocus:o,focusValue:s,submitButtonText:c,onSubmit:l,onDownFromLastItem:u,onUpFromFirstItem:d,initialFocusLast:f,hideIndexes:m}),y=n.length.toString().length;return(0,UM.jsxs)(B,{flexDirection:`column`,children:[(0,UM.jsx)(B,{flexDirection:`column`,children:v.visibleOptions.map((t,r)=>{let a=!e&&v.focusedValue===t.value&&!v.isSubmitFocused,o=v.selectedValues.includes(t.value),s=t.index===v.visibleFromIndex,c=t.index===v.visibleToIndex-1,l=v.visibleToIndex<n.length,u=v.visibleFromIndex>0,d=v.visibleFromIndex+r+1;if(t.type===`input`){let e=v.inputValues.get(t.value)||``;return(0,UM.jsx)(B,{gap:1,children:(0,UM.jsx)(Kk,{option:t,isFocused:a,isSelected:!1,shouldShowDownArrow:l&&c,shouldShowUpArrow:u&&s,maxIndexWidth:y,index:d,inputValue:e,onInputChange:e=>{v.updateInputValue(t.value,e)},onSubmit:()=>{},onExit:()=>{i()},layout:`compact`,onOpenEditor:p,onImagePaste:h,pastedContents:g,onRemoveImage:_,children:(0,UM.jsxs)(z,{color:o?`success`:void 0,children:[`[`,o?ue.tick:` `,`] `]})})},String(t.value))}return(0,UM.jsx)(B,{gap:1,children:(0,UM.jsxs)(Wk,{isFocused:a,isSelected:!1,shouldShowDownArrow:l&&c,shouldShowUpArrow:u&&s,description:t.description,children:[!m&&(0,UM.jsx)(z,{dimColor:!0,children:`${d}.`.padEnd(y)}),(0,UM.jsxs)(z,{color:o?`success`:void 0,children:[`[`,o?ue.tick:` `,`]`]}),(0,UM.jsx)(z,{color:a?`suggestion`:void 0,children:t.label})]})},String(t.value))})}),c&&l&&(0,UM.jsxs)(B,{marginTop:0,gap:1,children:[v.isSubmitFocused?(0,UM.jsx)(z,{color:`suggestion`,children:ue.pointer}):(0,UM.jsx)(z,{children:` `}),(0,UM.jsx)(B,{marginLeft:3,children:(0,UM.jsx)(z,{color:v.isSubmitFocused?`suggestion`:void 0,bold:!0,children:c})})]})]})}var UM,T8e=n((()=>{N(),R(),Tt(),H0e(),Gk(),C8e(),UM=jt()})),WM=n((()=>{T8e(),oA()}));function E8e({onStashAndContinue:e,onCancel:t}){let[n,r]=(0,GM.useState)(null),i=n===null?[]:[...n.tracked,...n.untracked],[a,o]=(0,GM.useState)(!0),[s,c]=(0,GM.useState)(!1),[l,u]=(0,GM.useState)(null);(0,GM.useEffect)(()=>{(async()=>{try{r(await bse())}catch(e){U(`Error getting changed files: ${e instanceof Error?e.message:String(e)}`,{level:`error`}),u(`Failed to get changed files`)}finally{o(!1)}})()},[]);let d=async()=>{c(!0);try{U(`Stashing changes before teleport...`),await Cse(`Teleport auto-stash`)?(U(`Successfully stashed changes`),e()):u(`Failed to stash changes`)}catch(e){U(`Error stashing changes: ${e instanceof Error?e.message:String(e)}`,{level:`error`}),u(`Failed to stash changes`)}finally{c(!1)}},f=e=>{e===`stash`?d():t()};if(a)return(0,KM.jsx)(B,{flexDirection:`column`,padding:1,children:(0,KM.jsxs)(B,{marginBottom:1,children:[(0,KM.jsx)(PM,{}),(0,KM.jsxs)(z,{children:[` Checking git status`,ue.ellipsis]})]})});if(l)return(0,KM.jsxs)(B,{flexDirection:`column`,padding:1,children:[(0,KM.jsxs)(z,{bold:!0,color:`error`,children:[`Error: `,l]}),(0,KM.jsxs)(B,{marginTop:1,children:[(0,KM.jsx)(z,{dimColor:!0,children:`Press `}),(0,KM.jsx)(z,{bold:!0,children:`Escape`}),(0,KM.jsx)(z,{dimColor:!0,children:` to cancel`})]})]});let p=i.length>8;return(0,KM.jsxs)(bt,{title:`Working Directory Has Changes`,onCancel:t,children:[(0,KM.jsx)(z,{children:`Teleport will switch git branches. The following changes were found:`}),(0,KM.jsx)(B,{flexDirection:`column`,paddingLeft:2,children:i.length>0?p?(0,KM.jsxs)(z,{children:[i.length,` files changed`]}):i.map((e,t)=>(0,KM.jsx)(z,{children:e},t)):(0,KM.jsx)(z,{dimColor:!0,children:`No changes detected`})}),(0,KM.jsx)(z,{children:`Would you like to stash these changes and continue with teleport?`}),s?(0,KM.jsxs)(B,{children:[(0,KM.jsx)(PM,{}),(0,KM.jsx)(z,{children:` Stashing changes...`})]}):(0,KM.jsx)(rA,{options:[{label:`Stash changes and continue`,value:`stash`},{label:`Exit`,value:`exit`}],onChange:f})]})}var GM,KM,D8e=n((()=>{N(),GM=r(R(),1),Tt(),W(),no(),WM(),zM(),KM=jt()}));function O8e({onComplete:e,errorsToIgnore:t=A8e}){let[n,r]=(0,qM.useState)(null),[i,a]=(0,qM.useState)(!1),o=(0,qM.useCallback)(async()=>{let n=await k8e(),i=new Set(Array.from(n).filter(e=>!t.has(e)));if(i.size===0){e();return}i.has(`needsLogin`)?r(`needsLogin`):i.has(`needsGitStash`)&&r(`needsGitStash`)},[e,t]);(0,qM.useEffect)(()=>{o()},[o]);let s=(0,qM.useCallback)(()=>{_S(0)},[]),c=(0,qM.useCallback)(()=>{a(!1),o()},[o]),l=(0,qM.useCallback)(()=>{a(!0)},[a]),u=(0,qM.useCallback)(e=>{e===`login`?l():s()},[l,s]),d=(0,qM.useCallback)(()=>{o()},[o]);if(!n)return null;switch(n){case`needsGitStash`:return(0,JM.jsx)(E8e,{onStashAndContinue:d,onCancel:s});case`needsLogin`:return i?(0,JM.jsx)(v8e,{onDone:c,mode:`login`,forceLoginMethod:`claudeai`}):(0,JM.jsxs)(bt,{title:`Log in to Claude`,onCancel:s,children:[(0,JM.jsxs)(B,{flexDirection:`column`,children:[(0,JM.jsx)(z,{dimColor:!0,children:`Teleport requires a Claude.ai account.`}),(0,JM.jsx)(z,{dimColor:!0,children:`Your Claude Pro/Max subscription will be used by Claude Code.`})]}),(0,JM.jsx)(rA,{options:[{label:`Login with Claude account`,value:`login`},{label:`Exit`,value:`exit`}],onChange:u})]})}}async function k8e(){let e=new Set,[t,n]=await Promise.all([uze(),dze()]);return t&&e.add(`needsLogin`),n||e.add(`needsGitStash`),e}var qM,JM,A8e,j8e=n((()=>{qM=r(R(),1),pS(),CS(),Tt(),x8e(),WM(),D8e(),JM=jt(),A8e=new Set}));function M8e({children:e}){let{addNotification:t,removeNotification:n}=WO();return(0,P8e.jsx)(ate,{loadBindings:Vw,subscribeToChanges:qHe,initWatcher:BHe,onWarnings:(0,N8e.useCallback)((e,r)=>{let i=`keybinding-config-warning`;if(e.length===0){n(i);return}let a=fs(e,e=>e.severity===`error`),o=fs(e,e=>e.severity===`warning`),s;s=a>0&&o>0?`Found ${a} keybinding ${mr(a,`error`)} and ${o} ${mr(o,`warning`)}`:a>0?`Found ${a} keybinding ${mr(a,`error`)}`:`Found ${o} keybinding ${mr(o,`warning`)}`,s+=` · /doctor for details`,t({key:i,text:s,color:a>0?`error`:`warning`,priority:a>0?`immediate`:`high`,timeoutMs:6e4})},[t,n]),onDebugLog:U,children:e})}var N8e,P8e,F8e=n((()=>{N8e=r(R(),1),YO(),Ss(),W(),Di(),Tt(),Yw(),P8e=jt()}));function I8e(e){let t=QM.get(e);return t||(t=Uae(async(t,n,r)=>await L8e(e,t,n,r)),QM.set(e,t)),t}async function L8e(e,t,n,r){for(let i=1;i<=ZM;i++){try{let a=XM.get(e),o={...r};a&&(o[`Last-Uuid`]=a);let s=await Oe.put(n,t,{headers:o,validateStatus:e=>e<500});if(s.status===200||s.status===201)return XM.set(e,t.uuid),U(`Successfully persisted session log entry for session ${e}`),!0;if(s.status===409){let i=s.headers[`x-last-uuid`];if(i===t.uuid)return XM.set(e,t.uuid),U(`Session entry ${t.uuid} already present on server, recovering from stale state`),Ja(`info`,`session_persist_recovered_from_409`),!0;if(i)XM.set(e,i),U(`Session 409: adopting server lastUuid=${i} from header, retrying entry ${t.uuid}`);else{let i=await YM(e,n,r),a=H8e(i);if(a)XM.set(e,a),U(`Session 409: re-fetched ${i.length} entries, adopting lastUuid=${a}, retrying entry ${t.uuid}`);else{let n=s.data.error?.message||`Concurrent modification detected`;return q(Error(`Session persistence conflict: UUID mismatch for session ${e}, entry ${t.uuid}. ${n}`)),Ja(`error`,`session_persist_fail_concurrent_modification`),!1}}Ja(`info`,`session_persist_409_adopt_server_uuid`);continue}if(s.status===401)return U(`Session token expired or invalid`),Ja(`error`,`session_persist_fail_bad_token`),!1;U(`Failed to persist session log: ${s.status} ${s.statusText}`),Ja(`error`,`session_persist_fail_status`,{status:s.status,attempt:i})}catch(e){let t=e;q(Error(`Error persisting session log: ${t.message}`)),Ja(`error`,`session_persist_fail_status`,{status:t.status,attempt:i})}if(i===ZM)return U(`Remote persistence failed after ${ZM} attempts`),Ja(`error`,`session_persist_error_retries_exhausted`,{attempt:i}),!1;let a=Math.min(W8e*2**(i-1),8e3);U(`Remote persistence attempt ${i}/${ZM} failed, retrying in ${a}ms…`),await Hs(a)}return!1}async function R8e(e,t,n){let r=_l();if(!r)return U(`No session token available for session persistence`),Ja(`error`,`session_persist_fail_jwt_no_token`),!1;let i={Authorization:`Bearer ${r}`,"Content-Type":`application/json`};return I8e(e)(t,n,i)}async function z8e(e,t){let n=_l();if(!n)return U(`No session token available for fetching session logs`),Ja(`error`,`session_get_fail_no_token`),null;let r=await YM(e,t,{Authorization:`Bearer ${n}`});if(r&&r.length>0){let t=r.at(-1);t&&`uuid`in t&&t.uuid&&XM.set(e,t.uuid)}return r}async function B8e(e,t,n){let r=`${ro().BASE_API_URL}/v1/session_ingress/session/${e}`;return U(`[session-ingress] Fetching session logs from: ${r}`),await YM(e,r,{...Zl(t),"x-organization-uuid":n})}async function V8e(e,t,n){let r=`${ro().BASE_API_URL}/v1/code/sessions/${e}/teleport-events`,i={...Zl(t),"x-organization-uuid":n};U(`[teleport] Fetching events from: ${r}`);let a=[],o,s=0;for(;s<100;){let t={limit:1e3};o!==void 0&&(t.cursor=o);let n;try{n=await Oe.get(r,{headers:i,params:t,timeout:2e4,validateStatus:e=>e<500})}catch(e){return q(Error(`Teleport events fetch failed: ${e.message}`)),Ja(`error`,`teleport_events_fetch_fail`),null}if(n.status===404)return U(`[teleport] Session ${e} not found (page ${s})`),Ja(`warn`,`teleport_events_not_found`),s===0?null:a;if(n.status===401)throw Ja(`error`,`teleport_events_bad_token`),Error(`Your session has expired. Please run /login to sign in again.`);if(n.status!==200)return q(Error(`Teleport events returned ${n.status}: ${V(n.data)}`)),Ja(`error`,`teleport_events_bad_status`),null;let{data:c,next_cursor:l}=n.data;if(!Array.isArray(c))return q(Error(`Teleport events invalid response shape: ${V(n.data)}`)),Ja(`error`,`teleport_events_invalid_shape`),null;for(let e of c)e.payload!==null&&a.push(e.payload);if(s++,l==null)break;o=l}return s>=100&&(q(Error(`Teleport events hit page cap (100) for ${e}`)),Ja(`warn`,`teleport_events_page_cap`)),U(`[teleport] Fetched ${a.length} events over ${s} page(s) for ${e}`),a}async function YM(e,t,n){try{let r=await Oe.get(t,{headers:n,timeout:2e4,validateStatus:e=>e<500,params:x(process.env.CLAUDE_AFTER_LAST_COMPACT)?{after_last_compact:!0}:void 0});if(r.status===200){let t=r.data;if(!t||typeof t!=`object`||!Array.isArray(t.loglines))return q(Error(`Invalid session logs response format: ${V(t)}`)),Ja(`error`,`session_get_fail_invalid_response`),null;let n=t.loglines;return U(`Fetched ${n.length} session logs for session ${e}`),n}if(r.status===404)return U(`No existing logs for session ${e}`),Ja(`warn`,`session_get_no_logs_for_session`),[];if(r.status===401)throw U(`Auth token expired or invalid`),Ja(`error`,`session_get_fail_bad_token`),Error(`Your session has expired. Please run /login to sign in again.`);return U(`Failed to fetch session logs: ${r.status} ${r.statusText}`),Ja(`error`,`session_get_fail_status`,{status:r.status}),null}catch(e){let t=e;return q(Error(`Error fetching session logs: ${t.message}`)),Ja(`error`,`session_get_fail_status`,{status:t.status}),null}}function H8e(e){if(!e)return;let t=e.findLast(e=>`uuid`in e&&e.uuid);return t&&`uuid`in t?t.uuid:void 0}function U8e(){XM.clear(),QM.clear()}var XM,ZM,W8e,QM,$M=n((()=>{ke(),io(),W(),Ya(),y(),Ao(),Qae(),Nue(),Us(),Va(),Ql(),XM=new Map,ZM=10,W8e=500,QM=new Map}));function eN(){return Kt()?G8e():Tr().fileCheckpointingEnabled!==!1&&!x(process.env.CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING)}function G8e(){return x(process.env.CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING)&&!x(process.env.CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING)}async function tN(e,t,n){if(!eN())return;let r=r5e(t),i;if(e(e=>(i=e,e)),!i)return;let a=i.snapshots.at(-1);if(!a){q(Error(`FileHistory: Missing most recent snapshot`)),G(`tengu_file_history_track_edit_failed`,{});return}if(a.trackedFileBackups[r])return;let o;try{o=await t5e(t,1)}catch(e){q(e),G(`tengu_file_history_track_edit_failed`,{});return}let s=o.backupFileName===null;e(e=>{try{let i=e.snapshots.at(-1);if(!i||i.trackedFileBackups[r])return e;let a=e.trackedFiles.has(r)?e.trackedFiles:new Set(e.trackedFiles).add(r),c={...i,trackedFileBackups:{...i.trackedFileBackups,[r]:o}},l={...e,snapshots:(()=>{let t=e.snapshots.slice();return t[t.length-1]=c,t})(),trackedFiles:a};return k8(n,c,!0).catch(e=>{q(Error(`FileHistory: Failed to record snapshot: ${e}`))}),G(`tengu_file_history_track_edit_success`,{isNewFile:s,version:o.version}),U(`FileHistory: Tracked file modification for ${t}`),l}catch(t){return q(t),G(`tengu_file_history_track_edit_failed`,{}),e}})}async function K8e(e,t){if(!eN())return;let n;if(e(e=>(n=e,e)),!n)return;let r={},i=n.snapshots.at(-1);i&&(U(`FileHistory: Making snapshot for message ${t}`),await Promise.all(Array.from(n.trackedFiles,async e=>{try{let t=aN(e),n=i.trackedFileBackups[e],a=n?n.version+1:1,o;try{o=await xd(t)}catch(e){if(!Oa(e))throw e}if(!o){r[e]={backupFileName:null,version:a,backupTime:new Date},G(`tengu_file_history_backup_deleted_file`,{version:a}),U(`FileHistory: Missing tracked file: ${e}`);return}if(n&&n.backupFileName!==null&&!await nN(t,n.backupFileName,o)){r[e]=n;return}r[e]=await t5e(t,a)}catch(e){q(e),G(`tengu_file_history_backup_file_failed`,{})}}))),e(e=>{try{let n=e.snapshots.at(-1);if(n)for(let t of e.trackedFiles){if(t in r)continue;let e=n.trackedFileBackups[t];e&&(r[t]=e)}let i={messageId:t,trackedFileBackups:r,timestamp:new Date},a=[...e.snapshots,i],o={...e,snapshots:a.length>sN?a.slice(-sN):a,snapshotSequence:(e.snapshotSequence??0)+1};return o5e(e,o).catch(q),k8(t,i,!1).catch(e=>{q(Error(`FileHistory: Failed to record snapshot: ${e}`))}),U(`FileHistory: Added snapshot for ${t}, tracking ${e.trackedFiles.size} files`),G(`tengu_file_history_snapshot_success`,{trackedFilesCount:e.trackedFiles.size,snapshotCount:o.snapshots.length}),o}catch(t){return q(t),G(`tengu_file_history_snapshot_failed`,{}),e}})}async function q8e(e,t){if(!eN())return;let n;if(e(e=>(n=e,e)),!n)return;let r=n.snapshots.findLast(e=>e.messageId===t);if(!r)throw q(Error(`FileHistory: Snapshot for ${t} not found`)),G(`tengu_file_history_rewind_failed`,{trackedFilesCount:n.trackedFiles.size,snapshotFound:!1}),Error(`The selected snapshot was not found`);try{U(`FileHistory: [Rewind] Rewinding to snapshot for ${t}`);let e=await Z8e(n,r);U(`FileHistory: [Rewind] Finished rewinding to ${t}`),G(`tengu_file_history_rewind_success`,{trackedFilesCount:n.trackedFiles.size,filesChangedCount:e.length})}catch(e){throw q(e),G(`tengu_file_history_rewind_failed`,{trackedFilesCount:n.trackedFiles.size,snapshotFound:!0}),e}}function J8e(e,t){return eN()?e.snapshots.some(e=>e.messageId===t):!1}async function Y8e(e,t){if(!eN())return;let n=e.snapshots.findLast(e=>e.messageId===t);if(!n)return;let r=await Promise.all(Array.from(e.trackedFiles,async t=>{try{let r=aN(t),i=n.trackedFileBackups[t],a=i?i.backupFileName:iN(t,e);if(a===void 0)return q(Error(`FileHistory: Error finding the backup file to apply`)),G(`tengu_file_history_rewind_restore_file_failed`,{dryRun:!0}),null;let o=await $8e(r,a===null?void 0:a);return o?.insertions||o?.deletions||a===null&&await Qr(r)?{filePath:r,stats:o}:null}catch(e){return q(e),G(`tengu_file_history_rewind_restore_file_failed`,{dryRun:!0}),null}})),i=[],a=0,o=0;for(let e of r)e&&(i.push(e.filePath),a+=e.stats?.insertions||0,o+=e.stats?.deletions||0);return{filesChanged:i,insertions:a,deletions:o}}async function X8e(e,t){if(!eN())return!1;let n=e.snapshots.findLast(e=>e.messageId===t);if(!n)return!1;for(let t of e.trackedFiles)try{let r=aN(t),i=n.trackedFileBackups[t],a=i?i.backupFileName:iN(t,e);if(a===void 0)continue;if(a===null){if(await Qr(r))return!0;continue}if(await nN(r,a))return!0}catch(e){q(e)}return!1}async function Z8e(e,t){let n=[];for(let r of e.trackedFiles)try{let i=aN(r),a=t.trackedFileBackups[r],o=a?a.backupFileName:iN(r,e);if(o===void 0){q(Error(`FileHistory: Error finding the backup file to apply`)),G(`tengu_file_history_rewind_restore_file_failed`,{dryRun:!1});continue}if(o===null){try{await Cd(i),U(`FileHistory: [Rewind] Deleted ${i}`),n.push(i)}catch(e){if(!Oa(e))throw e}continue}await nN(i,o)&&(await n5e(i,o),U(`FileHistory: [Rewind] Restored ${i} from ${o}`),n.push(i))}catch(e){q(e),G(`tengu_file_history_rewind_restore_file_failed`,{dryRun:!1})}return n}async function nN(e,t,n){let r=rN(t),i=n??null;if(!i)try{i=await xd(e)}catch(e){if(!Oa(e))return!0}let a=null;try{a=await xd(r)}catch(e){if(!Oa(e))return!0}return Q8e(i,a,async()=>{try{let[t,n]=await Promise.all([hd(e,`utf-8`),hd(r,`utf-8`)]);return t!==n}catch{return!0}})}function Q8e(e,t,n){return e===null==(t===null)?e===null||t===null?!1:e.mode!==t.mode||e.size!==t.size?!0:e.mtimeMs<t.mtimeMs?!1:n():!0}async function $8e(e,t){let n=[],r=0,i=0;try{let a=t?rN(t):void 0,[o,s]=await Promise.all([oN(e),a?oN(a):null]);if(o===null&&s===null)return{filesChanged:n,insertions:r,deletions:i};n.push(e),Ah(o??``,s??``).forEach(e=>{e.added&&(r+=e.count||0),e.removed&&(i+=e.count||0)})}catch(e){q(Error(`FileHistory: Error generating diffStats: ${e}`))}return{filesChanged:n,insertions:r,deletions:i}}function e5e(e,t){return`${id(`sha256`).update(e).digest(`hex`).slice(0,16)}@v${t}`}function rN(e,t){return Y(_(),`file-history`,t||Ft(),e)}async function t5e(e,t){if(e===null)return{backupFileName:null,version:t,backupTime:new Date};let n=e5e(e,t),r=rN(n),i;try{i=await xd(e)}catch(e){if(Oa(e))return{backupFileName:null,version:t,backupTime:new Date};throw e}try{await dd(e,r)}catch(t){if(!Oa(t))throw t;await pd(Eu(r),{recursive:!0}),await dd(e,r)}return await ud(r,i.mode),G(`tengu_file_history_backup_file_created`,{version:t,fileSize:i.size}),{backupFileName:n,version:t,backupTime:new Date}}async function n5e(e,t){let n=rN(t),r;try{r=await xd(n)}catch(e){if(Oa(e)){G(`tengu_file_history_rewind_restore_file_failed`,{}),q(Error(`FileHistory: [Rewind] Backup file not found: ${n}`));return}throw e}try{await dd(n,e)}catch(t){if(!Oa(t))throw t;await pd(Eu(e),{recursive:!0}),await dd(n,e)}await ud(e,r.mode)}function iN(e,t){for(let n of t.snapshots){let t=n.trackedFileBackups[e];if(t!==void 0&&t.version===1)return t.backupFileName}}function r5e(e){if(!Ou(e))return e;let t=fn();return e.startsWith(t)?Mu(t,e):e}function aN(e){return Ou(e)?e:Y(fn(),e)}function i5e(e,t){if(!eN())return;let n=[],r=new Set;for(let t of e){let e={};for(let[n,i]of Object.entries(t.trackedFileBackups)){let t=r5e(n);r.add(t),e[t]=i}n.push({...t,trackedFileBackups:e})}t({snapshots:n,trackedFiles:r,snapshotSequence:n.length})}async function a5e(e){if(!eN())return;let t=e.fileHistorySnapshots;if(!t||e.messages.length===0)return;let n=e.messages[e.messages.length-1]?.sessionId;if(!n){q(Error(`FileHistory: Failed to copy backups on restore (no previous session id)`));return}let r=Ft();if(n===r){U(`FileHistory: No need to copy file history for resuming with same session id: ${r}`);return}try{let e=Y(_(),`file-history`,r);await pd(e,{recursive:!0});let i=0;await Promise.allSettled(t.map(async t=>{let a=Object.values(t.trackedFileBackups).filter(e=>e.backupFileName!==null);(await Promise.allSettled(a.map(async({backupFileName:t})=>{let i=rN(t,n),a=Y(e,t);try{await fd(i,a)}catch(e){let r=Ea(e);if(r===`EEXIST`)return;if(r===`ENOENT`)throw q(Error(`FileHistory: Failed to copy backup ${t} on restore (backup file does not exist in ${n})`)),e;q(Error(`FileHistory: Error hard linking backup file from previous session`));try{await dd(i,a)}catch(e){throw q(Error(`FileHistory: Error copying over backup from previous session`)),e}}U(`FileHistory: Copied backup ${t} from session ${n} to ${r}`)}))).some(e=>e.status===`rejected`)?i++:k8(t.messageId,t,!1).catch(e=>{q(Error(`FileHistory: Failed to record copy backup snapshot`))})})),i>0&&G(`tengu_file_history_resume_copy_failed`,{numSnapshots:t.length,failedSnapshots:i})}catch(e){q(e)}}async function o5e(e,t){let n=e.snapshots.at(-1),r=t.snapshots.at(-1);if(r)for(let e of t.trackedFiles){let t=aN(e),i=n?.trackedFileBackups[e],a=r.trackedFileBackups[e];if(i?.backupFileName===a?.backupFileName&&i?.version===a?.version)continue;let o=null;i?.backupFileName&&(o=await oN(rN(i.backupFileName)));let s=null;a?.backupFileName&&(s=await oN(rN(a.backupFileName))),o!==s&&Jy(t,o,s)}}async function oN(e){try{return await hd(e,`utf-8`)}catch{return null}}var sN,cN=n((()=>{Fh(),tn(),Ua(),Xy(),xn(),W(),y(),ka(),pi(),Ao(),h5(),sN=20}));function s5e(){let e=process.env.CLAUDE_CODE_ENVIRONMENT_KIND;return e===`byoc`||e===`anthropic_cloud`?e:null}var c5e=n((()=>{W()}));function l5e(e){return ad(4).readUInt32BE(0)%e}function lN(e){return e[l5e(e.length)]}function u5e(){return`${lN(uN)}-${lN(f5e)}-${lN(dN)}`}function d5e(){return`${lN(uN)}-${lN(dN)}`}var uN,dN,f5e,fN=n((()=>{uN=`abundant.ancient.bright.calm.cheerful.clever.cozy.curious.dapper.dazzling.deep.delightful.eager.elegant.enchanted.fancy.fluffy.gentle.gleaming.golden.graceful.happy.hidden.humble.jolly.joyful.keen.kind.lively.lovely.lucky.luminous.magical.majestic.mellow.merry.mighty.misty.noble.peaceful.playful.polished.precious.proud.quiet.quirky.radiant.rosy.serene.shiny.silly.sleepy.smooth.snazzy.snug.snuggly.soft.sparkling.spicy.splendid.sprightly.starry.steady.sunny.swift.tender.tidy.toasty.tranquil.twinkly.valiant.vast.velvet.vivid.warm.whimsical.wild.wise.witty.wondrous.zany.zesty.zippy.breezy.bubbly.buzzing.cheeky.cosmic.cozy.crispy.crystalline.cuddly.drifting.dreamy.effervescent.ethereal.fizzy.flickering.floating.floofy.fluttering.foamy.frolicking.fuzzy.giggly.glimmering.glistening.glittery.glowing.goofy.groovy.harmonic.hazy.humming.iridescent.jaunty.jazzy.jiggly.melodic.moonlit.mossy.nifty.peppy.prancy.purrfect.purring.quizzical.rippling.rustling.shimmering.shimmying.snappy.snoopy.squishy.swirling.ticklish.tingly.twinkling.velvety.wiggly.wobbly.woolly.zazzy.abstract.adaptive.agile.async.atomic.binary.cached.compiled.composed.compressed.concurrent.cryptic.curried.declarative.delegated.distributed.dynamic.eager.elegant.encapsulated.enumerated.eventual.expressive.federated.functional.generic.greedy.hashed.idempotent.immutable.imperative.indexed.inherited.iterative.lazy.lexical.linear.linked.logical.memoized.modular.mutable.nested.optimized.parallel.parsed.partitioned.piped.polymorphic.pure.reactive.recursive.refactored.reflective.replicated.resilient.robust.scalable.sequential.serialized.sharded.sorted.staged.stateful.stateless.streamed.structured.synchronous.synthetic.temporal.transient.typed.unified.validated.vectorized.virtual`.split(`.`),dN=`aurora.avalanche.blossom.breeze.brook.bubble.canyon.cascade.cloud.clover.comet.coral.cosmos.creek.crescent.crystal.dawn.dewdrop.dusk.eclipse.ember.feather.fern.firefly.flame.flurry.fog.forest.frost.galaxy.garden.glacier.glade.grove.harbor.horizon.island.lagoon.lake.leaf.lightning.meadow.meteor.mist.moon.moonbeam.mountain.nebula.nova.ocean.orbit.pebble.petal.pine.planet.pond.puddle.quasar.rain.rainbow.reef.ripple.river.shore.sky.snowflake.spark.spring.star.stardust.starlight.storm.stream.summit.sun.sunbeam.sunrise.sunset.thunder.tide.twilight.valley.volcano.waterfall.wave.willow.wind.alpaca.axolotl.badger.bear.beaver.bee.bird.bumblebee.bunny.cat.chipmunk.crab.crane.deer.dolphin.dove.dragon.dragonfly.duckling.eagle.elephant.falcon.finch.flamingo.fox.frog.giraffe.goose.hamster.hare.hedgehog.hippo.hummingbird.jellyfish.kitten.koala.ladybug.lark.lemur.llama.lobster.lynx.manatee.meerkat.moth.narwhal.newt.octopus.otter.owl.panda.parrot.peacock.pelican.penguin.phoenix.piglet.platypus.pony.porcupine.puffin.puppy.quail.quokka.rabbit.raccoon.raven.robin.salamander.seahorse.seal.sloth.snail.sparrow.sphinx.squid.squirrel.starfish.swan.tiger.toucan.turtle.unicorn.walrus.whale.wolf.wombat.wren.yeti.zebra.acorn.anchor.balloon.beacon.biscuit.blanket.bonbon.book.boot.cake.candle.candy.castle.charm.clock.cocoa.cookie.crayon.crown.cupcake.donut.dream.fairy.fiddle.flask.flute.fountain.gadget.gem.gizmo.globe.goblet.hammock.harp.haven.hearth.honey.journal.kazoo.kettle.key.kite.lantern.lemon.lighthouse.locket.lollipop.mango.map.marble.marshmallow.melody.mitten.mochi.muffin.music.nest.noodle.oasis.origami.pancake.parasol.peach.pearl.pebble.pie.pillow.pinwheel.pixel.pizza.plum.popcorn.pretzel.prism.pudding.pumpkin.puzzle.quiche.quill.quilt.riddle.rocket.rose.scone.scroll.shell.sketch.snowglobe.sonnet.sparkle.spindle.sprout.sundae.swing.taco.teacup.teapot.thimble.toast.token.tome.tower.treasure.treehouse.trinket.truffle.tulip.umbrella.waffle.wand.whisper.whistle.widget.wreath.zephyr.abelson.adleman.aho.allen.babbage.bachman.backus.barto.bengio.bentley.blum.boole.brooks.catmull.cerf.cherny.church.clarke.cocke.codd.conway.cook.corbato.cray.curry.dahl.diffie.dijkstra.dongarra.eich.emerson.engelbart.feigenbaum.floyd.gosling.graham.gray.hamming.hanrahan.hartmanis.hejlsberg.hellman.hennessy.hickey.hinton.hoare.hollerith.hopcroft.hopper.iverson.kahan.kahn.karp.kay.kernighan.knuth.kurzweil.lamport.lampson.lecun.lerdorf.liskov.lovelace.matsumoto.mccarthy.metcalfe.micali.milner.minsky.moler.moore.naur.neumann.newell.nygaard.papert.parnas.pascal.patterson.pearl.perlis.pike.pnueli.rabin.reddy.ritchie.rivest.rossum.russell.scott.sedgewick.shamir.shannon.sifakis.simon.stallman.stearns.steele.stonebraker.stroustrup.sutherland.sutton.tarjan.thacker.thompson.torvalds.turing.ullman.valiant.wadler.wall.wigderson.wilkes.wilkinson.wirth.wozniak.yao`.split(`.`),f5e=`baking.beaming.booping.bouncing.brewing.bubbling.chasing.churning.coalescing.conjuring.cooking.crafting.crunching.cuddling.dancing.dazzling.discovering.doodling.dreaming.drifting.enchanting.exploring.finding.floating.fluttering.foraging.forging.frolicking.gathering.giggling.gliding.greeting.growing.hatching.herding.honking.hopping.hugging.humming.imagining.inventing.jingling.juggling.jumping.kindling.knitting.launching.leaping.mapping.marinating.meandering.mixing.moseying.munching.napping.nibbling.noodling.orbiting.painting.percolating.petting.plotting.pondering.popping.prancing.purring.puzzling.questing.riding.roaming.rolling.sauteeing.scribbling.seeking.shimmying.singing.skipping.sleeping.snacking.sniffing.snuggling.soaring.sparking.spinning.splashing.sprouting.squishing.stargazing.stirring.strolling.swimming.swinging.tickling.tinkering.toasting.tumbling.twirling.waddling.wandering.watching.weaving.whistling.wibbling.wiggling.wishing.wobbling.wondering.yawning.zooming`.split(`.`)}));function pN(e){let t=e??Ft(),n=nn().get(t);if(!n){let e=gN();for(let t=0;t<x5e;t++){n=u5e();let t=Y(e,`${n}.md`);if(!za().existsSync(t))break}Ine(t,n)}return n}function p5e(e,t){Ine(e,t)}function m5e(){nn().clear()}function mN(e){let t=pN(Ft());return e?Y(gN(),`${t}-agent-${e}.md`):Y(gN(),`${t}.md`)}function hN(e){let t=mN(e);try{return za().readFileSync(t,{encoding:`utf-8`})}catch(e){return Oa(e)||q(e),null}}function h5e(e){return e.messages.find(e=>e.slug)?.slug}async function g5e(e,t){let n=h5e(e);if(!n)return!1;p5e(t??Ft(),n);let r=Y(gN(),`${n}.md`);try{return await za().readFile(r,{encoding:`utf-8`}),!0}catch(t){if(!Oa(t))return q(t),!1;if(s5e()===null)return!1;U(`Plan file missing during resume: ${r}. Attempting recovery.`);let n=y5e(e.messages,`plan`),i=null;if(n&&n.content.length>0?(i=n.content,U(`Plan recovered from file snapshot, ${i.length} chars`,{level:`info`})):(i=v5e(e),i&&U(`Plan recovered from message history, ${i.length} chars`,{level:`info`})),i)try{return await wd(r,i,{encoding:`utf-8`}),!0}catch(e){return q(e),!1}return U(`Plan file recovery failed: no file snapshot or plan content found in message history`),!1}}async function _5e(e,t){let n=h5e(e);if(!n)return!1;let r=gN(),i=Y(r,`${n}.md`),a=Y(r,`${pN(t)}.md`);try{return await dd(i,a),!0}catch(e){return Oa(e)||q(e),!1}}function v5e(e){for(let t=e.messages.length-1;t>=0;t--){let n=e.messages[t];if(n){if(n.type===`assistant`){let{content:e}=n.message;if(Array.isArray(e)){for(let t of e)if(t.type===`tool_use`&&t.name===`ExitPlanMode`){let e=t.input?.plan;if(typeof e==`string`&&e.length>0)return e}}}if(n.type===`user`){let e=n;if(typeof e.planContent==`string`&&e.planContent.length>0)return e.planContent}if(n.type===`attachment`){let e=n;if(e.attachment?.type===`plan_file_reference`){let t=e.attachment.planContent;if(typeof t==`string`&&t.length>0)return t}}}}return null}function y5e(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if(r?.type===`system`&&`subtype`in r&&r.subtype===`file_snapshot`&&`snapshotFiles`in r)return r.snapshotFiles.find(e=>e.key===t)}}async function b5e(){if(s5e()!==null)try{let e=[],t=hN();if(t&&e.push({key:`plan`,path:mN(),content:t}),e.length===0)return;let n={type:`system`,subtype:`file_snapshot`,content:`File snapshot`,level:`info`,isMeta:!0,timestamp:new Date().toISOString(),uuid:od(),snapshotFiles:e},{recordTranscript:r}=await import(`./sessionStorage-CFfMypMQ.js`);await r([n])}catch(e){q(e)}}var x5e,gN,_N=n((()=>{l(),tn(),Jc(),Wa(),W(),y(),ka(),c5e(),Fa(),Ao(),Gi(),fN(),x5e=10,gN=c(function(){let e=Qn().plansDirectory,t;if(e){let n=Ga(),r=Nu(n,e);!r.startsWith(n+Pu)&&r!==n?(q(Error(`plansDirectory must be within project root: ${e}`)),t=Y(_(),`plans`)):t=r}else t=Y(_(),`plans`);try{za().mkdirSync(t)}catch(e){q(e)}return t})}));async function vN(){let e=Y(_(),`session-env`,Ft());return await pd(e,{recursive:!0}),e}async function S5e(e,t){let n=e.toLowerCase();return Y(await vN(),`${n}-hook-${t}.sh`)}async function C5e(){try{let e=await vN(),t=await gd(e);await Promise.all(t.filter(e=>(e.startsWith(`filechanged-hook-`)||e.startsWith(`cwdchanged-hook-`))&&SN.test(e)).map(t=>wd(Y(e,t),``)))}catch(e){Ea(e)!==`ENOENT`&&U(`Failed to clear cwd env files: ${H(e)}`)}}function yN(){U(`Invalidating session environment cache`),bN=void 0}async function w5e(){if(No()===`windows`)return U(`Session environment not yet supported on Windows`),null;if(bN!==void 0)return bN;let e=[],t=process.env.CLAUDE_ENV_FILE;if(t)try{let n=(await hd(t,`utf8`)).trim();n&&(e.push(n),U(`Session environment loaded from CLAUDE_ENV_FILE: ${t} (${n.length} chars)`))}catch(e){Ea(e)!==`ENOENT`&&U(`Failed to read CLAUDE_ENV_FILE: ${H(e)}`)}let n=await vN();try{let t=(await gd(n)).filter(e=>SN.test(e)).sort(T5e);for(let r of t){let t=Y(n,r);try{let n=(await hd(t,`utf8`)).trim();n&&e.push(n)}catch(e){Ea(e)!==`ENOENT`&&U(`Failed to read hook file ${t}: ${H(e)}`)}}t.length>0&&U(`Session environment loaded from ${t.length} hook file(s)`)}catch(e){Ea(e)!==`ENOENT`&&U(`Failed to load session environment from hooks: ${H(e)}`)}return e.length===0?(U(`No session environment scripts found`),bN=null,bN):(bN=e.join(`
|
|
954
954
|
`),U(`Session environment script ready (${bN.length} chars total)`),bN)}function T5e(e,t){let n=e.match(SN),r=t.match(SN),i=n?.[1]||``,a=r?.[1]||``;return i===a?parseInt(n?.[2]||`0`,10)-parseInt(r?.[2]||`0`,10):(xN[i]??99)-(xN[a]??99)}var bN,xN,SN,CN=n((()=>{tn(),W(),y(),ka(),Po(),xN={setup:0,sessionstart:1,cwdchanged:2,filechanged:3},SN=/^(setup|sessionstart|cwdchanged|filechanged)-hook-(\d+)\.sh$/}));function E5e(e){jN=e}function D5e(e){if(kN)return;kN=!0,EN=e;let t=jO();AN=(t?.CwdChanged?.length??0)>0||(t?.FileChanged?.length??0)>0,AN&&ja(async()=>N5e());let n=O5e(t);n.length!==0&&k5e(n)}function O5e(e){let t=(e??jO())?.FileChanged??[],n=[];for(let e of t)if(e.matcher)for(let t of e.matcher.split(`|`).map(e=>e.trim()))t&&n.push(Ou(t)?t:Y(EN,t));return[...new Set([...n,...DN])]}function k5e(e){U(`FileChanged: watching ${e.length} paths`),TN=je.watch(e,{persistent:!0,ignoreInitial:!0,awaitWriteFinish:{stabilityThreshold:500,pollInterval:200},ignorePermissionErrors:!0}),TN.on(`change`,e=>wN(e,`change`)),TN.on(`add`,e=>wN(e,`add`)),TN.on(`unlink`,e=>wN(e,`unlink`))}function wN(e,t){U(`FileChanged: ${t} ${e}`),H5t(e,t).then(({results:e,watchPaths:t,systemMessages:n})=>{t.length>0&&A5e(t);for(let e of n)jN?.(e,!1);for(let t of e)!t.succeeded&&t.output&&jN?.(t.output,!0)}).catch(e=>{let t=H(e);U(`FileChanged hook failed: ${t}`,{level:`error`}),jN?.(t,!0)})}function A5e(e){if(!kN)return;let t=e.slice().sort();t.length===ON.length&&t.every((e,t)=>e===ON[t])||(DN=e,ON=t,j5e())}function j5e(){TN&&(TN.close(),TN=null);let e=O5e();e.length>0&&k5e(e)}async function M5e(e,t){if(e===t)return;let n=jO();if(!((n?.CwdChanged?.length??0)>0||(n?.FileChanged?.length??0)>0))return;EN=t,await C5e();let r=await V5t(e,t).catch(e=>{let t=H(e);return U(`CwdChanged hook failed: ${t}`,{level:`error`}),jN?.(t,!0),{results:[],watchPaths:[],systemMessages:[]}});DN=r.watchPaths,ON=r.watchPaths.slice().sort();for(let e of r.systemMessages)jN?.(e,!1);for(let e of r.results)!e.succeeded&&e.output&&jN?.(e.output,!0);kN&&j5e()}function N5e(){TN&&(TN.close(),TN=null),DN=[],ON=[],kN=!1,AN=!1,jN=null}var TN,EN,DN,ON,kN,AN,jN,MN=n((()=>{Ae(),Ma(),W(),ka(),G7(),CN(),NO(),TN=null,DN=[],ON=[],kN=!1,AN=!1,jN=null}));function P5e(e){let t={PreToolUse:[],PostToolUse:[],PostToolUseFailure:[],PermissionDenied:[],Notification:[],UserPromptSubmit:[],SessionStart:[],SessionEnd:[],Stop:[],StopFailure:[],SubagentStart:[],SubagentStop:[],PreCompact:[],PostCompact:[],PermissionRequest:[],Setup:[],TeammateIdle:[],TaskCreated:[],TaskCompleted:[],Elicitation:[],ElicitationResult:[],ConfigChange:[],WorktreeCreate:[],WorktreeRemove:[],InstructionsLoaded:[],CwdChanged:[],FileChanged:[]};if(!e.hooksConfig)return t;for(let[n,r]of Object.entries(e.hooksConfig)){let i=n;if(t[i])for(let n of r??[])n.hooks.length>0&&t[i].push({matcher:n.matcher,hooks:n.hooks,pluginRoot:e.path,pluginName:e.name,pluginId:e.source})}return t}function NN(){LN.cache?.clear?.()}async function F5e(){if(!sn())return;let{enabled:e}=await U2(),t=new Set(e.map(e=>e.path)),n=sn();if(!n)return;let r={};for(let[e,i]of Object.entries(n)){let n=(i??[]).filter(e=>`pluginRoot`in e&&t.has(e.pluginRoot));n.length>0&&(r[e]=n)}ine(),$t(r)}function PN(){let e=zi(),t=_r(`policySettings`),n=e=>e?Object.fromEntries(Object.entries(e).sort()):{};return V({enabledPlugins:n(e.enabledPlugins),extraKnownMarketplaces:n(e.extraKnownMarketplaces),strictKnownMarketplaces:t?.strictKnownMarketplaces??[],blockedMarketplaces:t?.blockedMarketplaces??[]})}function I5e(){FN||(FN=!0,IN=PN(),lm.subscribe(e=>{if(e===`policySettings`){let e=PN();if(e===IN){U(`Plugin hooks: skipping reload, plugin-affecting settings unchanged`);return}IN=e,U(`Plugin hooks: reloading due to plugin-affecting settings change`),V2(`loadPluginHooks: plugin-affecting settings changed`),NN(),LN()}}))}var FN,IN,LN,RN=n((()=>{l(),tn(),W(),um(),Gi(),Va(),W2(),FN=!1,LN=c(async()=>{let{enabled:e}=await U2(),t={PreToolUse:[],PostToolUse:[],PostToolUseFailure:[],PermissionDenied:[],Notification:[],UserPromptSubmit:[],SessionStart:[],SessionEnd:[],Stop:[],StopFailure:[],SubagentStart:[],SubagentStop:[],PreCompact:[],PostCompact:[],PermissionRequest:[],Setup:[],TeammateIdle:[],TaskCreated:[],TaskCompleted:[],Elicitation:[],ElicitationResult:[],ConfigChange:[],WorktreeCreate:[],WorktreeRemove:[],InstructionsLoaded:[],CwdChanged:[],FileChanged:[]};for(let n of e){if(!n.hooksConfig)continue;U(`Loading hooks from plugin: ${n.name}`);let e=P5e(n);for(let n of Object.keys(e))t[n].push(...e[n])}ine(),$t(t),U(`Registered ${Object.values(t).reduce((e,t)=>e+t.reduce((e,t)=>e+t.hooks.length,0),0)} hooks from ${e.length} plugins`)})}));function L5e(){let e=BN;return BN=void 0,e}async function zN(e,{sessionId:t,agentType:n,model:r,forceSyncExecution:i}={}){if(d())return[];let a=[],o=[],s=[];if(OO())U(`Skipping plugin hooks - allowManagedHooksOnly is enabled`);else try{await pse(`load_plugin_hooks`,()=>LN())}catch(t){let n=t instanceof Error?Error(`Failed to load plugin hooks during ${e}: ${t.message}`):Error(`Failed to load plugin hooks during ${e}: ${String(t)}`);t instanceof Error&&t.stack&&(n.stack=t.stack),q(n);let r=t instanceof Error?t.message:String(t),i=``;i=r.includes(`Failed to clone`)||r.includes(`network`)||r.includes(`ETIMEDOUT`)||r.includes(`ENOTFOUND`)?`This appears to be a network issue. Check your internet connection and try again.`:r.includes(`Permission denied`)||r.includes(`EACCES`)||r.includes(`EPERM`)?`This appears to be a permissions issue. Check file permissions on ~/.claude/plugins/`:r.includes(`Invalid`)||r.includes(`parse`)||r.includes(`JSON`)||r.includes(`schema`)?`This appears to be a configuration issue. Check your plugin settings in .claude/settings.json`:`Please fix the plugin configuration or remove problematic plugins from your settings.`,U(`Warning: Failed to load plugin hooks. SessionStart hooks from plugins will not execute. Error: ${r}. ${i}`,{level:`warn`})}let c=n??Pne();for await(let n of M5t(e,t,c,r,void 0,void 0,i))n.message&&a.push(n.message),n.additionalContexts&&n.additionalContexts.length>0&&o.push(...n.additionalContexts),n.initialUserMessage&&(BN=n.initialUserMessage),n.watchPaths&&n.watchPaths.length>0&&s.push(...n.watchPaths);if(s.length>0&&A5e(s),o.length>0){let e=u0({type:`hook_additional_context`,content:o,hookName:`SessionStart`,toolUseID:`SessionStart`,hookEvent:`SessionStart`});a.push(e)}return a}async function R5e(e,{forceSyncExecution:t}={}){if(d())return[];let n=[],r=[];if(OO())U(`Skipping plugin hooks - allowManagedHooksOnly is enabled`);else try{await LN()}catch(e){U(`Warning: Failed to load plugin hooks. Setup hooks from plugins will not execute. Error: ${e instanceof Error?e.message:String(e)}`,{level:`warn`})}for await(let i of N5t(e,void 0,void 0,t))i.message&&n.push(i.message),i.additionalContexts&&i.additionalContexts.length>0&&r.push(...i.additionalContexts);if(r.length>0){let e=u0({type:`hook_additional_context`,content:r,hookName:`Setup`,toolUseID:`Setup`,hookEvent:`Setup`});n.push(e)}return n}var BN,VN=n((()=>{tn(),w0(),W(),Ya(),y(),MN(),NO(),G7(),Ao(),RN()})),z5e=i({SEND_USER_FILE_TOOL_NAME:()=>HN}),HN,UN=n((()=>{HN=`SendUserFile`}));function B5e(e){if(e.type!==`attachment`)return e;let t=e.attachment;if(t.type===`new_file`)return{...e,attachment:{...t,type:`file`,displayPath:Mu(Ga(),t.filename)}};if(t.type===`new_directory`)return{...e,attachment:{...t,type:`directory`,displayPath:Mu(Ga(),t.path)}};if(!(`displayPath`in t)){let n=`filename`in t?t.filename:`path`in t?t.path:`skillDir`in t?t.skillDir:void 0;if(n)return{...e,attachment:{...t,displayPath:Mu(Ga(),n)}}}return e}function V5e(e){return H5e(e).messages}function H5e(e){try{let t=e.map(B5e),n=new Set(Is);for(let e of t)e.type===`user`&&e.permissionMode!==void 0&&!n.has(e.permissionMode)&&(e.permissionMode=void 0);let r=H4(U4(iYt(t))),i=U5e(r),a;if(i.kind===`interrupted_turn`){let[e]=g4([d4({content:`Continue from where you left off.`,isMeta:!0})]);r.push(e),a={kind:`interrupted_prompt`,message:e}}else a=i;let o=r.findLastIndex(e=>e.type!==`system`&&e.type!==`progress`);return o!==-1&&r[o].type===`user`&&r.splice(o+1,0,l4({content:Q4})),{messages:r,turnInterruptionState:a}}catch(e){throw q(e),e}}function U5e(e){if(e.length===0)return{kind:`none`};let t=e.findLastIndex(e=>e.type!==`system`&&e.type!==`progress`&&!(e.type===`assistant`&&e.isApiErrorMessage)),n=t===-1?void 0:e[t];return!n||n.type===`assistant`?{kind:`none`}:n.type===`user`?n.isMeta||n.isCompactSummary?{kind:`none`}:PJt(n)?W5e(n,e,t)?{kind:`none`}:{kind:`interrupted_turn`}:{kind:`interrupted_prompt`,message:n}:n.type===`attachment`?{kind:`interrupted_turn`}:{kind:`none`}}function W5e(e,t,n){let r=e.message.content;if(!Array.isArray(r))return!1;let i=r[0];if(i?.type!==`tool_result`)return!1;let a=i.tool_use_id;for(let e=n-1;e>=0;e--){let n=t[e];if(n.type!==`assistant`)continue;let r=n.message.content;if(Array.isArray(r)){for(let e of r)if(typeof e!=`string`&&`type`in e&&e.type===`tool_use`&&`id`in e&&e.id===a)return(`name`in e?e.name:void 0)===J5e||(`name`in e?e.name:void 0)===Y5e||(`name`in e?e.name:void 0)===X5e}}return!1}function G5e(e){for(let t of e)if(t.type===`attachment`){if(t.attachment.type===`invoked_skills`){let e=t.attachment.skills;for(let t of e)t.name&&t.path&&t.content&&Nne(t.name,t.path,t.content,null)}t.attachment.type===`skill_listing`&&qWt()}qWt(),JWt()}async function K5e(e){let{messages:t,leafUuids:n}=await Y8(e),r=null,i=0;for(let e of t.values()){if(e.isSidechain||!n.has(e.uuid))continue;let t=new Date(e.timestamp).getTime();t>i&&(i=t,r=e)}return r?{messages:N8(F8(t,r)),sessionId:r.sessionId}:{messages:[],sessionId:void 0}}async function q5e(e,t){try{let n=null,r=null,i;if(e===void 0){let e=Q8(),t=new Set;try{let{listAllLiveSessions:e}=await import(`./udsClient-BvG_Jip0.js`),n=await e();t=new Set(n.flatMap(e=>e.kind&&e.kind!==`interactive`&&e.sessionId?[e.sessionId]:[]))}catch{}n=(await e).find(e=>{let n=K8(e);return!n||!t.has(n)})??null}else if(t){let e=await K5e(t);r=e.messages,i=e.sessionId}else typeof e==`string`?(n=await Z8(e),i=e):n=e;if(!n&&!r)return null;n&&(q8(n)&&(n=await J8(n)),i||(i=K8(n)),i&&await g5e(n,Vx(i)),a5e(n),r=n.messages,I8(r)),G5e(r);let a=H5e(r);r=a.messages;let o=await zN(`resume`,{sessionId:i});return r.push(...o),{messages:r,turnInterruptionState:a.turnInterruptionState,fileHistorySnapshots:n?.fileHistorySnapshots,attributionSnapshots:n?.attributionSnapshots,contentReplacements:n?.contentReplacements,contextCollapseCommits:n?.contextCollapseCommits,contextCollapseSnapshot:n?.contextCollapseSnapshot,sessionId:i,agentName:n?.agentName,agentColor:n?.agentColor,agentSetting:n?.agentSetting,customTitle:n?.customTitle,tag:n?.tag,mode:n?.mode,worktreeSession:n?.worktreeSession,prNumber:n?.prNumber,prUrl:n?.prUrl,prRepository:n?.prRepository,fullPath:n?.fullPath}}catch(e){throw q(e),e}}var J5e,Y5e,X5e,Z5e=n((()=>{Wa(),tn(),Ux(),Cce(),w0(),cN(),Ao(),i3(),_N(),VN(),h5(),J5e=(er(),e(Yi)).BRIEF_TOOL_NAME,Y5e=(er(),e(Yi)).LEGACY_BRIEF_TOOL_NAME,X5e=(UN(),e(z5e)).SEND_USER_FILE_TOOL_NAME}));function Q5e(){return process.env.ANTHROPIC_BASE_URL||process.env.CLAUDE_CODE_API_BASE_URL||`https://api.anthropic.com`}function WN(e){U(`[files-api] ${e}`,{level:`error`})}function GN(e){U(`[files-api] ${e}`)}async function $5e(e,t){let n=``;for(let r=1;r<=JN;r++){let i=await t(r);if(i.done)return i.value;if(n=i.error||`${e} failed`,GN(`${e} attempt ${r}/${JN} failed: ${n}`),r<JN){let t=s7e*2**(r-1);GN(`Retrying ${e} in ${t}ms...`),await Hs(t)}}throw Error(`${n} after ${JN} attempts`)}async function e7e(e,t){let n=`${t.baseUrl||Q5e()}/v1/files/${e}/content`,r={Authorization:`Bearer ${t.oauthToken}`,"anthropic-version":qN,"anthropic-beta":KN};return GN(`Downloading file ${e} from ${n}`),$5e(`Download file ${e}`,async()=>{try{let t=await Oe.get(n,{headers:r,responseType:`arraybuffer`,timeout:6e4,validateStatus:e=>e<500});if(t.status===200)return GN(`Downloaded file ${e} (${t.data.length} bytes)`),{done:!0,value:Buffer.from(t.data)};if(t.status===404)throw Error(`File not found: ${e}`);if(t.status===401)throw Error(`Authentication failed: invalid or missing API key`);if(t.status===403)throw Error(`Access denied to file: ${e}`);return{done:!1,error:`status ${t.status}`}}catch(e){if(!Oe.isAxiosError(e))throw e;return{done:!1,error:e.message}}})}function t7e(e,t,n){let r=wu.normalize(n);if(r.startsWith(`..`))return WN(`Invalid file path: ${n}. Path must not traverse above workspace`),null;let i=wu.join(e,t,`uploads`),a=[wu.join(e,t,`uploads`)+wu.sep,wu.sep+`uploads`+wu.sep].find(e=>r.startsWith(e)),o=a?r.slice(a.length):r;return wu.join(i,o)}async function n7e(e,t){let{fileId:n,relativePath:r}=e,i=t7e(Ga(),t.sessionId,r);if(!i)return{fileId:n,path:``,success:!1,error:`Invalid file path: ${r}`};try{let e=await e7e(n,t),r=wu.dirname(i);return await sd.mkdir(r,{recursive:!0}),await sd.writeFile(i,e),GN(`Saved file ${n} to ${i} (${e.length} bytes)`),{fileId:n,path:i,success:!0,bytesWritten:e.length}}catch(e){return WN(`Failed to download file ${n}: ${H(e)}`),e instanceof Error&&q(e),{fileId:n,path:i,success:!1,error:H(e)}}}async function r7e(e,t,n){let r=Array(e.length),i=0;async function a(){for(;i<e.length;){let n=i++,a=e[n];a!==void 0&&(r[n]=await t(a,n))}}let o=[],s=Math.min(n,e.length);for(let e=0;e<s;e++)o.push(a());return await Promise.all(o),r}async function i7e(e,t,n=c7e){if(e.length===0)return[];GN(`Downloading ${e.length} file(s) for session ${t.sessionId}`);let r=Date.now(),i=await r7e(e,e=>n7e(e,t),n),a=Date.now()-r;return GN(`Downloaded ${fs(i,e=>e.success)}/${e.length} file(s) in ${a}ms`),i}async function a7e(e,t,n,r){let i=`${n.baseUrl||Q5e()}/v1/files`,a={Authorization:`Bearer ${n.oauthToken}`,"anthropic-version":qN,"anthropic-beta":KN};GN(`Uploading file ${e} as ${t}`);let o;try{o=await sd.readFile(e)}catch(e){return G(`tengu_file_upload_failed`,{error_type:`file_read`}),{path:t,error:H(e),success:!1}}let s=o.length;if(s>YN)return G(`tengu_file_upload_failed`,{error_type:`file_too_large`}),{path:t,error:`File exceeds maximum size of ${YN} bytes (actual: ${s})`,success:!1};let c=`----FormBoundary${od()}`,l=wu.basename(t),u=[];u.push(Buffer.from(`--${c}\r\nContent-Disposition: form-data; name="file"; filename="${l}"\r\nContent-Type: application/octet-stream\r\n\r\n`)),u.push(o),u.push(Buffer.from(`\r
|
|
955
955
|
`)),u.push(Buffer.from(`--${c}\r\nContent-Disposition: form-data; name="purpose"\r\n\r\nuser_data\r\n`)),u.push(Buffer.from(`--${c}--\r\n`));let d=Buffer.concat(u);try{return await $5e(`Upload file ${t}`,async()=>{try{let n=await Oe.post(i,d,{headers:{...a,"Content-Type":`multipart/form-data; boundary=${c}`,"Content-Length":d.length.toString()},timeout:12e4,signal:r?.signal,validateStatus:e=>e<500});if(n.status===200||n.status===201){let r=n.data?.id;return r?(GN(`Uploaded file ${e} -> ${r} (${s} bytes)`),{done:!0,value:{path:t,fileId:r,size:s,success:!0}}):{done:!1,error:`Upload succeeded but no file ID returned`}}if(n.status===401)throw G(`tengu_file_upload_failed`,{error_type:`auth`}),new XN(`Authentication failed: invalid or missing API key`);if(n.status===403)throw G(`tengu_file_upload_failed`,{error_type:`forbidden`}),new XN(`Access denied for upload`);if(n.status===413)throw G(`tengu_file_upload_failed`,{error_type:`size`}),new XN(`File too large for upload`);return{done:!1,error:`status ${n.status}`}}catch(e){if(e instanceof XN)throw e;if(Oe.isCancel(e))throw new XN(`Upload canceled`);if(Oe.isAxiosError(e))return{done:!1,error:e.message};throw e}})}catch(e){return e instanceof XN?{path:t,error:e.message,success:!1}:(G(`tengu_file_upload_failed`,{error_type:`network`}),{path:t,error:H(e),success:!1})}}function o7e(e){let t=[],n=e.flatMap(e=>e.split(` `).filter(Boolean));for(let e of n){let n=e.indexOf(`:`);if(n===-1)continue;let r=e.substring(0,n),i=e.substring(n+1);if(!r||!i){WN(`Invalid file spec: ${e}. Both file_id and path are required`);continue}t.push({fileId:r,relativePath:i})}return t}var KN,qN,JN,s7e,YN,c7e,XN,l7e=n((()=>{ke(),Ss(),Wa(),W(),ka(),Ao(),Us(),Ua(),KN=`files-api-2025-04-14,oauth-2025-04-20`,qN=`2023-06-01`,JN=3,s7e=500,YN=500*1024*1024,c7e=5,XN=class extends Error{constructor(e){super(e),this.name=`UploadNonRetriableError`}}}));function u7e(e=`claude-prompt`,t=`.md`,n){let r=n?.contentHash?id(`sha256`).update(n.contentHash).digest(`hex`).slice(0,16):od();return Y(Cu(),`${e}-${r}${t}`)}var d7e=n((()=>{}));async function f7e(e,t,n,r,i){let a=r?[`refs/seed/stash`]:[],o=n=>$o(Xa(),[`bundle`,`create`,t,n,...a],{cwd:e,abortSignal:i}),s=await o(`--all`);if(s.code!==0)return{ok:!1,error:`git bundle create --all failed (${s.code}): ${s.stderr.slice(0,200)}`,failReason:`git_error`};let{size:c}=await xd(t);if(c<=n)return{ok:!0,size:c,scope:`all`};U(`[gitBundle] --all bundle is ${(c/1024/1024).toFixed(1)}MB (> ${(n/1024/1024).toFixed(0)}MB), retrying HEAD-only`);let l=await o(`HEAD`);if(l.code!==0)return{ok:!1,error:`git bundle create HEAD failed (${l.code}): ${l.stderr.slice(0,200)}`,failReason:`git_error`};let{size:u}=await xd(t);if(u<=n)return{ok:!0,size:u,scope:`head`};U(`[gitBundle] HEAD bundle is ${(u/1024/1024).toFixed(1)}MB, retrying squashed-root`);let d=r?`refs/seed/stash^{tree}`:`HEAD^{tree}`,f=await $o(Xa(),[`commit-tree`,d,`-m`,`seed`],{cwd:e,abortSignal:i});if(f.code!==0)return{ok:!1,error:`git commit-tree failed (${f.code}): ${f.stderr.slice(0,200)}`,failReason:`git_error`};let p=f.stdout.trim();await $o(Xa(),[`update-ref`,`refs/seed/root`,p],{cwd:e});let m=await $o(Xa(),[`bundle`,`create`,t,`refs/seed/root`],{cwd:e,abortSignal:i});if(m.code!==0)return{ok:!1,error:`git bundle create refs/seed/root failed (${m.code}): ${m.stderr.slice(0,200)}`,failReason:`git_error`};let{size:h}=await xd(t);return h<=n?{ok:!0,size:h,scope:`squashed`}:{ok:!1,error:`Repo is too large to bundle. Please setup GitHub on https://claude.ai/code`,failReason:`too_large`}}async function p7e(e,t){let n=to(t?.cwd??Ga());if(!n)return{success:!1,error:`Not in a git repository`};for(let e of[`refs/seed/stash`,`refs/seed/root`])await $o(Xa(),[`update-ref`,`-d`,e],{cwd:n});let r=await $o(Xa(),[`for-each-ref`,`--count=1`,`refs/`],{cwd:n});if(r.code===0&&r.stdout.trim()===``)return G(`tengu_ccr_bundle_upload`,{outcome:`empty_repo`}),{success:!1,error:`Repository has no commits yet`,failReason:`empty_repo`};let i=await $o(Xa(),[`stash`,`create`],{cwd:n,abortSignal:t?.signal}),a=i.code===0?i.stdout.trim():``,o=a!==``;i.code===0?o&&(U(`[gitBundle] Captured WIP as stash ${a}`),await $o(Xa(),[`update-ref`,`refs/seed/stash`,a],{cwd:n})):U(`[gitBundle] git stash create failed (${i.code}), proceeding without WIP: ${i.stderr.slice(0,200)}`);let s=u7e(`ccr-seed`,`.bundle`);try{let r=Jr(`tengu_ccr_bundle_max_bytes`,null)??m7e,i=await f7e(n,s,r,o,t?.signal);if(!i.ok){let e=i;return U(`[gitBundle] ${e.error}`),G(`tengu_ccr_bundle_upload`,{outcome:e.failReason,max_bytes:r}),{success:!1,error:e.error,failReason:e.failReason}}let a=await a7e(s,`_source_seed.bundle`,e,{signal:t?.signal});return a.success?(U(`[gitBundle] Uploaded ${a.size} bytes as file_id ${a.fileId}`),G(`tengu_ccr_bundle_upload`,{outcome:`success`,size_bytes:a.size,scope:i.scope,has_wip:o}),{success:!0,fileId:a.fileId,bundleSizeBytes:a.size,scope:i.scope,hasWip:o}):(G(`tengu_ccr_bundle_upload`,{outcome:`failed`}),{success:!1,error:a.error})}finally{try{await Cd(s)}catch{U(`[gitBundle] Could not delete ${s} (non-fatal)`)}for(let e of[`refs/seed/stash`,`refs/seed/root`])await $o(Xa(),[`update-ref`,`-d`,e],{cwd:n})}}var m7e,h7e=n((()=>{Ua(),wr(),l7e(),Wa(),W(),es(),no(),d7e(),m7e=100*1024*1024}));function g7e(e){return e===null?I4(`Session resumed`,`suggestion`):I4(`Session resumed without branch: ${e instanceof ba?e.formattedMessage:e.message}`,`warning`)}function _7e(){return d4({content:`This session is being continued from another machine. Application state may have changed. The updated working directory is ${fn()}`,isMeta:!0})}async function v7e(e,t){let n=Es(e,75),r=`claude/task`;try{let i=A7e.replace(`{description}`,e),a=(await d9({systemPrompt:Sl([]),userPrompt:i,outputFormat:{type:`json_schema`,schema:{type:`object`,properties:{title:{type:`string`},branch:{type:`string`}},required:[`title`,`branch`],additionalProperties:!1}},signal:t,options:{querySource:`teleport_generate_title`,agents:[],isNonInteractiveSession:!1,hasAppendSystemPrompt:!1,mcpTools:[]}})).message.content?.[0];if(a?.type!==`text`)return{title:n,branchName:r};let o=os(a.text.trim()),s=L({title:F(),branch:F()}).safeParse(o);return s.success?{title:s.data.title||n,branchName:s.data.branch||r}:{title:n,branchName:r}}catch(e){return q(Error(`Error generating title and branch: ${e}`)),{title:n,branchName:r}}}async function y7e(){if(!await _se({ignoreUntracked:!0}))throw G(`tengu_teleport_error_git_not_clean`,{}),new ba(`Git working directory is not clean. Please commit or stash your changes before using --teleport.`,ut.red(`Error: Git working directory is not clean. Please commit or stash your changes before using --teleport.
|
|
956
956
|
`))}async function b7e(e){let t=e?[`fetch`,`origin`,`${e}:${e}`]:[`fetch`,`origin`],{code:n,stderr:r}=await ts(Xa(),t);if(n!==0)if(e&&r.includes(`refspec`)){U(`Specific branch fetch failed, trying to fetch ref: ${e}`);let{code:t,stderr:n}=await ts(Xa(),[`fetch`,`origin`,e]);t!==0&&q(Error(`Failed to fetch from remote origin: ${n}`))}else q(Error(`Failed to fetch from remote origin: ${r}`))}async function x7e(e){let{code:t}=await ts(Xa(),[`rev-parse`,`--abbrev-ref`,`${e}@{upstream}`]);if(t===0){U(`Branch '${e}' already has upstream set`);return}let{code:n}=await ts(Xa(),[`rev-parse`,`--verify`,`origin/${e}`]);if(n===0){U(`Setting upstream for '${e}' to 'origin/${e}'`);let{code:t,stderr:n}=await ts(Xa(),[`branch`,`--set-upstream-to`,`origin/${e}`,e]);U(t===0?`Successfully set upstream for '${e}'`:`Failed to set upstream for '${e}': ${n}`)}else U(`Remote branch 'origin/${e}' does not exist, skipping upstream setup`)}async function S7e(e){let{code:t,stderr:n}=await ts(Xa(),[`checkout`,e]);if(t!==0){U(`Local checkout failed, trying to checkout from origin: ${n}`);let r=await ts(Xa(),[`checkout`,`-b`,e,`--track`,`origin/${e}`]);if(t=r.code,n=r.stderr,t!==0){U(`Remote checkout with -b failed, trying without -b: ${n}`);let r=await ts(Xa(),[`checkout`,`--track`,`origin/${e}`]);t=r.code,n=r.stderr}}if(t!==0)throw G(`tengu_teleport_error_branch_checkout_failed`,{}),new ba(`Failed to checkout branch '${e}': ${n}`,ut.red(`Failed to checkout branch '${e}'\n`));await x7e(e)}async function ZN(){let{stdout:e}=await ts(Xa(),[`branch`,`--show-current`]);return e.trim()}function C7e(e,t){return[...V5e(e),_7e(),g7e(t)]}async function w7e(e){try{return U(`Current branch before teleport: '${await ZN()}'`),e?(U(`Switching to branch '${e}'...`),await b7e(e),await S7e(e),U(`Branch after checkout: '${await ZN()}'`)):U(`No branch specified, staying on current branch`),{branchName:await ZN(),branchError:null}}catch(e){return{branchName:await ZN(),branchError:xa(e)}}}async function T7e(e){let t=await Xl(),n=t?`${t.owner}/${t.name}`:null,r=e.session_context.sources.find(e=>e.type===`git_repository`);if(!r?.url)return U(n?`Session has no associated repository, proceeding without validation`:`Session has no repo requirement and not in git directory, proceeding`),{status:`no_repo_required`};let i=Zde(r.url),a=i?`${i.owner}/${i.name}`:Xde(r.url);if(!a)return{status:`no_repo_required`};if(U(`Session is for repository: ${a}, current repo: ${n??`none`}`),!n)return{status:`not_in_repo`,sessionRepo:a,sessionHost:i?.host,currentRepo:null};let o=e=>e.replace(/:\d+$/,``),s=n.toLowerCase()===a.toLowerCase(),c=!t||!i||o(t.host.toLowerCase())===o(i.host.toLowerCase());return s&&c?{status:`match`,sessionRepo:a,currentRepo:n}:{status:`mismatch`,sessionRepo:a,currentRepo:n,sessionHost:i?.host,currentHost:t?.host}}async function E7e(e,t){if(!C3(`allow_remote_sessions`))throw Error(`Remote sessions are disabled by your organization's policy.`);U(`Resuming code session ID: ${e}`);try{let n=Xn()?.accessToken;if(!n)throw G(`tengu_teleport_resume_error`,{error_type:`no_access_token`}),Error(`Claude Code web sessions require authentication with a Claude.ai account. API key authentication is not sufficient. Please run /login to authenticate, or check your authentication status with /status.`);let r=await Mi();if(!r)throw G(`tengu_teleport_resume_error`,{error_type:`no_org_uuid`}),Error(`Unable to get organization UUID for constructing session URL`);t?.(`validating`);let i=await $l(e),a=await T7e(i);switch(a.status){case`match`:case`no_repo_required`:break;case`not_in_repo`:{G(`tengu_teleport_error_repo_not_in_git_dir_sessions_api`,{sessionId:e});let t=a.sessionHost&&a.sessionHost.toLowerCase()!==`github.com`?`${a.sessionHost}/${a.sessionRepo}`:a.sessionRepo;throw new ba(`You must run claude --teleport ${e} from a checkout of ${t}.`,ut.red(`You must run claude --teleport ${e} from a checkout of ${ut.bold(t)}.\n`))}case`mismatch`:{G(`tengu_teleport_error_repo_mismatch_sessions_api`,{sessionId:e});let t=a.sessionHost&&a.currentHost&&a.sessionHost.replace(/:\d+$/,``).toLowerCase()!==a.currentHost.replace(/:\d+$/,``).toLowerCase(),n=t?`${a.sessionHost}/${a.sessionRepo}`:a.sessionRepo,r=t?`${a.currentHost}/${a.currentRepo}`:a.currentRepo;throw new ba(`You must run claude --teleport ${e} from a checkout of ${n}.\nThis repo is ${r}.`,ut.red(`You must run claude --teleport ${e} from a checkout of ${ut.bold(n)}.\nThis repo is ${ut.bold(r)}.\n`))}case`error`:throw new ba(a.errorMessage||`Failed to validate session repository`,ut.red(`Error: ${a.errorMessage||`Failed to validate session repository`}\n`));default:{let e=a.status;throw Error(`Unhandled repo validation status: ${e}`)}}return await k7e(e,r,n,t,i)}catch(e){if(e instanceof ba)throw e;let t=xa(e);throw q(t),G(`tengu_teleport_resume_error`,{error_type:`resume_session_id_catch`}),new ba(t.message,ut.red(`Error: ${t.message}\n`))}}async function D7e(e,t){let n=await k8e();n.size>0&&(G(`tengu_teleport_errors_detected`,{error_types:Array.from(n).join(`,`),errors_ignored:Array.from(t||[]).join(`,`)}),await new Promise(r=>{e.render((0,tP.jsx)(p1e,{children:(0,tP.jsx)(M8e,{children:(0,tP.jsx)(O8e,{errorsToIgnore:t,onComplete:()=>{G(`tengu_teleport_errors_resolved`,{error_types:Array.from(n).join(`,`)}),r()}})})}))}))}async function O7e(e,t,n,r){return await D7e(e,new Set([`needsGitStash`])),$N({initialMessage:t,signal:n,branchName:r,onBundleFail:e=>process.stderr.write(`\n${e}\n`)})}async function k7e(e,t,n,r,i){let a=Date.now();try{U(`[teleport] Starting fetch for session: ${e}`),r?.(`fetching_logs`);let o=Date.now(),s=await V8e(e,n,t);if(s===null&&(U(`[teleport] v2 endpoint returned null, trying session-ingress`),s=await B8e(e,n,t)),U(`[teleport] Session logs fetched in ${Date.now()-o}ms`),s===null)throw Error(`Failed to fetch session logs`);let c=Date.now(),l=s.filter(e=>c8(e)&&!e.isSidechain);U(`[teleport] Filtered ${s.length} entries to ${l.length} messages in ${Date.now()-c}ms`),r?.(`fetching_branch`);let u=i?Qde(i):void 0;return u&&U(`[teleport] Found branch: ${u}`),U(`[teleport] Total teleportFromSessionsAPI time: ${Date.now()-a}ms`),{log:l,branch:u}}catch(t){let n=xa(t);throw Oe.isAxiosError(t)&&t.response?.status===404?(G(`tengu_teleport_error_session_not_found_404`,{sessionId:e}),new ba(`${e} not found.`,`${e} not found.\n${ut.dim(`Run /status in Claude Code to check your account.`)}`)):(q(n),Error(`Failed to fetch session from Sessions API: ${n.message}`))}}async function QN(e,t=null,n){let r=Xn()?.accessToken;if(!r)throw Error(`No access token for polling`);let i=await Mi();if(!i)throw Error(`No org UUID for polling`);let a={...Zl(r),"anthropic-beta":`ccr-byoc-2025-07-29`,"x-organization-uuid":i},o=`${ro().BASE_API_URL}/v1/sessions/${e}/events`,s=[],c=t;for(let e=0;e<50;e++){let e=await Oe.get(o,{headers:a,params:c?{after_id:c}:void 0,timeout:3e4});if(e.status!==200)throw Error(`Failed to fetch session events: ${e.statusText}`);let t=e.data;if(!t?.data||!Array.isArray(t.data))throw Error(`Invalid events response`);for(let e of t.data)if(e&&typeof e==`object`&&`type`in e){if(e.type===`env_manager_log`||e.type===`control_response`)continue;`session_id`in e&&s.push(e)}if(!t.last_id||(c=t.last_id,!t.has_more))break}if(n?.skipMetadata)return{newEvents:s,lastEventId:c};let l,u;try{let t=await $l(e);l=Qde(t),u=t.session_status}catch(t){U(`teleport: failed to fetch session ${e} metadata: ${t}`,{level:`debug`})}return{newEvents:s,lastEventId:c,branch:l,sessionStatus:u}}async function $N(e){let{initialMessage:t,signal:n}=e;try{await gr();let r=Xn()?.accessToken;if(!r)return q(Error(`No access token found for remote session creation`)),null;let i=await Mi();if(!i)return q(Error(`Unable to get organization UUID for remote session creation`)),null;if(e.environmentId){let t=`${ro().BASE_API_URL}/v1/sessions`,a={...Zl(r),"anthropic-beta":`ccr-byoc-2025-07-29`,"x-organization-uuid":i},o={CLAUDE_CODE_OAUTH_TOKEN:r,...e.environmentVariables??{}},s=null,c=null;if(e.useBundle){let e=await p7e({oauthToken:r,sessionId:Ft(),baseUrl:ro().BASE_API_URL},{signal:n});if(!e.success)return q(Error(`Bundle upload failed: ${e.error}`)),null;c=e.fileId,G(`tengu_teleport_bundle_mode`,{size_bytes:e.bundleSizeBytes,scope:e.scope,has_wip:e.hasWip,reason:`explicit_env_bundle`})}else{let t=await Xl();t&&(s={type:`git_repository`,url:`https://${t.host}/${t.owner}/${t.name}`,revision:e.branchName})}let l={title:e.title||e.description||`Remote task`,events:[],session_context:{sources:s?[s]:[],...c&&{seed_bundle_file_id:c},outcomes:[],environment_variables:o},environment_id:e.environmentId};U(`[teleportToRemote] explicit env ${e.environmentId}, ${Object.keys(o).length} env vars, ${c?`bundle=${c}`:`source=${s?.url??`none`}@${e.branchName??`default`}`}`);let u=await Oe.post(t,l,{headers:a,signal:n});if(u.status!==200&&u.status!==201)return q(Error(`CreateSession ${u.status}: ${V(u.data)}`)),null;let d=u.data;return!d||typeof d.id!=`string`?(q(Error(`No session id in response: ${V(u.data)}`)),null):{id:d.id,title:d.title||l.title}}let a=null,o=null,s=null,c=await Xl(),l,u;if(e.title&&e.reuseOutcomeBranch)l=e.title,u=e.reuseOutcomeBranch;else{let r=await v7e(e.description||t||`Background task`,n);l=e.title||r.title,u=e.reuseOutcomeBranch||r.branchName}let d=!1,f=`no_git_at_all`,p=to(Ga()),m=!e.skipBundle&&x(process.env.CCR_FORCE_BUNDLE),h=!e.skipBundle&&p!==null&&(x(process.env.CCR_ENABLE_BUNDLE)||await Iae(`tengu_ccr_bundle_seed_enabled`));if(c&&!m?c.host===`github.com`?(d=await fS(c.owner,c.name,n),f=d?`github_preflight_ok`:`github_preflight_failed`):(d=!0,f=`ghes_optimistic`):m?f=`forced_bundle`:p&&(f=`no_github_remote`),!d&&!h&&c&&(d=!0),d&&c){let{host:t,owner:n,name:r}=c,i=e.branchName??await Za()??void 0;U(`[teleportToRemote] Git source: ${t}/${n}/${r}, revision: ${i??`none`}`),a={type:`git_repository`,url:`https://${t}/${n}/${r}`,revision:i,...e.reuseOutcomeBranch&&{allow_unrestricted_git_push:!0}},o={type:`git_repository`,git_info:{type:`github`,repo:`${n}/${r}`,branches:[u]}}}if(!a&&h){U(`[teleportToRemote] Bundling (reason: ${f})`);let t=await p7e({oauthToken:r,sessionId:Ft(),baseUrl:ro().BASE_API_URL},{signal:n});if(!t.success){let n=t;q(Error(`Bundle upload failed: ${n.error}`));let r=c?`. Please setup GitHub on https://claude.ai/code`:``,i;switch(n.failReason){case`empty_repo`:i='Repository has no commits — run `git add . && git commit -m "initial"` then retry';break;case`too_large`:i=`Repo is too large to teleport${r}`;break;case`git_error`:i=`Failed to create git bundle (${n.error})${r}`;break;case void 0:i=`Bundle upload failed: ${n.error}${r}`;break;default:i=`Bundle upload failed: ${n.error}`}return e.onBundleFail?.(i),null}s=t.fileId,G(`tengu_teleport_bundle_mode`,{size_bytes:t.bundleSizeBytes,scope:t.scope,has_wip:t.hasWip,reason:f})}G(`tengu_teleport_source_decision`,{reason:f,path:a?`github`:s?`bundle`:`empty`}),!a&&!s&&U(`[teleportToRemote] No repository detected — session will have an empty sandbox`);let g=await uS();if(!g||g.length===0)return q(Error(`No environments available for session creation`)),null;U(`Available environments: ${g.map(e=>`${e.environment_id} (${e.name}, ${e.kind})`).join(`, `)}`);let _=zi(),v=e.useDefaultEnvironment?void 0:_?.remote?.defaultEnvironmentId,y=g.find(e=>e.kind===`anthropic_cloud`);if(e.useDefaultEnvironment&&!y){U(`No anthropic_cloud in env list (${g.length} envs); retrying fetchEnvironments`);let e=await uS();if(y=e?.find(e=>e.kind===`anthropic_cloud`),!y)return q(Error(`No anthropic_cloud environment available after retry (got: ${(e??g).map(e=>`${e.name} (${e.kind})`).join(`, `)}). Silent byoc fallthrough would launch into a dead env — fail fast instead.`)),null;e&&(g=e)}let b=v&&g.find(e=>e.environment_id===v)||y||g.find(e=>e.kind!==`bridge`)||g[0];if(!b)return q(Error(`No environments available for session creation`)),null;v&&U(b.environment_id===v?`Using configured default environment: ${v}`:`Configured default environment ${v} not found, using first available`);let S=b.environment_id;U(`Selected environment: ${S} (${b.name}, ${b.kind})`);let C=`${ro().BASE_API_URL}/v1/sessions`,w={...Zl(r),"anthropic-beta":`ccr-byoc-2025-07-29`,"x-organization-uuid":i},T={sources:a?[a]:[],...s&&{seed_bundle_file_id:s},outcomes:o?[o]:[],model:e.model??An(),...e.reuseOutcomeBranch&&{reuse_outcome_branches:!0},...e.githubPr&&{github_pr:e.githubPr},...e.source&&{source:e.source}},E=[];e.permissionMode&&E.push({type:`event`,data:{type:`control_request`,request_id:`set-mode-${od()}`,request:{subtype:`set_permission_mode`,mode:e.permissionMode,ultraplan:e.ultraplan}}}),t&&E.push({type:`event`,data:{uuid:od(),session_id:``,type:`user`,parent_tool_use_id:null,message:{role:`user`,content:t}}});let D={title:e.ultraplan?`ultraplan: ${l}`:l,events:E,session_context:T,environment_id:S};U(`Creating session with payload: ${V(D,null,2)}`);let ee=await Oe.post(C,D,{headers:w,signal:n,validateStatus:e=>e<500});if(!(ee.status===200||ee.status===201))return q(Error(`API request failed with status ${ee.status}: ${ee.statusText}\n\nResponse data: ${V(ee.data,null,2)}`)),e.onCreateFail?.(`${ee.status} ${ee.statusText}: ${V(ee.data)}`),null;let O=ee.data;return!O||typeof O.id!=`string`?(q(Error(`Cannot determine session ID from API response: ${V(ee.data)}`)),null):(U(`Successfully created remote session: ${O.id}`),{id:O.id,title:O.title||D.title})}catch(e){return q(xa(e)),null}}async function eP(e,t=1e4){let n=Xn()?.accessToken;if(!n)return;let r=await Mi();if(!r)return;let i={...Zl(n),"anthropic-beta":`ccr-byoc-2025-07-29`,"x-organization-uuid":r},a=`${ro().BASE_API_URL}/v1/sessions/${e}/archive`;try{let n=await Oe.post(a,{},{headers:i,timeout:t,validateStatus:e=>e<500});n.status===200||n.status===409?U(`[archiveRemoteSession] archived ${e}`):U(`[archiveRemoteSession] ${e} failed ${n.status}: ${V(n.data)}`)}catch(e){q(e)}}var tP,A7e,nP=n((()=>{ke(),ft(),R(),tn(),wr(),Ua(),M3(),it(),j8e(),io(),F8e(),p9(),$M(),aa(),UO(),Wi(),pS(),Z5e(),Wa(),W(),Yl(),y(),ka(),es(),Ns(),no(),as(),Ao(),i3(),hr(),h5(),Gi(),Va(),z_(),Ql(),dS(),h7e(),tP=jt(),A7e=`You are coming up with a succinct title and git branch name for a coding session based on the provided description. The title should be clear, concise, and accurately reflect the content of the coding task.
|
|
@@ -1007,7 +1007,7 @@ Remote review did not produce output (${t}). Tell the user to retry /ultrareview
|
|
|
1007
1007
|
`);t&&Y6t(e,t+`
|
|
1008
1008
|
`)}if(c.sessionStatus===`archived`){Ix(e,t.setAppState,e=>e.status===`running`?{...e,status:`completed`,endTime:Date.now()}:e);let r=rP(n,o);r?lP(e,n.title,`completed`,r,t.setAppState,n.toolUseId):cP(e,n.title,`completed`,t.setAppState,n.toolUseId),L5(e),aP(e),iP(e,n);return}let u=fP.get(n.remoteTaskType);if(u){let r=await u(n.remoteTaskMetadata);if(r!==null){Ix(e,t.setAppState,e=>e.status===`running`?{...e,status:`completed`,endTime:Date.now()}:e);let i=rP(n,o);i?lP(e,r,`completed`,i,t.setAppState,n.toolUseId):cP(e,r,`completed`,t.setAppState,n.toolUseId),L5(e),aP(e),iP(e,n);return}}let d=n.isUltraplan||n.isLongRunning?void 0:o.findLast(e=>e.type===`result`);n.isRemoteReview&&l&&s===null&&(s=L7e(c.newEvents));let f;if(n.isRemoteReview&&l){let e=`<${Kse}>`,t=`</${Kse}>`;for(let n of c.newEvents)if(n.type===`system`&&(n.subtype===`hook_progress`||n.subtype===`hook_response`)){let r=n.stdout,i=r.lastIndexOf(t),a=i===-1?-1:r.lastIndexOf(e,i);if(a!==-1&&i>a)try{let t=JSON.parse(r.slice(a+e.length,i));f={stage:t.stage,bugsFound:t.bugs_found??0,bugsVerified:t.bugs_verified??0,bugsRefuted:t.bugs_refuted??0}}catch{}}}let p=o.some(e=>e.type===`assistant`||n.isRemoteReview&&e.type===`system`&&(e.subtype===`hook_progress`||e.subtype===`hook_response`));c.sessionStatus===`idle`&&!l&&p?i++:i=0;let m=i>=5,h=o.some(e=>e.type===`system`&&(e.subtype===`hook_started`||e.subtype===`hook_progress`||e.subtype===`hook_response`)&&e.hook_event===`SessionStart`),g=o.some(e=>e.type===`assistant`),_=n.isRemoteReview&&(s!==null||!h&&m&&g),v=n.isRemoteReview&&Date.now()-n.pollStartedAt>r,y=d?d.subtype===`success`?`completed`:`failed`:_||v?`completed`:o.length>0?`running`:`starting`,b=!1;if(Ix(e,t.setAppState,e=>e.status===`running`?!l&&(y===`running`||y===`starting`)?e:{...e,status:y===`starting`?`running`:y,log:o,todoList:l?B7e(o):e.todoList,reviewProgress:f??e.reviewProgress,endTime:d||_||v?Date.now():void 0}:(b=!0,e)),b)return;if(d||_||v){let r=d&&d.subtype!==`success`?`failed`:`completed`;if(n.isRemoteReview){let i=s??I7e(o);if(i&&r===`completed`){R7e(e,i,t.setAppState),L5(e),aP(e),iP(e,n);return}Ix(e,t.setAppState,e=>({...e,status:`failed`})),z7e(e,d&&d.subtype!==`success`?`remote session returned an error`:v&&!_?`remote session exceeded 30 minutes`:`no review output — orchestrator may have exited early`,t.setAppState),L5(e),aP(e),iP(e,n);return}let i=rP(n,o);i?lP(e,n.title,r,i,t.setAppState,n.toolUseId):cP(e,n.title,r,t.setAppState,n.toolUseId),L5(e),aP(e),iP(e,n);return}}catch(n){q(n),i=0;try{let n=t.getAppState().tasks?.[e];if(n?.isRemoteReview&&n.status===`running`&&Date.now()-n.pollStartedAt>r){Ix(e,t.setAppState,e=>({...e,status:`failed`,endTime:Date.now()})),z7e(e,`remote session exceeded 30 minutes`,t.setAppState),L5(e),aP(e);return}}catch{}}n&&setTimeout(c,1e3)}};return c(),()=>{n=!1}}function W7e(e){return iS(e,process.env.SESSION_INGRESS_URL)}var G7e,fP,pP,mP,hP,gP=n((()=>{oS(),Eo(),i7(),lS(),_ze(),W(),Ao(),xv(),i3(),yl(),h5(),Va(),e7(),Bx(),Ql(),nP(),G7e=[`remote-agent`,`ultraplan`,`ultrareview`,`autofix-pr`,`background-pr`],fP=new Map,pP=new Map,mP=new Map,hP={name:`RemoteAgentTask`,type:`remote_agent`,async kill(e,t){let n,r,i,a=!1;Ix(e,t,e=>e.status===`running`?(n=e.toolUseId,r=e.description,i=e.sessionId,a=!0,{...e,status:`killed`,notified:!0,endTime:Date.now()}):e),a&&(wl(e,`stopped`,{toolUseId:n,summary:r}),i&&eP(i).catch(e=>U(`RemoteAgentTask archive failed: ${String(e)}`))),L5(e),aP(e),U(`RemoteAgentTask ${e} killed, archiving session ${i??`unknown`}`)}}}));function K7e(e,t){let n=t?`${e}@${t.toLowerCase()}`:e;return id(`sha256`).update(n+$7e).digest(`hex`).slice(0,16)}function q7e(e,t,n){return t===Q7e?`default-bundle`:al(t)?`official`:n?.has(e)?`org`:`user-local`}function J7e(e,t,n){return e.isBuiltin?`default-enable`:t?.has(e.name)?`org-policy`:n.some(t=>e.path.startsWith(t.endsWith(Pu)?t:t+Pu))?`seed-mount`:`user-install`}function _P(e,t,n=null){let r=q7e(e,t,n),i=r===`official`||r===`default-bundle`;return{plugin_id_hash:K7e(e,t),plugin_scope:r,plugin_name_redacted:i?e:`third-party`,marketplace_name_redacted:i&&t?t:`third-party`,is_official_plugin:i}}function vP(e,t=null){let{marketplace:n}=sl(e.repository);return _P(e.pluginManifest.name,n,t)}function Y7e(e,t,n){for(let r of e){let{marketplace:e}=sl(r.repository);G(`tengu_plugin_enabled_for_session`,{_PROTO_plugin_name:r.name,...e&&{_PROTO_marketplace_name:e},..._P(r.name,e,t),enabled_via:J7e(r,t,n),skill_path_count:+!!r.skillsPath+(r.skillsPaths?.length??0),command_path_count:+!!r.commandsPath+(r.commandsPaths?.length??0),has_mcp:r.manifest.mcpServers!==void 0,has_hooks:r.hooksConfig!==void 0,...r.manifest.version&&{version:r.manifest.version}})}}function X7e(e){let t=String(e?.message??e);return/ENOTFOUND|ECONNREFUSED|EAI_AGAIN|ETIMEDOUT|ECONNRESET|network|Could not resolve|Connection refused|timed out/i.test(t)?`network`:/\b404\b|not found|does not exist|no such plugin/i.test(t)?`not-found`:/\b40[13]\b|EACCES|EPERM|permission denied|unauthorized/i.test(t)?`permission`:/invalid|malformed|schema|validation|parse error/i.test(t)?`validation`:`unknown`}function Z7e(e,t){for(let n of e){let{name:e,marketplace:r}=sl(n.source),i=`plugin`in n&&n.plugin?n.plugin:e;G(`tengu_plugin_load_failed`,{error_category:n.type,_PROTO_plugin_name:i,...r&&{_PROTO_marketplace_name:r},..._P(i,r,t)})}}var Q7e,$7e,yP=n((()=>{Ua(),ol(),Q7e=`builtin`,$7e=`claude-plugin-telemetry-v1`}));function bP(e){let t=Date.now(),n=xP.get(e);n!==void 0&&t-n<t9e||(xP.set(e,t),fr(n=>{let r=n.skillUsage?.[e];return{...n,skillUsage:{...n.skillUsage,[e]:{usageCount:(r?.usageCount??0)+1,lastUsedAt:t}}}}))}function e9e(e){let t=Tr().skillUsage?.[e];if(!t)return 0;let n=.5**((Date.now()-t.lastUsedAt)/(1e3*60*60*24)/7);return t.usageCount*Math.max(n,.1)}var t9e,xP,n9e=n((()=>{xn(),t9e=6e4,xP=new Map}));function r9e(e){return typeof e==`string`&&i9e.test(e)?e:null}function SP(e){let t=ad(8).toString(`hex`);return e?`a${e}-${t}`:`a${t}`}var i9e,CP=n((()=>{i9e=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i}));function wP(e){return typeof e==`object`&&!!e&&`type`in e&&e.type===`local_bash`}var TP=n((()=>{}));function EP(e,t){Ix(e,t,t=>{if(t.status!==`running`||!wP(t))return t;try{U(`LocalShellTask ${e} kill requested`),t.shellCommand?.kill(),t.shellCommand?.cleanup()}catch(e){q(e)}return t.unregisterCleanup?.(),t.cleanupTimeoutId&&clearTimeout(t.cleanupTimeoutId),{...t,status:`killed`,notified:!0,shellCommand:null,unregisterCleanup:void 0,cleanupTimeoutId:void 0,endTime:Date.now()}}),L5(e)}function a9e(e,t,n){let r=t().tasks??{};for(let[t,i]of Object.entries(r))wP(i)&&i.agentId===e&&i.status===`running`&&(U(`killShellTasksForAgent: killing orphaned shell task ${t} (agent ${e} exiting)`),EP(t,n));Xwe(t=>t.agentId===e)}var o9e=n((()=>{W(),Ao(),xv(),e7(),Bx(),TP()}));function s9e(e,t){if(e.type!==t.type)return!1;let n=(e,t)=>(e.if??``)===(t.if??``);switch(e.type){case`command`:return t.type===`command`&&e.command===t.command&&(e.shell??`bash`)===(t.shell??`bash`)&&n(e,t);case`prompt`:return t.type===`prompt`&&e.prompt===t.prompt&&n(e,t);case`agent`:return t.type===`agent`&&e.prompt===t.prompt&&n(e,t);case`http`:return t.type===`http`&&e.url===t.url&&n(e,t);case`function`:return!1}}function DP(e){if(`statusMessage`in e&&e.statusMessage)return e.statusMessage;switch(e.type){case`command`:return e.command;case`prompt`:return e.prompt;case`agent`:return e.prompt;case`http`:return e.url;case`callback`:return`callback`;case`function`:return`function`}}function c9e(e){let t=[];if(_r(`policySettings`)?.allowManagedHooksOnly!==!0){let e=[`userSettings`,`projectSettings`,`localSettings`],n=new Set;for(let r of e){let e=Ur(r);if(e){let t=Nu(e);if(n.has(t))continue;n.add(t)}let i=_r(r);if(i?.hooks)for(let[e,n]of Object.entries(i.hooks))for(let i of n)for(let n of i.hooks)t.push({event:e,config:n,matcher:i.matcher,source:r})}}let n=v9e(e,Ft());for(let[e,r]of n.entries())for(let n of r)for(let r of n.hooks)t.push({event:e,config:r,matcher:n.matcher,source:`sessionHook`});return t}function l9e(e){switch(e){case`userSettings`:return`User settings (~/.claude/settings.json)`;case`projectSettings`:return`Project settings (.claude/settings.json)`;case`localSettings`:return`Local settings (.claude/settings.local.json)`;case`pluginHook`:return`Plugin hooks (~/.claude/plugins/*/hooks/hooks.json)`;case`sessionHook`:return`Session hooks (in-memory, temporary)`;case`builtinHook`:return`Built-in hooks (registered internally by Claude Code)`;default:return e}}function u9e(e){switch(e){case`userSettings`:return`User Settings`;case`projectSettings`:return`Project Settings`;case`localSettings`:return`Local Settings`;case`pluginHook`:return`Plugin Hooks`;case`sessionHook`:return`Session Hooks`;case`builtinHook`:return`Built-in Hooks`;default:return e}}function d9e(e){switch(e){case`userSettings`:return`User`;case`projectSettings`:return`Project`;case`localSettings`:return`Local`;case`pluginHook`:return`Plugin`;case`sessionHook`:return`Session`;case`builtinHook`:return`Built-in`;default:return e}}function f9e(e,t,n){let r=Rie.reduce((e,t,n)=>(e[t]=n,e),{});return[...e].sort((e,i)=>{let a=t[n]?.[e]||[],o=t[n]?.[i]||[],s=Array.from(new Set(a.map(e=>e.source))),c=Array.from(new Set(o.map(e=>e.source))),l=e=>e===`pluginHook`||e===`builtinHook`?999:r[e],u=Math.min(...s.map(l)),d=Math.min(...c.map(l));return u===d?e.localeCompare(i):u-d})}var OP=n((()=>{tn(),Li(),Gi(),$re(),AP()}));function p9e(e,t,n,r,i,a,o){h9e(e,t,n,r,i,a,o)}function m9e(e,t,n,r,i,a,o){let s=o?.id||`function-hook-${Date.now()}-${Math.random()}`;return h9e(e,t,n,r,{type:`function`,id:s,timeout:o?.timeout||5e3,callback:i,errorMessage:a}),s}function h9e(e,t,n,r,i,a,o){e(e=>{let s=e.sessionHooks.get(t)??{hooks:{}},c=s.hooks[n]||[],l=c.findIndex(e=>e.matcher===r&&e.skillRoot===o),u;if(l>=0){u=[...c];let e=u[l];u[l]={matcher:e.matcher,skillRoot:e.skillRoot,hooks:[...e.hooks,{hook:i,onHookSuccess:a}]}}else u=[...c,{matcher:r,skillRoot:o,hooks:[{hook:i,onHookSuccess:a}]}];let d={...s.hooks,[n]:u};return e.sessionHooks.set(t,{hooks:d}),e}),U(`Added session hook for event ${n} in session ${t}`)}function g9e(e,t,n,r){e(e=>{let i=e.sessionHooks.get(t);if(!i)return e;let a=(i.hooks[n]||[]).map(e=>{let t=e.hooks.filter(e=>!s9e(e.hook,r));return t.length>0?{...e,hooks:t}:null}).filter(e=>e!==null),o=a.length>0?{...i.hooks,[n]:a}:{...i.hooks};return a.length===0&&delete o[n],e.sessionHooks.set(t,{...i,hooks:o}),e}),U(`Removed session hook for event ${n} in session ${t}`)}function _9e(e){return e.map(e=>({matcher:e.matcher,skillRoot:e.skillRoot,hooks:e.hooks.map(e=>e.hook).filter(e=>e.type!==`function`)}))}function v9e(e,t,n){let r=e.sessionHooks.get(t);if(!r)return new Map;let i=new Map;if(n){let e=r.hooks[n];return e&&i.set(n,_9e(e)),i}for(let e of ji){let t=r.hooks[e];t&&i.set(e,_9e(t))}return i}function y9e(e,t,n){let r=e.sessionHooks.get(t);if(!r)return new Map;let i=new Map,a=e=>e.map(e=>({matcher:e.matcher,hooks:e.hooks.map(e=>e.hook).filter(e=>e.type===`function`)})).filter(e=>e.hooks.length>0);if(n){let e=r.hooks[n];if(e){let t=a(e);t.length>0&&i.set(n,t)}return i}for(let e of ji){let t=r.hooks[e];if(t){let n=a(t);n.length>0&&i.set(e,n)}}return i}function b9e(e,t,n,r,i){let a=e.sessionHooks.get(t);if(!a)return;let o=a.hooks[n];if(o){for(let e of o)if(e.matcher===r||r===``){let t=e.hooks.find(e=>s9e(e.hook,i));if(t)return t}}}function kP(e,t){e(e=>(e.sessionHooks.delete(t),e)),U(`Cleared all session hooks for session ${t}`)}var AP=n((()=>{$ne(),W(),OP()}));function x9e(e,t,n,r,i=!1){if(!n||Object.keys(n).length===0)return;let a=0;for(let o of ji){let s=n[o];if(!s||s.length===0)continue;let c=o;i&&o===`Stop`&&(c=`SubagentStop`,U(`Converting Stop hook to SubagentStop for ${r} (subagents trigger SubagentStop)`));for(let n of s){let r=n.matcher??``,i=n.hooks;if(!(!i||i.length===0))for(let n of i)p9e(e,t,c,r,n),a++}}a>0&&U(`Registered ${a} frontmatter hook(s) from ${r} for session ${t}`)}var S9e=n((()=>{$ne(),W(),AP()}));function C9e(){return`inherit`}function jP(e,t,n,r){if(process.env.CLAUDE_CODE_SUBAGENT_MODEL)return Dn(process.env.CLAUDE_CODE_SUBAGENT_MODEL);let i=wie(t),a=(e,t)=>i&&ar()===`bedrock`?wie(t)?e:Woe(e,i):e;if(n)return w9e(n,t)?t:a(Dn(n),n);let o=e??C9e();return o===`inherit`?Oi({permissionMode:r??`default`,mainLoopModel:t,exceeds200kTokens:!1}):w9e(o,t)?t:a(Dn(o),o)}function w9e(e,t){let n=ni(t);switch(e.toLowerCase()){case`opus`:return n.includes(`opus`);case`sonnet`:return n.includes(`sonnet`);case`haiku`:return n.includes(`haiku`);default:return!1}}function T9e(e){return e?e===`inherit`?`Inherit from parent`:ure(e):`Inherit from parent (default)`}function E9e(){return[{value:`sonnet`,label:`Sonnet`,description:`Balanced performance - best for most agents`},{value:`opus`,label:`Opus`,description:`Most capable for complex reasoning tasks`},{value:`haiku`,label:`Haiku`,description:`Fast and efficient for simple tasks`},{value:`inherit`,label:`Inherit from parent`,description:`Use the same model as the main conversation`}]}var MP=n((()=>{Di(),Jne(),Mr(),hr(),Pn(),[...iie]}));function D9e(e){switch(e){case`user`:case`assistant`:case`system`:case`tool`:return!0;default:return!1}}function NP(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function O9e(e){if(!NP(e))return!1;let t=e.function;return typeof e.id==`string`&&e.type===`function`&&NP(t)&&typeof t.name==`string`&&typeof t.arguments==`string`}function PP(e){return Array.isArray(e)?e.filter(O9e):[]}function k9e(e){return e.flatMap(e=>NP(e)?PP(e.tool_calls):[])}function A9e(...e){let t=new Map;for(let n of e.flat()){let e=n.id||`${n.function.name}:${n.function.arguments}`;t.has(e)||t.set(e,n)}return[...t.values()]}function FP(e){let t=e.type;if(t===`text`)return{type:`text`,text:String(e.text??``)};if(t===`thinking`||t===`redacted_thinking`)return{type:`thinking`,thinking:String(e.thinking??`[redacted]`)};if(t===`image`)return{type:`text`,text:`[image]`};if(t===`document`)return{type:`text`,text:`[document: ${e.source?.filename??e.title??`document`}]`};if(t===`server_tool_use`||t===`web_search_tool_result`||t===`tool_search_tool_result`)return{type:t,id:String(e.id??``),name:String(e.name??t)};let n={type:t??`unknown`};for(let[t,r]of Object.entries(e))(typeof r==`string`||typeof r==`number`||typeof r==`boolean`)&&(n[t]=r);return n}function j9e(e){let t=[],n=[];for(let r of e){if(!r||typeof r!=`object`){n.push(r);continue}let e=r;e.type===`tool_use`?t.push({id:String(e.id??``),type:`function`,function:{name:String(e.name??``),arguments:typeof e.input==`string`?e.input:JSON.stringify(e.input??{})}}):n.push(r)}return{tool_calls:t,rest:n}}function M9e(e){let t=[],n=[];for(let r of e){if(!r||typeof r!=`object`){n.push(r);continue}let e=r;if(e.type===`tool_result`){let n=Array.isArray(e.content)?e.content.map(e=>e.type===`text`?String(e.text??``):e.type===`image`?`[image]`:e.type===`document`?`[document]`:`[${String(e.type??`unknown`)}]`).join(`
|
|
1009
1009
|
`):String(e.content??``);t.push({role:`tool`,tool_call_id:String(e.tool_use_id??``),content:n})}else n.push(r)}return{toolMessages:t,rest:n}}function IP(e){return e.length===0?``:e.every(e=>e.type===`text`)?e.map(e=>e.text).join(`
|
|
1010
|
-
`):e}function N9e(e){return e.type===`assistant`?`assistant`:e.type===`system`?`system`:`user`}function LP(e,t){let n=[];if(t&&t.length>0)for(let e of t)e.trim()&&n.push({role:`system`,content:e});for(let t of e){if(!NP(t))continue;let e=t.message,r=NP(e),i=r?e:t,a=D9e(i.role)?i.role:r?N9e(t):`user`,o=i.content;if(typeof o==`string`||!Array.isArray(o)){let e=PP(i.tool_calls);n.push({role:a,content:String(o??``),...`tool_call_id`in i&&typeof i.tool_call_id==`string`?{tool_call_id:i.tool_call_id}:{},...e.length>0?{tool_calls:e}:{}});continue}if(a===`assistant`){let{tool_calls:e,rest:t}=j9e(o),r=A9e(e,PP(i.tool_calls),k9e(t)),a=t.filter(e=>typeof e==`object`&&!!e).map(e=>FP(e)).filter(e=>e!==null);n.push({role:`assistant`,content:IP(a),...r.length>0&&{tool_calls:r}})}else{let{toolMessages:e,rest:t}=M9e(o),r=t.filter(e=>typeof e==`object`&&!!e).map(e=>FP(e)).filter(e=>e!==null);if(r.length>0||e.length===0){let e=A9e(PP(i.tool_calls),k9e(t));n.push({role:a,content:IP(r),...`tool_call_id`in i&&typeof i.tool_call_id==`string`?{tool_call_id:i.tool_call_id}:{},...e.length>0?{tool_calls:e}:{}})}n.push(...e)}}return n}function RP(e){return e.map(e=>{let t=e;return{type:`function`,function:{name:t.name,description:t.description,parameters:t.input_schema??t.parameters??{}}}})}function zP(e){if(e.length===0)return null;let t=e=>{let t=e.message?.content;if(typeof t==`string`||!Array.isArray(t))return{role:`assistant`,content:String(t??``)};let{tool_calls:n,rest:r}=j9e(t);return{role:`assistant`,content:IP(r.filter(e=>typeof e==`object`&&!!e).map(e=>FP(e)).filter(e=>e!==null)),...n.length>0&&{tool_calls:n}}};return e.length===1?t(e[0]):e.map(t)}var BP=n((()=>{}));function P9e(e){let t=e.find(e=>e.type===`user`);if(!t)return``;let n=t.message.content;if(typeof n==`string`)return n;if(Array.isArray(n)){let e=n.find(e=>e.type===`text`);if(e&&e.type===`text`)return e.text}return``}function F9e(e,t){let n=`${L9e}${[4,7,20].map(t=>e[t]||`0`).join(``)}${t}`;return id(`sha256`).update(n).digest(`hex`).slice(0,3)}function I9e(e){return F9e(P9e(e),`2.6.10`)}var L9e,R9e=n((()=>{L9e=`59cf53e54c78`}));function VP(e,t,n,r,i){if(r===`m`)throw TypeError(`Private method is not writable`);if(r===`a`&&!i)throw TypeError(`Private accessor was defined without a setter`);if(typeof t==`function`?e!==t||!i:!t.has(e))throw TypeError(`Cannot write private member to an object whose class did not declare it`);return r===`a`?i.call(e,n):i?i.value=n:t.set(e,n),n}function $(e,t,n,r){if(n===`a`&&!r)throw TypeError(`Private accessor was defined without a getter`);if(typeof t==`function`?e!==t||!r:!t.has(e))throw TypeError(`Cannot read private member from an object whose class did not declare it`);return n===`m`?r:n===`a`?r.call(e):r?r.value:t.get(e)}var HP=n((()=>{})),UP,z9e=n((()=>{UP=function(){let{crypto:e}=globalThis;if(e?.randomUUID)return UP=e.randomUUID.bind(e),e.randomUUID();let t=new Uint8Array(1),n=e?()=>e.getRandomValues(t)[0]:()=>Math.random()*255&255;return`10000000-1000-4000-8000-100000000000`.replace(/[018]/g,e=>(e^n()&15>>e/4).toString(16))}}));function WP(e){return typeof e==`object`&&!!e&&(`name`in e&&e.name===`AbortError`||`message`in e&&String(e.message).includes(`FetchRequestCanceledException`))}var GP,KP=n((()=>{GP=e=>{if(e instanceof Error)return e;if(typeof e==`object`&&e){try{if(Object.prototype.toString.call(e)===`[object Error]`){let t=Error(e.message,e.cause?{cause:e.cause}:{});return e.stack&&(t.stack=e.stack),e.cause&&!t.cause&&(t.cause=e.cause),e.name&&(t.name=e.name),t}}catch{}try{return Error(JSON.stringify(e))}catch{}}return Error(e)}})),qP,JP,YP,XP,ZP,QP,$P,eF,tF,nF,rF,iF,aF,oF,sF,cF,lF,B9e,uF=n((()=>{KP(),qP=class extends Error{},JP=class e extends qP{constructor(t,n,r,i){super(`${e.makeMessage(t,n,r)}`),this.status=t,this.headers=i,this.requestID=i?.get(`x-request-id`),this.error=n;let a=n;this.code=a?.code,this.param=a?.param,this.type=a?.type}static makeMessage(e,t,n){let r=t?.message?typeof t.message==`string`?t.message:JSON.stringify(t.message):t?JSON.stringify(t):n;return e&&r?`${e} ${r}`:e?`${e} status code (no body)`:r||`(no status code or body)`}static generate(t,n,r,i){if(!t||!i)return new XP({message:r,cause:GP(n)});let a=n?.error;return t===400?new QP(t,a,r,i):t===401?new $P(t,a,r,i):t===403?new eF(t,a,r,i):t===404?new tF(t,a,r,i):t===409?new nF(t,a,r,i):t===422?new rF(t,a,r,i):t===429?new iF(t,a,r,i):t>=500?new aF(t,a,r,i):new e(t,a,r,i)}},YP=class extends JP{constructor({message:e}={}){super(void 0,void 0,e||`Request was aborted.`,void 0)}},XP=class extends JP{constructor({message:e,cause:t}){super(void 0,void 0,e||`Connection error.`,void 0),t&&(this.cause=t)}},ZP=class extends XP{constructor({message:e}={}){super({message:e??`Request timed out.`})}},QP=class extends JP{},$P=class extends JP{},eF=class extends JP{},tF=class extends JP{},nF=class extends JP{},rF=class extends JP{},iF=class extends JP{},aF=class extends JP{},oF=class extends qP{constructor(){super(`Could not parse response content as the length limit was reached`)}},sF=class extends qP{constructor(){super(`Could not parse response content as the request was rejected by the content filter`)}},cF=class extends Error{constructor(e){super(e)}},lF=class extends JP{constructor(e,t,n){let r=`OAuth2 authentication error`,i;if(t&&typeof t==`object`){let e=t;i=e.error;let n=e.error_description;n&&typeof n==`string`?r=n:i&&(r=i)}super(e,t,r,n),this.error_code=i}},B9e=class extends qP{constructor(e,t,n){super(e),this.provider=t,this.cause=n}}}));function V9e(e){return typeof e==`object`?e??{}:{}}function H9e(e){if(!e)return!0;for(let t in e)return!1;return!0}function U9e(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function dF(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var W9e,G9e,fF,pF,K9e,q9e,mF=n((()=>{uF(),W9e=/^[a-z][a-z0-9+.-]*:/i,G9e=e=>W9e.test(e),fF=e=>(fF=Array.isArray,fF(e)),pF=fF,K9e=(e,t)=>{if(typeof t!=`number`||!Number.isInteger(t))throw new qP(`${e} must be an integer`);if(t<0)throw new qP(`${e} must be a positive integer`);return t},q9e=e=>{try{return JSON.parse(e)}catch{return}}})),hF,gF=n((()=>{hF=e=>new Promise(t=>setTimeout(t,e))})),_F,J9e=n((()=>{_F=`6.34.0`}));function Y9e(){return typeof Deno<`u`&&Deno.build!=null?`deno`:typeof EdgeRuntime<`u`?`edge`:Object.prototype.toString.call(globalThis.process===void 0?0:globalThis.process)===`[object process]`?`node`:`unknown`}function X9e(){if(typeof navigator>`u`||!navigator)return null;for(let{key:e,pattern:t}of[{key:`edge`,pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:`ie`,pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:`ie`,pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:`chrome`,pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:`firefox`,pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:`safari`,pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}]){let n=t.exec(navigator.userAgent);if(n)return{browser:e,version:`${n[1]||0}.${n[2]||0}.${n[3]||0}`}}return null}var Z9e,Q9e,vF,yF,$9e,eet,tet=n((()=>{J9e(),Z9e=()=>typeof window<`u`&&window.document!==void 0&&typeof navigator<`u`,Q9e=()=>{let e=Y9e();if(e===`deno`)return{"X-Stainless-Lang":`js`,"X-Stainless-Package-Version":_F,"X-Stainless-OS":yF(Deno.build.os),"X-Stainless-Arch":vF(Deno.build.arch),"X-Stainless-Runtime":`deno`,"X-Stainless-Runtime-Version":typeof Deno.version==`string`?Deno.version:Deno.version?.deno??`unknown`};if(typeof EdgeRuntime<`u`)return{"X-Stainless-Lang":`js`,"X-Stainless-Package-Version":_F,"X-Stainless-OS":`Unknown`,"X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":`edge`,"X-Stainless-Runtime-Version":globalThis.process.version};if(e===`node`)return{"X-Stainless-Lang":`js`,"X-Stainless-Package-Version":_F,"X-Stainless-OS":yF(globalThis.process.platform??`unknown`),"X-Stainless-Arch":vF(globalThis.process.arch??`unknown`),"X-Stainless-Runtime":`node`,"X-Stainless-Runtime-Version":globalThis.process.version??`unknown`};let t=X9e();return t?{"X-Stainless-Lang":`js`,"X-Stainless-Package-Version":_F,"X-Stainless-OS":`Unknown`,"X-Stainless-Arch":`unknown`,"X-Stainless-Runtime":`browser:${t.browser}`,"X-Stainless-Runtime-Version":t.version}:{"X-Stainless-Lang":`js`,"X-Stainless-Package-Version":_F,"X-Stainless-OS":`Unknown`,"X-Stainless-Arch":`unknown`,"X-Stainless-Runtime":`unknown`,"X-Stainless-Runtime-Version":`unknown`}},vF=e=>e===`x32`?`x32`:e===`x86_64`||e===`x64`?`x64`:e===`arm`?`arm`:e===`aarch64`||e===`arm64`?`arm64`:e?`other:${e}`:`unknown`,yF=e=>(e=e.toLowerCase(),e.includes(`ios`)?`iOS`:e===`android`?`Android`:e===`darwin`?`MacOS`:e===`win32`?`Windows`:e===`freebsd`?`FreeBSD`:e===`openbsd`?`OpenBSD`:e===`linux`?`Linux`:e?`Other:${e}`:`Unknown`),eet=()=>$9e??($9e=Q9e())}));function net(){if(typeof fetch<`u`)return fetch;throw Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new OpenAI({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function ret(...e){let t=globalThis.ReadableStream;if(t===void 0)throw Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new t(...e)}function iet(e){let t=Symbol.asyncIterator in e?e[Symbol.asyncIterator]():e[Symbol.iterator]();return ret({start(){},async pull(e){let{done:n,value:r}=await t.next();n?e.close():e.enqueue(r)},async cancel(){await t.return?.()}})}function aet(e){if(e[Symbol.asyncIterator])return e;let t=e.getReader();return{async next(){try{let e=await t.read();return e?.done&&t.releaseLock(),e}catch(e){throw t.releaseLock(),e}},async return(){let e=t.cancel();return t.releaseLock(),await e,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function oet(e){if(typeof e!=`object`||!e)return;if(e[Symbol.asyncIterator]){await e[Symbol.asyncIterator]().return?.();return}let t=e.getReader(),n=t.cancel();t.releaseLock(),await n}var bF=n((()=>{})),set,cet=n((()=>{set=({headers:e,body:t})=>({bodyHeaders:{"content-type":`application/json`},body:JSON.stringify(t)})})),xF,SF,CF,uet=n((()=>{xF=`RFC3986`,SF=e=>String(e),CF={RFC1738:e=>String(e).replace(/%20/g,`+`),RFC3986:SF}}));function det(e){return!e||typeof e!=`object`?!1:!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))}function fet(e,t){if(fF(e)){let n=[];for(let r=0;r<e.length;r+=1)n.push(t(e[r]));return n}return t(e)}var wF,TF,EF,pet,met=n((()=>{uet(),mF(),wF=(e,t)=>(wF=Object.hasOwn??Function.prototype.call.bind(Object.prototype.hasOwnProperty),wF(e,t)),TF=(()=>{let e=[];for(let t=0;t<256;++t)e.push(`%`+((t<16?`0`:``)+t.toString(16)).toUpperCase());return e})(),EF=1024,pet=(e,t,n,r,i)=>{if(e.length===0)return e;let a=e;if(typeof e==`symbol`?a=Symbol.prototype.toString.call(e):typeof e!=`string`&&(a=String(e)),n===`iso-8859-1`)return escape(a).replace(/%u[0-9a-f]{4}/gi,function(e){return`%26%23`+parseInt(e.slice(2),16)+`%3B`});let o=``;for(let e=0;e<a.length;e+=EF){let t=a.length>=EF?a.slice(e,e+EF):a,n=[];for(let e=0;e<t.length;++e){let r=t.charCodeAt(e);if(r===45||r===46||r===95||r===126||r>=48&&r<=57||r>=65&&r<=90||r>=97&&r<=122||i===`RFC1738`&&(r===40||r===41)){n[n.length]=t.charAt(e);continue}if(r<128){n[n.length]=TF[r];continue}if(r<2048){n[n.length]=TF[192|r>>6]+TF[128|r&63];continue}if(r<55296||r>=57344){n[n.length]=TF[224|r>>12]+TF[128|r>>6&63]+TF[128|r&63];continue}e+=1,r=65536+((r&1023)<<10|t.charCodeAt(e)&1023),n[n.length]=TF[240|r>>18]+TF[128|r>>12&63]+TF[128|r>>6&63]+TF[128|r&63]}o+=n.join(``)}return o}}));function het(e){return typeof e==`string`||typeof e==`number`||typeof e==`boolean`||typeof e==`symbol`||typeof e==`bigint`}function get(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_){let v=e,y=_,b=0,x=!1;for(;(y=y.get(AF))!==void 0&&!x;){let t=y.get(e);if(b+=1,t!==void 0){if(t===b)throw RangeError(`Cyclic object value`);x=!0}y.get(AF)===void 0&&(b=0)}if(typeof l==`function`?v=l(t,v):v instanceof Date?v=f?.(v):n===`comma`&&fF(v)&&(v=fet(v,function(e){return e instanceof Date?f?.(e):e})),v===null){if(a)return c&&!h?c(t,kF.encoder,g,`key`,p):t;v=``}if(het(v)||det(v)){if(c){let e=h?t:c(t,kF.encoder,g,`key`,p);return[m?.(e)+`=`+m?.(c(v,kF.encoder,g,`value`,p))]}return[m?.(t)+`=`+m?.(String(v))]}let S=[];if(v===void 0)return S;let C;if(n===`comma`&&fF(v))h&&c&&(v=fet(v,c)),C=[{value:v.length>0?v.join(`,`)||null:void 0}];else if(fF(l))C=l;else{let e=Object.keys(v);C=u?e.sort(u):e}let w=s?String(t).replace(/\./g,`%2E`):String(t),T=r&&fF(v)&&v.length===1?w+`[]`:w;if(i&&fF(v)&&v.length===0)return T+`[]`;for(let t=0;t<C.length;++t){let y=C[t],x=typeof y==`object`&&y.value!==void 0?y.value:v[y];if(o&&x===null)continue;let w=d&&s?y.replace(/\./g,`%2E`):y,E=fF(v)?typeof n==`function`?n(T,w):T:T+(d?`.`+w:`[`+w+`]`);_.set(e,b);let D=new WeakMap;D.set(AF,_),OF(S,get(x,E,n,r,i,a,o,s,n===`comma`&&h&&fF(v)?null:c,l,u,d,f,p,m,h,g,D))}return S}function _et(e=kF){if(e.allowEmptyArrays!==void 0&&typeof e.allowEmptyArrays!=`boolean`)throw TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(e.encodeDotInKeys!==void 0&&typeof e.encodeDotInKeys!=`boolean`)throw TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");if(e.encoder!==null&&e.encoder!==void 0&&typeof e.encoder!=`function`)throw TypeError(`Encoder has to be a function.`);let t=e.charset||kF.charset;if(e.charset!==void 0&&e.charset!==`utf-8`&&e.charset!==`iso-8859-1`)throw TypeError(`The charset option must be either utf-8, iso-8859-1, or undefined`);let n=xF;if(e.format!==void 0){if(!wF(CF,e.format))throw TypeError(`Unknown format option provided.`);n=e.format}let r=CF[n],i=kF.filter;(typeof e.filter==`function`||fF(e.filter))&&(i=e.filter);let a;if(a=e.arrayFormat&&e.arrayFormat in DF?e.arrayFormat:`indices`in e?e.indices?`indices`:`repeat`:kF.arrayFormat,`commaRoundTrip`in e&&typeof e.commaRoundTrip!=`boolean`)throw TypeError("`commaRoundTrip` must be a boolean, or absent");let o=e.allowDots===void 0?e.encodeDotInKeys?!0:kF.allowDots:!!e.allowDots;return{addQueryPrefix:typeof e.addQueryPrefix==`boolean`?e.addQueryPrefix:kF.addQueryPrefix,allowDots:o,allowEmptyArrays:typeof e.allowEmptyArrays==`boolean`?!!e.allowEmptyArrays:kF.allowEmptyArrays,arrayFormat:a,charset:t,charsetSentinel:typeof e.charsetSentinel==`boolean`?e.charsetSentinel:kF.charsetSentinel,commaRoundTrip:!!e.commaRoundTrip,delimiter:e.delimiter===void 0?kF.delimiter:e.delimiter,encode:typeof e.encode==`boolean`?e.encode:kF.encode,encodeDotInKeys:typeof e.encodeDotInKeys==`boolean`?e.encodeDotInKeys:kF.encodeDotInKeys,encoder:typeof e.encoder==`function`?e.encoder:kF.encoder,encodeValuesOnly:typeof e.encodeValuesOnly==`boolean`?e.encodeValuesOnly:kF.encodeValuesOnly,filter:i,format:n,formatter:r,serializeDate:typeof e.serializeDate==`function`?e.serializeDate:kF.serializeDate,skipNulls:typeof e.skipNulls==`boolean`?e.skipNulls:kF.skipNulls,sort:typeof e.sort==`function`?e.sort:null,strictNullHandling:typeof e.strictNullHandling==`boolean`?e.strictNullHandling:kF.strictNullHandling}}function vet(e,t={}){let n=e,r=_et(t),i,a;typeof r.filter==`function`?(a=r.filter,n=a(``,n)):fF(r.filter)&&(a=r.filter,i=a);let o=[];if(typeof n!=`object`||!n)return``;let s=DF[r.arrayFormat],c=s===`comma`&&r.commaRoundTrip;i||(i=Object.keys(n)),r.sort&&i.sort(r.sort);let l=new WeakMap;for(let e=0;e<i.length;++e){let t=i[e];r.skipNulls&&n[t]===null||OF(o,get(n[t],t,s,c,r.allowEmptyArrays,r.strictNullHandling,r.skipNulls,r.encodeDotInKeys,r.encode?r.encoder:null,r.filter,r.sort,r.allowDots,r.serializeDate,r.format,r.formatter,r.encodeValuesOnly,r.charset,l))}let u=o.join(r.delimiter),d=r.addQueryPrefix===!0?`?`:``;return r.charsetSentinel&&(r.charset===`iso-8859-1`?d+=`utf8=%26%2310003%3B&`:d+=`utf8=%E2%9C%93&`),u.length>0?d+u:``}var DF,OF,yet,kF,AF,bet=n((()=>{met(),uet(),mF(),DF={brackets(e){return String(e)+`[]`},comma:`comma`,indices(e,t){return String(e)+`[`+t+`]`},repeat(e){return String(e)}},OF=function(e,t){Array.prototype.push.apply(e,fF(t)?t:[t])},kF={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:`indices`,charset:`utf-8`,charsetSentinel:!1,delimiter:`&`,encode:!0,encodeDotInKeys:!1,encoder:pet,encodeValuesOnly:!1,format:xF,formatter:SF,indices:!1,serializeDate(e){return(yet??(yet=Function.prototype.call.bind(Date.prototype.toISOString)))(e)},skipNulls:!1,strictNullHandling:!1},AF={}}));function xet(e){return vet(e,{arrayFormat:`brackets`})}var Cet=n((()=>{bet()}));function wet(e){let t=0;for(let n of e)t+=n.length;let n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.length;return n}function jF(e){let t;return(Eet??(t=new globalThis.TextEncoder,Eet=t.encode.bind(t)))(e)}function Tet(e){let t;return(Det??(t=new globalThis.TextDecoder,Det=t.decode.bind(t)))(e)}var Eet,Det,Oet=n((()=>{}));function ket(e,t){for(let n=t??0;n<e.length;n++){if(e[n]===10)return{preceding:n,index:n+1,carriage:!1};if(e[n]===13)return{preceding:n,index:n+1,carriage:!0}}return null}function Aet(e){for(let t=0;t<e.length-1;t++){if(e[t]===10&&e[t+1]===10||e[t]===13&&e[t+1]===13)return t+2;if(e[t]===13&&e[t+1]===10&&t+3<e.length&&e[t+2]===13&&e[t+3]===10)return t+4}return-1}var MF,NF,PF,jet=n((()=>{HP(),Oet(),PF=class{constructor(){MF.set(this,void 0),NF.set(this,void 0),VP(this,MF,new Uint8Array,`f`),VP(this,NF,null,`f`)}decode(e){if(e==null)return[];let t=e instanceof ArrayBuffer?new Uint8Array(e):typeof e==`string`?jF(e):e;VP(this,MF,wet([$(this,MF,`f`),t]),`f`);let n=[],r;for(;(r=ket($(this,MF,`f`),$(this,NF,`f`)))!=null;){if(r.carriage&&$(this,NF,`f`)==null){VP(this,NF,r.index,`f`);continue}if($(this,NF,`f`)!=null&&(r.index!==$(this,NF,`f`)+1||r.carriage)){n.push(Tet($(this,MF,`f`).subarray(0,$(this,NF,`f`)-1))),VP(this,MF,$(this,MF,`f`).subarray($(this,NF,`f`)),`f`),VP(this,NF,null,`f`);continue}let e=$(this,NF,`f`)===null?r.preceding:r.preceding-1,t=Tet($(this,MF,`f`).subarray(0,e));n.push(t),VP(this,MF,$(this,MF,`f`).subarray(r.index),`f`),VP(this,NF,null,`f`)}return n}flush(){return $(this,MF,`f`).length?this.decode(`
|
|
1010
|
+
`):e}function N9e(e){return e.type===`assistant`?`assistant`:e.type===`system`?`system`:`user`}function LP(e,t){let n=[];if(t&&t.length>0)for(let e of t)e.trim()&&n.push({role:`system`,content:e});for(let t of e){if(!NP(t))continue;let e=t.message,r=NP(e),i=r?e:t,a=D9e(i.role)?i.role:r?N9e(t):`user`,o=i.content;if(typeof o==`string`||!Array.isArray(o)){let e=PP(i.tool_calls);n.push({role:a,content:String(o??``),...`tool_call_id`in i&&typeof i.tool_call_id==`string`?{tool_call_id:i.tool_call_id}:{},...e.length>0?{tool_calls:e}:{}});continue}if(a===`assistant`){let{tool_calls:e,rest:t}=j9e(o),r=A9e(e,PP(i.tool_calls),k9e(t)),a=t.filter(e=>typeof e==`object`&&!!e).map(e=>FP(e)).filter(e=>e!==null);n.push({role:`assistant`,content:IP(a),...r.length>0&&{tool_calls:r}})}else{let{toolMessages:e,rest:t}=M9e(o),r=t.filter(e=>typeof e==`object`&&!!e).map(e=>FP(e)).filter(e=>e!==null);if(r.length>0||e.length===0){let e=A9e(PP(i.tool_calls),k9e(t));n.push({role:a,content:IP(r),...`tool_call_id`in i&&typeof i.tool_call_id==`string`?{tool_call_id:i.tool_call_id}:{},...e.length>0?{tool_calls:e}:{}})}n.push(...e)}}return n}function RP(e){return e.map(e=>{let t=e;return{type:`function`,function:{name:t.name,description:t.description,parameters:t.input_schema??t.parameters??{}}}})}function zP(e){if(e.length===0)return null;let t=e=>{let t=e.message?.content;if(typeof t==`string`||!Array.isArray(t))return{role:`assistant`,content:String(t??``)};let{tool_calls:n,rest:r}=j9e(t);return{role:`assistant`,content:IP(r.filter(e=>typeof e==`object`&&!!e).map(e=>FP(e)).filter(e=>e!==null)),...n.length>0&&{tool_calls:n}}};return e.length===1?t(e[0]):e.map(t)}var BP=n((()=>{}));function P9e(e){let t=e.find(e=>e.type===`user`);if(!t)return``;let n=t.message.content;if(typeof n==`string`)return n;if(Array.isArray(n)){let e=n.find(e=>e.type===`text`);if(e&&e.type===`text`)return e.text}return``}function F9e(e,t){let n=`${L9e}${[4,7,20].map(t=>e[t]||`0`).join(``)}${t}`;return id(`sha256`).update(n).digest(`hex`).slice(0,3)}function I9e(e){return F9e(P9e(e),`2.6.11`)}var L9e,R9e=n((()=>{L9e=`59cf53e54c78`}));function VP(e,t,n,r,i){if(r===`m`)throw TypeError(`Private method is not writable`);if(r===`a`&&!i)throw TypeError(`Private accessor was defined without a setter`);if(typeof t==`function`?e!==t||!i:!t.has(e))throw TypeError(`Cannot write private member to an object whose class did not declare it`);return r===`a`?i.call(e,n):i?i.value=n:t.set(e,n),n}function $(e,t,n,r){if(n===`a`&&!r)throw TypeError(`Private accessor was defined without a getter`);if(typeof t==`function`?e!==t||!r:!t.has(e))throw TypeError(`Cannot read private member from an object whose class did not declare it`);return n===`m`?r:n===`a`?r.call(e):r?r.value:t.get(e)}var HP=n((()=>{})),UP,z9e=n((()=>{UP=function(){let{crypto:e}=globalThis;if(e?.randomUUID)return UP=e.randomUUID.bind(e),e.randomUUID();let t=new Uint8Array(1),n=e?()=>e.getRandomValues(t)[0]:()=>Math.random()*255&255;return`10000000-1000-4000-8000-100000000000`.replace(/[018]/g,e=>(e^n()&15>>e/4).toString(16))}}));function WP(e){return typeof e==`object`&&!!e&&(`name`in e&&e.name===`AbortError`||`message`in e&&String(e.message).includes(`FetchRequestCanceledException`))}var GP,KP=n((()=>{GP=e=>{if(e instanceof Error)return e;if(typeof e==`object`&&e){try{if(Object.prototype.toString.call(e)===`[object Error]`){let t=Error(e.message,e.cause?{cause:e.cause}:{});return e.stack&&(t.stack=e.stack),e.cause&&!t.cause&&(t.cause=e.cause),e.name&&(t.name=e.name),t}}catch{}try{return Error(JSON.stringify(e))}catch{}}return Error(e)}})),qP,JP,YP,XP,ZP,QP,$P,eF,tF,nF,rF,iF,aF,oF,sF,cF,lF,B9e,uF=n((()=>{KP(),qP=class extends Error{},JP=class e extends qP{constructor(t,n,r,i){super(`${e.makeMessage(t,n,r)}`),this.status=t,this.headers=i,this.requestID=i?.get(`x-request-id`),this.error=n;let a=n;this.code=a?.code,this.param=a?.param,this.type=a?.type}static makeMessage(e,t,n){let r=t?.message?typeof t.message==`string`?t.message:JSON.stringify(t.message):t?JSON.stringify(t):n;return e&&r?`${e} ${r}`:e?`${e} status code (no body)`:r||`(no status code or body)`}static generate(t,n,r,i){if(!t||!i)return new XP({message:r,cause:GP(n)});let a=n?.error;return t===400?new QP(t,a,r,i):t===401?new $P(t,a,r,i):t===403?new eF(t,a,r,i):t===404?new tF(t,a,r,i):t===409?new nF(t,a,r,i):t===422?new rF(t,a,r,i):t===429?new iF(t,a,r,i):t>=500?new aF(t,a,r,i):new e(t,a,r,i)}},YP=class extends JP{constructor({message:e}={}){super(void 0,void 0,e||`Request was aborted.`,void 0)}},XP=class extends JP{constructor({message:e,cause:t}){super(void 0,void 0,e||`Connection error.`,void 0),t&&(this.cause=t)}},ZP=class extends XP{constructor({message:e}={}){super({message:e??`Request timed out.`})}},QP=class extends JP{},$P=class extends JP{},eF=class extends JP{},tF=class extends JP{},nF=class extends JP{},rF=class extends JP{},iF=class extends JP{},aF=class extends JP{},oF=class extends qP{constructor(){super(`Could not parse response content as the length limit was reached`)}},sF=class extends qP{constructor(){super(`Could not parse response content as the request was rejected by the content filter`)}},cF=class extends Error{constructor(e){super(e)}},lF=class extends JP{constructor(e,t,n){let r=`OAuth2 authentication error`,i;if(t&&typeof t==`object`){let e=t;i=e.error;let n=e.error_description;n&&typeof n==`string`?r=n:i&&(r=i)}super(e,t,r,n),this.error_code=i}},B9e=class extends qP{constructor(e,t,n){super(e),this.provider=t,this.cause=n}}}));function V9e(e){return typeof e==`object`?e??{}:{}}function H9e(e){if(!e)return!0;for(let t in e)return!1;return!0}function U9e(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function dF(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var W9e,G9e,fF,pF,K9e,q9e,mF=n((()=>{uF(),W9e=/^[a-z][a-z0-9+.-]*:/i,G9e=e=>W9e.test(e),fF=e=>(fF=Array.isArray,fF(e)),pF=fF,K9e=(e,t)=>{if(typeof t!=`number`||!Number.isInteger(t))throw new qP(`${e} must be an integer`);if(t<0)throw new qP(`${e} must be a positive integer`);return t},q9e=e=>{try{return JSON.parse(e)}catch{return}}})),hF,gF=n((()=>{hF=e=>new Promise(t=>setTimeout(t,e))})),_F,J9e=n((()=>{_F=`6.34.0`}));function Y9e(){return typeof Deno<`u`&&Deno.build!=null?`deno`:typeof EdgeRuntime<`u`?`edge`:Object.prototype.toString.call(globalThis.process===void 0?0:globalThis.process)===`[object process]`?`node`:`unknown`}function X9e(){if(typeof navigator>`u`||!navigator)return null;for(let{key:e,pattern:t}of[{key:`edge`,pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:`ie`,pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:`ie`,pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:`chrome`,pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:`firefox`,pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:`safari`,pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}]){let n=t.exec(navigator.userAgent);if(n)return{browser:e,version:`${n[1]||0}.${n[2]||0}.${n[3]||0}`}}return null}var Z9e,Q9e,vF,yF,$9e,eet,tet=n((()=>{J9e(),Z9e=()=>typeof window<`u`&&window.document!==void 0&&typeof navigator<`u`,Q9e=()=>{let e=Y9e();if(e===`deno`)return{"X-Stainless-Lang":`js`,"X-Stainless-Package-Version":_F,"X-Stainless-OS":yF(Deno.build.os),"X-Stainless-Arch":vF(Deno.build.arch),"X-Stainless-Runtime":`deno`,"X-Stainless-Runtime-Version":typeof Deno.version==`string`?Deno.version:Deno.version?.deno??`unknown`};if(typeof EdgeRuntime<`u`)return{"X-Stainless-Lang":`js`,"X-Stainless-Package-Version":_F,"X-Stainless-OS":`Unknown`,"X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":`edge`,"X-Stainless-Runtime-Version":globalThis.process.version};if(e===`node`)return{"X-Stainless-Lang":`js`,"X-Stainless-Package-Version":_F,"X-Stainless-OS":yF(globalThis.process.platform??`unknown`),"X-Stainless-Arch":vF(globalThis.process.arch??`unknown`),"X-Stainless-Runtime":`node`,"X-Stainless-Runtime-Version":globalThis.process.version??`unknown`};let t=X9e();return t?{"X-Stainless-Lang":`js`,"X-Stainless-Package-Version":_F,"X-Stainless-OS":`Unknown`,"X-Stainless-Arch":`unknown`,"X-Stainless-Runtime":`browser:${t.browser}`,"X-Stainless-Runtime-Version":t.version}:{"X-Stainless-Lang":`js`,"X-Stainless-Package-Version":_F,"X-Stainless-OS":`Unknown`,"X-Stainless-Arch":`unknown`,"X-Stainless-Runtime":`unknown`,"X-Stainless-Runtime-Version":`unknown`}},vF=e=>e===`x32`?`x32`:e===`x86_64`||e===`x64`?`x64`:e===`arm`?`arm`:e===`aarch64`||e===`arm64`?`arm64`:e?`other:${e}`:`unknown`,yF=e=>(e=e.toLowerCase(),e.includes(`ios`)?`iOS`:e===`android`?`Android`:e===`darwin`?`MacOS`:e===`win32`?`Windows`:e===`freebsd`?`FreeBSD`:e===`openbsd`?`OpenBSD`:e===`linux`?`Linux`:e?`Other:${e}`:`Unknown`),eet=()=>$9e??($9e=Q9e())}));function net(){if(typeof fetch<`u`)return fetch;throw Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new OpenAI({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function ret(...e){let t=globalThis.ReadableStream;if(t===void 0)throw Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new t(...e)}function iet(e){let t=Symbol.asyncIterator in e?e[Symbol.asyncIterator]():e[Symbol.iterator]();return ret({start(){},async pull(e){let{done:n,value:r}=await t.next();n?e.close():e.enqueue(r)},async cancel(){await t.return?.()}})}function aet(e){if(e[Symbol.asyncIterator])return e;let t=e.getReader();return{async next(){try{let e=await t.read();return e?.done&&t.releaseLock(),e}catch(e){throw t.releaseLock(),e}},async return(){let e=t.cancel();return t.releaseLock(),await e,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function oet(e){if(typeof e!=`object`||!e)return;if(e[Symbol.asyncIterator]){await e[Symbol.asyncIterator]().return?.();return}let t=e.getReader(),n=t.cancel();t.releaseLock(),await n}var bF=n((()=>{})),set,cet=n((()=>{set=({headers:e,body:t})=>({bodyHeaders:{"content-type":`application/json`},body:JSON.stringify(t)})})),xF,SF,CF,uet=n((()=>{xF=`RFC3986`,SF=e=>String(e),CF={RFC1738:e=>String(e).replace(/%20/g,`+`),RFC3986:SF}}));function det(e){return!e||typeof e!=`object`?!1:!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))}function fet(e,t){if(fF(e)){let n=[];for(let r=0;r<e.length;r+=1)n.push(t(e[r]));return n}return t(e)}var wF,TF,EF,pet,met=n((()=>{uet(),mF(),wF=(e,t)=>(wF=Object.hasOwn??Function.prototype.call.bind(Object.prototype.hasOwnProperty),wF(e,t)),TF=(()=>{let e=[];for(let t=0;t<256;++t)e.push(`%`+((t<16?`0`:``)+t.toString(16)).toUpperCase());return e})(),EF=1024,pet=(e,t,n,r,i)=>{if(e.length===0)return e;let a=e;if(typeof e==`symbol`?a=Symbol.prototype.toString.call(e):typeof e!=`string`&&(a=String(e)),n===`iso-8859-1`)return escape(a).replace(/%u[0-9a-f]{4}/gi,function(e){return`%26%23`+parseInt(e.slice(2),16)+`%3B`});let o=``;for(let e=0;e<a.length;e+=EF){let t=a.length>=EF?a.slice(e,e+EF):a,n=[];for(let e=0;e<t.length;++e){let r=t.charCodeAt(e);if(r===45||r===46||r===95||r===126||r>=48&&r<=57||r>=65&&r<=90||r>=97&&r<=122||i===`RFC1738`&&(r===40||r===41)){n[n.length]=t.charAt(e);continue}if(r<128){n[n.length]=TF[r];continue}if(r<2048){n[n.length]=TF[192|r>>6]+TF[128|r&63];continue}if(r<55296||r>=57344){n[n.length]=TF[224|r>>12]+TF[128|r>>6&63]+TF[128|r&63];continue}e+=1,r=65536+((r&1023)<<10|t.charCodeAt(e)&1023),n[n.length]=TF[240|r>>18]+TF[128|r>>12&63]+TF[128|r>>6&63]+TF[128|r&63]}o+=n.join(``)}return o}}));function het(e){return typeof e==`string`||typeof e==`number`||typeof e==`boolean`||typeof e==`symbol`||typeof e==`bigint`}function get(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_){let v=e,y=_,b=0,x=!1;for(;(y=y.get(AF))!==void 0&&!x;){let t=y.get(e);if(b+=1,t!==void 0){if(t===b)throw RangeError(`Cyclic object value`);x=!0}y.get(AF)===void 0&&(b=0)}if(typeof l==`function`?v=l(t,v):v instanceof Date?v=f?.(v):n===`comma`&&fF(v)&&(v=fet(v,function(e){return e instanceof Date?f?.(e):e})),v===null){if(a)return c&&!h?c(t,kF.encoder,g,`key`,p):t;v=``}if(het(v)||det(v)){if(c){let e=h?t:c(t,kF.encoder,g,`key`,p);return[m?.(e)+`=`+m?.(c(v,kF.encoder,g,`value`,p))]}return[m?.(t)+`=`+m?.(String(v))]}let S=[];if(v===void 0)return S;let C;if(n===`comma`&&fF(v))h&&c&&(v=fet(v,c)),C=[{value:v.length>0?v.join(`,`)||null:void 0}];else if(fF(l))C=l;else{let e=Object.keys(v);C=u?e.sort(u):e}let w=s?String(t).replace(/\./g,`%2E`):String(t),T=r&&fF(v)&&v.length===1?w+`[]`:w;if(i&&fF(v)&&v.length===0)return T+`[]`;for(let t=0;t<C.length;++t){let y=C[t],x=typeof y==`object`&&y.value!==void 0?y.value:v[y];if(o&&x===null)continue;let w=d&&s?y.replace(/\./g,`%2E`):y,E=fF(v)?typeof n==`function`?n(T,w):T:T+(d?`.`+w:`[`+w+`]`);_.set(e,b);let D=new WeakMap;D.set(AF,_),OF(S,get(x,E,n,r,i,a,o,s,n===`comma`&&h&&fF(v)?null:c,l,u,d,f,p,m,h,g,D))}return S}function _et(e=kF){if(e.allowEmptyArrays!==void 0&&typeof e.allowEmptyArrays!=`boolean`)throw TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(e.encodeDotInKeys!==void 0&&typeof e.encodeDotInKeys!=`boolean`)throw TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");if(e.encoder!==null&&e.encoder!==void 0&&typeof e.encoder!=`function`)throw TypeError(`Encoder has to be a function.`);let t=e.charset||kF.charset;if(e.charset!==void 0&&e.charset!==`utf-8`&&e.charset!==`iso-8859-1`)throw TypeError(`The charset option must be either utf-8, iso-8859-1, or undefined`);let n=xF;if(e.format!==void 0){if(!wF(CF,e.format))throw TypeError(`Unknown format option provided.`);n=e.format}let r=CF[n],i=kF.filter;(typeof e.filter==`function`||fF(e.filter))&&(i=e.filter);let a;if(a=e.arrayFormat&&e.arrayFormat in DF?e.arrayFormat:`indices`in e?e.indices?`indices`:`repeat`:kF.arrayFormat,`commaRoundTrip`in e&&typeof e.commaRoundTrip!=`boolean`)throw TypeError("`commaRoundTrip` must be a boolean, or absent");let o=e.allowDots===void 0?e.encodeDotInKeys?!0:kF.allowDots:!!e.allowDots;return{addQueryPrefix:typeof e.addQueryPrefix==`boolean`?e.addQueryPrefix:kF.addQueryPrefix,allowDots:o,allowEmptyArrays:typeof e.allowEmptyArrays==`boolean`?!!e.allowEmptyArrays:kF.allowEmptyArrays,arrayFormat:a,charset:t,charsetSentinel:typeof e.charsetSentinel==`boolean`?e.charsetSentinel:kF.charsetSentinel,commaRoundTrip:!!e.commaRoundTrip,delimiter:e.delimiter===void 0?kF.delimiter:e.delimiter,encode:typeof e.encode==`boolean`?e.encode:kF.encode,encodeDotInKeys:typeof e.encodeDotInKeys==`boolean`?e.encodeDotInKeys:kF.encodeDotInKeys,encoder:typeof e.encoder==`function`?e.encoder:kF.encoder,encodeValuesOnly:typeof e.encodeValuesOnly==`boolean`?e.encodeValuesOnly:kF.encodeValuesOnly,filter:i,format:n,formatter:r,serializeDate:typeof e.serializeDate==`function`?e.serializeDate:kF.serializeDate,skipNulls:typeof e.skipNulls==`boolean`?e.skipNulls:kF.skipNulls,sort:typeof e.sort==`function`?e.sort:null,strictNullHandling:typeof e.strictNullHandling==`boolean`?e.strictNullHandling:kF.strictNullHandling}}function vet(e,t={}){let n=e,r=_et(t),i,a;typeof r.filter==`function`?(a=r.filter,n=a(``,n)):fF(r.filter)&&(a=r.filter,i=a);let o=[];if(typeof n!=`object`||!n)return``;let s=DF[r.arrayFormat],c=s===`comma`&&r.commaRoundTrip;i||(i=Object.keys(n)),r.sort&&i.sort(r.sort);let l=new WeakMap;for(let e=0;e<i.length;++e){let t=i[e];r.skipNulls&&n[t]===null||OF(o,get(n[t],t,s,c,r.allowEmptyArrays,r.strictNullHandling,r.skipNulls,r.encodeDotInKeys,r.encode?r.encoder:null,r.filter,r.sort,r.allowDots,r.serializeDate,r.format,r.formatter,r.encodeValuesOnly,r.charset,l))}let u=o.join(r.delimiter),d=r.addQueryPrefix===!0?`?`:``;return r.charsetSentinel&&(r.charset===`iso-8859-1`?d+=`utf8=%26%2310003%3B&`:d+=`utf8=%E2%9C%93&`),u.length>0?d+u:``}var DF,OF,yet,kF,AF,bet=n((()=>{met(),uet(),mF(),DF={brackets(e){return String(e)+`[]`},comma:`comma`,indices(e,t){return String(e)+`[`+t+`]`},repeat(e){return String(e)}},OF=function(e,t){Array.prototype.push.apply(e,fF(t)?t:[t])},kF={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:`indices`,charset:`utf-8`,charsetSentinel:!1,delimiter:`&`,encode:!0,encodeDotInKeys:!1,encoder:pet,encodeValuesOnly:!1,format:xF,formatter:SF,indices:!1,serializeDate(e){return(yet??(yet=Function.prototype.call.bind(Date.prototype.toISOString)))(e)},skipNulls:!1,strictNullHandling:!1},AF={}}));function xet(e){return vet(e,{arrayFormat:`brackets`})}var Cet=n((()=>{bet()}));function wet(e){let t=0;for(let n of e)t+=n.length;let n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.length;return n}function jF(e){let t;return(Eet??(t=new globalThis.TextEncoder,Eet=t.encode.bind(t)))(e)}function Tet(e){let t;return(Det??(t=new globalThis.TextDecoder,Det=t.decode.bind(t)))(e)}var Eet,Det,Oet=n((()=>{}));function ket(e,t){for(let n=t??0;n<e.length;n++){if(e[n]===10)return{preceding:n,index:n+1,carriage:!1};if(e[n]===13)return{preceding:n,index:n+1,carriage:!0}}return null}function Aet(e){for(let t=0;t<e.length-1;t++){if(e[t]===10&&e[t+1]===10||e[t]===13&&e[t+1]===13)return t+2;if(e[t]===13&&e[t+1]===10&&t+3<e.length&&e[t+2]===13&&e[t+3]===10)return t+4}return-1}var MF,NF,PF,jet=n((()=>{HP(),Oet(),PF=class{constructor(){MF.set(this,void 0),NF.set(this,void 0),VP(this,MF,new Uint8Array,`f`),VP(this,NF,null,`f`)}decode(e){if(e==null)return[];let t=e instanceof ArrayBuffer?new Uint8Array(e):typeof e==`string`?jF(e):e;VP(this,MF,wet([$(this,MF,`f`),t]),`f`);let n=[],r;for(;(r=ket($(this,MF,`f`),$(this,NF,`f`)))!=null;){if(r.carriage&&$(this,NF,`f`)==null){VP(this,NF,r.index,`f`);continue}if($(this,NF,`f`)!=null&&(r.index!==$(this,NF,`f`)+1||r.carriage)){n.push(Tet($(this,MF,`f`).subarray(0,$(this,NF,`f`)-1))),VP(this,MF,$(this,MF,`f`).subarray($(this,NF,`f`)),`f`),VP(this,NF,null,`f`);continue}let e=$(this,NF,`f`)===null?r.preceding:r.preceding-1,t=Tet($(this,MF,`f`).subarray(0,e));n.push(t),VP(this,MF,$(this,MF,`f`).subarray(r.index),`f`),VP(this,NF,null,`f`)}return n}flush(){return $(this,MF,`f`).length?this.decode(`
|
|
1011
1011
|
`):[]}},MF=new WeakMap,NF=new WeakMap,PF.NEWLINE_CHARS=new Set([`
|
|
1012
1012
|
`,`\r`]),PF.NEWLINE_REGEXP=/\r\n|[\n\r]/g}));function FF(){}function IF(e,t,n){return!t||RF[e]>RF[n]?FF:t[e].bind(t)}function LF(e){let t=e.logger,n=e.logLevel??`off`;if(!t)return Met;let r=BF.get(t);if(r&&r[0]===n)return r[1];let i={error:IF(`error`,t,n),warn:IF(`warn`,t,n),info:IF(`info`,t,n),debug:IF(`debug`,t,n)};return BF.set(t,[n,i]),i}var RF,zF,Met,BF,VF,HF=n((()=>{mF(),RF={off:0,error:200,warn:300,info:400,debug:500},zF=(e,t,n)=>{if(e){if(U9e(RF,e))return e;LF(n).warn(`${t} was set to ${JSON.stringify(e)}, expected one of ${JSON.stringify(Object.keys(RF))}`)}},Met={error:FF,warn:FF,info:FF,debug:FF},BF=new WeakMap,VF=e=>(e.options&&(e.options={...e.options},delete e.options.headers),e.headers&&(e.headers=Object.fromEntries((e.headers instanceof Headers?[...e.headers]:Object.entries(e.headers)).map(([e,t])=>[e,e.toLowerCase()===`authorization`||e.toLowerCase()===`cookie`||e.toLowerCase()===`set-cookie`?`***`:t]))),`retryOfRequestLogID`in e&&(e.retryOfRequestLogID&&(e.retryOf=e.retryOfRequestLogID),delete e.retryOfRequestLogID),e)}));async function*Net(e,t){if(!e.body)throw t.abort(),globalThis.navigator!==void 0&&globalThis.navigator.product===`ReactNative`?new qP(`The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api`):new qP(`Attempted to iterate over a response with no body`);let n=new Iet,r=new PF,i=aet(e.body);for await(let e of Pet(i))for(let t of r.decode(e)){let e=n.decode(t);e&&(yield e)}for(let e of r.flush()){let t=n.decode(e);t&&(yield t)}}async function*Pet(e){let t=new Uint8Array;for await(let n of e){if(n==null)continue;let e=n instanceof ArrayBuffer?new Uint8Array(n):typeof n==`string`?jF(n):n,r=new Uint8Array(t.length+e.length);r.set(t),r.set(e,t.length),t=r;let i;for(;(i=Aet(t))!==-1;)yield t.slice(0,i),t=t.slice(i)}t.length>0&&(yield t)}function Fet(e,t){let n=e.indexOf(t);return n===-1?[e,``,``]:[e.substring(0,n),t,e.substring(n+t.length)]}var UF,WF,Iet,Let=n((()=>{HP(),uF(),bF(),jet(),KP(),Oet(),HF(),WF=class e{constructor(e,t,n){this.iterator=e,UF.set(this,void 0),this.controller=t,VP(this,UF,n,`f`)}static fromSSEResponse(t,n,r,i){let a=!1,o=r?LF(r):console;async function*s(){if(a)throw new qP("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");a=!0;let e=!1;try{for await(let r of Net(t,n))if(!e){if(r.data.startsWith(`[DONE]`)){e=!0;continue}if(r.event===null||!r.event.startsWith(`thread.`)){let e;try{e=JSON.parse(r.data)}catch(e){throw o.error(`Could not parse message into JSON:`,r.data),o.error(`From chunk:`,r.raw),e}if(e&&e.error)throw new JP(void 0,e.error,void 0,t.headers);yield i?{event:r.event,data:e}:e}else{let e;try{e=JSON.parse(r.data)}catch(e){throw console.error(`Could not parse message into JSON:`,r.data),console.error(`From chunk:`,r.raw),e}if(r.event==`error`)throw new JP(void 0,e.error,e.message,void 0);yield{event:r.event,data:e}}}e=!0}catch(e){if(WP(e))return;throw e}finally{e||n.abort()}}return new e(s,n,r)}static fromReadableStream(t,n,r){let i=!1;async function*a(){let e=new PF,n=aet(t);for await(let t of n)for(let n of e.decode(t))yield n;for(let t of e.flush())yield t}async function*o(){if(i)throw new qP("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");i=!0;let e=!1;try{for await(let t of a())e||t&&(yield JSON.parse(t));e=!0}catch(e){if(WP(e))return;throw e}finally{e||n.abort()}}return new e(o,n,r)}[(UF=new WeakMap,Symbol.asyncIterator)](){return this.iterator()}tee(){let t=[],n=[],r=this.iterator(),i=e=>({next:()=>{if(e.length===0){let e=r.next();t.push(e),n.push(e)}return e.shift()}});return[new e(()=>i(t),this.controller,$(this,UF,`f`)),new e(()=>i(n),this.controller,$(this,UF,`f`))]}toReadableStream(){let e=this,t;return ret({async start(){t=e[Symbol.asyncIterator]()},async pull(e){try{let{value:n,done:r}=await t.next();if(r)return e.close();let i=jF(JSON.stringify(n)+`
|
|
1013
1013
|
`);e.enqueue(i)}catch(t){e.error(t)}},async cancel(){await t.return?.()}})}},Iet=class{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(e){if(e.endsWith(`\r`)&&(e=e.substring(0,e.length-1)),!e){if(!this.event&&!this.data.length)return null;let e={event:this.event,data:this.data.join(`
|
|
@@ -1025,7 +1025,7 @@ https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety
|
|
|
1025
1025
|
`);this.baseURL=s.baseURL,this.timeout=s.timeout??Zrt.DEFAULT_TIMEOUT,this.logger=s.logger??console;let c=`warn`;this.logLevel=c,this.logLevel=zF(s.logLevel,`ClientOptions.logLevel`,this)??zF(LL(`OPENAI_LOG`),`process.env['OPENAI_LOG']`,this)??c,this.fetchOptions=s.fetchOptions,this.maxRetries=s.maxRetries??2,this.fetch=s.fetch??net(),VP(this,DR,set,`f`),this._options=s,a&&(this._workloadIdentityAuth=new Wet(a,this.fetch)),this.apiKey=typeof t==`string`?t:`Missing Key`,this.organization=n,this.project=r,this.webhookSecret=i}withOptions(e){return new this.constructor({...this._options,baseURL:this.baseURL,maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetch:this.fetch,fetchOptions:this.fetchOptions,apiKey:this.apiKey,workloadIdentity:this._options.workloadIdentity,organization:this.organization,project:this.project,webhookSecret:this.webhookSecret,...e})}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:e,nulls:t}){}async authHeaders(e){return xL([{Authorization:`Bearer ${this.apiKey}`}])}stringifyQuery(e){return xet(e)}getUserAgent(){return`${this.constructor.name}/JS ${_F}`}defaultIdempotencyKey(){return`stainless-node-retry-${UP()}`}makeStatusError(e,t,n,r){return JP.generate(e,t,n,r)}async _callApiKey(){let e=this._options.apiKey;if(typeof e!=`function`)return!1;let t;try{t=await e()}catch(e){throw e instanceof qP?e:new qP(`Failed to get token from 'apiKey' function: ${e.message}`,{cause:e})}if(typeof t!=`string`||!t)throw new qP(`Expected 'apiKey' function argument to return a string but it returned ${t}`);return this.apiKey=t,!0}buildURL(e,t,n){let r=!$(this,Xrt,`m`,Qrt).call(this)&&n||this.baseURL,i=G9e(e)?new URL(e):new URL(r+(r.endsWith(`/`)&&e.startsWith(`/`)?e.slice(1):e)),a=this.defaultQuery(),o=Object.fromEntries(i.searchParams);return(!H9e(a)||!H9e(o))&&(t={...o,...a,...t}),typeof t==`object`&&t&&!Array.isArray(t)&&(i.search=this.stringifyQuery(t)),i.toString()}async prepareOptions(e){await this._callApiKey()}async prepareRequest(e,{url:t,options:n}){}get(e,t){return this.methodRequest(`get`,e,t)}post(e,t){return this.methodRequest(`post`,e,t)}patch(e,t){return this.methodRequest(`patch`,e,t)}put(e,t){return this.methodRequest(`put`,e,t)}delete(e,t){return this.methodRequest(`delete`,e,t)}methodRequest(e,t,n){return this.request(Promise.resolve(n).then(n=>({method:e,path:t,...n})))}request(e,t=null){return new KF(this,this.makeRequest(e,t,void 0))}async makeRequest(e,t,n){let r=await e,i=r.maxRetries??this.maxRetries;t??(t=i),await this.prepareOptions(r);let{req:a,url:o,timeout:s}=await this.buildRequest(r,{retryCount:i-t});await this.prepareRequest(a,{url:o,options:r});let c=`log_`+(Math.random()*(1<<24)|0).toString(16).padStart(6,`0`),l=n===void 0?``:`, retryOf: ${n}`,u=Date.now();if(LF(this).debug(`[${c}] sending request`,VF({retryOfRequestLogID:n,method:r.method,url:o,options:r,headers:a.headers})),r.signal?.aborted)throw new YP;let d=new AbortController,f=await this.fetchWithAuth(o,a,s,d).catch(GP),p=Date.now();if(f instanceof globalThis.Error){let e=`retrying, ${t} attempts remaining`;if(r.signal?.aborted)throw new YP;let i=WP(f)||/timed? ?out/i.test(String(f)+(`cause`in f?String(f.cause):``));if(t)return LF(this).info(`[${c}] connection ${i?`timed out`:`failed`} - ${e}`),LF(this).debug(`[${c}] connection ${i?`timed out`:`failed`} (${e})`,VF({retryOfRequestLogID:n,url:o,durationMs:p-u,message:f.message})),this.retryRequest(r,t,n??c);throw LF(this).info(`[${c}] connection ${i?`timed out`:`failed`} - error; no more retries left`),LF(this).debug(`[${c}] connection ${i?`timed out`:`failed`} (error; no more retries left)`,VF({retryOfRequestLogID:n,url:o,durationMs:p-u,message:f.message})),f instanceof lF||f instanceof B9e?f:i?new ZP:new XP({cause:f})}let m=`[${c}${l}${[...f.headers.entries()].filter(([e])=>e===`x-request-id`).map(([e,t])=>`, `+e+`: `+JSON.stringify(t)).join(``)}] ${a.method} ${o} ${f.ok?`succeeded`:`failed`} with status ${f.status} in ${p-u}ms`;if(!f.ok){if(f.status===401&&this._workloadIdentityAuth&&!r.__metadata?.hasStreamingBody&&!r.__metadata?.workloadIdentityTokenRefreshed)return await oet(f.body),this._workloadIdentityAuth.invalidateToken(),this.makeRequest({...r,__metadata:{...r.__metadata,workloadIdentityTokenRefreshed:!0}},t,n??c);let e=await this.shouldRetry(f);if(t&&e){let e=`retrying, ${t} attempts remaining`;return await oet(f.body),LF(this).info(`${m} - ${e}`),LF(this).debug(`[${c}] response error (${e})`,VF({retryOfRequestLogID:n,url:f.url,status:f.status,headers:f.headers,durationMs:p-u})),this.retryRequest(r,t,n??c,f.headers)}let i=e?`error; no more retries left`:`error; not retryable`;LF(this).info(`${m} - ${i}`);let a=await f.text().catch(e=>GP(e).message),o=q9e(a),s=o?void 0:a;throw LF(this).debug(`[${c}] response error (${i})`,VF({retryOfRequestLogID:n,url:f.url,status:f.status,headers:f.headers,message:s,durationMs:Date.now()-u})),this.makeStatusError(f.status,o,s,f.headers)}return LF(this).info(m),LF(this).debug(`[${c}] response start`,VF({retryOfRequestLogID:n,url:f.url,status:f.status,headers:f.headers,durationMs:p-u})),{response:f,options:r,controller:d,requestLogID:c,retryOfRequestLogID:n,startTime:u}}getAPIList(e,t,n){return this.requestAPIList(t,n&&`then`in n?n.then(t=>({method:`get`,path:e,...t})):{method:`get`,path:e,...n})}requestAPIList(e,t){let n=this.makeRequest(t,null,void 0);return new Vet(this,n,e)}async fetchWithAuth(e,t,n,r){if(this._workloadIdentityAuth){let e=t.headers,n=e.get(`Authorization`);if(!n||n===`Bearer ${OR}`){let t=await this._workloadIdentityAuth.getToken();e.set(`Authorization`,`Bearer ${t}`)}}return await this.fetchWithTimeout(e,t,n,r)}async fetchWithTimeout(e,t,n,r){let{signal:i,method:a,...o}=t||{},s=this._makeAbort(r);i&&i.addEventListener(`abort`,s,{once:!0});let c=setTimeout(s,n),l=globalThis.ReadableStream&&o.body instanceof globalThis.ReadableStream||typeof o.body==`object`&&o.body!==null&&Symbol.asyncIterator in o.body,u={signal:r.signal,...l?{duplex:`half`}:{},method:`GET`,...o};a&&(u.method=a.toUpperCase());try{return await this.fetch.call(void 0,e,u)}finally{clearTimeout(c)}}async shouldRetry(e){let t=e.headers.get(`x-should-retry`);return t===`true`?!0:t===`false`?!1:e.status===408||e.status===409||e.status===429||e.status>=500}async retryRequest(e,t,n,r){let i,a=r?.get(`retry-after-ms`);if(a){let e=parseFloat(a);Number.isNaN(e)||(i=e)}let o=r?.get(`retry-after`);if(o&&!i){let e=parseFloat(o);i=Number.isNaN(e)?Date.parse(o)-Date.now():e*1e3}if(i===void 0){let n=e.maxRetries??this.maxRetries;i=this.calculateDefaultRetryTimeoutMillis(t,n)}return await hF(i),this.makeRequest(e,t-1,n)}calculateDefaultRetryTimeoutMillis(e,t){let n=t-e;return Math.min(.5*2**n,8)*(1-Math.random()*.25)*1e3}async buildRequest(e,{retryCount:t=0}={}){let n={...e},{method:r,path:i,query:a,defaultBaseURL:o}=n,s=this.buildURL(i,a,o);`timeout`in n&&K9e(`timeout`,n.timeout),n.timeout=n.timeout??this.timeout;let{bodyHeaders:c,body:l,isStreamingBody:u}=this.buildBody({options:n});return u&&(e.__metadata={...e.__metadata,hasStreamingBody:!0}),{req:{method:r,headers:await this.buildHeaders({options:e,method:r,bodyHeaders:c,retryCount:t}),...n.signal&&{signal:n.signal},...globalThis.ReadableStream&&l instanceof globalThis.ReadableStream&&{duplex:`half`},...l&&{body:l},...this.fetchOptions??{},...n.fetchOptions??{}},url:s,timeout:n.timeout}}async buildHeaders({options:e,method:t,bodyHeaders:n,retryCount:r}){let i={};this.idempotencyHeader&&t!==`get`&&(e.idempotencyKey||(e.idempotencyKey=this.defaultIdempotencyKey()),i[this.idempotencyHeader]=e.idempotencyKey);let a=xL([i,{Accept:`application/json`,"User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(r),...e.timeout?{"X-Stainless-Timeout":String(Math.trunc(e.timeout/1e3))}:{},...eet(),"OpenAI-Organization":this.organization,"OpenAI-Project":this.project},await this.authHeaders(e),this._options.defaultHeaders,n,e.headers]);return this.validateHeaders(a),a.values}_makeAbort(e){return()=>e.abort()}buildBody({options:{body:e,headers:t}}){if(!e)return{bodyHeaders:void 0,body:void 0,isStreamingBody:!1};let n=xL([t]),r=globalThis.ReadableStream!==void 0&&e instanceof globalThis.ReadableStream,i=!r&&(typeof e==`string`||e instanceof ArrayBuffer||ArrayBuffer.isView(e)||globalThis.Blob!==void 0&&e instanceof globalThis.Blob||e instanceof URLSearchParams||e instanceof FormData);return ArrayBuffer.isView(e)||e instanceof ArrayBuffer||e instanceof DataView||typeof e==`string`&&n.values.has(`content-type`)||globalThis.Blob&&e instanceof globalThis.Blob||e instanceof FormData||e instanceof URLSearchParams||r?{bodyHeaders:void 0,body:e,isStreamingBody:!i}:typeof e==`object`&&(Symbol.asyncIterator in e||Symbol.iterator in e&&`next`in e&&typeof e.next==`function`)?{bodyHeaders:void 0,body:iet(e),isStreamingBody:!0}:typeof e==`object`&&n.values.get(`content-type`)===`application/x-www-form-urlencoded`?{bodyHeaders:{"content-type":`application/x-www-form-urlencoded`},body:this.stringifyQuery(e),isStreamingBody:!1}:{...$(this,DR,`f`).call(this,{body:e,headers:n}),isStreamingBody:!1}}},Zrt=kR,DR=new WeakMap,Xrt=new WeakSet,Qrt=function(){return this.baseURL!==`https://api.openai.com/v1`},kR.OpenAI=Zrt,kR.DEFAULT_TIMEOUT=6e5,kR.OpenAIError=qP,kR.APIError=JP,kR.APIConnectionError=XP,kR.APIConnectionTimeoutError=ZP,kR.APIUserAbortError=YP,kR.NotFoundError=tF,kR.ConflictError=nF,kR.RateLimitError=iF,kR.BadRequestError=QP,kR.AuthenticationError=$P,kR.InternalServerError=aF,kR.PermissionDeniedError=eF,kR.UnprocessableEntityError=rF,kR.InvalidWebhookSignatureError=cF,kR.toFile=Jet,kR.Completions=gnt,kR.Chat=yL,kR.Embeddings=Tnt,kR.Files=jnt,kR.Images=Jnt,kR.Audio=EL,kR.Moderations=Qnt,kR.Models=Xnt,kR.FineTuning=pR,kR.Graders=mR,kR.VectorStores=wR,kR.Webhooks=Grt,kR.Beta=iR,kR.Batches=DL,kR.Uploads=CR,kR.Responses=bR,kR.Realtime=hR,kR.Conversations=sR,kR.Evals=lR,kR.Containers=oR,kR.Skills=SR,kR.Videos=Hrt})),eit=n((()=>{bI(),RL(),$rt()})),tit=n((()=>{$rt(),$et(),qF(),$F(),uF(),eit()}));function nit(e){if(!e)return 0;let t=0,n=/(\d+(?:\.\d+)?)(ms|s|m|h|d)/g,r;for(;(r=n.exec(e))!==null;){let e=Number(r[1]);switch(r[2]){case`ms`:t+=e/1e3;break;case`s`:t+=e;break;case`m`:t+=e*60;break;case`h`:t+=e*3600;break;case`d`:t+=e*86400;break}}if(t===0){let n=Number(e);Number.isFinite(n)&&(t=n)}return t<=0?0:Math.floor(Date.now()/1e3)+t}function rit(e,t){if(e===null||t===null)return null;let n=Number(e),r=Number(t);if(!Number.isFinite(n)||!Number.isFinite(r)||r<=0)return null;let i=Math.max(0,r-n);return Math.min(1,Math.max(0,i/r))}var iit,ait=n((()=>{iit={providerId:`openai`,parseHeaders(e){let t=[],n=rit(e.get(`x-ratelimit-remaining-requests`),e.get(`x-ratelimit-limit-requests`));n!==null&&t.push({kind:`requests`,label:`RPM`,utilization:n,resetsAt:nit(e.get(`x-ratelimit-reset-requests`))||void 0});let r=rit(e.get(`x-ratelimit-remaining-tokens`),e.get(`x-ratelimit-limit-tokens`));return r!==null&&t.push({kind:`tokens`,label:`TPM`,utilization:r,resetsAt:nit(e.get(`x-ratelimit-reset-tokens`))||void 0}),t}}}));function oit(e){return async(...t)=>{let n=await e(...t);try{Ol(`openai`,iit.parseHeaders(n.headers))}catch{}return n}}function sit(e){if(AR)return AR;let t=process.env.OPENAI_API_KEY||``,n=process.env.OPENAI_BASE_URL,r=oit(e?.fetchOverride??globalThis.fetch),i=new kR({apiKey:t,...n&&{baseURL:n},maxRetries:e?.maxRetries??0,timeout:parseInt(process.env.API_TIMEOUT_MS||`600000`,10),dangerouslyAllowBrowser:!0,...process.env.OPENAI_ORG_ID&&{organization:process.env.OPENAI_ORG_ID},...process.env.OPENAI_PROJECT_ID&&{project:process.env.OPENAI_PROJECT_ID},fetchOptions:Bs({forAnthropicAPI:!1}),fetch:r});return e?.fetchOverride||(AR=i),i}var AR,cit=n((()=>{tit(),ait(),kl(),Vs(),AR=null}));function lit(e){if(jR)return jR;let t=new kR({apiKey:process.env.GROK_API_KEY||process.env.XAI_API_KEY||``,baseURL:process.env.GROK_BASE_URL||uit,maxRetries:e?.maxRetries??0,timeout:parseInt(process.env.API_TIMEOUT_MS||`600000`,10),dangerouslyAllowBrowser:!0,fetchOptions:Bs({forAnthropicAPI:!1}),...e?.fetchOverride&&{fetch:e.fetchOverride}});return e?.fetchOverride||(jR=t),t}var uit,jR,dit=n((()=>{tit(),Vs(),uit=`https://api.x.ai/v1`,jR=null}));function fit(e){let t=e.find(e=>e.role===`user`);if(!t)return``;let n=t.content;if(typeof n==`string`)return n;let r=n.find(e=>e.type===`text`);return r?.type===`text`?r.text:``}function pit(e){return e?typeof e==`string`?e:e.filter(e=>`text`in e&&!!e.text).map(e=>e.text).join(`
|
|
1026
1026
|
|
|
1027
1027
|
`):``}function mit(e){let t=[];for(let n of e){if(n.role!==`user`&&n.role!==`assistant`)continue;let e=typeof n.content==`string`?n.content:Array.isArray(n.content)?n.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
|
|
1028
|
-
`):``;e&&t.push({role:n.role,content:e})}return t}async function MR(e){let{model:t,system:n,messages:r,tools:i,tool_choice:a,output_format:o,max_tokens:s=1024,maxRetries:c=2,signal:l,skipSystemPromptPrefix:u,temperature:d,thinking:f,stop_sequences:p}=e,m=ar();if(m===`openai`||m===`grok`)return hit(e);if(m===`gemini`)return git(e);let h=await vi({maxRetries:c,model:t,source:`side_query`}),g=[...Jn(t)];o&&Gr(t)&&!g.includes(`structured-outputs-2025-12-15`)&&g.push(Cre);let _=Xhe(F9e(fit(r),`2.6.
|
|
1028
|
+
`):``;e&&t.push({role:n.role,content:e})}return t}async function MR(e){let{model:t,system:n,messages:r,tools:i,tool_choice:a,output_format:o,max_tokens:s=1024,maxRetries:c=2,signal:l,skipSystemPromptPrefix:u,temperature:d,thinking:f,stop_sequences:p}=e,m=ar();if(m===`openai`||m===`grok`)return hit(e);if(m===`gemini`)return git(e);let h=await vi({maxRetries:c,model:t,source:`side_query`}),g=[...Jn(t)];o&&Gr(t)&&!g.includes(`structured-outputs-2025-12-15`)&&g.push(Cre);let _=Xhe(F9e(fit(r),`2.6.11`)),v=[_?{type:`text`,text:_}:null,...u?[]:[{type:`text`,text:Jhe({isNonInteractive:!1,hasAppendSystemPrompt:!1})}],...Array.isArray(n)?n:n?[{type:`text`,text:n}]:[]].filter(e=>e!==null),y;f===!1?y={type:`disabled`}:f!==void 0&&(y={type:`enabled`,budget_tokens:Math.min(f,s-1)});let b=va(t),x=Date.now(),S=`side-query:${e.querySource}`,C=e.parentSpan;e.querySource===`auto_mode`&&U(`[sideQuery] auto_mode parentSpan=${C?`id=${C.id??`present`}`:`null/undefined`} querySource=${e.querySource}`);let w=C?VLe(C,{name:S,sessionId:Ft(),model:b,provider:m,querySource:e.querySource}):e.querySource===`auto_mode`?null:bx({sessionId:Ft(),model:b,provider:m,name:S,querySource:e.querySource}),T;try{T=await h.beta.messages.create({model:b,max_tokens:s,system:v,messages:r,...i&&{tools:i},...a&&{tool_choice:a},...o&&{output_config:{format:o}},...d!==void 0&&{temperature:d},...p&&{stop_sequences:p},...y&&{thinking:y},...g.length>0&&{betas:g},metadata:s9()},{signal:l})}catch(t){throw Cx(w,{error:H(t)},e.optional?`interrupted`:`error`),t}let E=T._request_id??void 0,D=Date.now(),ee=zt();G(`tengu_api_success`,{requestId:E,querySource:e.querySource,model:b,inputTokens:T.usage.input_tokens,outputTokens:T.usage.output_tokens,cachedInputTokens:T.usage.cache_read_input_tokens??0,uncachedInputTokens:T.usage.cache_creation_input_tokens??0,durationMsIncludingRetries:D-x,timeSinceLastApiCallMs:ee===null?void 0:D-ee}),Qt(D);let O=r.map(e=>({type:e.role===`assistant`?`assistant`:`user`,message:{role:e.role,content:e.content}})),k=[{type:`assistant`,message:{role:`assistant`,content:T.content}}];return xx(w,{model:b,provider:m,input:LP(O,v.length>0?v.map(e=>e.text):void 0),output:zP(k),usage:{input_tokens:T.usage.input_tokens,output_tokens:T.usage.output_tokens,cache_creation_input_tokens:T.usage.cache_creation_input_tokens??void 0,cache_read_input_tokens:T.usage.cache_read_input_tokens??void 0},startTime:new Date(x),endTime:new Date,...i&&{tools:RP(i)},...y&&y.type!==`disabled`&&{thinking:{type:y.type,...y.type===`enabled`&&{budgetTokens:y.budget_tokens}}}}),Cx(w),T}async function hit(e){let{model:t,system:n,messages:r,tools:i,tool_choice:a,max_tokens:o=1024,temperature:s,signal:c}=e,l=ar(),u=va(t),d,f;l===`grok`?(d=jue(u),f=lit({maxRetries:e.maxRetries??2})):(d=Iue(u),f=sit({maxRetries:e.maxRetries??2}));let p=pit(n),m=[];p&&m.push({role:`system`,content:p}),m.push(...mit(r));let h=i&&i.length>0?Mue(i):void 0,g=a?Aue(a):void 0,_=Date.now(),v={model:d,messages:m,max_tokens:o};s!==void 0&&(v.temperature=s),h&&h.length>0&&(v.tools=h,g&&(v.tool_choice=g));let y=await f.chat.completions.create(v,{signal:c}),b=y.choices[0],x=b?.message,S=[];if(x?.content&&S.push({type:`text`,text:x.content}),x?.tool_calls){for(let e of x.tool_calls)if(e.type===`function`&&`function`in e){let t=e.function;S.push({type:`tool_use`,id:e.id??`toolu_${Date.now()}`,name:t.name,input:JSON.parse(t.arguments||`{}`)})}}let C=Date.now(),w=y.id,T=zt();G(`tengu_api_success`,{requestId:w,querySource:e.querySource,model:d,inputTokens:y.usage?.prompt_tokens??0,outputTokens:y.usage?.completion_tokens??0,cachedInputTokens:0,uncachedInputTokens:y.usage?.prompt_tokens??0,durationMsIncludingRetries:C-_,timeSinceLastApiCallMs:T===null?void 0:C-T}),Qt(C);let E=b?.finish_reason===`tool_calls`?`tool_use`:b?.finish_reason===`length`?`max_tokens`:`end_turn`;return{id:y.id,type:`message`,role:`assistant`,content:S,model:d,stop_reason:E,stop_sequence:null,usage:{input_tokens:y.usage?.prompt_tokens??0,output_tokens:y.usage?.completion_tokens??0}}}async function git(e){let{model:t,system:n,messages:r,tools:i,tool_choice:a,max_tokens:o=1024,temperature:s,signal:c}=e,l=Uue(va(t)),u=[];for(let e of r){if(e.role!==`user`&&e.role!==`assistant`)continue;let t=typeof e.content==`string`?e.content:Array.isArray(e.content)?e.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
|
|
1029
1029
|
`):``;t&&u.push({role:e.role===`assistant`?`model`:`user`,parts:[{text:t}]})}let d=pit(n),f=d?{parts:[{text:d}]}:void 0,p=i&&i.length>0?Fue(i):void 0,m=a?Pue(a):void 0,h=`${(process.env.GEMINI_BASE_URL||`https://generativelanguage.googleapis.com/v1beta`).replace(/\/+$/,``)}/${l.startsWith(`models/`)?l:`models/${l}`}:generateContent`,g={contents:u,...f&&{systemInstruction:f},...p&&p.length>0&&{tools:p},...m&&{toolConfig:{functionCallingConfig:m}},...s!==void 0&&{generationConfig:{temperature:s}},...o!==void 0&&{generationConfig:{...s!==void 0&&{temperature:s},maxOutputTokens:o}}};s!==void 0&&o!==void 0&&(g.generationConfig={temperature:s,maxOutputTokens:o});let _=Date.now(),v=await fetch(h,{method:`POST`,headers:{"Content-Type":`application/json`,"x-goog-api-key":process.env.GEMINI_API_KEY||``},body:JSON.stringify(g),signal:c});if(!v.ok){let e=await v.text();throw Error(`Gemini API request failed (${v.status} ${v.statusText}): ${e||`empty response body`}`)}let y=await v.json(),b=[],x=y.candidates?.[0],S=x?.content?.parts;if(S)for(let e of S)e.text&&b.push({type:`text`,text:e.text}),e.functionCall&&b.push({type:`tool_use`,id:`toolu_${Date.now()}_${Math.random().toString(36).slice(2,8)}`,name:e.functionCall.name??``,input:e.functionCall.args??{}});let C=Date.now(),w=zt();G(`tengu_api_success`,{requestId:y.id??``,querySource:e.querySource,model:l,inputTokens:y.usageMetadata?.promptTokenCount??0,outputTokens:y.usageMetadata?.candidatesTokenCount??0,cachedInputTokens:0,uncachedInputTokens:y.usageMetadata?.promptTokenCount??0,durationMsIncludingRetries:C-_,timeSinceLastApiCallMs:w===null?void 0:C-w}),Qt(C);let T=x?.finishReason===`STOP`?`end_turn`:x?.finishReason===`MAX_TOKENS`?`max_tokens`:`end_turn`;return{id:y.id??`gemini_${Date.now()}`,type:`message`,role:`assistant`,content:b,model:l,stop_reason:T,stop_sequence:null,usage:{input_tokens:y.usageMetadata?.promptTokenCount??0,output_tokens:y.usageMetadata?.candidatesTokenCount??0}}}var NR=n((()=>{tn(),Ln(),Nf(),Ua(),p9(),Yr(),wx(),BP(),zr(),W(),ka(),R9e(),Pn(),hr(),cit(),dit(),bl()}));function _it(e,t){let n=e.find(e=>e.type===`tool_use`&&e.name===t);return!n||n.type!==`tool_use`?null:n}function vit(e,t){let n=t.safeParse(e.input);return n.success?n.data:null}var yit=n((()=>{})),bit=i({default:()=>xit}),xit,Sit=n((()=>{xit=`/assets/auto_mode_system_prompt-BOUkwTgh.txt`})),Cit=i({default:()=>wit}),wit,Tit=n((()=>{wit=`data:text/plain;base64,IyMgQWxsb3cgUnVsZXMKClRoZSBmb2xsb3dpbmcgdHlwZXMgb2YgYWN0aW9ucyBzaG91bGQgYmUgYXV0by1hcHByb3ZlZDoKCjx1c2VyX2FsbG93X3J1bGVzX3RvX3JlcGxhY2U+Ci0gUnVubmluZyByZWFkLW9ubHkgc2hlbGwgY29tbWFuZHMgKGxzLCBjYXQsIGhlYWQsIHRhaWwsIHdjLCBlY2hvLCBlbnYsIHdoaWNoLCB3aGVyZWlzLCB1bmFtZSwgZGF0ZSwgd2hvYW1pLCBwd2QsIHN0YXQsIGZpbGUsIGR1LCBkZiwgZnJlZSwgdG9wIC1iIC1uIDEsIHBzKQotIFJ1bm5pbmcgdmVyc2lvbiBhbmQgaGVscCBjb21tYW5kcyAobm9kZSAtLXZlcnNpb24sIHB5dGhvbiAtLXZlcnNpb24sIHJ1YnkgLS12ZXJzaW9uLCBnbyB2ZXJzaW9uLCBydXN0YyAtLXZlcnNpb24sIGNhcmdvIC0tdmVyc2lvbiwgbnBtIC0tdmVyc2lvbiwgYnVuIC0tdmVyc2lvbiwgZ2l0IC0tdmVyc2lvbiwgLS1oZWxwIGZsYWdzKQotIFJ1bm5pbmcgZ2l0IHJlYWQtb25seSBjb21tYW5kcyAoZ2l0IHN0YXR1cywgZ2l0IGxvZywgZ2l0IGRpZmYsIGdpdCBzaG93LCBnaXQgYnJhbmNoLCBnaXQgdGFnLCBnaXQgcmVtb3RlLCBnaXQgc3Rhc2ggbGlzdCwgZ2l0IGNvbmZpZyAtLWxpc3QgLS1sb2NhbCkKLSBSdW5uaW5nIHRlc3RzLCBsaW50ZXJzLCBmb3JtYXR0ZXJzLCBhbmQgYnVpbGQgY29tbWFuZHMgd2l0aGluIHRoZSBwcm9qZWN0IChucG0gdGVzdCwgbnBtIHJ1biBsaW50LCBucG0gcnVuIGJ1aWxkLCBidW4gdGVzdCwgY2FyZ28gdGVzdCwgZ28gdGVzdCwgcHl0ZXN0LCBqZXN0LCB2aXRlc3QsIGVzbGludCwgcHJldHRpZXIsIGJpb21lLCB0c2MpCi0gUnVubmluZyBwYWNrYWdlIGluc3RhbGwgY29tbWFuZHMgd2l0aGluIHRoZSBwcm9qZWN0IChucG0gaW5zdGFsbCwgeWFybiwgcG5wbSBpbnN0YWxsLCBidW4gaW5zdGFsbCwgcGlwIGluc3RhbGwgd2l0aGluIGEgdmlydHVhbCBlbnZpcm9ubWVudCwgY2FyZ28gYnVpbGQpCi0gUmVhZGluZywgd3JpdGluZywgY3JlYXRpbmcsIGVkaXRpbmcsIGFuZCBtb3ZpbmcgZmlsZXMgd2l0aGluIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5Ci0gUnVubmluZyBjb21tb24gZGV2ZWxvcG1lbnQgdG9vbHMgKG5vZGUsIHB5dGhvbiwgcnVieSwgZ28sIGNhcmdvLCBtYWtlLCBjbWFrZSwgZ2NjLCBjbGFuZykgZm9yIGNvbXBpbGF0aW9uIGFuZCBleGVjdXRpb24gb2YgcHJvamVjdCBjb2RlCi0gUnVubmluZyBEb2NrZXIgY29tbWFuZHMgZm9yIGJ1aWxkaW5nIGFuZCBydW5uaW5nIHByb2plY3QgY29udGFpbmVycyAoZG9ja2VyIGJ1aWxkLCBkb2NrZXIgcnVuLCBkb2NrZXIgY29tcG9zZSkKLSBDcmVhdGluZyBhbmQgc3dpdGNoaW5nIGdpdCBicmFuY2hlcywgY29tbWl0dGluZywgc3Rhc2hpbmcgKGdpdCBjaGVja291dCAtYiwgZ2l0IGNvbW1pdCwgZ2l0IGFkZCwgZ2l0IHN0YXNoKQo8L3VzZXJfYWxsb3dfcnVsZXNfdG9fcmVwbGFjZT4KCiMjIERlbnkgUnVsZXMKClRoZSBmb2xsb3dpbmcgdHlwZXMgb2YgYWN0aW9ucyBzaG91bGQgYmUgYmxvY2tlZCAocmVxdWlyZSB1c2VyIGNvbmZpcm1hdGlvbik6Cgo8dXNlcl9kZW55X3J1bGVzX3RvX3JlcGxhY2U+Ci0gRG93bmxvYWRpbmcgYW5kIGV4ZWN1dGluZyB1bnRydXN0ZWQgY29kZSBmcm9tIHRoZSBpbnRlcm5ldCAoY3VybCB8IGJhc2gsIHdnZXQgfCBzaCwgcGlwIGluc3RhbGwgZnJvbSB1bnZlcmlmaWVkIFVSTHMsIG5weCBmcm9tIHVua25vd24gcGFja2FnZXMpCi0gUmVjdXJzaXZlIGZvcmNlIGRlbGV0aW9uIG9mIGRpcmVjdG9yaWVzIG9yIGZpbGVzIChybSAtcmYsIFJlbW92ZS1JdGVtIC1SZWN1cnNlIC1Gb3JjZSkgdW5sZXNzIHRoZSB1c2VyIGV4cGxpY2l0bHkgcmVxdWVzdGVkIGl0Ci0gTW9kaWZ5aW5nIHNoZWxsIHByb2ZpbGVzLCBsb2dpbiBzY3JpcHRzLCBvciBzeXN0ZW0gc3RhcnR1cCBpdGVtcyAoLmJhc2hyYywgLnpzaHJjLCAucHJvZmlsZSwgY3JvbiBqb2JzLCBsYXVuY2ggYWdlbnRzL2RhZW1vbnMpCi0gVXNpbmcgc3Vkbywgc3UsIG9yIGRvYXMgZm9yIHByaXZpbGVnZSBlc2NhbGF0aW9uIHVubGVzcyB0aGUgdXNlciBleHBsaWNpdGx5IG1lbnRpb25zIG5lZWRpbmcgaXQKLSBTdGFydGluZyBuZXR3b3JrIHNlcnZlcnMgb3IgbGlzdGVuZXJzIHRoYXQgYWNjZXB0IGV4dGVybmFsIGNvbm5lY3Rpb25zIChweXRob24gLW0gaHR0cC5zZXJ2ZXIsIG5jIC1sLCBuZyBzZXJ2ZSAtLWhvc3QgMC4wLjAuMCkKLSBEaXNhYmxpbmcgc2VjdXJpdHkgdG9vbHMsIG1vZGlmeWluZyBmaXJld2FsbCBydWxlcywgY2hhbmdpbmcgZmlsZSBwZXJtaXNzaW9ucyB0byB3b3JsZC13cml0YWJsZSBvbiBzZW5zaXRpdmUgcGF0aHMKLSBQdXNoaW5nIHRvIGdpdCByZW1vdGVzLCBmb3JjZS1wdXNoaW5nLCBtb2RpZnlpbmcgcmVtb3RlIGJyYW5jaGVzCi0gRXhwb3J0aW5nLCBwcmludGluZywgb3IgbG9nZ2luZyBzZWNyZXRzLCBBUEkga2V5cywgdG9rZW5zLCBvciBjcmVkZW50aWFscyB0byBwdWJsaWMgb3Igc2hhcmVkIGxvY2F0aW9ucwotIEluc3RhbGxpbmcgc3lzdGVtLWxldmVsIHBhY2thZ2VzIG91dHNpZGUgdGhlIHByb2plY3QgKGFwdC1nZXQgaW5zdGFsbCwgYnJldyBpbnN0YWxsLCB5dW0gaW5zdGFsbCBhcyByb290KQotIE1vZGlmeWluZyBmaWxlcyBvdXRzaWRlIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IGFuZCBzdGFuZGFyZCBjb25maWcgcGF0aHMgd2l0aG91dCBleHBsaWNpdCB1c2VyIHJlcXVlc3QKPC91c2VyX2RlbnlfcnVsZXNfdG9fcmVwbGFjZT4KCiMjIEVudmlyb25tZW50IENvbnRleHQKCjx1c2VyX2Vudmlyb25tZW50X3RvX3JlcGxhY2U+Ci0gVGhlIGFnZW50IG9wZXJhdGVzIHdpdGhpbiBhIHRlcm1pbmFsIHNlc3Npb24gaW4gdGhlIHVzZXIncyBwcm9qZWN0IGRpcmVjdG9yeQotIFRoZSB1c2VyIGhhcyBjaG9zZW4gYXV0byBtb2RlLCBtZWFuaW5nIHRoZXkgdHJ1c3QgdGhlIGFnZW50IHRvIHBlcmZvcm0gcm91dGluZSBkZXZlbG9wbWVudCB0YXNrcyBhdXRvbm9tb3VzbHkKLSBTdGFuZGFyZCBkZXZlbG9wbWVudCB0b29scyAoZ2l0LCBub2RlLCBweXRob24sIGV0Yy4pIGFyZSBleHBlY3RlZCB0byBiZSBhdmFpbGFibGUKLSBUaGUgcHJvamVjdCBtYXkgdXNlIGFueSBjb21tb24gbGFuZ3VhZ2Ugb3IgZnJhbWV3b3JrCjwvdXNlcl9lbnZpcm9ubWVudF90b19yZXBsYWNlPgo=`})),Eit=i({default:()=>Dit}),Dit,Oit=n((()=>{Dit=`/assets/permissions_anthropic-S27QInAY.txt`}));function kit(e){return typeof e==`string`?e:e.default}function Ait(){return process.env.USER_TYPE===`ant`?Jr(`tengu_auto_mode_config`,{})?.forceExternalPermissions===!0:!0}function jit(){return{allow:Mit(`user_allow_rules_to_replace`),soft_deny:Mit(`user_deny_rules_to_replace`),environment:Mit(`user_environment_to_replace`)}}function Mit(e){let t=IR.match(RegExp(`<${e}>([\\s\\S]*?)</${e}>`));return t?(t[1]??``).split(`
|
|
1030
1030
|
`).map(e=>e.trim()).filter(e=>e.startsWith(`- `)).map(e=>e.slice(2)):[]}function Nit(){return cat.replace(`<permissions_template>`,()=>IR).replace(/<user_allow_rules_to_replace>([\s\S]*?)<\/user_allow_rules_to_replace>/,(e,t)=>t).replace(/<user_deny_rules_to_replace>([\s\S]*?)<\/user_deny_rules_to_replace>/,(e,t)=>t).replace(/<user_environment_to_replace>([\s\S]*?)<\/user_environment_to_replace>/,(e,t)=>t)}function PR(){return Y(M5(),`auto-mode`)}async function Pit(e,t,n,r){if(process.env.USER_TYPE!==`ant`||!x(process.env.CLAUDE_CODE_DUMP_AUTO_MODE))return;let i=r?`${n}.${r}`:`${n}`;try{await pd(PR(),{recursive:!0}),await wd(Y(PR(),`${i}.req.json`),V(e,null,2),`utf-8`),await wd(Y(PR(),`${i}.res.json`),V(t,null,2),`utf-8`),U(`Dumped auto mode req/res to ${PR()}/${i}.{req,res}.json`)}catch{}}function Fit(){return Y(M5(),`auto-mode-classifier-errors`,`${Ft()}.txt`)}async function Iit(e,t,n,r){try{let i=Fit();return await pd(Eu(i),{recursive:!0}),await wd(i,`=== ERROR ===\n${H(n)}\n\n=== CONTEXT COMPARISON ===\ntimestamp: ${new Date().toISOString()}\nmodel: ${r.model}\nmainLoopTokens: ${r.mainLoopTokens}\nclassifierChars: ${r.classifierChars}\nclassifierTokensEst: ${r.classifierTokensEst}\ntranscriptEntries: ${r.transcriptEntries}\nmessages: ${r.messages}\ndelta (classifierEst - mainLoop): ${r.classifierTokensEst-r.mainLoopTokens}\n\n=== ACTION BEING CLASSIFIED ===\n${r.action}\n\n=== SYSTEM PROMPT ===\n${e}\n\n=== USER PROMPT (transcript) ===\n${t}\n`,`utf-8`),U(`Dumped auto mode classifier error prompts to ${i}`),i}catch{return null}}function Lit(e){let t=[];for(let n of e)if(n.type===`attachment`&&n.attachment.type===`queued_command`){let e=n.attachment.prompt,r=null;typeof e==`string`?r=e:Array.isArray(e)&&(r=e.filter(e=>e.type===`text`).map(e=>e.text).join(`
|
|
1031
1031
|
`)||null),r!==null&&t.push({role:`user`,content:[{type:`text`,text:r}]})}else if(n.type===`user`){let e=n.message.content,r=[];if(typeof e==`string`)r.push({type:`text`,text:e});else if(Array.isArray(e))for(let t of e)t.type===`text`&&r.push({type:`text`,text:t.text});r.length>0&&t.push({role:`user`,content:r})}else if(n.type===`assistant`){let e=[];for(let t of n.message.content??[])typeof t!=`string`&&t.type===`tool_use`&&e.push({type:`tool_use`,name:t.name,input:t.input});e.length>0&&t.push({role:`assistant`,content:e})}return t}function Rit(e){let t=new Map;for(let n of e){t.set(n.name,n);for(let e of n.aliases??[])t.set(e,n)}return t}function zit(e,t,n){if(e.type===`tool_use`){let t=n.get(e.name);if(!t)return``;let r=e.input??{},i;try{i=t.toAutoClassifierInput(r)??r}catch(t){U(`toAutoClassifierInput failed for ${e.name}: ${H(t)}`),G(`tengu_auto_mode_malformed_tool_input`,{toolName:e.name}),i=r}if(i===``)return``;if(iat())return V({[e.name]:i})+`
|
|
@@ -1042,7 +1042,7 @@ https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety
|
|
|
1042
1042
|
Err on the side of blocking. <block> immediately.`,pat=`
|
|
1043
1043
|
Review the classification process and follow it carefully, making sure you deny actions that should be blocked. As a reminder, explicit (not suggestive or implicit) user confirmation is required to override blocks. Use <thinking> before responding with <block>.`}));function mat(e){vl({type:`system`,subtype:`task_progress`,task_id:e.taskId,tool_use_id:e.toolUseId,description:e.description,usage:{total_tokens:e.totalTokens,tool_uses:e.toolUses,duration_ms:Date.now()-e.startTime},last_tool_name:e.lastToolName,summary:e.summary,workflow_progress:e.workflowProgress})}var hat=n((()=>{yl()}));function gat({tools:e,isBuiltIn:t,isAsync:n=!1,permissionMode:r}){return e.filter(e=>e.name.startsWith(`mcp__`)||nc(e,`ExitPlanMode`)&&r===`plan`?!0:Ec.has(e.name)||!t&&ble.has(e.name)?!1:n&&!Vc.has(e.name)?!!(Ti()&&xs()&&(nc(e,`Agent`)||Fle.has(e.name))):!0)}function _at(e,t,n=!1,r=!1){let{tools:i,disallowedTools:a,source:o,permissionMode:s}=e,c=r?t:gat({tools:t,isBuiltIn:o===`built-in`,isAsync:n,permissionMode:s}),l=new Set(a?.map(e=>{let{toolName:t}=En(e);return t})??[]),u=c.filter(e=>!l.has(e.name));if(i===void 0||i.length===1&&i[0]===`*`)return{hasWildcard:!0,validTools:[],invalidTools:[],resolvedTools:u};let d=new Map;for(let e of u)d.set(e.name,e);let f=[],p=[],m=[],h=new Set,g;for(let e of i){let{toolName:t,ruleContent:n}=En(e);if(t===`Agent`&&(n&&(g=n.split(`,`).map(e=>e.trim())),!r)){f.push(e);continue}let i=d.get(t);i?(f.push(e),h.has(i)||(m.push(i),h.add(i))):p.push(e)}return{hasWildcard:!1,validTools:f,invalidTools:p,resolvedTools:m,allowedAgentTypes:g}}function vat(e){let t=0;for(let n of e)if(n.type===`assistant`){let e=n.message?.content;for(let n of e??[])n.type===`tool_use`&&t++}return t}function yat(e,t,n){let{prompt:r,resolvedAgentModel:i,isBuiltInAgent:a,startTime:o,agentType:s,isAsync:c}=n,l=c4(e);if(l===void 0)throw Error(`No assistant messages found`);let u=(l.message?.content??[]).filter(e=>e.type===`text`);if(u.length===0)for(let t=e.length-1;t>=0;t--){let n=e[t];if(n.type!==`assistant`)continue;let r=(n.message?.content??[]).filter(e=>e.type===`text`);if(r.length>0){u=r;break}}let d=i_(l.message?.usage),f=vat(e);G(`tengu_agent_tool_completed`,{agent_type:s,model:i,prompt_char_count:r.length,response_char_count:u.length,assistant_message_count:e.length,total_tool_uses:f,duration_ms:Date.now()-o,total_tokens:d,is_built_in_agent:a,is_async:c});let p=l.requestId;return p&&G(`tengu_cache_eviction_hint`,{scope:`subagent_end`,last_request_id:p}),{agentId:t,agentType:s,content:u,totalDurationMs:Date.now()-o,totalTokens:d,totalToolUseCount:f,usage:l.message?.usage}}function bat(e){if(e.type!==`assistant`)return;let t=(e.message?.content??[]).findLast(e=>e.type===`tool_use`);return t?.type===`tool_use`?t.name:void 0}function xat(e,t,n,r,i,a){let o=vZ(e);mat({taskId:t,toolUseId:n,description:o.lastActivity?.activityDescription??r,startTime:i,totalTokens:o.tokenCount,toolUses:o.toolUseCount,lastToolName:a})}async function Sat({agentMessages:e,tools:t,toolPermissionContext:n,abortSignal:r,subagentType:i,totalToolUseCount:a}){{if(n.mode!==`auto`||!Vit(e,t))return null;let o=await eat(e,{role:`user`,content:[{type:`text`,text:`Sub-agent has finished and is handing back control to the main agent. Review the sub-agent's work based on the block rules and let the main agent know if any file is dangerous (the main agent will see the reason).`}]},t,n,r);if(G(`tengu_auto_mode_decision`,{decision:o.unavailable?`unavailable`:o.shouldBlock?`blocked`:`allowed`,toolName:fae,inProtectedNamespace:f(),classifierModel:o.model,agentType:i,toolUseCount:a,isHandoff:!0,agentMsgId:c4(e)?.message.id,classifierStage:o.stage,classifierStage1RequestId:o.stage1RequestId,classifierStage1MsgId:o.stage1MsgId,classifierStage2RequestId:o.stage2RequestId,classifierStage2MsgId:o.stage2MsgId}),o.shouldBlock)return o.unavailable?(U(`Handoff classifier unavailable, allowing sub-agent output with warning`,{level:`warn`}),`Note: The safety classifier was unavailable when reviewing this sub-agent's work. Please carefully verify the sub-agent's actions and output before acting on them.`):(U(`Handoff classifier flagged sub-agent output: ${o.reason}`,{level:`warn`}),`SECURITY WARNING: This sub-agent performed actions that may violate security policy. Reason: ${o.reason}. Review the sub-agent's actions carefully before acting on its output.`)}return null}function Cat(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n.type!==`assistant`)continue;let r=A4(n.message?.content??[],`
|
|
1044
1044
|
`);if(r)return r}}async function wat({taskId:e,abortController:t,makeStream:n,metadata:r,description:i,toolUseContext:a,rootSetAppState:o,agentIdForCleanup:s,enableSummarization:c,getWorktreeResult:l}){let u,d=[];try{let s=hZ(),f=yZ(a.options.tools),p=c?t=>{let{stop:n}=tS(e,Hx(e),t,o);u=n}:void 0;for await(let t of n(p)){d.push(t),o(n=>{let r=n.tasks[e];if(!bZ(r)||!r.retain)return n;let i=r.messages??[];return{...n,tasks:{...n.tasks,[e]:{...r,messages:[...i,t]}}}}),_Z(s,t,f,a.options.tools),CZ(e,vZ(s),o);let n=bat(t);n&&xat(s,e,a.toolUseId,i,r.startTime,n)}u?.();let m=yat(d,e,r);SIt(m,o);let h=A4(m.content,`
|
|
1045
|
-
`);{let e=await Sat({agentMessages:d,tools:a.options.tools,toolPermissionContext:a.getAppState().toolPermissionContext,abortSignal:t.signal,subagentType:r.agentType,totalToolUseCount:m.totalToolUseCount});e&&(h=`${e}\n\n${h}`)}let g=await l();xZ({taskId:e,description:i,status:`completed`,setAppState:o,finalMessage:h,usage:{totalTokens:gZ(s),toolUses:m.totalToolUseCount,durationMs:m.totalDurationMs},toolUseId:a.toolUseId,...g})}catch(t){if(u?.(),t instanceof La){SZ(e,o),G(`tengu_agent_tool_terminated`,{agent_type:r.agentType,model:r.resolvedAgentModel,duration_ms:Date.now()-r.startTime,is_async:!0,is_built_in_agent:r.isBuiltInAgent,reason:`user_kill_async`});let t=await l(),n=Cat(d);xZ({taskId:e,description:i,status:`killed`,setAppState:o,toolUseId:a.toolUseId,finalMessage:n,...t});return}let n=H(t);CIt(e,n,o);let s=await l();xZ({taskId:e,description:i,status:`failed`,error:n,setAppState:o,toolUseId:a.toolUseId,...s})}finally{rn(s),$v(s)}}var Tat,zR=n((()=>{it(),tn(),Yc(),XRe(),Ua(),ry(),Sc(),EZ(),Ux(),$i(),W(),y(),ka(),Fs(),i3(),Cr(),RR(),hat(),us(),s_(),Jc(),Qi(),Tat=J(()=>L({agentId:F(),agentType:F().optional(),content:Re(L({type:I(`text`),text:F()})),totalToolUseCount:P(),totalDurationMs:P(),totalTokens:P(),usage:L({input_tokens:P(),output_tokens:P(),cache_creation_input_tokens:P().nullable(),cache_read_input_tokens:P().nullable(),server_tool_use:L({web_search_requests:P(),web_fetch_requests:P()}).nullable(),service_tier:Ge([`standard`,`priority`,`batch`]).nullable(),cache_creation:L({ephemeral_1h_input_tokens:P(),ephemeral_5m_input_tokens:P()}).nullable()})}))})),Eat=i({MonitorMcpTask:()=>Nat,completeMonitorMcpTask:()=>kat,failMonitorMcpTask:()=>Aat,isMonitorMcpTask:()=>Dat,killMonitorMcp:()=>jat,killMonitorMcpTasksForAgent:()=>Mat,registerMonitorMcpTask:()=>Oat});function Dat(e){return typeof e==`object`&&!!e&&`type`in e&&e.type===`monitor_mcp`}function Oat(e,t){let n=n7(`monitor_mcp`);return Lx({...r7(n,`monitor_mcp`,t.description,t.toolUseId),type:`monitor_mcp`,status:`running`,serverName:t.serverName,resourceUri:t.resourceUri,command:t.command,agentId:t.agentId,abortController:t.abortController},e),n}function kat(e,t){Ix(e,t,e=>({...e,status:`completed`,endTime:Date.now(),notified:!0,abortController:void 0}))}function Aat(e,t){Ix(e,t,e=>({...e,status:`failed`,endTime:Date.now(),notified:!0,abortController:void 0}))}function jat(e,t){Ix(e,t,e=>e.status===`running`?(e.abortController?.abort(),{...e,status:`killed`,endTime:Date.now(),notified:!0,abortController:void 0}):e)}function Mat(e,t,n){let r=t().tasks??{};for(let[t,i]of Object.entries(r))Dat(i)&&i.agentId===e&&i.status===`running`&&(U(`killMonitorMcpTasksForAgent: killing orphaned monitor task ${t} (agent ${e} exiting)`),jat(t,n))}var Nat,Pat=n((()=>{i7(),W(),Bx(),Nat={name:`MonitorMcpTask`,type:`monitor_mcp`,async kill(e,t){jat(e,t)}}}));async function Fat(e,t){if(!e.mcpServers?.length)return{clients:t,tools:[],cleanup:async()=>{}};let n=gGe(e.source);if(KT(`mcp`)&&!n)return U(`[Agent: ${e.agentType}] Skipping MCP servers: strictPluginOnlyCustomization locks MCP to plugin-only (agent source: ${e.source})`),{clients:t,tools:[],cleanup:async()=>{}};let r=[],i=[],a=[];for(let t of e.mcpServers){let n=null,o,s=!1;if(typeof t==`string`){if(o=t,n=HGe(t),!n){U(`[Agent: ${e.agentType}] MCP server not found: ${t}`,{level:`warn`});continue}}else{let r=Object.entries(t);if(r.length!==1){U(`[Agent: ${e.agentType}] Invalid MCP server spec: expected exactly one key`,{level:`warn`});continue}let[i,a]=r[0];o=i,n={...a,scope:`dynamic`},s=!0}let c=await EA(o,n);if(r.push(c),s&&i.push(c),c.type===`connected`){let t=await OA(c);a.push(...t),U(`[Agent: ${e.agentType}] Connected to MCP server '${o}' with ${t.length} tools`)}else U(`[Agent: ${e.agentType}] Failed to connect to MCP server '${o}': ${c.type}`,{level:`warn`})}let o=async()=>{for(let t of i)if(t.type===`connected`)try{await t.cleanup()}catch(n){U(`[Agent: ${e.agentType}] Error cleaning up MCP server '${t.name}': ${n}`,{level:`warn`})}};return{clients:[...t,...r],tools:a,cleanup:o}}function Iat(e){return e.type===`assistant`||e.type===`user`||e.type===`progress`||e.type===`system`&&`subtype`in e&&e.subtype===`compact_boundary`}async function*BR({agentDefinition:t,promptMessages:n,toolUseContext:r,canUseTool:i,isAsync:a,canShowPermissionPrompts:o,forkContextMessages:s,querySource:c,override:l,model:u,maxTurns:d,preserveToolUseResults:f,availableTools:p,allowedTools:m,onCacheSafeParams:h,contentReplacementState:g,useExactTools:_,worktreePath:v,description:y,transcriptSubdir:b,onQueryProgress:x}){let S=r.getAppState(),C=S.toolPermissionContext.mode,w=r.setAppStateForTasks??r.setAppState,T=jP(t.model,r.options.mainLoopModel,u,C),E=l?.agentId?l.agentId:SP();if(b&&p8(E,b),ade()){let e=r.agentId??Ft();Kue(E,t.agentType,e)}process.env.USER_TYPE===`ant`&&U(`[Subagent ${t.agentType}] API calls: ${Wr(ey(E))}`);let D=[...s?Qx(s):[],...n],ee=s===void 0?yue(100):fl(r.readFileState),[O,k]=await Promise.all([l?.userContext??t_(),l?.systemContext??e_()]),te=t.omitClaudeMd&&!l?.userContext&&Jr(`tengu_slim_subagent_claudemd`,!0),{claudeMd:ne,...re}=O,ie=te?re:O,{gitStatus:ae,...oe}=k,A=t.agentType===`Explore`||t.agentType===`Plan`?oe:k,se=t.permissionMode,j=()=>{let e=r.getAppState(),n=e.toolPermissionContext;se&&e.toolPermissionContext.mode!==`bypassPermissions`&&e.toolPermissionContext.mode!==`acceptEdits`&&e.toolPermissionContext.mode!==`auto`&&(n={...n,mode:se});let i=o===void 0?se===`bubble`?!1:a:!o;i&&(n={...n,shouldAvoidPermissionPrompts:!0}),a&&!i&&(n={...n,awaitAutomatedChecksBeforeDialog:!0}),m!==void 0&&(n={...n,alwaysAllowRules:{cliArg:e.toolPermissionContext.alwaysAllowRules.cliArg,session:[...m]}});let s=t.effort===void 0?e.effortValue:t.effort;return n===e.toolPermissionContext&&s===e.effortValue?e:{...e,toolPermissionContext:n,effortValue:s}},ce=_?p:_at(t,p,a).resolvedTools,M=Array.from(S.toolPermissionContext.additionalWorkingDirectories.keys()),N=l?.systemPrompt?l.systemPrompt:Sl(await Lat(t,r,T,M,ce)),le=l?.abortController?l.abortController:a?new AbortController:r.abortController,ue=[];for await(let e of P5t(E,t.agentType,le.signal))e.additionalContexts&&e.additionalContexts.length>0&&ue.push(...e.additionalContexts);if(ue.length>0){let e=u0({type:`hook_additional_context`,content:ue,hookName:`SubagentStart`,toolUseID:od(),hookEvent:`SubagentStart`});D.push(e)}let de=!KT(`hooks`)||gGe(t.source);t.hooks&&de&&x9e(w,E,t.hooks,`agent '${t.agentType}'`,!0);let fe=t.skills??[];if(fe.length>0){let e=await r8(hn()),n=[];for(let r of fe){let i=Rat(r,e,t);if(!i){U(`[Agent: ${t.agentType}] Warning: Skill '${r}' specified in frontmatter was not found`,{level:`warn`});continue}let a=g4t(i,e);if(a.type!==`prompt`){U(`[Agent: ${t.agentType}] Warning: Skill '${r}' is not a prompt-based skill`,{level:`warn`});continue}n.push({skillName:r,skill:a})}let{formatSkillLoadingMetadata:i}=await import(`./processSlashCommand-
|
|
1045
|
+
`);{let e=await Sat({agentMessages:d,tools:a.options.tools,toolPermissionContext:a.getAppState().toolPermissionContext,abortSignal:t.signal,subagentType:r.agentType,totalToolUseCount:m.totalToolUseCount});e&&(h=`${e}\n\n${h}`)}let g=await l();xZ({taskId:e,description:i,status:`completed`,setAppState:o,finalMessage:h,usage:{totalTokens:gZ(s),toolUses:m.totalToolUseCount,durationMs:m.totalDurationMs},toolUseId:a.toolUseId,...g})}catch(t){if(u?.(),t instanceof La){SZ(e,o),G(`tengu_agent_tool_terminated`,{agent_type:r.agentType,model:r.resolvedAgentModel,duration_ms:Date.now()-r.startTime,is_async:!0,is_built_in_agent:r.isBuiltInAgent,reason:`user_kill_async`});let t=await l(),n=Cat(d);xZ({taskId:e,description:i,status:`killed`,setAppState:o,toolUseId:a.toolUseId,finalMessage:n,...t});return}let n=H(t);CIt(e,n,o);let s=await l();xZ({taskId:e,description:i,status:`failed`,error:n,setAppState:o,toolUseId:a.toolUseId,...s})}finally{rn(s),$v(s)}}var Tat,zR=n((()=>{it(),tn(),Yc(),XRe(),Ua(),ry(),Sc(),EZ(),Ux(),$i(),W(),y(),ka(),Fs(),i3(),Cr(),RR(),hat(),us(),s_(),Jc(),Qi(),Tat=J(()=>L({agentId:F(),agentType:F().optional(),content:Re(L({type:I(`text`),text:F()})),totalToolUseCount:P(),totalDurationMs:P(),totalTokens:P(),usage:L({input_tokens:P(),output_tokens:P(),cache_creation_input_tokens:P().nullable(),cache_read_input_tokens:P().nullable(),server_tool_use:L({web_search_requests:P(),web_fetch_requests:P()}).nullable(),service_tier:Ge([`standard`,`priority`,`batch`]).nullable(),cache_creation:L({ephemeral_1h_input_tokens:P(),ephemeral_5m_input_tokens:P()}).nullable()})}))})),Eat=i({MonitorMcpTask:()=>Nat,completeMonitorMcpTask:()=>kat,failMonitorMcpTask:()=>Aat,isMonitorMcpTask:()=>Dat,killMonitorMcp:()=>jat,killMonitorMcpTasksForAgent:()=>Mat,registerMonitorMcpTask:()=>Oat});function Dat(e){return typeof e==`object`&&!!e&&`type`in e&&e.type===`monitor_mcp`}function Oat(e,t){let n=n7(`monitor_mcp`);return Lx({...r7(n,`monitor_mcp`,t.description,t.toolUseId),type:`monitor_mcp`,status:`running`,serverName:t.serverName,resourceUri:t.resourceUri,command:t.command,agentId:t.agentId,abortController:t.abortController},e),n}function kat(e,t){Ix(e,t,e=>({...e,status:`completed`,endTime:Date.now(),notified:!0,abortController:void 0}))}function Aat(e,t){Ix(e,t,e=>({...e,status:`failed`,endTime:Date.now(),notified:!0,abortController:void 0}))}function jat(e,t){Ix(e,t,e=>e.status===`running`?(e.abortController?.abort(),{...e,status:`killed`,endTime:Date.now(),notified:!0,abortController:void 0}):e)}function Mat(e,t,n){let r=t().tasks??{};for(let[t,i]of Object.entries(r))Dat(i)&&i.agentId===e&&i.status===`running`&&(U(`killMonitorMcpTasksForAgent: killing orphaned monitor task ${t} (agent ${e} exiting)`),jat(t,n))}var Nat,Pat=n((()=>{i7(),W(),Bx(),Nat={name:`MonitorMcpTask`,type:`monitor_mcp`,async kill(e,t){jat(e,t)}}}));async function Fat(e,t){if(!e.mcpServers?.length)return{clients:t,tools:[],cleanup:async()=>{}};let n=gGe(e.source);if(KT(`mcp`)&&!n)return U(`[Agent: ${e.agentType}] Skipping MCP servers: strictPluginOnlyCustomization locks MCP to plugin-only (agent source: ${e.source})`),{clients:t,tools:[],cleanup:async()=>{}};let r=[],i=[],a=[];for(let t of e.mcpServers){let n=null,o,s=!1;if(typeof t==`string`){if(o=t,n=HGe(t),!n){U(`[Agent: ${e.agentType}] MCP server not found: ${t}`,{level:`warn`});continue}}else{let r=Object.entries(t);if(r.length!==1){U(`[Agent: ${e.agentType}] Invalid MCP server spec: expected exactly one key`,{level:`warn`});continue}let[i,a]=r[0];o=i,n={...a,scope:`dynamic`},s=!0}let c=await EA(o,n);if(r.push(c),s&&i.push(c),c.type===`connected`){let t=await OA(c);a.push(...t),U(`[Agent: ${e.agentType}] Connected to MCP server '${o}' with ${t.length} tools`)}else U(`[Agent: ${e.agentType}] Failed to connect to MCP server '${o}': ${c.type}`,{level:`warn`})}let o=async()=>{for(let t of i)if(t.type===`connected`)try{await t.cleanup()}catch(n){U(`[Agent: ${e.agentType}] Error cleaning up MCP server '${t.name}': ${n}`,{level:`warn`})}};return{clients:[...t,...r],tools:a,cleanup:o}}function Iat(e){return e.type===`assistant`||e.type===`user`||e.type===`progress`||e.type===`system`&&`subtype`in e&&e.subtype===`compact_boundary`}async function*BR({agentDefinition:t,promptMessages:n,toolUseContext:r,canUseTool:i,isAsync:a,canShowPermissionPrompts:o,forkContextMessages:s,querySource:c,override:l,model:u,maxTurns:d,preserveToolUseResults:f,availableTools:p,allowedTools:m,onCacheSafeParams:h,contentReplacementState:g,useExactTools:_,worktreePath:v,description:y,transcriptSubdir:b,onQueryProgress:x}){let S=r.getAppState(),C=S.toolPermissionContext.mode,w=r.setAppStateForTasks??r.setAppState,T=jP(t.model,r.options.mainLoopModel,u,C),E=l?.agentId?l.agentId:SP();if(b&&p8(E,b),ade()){let e=r.agentId??Ft();Kue(E,t.agentType,e)}process.env.USER_TYPE===`ant`&&U(`[Subagent ${t.agentType}] API calls: ${Wr(ey(E))}`);let D=[...s?Qx(s):[],...n],ee=s===void 0?yue(100):fl(r.readFileState),[O,k]=await Promise.all([l?.userContext??t_(),l?.systemContext??e_()]),te=t.omitClaudeMd&&!l?.userContext&&Jr(`tengu_slim_subagent_claudemd`,!0),{claudeMd:ne,...re}=O,ie=te?re:O,{gitStatus:ae,...oe}=k,A=t.agentType===`Explore`||t.agentType===`Plan`?oe:k,se=t.permissionMode,j=()=>{let e=r.getAppState(),n=e.toolPermissionContext;se&&e.toolPermissionContext.mode!==`bypassPermissions`&&e.toolPermissionContext.mode!==`acceptEdits`&&e.toolPermissionContext.mode!==`auto`&&(n={...n,mode:se});let i=o===void 0?se===`bubble`?!1:a:!o;i&&(n={...n,shouldAvoidPermissionPrompts:!0}),a&&!i&&(n={...n,awaitAutomatedChecksBeforeDialog:!0}),m!==void 0&&(n={...n,alwaysAllowRules:{cliArg:e.toolPermissionContext.alwaysAllowRules.cliArg,session:[...m]}});let s=t.effort===void 0?e.effortValue:t.effort;return n===e.toolPermissionContext&&s===e.effortValue?e:{...e,toolPermissionContext:n,effortValue:s}},ce=_?p:_at(t,p,a).resolvedTools,M=Array.from(S.toolPermissionContext.additionalWorkingDirectories.keys()),N=l?.systemPrompt?l.systemPrompt:Sl(await Lat(t,r,T,M,ce)),le=l?.abortController?l.abortController:a?new AbortController:r.abortController,ue=[];for await(let e of P5t(E,t.agentType,le.signal))e.additionalContexts&&e.additionalContexts.length>0&&ue.push(...e.additionalContexts);if(ue.length>0){let e=u0({type:`hook_additional_context`,content:ue,hookName:`SubagentStart`,toolUseID:od(),hookEvent:`SubagentStart`});D.push(e)}let de=!KT(`hooks`)||gGe(t.source);t.hooks&&de&&x9e(w,E,t.hooks,`agent '${t.agentType}'`,!0);let fe=t.skills??[];if(fe.length>0){let e=await r8(hn()),n=[];for(let r of fe){let i=Rat(r,e,t);if(!i){U(`[Agent: ${t.agentType}] Warning: Skill '${r}' specified in frontmatter was not found`,{level:`warn`});continue}let a=g4t(i,e);if(a.type!==`prompt`){U(`[Agent: ${t.agentType}] Warning: Skill '${r}' is not a prompt-based skill`,{level:`warn`});continue}n.push({skillName:r,skill:a})}let{formatSkillLoadingMetadata:i}=await import(`./processSlashCommand-DyPCeZux.js`),a=await Promise.all(n.map(async({skillName:e,skill:t})=>({skillName:e,skill:t,content:await t.getPromptForCommand(``,r)})));for(let{skillName:e,skill:n,content:r}of a){U(`[Agent: ${t.agentType}] Preloaded skill '${e}'`);let a=i(e,n.progressMessage);D.push(d4({content:[{type:`text`,text:a},...r],isMeta:!0}))}}let{clients:pe,tools:me,cleanup:he}=await Fat(t,r.options.mcpClients),ge=me.length>0?ti([...ce,...me],`name`):ce,_e=C$(r,{options:{isNonInteractiveSession:_?r.options.isNonInteractiveSession:a?!0:r.options.isNonInteractiveSession??!1,appendSystemPrompt:r.options.appendSystemPrompt,tools:ge,commands:[],debug:r.options.debug,verbose:r.options.verbose,mainLoopModel:T,thinkingConfig:_?r.options.thinkingConfig:{type:`disabled`},mcpClients:pe,mcpResources:r.options.mcpResources,agentDefinitions:r.options.agentDefinitions,..._&&{querySource:c}},agentId:E,agentType:t.agentType,messages:D,readFileState:ee,abortController:le,getAppState:j,shareSetAppState:!a,shareSetResponseLength:!0,criticalSystemReminder_EXPERIMENTAL:t.criticalSystemReminder_EXPERIMENTAL,contentReplacementState:g});f&&(_e.preserveToolUseResults=!0),h&&h({systemPrompt:N,userContext:ie,systemContext:A,toolUseContext:_e,forkContextMessages:D}),D8(D,E).catch(e=>U(`Failed to record sidechain transcript: ${e}`)),g8(E,{agentType:t.agentType,...v&&{worktreePath:v},...y&&{description:y}}).catch(e=>U(`Failed to write agent metadata: ${e}`));let ve=D.at(-1)?.uuid??null,ye=gx()?BLe({sessionId:Ft(),agentType:t.agentType,agentId:E,model:T,provider:ar(),input:D}):null;ye&&(_e.langfuseTrace=ye);try{for await(let e of m$({messages:D,systemPrompt:N,userContext:ie,systemContext:A,canUseTool:i,toolUseContext:_e,querySource:c,maxTurns:d??t.maxTurns})){if(x?.(),e.type===`stream_event`&&e.event.type===`message_start`&&e.ttftMs!=null){r.pushApiMetricsEntry?.(e.ttftMs);continue}if(e.type===`attachment`){if(e.attachment.type===`max_turns_reached`){U(`[Agent
|
|
1046
1046
|
: $
|
|
1047
1047
|
{
|
|
1048
1048
|
agentDefinition.agentType
|
|
@@ -1073,7 +1073,7 @@ If you've already retrieved data pointing one way and the advisor points another
|
|
|
1073
1073
|
`,Sot=!1,Cot=/(^|[^\w./-])([A-Za-z0-9][\w-]*\/[A-Za-z0-9][\w.-]*)#(\d+)\b/g,wot=[[1e3,`m`],[900,`cm`],[500,`d`],[400,`cd`],[100,`c`],[90,`xc`],[50,`l`],[40,`xl`],[10,`x`],[9,`ix`],[5,`v`],[4,`iv`],[1,`i`]]}));function Eot(e,t,n){if(t<=0)return[e];let r=Zee(e.trimEnd(),t,{hard:n?.hard??!1,trim:!1,wordWrap:!0}).split(`
|
|
1074
1074
|
`).filter(e=>e.length>0);return r.length>0?r:[``]}var Dot,cz,Oot,lz,kot,Aot,jot,Mot,Not=n((()=>{Dot=r(R(),1),Ot(),kT(),Tt(),Tot(),cz=jt(),Oot=4,lz=3,kot=4,Aot=`\x1B[1m`,jot=`\x1B[22m`,Mot=Dot.memo(function({token:e,highlight:t,forceWidth:n}){let[r]=_t(),{columns:i}=ct(),a=n??i,o=new Map,s=new Map;function c(e){let n=o.get(e);if(n!==void 0)return n;let i=e?.map(e=>oz(e,r,0,null,null,t)).join(``)??``;return o.set(e,i),i}function l(e){let t=s.get(e);if(t!==void 0)return t;let n=vt(c(e));return s.set(e,n),n}function u(e){let t=l(e).split(/\s+/).filter(e=>e.length>0);return t.length===0?lz:Math.max(...t.map(e=>st(e)),lz)}function d(e){return Math.max(st(l(e)),lz)}let f=e.header.map((t,n)=>{let r=u(t.tokens);for(let t of e.rows)r=Math.max(r,u(t[n]?.tokens));return r}),p=e.header.map((t,n)=>{let r=d(t.tokens);for(let t of e.rows)r=Math.max(r,d(t[n]?.tokens));return r}),m=e.header.length,h=1+m*3,g=Math.max(a-h-Oot,m*lz),_=f.reduce((e,t)=>e+t,0),v=p.reduce((e,t)=>e+t,0),y=!1,b;if(v<=g)b=p;else if(_<=g){let e=g-_,t=p.map((e,t)=>e-f[t]),n=t.reduce((e,t)=>e+t,0);b=f.map((r,i)=>n===0?r:r+Math.floor(t[i]/n*e))}else{y=!0;let e=g/_;b=f.map(t=>Math.max(Math.floor(t*e),lz))}let x=new Map;function S(e,t){let n=x.get(e);if(n!==void 0)return n;let r=Eot(c(e),b[t],{hard:y});return x.set(e,r),r}let C=1;for(let t=0;t<e.header.length;t++)C=Math.max(C,S(e.header[t].tokens,t).length);for(let t of e.rows)for(let e=0;e<t.length;e++)C=Math.max(C,S(t[e]?.tokens,e).length);let w=C>kot;function T(t,n){let r=t.map((e,t)=>S(e.tokens,t)),i=Math.max(...r.map(e=>e.length),1),a=r.map(e=>Math.floor((i-e.length)/2)),o=[];for(let s=0;s<i;s++){let i=`│`;for(let o=0;o<t.length;o++){let t=r[o],c=a[o],l=s-c,u=l>=0&&l<t.length?t[l]:``,d=b[o],f=n?`center`:e.align?.[o]??`left`;i+=` `+xot(u,st(u),d,f)+` │`}o.push(i)}return o}function E(e){let[t,n,r,i]={top:[`┌`,`─`,`┬`,`┐`],middle:[`├`,`─`,`┼`,`┤`],bottom:[`└`,`─`,`┴`,`┘`]}[e],a=t;return b.forEach((e,t)=>{a+=n.repeat(e+2),a+=t<b.length-1?r:i}),a}function D(){let t=[],n=e.header.map(e=>l(e.tokens)),r=Math.min(a-1,40),i=`─`.repeat(r);return e.rows.forEach((e,r)=>{r>0&&t.push(i),e.forEach((e,r)=>{let i=n[r]||`Column ${r+1}`,o=c(e.tokens).trimEnd().replace(/\n+/g,` `).replace(/\s+/g,` `).trim(),s=a-st(i)-3,l=a-2-1,u=Eot(o,Math.max(s,10)),d=u[0]||``,f;f=u.length<=1||l<=s?u:[d,...Eot(u.slice(1).map(e=>e.trim()).join(` `),l)],t.push(`${Aot}${i}:${jot} ${f[0]||``}`);for(let e=1;e<f.length;e++){let n=f[e];n.trim()&&t.push(` ${n}`)}})}),t.join(`
|
|
1075
1075
|
`)}if(w)return(0,cz.jsx)(yt,{children:D()});let ee=[];return ee.push(E(`top`)),ee.push(...T(e.header,!0)),ee.push(E(`middle`)),e.rows.forEach((t,n)=>{ee.push(...T(t,!1)),n<e.rows.length-1&&ee.push(E(`middle`))}),ee.push(E(`bottom`)),Math.max(...ee.map(e=>st(vt(e))))>a-Oot?(0,cz.jsx)(yt,{children:D()}):(0,cz.jsx)(yt,{children:ee.join(`
|
|
1076
|
-
`)})})}));function Pot(e){return Bot.test(e.length>500?e.slice(0,500):e)}function Fot(e){if(!Pot(e))return[{type:`paragraph`,raw:e,text:e,tokens:[{type:`text`,raw:e,text:e}]}];let t=qse(e),n=zot.get(t);if(n)return n;let r=eg.lexer(e);return zot.set(t,r),r}function uz(e){return ZO().syntaxHighlightingDisabled?(0,fz.jsx)(Lot,{...e,highlight:null}):(0,fz.jsx)(dz.Suspense,{fallback:(0,fz.jsx)(Lot,{...e,highlight:null}),children:(0,fz.jsx)(Iot,{...e})})}function Iot(e){let t=(0,dz.use)(cy());return(0,fz.jsx)(Lot,{...e,highlight:t})}function Lot({children:e,dimColor:t,highlight:n}){let[r]=_t();return hot(),(0,fz.jsx)(B,{flexDirection:`column`,gap:1,children:(0,dz.useMemo)(()=>{let i=Fot(E4(e)),a=[],o=``;function s(){o&&(a.push((0,fz.jsx)(yt,{dimColor:t,children:o.trim()},a.length)),o=``)}for(let e of i)e.type===`table`?(s(),a.push((0,fz.jsx)(Mot,{token:e,highlight:n},a.length))):o+=oz(e,r,0,null,null,n);return s(),a},[e,t,n,r])})}function Rot({children:e}){"use no memo";hot();let t=E4(e),n=(0,dz.useRef)(``);t.startsWith(n.current)||(n.current=``);let r=n.current.length,i=eg.lexer(t.substring(r)),a=i.length-1;for(;a>=0&&i[a].type===`space`;)a--;let o=0;for(let e=0;e<a;e++)o+=i[e].raw.length;o>0&&(n.current=t.substring(0,r+o));let s=n.current,c=t.substring(s.length);return(0,fz.jsxs)(B,{flexDirection:`column`,gap:1,children:[s&&(0,fz.jsx)(uz,{children:s}),c&&(0,fz.jsx)(uz,{children:c})]})}var dz,fz,zot,Bot,pz=n((()=>{zg(),dz=r(R(),1),Fo(),QO(),Tt(),uy(),Mo(),Tot(),i3(),Not(),fz=jt(),zot=new Io({max:500}),Bot=/[#*`|[>\-_~]|\n\n|^\d+\. |\n\d+\. /}));function Vot(){return x(process.env.DISABLE_EXTRA_USAGE_COMMAND)?!1:Doe()}var mz,Hot,Uot=n((()=>{tn(),Wi(),y(),mz={type:`local-jsx`,name:`extra-usage`,description:`Configure extra usage to keep working when limits are hit`,isEnabled:()=>Vot()&&!Kt(),load:()=>import(`./extra-usage-CsJ9Z2G1.js`)},Hot={type:`local`,name:`extra-usage`,supportsNonInteractive:!0,description:`Configure extra usage to keep working when limits are hit`,isEnabled:()=>Vot()&&Kt(),get isHidden(){return!Kt()},load:()=>import(`./extra-usage-noninteractive-B4vaWh0y.js`)}}));function Wot(){let[e,t]=(0,Got.useState)({...K_});return(0,Got.useEffect)(()=>{let e=e=>{t({...e})};return J_.add(e),()=>{J_.delete(e)}},[]),e}var Got,Kot=n((()=>{Got=r(R(),1),Y_()}));function qot({shouldShowUpsell:e,isMax20x:t,isExtraUsageCommandEnabled:n,shouldAutoOpenRateLimitOptionsMenu:r,isTeamOrEnterprise:i,hasBillingAccess:a}){return e?t?n?`/extra-usage to finish what you’re working on.`:`/login to switch to an API usage-billed account.`:r?`Opening your options…`:!i&&!n?`/upgrade to increase your usage limit.`:i?n?a?`/extra-usage to finish what you’re working on.`:`/extra-usage to request more usage from your admin.`:null:`/upgrade or /extra-usage to finish what you’re working on.`:null}function Jot({text:e,onOpenRateLimitOptions:t}){let n=ra(),r=Xne(),i=n===`team`||n===`enterprise`,a=r===`default_claude_max_20x`,o=jn()||di(),s=o&&!a,[c,l]=(0,hz.useState)(!1),u=Wot(),d=u.status===`rejected`&&u.resetsAt!==void 0&&!u.isUsingOverage,f=s&&!c&&d&&t;(0,hz.useEffect)(()=>{f&&(l(!0),t())},[f,t]);let p=(0,hz.useMemo)(()=>{let e=qot({shouldShowUpsell:o,isMax20x:a,isExtraUsageCommandEnabled:mz.isEnabled(),shouldAutoOpenRateLimitOptionsMenu:!!f,isTeamOrEnterprise:i,hasBillingAccess:lre()});return e?(0,gz.jsx)(z,{dimColor:!0,children:e}):null},[o,a,i,f]);return(0,gz.jsx)(Q,{children:(0,gz.jsxs)(B,{flexDirection:`column`,children:[(0,gz.jsx)(z,{color:`error`,children:e}),c?null:p]})})}var hz,gz,Yot=n((()=>{hz=r(R(),1),Uot(),Tt(),Kot(),H_(),Wi(),Mae(),OT(),gz=jt()}));function Xot(){let e=Sie();return(0,_z.jsx)(Q,{children:(0,_z.jsxs)(B,{flexDirection:`column`,children:[(0,_z.jsx)(z,{color:`error`,children:rv}),e&&(0,_z.jsx)(z,{dimColor:!0,children:`· Run in another terminal: security unlock-keychain`})]})})}function Zot({param:{text:e},addMargin:t,shouldShowDot:n,verbose:r,onOpenRateLimitOptions:i}){let a=(0,Qot.useContext)(pT);if(T4(e))return null;if(KCe(e))return(0,_z.jsx)(Jot,{text:e,onOpenRateLimitOptions:i});switch(e){case Q4:return null;case tv:{let e=pot(`warning`);return(0,_z.jsx)(Q,{height:1,children:(0,_z.jsxs)(z,{color:`error`,children:[`Context limit reached · /compact or /clear to continue`,e?` · ${e}`:``]})})}case nv:return(0,_z.jsx)(Q,{height:1,children:(0,_z.jsx)(z,{color:`error`,children:`Credit balance too low · Add funds: https://platform.claude.com/settings/billing`})});case rv:return(0,_z.jsx)(Xot,{});case iv:return(0,_z.jsx)(Q,{height:1,children:(0,_z.jsx)(z,{color:`error`,children:iv})});case ov:case av:return(0,_z.jsx)(Q,{children:(0,_z.jsx)(z,{color:`error`,children:e})});case sv:return(0,_z.jsx)(Q,{height:1,children:(0,_z.jsx)(z,{color:`error`,children:sv})});case uv:return(0,_z.jsx)(Q,{height:1,children:(0,_z.jsxs)(z,{color:`error`,children:[uv,process.env.API_TIMEOUT_MS&&(0,_z.jsxs)(_z.Fragment,{children:[` (API_TIMEOUT_MS=`,process.env.API_TIMEOUT_MS,`ms, try increasing it)`]})]})});case lv:return(0,_z.jsx)(Q,{children:(0,_z.jsxs)(B,{flexDirection:`column`,gap:1,children:[(0,_z.jsx)(z,{color:`error`,children:`We are experiencing high demand for Opus 4.`}),(0,_z.jsxs)(z,{children:[`To continue immediately, use /model to switch to `,Vn(Mn()),` and continue coding.`]})]})});case z$:return(0,_z.jsx)(Q,{height:1,children:(0,_z.jsx)(GR,{})});default:if(Z_(e)){let t=!r&&e.length>$ot;return(0,_z.jsx)(Q,{children:(0,_z.jsxs)(B,{flexDirection:`column`,children:[(0,_z.jsx)(z,{color:`error`,children:e===`API Error`?`${ev}: Please wait a moment and try again.`:t?e.slice(0,$ot)+`…`:e}),t&&(0,_z.jsx)(_T,{})]})})}return(0,_z.jsx)(B,{alignItems:`flex-start`,flexDirection:`row`,justifyContent:`space-between`,marginTop:+!!t,width:`100%`,backgroundColor:a?`messageActionsBackground`:void 0,children:(0,_z.jsxs)(B,{flexDirection:`row`,children:[n&&(0,_z.jsx)(dt,{fromLeftEdge:!0,minWidth:2,children:(0,_z.jsx)(z,{color:a?`suggestion`:`text`,children:Hn})}),(0,_z.jsx)(B,{flexDirection:`column`,children:(0,_z.jsx)(uz,{children:e})})]})})}}var Qot,_z,$ot,est=n((()=>{Qot=r(R(),1),V$(),nwe(),Rn(),Tt(),dv(),i3(),mot(),hr(),Tre(),xT(),qR(),pz(),OT(),hT(),Yot(),_z=jt(),$ot=1e3}));function tst({param:{thinking:e},addMargin:t=!1,isTranscriptMode:n,verbose:r,hideInTranscript:i=!1}){if(!e||i)return null;let a=n||r,o=`∴ Thinking`;return a?(0,vz.jsxs)(B,{flexDirection:`column`,gap:1,marginTop:+!!t,width:`100%`,children:[(0,vz.jsxs)(z,{dimColor:!0,italic:!0,children:[o,`…`]}),(0,vz.jsx)(B,{paddingLeft:2,children:(0,vz.jsx)(uz,{dimColor:!0,children:e})})]}):(0,vz.jsx)(B,{marginTop:+!!t,children:(0,vz.jsxs)(z,{dimColor:!0,italic:!0,children:[o,` `,(0,vz.jsx)(_T,{})]})})}var vz,nst=n((()=>{R(),Tt(),xT(),pz(),vz=jt()}));function rst(e,t){yz.set(e,{classifier:`auto-mode`,reason:t})}function ist(e){let t=yz.get(e);if(!(!t||t.classifier!==`auto-mode`))return t.reason}function ast(e){bz.add(e),xz.emit()}function ost(e){bz.delete(e),xz.emit()}function sst(e){return bz.has(e)}function cst(e){yz.delete(e)}function lst(){yz.clear(),bz.clear(),xz.emit()}var yz,bz,xz,ust,Sz=n((()=>{It(),yz=new Map,bz=new Set,xz=Wt(),ust=xz.subscribe}));function dst(e){return(0,fst.useSyncExternalStore)(ust,()=>sst(e))}var fst,pst=n((()=>{fst=r(R(),1),Sz()}));function mst({hookEvent:e,lookups:t,toolUseID:n,isTranscriptMode:r}){let i=t.inProgressHookCounts.get(n)?.get(e)??0,a=t.resolvedHookCounts.get(n)?.get(e)??0;return i===0?null:e===`PreToolUse`||e===`PostToolUse`?r?(0,Cz.jsx)(Q,{children:(0,Cz.jsxs)(B,{flexDirection:`row`,children:[(0,Cz.jsxs)(z,{dimColor:!0,children:[i,` `]}),(0,Cz.jsx)(z,{dimColor:!0,bold:!0,children:e}),(0,Cz.jsxs)(z,{dimColor:!0,children:[i===1?` hook`:` hooks`,` ran`]})]})}):null:a===i?null:(0,Cz.jsx)(Q,{children:(0,Cz.jsxs)(B,{flexDirection:`row`,children:[(0,Cz.jsx)(z,{dimColor:!0,children:`Running `}),(0,Cz.jsx)(z,{dimColor:!0,bold:!0,children:e}),(0,Cz.jsx)(z,{dimColor:!0,children:i===1?` hook…`:` hooks…`})]})})}var Cz,hst=n((()=>{R(),Tt(),OT(),Cz=jt()}));function gst({param:e,addMargin:t,tools:n,commands:r,verbose:i,inProgressToolUseIDs:a,progressMessagesForMessage:o,shouldAnimate:s,shouldShowDot:c,inProgressToolCallCount:l,lookups:u,isTranscriptMode:d,defaultCollapsed:f}){let p=ct(),[m]=_t(),h=iT(),g=RO(e=>e.pendingWorkerRequest),_=dst(e.id),v=RO(e=>e.toolPermissionContext.mode),y=RO(e=>!!e.toolPermissionContext.strippedDangerousRules),b=v===`auto`||v===`plan`&&y,x=process.env.USER_TYPE===`ant`&&_&&v!==`auto`,S=(0,bst.useMemo)(()=>{if(!n)return null;let t=rl(n,e.name);if(!t)return null;let r=t.inputSchema.safeParse(e.input),i=r.success?r.data:void 0;return{tool:t,input:r,userFacingToolName:t.userFacingName(i),userFacingToolNameBackgroundColor:t.userFacingNameBackgroundColor?.(i),isTransparentWrapper:t.isTransparentWrapper?.()??!1}},[n,e]);if(!S)return q(Error(n?`Tool ${e.name} not found`:`Tools array is undefined for tool ${e.name}`)),null;let{tool:C,input:w,userFacingToolName:T,userFacingToolNameBackgroundColor:E,isTransparentWrapper:D}=S,ee=u.resolvedToolUseIDs.has(e.id),O=!a.has(e.id)&&!ee,k=g?.toolUseId===e.id;if(D)return O||ee?null:(0,wz.jsx)(B,{flexDirection:`column`,width:`100%`,backgroundColor:h,children:vst(C,n,u,e.id,o,{verbose:i,inProgressToolCallCount:l,isTranscriptMode:d},p)});if(T===``)return null;let te=w.success?_st(C,w.data,{theme:m,verbose:i,commands:r}):null;return te===null?null:(0,wz.jsx)(B,{flexDirection:`row`,justifyContent:`space-between`,marginTop:+!!t,width:`100%`,backgroundColor:h,children:(0,wz.jsxs)(B,{flexDirection:`column`,children:[(0,wz.jsxs)(B,{flexDirection:`row`,flexWrap:`nowrap`,minWidth:st(T)+(c?2:0),children:[c&&(O?(0,wz.jsx)(B,{minWidth:2,children:(0,wz.jsx)(z,{dimColor:O,children:Hn})}):(0,wz.jsx)(tz,{shouldAnimate:s,isUnresolved:!ee,isError:u.erroredToolUseIDs.has(e.id)})),(0,wz.jsx)(B,{flexShrink:0,children:(0,wz.jsx)(z,{bold:!0,wrap:`truncate-end`,backgroundColor:E,color:E?`inverseText`:void 0,children:T})}),te!==``&&(0,wz.jsx)(B,{flexWrap:`nowrap`,children:(0,wz.jsxs)(z,{children:[`(`,te,`)`]})}),w.success&&C.renderToolUseTag&&C.renderToolUseTag(w.data)]}),!ee&&!O&&!f&&(x?(0,wz.jsx)(Q,{height:1,children:(0,wz.jsx)(z,{dimColor:!0,children:b?`Auto classifier checking…`:`Bash classifier checking…`})}):k?(0,wz.jsx)(Q,{height:1,children:(0,wz.jsx)(z,{dimColor:!0,children:`Waiting for permission…`})}):vst(C,n,u,e.id,o,{verbose:i,inProgressToolCallCount:l,isTranscriptMode:d},p)),!ee&&O&&yst(C)]})})}function _st(e,t,{theme:n,verbose:r,commands:i}){try{let a=e.inputSchema.safeParse(t);return a.success?e.renderToolUseMessage(a.data,{theme:n,verbose:r,commands:i}):``}catch(t){return q(Error(`Error rendering tool use message for ${e.name}: ${t}`)),``}}function vst(e,t,n,r,i,{verbose:a,inProgressToolCallCount:o,isTranscriptMode:s},c){let l=i.filter(e=>e.data.type!==`hook_progress`);try{let i=e.renderToolUseProgressMessage?.(l,{tools:t,verbose:a,terminalSize:c,inProgressToolCallCount:o??1,isTranscriptMode:s})??null;return(0,wz.jsxs)(wz.Fragment,{children:[(0,wz.jsx)(Gfe,{children:(0,wz.jsx)(mst,{hookEvent:`PreToolUse`,lookups:n,toolUseID:r,verbose:a,isTranscriptMode:s})}),i]})}catch(t){return q(Error(`Error rendering tool use progress message for ${e.name}: ${t}`)),null}}function yst(e){try{return e.renderToolUseQueuedMessage?.()}catch(t){return q(Error(`Error rendering tool use queued message for ${e.name}: ${t}`)),null}}var bst,wz,xst=n((()=>{bst=r(R(),1),kT(),Rn(),Tt(),UO(),Sc(),pst(),Ao(),OT(),hT(),Wfe(),nz(),hst(),wz=jt()}));function Tz({filePath:e,children:t}){return(0,Sst.jsx)(ht,{url:kd(e).href,children:t??e})}var Sst,Ez=n((()=>{R(),Tt(),Sst=jt()}));function Cst(e){switch(e){case`completed`:return`success`;case`failed`:return`error`;case`killed`:return`warning`;default:return`text`}}function wst({addMargin:e,param:{text:t}}){let n=p4(t,`summary`);if(!n)return null;let r=Cst(p4(t,`status`));return(0,Dz.jsx)(B,{marginTop:+!!e,children:(0,Dz.jsxs)(z,{children:[(0,Dz.jsx)(z,{color:r,children:Hn}),` `,n]})})}var Dz,Tst=n((()=>{R(),Rn(),Tt(),i3(),Dz=jt()}));function Est({param:{text:e},addMargin:t}){let n=p4(e,`bash-input`);return n?(0,Oz.jsxs)(B,{flexDirection:`row`,marginTop:+!!t,backgroundColor:`bashMessageBackgroundColor`,paddingRight:1,children:[(0,Oz.jsx)(z,{color:`bashBorder`,children:`! `}),(0,Oz.jsx)(z,{color:`text`,children:n})]}):null}var Oz,Dst=n((()=>{R(),Tt(),i3(),Oz=jt()}));function kz({elapsedTimeSeconds:e,timeoutMs:t}){if(e===void 0&&!t)return null;let n=t?Ds(t,{hideTrailingZeros:!0}):void 0;if(e===void 0)return(0,Az.jsx)(z,{dimColor:!0,children:`(timeout ${n})`});let r=Ds(e*1e3);return n?(0,Az.jsx)(z,{dimColor:!0,children:`(${r} · timeout ${n})`}):(0,Az.jsx)(z,{dimColor:!0,children:`(${r})`})}var Az,Ost=n((()=>{R(),Tt(),Ns(),Az=jt()}));function kst(e){return e.match(/<sandbox_violations>([\s\S]*?)<\/sandbox_violations>/)?{cleanedStderr:Hat(e).trim()}:{cleanedStderr:e}}function Ast(e){let t=e.match(Mst);if(!t)return{cleanedStderr:e,cwdResetWarning:null};let n=t[1]??null;return{cleanedStderr:e.replace(Mst,``).trim(),cwdResetWarning:n}}function jst({content:{stdout:e=``,stderr:t=``,isImage:n,returnCodeInterpretation:r,noOutputExpected:i,backgroundTaskId:a},verbose:o,timeoutMs:s}){let{cleanedStderr:c}=kst(t),{cleanedStderr:l,cwdResetWarning:u}=Ast(c);return n?(0,jz.jsx)(Q,{height:1,children:(0,jz.jsx)(z,{dimColor:!0,children:`[Image data detected and sent to Claude]`})}):(0,jz.jsxs)(B,{flexDirection:`column`,children:[e===``?null:(0,jz.jsx)(jT,{content:e,verbose:o}),l.trim()===``?null:(0,jz.jsx)(jT,{content:l,verbose:o,isError:!0}),u?(0,jz.jsx)(Q,{children:(0,jz.jsx)(z,{dimColor:!0,children:u})}):null,e===``&&l.trim()===``&&!u?(0,jz.jsx)(Q,{height:1,children:(0,jz.jsx)(z,{dimColor:!0,children:a?(0,jz.jsxs)(jz.Fragment,{children:[`Running in the background `,(0,jz.jsx)(xt,{shortcut:`↓`,action:`manage`,parens:!0})]}):r||(i?`Done`:`(No output)`)})}):null,s&&(0,jz.jsx)(Q,{children:(0,jz.jsx)(kz,{timeoutMs:s})})]})}var jz,Mst,Nst=n((()=>{R(),Uat(),Tt(),OT(),NT(),Ost(),jz=jt(),Mst=/(?:^|\n)(Shell cwd was reset to .+)$/}));function Pst({content:e,verbose:t}){let n=p4(e,`bash-stdout`)??``;return(0,Fst.jsx)(jst,{content:{stdout:p4(n,`persisted-output`)??n,stderr:p4(e,`bash-stderr`)??``},verbose:!!t})}var Fst,Ist=n((()=>{R(),Nst(),i3(),Fst=jt()}));function Lst({addMargin:e,param:{text:t}}){let n=p4(t,yo),r=p4(t,`command-args`),i=p4(t,`skill-format`)===`true`;if(!n)return null;if(i)return(0,Mz.jsx)(B,{flexDirection:`column`,marginTop:+!!e,backgroundColor:`userMessageBackground`,paddingRight:1,children:(0,Mz.jsxs)(z,{children:[(0,Mz.jsxs)(z,{color:`subtle`,children:[ue.pointer,` `]}),(0,Mz.jsxs)(z,{color:`text`,children:[`Skill(`,n,`)`]})]})});let a=`/${[n,r].filter(Boolean).join(` `)}`;return(0,Mz.jsx)(B,{flexDirection:`column`,marginTop:+!!e,backgroundColor:`userMessageBackground`,paddingRight:1,children:(0,Mz.jsxs)(z,{children:[(0,Mz.jsxs)(z,{color:`subtle`,children:[ue.pointer,` `]}),(0,Mz.jsx)(z,{color:`text`,children:a})]})})}var Mz,Rst=n((()=>{N(),R(),Eo(),Tt(),i3(),Mz=jt()}));function zst({content:e}){let t=p4(e,`local-command-stdout`),n=p4(e,`local-command-stderr`);if(!t&&!n)return(0,Nz.jsx)(Q,{children:(0,Nz.jsx)(z,{dimColor:!0,children:Hf})});let r=[];return t?.trim()&&r.push((0,Nz.jsx)(Bst,{children:t.trim()},`stdout`)),n?.trim()&&r.push((0,Nz.jsx)(Bst,{children:n.trim()},`stderr`)),r}function Bst({children:e}){return e.startsWith(`◇ `)||e.startsWith(`◆ `)?(0,Nz.jsx)(Vst,{children:e}):(0,Nz.jsxs)(B,{flexDirection:`row`,children:[(0,Nz.jsx)(z,{dimColor:!0,children:` ⎿ `}),(0,Nz.jsx)(B,{flexDirection:`column`,flexGrow:1,children:(0,Nz.jsx)(uz,{children:e})})]})}function Vst({children:e}){let t=e[0],n=e.indexOf(`
|
|
1076
|
+
`)})})}));function Pot(e){return Bot.test(e.length>500?e.slice(0,500):e)}function Fot(e){if(!Pot(e))return[{type:`paragraph`,raw:e,text:e,tokens:[{type:`text`,raw:e,text:e}]}];let t=qse(e),n=zot.get(t);if(n)return n;let r=eg.lexer(e);return zot.set(t,r),r}function uz(e){return ZO().syntaxHighlightingDisabled?(0,fz.jsx)(Lot,{...e,highlight:null}):(0,fz.jsx)(dz.Suspense,{fallback:(0,fz.jsx)(Lot,{...e,highlight:null}),children:(0,fz.jsx)(Iot,{...e})})}function Iot(e){let t=(0,dz.use)(cy());return(0,fz.jsx)(Lot,{...e,highlight:t})}function Lot({children:e,dimColor:t,highlight:n}){let[r]=_t();return hot(),(0,fz.jsx)(B,{flexDirection:`column`,gap:1,children:(0,dz.useMemo)(()=>{let i=Fot(E4(e)),a=[],o=``;function s(){o&&(a.push((0,fz.jsx)(yt,{dimColor:t,children:o.trim()},a.length)),o=``)}for(let e of i)e.type===`table`?(s(),a.push((0,fz.jsx)(Mot,{token:e,highlight:n},a.length))):o+=oz(e,r,0,null,null,n);return s(),a},[e,t,n,r])})}function Rot({children:e}){"use no memo";hot();let t=E4(e),n=(0,dz.useRef)(``);t.startsWith(n.current)||(n.current=``);let r=n.current.length,i=eg.lexer(t.substring(r)),a=i.length-1;for(;a>=0&&i[a].type===`space`;)a--;let o=0;for(let e=0;e<a;e++)o+=i[e].raw.length;o>0&&(n.current=t.substring(0,r+o));let s=n.current,c=t.substring(s.length);return(0,fz.jsxs)(B,{flexDirection:`column`,gap:1,children:[s&&(0,fz.jsx)(uz,{children:s}),c&&(0,fz.jsx)(uz,{children:c})]})}var dz,fz,zot,Bot,pz=n((()=>{zg(),dz=r(R()),Fo(),QO(),Tt(),uy(),Mo(),Tot(),i3(),Not(),fz=jt(),zot=new Io({max:500}),Bot=/[#*`|[>\-_~]|\n\n|^\d+\. |\n\d+\. /}));function Vot(){return x(process.env.DISABLE_EXTRA_USAGE_COMMAND)?!1:Doe()}var mz,Hot,Uot=n((()=>{tn(),Wi(),y(),mz={type:`local-jsx`,name:`extra-usage`,description:`Configure extra usage to keep working when limits are hit`,isEnabled:()=>Vot()&&!Kt(),load:()=>import(`./extra-usage-DL2C0_BM.js`)},Hot={type:`local`,name:`extra-usage`,supportsNonInteractive:!0,description:`Configure extra usage to keep working when limits are hit`,isEnabled:()=>Vot()&&Kt(),get isHidden(){return!Kt()},load:()=>import(`./extra-usage-noninteractive-IHq7s6wm.js`)}}));function Wot(){let[e,t]=(0,Got.useState)({...K_});return(0,Got.useEffect)(()=>{let e=e=>{t({...e})};return J_.add(e),()=>{J_.delete(e)}},[]),e}var Got,Kot=n((()=>{Got=r(R(),1),Y_()}));function qot({shouldShowUpsell:e,isMax20x:t,isExtraUsageCommandEnabled:n,shouldAutoOpenRateLimitOptionsMenu:r,isTeamOrEnterprise:i,hasBillingAccess:a}){return e?t?n?`/extra-usage to finish what you’re working on.`:`/login to switch to an API usage-billed account.`:r?`Opening your options…`:!i&&!n?`/upgrade to increase your usage limit.`:i?n?a?`/extra-usage to finish what you’re working on.`:`/extra-usage to request more usage from your admin.`:null:`/upgrade or /extra-usage to finish what you’re working on.`:null}function Jot({text:e,onOpenRateLimitOptions:t}){let n=ra(),r=Xne(),i=n===`team`||n===`enterprise`,a=r===`default_claude_max_20x`,o=jn()||di(),s=o&&!a,[c,l]=(0,hz.useState)(!1),u=Wot(),d=u.status===`rejected`&&u.resetsAt!==void 0&&!u.isUsingOverage,f=s&&!c&&d&&t;(0,hz.useEffect)(()=>{f&&(l(!0),t())},[f,t]);let p=(0,hz.useMemo)(()=>{let e=qot({shouldShowUpsell:o,isMax20x:a,isExtraUsageCommandEnabled:mz.isEnabled(),shouldAutoOpenRateLimitOptionsMenu:!!f,isTeamOrEnterprise:i,hasBillingAccess:lre()});return e?(0,gz.jsx)(z,{dimColor:!0,children:e}):null},[o,a,i,f]);return(0,gz.jsx)(Q,{children:(0,gz.jsxs)(B,{flexDirection:`column`,children:[(0,gz.jsx)(z,{color:`error`,children:e}),c?null:p]})})}var hz,gz,Yot=n((()=>{hz=r(R(),1),Uot(),Tt(),Kot(),H_(),Wi(),Mae(),OT(),gz=jt()}));function Xot(){let e=Sie();return(0,_z.jsx)(Q,{children:(0,_z.jsxs)(B,{flexDirection:`column`,children:[(0,_z.jsx)(z,{color:`error`,children:rv}),e&&(0,_z.jsx)(z,{dimColor:!0,children:`· Run in another terminal: security unlock-keychain`})]})})}function Zot({param:{text:e},addMargin:t,shouldShowDot:n,verbose:r,onOpenRateLimitOptions:i}){let a=(0,Qot.useContext)(pT);if(T4(e))return null;if(KCe(e))return(0,_z.jsx)(Jot,{text:e,onOpenRateLimitOptions:i});switch(e){case Q4:return null;case tv:{let e=pot(`warning`);return(0,_z.jsx)(Q,{height:1,children:(0,_z.jsxs)(z,{color:`error`,children:[`Context limit reached · /compact or /clear to continue`,e?` · ${e}`:``]})})}case nv:return(0,_z.jsx)(Q,{height:1,children:(0,_z.jsx)(z,{color:`error`,children:`Credit balance too low · Add funds: https://platform.claude.com/settings/billing`})});case rv:return(0,_z.jsx)(Xot,{});case iv:return(0,_z.jsx)(Q,{height:1,children:(0,_z.jsx)(z,{color:`error`,children:iv})});case ov:case av:return(0,_z.jsx)(Q,{children:(0,_z.jsx)(z,{color:`error`,children:e})});case sv:return(0,_z.jsx)(Q,{height:1,children:(0,_z.jsx)(z,{color:`error`,children:sv})});case uv:return(0,_z.jsx)(Q,{height:1,children:(0,_z.jsxs)(z,{color:`error`,children:[uv,process.env.API_TIMEOUT_MS&&(0,_z.jsxs)(_z.Fragment,{children:[` (API_TIMEOUT_MS=`,process.env.API_TIMEOUT_MS,`ms, try increasing it)`]})]})});case lv:return(0,_z.jsx)(Q,{children:(0,_z.jsxs)(B,{flexDirection:`column`,gap:1,children:[(0,_z.jsx)(z,{color:`error`,children:`We are experiencing high demand for Opus 4.`}),(0,_z.jsxs)(z,{children:[`To continue immediately, use /model to switch to `,Vn(Mn()),` and continue coding.`]})]})});case z$:return(0,_z.jsx)(Q,{height:1,children:(0,_z.jsx)(GR,{})});default:if(Z_(e)){let t=!r&&e.length>$ot;return(0,_z.jsx)(Q,{children:(0,_z.jsxs)(B,{flexDirection:`column`,children:[(0,_z.jsx)(z,{color:`error`,children:e===`API Error`?`${ev}: Please wait a moment and try again.`:t?e.slice(0,$ot)+`…`:e}),t&&(0,_z.jsx)(_T,{})]})})}return(0,_z.jsx)(B,{alignItems:`flex-start`,flexDirection:`row`,justifyContent:`space-between`,marginTop:+!!t,width:`100%`,backgroundColor:a?`messageActionsBackground`:void 0,children:(0,_z.jsxs)(B,{flexDirection:`row`,children:[n&&(0,_z.jsx)(dt,{fromLeftEdge:!0,minWidth:2,children:(0,_z.jsx)(z,{color:a?`suggestion`:`text`,children:Hn})}),(0,_z.jsx)(B,{flexDirection:`column`,children:(0,_z.jsx)(uz,{children:e})})]})})}}var Qot,_z,$ot,est=n((()=>{Qot=r(R(),1),V$(),nwe(),Rn(),Tt(),dv(),i3(),mot(),hr(),Tre(),xT(),qR(),pz(),OT(),hT(),Yot(),_z=jt(),$ot=1e3}));function tst({param:{thinking:e},addMargin:t=!1,isTranscriptMode:n,verbose:r,hideInTranscript:i=!1}){if(!e||i)return null;let a=n||r,o=`∴ Thinking`;return a?(0,vz.jsxs)(B,{flexDirection:`column`,gap:1,marginTop:+!!t,width:`100%`,children:[(0,vz.jsxs)(z,{dimColor:!0,italic:!0,children:[o,`…`]}),(0,vz.jsx)(B,{paddingLeft:2,children:(0,vz.jsx)(uz,{dimColor:!0,children:e})})]}):(0,vz.jsx)(B,{marginTop:+!!t,children:(0,vz.jsxs)(z,{dimColor:!0,italic:!0,children:[o,` `,(0,vz.jsx)(_T,{})]})})}var vz,nst=n((()=>{R(),Tt(),xT(),pz(),vz=jt()}));function rst(e,t){yz.set(e,{classifier:`auto-mode`,reason:t})}function ist(e){let t=yz.get(e);if(!(!t||t.classifier!==`auto-mode`))return t.reason}function ast(e){bz.add(e),xz.emit()}function ost(e){bz.delete(e),xz.emit()}function sst(e){return bz.has(e)}function cst(e){yz.delete(e)}function lst(){yz.clear(),bz.clear(),xz.emit()}var yz,bz,xz,ust,Sz=n((()=>{It(),yz=new Map,bz=new Set,xz=Wt(),ust=xz.subscribe}));function dst(e){return(0,fst.useSyncExternalStore)(ust,()=>sst(e))}var fst,pst=n((()=>{fst=r(R(),1),Sz()}));function mst({hookEvent:e,lookups:t,toolUseID:n,isTranscriptMode:r}){let i=t.inProgressHookCounts.get(n)?.get(e)??0,a=t.resolvedHookCounts.get(n)?.get(e)??0;return i===0?null:e===`PreToolUse`||e===`PostToolUse`?r?(0,Cz.jsx)(Q,{children:(0,Cz.jsxs)(B,{flexDirection:`row`,children:[(0,Cz.jsxs)(z,{dimColor:!0,children:[i,` `]}),(0,Cz.jsx)(z,{dimColor:!0,bold:!0,children:e}),(0,Cz.jsxs)(z,{dimColor:!0,children:[i===1?` hook`:` hooks`,` ran`]})]})}):null:a===i?null:(0,Cz.jsx)(Q,{children:(0,Cz.jsxs)(B,{flexDirection:`row`,children:[(0,Cz.jsx)(z,{dimColor:!0,children:`Running `}),(0,Cz.jsx)(z,{dimColor:!0,bold:!0,children:e}),(0,Cz.jsx)(z,{dimColor:!0,children:i===1?` hook…`:` hooks…`})]})})}var Cz,hst=n((()=>{R(),Tt(),OT(),Cz=jt()}));function gst({param:e,addMargin:t,tools:n,commands:r,verbose:i,inProgressToolUseIDs:a,progressMessagesForMessage:o,shouldAnimate:s,shouldShowDot:c,inProgressToolCallCount:l,lookups:u,isTranscriptMode:d,defaultCollapsed:f}){let p=ct(),[m]=_t(),h=iT(),g=RO(e=>e.pendingWorkerRequest),_=dst(e.id),v=RO(e=>e.toolPermissionContext.mode),y=RO(e=>!!e.toolPermissionContext.strippedDangerousRules),b=v===`auto`||v===`plan`&&y,x=process.env.USER_TYPE===`ant`&&_&&v!==`auto`,S=(0,bst.useMemo)(()=>{if(!n)return null;let t=rl(n,e.name);if(!t)return null;let r=t.inputSchema.safeParse(e.input),i=r.success?r.data:void 0;return{tool:t,input:r,userFacingToolName:t.userFacingName(i),userFacingToolNameBackgroundColor:t.userFacingNameBackgroundColor?.(i),isTransparentWrapper:t.isTransparentWrapper?.()??!1}},[n,e]);if(!S)return q(Error(n?`Tool ${e.name} not found`:`Tools array is undefined for tool ${e.name}`)),null;let{tool:C,input:w,userFacingToolName:T,userFacingToolNameBackgroundColor:E,isTransparentWrapper:D}=S,ee=u.resolvedToolUseIDs.has(e.id),O=!a.has(e.id)&&!ee,k=g?.toolUseId===e.id;if(D)return O||ee?null:(0,wz.jsx)(B,{flexDirection:`column`,width:`100%`,backgroundColor:h,children:vst(C,n,u,e.id,o,{verbose:i,inProgressToolCallCount:l,isTranscriptMode:d},p)});if(T===``)return null;let te=w.success?_st(C,w.data,{theme:m,verbose:i,commands:r}):null;return te===null?null:(0,wz.jsx)(B,{flexDirection:`row`,justifyContent:`space-between`,marginTop:+!!t,width:`100%`,backgroundColor:h,children:(0,wz.jsxs)(B,{flexDirection:`column`,children:[(0,wz.jsxs)(B,{flexDirection:`row`,flexWrap:`nowrap`,minWidth:st(T)+(c?2:0),children:[c&&(O?(0,wz.jsx)(B,{minWidth:2,children:(0,wz.jsx)(z,{dimColor:O,children:Hn})}):(0,wz.jsx)(tz,{shouldAnimate:s,isUnresolved:!ee,isError:u.erroredToolUseIDs.has(e.id)})),(0,wz.jsx)(B,{flexShrink:0,children:(0,wz.jsx)(z,{bold:!0,wrap:`truncate-end`,backgroundColor:E,color:E?`inverseText`:void 0,children:T})}),te!==``&&(0,wz.jsx)(B,{flexWrap:`nowrap`,children:(0,wz.jsxs)(z,{children:[`(`,te,`)`]})}),w.success&&C.renderToolUseTag&&C.renderToolUseTag(w.data)]}),!ee&&!O&&!f&&(x?(0,wz.jsx)(Q,{height:1,children:(0,wz.jsx)(z,{dimColor:!0,children:b?`Auto classifier checking…`:`Bash classifier checking…`})}):k?(0,wz.jsx)(Q,{height:1,children:(0,wz.jsx)(z,{dimColor:!0,children:`Waiting for permission…`})}):vst(C,n,u,e.id,o,{verbose:i,inProgressToolCallCount:l,isTranscriptMode:d},p)),!ee&&O&&yst(C)]})})}function _st(e,t,{theme:n,verbose:r,commands:i}){try{let a=e.inputSchema.safeParse(t);return a.success?e.renderToolUseMessage(a.data,{theme:n,verbose:r,commands:i}):``}catch(t){return q(Error(`Error rendering tool use message for ${e.name}: ${t}`)),``}}function vst(e,t,n,r,i,{verbose:a,inProgressToolCallCount:o,isTranscriptMode:s},c){let l=i.filter(e=>e.data.type!==`hook_progress`);try{let i=e.renderToolUseProgressMessage?.(l,{tools:t,verbose:a,terminalSize:c,inProgressToolCallCount:o??1,isTranscriptMode:s})??null;return(0,wz.jsxs)(wz.Fragment,{children:[(0,wz.jsx)(Gfe,{children:(0,wz.jsx)(mst,{hookEvent:`PreToolUse`,lookups:n,toolUseID:r,verbose:a,isTranscriptMode:s})}),i]})}catch(t){return q(Error(`Error rendering tool use progress message for ${e.name}: ${t}`)),null}}function yst(e){try{return e.renderToolUseQueuedMessage?.()}catch(t){return q(Error(`Error rendering tool use queued message for ${e.name}: ${t}`)),null}}var bst,wz,xst=n((()=>{bst=r(R(),1),kT(),Rn(),Tt(),UO(),Sc(),pst(),Ao(),OT(),hT(),Wfe(),nz(),hst(),wz=jt()}));function Tz({filePath:e,children:t}){return(0,Sst.jsx)(ht,{url:kd(e).href,children:t??e})}var Sst,Ez=n((()=>{R(),Tt(),Sst=jt()}));function Cst(e){switch(e){case`completed`:return`success`;case`failed`:return`error`;case`killed`:return`warning`;default:return`text`}}function wst({addMargin:e,param:{text:t}}){let n=p4(t,`summary`);if(!n)return null;let r=Cst(p4(t,`status`));return(0,Dz.jsx)(B,{marginTop:+!!e,children:(0,Dz.jsxs)(z,{children:[(0,Dz.jsx)(z,{color:r,children:Hn}),` `,n]})})}var Dz,Tst=n((()=>{R(),Rn(),Tt(),i3(),Dz=jt()}));function Est({param:{text:e},addMargin:t}){let n=p4(e,`bash-input`);return n?(0,Oz.jsxs)(B,{flexDirection:`row`,marginTop:+!!t,backgroundColor:`bashMessageBackgroundColor`,paddingRight:1,children:[(0,Oz.jsx)(z,{color:`bashBorder`,children:`! `}),(0,Oz.jsx)(z,{color:`text`,children:n})]}):null}var Oz,Dst=n((()=>{R(),Tt(),i3(),Oz=jt()}));function kz({elapsedTimeSeconds:e,timeoutMs:t}){if(e===void 0&&!t)return null;let n=t?Ds(t,{hideTrailingZeros:!0}):void 0;if(e===void 0)return(0,Az.jsx)(z,{dimColor:!0,children:`(timeout ${n})`});let r=Ds(e*1e3);return n?(0,Az.jsx)(z,{dimColor:!0,children:`(${r} · timeout ${n})`}):(0,Az.jsx)(z,{dimColor:!0,children:`(${r})`})}var Az,Ost=n((()=>{R(),Tt(),Ns(),Az=jt()}));function kst(e){return e.match(/<sandbox_violations>([\s\S]*?)<\/sandbox_violations>/)?{cleanedStderr:Hat(e).trim()}:{cleanedStderr:e}}function Ast(e){let t=e.match(Mst);if(!t)return{cleanedStderr:e,cwdResetWarning:null};let n=t[1]??null;return{cleanedStderr:e.replace(Mst,``).trim(),cwdResetWarning:n}}function jst({content:{stdout:e=``,stderr:t=``,isImage:n,returnCodeInterpretation:r,noOutputExpected:i,backgroundTaskId:a},verbose:o,timeoutMs:s}){let{cleanedStderr:c}=kst(t),{cleanedStderr:l,cwdResetWarning:u}=Ast(c);return n?(0,jz.jsx)(Q,{height:1,children:(0,jz.jsx)(z,{dimColor:!0,children:`[Image data detected and sent to Claude]`})}):(0,jz.jsxs)(B,{flexDirection:`column`,children:[e===``?null:(0,jz.jsx)(jT,{content:e,verbose:o}),l.trim()===``?null:(0,jz.jsx)(jT,{content:l,verbose:o,isError:!0}),u?(0,jz.jsx)(Q,{children:(0,jz.jsx)(z,{dimColor:!0,children:u})}):null,e===``&&l.trim()===``&&!u?(0,jz.jsx)(Q,{height:1,children:(0,jz.jsx)(z,{dimColor:!0,children:a?(0,jz.jsxs)(jz.Fragment,{children:[`Running in the background `,(0,jz.jsx)(xt,{shortcut:`↓`,action:`manage`,parens:!0})]}):r||(i?`Done`:`(No output)`)})}):null,s&&(0,jz.jsx)(Q,{children:(0,jz.jsx)(kz,{timeoutMs:s})})]})}var jz,Mst,Nst=n((()=>{R(),Uat(),Tt(),OT(),NT(),Ost(),jz=jt(),Mst=/(?:^|\n)(Shell cwd was reset to .+)$/}));function Pst({content:e,verbose:t}){let n=p4(e,`bash-stdout`)??``;return(0,Fst.jsx)(jst,{content:{stdout:p4(n,`persisted-output`)??n,stderr:p4(e,`bash-stderr`)??``},verbose:!!t})}var Fst,Ist=n((()=>{R(),Nst(),i3(),Fst=jt()}));function Lst({addMargin:e,param:{text:t}}){let n=p4(t,yo),r=p4(t,`command-args`),i=p4(t,`skill-format`)===`true`;if(!n)return null;if(i)return(0,Mz.jsx)(B,{flexDirection:`column`,marginTop:+!!e,backgroundColor:`userMessageBackground`,paddingRight:1,children:(0,Mz.jsxs)(z,{children:[(0,Mz.jsxs)(z,{color:`subtle`,children:[ue.pointer,` `]}),(0,Mz.jsxs)(z,{color:`text`,children:[`Skill(`,n,`)`]})]})});let a=`/${[n,r].filter(Boolean).join(` `)}`;return(0,Mz.jsx)(B,{flexDirection:`column`,marginTop:+!!e,backgroundColor:`userMessageBackground`,paddingRight:1,children:(0,Mz.jsxs)(z,{children:[(0,Mz.jsxs)(z,{color:`subtle`,children:[ue.pointer,` `]}),(0,Mz.jsx)(z,{color:`text`,children:a})]})})}var Mz,Rst=n((()=>{N(),R(),Eo(),Tt(),i3(),Mz=jt()}));function zst({content:e}){let t=p4(e,`local-command-stdout`),n=p4(e,`local-command-stderr`);if(!t&&!n)return(0,Nz.jsx)(Q,{children:(0,Nz.jsx)(z,{dimColor:!0,children:Hf})});let r=[];return t?.trim()&&r.push((0,Nz.jsx)(Bst,{children:t.trim()},`stdout`)),n?.trim()&&r.push((0,Nz.jsx)(Bst,{children:n.trim()},`stderr`)),r}function Bst({children:e}){return e.startsWith(`◇ `)||e.startsWith(`◆ `)?(0,Nz.jsx)(Vst,{children:e}):(0,Nz.jsxs)(B,{flexDirection:`row`,children:[(0,Nz.jsx)(z,{dimColor:!0,children:` ⎿ `}),(0,Nz.jsx)(B,{flexDirection:`column`,flexGrow:1,children:(0,Nz.jsx)(uz,{children:e})})]})}function Vst({children:e}){let t=e[0],n=e.indexOf(`
|
|
1077
1077
|
`),r=n===-1?e.slice(2):e.slice(2,n),i=n===-1?``:e.slice(n+1).trim(),a=r.indexOf(` · `),o=a===-1?r:r.slice(0,a),s=a===-1?``:r.slice(a);return(0,Nz.jsxs)(B,{flexDirection:`column`,children:[(0,Nz.jsxs)(z,{children:[(0,Nz.jsxs)(z,{color:`background`,children:[t,` `]}),(0,Nz.jsx)(z,{bold:!0,children:o}),s&&(0,Nz.jsx)(z,{dimColor:!0,children:s})]}),i&&(0,Nz.jsxs)(B,{flexDirection:`row`,children:[(0,Nz.jsx)(z,{dimColor:!0,children:` ⎿ `}),(0,Nz.jsx)(z,{dimColor:!0,children:i})]})]})}var Nz,Hst=n((()=>{R(),Rn(),Uf(),Tt(),i3(),pz(),OT(),Nz=jt()}));function Ust(){return la([`Got it.`,`Good to know.`,`Noted.`])}function Wst({text:e,addMargin:t}){let n=p4(e,`user-memory-input`),r=(0,Gst.useMemo)(()=>Ust(),[]);return n?(0,Pz.jsxs)(B,{flexDirection:`column`,marginTop:+!!t,width:`100%`,children:[(0,Pz.jsxs)(B,{children:[(0,Pz.jsx)(z,{color:`remember`,backgroundColor:`memoryBackgroundColor`,children:`#`}),(0,Pz.jsxs)(z,{backgroundColor:`memoryBackgroundColor`,color:`text`,children:[` `,n,` `]})]}),(0,Pz.jsx)(Q,{height:1,children:(0,Pz.jsx)(z,{dimColor:!0,children:r})})]}):null}var Gst,Pz,Kst=n((()=>{On(),R(),Gst=r(R(),1),Tt(),i3(),OT(),Pz=jt()}));function qst({addMargin:e,planContent:t}){return(0,Fz.jsxs)(B,{flexDirection:`column`,borderStyle:`round`,borderColor:`planMode`,marginTop:+!!e,paddingX:1,children:[(0,Fz.jsx)(B,{marginBottom:1,children:(0,Fz.jsx)(z,{bold:!0,color:`planMode`,children:`Plan to implement`})}),(0,Fz.jsx)(uz,{children:t})]})}var Fz,Jst=n((()=>{R(),Tt(),pz(),Fz=jt()}));function Yst(){return Iz.useContext(Rz)}function Xst({isFirst:e,useBriefLayout:t,children:n}){let r=t?0:Zst,i=Iz.useMemo(()=>({isQueued:!0,isFirst:e,paddingWidth:r*2}),[e,r]);return(0,Lz.jsx)(Rz.Provider,{value:i,children:(0,Lz.jsx)(B,{paddingX:r,children:n})})}var Iz,Lz,Rz,Zst,Qst=n((()=>{Iz=r(R(),1),Tt(),Lz=jt(),Rz=Iz.createContext(void 0),Zst=2}));function $st(e,t=new Date){let n=new Date(e);if(Number.isNaN(n.getTime()))return``;let r=ect(),i=tct(t)-tct(n),a=Math.round(i/864e5);return a===0?n.toLocaleTimeString(r,{hour:`numeric`,minute:`2-digit`}):a>0&&a<7?n.toLocaleString(r,{weekday:`long`,hour:`numeric`,minute:`2-digit`}):n.toLocaleString(r,{weekday:`long`,month:`short`,day:`numeric`,hour:`numeric`,minute:`2-digit`})}function ect(){let e=process.env.LC_ALL||process.env.LC_TIME||process.env.LANG||``;if(!e||e===`C`||e===`POSIX`)return;let t=e.split(`.`)[0].split(`@`)[0];if(!t)return;let n=t.replaceAll(`_`,`-`);try{return new Intl.DateTimeFormat(n),n}catch{return}}function tct(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime()}var nct=n((()=>{}));function rct({text:e,useBriefLayout:t,timestamp:n}){let r=Yst()?.isQueued??!1,i=(0,ict.useContext)(pT)?`suggestion`:`subtle`;if(t){let t=n?$st(n):``;return(0,zz.jsxs)(B,{flexDirection:`column`,paddingLeft:2,children:[(0,zz.jsxs)(B,{flexDirection:`row`,children:[(0,zz.jsx)(z,{color:r?`subtle`:`briefLabelYou`,children:`You`}),t?(0,zz.jsxs)(z,{dimColor:!0,children:[` `,t]}):null]}),(0,zz.jsx)(z,{color:r?`subtle`:`text`,children:e})]})}let a=Fd()?Nme(e):[];if(a.length===0)return(0,zz.jsxs)(z,{children:[(0,zz.jsxs)(z,{color:i,children:[ue.pointer,` `]}),(0,zz.jsx)(z,{color:`text`,children:e})]});let o=[],s=0;for(let t of a){t.start>s&&o.push((0,zz.jsx)(z,{color:`text`,children:e.slice(s,t.start)},`plain-${s}`));for(let n=t.start;n<t.end;n++)o.push((0,zz.jsx)(z,{color:Id(n-t.start),children:e[n]},`rb-${n}`));s=t.end}return s<e.length&&o.push((0,zz.jsx)(z,{color:`text`,children:e.slice(s)},`plain-${s}`)),(0,zz.jsxs)(z,{children:[(0,zz.jsxs)(z,{color:i,children:[ue.pointer,` `]}),o]})}var ict,zz,act=n((()=>{N(),R(),ict=r(R(),1),Qst(),Tt(),nct(),Ld(),hT(),zz=jt()}));function oct({addMargin:e,param:{text:t},isTranscriptMode:n,timestamp:r}){let i=FO(e=>e.isBriefOnly),a=FO(e=>e.viewingAgentTaskId),o=(0,Bz.useMemo)(()=>x(process.env.CLAUDE_CODE_BRIEF),[]),s=(Bt()||mn()&&(o||Jr(`tengu_kairos_brief`,!1)))&&i&&!n&&!a,c=(0,Bz.useMemo)(()=>{if(t.length<=sct)return t;let e=t.slice(0,Hz),n=t.slice(-cct);return`${e}\n… +${lr(t,`
|
|
1078
1078
|
`,Hz)-lr(n,`
|
|
1079
1079
|
`)} lines …\n${n}`},[t]),l=(0,Bz.useContext)(pT);return t?(0,Vz.jsx)(B,{flexDirection:`column`,marginTop:+!!e,backgroundColor:l?`messageActionsBackground`:s?void 0:`userMessageBackground`,paddingRight:+!s,children:(0,Vz.jsx)(rct,{text:c,useBriefLayout:s,timestamp:s?r:void 0})}):(q(Error(`No content found in user prompt message`)),null)}var Bz,Vz,sct,Hz,cct,lct=n((()=>{Bz=r(R(),1),tn(),Tt(),wr(),UO(),y(),Ao(),Di(),hT(),act(),Vz=jt(),sct=1e4,Hz=2500,cct=2500}));function uct(e){let t=[],n=/<mcp-resource-update\s+server="([^"]+)"\s+uri="([^"]+)"[^>]*>(?:[\s\S]*?<reason>([^<]+)<\/reason>)?/g,r;for(;(r=n.exec(e))!==null;)t.push({kind:`resource`,server:r[1]??``,target:r[2]??``,reason:r[3]});let i=/<mcp-polling-update\s+type="([^"]+)"\s+server="([^"]+)"\s+tool="([^"]+)"[^>]*>(?:[\s\S]*?<reason>([^<]+)<\/reason>)?/g;for(;(r=i.exec(e))!==null;)t.push({kind:`polling`,server:r[2]??``,target:r[3]??``,reason:r[4]});return t}function dct(e){if(e.startsWith(`file://`)){let t=e.slice(7),n=t.split(`/`);return n[n.length-1]||t}return e.length>40?e.slice(0,39)+`…`:e}function fct({addMargin:e,param:{text:t}}){let n=uct(t);return n.length===0?null:(0,Uz.jsx)(B,{flexDirection:`column`,marginTop:+!!e,children:n.map((e,t)=>(0,Uz.jsx)(B,{children:(0,Uz.jsxs)(z,{children:[(0,Uz.jsx)(z,{color:`success`,children:`↻`}),` `,(0,Uz.jsxs)(z,{dimColor:!0,children:[e.server,`:`]}),` `,(0,Uz.jsx)(z,{color:`suggestion`,children:e.kind===`resource`?dct(e.target):e.target}),e.reason&&(0,Uz.jsxs)(z,{dimColor:!0,children:[` · `,e.reason]})]})},t))})}var Uz,pct=n((()=>{R(),Rn(),Tt(),Uz=jt()})),Wz,mct,hct,gct,_ct,vct,yct,bct,xct,Sct,Cct,Gz,wct,Tct,Ect,Kz,qz,Jz,Yz,Xz,Zz,Dct,Oct,Qz,kct,Act,jct,Mct,Nct,Pct,Fct,Ict,Lct,Rct,zct,Bct,Vct,Hct,Uct,Wct,Gct,Kct,qct,Jct,Yct,Xct,Zct,Qct,$ct,elt,tlt,nlt,rlt,ilt,alt,olt,slt,clt,llt,ult,dlt,flt,plt,mlt,hlt,glt,_lt,vlt,ylt,blt,xlt,Slt,Clt,wlt,Tlt,Elt,Dlt,Olt,klt,Alt,jlt,Mlt,Nlt,Plt,$z,eB,tB,Flt,nB,rB,Ilt,Llt,Rlt,zlt,Blt,Vlt,iB,Hlt,Ult,Wlt,Glt,Klt,qlt,Jlt,Ylt,Xlt,Zlt,Qlt,$lt,eut,tut,nut,rut,iut,aut,out,sut,cut,lut,uut,dut,aB,fut=n((()=>{it(),Fs(),Wz=J(()=>L({inputTokens:P(),outputTokens:P(),cacheReadInputTokens:P(),cacheCreationInputTokens:P(),webSearchRequests:P(),costUSD:P(),contextWindow:P(),maxOutputTokens:P()})),mct=J(()=>I(`json_schema`)),J(()=>L({type:mct()})),hct=J(()=>L({type:I(`json_schema`),schema:Fe(F(),ze())})),J(()=>hct()),gct=J(()=>Ge([`user`,`project`,`org`,`temporary`,`oauth`])),J(()=>Ge([`local`,`user`,`project`]).describe(`Config scope for settings.`)),J(()=>I(`context-1m-2025-08-07`)),_ct=J(()=>L({type:I(`adaptive`)}).describe(`Claude decides when and how much to think (Opus 4.6+).`)),vct=J(()=>L({type:I(`enabled`),budgetTokens:P().optional()}).describe(`Fixed thinking token budget (older models)`)),yct=J(()=>L({type:I(`disabled`)}).describe(`No extended thinking`)),J(()=>Be([_ct(),vct(),yct()]).describe(`Controls Claude's thinking/reasoning behavior. When set, takes precedence over the deprecated maxThinkingTokens.`)),bct=J(()=>L({type:I(`stdio`).optional(),command:F(),args:Re(F()).optional(),env:Fe(F(),F()).optional()})),xct=J(()=>L({type:I(`sse`),url:F(),headers:Fe(F(),F()).optional()})),Sct=J(()=>L({type:I(`http`),url:F(),headers:Fe(F(),F()).optional()})),Cct=J(()=>L({type:I(`sdk`),name:F()})),Gz=J(()=>Be([bct(),xct(),Sct(),Cct()])),wct=J(()=>L({type:I(`claudeai-proxy`),url:F(),id:F()})),Tct=J(()=>Be([Gz(),wct()])),Ect=J(()=>L({name:F().describe(`Server name as configured`),status:Ge([`connected`,`failed`,`needs-auth`,`pending`,`disabled`]).describe(`Current connection status`),serverInfo:L({name:F(),version:F()}).optional().describe(`Server information (available when connected)`),error:F().optional().describe(`Error message (available when status is 'failed')`),config:Tct().optional().describe(`Server configuration (includes URL for HTTP/SSE servers)`),scope:F().optional().describe(`Configuration scope (e.g., project, user, local, claudeai, managed)`),tools:Re(L({name:F(),description:F().optional(),annotations:L({readOnly:We().optional(),destructive:We().optional(),openWorld:We().optional()}).optional()})).optional().describe(`Tools provided by this server (available when connected)`),capabilities:L({experimental:Fe(F(),ze()).optional()}).optional().describe(`@internal Server capabilities (available when connected). experimental['claude/channel'] is only present if the server's plugin is on the approved channels allowlist — use its presence to decide whether to show an Enable-channel prompt.`)}).describe(`Status information for an MCP server connection.`)),J(()=>L({added:Re(F()).describe(`Names of servers that were added`),removed:Re(F()).describe(`Names of servers that were removed`),errors:Fe(F(),F()).describe(`Map of server names to error messages for servers that failed to connect`)}).describe(`Result of a setMcpServers operation.`)),Kz=J(()=>Ge([`userSettings`,`projectSettings`,`localSettings`,`session`,`cliArg`])),qz=J(()=>Ge([`allow`,`deny`,`ask`])),Jz=J(()=>L({toolName:F(),ruleContent:F().optional()})),Yz=J(()=>qe(`type`,[L({type:I(`addRules`),rules:Re(Jz()),behavior:qz(),destination:Kz()}),L({type:I(`replaceRules`),rules:Re(Jz()),behavior:qz(),destination:Kz()}),L({type:I(`removeRules`),rules:Re(Jz()),behavior:qz(),destination:Kz()}),L({type:I(`setMode`),mode:eee(()=>Zz()),destination:Kz()}),L({type:I(`addDirectories`),directories:Re(F()),destination:Kz()}),L({type:I(`removeDirectories`),directories:Re(F()),destination:Kz()})])),Xz=J(()=>Ge([`user_temporary`,`user_permanent`,`user_reject`]).describe(`Classification of this permission decision for telemetry. SDK hosts that prompt users (desktop apps, IDEs) should set this to reflect what actually happened: user_temporary for allow-once, user_permanent for always-allow (both the click and later cache hits), user_reject for deny. If unset, the CLI infers conservatively (temporary for allow, reject for deny). The vocabulary matches tool_decision OTel events (monitoring-usage docs).`)),J(()=>Be([L({behavior:I(`allow`),updatedInput:Fe(F(),ze()).optional(),updatedPermissions:Re(Yz()).optional(),toolUseID:F().optional(),decisionClassification:Xz().optional()}),L({behavior:I(`deny`),message:F(),interrupt:We().optional(),toolUseID:F().optional(),decisionClassification:Xz().optional()})])),Zz=J(()=>Ge([`default`,`acceptEdits`,`bypassPermissions`,`plan`,`dontAsk`,`auto`]).describe(`Permission mode for controlling how tool executions are handled. 'default' - Standard behavior, prompts for dangerous operations. 'acceptEdits' - Auto-accept file edit operations. 'bypassPermissions' - Bypass all permission checks (requires allowDangerouslySkipPermissions). 'plan' - Planning mode, no actual tool execution. 'dontAsk' - Don't prompt for permissions, deny if not pre-approved. 'auto' - Automatic mode (transcript classifier).`)),Dct=`PreToolUse.PostToolUse.PostToolUseFailure.Notification.UserPromptSubmit.SessionStart.SessionEnd.Stop.StopFailure.SubagentStart.SubagentStop.PreCompact.PostCompact.PermissionRequest.PermissionDenied.Setup.TeammateIdle.TaskCreated.TaskCompleted.Elicitation.ElicitationResult.ConfigChange.WorktreeCreate.WorktreeRemove.InstructionsLoaded.CwdChanged.FileChanged`.split(`.`),Oct=J(()=>Ge(Dct)),Qz=J(()=>L({session_id:F(),transcript_path:F(),cwd:F(),permission_mode:F().optional(),agent_id:F().optional().describe(`Subagent identifier. Present only when the hook fires from within a subagent (e.g., a tool called by an AgentTool worker). Absent for the main thread, even in --agent sessions. Use this field (not agent_type) to distinguish subagent calls from main-thread calls.`),agent_type:F().optional().describe(`Agent type name (e.g., "general-purpose", "code-reviewer"). Present when the hook fires from within a subagent (alongside agent_id), or on the main thread of a session started with --agent (without agent_id).`)})),kct=J(()=>Qz().and(L({hook_event_name:I(`PreToolUse`),tool_name:F(),tool_input:ze(),tool_use_id:F()}))),Act=J(()=>Qz().and(L({hook_event_name:I(`PermissionRequest`),tool_name:F(),tool_input:ze(),permission_suggestions:Re(Yz()).optional()}))),jct=J(()=>Qz().and(L({hook_event_name:I(`PostToolUse`),tool_name:F(),tool_input:ze(),tool_response:ze(),tool_use_id:F()}))),Mct=J(()=>Qz().and(L({hook_event_name:I(`PostToolUseFailure`),tool_name:F(),tool_input:ze(),tool_use_id:F(),error:F(),is_interrupt:We().optional()}))),Nct=J(()=>Qz().and(L({hook_event_name:I(`PermissionDenied`),tool_name:F(),tool_input:ze(),tool_use_id:F(),reason:F()}))),Pct=J(()=>Qz().and(L({hook_event_name:I(`Notification`),message:F(),title:F().optional(),notification_type:F()}))),Fct=J(()=>Qz().and(L({hook_event_name:I(`UserPromptSubmit`),prompt:F()}))),Ict=J(()=>Qz().and(L({hook_event_name:I(`SessionStart`),source:Ge([`startup`,`resume`,`clear`,`compact`]),agent_type:F().optional(),model:F().optional()}))),Lct=J(()=>Qz().and(L({hook_event_name:I(`Setup`),trigger:Ge([`init`,`maintenance`])}))),Rct=J(()=>Qz().and(L({hook_event_name:I(`Stop`),stop_hook_active:We(),last_assistant_message:F().optional().describe(`Text content of the last assistant message before stopping. Avoids the need to read and parse the transcript file.`)}))),zct=J(()=>Qz().and(L({hook_event_name:I(`StopFailure`),error:tB(),error_details:F().optional(),last_assistant_message:F().optional()}))),Bct=J(()=>Qz().and(L({hook_event_name:I(`SubagentStart`),agent_id:F(),agent_type:F()}))),Vct=J(()=>Qz().and(L({hook_event_name:I(`SubagentStop`),stop_hook_active:We(),agent_id:F(),agent_transcript_path:F(),agent_type:F(),last_assistant_message:F().optional().describe(`Text content of the last assistant message before stopping. Avoids the need to read and parse the transcript file.`)}))),Hct=J(()=>Qz().and(L({hook_event_name:I(`PreCompact`),trigger:Ge([`manual`,`auto`]),custom_instructions:F().nullable()}))),Uct=J(()=>Qz().and(L({hook_event_name:I(`PostCompact`),trigger:Ge([`manual`,`auto`]),compact_summary:F().describe(`The conversation summary produced by compaction`)}))),Wct=J(()=>Qz().and(L({hook_event_name:I(`TeammateIdle`),teammate_name:F(),team_name:F()}))),Gct=J(()=>Qz().and(L({hook_event_name:I(`TaskCreated`),task_id:F(),task_subject:F(),task_description:F().optional(),teammate_name:F().optional(),team_name:F().optional()}))),Kct=J(()=>Qz().and(L({hook_event_name:I(`TaskCompleted`),task_id:F(),task_subject:F(),task_description:F().optional(),teammate_name:F().optional(),team_name:F().optional()}))),qct=J(()=>Qz().and(L({hook_event_name:I(`Elicitation`),mcp_server_name:F(),message:F(),mode:Ge([`form`,`url`]).optional(),url:F().optional(),elicitation_id:F().optional(),requested_schema:Fe(F(),ze()).optional()})).describe(`Hook input for the Elicitation event. Fired when an MCP server requests user input. Hooks can auto-respond (accept/decline) instead of showing the dialog.`)),Jct=J(()=>Qz().and(L({hook_event_name:I(`ElicitationResult`),mcp_server_name:F(),elicitation_id:F().optional(),mode:Ge([`form`,`url`]).optional(),action:Ge([`accept`,`decline`,`cancel`]),content:Fe(F(),ze()).optional()})).describe(`Hook input for the ElicitationResult event. Fired after the user responds to an MCP elicitation. Hooks can observe or override the response before it is sent to the server.`)),Yct=[`user_settings`,`project_settings`,`local_settings`,`policy_settings`,`skills`],Xct=J(()=>Qz().and(L({hook_event_name:I(`ConfigChange`),source:Ge(Yct),file_path:F().optional()}))),Zct=[`session_start`,`nested_traversal`,`path_glob_match`,`include`,`compact`],Qct=[`User`,`Project`,`Local`,`Managed`],$ct=J(()=>Qz().and(L({hook_event_name:I(`InstructionsLoaded`),file_path:F(),memory_type:Ge(Qct),load_reason:Ge(Zct),globs:Re(F()).optional(),trigger_file_path:F().optional(),parent_file_path:F().optional()}))),elt=J(()=>Qz().and(L({hook_event_name:I(`WorktreeCreate`),name:F()}))),tlt=J(()=>Qz().and(L({hook_event_name:I(`WorktreeRemove`),worktree_path:F()}))),nlt=J(()=>Qz().and(L({hook_event_name:I(`CwdChanged`),old_cwd:F(),new_cwd:F()}))),rlt=J(()=>Qz().and(L({hook_event_name:I(`FileChanged`),file_path:F(),event:Ge([`change`,`add`,`unlink`])}))),ilt=[`clear`,`resume`,`logout`,`prompt_input_exit`,`other`,`bypass_permissions_disabled`],alt=J(()=>Ge(ilt)),olt=J(()=>Qz().and(L({hook_event_name:I(`SessionEnd`),reason:alt()}))),slt=J(()=>Be([kct(),jct(),Mct(),Nct(),Pct(),Fct(),Ict(),olt(),Rct(),zct(),Bct(),Vct(),Hct(),Uct(),Act(),Lct(),Wct(),Gct(),Kct(),qct(),Jct(),Xct(),$ct(),elt(),tlt(),nlt(),rlt()])),clt=J(()=>L({async:I(!0),asyncTimeout:P().optional()})),llt=J(()=>L({hookEventName:I(`PreToolUse`),permissionDecision:qz().optional(),permissionDecisionReason:F().optional(),updatedInput:Fe(F(),ze()).optional(),additionalContext:F().optional()})),ult=J(()=>L({hookEventName:I(`UserPromptSubmit`),additionalContext:F().optional()})),dlt=J(()=>L({hookEventName:I(`SessionStart`),additionalContext:F().optional(),initialUserMessage:F().optional(),watchPaths:Re(F()).optional()})),flt=J(()=>L({hookEventName:I(`Setup`),additionalContext:F().optional()})),plt=J(()=>L({hookEventName:I(`SubagentStart`),additionalContext:F().optional()})),mlt=J(()=>L({hookEventName:I(`PostToolUse`),additionalContext:F().optional(),updatedMCPToolOutput:ze().optional()})),hlt=J(()=>L({hookEventName:I(`PostToolUseFailure`),additionalContext:F().optional()})),glt=J(()=>L({hookEventName:I(`PermissionDenied`),retry:We().optional()})),_lt=J(()=>L({hookEventName:I(`Notification`),additionalContext:F().optional()})),vlt=J(()=>L({hookEventName:I(`PermissionRequest`),decision:Be([L({behavior:I(`allow`),updatedInput:Fe(F(),ze()).optional(),updatedPermissions:Re(Yz()).optional()}),L({behavior:I(`deny`),message:F().optional(),interrupt:We().optional()})])})),ylt=J(()=>L({hookEventName:I(`CwdChanged`),watchPaths:Re(F()).optional()})),blt=J(()=>L({hookEventName:I(`FileChanged`),watchPaths:Re(F()).optional()})),xlt=J(()=>L({continue:We().optional(),suppressOutput:We().optional(),stopReason:F().optional(),decision:Ge([`approve`,`block`]).optional(),systemMessage:F().optional(),reason:F().optional(),hookSpecificOutput:Be([llt(),ult(),dlt(),flt(),plt(),mlt(),hlt(),glt(),_lt(),vlt(),Slt(),Clt(),ylt(),blt(),wlt()]).optional()})),Slt=J(()=>L({hookEventName:I(`Elicitation`),action:Ge([`accept`,`decline`,`cancel`]).optional(),content:Fe(F(),ze()).optional()}).describe(`Hook-specific output for the Elicitation event. Return this to programmatically accept or decline an MCP elicitation request.`)),Clt=J(()=>L({hookEventName:I(`ElicitationResult`),action:Ge([`accept`,`decline`,`cancel`]).optional(),content:Fe(F(),ze()).optional()}).describe(`Hook-specific output for the ElicitationResult event. Return this to override the action or content before the response is sent to the MCP server.`)),wlt=J(()=>L({hookEventName:I(`WorktreeCreate`),worktreePath:F()}).describe(`Hook-specific output for the WorktreeCreate event. Provides the absolute path to the created worktree directory. Command hooks print the path on stdout instead.`)),J(()=>Be([clt(),xlt()])),Tlt=J(()=>L({key:F().describe(`Unique key for this option, returned in the response`),label:F().describe(`Display text for this option`),description:F().optional().describe(`Optional description shown below the label`)})),J(()=>L({prompt:F().describe(`Request ID. Presence of this key marks the line as a prompt request.`),message:F().describe(`The prompt message to display to the user`),options:Re(Tlt()).describe(`Available options for the user to choose from`)})),J(()=>L({prompt_response:F().describe(`The request ID from the corresponding prompt request`),selected:F().describe(`The key of the selected option`)})),Elt=J(()=>L({name:F().describe(`Skill name (without the leading slash)`),description:F().describe(`Description of what the skill does`),argumentHint:F().describe(`Hint for skill arguments (e.g., "<file>")`)}).describe(`Information about an available skill (invoked via /command syntax).`)),Dlt=J(()=>L({name:F().describe(`Agent type identifier (e.g., "Explore")`),description:F().describe(`Description of when to use this agent`),model:F().optional().describe(`Model alias this agent uses. If omitted, inherits the parent's model`)}).describe(`Information about an available subagent that can be invoked via the Task tool.`)),Olt=J(()=>L({value:F().describe(`Model identifier to use in API calls`),displayName:F().describe(`Human-readable display name`),description:F().describe(`Description of the model's capabilities`),supportsEffort:We().optional().describe(`Whether this model supports effort levels`),supportedEffortLevels:Re(Ge([`low`,`medium`,`high`,`xhigh`,`max`])).optional().describe(`Available effort levels for this model`),supportsAdaptiveThinking:We().optional().describe(`Whether this model supports adaptive thinking (Claude decides when and how much to think)`),supportsFastMode:We().optional().describe(`Whether this model supports fast mode`),supportsAutoMode:We().optional().describe(`Whether this model supports auto mode`)}).describe(`Information about an available model.`)),klt=J(()=>L({email:F().optional(),organization:F().optional(),subscriptionType:F().optional(),tokenSource:F().optional(),apiKeySource:F().optional(),apiProvider:Ge([`firstParty`,`bedrock`,`vertex`,`foundry`]).optional().describe(`Active API backend. Anthropic OAuth login only applies when "firstParty"; for 3P providers the other fields are absent and auth is external (AWS creds, gcloud ADC, etc.).`)}).describe(`Information about the logged in user's account.`)),Alt=J(()=>Be([F(),Fe(F(),Gz())])),jlt=J(()=>L({description:F().describe(`Natural language description of when to use this agent`),tools:Re(F()).optional().describe(`Array of allowed tool names. If omitted, inherits all tools from parent`),disallowedTools:Re(F()).optional().describe(`Array of tool names to explicitly disallow for this agent`),prompt:F().describe(`The agent's system prompt`),model:F().optional().describe(`Model alias (e.g. 'sonnet', 'opus', 'haiku') or full model ID (e.g. 'claude-opus-4-5'). If omitted or 'inherit', uses the main model`),mcpServers:Re(Alt()).optional(),criticalSystemReminder_EXPERIMENTAL:F().optional().describe(`Experimental: Critical reminder added to system prompt`),skills:Re(F()).optional().describe(`Array of skill names to preload into the agent context`),initialPrompt:F().optional().describe(`Auto-submitted as the first user turn when this agent is the main thread agent. Slash commands are processed. Prepended to any user-provided prompt.`),maxTurns:P().int().positive().optional().describe(`Maximum number of agentic turns (API round-trips) before stopping`),background:We().optional().describe(`Run this agent as a background task (non-blocking, fire-and-forget) when invoked`),memory:Ge([`user`,`project`,`local`]).optional().describe(`Scope for auto-loading agent memory files. 'user' - ~/.claude/agent-memory/<agentType>/, 'project' - .claude/agent-memory/<agentType>/, 'local' - .claude/agent-memory-local/<agentType>/`),effort:Be([Ge([`low`,`medium`,`high`,`xhigh`,`max`]),P().int()]).optional().describe(`Reasoning effort level for this agent. Either a named level or an integer`),permissionMode:Zz().optional().describe(`Permission mode controlling how tool executions are handled`)}).describe(`Definition for a custom subagent that can be invoked via the Agent tool.`)),J(()=>Ge([`user`,`project`,`local`]).describe(`Source for loading filesystem-based settings. 'user' - Global user settings (~/.claude/settings.json). 'project' - Project settings (.claude/settings.json). 'local' - Local settings (.claude/settings.local.json).`)),J(()=>L({type:I(`local`).describe(`Plugin type. Currently only 'local' is supported`),path:F().describe(`Absolute or relative path to the plugin directory`)}).describe(`Configuration for loading a plugin.`)),J(()=>L({canRewind:We(),error:F().optional(),filesChanged:Re(F()).optional(),insertions:P().optional(),deletions:P().optional()}).describe(`Result of a rewindFiles operation.`)),Mlt=J(()=>ze()),Nlt=J(()=>ze()),Plt=J(()=>ze()),$z=J(()=>F()),eB=J(()=>ze()),tB=J(()=>Ge([`authentication_failed`,`billing_error`,`rate_limit`,`invalid_request`,`server_error`,`unknown`,`max_output_tokens`])),Flt=J(()=>Be([I(`compacting`),tee()])),nB=J(()=>L({type:I(`user`),message:Mlt(),parent_tool_use_id:F().nullable(),isSynthetic:We().optional(),tool_use_result:ze().optional(),priority:Ge([`now`,`next`,`later`]).optional(),timestamp:F().optional().describe(`ISO timestamp when the message was created on the originating process. Older emitters omit it; consumers should fall back to receive time.`)})),rB=J(()=>nB().extend({uuid:$z().optional(),session_id:F().optional()})),Ilt=J(()=>nB().extend({uuid:$z(),session_id:F(),isReplay:I(!0)})),Llt=J(()=>L({status:Ge([`allowed`,`allowed_warning`,`rejected`]),resetsAt:P().optional(),rateLimitType:Ge([`five_hour`,`seven_day`,`seven_day_opus`,`seven_day_sonnet`,`overage`]).optional(),utilization:P().optional(),overageStatus:Ge([`allowed`,`allowed_warning`,`rejected`]).optional(),overageResetsAt:P().optional(),overageDisabledReason:Ge([`overage_not_provisioned`,`org_level_disabled`,`org_level_disabled_until`,`out_of_credits`,`seat_tier_level_disabled`,`member_level_disabled`,`seat_tier_zero_credit_limit`,`group_zero_credit_limit`,`member_zero_credit_limit`,`org_service_level_disabled`,`org_service_zero_credit_limit`,`no_limits_configured`,`unknown`]).optional(),isUsingOverage:We().optional(),surpassedThreshold:P().optional()}).describe(`Rate limit information for claude.ai subscription users.`)),Rlt=J(()=>L({type:I(`assistant`),message:Nlt(),parent_tool_use_id:F().nullable(),error:tB().optional(),uuid:$z(),session_id:F()})),zlt=J(()=>L({type:I(`rate_limit_event`),rate_limit_info:Llt(),uuid:$z(),session_id:F()}).describe(`Rate limit event emitted when rate limit info changes.`)),Blt=J(()=>L({type:I(`streamlined_text`),text:F().describe(`Text content preserved from the assistant message`),session_id:F(),uuid:$z()}).describe(`@internal Streamlined text message - replaces SDKAssistantMessage in streamlined output. Text content preserved, thinking and tool_use blocks removed.`)),Vlt=J(()=>L({type:I(`streamlined_tool_use_summary`),tool_summary:F().describe(`Summary of tool calls (e.g., "Read 2 files, wrote 1 file")`),session_id:F(),uuid:$z()}).describe(`@internal Streamlined tool use summary - replaces tool_use blocks in streamlined output with a cumulative summary string.`)),iB=J(()=>L({tool_name:F(),tool_use_id:F(),tool_input:Fe(F(),ze())})),Hlt=J(()=>L({type:I(`result`),subtype:I(`success`),duration_ms:P(),duration_api_ms:P(),is_error:We(),num_turns:P(),result:F(),stop_reason:F().nullable(),total_cost_usd:P(),usage:eB(),modelUsage:Fe(F(),Wz()),permission_denials:Re(iB()),structured_output:ze().optional(),fast_mode_state:aB().optional(),uuid:$z(),session_id:F()})),Ult=J(()=>L({type:I(`result`),subtype:Ge([`error_during_execution`,`error_max_turns`,`error_max_budget_usd`,`error_max_structured_output_retries`]),duration_ms:P(),duration_api_ms:P(),is_error:We(),num_turns:P(),stop_reason:F().nullable(),total_cost_usd:P(),usage:eB(),modelUsage:Fe(F(),Wz()),permission_denials:Re(iB()),errors:Re(F()),fast_mode_state:aB().optional(),uuid:$z(),session_id:F()})),Wlt=J(()=>Be([Hlt(),Ult()])),Glt=J(()=>L({type:I(`system`),subtype:I(`init`),agents:Re(F()).optional(),apiKeySource:gct(),betas:Re(F()).optional(),claude_code_version:F(),cwd:F(),tools:Re(F()),mcp_servers:Re(L({name:F(),status:F()})),model:F(),permissionMode:Zz(),slash_commands:Re(F()),output_style:F(),skills:Re(F()),plugins:Re(L({name:F(),path:F(),source:F().optional().describe(`@internal Plugin source identifier in "name\\@marketplace" format. Sentinels: "name\\@inline" for --plugin-dir, "name\\@builtin" for built-in plugins.`)})),fast_mode_state:aB().optional(),uuid:$z(),session_id:F()})),Klt=J(()=>L({type:I(`stream_event`),event:Plt(),parent_tool_use_id:F().nullable(),uuid:$z(),session_id:F()})),qlt=J(()=>L({type:I(`system`),subtype:I(`compact_boundary`),compact_metadata:L({trigger:Ge([`manual`,`auto`]),pre_tokens:P(),preserved_segment:L({head_uuid:$z(),anchor_uuid:$z(),tail_uuid:$z()}).optional().describe(`Relink info for messagesToKeep. Loaders splice the preserved segment at anchor_uuid (summary for suffix-preserving, boundary for prefix-preserving partial compact) so resume includes preserved content. Unset when compaction summarizes everything (no messagesToKeep).`)}),uuid:$z(),session_id:F()})),Jlt=J(()=>L({type:I(`system`),subtype:I(`status`),status:Flt(),permissionMode:Zz().optional(),uuid:$z(),session_id:F()})),Ylt=J(()=>L({type:I(`system`),subtype:I(`post_turn_summary`),summarizes_uuid:F(),status_category:Ge([`blocked`,`waiting`,`completed`,`review_ready`,`failed`]),status_detail:F(),is_noteworthy:We(),title:F(),description:F(),recent_action:F(),needs_action:F(),artifact_urls:Re(F()),uuid:$z(),session_id:F()}).describe(`@internal Background post-turn summary emitted after each assistant turn. summarizes_uuid points to the assistant message this summarizes.`)),Xlt=J(()=>L({type:I(`system`),subtype:I(`api_retry`),attempt:P(),max_retries:P(),retry_delay_ms:P(),error_status:P().nullable(),error:tB(),uuid:$z(),session_id:F()}).describe(`Emitted when an API request fails with a retryable error and will be retried after a delay. error_status is null for connection errors (e.g. timeouts) that had no HTTP response.`)),Zlt=J(()=>L({type:I(`system`),subtype:I(`local_command_output`),content:F(),uuid:$z(),session_id:F()}).describe(`Output from a local slash command (e.g. /voice, /cost). Displayed as assistant-style text in the transcript.`)),Qlt=J(()=>L({type:I(`system`),subtype:I(`hook_started`),hook_id:F(),hook_name:F(),hook_event:F(),uuid:$z(),session_id:F()})),$lt=J(()=>L({type:I(`system`),subtype:I(`hook_progress`),hook_id:F(),hook_name:F(),hook_event:F(),stdout:F(),stderr:F(),output:F(),uuid:$z(),session_id:F()})),eut=J(()=>L({type:I(`system`),subtype:I(`hook_response`),hook_id:F(),hook_name:F(),hook_event:F(),output:F(),stdout:F(),stderr:F(),exit_code:P().optional(),outcome:Ge([`success`,`error`,`cancelled`]),uuid:$z(),session_id:F()})),tut=J(()=>L({type:I(`tool_progress`),tool_use_id:F(),tool_name:F(),parent_tool_use_id:F().nullable(),elapsed_time_seconds:P(),task_id:F().optional(),uuid:$z(),session_id:F()})),nut=J(()=>L({type:I(`auth_status`),isAuthenticating:We(),output:Re(F()),error:F().optional(),uuid:$z(),session_id:F()})),rut=J(()=>L({type:I(`system`),subtype:I(`files_persisted`),files:Re(L({filename:F(),file_id:F()})),failed:Re(L({filename:F(),error:F()})),processed_at:F(),uuid:$z(),session_id:F()})),iut=J(()=>L({type:I(`system`),subtype:I(`task_notification`),task_id:F(),tool_use_id:F().optional(),status:Ge([`completed`,`failed`,`stopped`]),output_file:F(),summary:F(),usage:L({total_tokens:P(),tool_uses:P(),duration_ms:P()}).optional(),uuid:$z(),session_id:F()})),aut=J(()=>L({type:I(`system`),subtype:I(`task_started`),task_id:F(),tool_use_id:F().optional(),description:F(),task_type:F().optional(),workflow_name:F().optional().describe(`meta.name from the workflow script (e.g. 'spec'). Only set when task_type is 'local_workflow'.`),prompt:F().optional(),uuid:$z(),session_id:F()})),out=J(()=>L({type:I(`system`),subtype:I(`session_state_changed`),state:Ge([`idle`,`running`,`requires_action`]),uuid:$z(),session_id:F()}).describe(`Mirrors notifySessionStateChanged. 'idle' fires after heldBackResult flushes and the bg-agent do-while exits — authoritative turn-over signal.`)),sut=J(()=>L({type:I(`system`),subtype:I(`task_progress`),task_id:F(),tool_use_id:F().optional(),description:F(),usage:L({total_tokens:P(),tool_uses:P(),duration_ms:P()}),last_tool_name:F().optional(),summary:F().optional(),uuid:$z(),session_id:F()})),cut=J(()=>L({type:I(`tool_use_summary`),summary:F(),preceding_tool_use_ids:Re(F()),uuid:$z(),session_id:F()})),lut=J(()=>L({type:I(`system`),subtype:I(`elicitation_complete`),mcp_server_name:F(),elicitation_id:F(),uuid:$z(),session_id:F()}).describe(`Emitted when an MCP server confirms that a URL-mode elicitation is complete.`)),uut=J(()=>L({type:I(`prompt_suggestion`),suggestion:F(),uuid:$z(),session_id:F()}).describe(`Predicted next user prompt, emitted after each turn when promptSuggestions is enabled.`)),J(()=>L({sessionId:F().describe(`Unique session identifier (UUID).`),summary:F().describe(`Display title for the session: custom title, auto-generated summary, or first prompt.`),lastModified:P().describe(`Last modified time in milliseconds since epoch.`),fileSize:P().optional().describe(`File size in bytes. Only populated for local JSONL storage.`),customTitle:F().optional().describe(`User-set session title via /rename.`),firstPrompt:F().optional().describe(`First meaningful user prompt in the session.`),gitBranch:F().optional().describe(`Git branch at the end of the session.`),cwd:F().optional().describe(`Working directory for the session.`),tag:F().optional().describe(`User-set session tag.`),createdAt:P().optional().describe(`Creation time in milliseconds since epoch, extracted from the first entry's timestamp.`)}).describe(`Session metadata returned by listSessions and getSessionInfo.`)),dut=J(()=>Be([Rlt(),rB(),Ilt(),Wlt(),Glt(),Klt(),qlt(),Jlt(),Xlt(),Zlt(),Qlt(),$lt(),eut(),tut(),nut(),iut(),aut(),sut(),out(),rut(),cut(),zlt(),lut(),uut()])),aB=J(()=>Ge([`off`,`cooldown`,`on`]).describe(`Fast mode state: off, in cooldown after rate limit, or actively enabled.`))})),put=i({MAX_MAILBOX_FILE_BYTES:()=>OB,MAX_MAILBOX_MESSAGES:()=>Uut,MAX_MAILBOX_MESSAGE_TEXT_BYTES:()=>DB,MAX_MAILBOX_RETAINED_BYTES:()=>Gut,MAX_READ_MAILBOX_MESSAGES:()=>200,MAX_UNREAD_PROTOCOL_MAILBOX_MESSAGES:()=>Wut,ModeSetRequestMessageSchema:()=>PB,PlanApprovalRequestMessageSchema:()=>kB,PlanApprovalResponseMessageSchema:()=>AB,ShutdownApprovedMessageSchema:()=>MB,ShutdownRejectedMessageSchema:()=>NB,ShutdownRequestMessageSchema:()=>jB,clearMailbox:()=>Dut,compactMailboxMessages:()=>Sut,createIdleNotification:()=>mB,createModeSetRequestMessage:()=>But,createPermissionRequestMessage:()=>kut,createPermissionResponseMessage:()=>Aut,createSandboxPermissionRequestMessage:()=>Mut,createSandboxPermissionResponseMessage:()=>Nut,createShutdownApprovedMessage:()=>Iut,createShutdownRejectedMessage:()=>Lut,createShutdownRequestMessage:()=>_B,formatTeammateMessages:()=>Out,getInboxPath:()=>lB,getLastPeerDmSummary:()=>TB,isIdleNotification:()=>hB,isModeSetRequest:()=>Vut,isPermissionRequest:()=>jut,isPermissionResponse:()=>gB,isPlanApprovalRequest:()=>yB,isPlanApprovalResponse:()=>SB,isSandboxPermissionRequest:()=>Put,isSandboxPermissionResponse:()=>Fut,isShutdownApproved:()=>bB,isShutdownRejected:()=>xB,isShutdownRequest:()=>vB,isStructuredProtocolMessage:()=>wB,isTaskAssignment:()=>CB,isTeamPermissionUpdate:()=>zut,markMessageAsReadByIdentity:()=>pB,markMessageAsReadByIndex:()=>Tut,markMessagesAsRead:()=>Eut,markMessagesAsReadByPredicate:()=>Hut,readMailbox:()=>uB,readUnreadMessages:()=>dB,sendShutdownRequestToMailbox:()=>Rut,writeToMailbox:()=>fB});function mut(e){let t=e.trimStart();return t.startsWith(`{`)||t.startsWith(`[`)}function oB(e){if(e.read)return!1;if(wB(e.text))return!0;if(!mut(e.text))return!1;try{let t=Da(e.text);return!!(t&&typeof t==`object`&&`type`in t)}catch{return!1}}function hut(e,t){return e.from===t.from&&e.timestamp===t.timestamp&&e.text===t.text}function gut(e){return Buffer.byteLength(V(e),`utf8`)}function _ut(e){if(Buffer.byteLength(e.text,`utf8`)>65536)throw Error(`Mailbox message text exceeds ${DB} bytes`)}function vut(e){if(!e||typeof e!=`object`)throw Error(`Invalid mailbox message: expected object`);let t=e;if(typeof t.from!=`string`||typeof t.text!=`string`||typeof t.timestamp!=`string`||typeof t.read!=`boolean`)throw Error(`Invalid mailbox message shape`);let n={from:t.from,text:t.text,timestamp:t.timestamp,read:t.read,...typeof t.color==`string`?{color:t.color}:{},...typeof t.summary==`string`?{summary:t.summary}:{}};return _ut(n),n}function yut(e){let t=Da(e);if(!Array.isArray(t))throw Error(`Invalid mailbox file: expected message array`);return t.map(vut)}async function but(e){if((await xd(e)).size>4194304)throw Error(`Mailbox file exceeds ${OB} bytes: ${e}`);return hd(e,`utf-8`)}async function sB(e,t){return yut(await but(lB(e,t)))}async function xut(e,t){if(Buffer.byteLength(t,`utf8`)>4194304)throw Error(`Compacted mailbox still exceeds ${OB} bytes`);let n=`${e}.${process.pid}.${ad(8).toString(`hex`)}.tmp`;try{await wd(n,t,`utf-8`),await yd(n,e)}catch(e){throw await Cd(n).catch(()=>void 0),e}}function Sut(e,t={}){let n=t.maxMessages??1e3,r=t.maxReadMessages??200,i=t.maxUnreadProtocolMessages??2e3,a=t.maxRetainedBytes??2097152;if(a<=0||n<=0&&i<=0)return[];let o=new Set,s=0,c=0,l=t=>{if(o.has(t))return!0;let n=e[t];if(!n)return!1;let r=gut(n);return r>a||s+r>a?!1:(o.add(t),s+=r,!0)};for(let t=e.length-1;t>=0;t--){let n=e[t];!n||!oB(n)||c>=i||l(t)&&c++}let u=0;for(let t=e.length-1;t>=0&&!(u>=n);t--){let n=e[t];n&&!n.read&&!oB(n)&&l(t)&&u++}let d=0;for(let t=e.length-1;t>=0&&!(u>=n||d>=r);t--)e[t]?.read&&l(t)&&(d++,u++);return e.filter((e,t)=>o.has(t))}function Cut(e,t,n){let r=new Set(t),i=e.filter(e=>!e.read&&!r.has(e));if(i.length===0)return;let a=fs(i,e=>oB(e));q(Error(`[TeammateMailbox] Compacted ${i.length} unread message(s) in ${n}; protocol_or_unknown=${a}`))}async function cB(e,t,n){let r=Sut(t);Cut(t,r,n),await xut(e,V(r,null,2))}function lB(e,t){let n=t||ds()||`default`,r=Jl(n),i=Jl(e),a=Y(Y(m(),r,`inboxes`),`${i}.json`);return U(`[TeammateMailbox] getInboxPath: agent=${e}, team=${n}, fullPath=${a}`),a}async function wut(e){let t=Jl(e||ds()||`default`),n=Y(m(),t,`inboxes`);await pd(n,{recursive:!0}),U(`[TeammateMailbox] Ensured inbox directory: ${n}`)}async function uB(e,t){let n=lB(e,t);U(`[TeammateMailbox] readMailbox: path=${n}`);try{let e=yut(await but(n));return U(`[TeammateMailbox] readMailbox: read ${e.length} message(s)`),e}catch(t){if(Ea(t)===`ENOENT`)return U(`[TeammateMailbox] readMailbox: file does not exist`),[];throw U(`Failed to read inbox for ${e}: ${t}`),q(t),t}}async function dB(e,t){let n=await uB(e,t),r=n.filter(e=>!e.read);return U(`[TeammateMailbox] readUnreadMessages: ${r.length} unread of ${n.length} total`),r}async function fB(e,t,n){await wut(n);let r=lB(e,n),i=`${r}.lock`;U(`[TeammateMailbox] writeToMailbox: recipient=${e}, from=${t.from}, path=${r}`);try{await wd(r,`[]`,{encoding:`utf-8`,flag:`wx`}),U(`[TeammateMailbox] writeToMailbox: created new inbox file`)}catch(e){if(Ea(e)!==`EEXIST`)throw U(`[TeammateMailbox] writeToMailbox: failed to create inbox file: ${e}`),q(e),e}let a;try{a=await cs(r,{lockfilePath:i,...EB});let o=await sB(e,n),s=vut({...t,read:!1});o.push(s),await cB(r,o,`writeToMailbox`),U(`[TeammateMailbox] Wrote message to ${e}'s inbox from ${t.from}`)}catch(t){throw U(`Failed to write to inbox for ${e}: ${t}`),q(t),t}finally{a&&await a()}}async function Tut(e,t,n){let r=lB(e,t);U(`[TeammateMailbox] markMessageAsReadByIndex called: agentName=${e}, teamName=${t}, index=${n}, path=${r}`);let i=`${r}.lock`,a;try{U(`[TeammateMailbox] markMessageAsReadByIndex: acquiring lock...`),a=await cs(r,{lockfilePath:i,...EB}),U(`[TeammateMailbox] markMessageAsReadByIndex: lock acquired`);let o=await sB(e,t);if(U(`[TeammateMailbox] markMessageAsReadByIndex: read ${o.length} messages after lock`),n<0||n>=o.length){U(`[TeammateMailbox] markMessageAsReadByIndex: index ${n} out of bounds (${o.length} messages)`);return}let s=o[n];if(!s||s.read){U(`[TeammateMailbox] markMessageAsReadByIndex: message already read or missing`);return}o[n]={...s,read:!0},await cB(r,o,`markMessageAsReadByIndex`),U(`[TeammateMailbox] markMessageAsReadByIndex: marked message at index ${n} as read`)}catch(t){if(Ea(t)===`ENOENT`){U(`[TeammateMailbox] markMessageAsReadByIndex: file does not exist at ${r}`);return}U(`[TeammateMailbox] markMessageAsReadByIndex FAILED for ${e}: ${t}`),q(t)}finally{a&&(await a(),U(`[TeammateMailbox] markMessageAsReadByIndex: lock released`))}}async function pB(e,t,n){let r=lB(e,t),i=`${r}.lock`,a;try{a=await cs(r,{lockfilePath:i,...EB});let o=await sB(e,t),s=o.findIndex(e=>!e.read&&hut(e,n));return s<0?!1:(o[s]={...o[s],read:!0},await cB(r,o,`markMessageAsReadByIdentity`),!0)}catch(e){return Ea(e)===`ENOENT`||q(e),!1}finally{a&&await a()}}async function Eut(e,t){let n=lB(e,t);U(`[TeammateMailbox] markMessagesAsRead called: agentName=${e}, teamName=${t}, path=${n}`);let r=`${n}.lock`,i;try{U(`[TeammateMailbox] markMessagesAsRead: acquiring lock...`),i=await cs(n,{lockfilePath:r,...EB}),U(`[TeammateMailbox] markMessagesAsRead: lock acquired`);let a=await sB(e,t);if(U(`[TeammateMailbox] markMessagesAsRead: read ${a.length} messages after lock`),a.length===0){U(`[TeammateMailbox] markMessagesAsRead: no messages to mark`);return}let o=fs(a,e=>!e.read);U(`[TeammateMailbox] markMessagesAsRead: ${o} unread of ${a.length} total`);for(let e of a)e.read=!0;await cB(n,a,`markMessagesAsRead`),U(`[TeammateMailbox] markMessagesAsRead: WROTE ${o} message(s) as read to ${n}`)}catch(t){if(Ea(t)===`ENOENT`){U(`[TeammateMailbox] markMessagesAsRead: file does not exist at ${n}`);return}U(`[TeammateMailbox] markMessagesAsRead FAILED for ${e}: ${t}`),q(t)}finally{i&&(await i(),U(`[TeammateMailbox] markMessagesAsRead: lock released`))}}async function Dut(e,t){let n=lB(e,t);try{await wd(n,`[]`,{encoding:`utf-8`,flag:`r+`}),U(`[TeammateMailbox] Cleared inbox for ${e}`)}catch(t){if(Ea(t)===`ENOENT`)return;U(`Failed to clear inbox for ${e}: ${t}`),q(t)}}function Out(e){return e.map(e=>{let t=e.color?` color="${e.color}"`:``,n=e.summary?` summary="${e.summary}"`:``;return`<${_o} teammate_id="${e.from}"${t}${n}>\n${e.text}\n</${_o}>`}).join(`
|
|
@@ -1086,7 +1086,7 @@ If you've already retrieved data pointing one way and the advisor points another
|
|
|
1086
1086
|
|
|
1087
1087
|
Rejected plan:
|
|
1088
1088
|
`)?(0,dV.jsx)(dft,{plan:r.content.substring(UYt.length)}):typeof r.content==`string`&&r.content.startsWith(`The user doesn't want to proceed with this tool use. The tool use was rejected (eg. if it was a file edit, the new_string was NOT written to the file). To tell you how to proceed, the user said:
|
|
1089
|
-
`)?(0,dV.jsx)(pft,{}):typeof r.content==`string`&&xJt(r.content)?(0,dV.jsx)(Q,{height:1,children:(0,dV.jsxs)(z,{dimColor:!0,children:[`Denied by auto mode classifier `,`∙`,` /feedback if incorrect`]})}):t?.renderToolUseErrorMessage?.(r.content,{progressMessagesForMessage:gc(e),tools:n,verbose:i,isTranscriptMode:a})??(0,dV.jsx)(HR,{result:r.content,verbose:i})}var dV,gft=n((()=>{R(),Rn(),Tt(),Sc(),i3(),WR(),qR(),OT(),fft(),mft(),dV=jt()}));function _ft({input:e,progressMessagesForMessage:t,style:n,tool:r,tools:i,verbose:a,isTranscriptMode:o}){let{columns:s}=ct(),[c]=_t();if(!r||!r.renderToolUseRejectedMessage)return(0,fV.jsx)(JR,{});let l=r.inputSchema.safeParse(e);return l.success?r.renderToolUseRejectedMessage(l.data,{columns:s,messages:[],tools:i,verbose:a,progressMessagesForMessage:gc(t),style:n,theme:c,isTranscriptMode:o})??(0,fV.jsx)(JR,{}):(0,fV.jsx)(JR,{})}var fV,vft=n((()=>{R(),kT(),Tt(),Sc(),YR(),fV=jt()}));function yft({message:e,lookups:t,toolUseID:n,progressMessagesForMessage:r,style:i,tool:a,tools:o,verbose:s,width:c,isTranscriptMode:l,shouldCollapseDiffs:u}){let[d]=_t(),f=FO(e=>e.isBriefOnly),[p]=pV.useState(()=>void 0),[m]=pV.useState(()=>ist(n));if(pV.useEffect(()=>{cst(n)},[n]),!e.toolUseResult||!a)return null;let h=a.outputSchema?.safeParse(e.toolUseResult);if(h&&!h.success)return null;let g=h?.data??e.toolUseResult,_=u&&!s?`condensed`:i,v=a.renderToolResultMessage?.(g,gc(r),{style:_,theme:d,tools:o,verbose:s,isTranscriptMode:l,isBriefOnly:f,input:t.toolUseByToolUseID.get(n)?.input})??null;return v===null?null:(0,mV.jsxs)(B,{flexDirection:`column`,children:[(0,mV.jsxs)(B,{flexDirection:`column`,width:a.userFacingName(void 0)===``?void 0:c,children:[v,null,m&&(0,mV.jsx)(Q,{height:1,children:(0,mV.jsx)(z,{dimColor:!0,children:`Allowed by auto mode classifier`})})]}),(0,mV.jsx)(Gfe,{children:(0,mV.jsx)(mst,{hookEvent:`PostToolUse`,lookups:t,toolUseID:n,verbose:s,isTranscriptMode:l})})]})}var pV,mV,bft=n((()=>{pV=r(R(),1),Wfe(),Tt(),UO(),Sc(),Sz(),OT(),hst(),mV=jt()}));function xft(e,t,n){return(0,Sft.useMemo)(()=>{let r=n.toolUseByToolUseID.get(e);if(!r)return null;let i=rl(t,r.name);return i?{tool:i,toolUse:r}:null},[e,n,t])}var Sft,Cft=n((()=>{Sft=r(R(),1),Sc()}));function wft({param:e,message:t,lookups:n,progressMessagesForMessage:r,style:i,tools:a,verbose:o,width:s,isTranscriptMode:c,shouldCollapseDiffs:l}){let u=xft(e.tool_use_id,a,n);return u?typeof e.content==`string`&&e.content.startsWith(`The user doesn't want to take this action right now. STOP what you are doing and wait for the user to tell you how to proceed.`)?(0,hV.jsx)(lft,{}):typeof e.content==`string`&&e.content.startsWith(`The user doesn't want to proceed with this tool use. The tool use was rejected (eg. if it was a file edit, the new_string was NOT written to the file). STOP what you are doing and wait for the user to tell you how to proceed.`)||e.content===`[Request interrupted by user for tool use]`?(0,hV.jsx)(_ft,{input:u.toolUse.input,progressMessagesForMessage:r,tool:u.tool,tools:a,lookups:n,style:i,verbose:o,isTranscriptMode:c}):e.is_error?(0,hV.jsx)(hft,{progressMessagesForMessage:r,tool:u.tool,tools:a,param:e,verbose:o,isTranscriptMode:c}):(0,hV.jsx)(yft,{message:t,lookups:n,toolUseID:u.toolUse.id,progressMessagesForMessage:r,style:i,tool:u.tool,tools:a,verbose:o,width:s,isTranscriptMode:c,shouldCollapseDiffs:l}):null}var hV,Tft=n((()=>{R(),i3(),uft(),gft(),vft(),bft(),Cft(),hV=jt()}));function gV({children:e}){"use no memo";let t=(0,_V.useContext)(mT),[n,{isVisible:r}]=Jee(),i=(0,_V.useRef)(e);return(r||t)&&(i.current=e),(0,Eft.jsx)(B,{ref:n,children:i.current})}var _V,Eft,vV=n((()=>{_V=r(R(),1),Tt(),hT(),Eft=jt()}));function Dft({message:e,lookups:t,containerWidth:n,addMargin:r,tools:i,commands:a,verbose:o,inProgressToolUseIDs:s,progressMessagesForMessage:c,shouldAnimate:l,shouldShowDot:u,style:d,width:f,isTranscriptMode:p,onOpenRateLimitOptions:m,isActiveCollapsedGroup:h,isUserContinuation:g=!1,lastThinkingBlockId:_,latestBashOutputUUID:v,shouldCollapseDiffs:y}){switch(e.type){case`attachment`:return(0,yV.jsx)(jdt,{addMargin:r,attachment:e.attachment,verbose:o,isTranscriptMode:p});case`assistant`:return(0,yV.jsx)(B,{flexDirection:`column`,width:n??`100%`,children:e.message.content.map((n,d)=>(0,yV.jsx)(kft,{param:n,addMargin:r,tools:i,commands:a,verbose:o,inProgressToolUseIDs:s,progressMessagesForMessage:c,shouldAnimate:l,shouldShowDot:u,width:f,inProgressToolCallCount:s.size,isTranscriptMode:p,lookups:t,onOpenRateLimitOptions:m,thinkingBlockId:`${e.uuid}:${d}`,lastThinkingBlockId:_,advisorModel:e.advisorModel},d))});case`user`:{if(e.isCompactSummary)return(0,yV.jsx)($at,{message:e,screen:p?`transcript`:`prompt`});let a=[],s=0;for(let t of e.message.content)if(t.type===`image`){let t=e.imagePasteIds?.[s];s++,a.push(t??s)}else a.push(s);let l=v===e.uuid,u=(0,yV.jsx)(B,{flexDirection:`column`,width:n??`100%`,children:e.message.content.map((n,s)=>(0,yV.jsx)(Oft,{message:e,addMargin:r,tools:i,progressMessagesForMessage:c,param:n,style:d,verbose:o,imageIndex:a[s],isUserContinuation:g,lookups:t,isTranscriptMode:p,shouldCollapseDiffs:y},s))});return l?(0,yV.jsx)(vUe,{children:u}):u}case`system`:return e.subtype===`compact_boundary`?Ck()?null:(0,yV.jsx)(Wdt,{}):e.subtype===`microcompact_boundary`?null:e.subtype===`local_command`?(0,yV.jsx)(HB,{addMargin:r,param:{type:`text`,text:String(e.content??``)},verbose:o,isTranscriptMode:p}):(0,yV.jsx)(eft,{message:e,addMargin:r,verbose:o,isTranscriptMode:p});case`grouped_tool_use`:return(0,yV.jsx)(Kdt,{message:e,tools:i,lookups:t,inProgressToolUseIDs:s,shouldAnimate:l});case`collapsed_read_search`:return(0,yV.jsx)(gV,{children:(0,yV.jsx)(Vdt,{message:e,inProgressToolUseIDs:s,shouldAnimate:l,verbose:o||p,tools:i,lookups:t,isActiveGroup:h})})}}function Oft({message:e,addMargin:t,tools:n,progressMessagesForMessage:r,param:i,style:a,verbose:o,imageIndex:s,isUserContinuation:c,lookups:l,isTranscriptMode:u,shouldCollapseDiffs:d}){let{columns:f}=ct();switch(i.type){case`text`:return(0,yV.jsx)(HB,{addMargin:t,param:i,verbose:o,planContent:e.planContent,isTranscriptMode:u,timestamp:e.timestamp});case`image`:return(0,yV.jsx)(kdt,{imageId:s,addMargin:t&&!c});case`tool_result`:return(0,yV.jsx)(wft,{param:i,message:e,lookups:l,progressMessagesForMessage:r,style:a,tools:n,verbose:o,width:f-5,isTranscriptMode:u,shouldCollapseDiffs:d});default:return}}function kft({param:e,addMargin:t,tools:n,commands:r,verbose:i,inProgressToolUseIDs:a,progressMessagesForMessage:o,shouldAnimate:s,shouldShowDot:c,width:l,inProgressToolCallCount:u,isTranscriptMode:d,lookups:f,onOpenRateLimitOptions:p,thinkingBlockId:m,lastThinkingBlockId:h,advisorModel:g}){if(Pf(e))return(0,yV.jsx)(Zot,{param:{type:`text`,text:e.connector_text},addMargin:t,shouldShowDot:c,verbose:i,width:l,onOpenRateLimitOptions:p});switch(e.type){case`tool_use`:return(0,yV.jsx)(gst,{param:e,addMargin:t,tools:n,commands:r,verbose:i,inProgressToolUseIDs:a,progressMessagesForMessage:o,shouldAnimate:s,shouldShowDot:c,inProgressToolCallCount:u,lookups:f,isTranscriptMode:d});case`text`:return(0,yV.jsx)(Zot,{param:e,addMargin:t,shouldShowDot:c,verbose:i,width:l,onOpenRateLimitOptions:p});case`redacted_thinking`:return!d&&!i?null:(0,yV.jsx)(sot,{addMargin:t});case`thinking`:return!d&&!i?null:(0,yV.jsx)(tst,{addMargin:t,param:e,isTranscriptMode:d,verbose:i,hideInTranscript:d&&!(!h||m===h)});case`server_tool_use`:case`advisor_tool_result`:return Kat(e)?(0,yV.jsx)(aot,{block:e,addMargin:t,resolvedToolUseIDs:f.resolvedToolUseIDs,erroredToolUseIDs:f.erroredToolUseIDs,shouldAnimate:s,verbose:i||d,advisorModel:g}):(q(Error(`Unable to render server tool block: ${e.type}`)),null);default:return q(Error(`Unable to render message type: ${e.type}`)),null}}function Aft(e){return e.type!==`assistant`||!e.message?!1:e.message.content.some(e=>e.type===`thinking`||e.type===`redacted_thinking`)}function jft(e,t){return e.message.uuid!==t.message.uuid||e.lastThinkingBlockId!==t.lastThinkingBlockId&&Aft(t.message)||e.verbose!==t.verbose||e.latestBashOutputUUID===e.message.uuid!=(t.latestBashOutputUUID===t.message.uuid)||e.isTranscriptMode!==t.isTranscriptMode||e.containerWidth!==t.containerWidth?!1:!!(e.isStatic&&t.isStatic)}var Mft,yV,bV,xV=n((()=>{Mft=r(R()),kT(),Tt(),Ff(),$R(),Dk(),Ao(),eot(),oot(),lot(),est(),nst(),xst(),Fdt(),Udt(),Gdt(),qdt(),cft(),Adt(),WB(),Tft(),vV(),wUe(),yV=jt(),bV=Mft.memo(Dft,jft)}));function Nft(e){if(`status`in e&&e.status===`forked`)return(0,CV.jsx)(Q,{height:1,children:(0,CV.jsx)(z,{children:(0,CV.jsx)(St,{children:[`Done`]})})});let t=[`Successfully loaded skill`];if(`allowedTools`in e&&e.allowedTools&&e.allowedTools.length>0){let n=e.allowedTools.length;t.push(`${n} ${mr(n,`tool`)} allowed`)}return`model`in e&&e.model&&t.push(e.model),(0,CV.jsx)(Q,{height:1,children:(0,CV.jsx)(z,{children:(0,CV.jsx)(St,{children:t})})})}function Pft({skill:e},{commands:t}){return e?t?.find(t=>t.name===e)?.loadedFrom===`commands_DEPRECATED`?`/${e}`:e:null}function SV(e,{tools:t,verbose:n}){if(!e.length)return(0,CV.jsx)(Q,{height:1,children:(0,CV.jsx)(z,{dimColor:!0,children:Rft})});let r=n?e:e.slice(-Lft),i=e.length-r.length,{inProgressToolUseIDs:a}=v4(e.map(e=>e.data));return(0,CV.jsx)(Q,{children:(0,CV.jsxs)(B,{flexDirection:`column`,children:[(0,CV.jsx)(gT,{children:r.map(e=>(0,CV.jsx)(B,{height:1,overflow:`hidden`,children:(0,CV.jsx)(bV,{message:e.data.message,lookups:t3,addMargin:!1,tools:t,commands:[],verbose:n,inProgressToolUseIDs:a,progressMessagesForMessage:[],shouldAnimate:!1,shouldShowDot:!1,style:`condensed`,isTranscriptMode:!1,isStatic:!0})},e.uuid))}),i>0&&(0,CV.jsxs)(z,{dimColor:!0,children:[`+`,i,` more tool `,mr(i,`use`)]})]})})}function Fft(e,{progressMessagesForMessage:t,tools:n,verbose:r}){return(0,CV.jsxs)(CV.Fragment,{children:[SV(t,{tools:n,verbose:r}),(0,CV.jsx)(JR,{})]})}function Ift(e,{progressMessagesForMessage:t,tools:n,verbose:r}){return(0,CV.jsxs)(CV.Fragment,{children:[SV(t,{tools:n,verbose:r}),(0,CV.jsx)(HR,{result:e,verbose:r})]})}var CV,Lft,Rft,zft=n((()=>{R(),xT(),WR(),YR(),Tt(),xV(),OT(),i3(),Di(),CV=jt(),Lft=3,Rft=`Initializing…`})),Bft=i({getDiscoveredRemoteSkill:()=>Hft,stripCanonicalPrefix:()=>Vft});function Vft(e){return null}function Hft(e){}var Uft=n((()=>{})),Wft=i({loadRemoteSkill:()=>Gft});function Gft(e,t){return Promise.resolve({cacheHit:!1,latencyMs:0,skillPath:``,content:``})}var Kft=n((()=>{})),qft=i({logRemoteSkillLoaded:()=>Jft});function Jft(e){}var Yft=n((()=>{})),wV=i({isSkillSearchCompiledIn:()=>Xft,isSkillSearchEnabled:()=>TV});function Xft(){return!0}function TV(){return process.env.SKILL_SEARCH_ENABLED===`1`}var EV=n((()=>{}));async function DV(e){let t=e.getAppState().mcp.commands.filter(e=>e.type===`prompt`&&e.loadedFrom===`mcp`);return t.length===0?F6(hn()):ti([...await F6(hn()),...t],`name`)}async function Zft(e,t,n,r,i,a,o){let s=Date.now(),c=SP(),l=e8().has(t),u=$ft(e),d=e.source===`bundled`,f=l||d||u?t:`custom`,p=OV.isSkillSearchEnabled()?{was_discovered:r.discoveredSkillNames?.has(t)??!1}:{},m=e.pluginInfo?sl(e.pluginInfo.repository).marketplace:void 0,h=r.queryTracking?.depth??0,g=yn()?.agentId;G(`tengu_skill_tool_invocation`,{command_name:f,_PROTO_skill_name:t,execution_context:`fork`,invocation_trigger:h>0?`nested-skill`:`claude-proactive`,query_depth:h,...g&&{parent_agent_id:g},...p,...process.env.USER_TYPE===`ant`&&{skill_name:t,skill_source:e.source,...e.loadedFrom&&{skill_loaded_from:e.loadedFrom},...e.kind&&{skill_kind:e.kind}},...e.pluginInfo&&{_PROTO_plugin_name:e.pluginInfo.pluginManifest.name,...m&&{_PROTO_marketplace_name:m},plugin_name:u?e.pluginInfo.pluginManifest.name:`third-party`,plugin_repository:u?e.pluginInfo.repository:`third-party`,...vP(e.pluginInfo)}});let{modifiedGetAppState:_,baseAgent:v,promptMessages:y,skillContent:b}=await JBt(e,n||``,r),x=e.effort===void 0?v:{...v,effort:e.effort},S=[];U(`SkillTool executing forked skill ${t} with agent ${x.agentType}`);try{for await(let t of BR({agentDefinition:x,promptMessages:y,toolUseContext:{...r,getAppState:_},canUseTool:i,isAsync:!1,querySource:`agent:custom`,model:e.model,availableTools:r.options.tools,override:{agentId:c}}))if(S.push(t),(t.type===`assistant`||t.type===`user`)&&o){let e=g4([t]);for(let t of e){let e=t.message?.content;Array.isArray(e)&&e.some(e=>e.type===`tool_use`||e.type===`tool_result`)&&o({toolUseID:`skill_${a.message.id}`,data:{message:t,type:`skill_progress`,prompt:b,agentId:c}})}}let n=YBt(S,`Skill execution completed`);return S.length=0,U(`SkillTool forked skill ${t} completed in ${Date.now()-s}ms`),{data:{success:!0,commandName:t,status:`forked`,agentId:c,result:n}}}finally{rn(c)}}function Qft(e){for(let t of Object.keys(e)){if(ipt.has(t))continue;let n=e[t];if(n!=null&&!(Array.isArray(n)&&n.length===0)&&!(typeof n==`object`&&!Array.isArray(n)&&Object.keys(n).length===0))return!1}return!0}function $ft(e){return e.source!==`plugin`||!e.pluginInfo?.repository?!1:al(sl(e.pluginInfo.repository).marketplace)}function ept(e){return e.startsWith(`gs://`)?`gs`:e.startsWith(`https://`)?`https`:e.startsWith(`http://`)?`http`:e.startsWith(`s3://`)?`s3`:`gs`}async function tpt(e,t,n,r){let{getDiscoveredRemoteSkill:i,loadRemoteSkill:a,logRemoteSkillLoaded:o}=OV,s=i(e);if(!s)throw Error(`Remote skill ${e} was not discovered in this session. Use DiscoverSkills to find remote skills first.`);let c=ept(s.url),l;try{l=await a(e,s.url)}catch(t){let n=H(t);throw o({slug:e,cacheHit:!1,latencyMs:0,urlScheme:c,error:n}),Error(`Failed to load remote skill ${e}: ${n}`)}let{cacheHit:u,latencyMs:d,skillPath:f,content:p,fileCount:m,totalBytes:h,fetchMethod:g}=l;o({slug:e,cacheHit:u,latencyMs:d,urlScheme:c,fileCount:m,totalBytes:h,fetchMethod:g});let _=r.queryTracking?.depth??0,v=yn()?.agentId;G(`tengu_skill_tool_invocation`,{command_name:`remote_skill`,_PROTO_skill_name:t,execution_context:`remote`,invocation_trigger:_>0?`nested-skill`:`claude-proactive`,query_depth:_,...v&&{parent_agent_id:v},was_discovered:!0,is_remote:!0,remote_cache_hit:u,remote_load_latency_ms:d,...process.env.USER_TYPE===`ant`&&{skill_name:t,remote_slug:e}}),bP(t),U(`SkillTool loaded remote skill ${e} (cacheHit=${u}, ${d}ms, ${p.length} chars)`);let{content:y}=Sf(p,f),b=Eu(f),x=process.platform===`win32`?b.replace(/\\/g,`/`):b,S=`Base directory for this skill: ${x}\n\n${y}`;S=S.replace(/\$\{CLAUDE_SKILL_DIR\}/g,x),S=S.replace(/\$\{CLAUDE_SESSION_ID\}/g,Ft()),Nne(t,f,S,yn()?.agentId??null);let C=Bat(n,Lc);return{data:{success:!0,commandName:t,status:`inline`},newMessages:zat([d4({content:S,isMeta:!0})],C)}}var OV,npt,rpt,kV,ipt,apt=n((()=>{ga(),tn(),s8(),Sc(),W(),P9(),ol(),yP(),it(),Eo(),Ua(),ia(),ka(),E$(),Of(),Fs(),i3(),hr(),n9e(),CP(),VR(),Vat(),uc(),hh(),zft(),OV={...(Uft(),e(Bft)),...(Kft(),e(Wft)),...(Yft(),e(qft)),...(EV(),e(wV))},npt=J(()=>L({skill:F().describe(`The skill name. E.g., "commit", "review-pr", or "pdf"`),args:F().optional().describe(`Optional arguments for the skill`)})),rpt=J(()=>Be([L({success:We().describe(`Whether the skill is valid`),commandName:F().describe(`The name of the skill`),allowedTools:Re(F()).optional().describe(`Tools allowed by this skill`),model:F().optional().describe(`Model override if specified`),status:I(`inline`).optional().describe(`Execution status`)}),L({success:We().describe(`Whether the skill completed successfully`),commandName:F().describe(`The name of the skill`),status:I(`forked`).describe(`Execution status`),agentId:F().describe(`The ID of the sub-agent that executed the skill`),result:F().describe(`The result from the forked skill execution`)})])),kV=sc({name:Lc,searchHint:`invoke a slash-command skill`,maxResultSizeChars:1e5,get inputSchema(){return npt()},get outputSchema(){return rpt()},description:async({skill:e})=>`Execute skill: ${e}`,prompt:async()=>mh(hn()),toAutoClassifierInput:({skill:e})=>e??``,async validateInput({skill:e},t){let n=e.trim();if(!n)return{result:!1,message:`Invalid skill format: ${e}`,errorCode:1};let r=n.startsWith(`/`);r&&G(`tengu_skill_tool_slash_prefix`,{});let i=r?n.substring(1):n;if(process.env.USER_TYPE===`ant`){let e=OV.stripCanonicalPrefix(i);if(e!==null)return OV.getDiscoveredRemoteSkill(e)?{result:!0}:{result:!1,message:`Remote skill ${e} was not discovered in this session. Use DiscoverSkills to find remote skills first.`,errorCode:6}}let a=I6(i,await DV(t));return a?a.disableModelInvocation?{result:!1,message:`Skill ${i} cannot be used with ${Lc} tool due to disable-model-invocation`,errorCode:4}:a.type===`prompt`?{result:!0}:{result:!1,message:`Skill ${i} is not a prompt-based skill`,errorCode:5}:{result:!1,message:`Unknown skill: ${i}`,errorCode:2}},async checkPermissions({skill:e,args:t},n){let r=e.trim(),i=r.startsWith(`/`)?r.substring(1):r,a=n.getAppState().toolPermissionContext,o=I6(i,await DV(n)),s=e=>{let t=e.startsWith(`/`)?e.substring(1):e;if(t===i)return!0;if(t.endsWith(`:*`)){let e=t.slice(0,-2);return i.startsWith(e)}return!1},c=k9(a,kV,`deny`);for(let[e,t]of c.entries())if(s(e))return{behavior:`deny`,message:`Skill execution blocked by permission rules`,decisionReason:{type:`rule`,rule:t}};if(process.env.USER_TYPE===`ant`&&OV.stripCanonicalPrefix(i)!==null)return{behavior:`allow`,updatedInput:{skill:e,args:t},decisionReason:void 0};let l=k9(a,kV,`allow`);for(let[n,r]of l.entries())if(s(n))return{behavior:`allow`,updatedInput:{skill:e,args:t},decisionReason:{type:`rule`,rule:r}};if(o?.type===`prompt`&&Qft(o))return{behavior:`allow`,updatedInput:{skill:e,args:t},decisionReason:void 0};let u=[{type:`addRules`,rules:[{toolName:Lc,ruleContent:i}],behavior:`allow`,destination:`localSettings`},{type:`addRules`,rules:[{toolName:Lc,ruleContent:`${i}:*`}],behavior:`allow`,destination:`localSettings`}];return{behavior:`ask`,message:`Execute skill: ${i}`,decisionReason:void 0,suggestions:u,updatedInput:{skill:e,args:t},metadata:o?{command:o}:void 0}},async call({skill:e,args:t},n,r,i,a){let o=e.trim(),s=o.startsWith(`/`)?o.substring(1):o;if(process.env.USER_TYPE===`ant`){let e=OV.stripCanonicalPrefix(s);if(e!==null)return tpt(e,s,i,n)}let c=await DV(n),l=I6(s,c);if(bP(s),l?.type===`prompt`&&l.context===`fork`)return Zft(l,s,t,n,r,i,a);let{processPromptSlashCommand:u}=await import(`./processSlashCommand-JLJ_vF05.js`),d=await u(s,t||``,c,n);if(!d.shouldQuery)throw Error(`Command processing failed`);let f=d.allowedTools||[],p=d.model,m=l?.type===`prompt`?l.effort:void 0,h=e8().has(s),g=l?.type===`prompt`&&l.source===`bundled`,_=l?.type===`prompt`&&$ft(l),v=h||g||_?s:`custom`,y=OV.isSkillSearchEnabled()?{was_discovered:n.discoveredSkillNames?.has(s)??!1}:{},b=l?.type===`prompt`&&l.pluginInfo?sl(l.pluginInfo.repository).marketplace:void 0,x=n.queryTracking?.depth??0,S=yn()?.agentId;G(`tengu_skill_tool_invocation`,{command_name:v,_PROTO_skill_name:s,execution_context:`inline`,invocation_trigger:x>0?`nested-skill`:`claude-proactive`,query_depth:x,...S&&{parent_agent_id:S},...y,...process.env.USER_TYPE===`ant`&&{skill_name:s,...l?.type===`prompt`&&{skill_source:l.source},...l?.loadedFrom&&{skill_loaded_from:l.loadedFrom},...l?.kind&&{skill_kind:l.kind}},...l?.type===`prompt`&&l.pluginInfo&&{_PROTO_plugin_name:l.pluginInfo.pluginManifest.name,...b&&{_PROTO_marketplace_name:b},plugin_name:_?l.pluginInfo.pluginManifest.name:`third-party`,plugin_repository:_?l.pluginInfo.repository:`third-party`,...vP(l.pluginInfo)}});let C=Bat(i,Lc),w=zat(d.messages.filter(e=>{if(e.type===`progress`)return!1;if(e.type===`user`&&`message`in e){let t=e.message.content;if(typeof t==`string`&&t.includes(`<command-message>`))return!1}return!0}),C);return U(`SkillTool returning ${w.length} newMessages for skill ${s}`),{data:{success:!0,commandName:s,allowedTools:f.length>0?f:void 0,model:p},newMessages:w,contextModifier(e){let t=e;if(f.length>0){let e=t.getAppState;t={...t,getAppState(){let t=e();return{...t,toolPermissionContext:{...t.toolPermissionContext,alwaysAllowRules:{...t.toolPermissionContext.alwaysAllowRules,command:[...new Set([...t.toolPermissionContext.alwaysAllowRules.command||[],...f])]}}}}}}if(p&&(t={...t,options:{...t.options,mainLoopModel:Pie(p,e.options.mainLoopModel)}}),m!==void 0){let e=t.getAppState;t={...t,getAppState(){return{...e(),effortValue:m}}}}return t}}},mapToolResultToToolResultBlockParam(e,t){return`status`in e&&e.status===`forked`?{type:`tool_result`,tool_use_id:t,content:`Skill "${e.commandName}" completed (forked execution).\n\nResult:\n${e.result}`}:{type:`tool_result`,tool_use_id:t,content:`Launching skill: ${e.commandName}`}},renderToolResultMessage:Nft,renderToolUseMessage:Pft,renderToolUseProgressMessage:SV,renderToolUseRejectedMessage:Fft,renderToolUseErrorMessage:Ift}),ipt=new Set(`type.progressMessage.contentLength.argNames.model.effort.source.pluginInfo.disableNonInteractive.skillRoot.context.agent.getPromptForCommand.frontmatterKeys.name.description.hasUserSpecifiedDescription.isEnabled.isHidden.aliases.isMcp.argumentHint.whenToUse.paths.version.disableModelInvocation.userInvocable.loadedFrom.immediate.userFacingName`.split(`.`))}));function opt({serverName:e,files:t}){let n=od();U(`LSP Diagnostics: Registering ${t.length} diagnostic file(s) from ${e} (ID: ${n})`),MV.set(n,{serverName:e,files:t,timestamp:Date.now(),attachmentSent:!1})}function spt(e){switch(e){case`Error`:return 1;case`Warning`:return 2;case`Info`:return 3;case`Hint`:return 4;default:return 4}}function cpt(e){return V({message:e.message,severity:e.severity,range:e.range,source:e.source||null,code:e.code||null})}function lpt(e){let t=new Map,n=[];for(let r of e){t.has(r.uri)||(t.set(r.uri,new Set),n.push({uri:r.uri,diagnostics:[]}));let e=t.get(r.uri),i=n.find(e=>e.uri===r.uri),a=NV.get(r.uri)||new Set;for(let t of r.diagnostics)try{let n=cpt(t);if(e.has(n)||a.has(n))continue;e.add(n),i.diagnostics.push(t)}catch(e){let n=xa(e),a=t.message?.substring(0,100)||`<no message>`;q(Error(`Failed to deduplicate diagnostic in ${r.uri}: ${n.message}. Diagnostic message: ${a}`)),i.diagnostics.push(t)}}return n.filter(e=>e.diagnostics.length>0)}function upt(){U(`LSP Diagnostics: Checking registry - ${MV.size} pending`);let e=[],t=new Set,n=[];for(let r of MV.values())r.attachmentSent||(e.push(...r.files),t.add(r.serverName),n.push(r));if(e.length===0)return[];let r;try{r=lpt(e)}catch(t){let n=xa(t);q(Error(`Failed to deduplicate LSP diagnostics: ${n.message}`)),r=e}for(let e of n)e.attachmentSent=!0;for(let[e,t]of MV)t.attachmentSent&&MV.delete(e);let i=e.reduce((e,t)=>e+t.diagnostics.length,0),a=r.reduce((e,t)=>e+t.diagnostics.length,0);i>a&&U(`LSP Diagnostics: Deduplication removed ${i-a} duplicate diagnostic(s)`);let o=0,s=0;for(let e of r){e.diagnostics.sort((e,t)=>spt(e.severity)-spt(t.severity)),e.diagnostics.length>AV&&(s+=e.diagnostics.length-AV,e.diagnostics=e.diagnostics.slice(0,AV));let t=jV-o;e.diagnostics.length>t&&(s+=e.diagnostics.length-t,e.diagnostics=e.diagnostics.slice(0,t)),o+=e.diagnostics.length}r=r.filter(e=>e.diagnostics.length>0),s>0&&U(`LSP Diagnostics: Volume limiting removed ${s} diagnostic(s) (max ${AV}/file, ${jV} total)`);for(let e of r){NV.has(e.uri)||NV.set(e.uri,new Set);let t=NV.get(e.uri);for(let n of e.diagnostics)try{t.add(cpt(n))}catch(t){let r=xa(t),i=n.message?.substring(0,100)||`<no message>`;q(Error(`Failed to track delivered diagnostic in ${e.uri}: ${r.message}. Diagnostic message: ${i}`))}}let c=r.reduce((e,t)=>e+t.diagnostics.length,0);return c===0?(U(`LSP Diagnostics: No new diagnostics to deliver (all filtered by deduplication)`),[]):(U(`LSP Diagnostics: Delivering ${r.length} file(s) with ${c} diagnostic(s) from ${t.size} server(s)`),[{serverName:Array.from(t).join(`, `),files:r}])}function dpt(){U(`LSP Diagnostics: Clearing ${MV.size} pending diagnostic(s)`),MV.clear()}function fpt(){U(`LSP Diagnostics: Resetting all state (${MV.size} pending, ${NV.size} files tracked)`),MV.clear(),NV.clear()}function ppt(e){NV.has(e)&&(U(`LSP Diagnostics: Clearing delivered diagnostics for ${e}`),NV.delete(e))}var AV,jV,mpt,MV,NV,PV=n((()=>{Fo(),W(),ka(),Ao(),Va(),AV=10,jV=30,mpt=500,MV=new Map,NV=new Io({max:mpt})}));function hpt(e,t){let n=Nu(e),r=Nu(e,t),i=Mu(n,r);return i.startsWith(`..`)||Nu(i)===i?null:r}async function gpt(e,t=[]){let n={},r=Y(e.path,`.lsp.json`);try{let i=Da(await hd(r,`utf-8`)),a=Fe(F(),Si()).safeParse(i);if(a.success)Object.assign(n,a.data);else{let n=`LSP config validation failed for .lsp.json in plugin ${e.name}: ${a.error.message}`;q(Error(n)),t.push({type:`lsp-config-invalid`,plugin:e.name,serverName:`.lsp.json`,validationError:a.error.message,source:`plugin`})}}catch(n){Oa(n)||(n instanceof Error?`${e.name}${n.message}`:`${e.name}`,q(xa(n)),t.push({type:`lsp-config-invalid`,plugin:e.name,serverName:`.lsp.json`,validationError:n instanceof Error?`Failed to parse JSON: ${n.message}`:`Failed to parse JSON file`,source:`plugin`}))}if(e.manifest.lspServers){let r=await _pt(e.manifest.lspServers,e.path,e.name,t);r&&Object.assign(n,r)}return Object.keys(n).length>0?n:void 0}async function _pt(e,t,n,r){let i={},a=Array.isArray(e)?e:[e];for(let e of a)if(typeof e==`string`){let a=hpt(t,e);if(!a){let t=`Security: Path traversal attempt blocked in plugin ${n}: ${e}`;q(Error(t)),U(t,{level:`warn`}),r.push({type:`lsp-config-invalid`,plugin:n,serverName:e,validationError:`Invalid path: must be relative and within plugin directory`,source:`plugin`});continue}try{let t=Da(await hd(a,`utf-8`)),o=Fe(F(),Si()).safeParse(t);if(o.success)Object.assign(i,o.data);else{let t=`LSP config validation failed for ${e} in plugin ${n}: ${o.error.message}`;q(Error(t)),r.push({type:`lsp-config-invalid`,plugin:n,serverName:e,validationError:o.error.message,source:`plugin`})}}catch(t){t instanceof Error?`${e}${n}${t.message}`:`${e}${n}`,q(xa(t)),r.push({type:`lsp-config-invalid`,plugin:n,serverName:e,validationError:t instanceof Error?`Failed to parse JSON: ${t.message}`:`Failed to parse JSON file`,source:`plugin`})}}else for(let[t,a]of Object.entries(e)){let e=Si().safeParse(a);if(e.success)i[t]=e.data;else{let i=`LSP config validation failed for inline server "${t}" in plugin ${n}: ${e.error.message}`;q(Error(i)),r.push({type:`lsp-config-invalid`,plugin:n,serverName:t,validationError:e.error.message,source:`plugin`})}}return Object.keys(i).length>0?i:void 0}function vpt(e,t,n,r){let i=[],a=e=>{let r=UT(e,t);n&&(r=iGe(r,n));let{expanded:a,missingVars:o}=EWe(r);return i.push(...o),a},o={...e};o.command&&(o.command=a(o.command)),o.args&&(o.args=o.args.map(e=>a(e)));let s={CLAUDE_PLUGIN_ROOT:t.path,CLAUDE_PLUGIN_DATA:ch(t.source),...o.env||{}};for(let[e,t]of Object.entries(s))e!==`CLAUDE_PLUGIN_ROOT`&&e!==`CLAUDE_PLUGIN_DATA`&&(s[e]=a(t));if(o.env=s,o.workspaceFolder&&(o.workspaceFolder=a(o.workspaceFolder)),i.length>0){let e=`Missing environment variables in plugin LSP config: ${[...new Set(i)].join(`, `)}`;q(Error(e)),U(e,{level:`warn`})}return o}function ypt(e,t){let n={};for(let[r,i]of Object.entries(e)){let e=`plugin:${t}:${r}`;n[e]={...i,scope:`dynamic`,source:t}}return n}async function bpt(e,t=[]){if(!e.enabled)return;let n=e.lspServers||await gpt(e,t);if(!n)return;let r=e.manifest.userConfig?WT($We(e)):void 0,i={};for(let[a,o]of Object.entries(n))i[a]=vpt(o,e,r,t);return ypt(i,e.name)}var xpt=n((()=>{it(),DWe(),W(),ka(),Ao(),Va(),lh(),GT(),ma()}));async function Spt(){let e={};try{let{enabled:t}=await U2(),n=await Promise.all(t.map(async e=>{let t=[];try{return{plugin:e,scopedServers:await bpt(e,t),errors:t}}catch(n){return U(`Failed to load LSP servers for plugin ${e.name}: ${n}`,{level:`error`}),{plugin:e,scopedServers:void 0,errors:t}}}));for(let{plugin:t,scopedServers:r,errors:i}of n){let n=r?Object.keys(r).length:0;n>0&&(Object.assign(e,r),U(`Loaded ${n} LSP server(s) from plugin: ${t.name}`)),i.length>0&&U(`${i.length} error(s) loading LSP servers from plugin: ${t.name}`)}U(`Total LSP servers loaded: ${Object.keys(e).length}`)}catch(e){q(xa(e)),U(`Error loading LSP servers: ${H(e)}`)}return{servers:e}}var Cpt=n((()=>{W(),ka(),Ao(),xpt(),W2()})),FV=a((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.stringArray=e.array=e.func=e.error=e.number=e.string=e.boolean=void 0;function t(e){return e===!0||e===!1}e.boolean=t;function n(e){return typeof e==`string`||e instanceof String}e.string=n;function r(e){return typeof e==`number`||e instanceof Number}e.number=r;function i(e){return e instanceof Error}e.error=i;function a(e){return typeof e==`function`}e.func=a;function o(e){return Array.isArray(e)}e.array=o;function s(e){return o(e)&&e.every(e=>n(e))}e.stringArray=s})),wpt=a((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.Message=e.NotificationType9=e.NotificationType8=e.NotificationType7=e.NotificationType6=e.NotificationType5=e.NotificationType4=e.NotificationType3=e.NotificationType2=e.NotificationType1=e.NotificationType0=e.NotificationType=e.RequestType9=e.RequestType8=e.RequestType7=e.RequestType6=e.RequestType5=e.RequestType4=e.RequestType3=e.RequestType2=e.RequestType1=e.RequestType=e.RequestType0=e.AbstractMessageSignature=e.ParameterStructures=e.ResponseError=e.ErrorCodes=void 0;var t=FV(),n;(function(e){e.ParseError=-32700,e.InvalidRequest=-32600,e.MethodNotFound=-32601,e.InvalidParams=-32602,e.InternalError=-32603,e.jsonrpcReservedErrorRangeStart=-32099,e.serverErrorStart=-32099,e.MessageWriteError=-32099,e.MessageReadError=-32098,e.PendingResponseRejected=-32097,e.ConnectionInactive=-32096,e.ServerNotInitialized=-32002,e.UnknownErrorCode=-32001,e.jsonrpcReservedErrorRangeEnd=-32e3,e.serverErrorEnd=-32e3})(n||(e.ErrorCodes=n={})),e.ResponseError=class e extends Error{constructor(r,i,a){super(i),this.code=t.number(r)?r:n.UnknownErrorCode,this.data=a,Object.setPrototypeOf(this,e.prototype)}toJson(){let e={code:this.code,message:this.message};return this.data!==void 0&&(e.data=this.data),e}};var r=class e{constructor(e){this.kind=e}static is(t){return t===e.auto||t===e.byName||t===e.byPosition}toString(){return this.kind}};e.ParameterStructures=r,r.auto=new r(`auto`),r.byPosition=new r(`byPosition`),r.byName=new r(`byName`);var i=class{constructor(e,t){this.method=e,this.numberOfParams=t}get parameterStructures(){return r.auto}};e.AbstractMessageSignature=i,e.RequestType0=class extends i{constructor(e){super(e,0)}},e.RequestType=class extends i{constructor(e,t=r.auto){super(e,1),this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}},e.RequestType1=class extends i{constructor(e,t=r.auto){super(e,1),this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}},e.RequestType2=class extends i{constructor(e){super(e,2)}},e.RequestType3=class extends i{constructor(e){super(e,3)}},e.RequestType4=class extends i{constructor(e){super(e,4)}},e.RequestType5=class extends i{constructor(e){super(e,5)}},e.RequestType6=class extends i{constructor(e){super(e,6)}},e.RequestType7=class extends i{constructor(e){super(e,7)}},e.RequestType8=class extends i{constructor(e){super(e,8)}},e.RequestType9=class extends i{constructor(e){super(e,9)}},e.NotificationType=class extends i{constructor(e,t=r.auto){super(e,1),this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}},e.NotificationType0=class extends i{constructor(e){super(e,0)}},e.NotificationType1=class extends i{constructor(e,t=r.auto){super(e,1),this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}},e.NotificationType2=class extends i{constructor(e){super(e,2)}},e.NotificationType3=class extends i{constructor(e){super(e,3)}},e.NotificationType4=class extends i{constructor(e){super(e,4)}},e.NotificationType5=class extends i{constructor(e){super(e,5)}},e.NotificationType6=class extends i{constructor(e){super(e,6)}},e.NotificationType7=class extends i{constructor(e){super(e,7)}},e.NotificationType8=class extends i{constructor(e){super(e,8)}},e.NotificationType9=class extends i{constructor(e){super(e,9)}};var a;(function(e){function n(e){let n=e;return n&&t.string(n.method)&&(t.string(n.id)||t.number(n.id))}e.isRequest=n;function r(e){let n=e;return n&&t.string(n.method)&&e.id===void 0}e.isNotification=r;function i(e){let n=e;return n&&(n.result!==void 0||!!n.error)&&(t.string(n.id)||t.number(n.id)||n.id===null)}e.isResponse=i})(a||(e.Message=a={}))})),Tpt=a((e=>{var t;Object.defineProperty(e,`__esModule`,{value:!0}),e.LRUCache=e.LinkedMap=e.Touch=void 0;var n;(function(e){e.None=0,e.First=1,e.AsOld=e.First,e.Last=2,e.AsNew=e.Last})(n||(e.Touch=n={}));var r=class{constructor(){this[t]=`LinkedMap`,this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has(e){return this._map.has(e)}get(e,t=n.None){let r=this._map.get(e);if(r)return t!==n.None&&this.touch(r,t),r.value}set(e,t,r=n.None){let i=this._map.get(e);if(i)i.value=t,r!==n.None&&this.touch(i,r);else{switch(i={key:e,value:t,next:void 0,previous:void 0},r){case n.None:this.addItemLast(i);break;case n.First:this.addItemFirst(i);break;case n.Last:this.addItemLast(i);break;default:this.addItemLast(i);break}this._map.set(e,i),this._size++}return this}delete(e){return!!this.remove(e)}remove(e){let t=this._map.get(e);if(t)return this._map.delete(e),this.removeItem(t),this._size--,t.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw Error(`Invalid list`);let e=this._head;return this._map.delete(e.key),this.removeItem(e),this._size--,e.value}forEach(e,t){let n=this._state,r=this._head;for(;r;){if(t?e.bind(t)(r.value,r.key,this):e(r.value,r.key,this),this._state!==n)throw Error(`LinkedMap got modified during iteration.`);r=r.next}}keys(){let e=this._state,t=this._head,n={[Symbol.iterator]:()=>n,next:()=>{if(this._state!==e)throw Error(`LinkedMap got modified during iteration.`);if(t){let e={value:t.key,done:!1};return t=t.next,e}else return{value:void 0,done:!0}}};return n}values(){let e=this._state,t=this._head,n={[Symbol.iterator]:()=>n,next:()=>{if(this._state!==e)throw Error(`LinkedMap got modified during iteration.`);if(t){let e={value:t.value,done:!1};return t=t.next,e}else return{value:void 0,done:!0}}};return n}entries(){let e=this._state,t=this._head,n={[Symbol.iterator]:()=>n,next:()=>{if(this._state!==e)throw Error(`LinkedMap got modified during iteration.`);if(t){let e={value:[t.key,t.value],done:!1};return t=t.next,e}else return{value:void 0,done:!0}}};return n}[(t=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(e){if(e>=this.size)return;if(e===0){this.clear();return}let t=this._head,n=this.size;for(;t&&n>e;)this._map.delete(t.key),t=t.next,n--;this._head=t,this._size=n,t&&(t.previous=void 0),this._state++}addItemFirst(e){if(!this._head&&!this._tail)this._tail=e;else if(this._head)e.next=this._head,this._head.previous=e;else throw Error(`Invalid list`);this._head=e,this._state++}addItemLast(e){if(!this._head&&!this._tail)this._head=e;else if(this._tail)e.previous=this._tail,this._tail.next=e;else throw Error(`Invalid list`);this._tail=e,this._state++}removeItem(e){if(e===this._head&&e===this._tail)this._head=void 0,this._tail=void 0;else if(e===this._head){if(!e.next)throw Error(`Invalid list`);e.next.previous=void 0,this._head=e.next}else if(e===this._tail){if(!e.previous)throw Error(`Invalid list`);e.previous.next=void 0,this._tail=e.previous}else{let t=e.next,n=e.previous;if(!t||!n)throw Error(`Invalid list`);t.previous=n,n.next=t}e.next=void 0,e.previous=void 0,this._state++}touch(e,t){if(!this._head||!this._tail)throw Error(`Invalid list`);if(!(t!==n.First&&t!==n.Last)){if(t===n.First){if(e===this._head)return;let t=e.next,n=e.previous;e===this._tail?(n.next=void 0,this._tail=n):(t.previous=n,n.next=t),e.previous=void 0,e.next=this._head,this._head.previous=e,this._head=e,this._state++}else if(t===n.Last){if(e===this._tail)return;let t=e.next,n=e.previous;e===this._head?(t.previous=void 0,this._head=t):(t.previous=n,n.next=t),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e,this._state++}}}toJSON(){let e=[];return this.forEach((t,n)=>{e.push([n,t])}),e}fromJSON(e){this.clear();for(let[t,n]of e)this.set(t,n)}};e.LinkedMap=r,e.LRUCache=class extends r{constructor(e,t=1){super(),this._limit=e,this._ratio=Math.min(Math.max(0,t),1)}get limit(){return this._limit}set limit(e){this._limit=e,this.checkTrim()}get ratio(){return this._ratio}set ratio(e){this._ratio=Math.min(Math.max(0,e),1),this.checkTrim()}get(e,t=n.AsNew){return super.get(e,t)}peek(e){return super.get(e,n.None)}set(e,t){return super.set(e,t,n.Last),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}}})),Ept=a((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.Disposable=void 0;var t;(function(e){function t(e){return{dispose:e}}e.create=t})(t||(e.Disposable=t={}))})),IV=a((e=>{Object.defineProperty(e,`__esModule`,{value:!0});var t;function n(){if(t===void 0)throw Error(`No runtime abstraction layer installed`);return t}(function(e){function n(e){if(e===void 0)throw Error(`No runtime abstraction layer provided`);t=e}e.install=n})(n||(n={})),e.default=n})),LV=a((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.Emitter=e.Event=void 0;var t=IV(),n;(function(e){let t={dispose(){}};e.None=function(){return t}})(n||(e.Event=n={}));var r=class{add(e,t=null,n){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(e),this._contexts.push(t),Array.isArray(n)&&n.push({dispose:()=>this.remove(e,t)})}remove(e,t=null){if(!this._callbacks)return;let n=!1;for(let r=0,i=this._callbacks.length;r<i;r++)if(this._callbacks[r]===e)if(this._contexts[r]===t){this._callbacks.splice(r,1),this._contexts.splice(r,1);return}else n=!0;if(n)throw Error(`When adding a listener with a context, you should remove it with the same context`)}invoke(...e){if(!this._callbacks)return[];let n=[],r=this._callbacks.slice(0),i=this._contexts.slice(0);for(let a=0,o=r.length;a<o;a++)try{n.push(r[a].apply(i[a],e))}catch(e){(0,t.default)().console.error(e)}return n}isEmpty(){return!this._callbacks||this._callbacks.length===0}dispose(){this._callbacks=void 0,this._contexts=void 0}},i=class e{constructor(e){this._options=e}get event(){return this._event||(this._event=(t,n,i)=>{this._callbacks||(this._callbacks=new r),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(t,n);let a={dispose:()=>{this._callbacks&&(this._callbacks.remove(t,n),a.dispose=e._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(i)&&i.push(a),a}),this._event}fire(e){this._callbacks&&this._callbacks.invoke.call(this._callbacks,e)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}};e.Emitter=i,i._noop=function(){}})),RV=a((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.CancellationTokenSource=e.CancellationToken=void 0;var t=IV(),n=FV(),r=LV(),i;(function(e){e.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:r.Event.None}),e.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:r.Event.None});function t(t){let r=t;return r&&(r===e.None||r===e.Cancelled||n.boolean(r.isCancellationRequested)&&!!r.onCancellationRequested)}e.is=t})(i||(e.CancellationToken=i={}));var a=Object.freeze(function(e,n){let r=(0,t.default)().timer.setTimeout(e.bind(n),0);return{dispose(){r.dispose()}}}),o=class{constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?a:(this._emitter||(this._emitter=new r.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}};e.CancellationTokenSource=class{get token(){return this._token||(this._token=new o),this._token}cancel(){this._token?this._token.cancel():this._token=i.Cancelled}dispose(){this._token?this._token instanceof o&&this._token.dispose():this._token=i.None}}})),Dpt=a((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.SharedArrayReceiverStrategy=e.SharedArraySenderStrategy=void 0;var t=RV(),n;(function(e){e.Continue=0,e.Cancelled=1})(n||(n={})),e.SharedArraySenderStrategy=class{constructor(){this.buffers=new Map}enableCancellation(e){if(e.id===null)return;let t=new SharedArrayBuffer(4),r=new Int32Array(t,0,1);r[0]=n.Continue,this.buffers.set(e.id,t),e.$cancellationData=t}async sendCancellation(e,t){let r=this.buffers.get(t);if(r===void 0)return;let i=new Int32Array(r,0,1);Atomics.store(i,0,n.Cancelled)}cleanup(e){this.buffers.delete(e)}dispose(){this.buffers.clear()}};var r=class{constructor(e){this.data=new Int32Array(e,0,1)}get isCancellationRequested(){return Atomics.load(this.data,0)===n.Cancelled}get onCancellationRequested(){throw Error(`Cancellation over SharedArrayBuffer doesn't support cancellation events`)}},i=class{constructor(e){this.token=new r(e)}cancel(){}dispose(){}};e.SharedArrayReceiverStrategy=class{constructor(){this.kind=`request`}createCancellationTokenSource(e){let n=e.$cancellationData;return n===void 0?new t.CancellationTokenSource:new i(n)}}})),Opt=a((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.Semaphore=void 0;var t=IV();e.Semaphore=class{constructor(e=1){if(e<=0)throw Error(`Capacity must be greater than 0`);this._capacity=e,this._active=0,this._waiting=[]}lock(e){return new Promise((t,n)=>{this._waiting.push({thunk:e,resolve:t,reject:n}),this.runNext()})}get active(){return this._active}runNext(){this._waiting.length===0||this._active===this._capacity||(0,t.default)().timer.setImmediate(()=>this.doRunNext())}doRunNext(){if(this._waiting.length===0||this._active===this._capacity)return;let e=this._waiting.shift();if(this._active++,this._active>this._capacity)throw Error(`To many thunks active`);try{let t=e.thunk();t instanceof Promise?t.then(t=>{this._active--,e.resolve(t),this.runNext()},t=>{this._active--,e.reject(t),this.runNext()}):(this._active--,e.resolve(t),this.runNext())}catch(t){this._active--,e.reject(t),this.runNext()}}}})),kpt=a((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.ReadableStreamMessageReader=e.AbstractMessageReader=e.MessageReader=void 0;var t=IV(),n=FV(),r=LV(),i=Opt(),a;(function(e){function t(e){let t=e;return t&&n.func(t.listen)&&n.func(t.dispose)&&n.func(t.onError)&&n.func(t.onClose)&&n.func(t.onPartialMessage)}e.is=t})(a||(e.MessageReader=a={}));var o=class{constructor(){this.errorEmitter=new r.Emitter,this.closeEmitter=new r.Emitter,this.partialMessageEmitter=new r.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e){this.errorEmitter.fire(this.asError(e))}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}get onPartialMessage(){return this.partialMessageEmitter.event}firePartialMessage(e){this.partialMessageEmitter.fire(e)}asError(e){return e instanceof Error?e:Error(`Reader received error. Reason: ${n.string(e.message)?e.message:`unknown`}`)}};e.AbstractMessageReader=o;var s;(function(e){function n(e){let n,r,i=new Map,a,o=new Map;if(e===void 0||typeof e==`string`)n=e??`utf-8`;else{if(n=e.charset??`utf-8`,e.contentDecoder!==void 0&&(r=e.contentDecoder,i.set(r.name,r)),e.contentDecoders!==void 0)for(let t of e.contentDecoders)i.set(t.name,t);if(e.contentTypeDecoder!==void 0&&(a=e.contentTypeDecoder,o.set(a.name,a)),e.contentTypeDecoders!==void 0)for(let t of e.contentTypeDecoders)o.set(t.name,t)}return a===void 0&&(a=(0,t.default)().applicationJson.decoder,o.set(a.name,a)),{charset:n,contentDecoder:r,contentDecoders:i,contentTypeDecoder:a,contentTypeDecoders:o}}e.fromOptions=n})(s||(s={})),e.ReadableStreamMessageReader=class extends o{constructor(e,n){super(),this.readable=e,this.options=s.fromOptions(n),this.buffer=(0,t.default)().messageBuffer.create(this.options.charset),this._partialMessageTimeout=1e4,this.nextMessageLength=-1,this.messageToken=0,this.readSemaphore=new i.Semaphore(1)}set partialMessageTimeout(e){this._partialMessageTimeout=e}get partialMessageTimeout(){return this._partialMessageTimeout}listen(e){this.nextMessageLength=-1,this.messageToken=0,this.partialMessageTimer=void 0,this.callback=e;let t=this.readable.onData(e=>{this.onData(e)});return this.readable.onError(e=>this.fireError(e)),this.readable.onClose(()=>this.fireClose()),t}onData(e){try{for(this.buffer.append(e);;){if(this.nextMessageLength===-1){let e=this.buffer.tryReadHeaders(!0);if(!e)return;let t=e.get(`content-length`);if(!t){this.fireError(Error(`Header must provide a Content-Length property.\n${JSON.stringify(Object.fromEntries(e))}`));return}let n=parseInt(t);if(isNaN(n)){this.fireError(Error(`Content-Length value must be a number. Got ${t}`));return}this.nextMessageLength=n}let e=this.buffer.tryReadBody(this.nextMessageLength);if(e===void 0){this.setPartialMessageTimer();return}this.clearPartialMessageTimer(),this.nextMessageLength=-1,this.readSemaphore.lock(async()=>{let t=this.options.contentDecoder===void 0?e:await this.options.contentDecoder.decode(e),n=await this.options.contentTypeDecoder.decode(t,this.options);this.callback(n)}).catch(e=>{this.fireError(e)})}}catch(e){this.fireError(e)}}clearPartialMessageTimer(){this.partialMessageTimer&&(this.partialMessageTimer.dispose(),this.partialMessageTimer=void 0)}setPartialMessageTimer(){this.clearPartialMessageTimer(),!(this._partialMessageTimeout<=0)&&(this.partialMessageTimer=(0,t.default)().timer.setTimeout((e,t)=>{this.partialMessageTimer=void 0,e===this.messageToken&&(this.firePartialMessage({messageToken:e,waitingTime:t}),this.setPartialMessageTimer())},this._partialMessageTimeout,this.messageToken,this._partialMessageTimeout))}}})),Apt=a((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.WriteableStreamMessageWriter=e.AbstractMessageWriter=e.MessageWriter=void 0;var t=IV(),n=FV(),r=Opt(),i=LV(),a=`Content-Length: `,o=`\r
|
|
1089
|
+
`)?(0,dV.jsx)(pft,{}):typeof r.content==`string`&&xJt(r.content)?(0,dV.jsx)(Q,{height:1,children:(0,dV.jsxs)(z,{dimColor:!0,children:[`Denied by auto mode classifier `,`∙`,` /feedback if incorrect`]})}):t?.renderToolUseErrorMessage?.(r.content,{progressMessagesForMessage:gc(e),tools:n,verbose:i,isTranscriptMode:a})??(0,dV.jsx)(HR,{result:r.content,verbose:i})}var dV,gft=n((()=>{R(),Rn(),Tt(),Sc(),i3(),WR(),qR(),OT(),fft(),mft(),dV=jt()}));function _ft({input:e,progressMessagesForMessage:t,style:n,tool:r,tools:i,verbose:a,isTranscriptMode:o}){let{columns:s}=ct(),[c]=_t();if(!r||!r.renderToolUseRejectedMessage)return(0,fV.jsx)(JR,{});let l=r.inputSchema.safeParse(e);return l.success?r.renderToolUseRejectedMessage(l.data,{columns:s,messages:[],tools:i,verbose:a,progressMessagesForMessage:gc(t),style:n,theme:c,isTranscriptMode:o})??(0,fV.jsx)(JR,{}):(0,fV.jsx)(JR,{})}var fV,vft=n((()=>{R(),kT(),Tt(),Sc(),YR(),fV=jt()}));function yft({message:e,lookups:t,toolUseID:n,progressMessagesForMessage:r,style:i,tool:a,tools:o,verbose:s,width:c,isTranscriptMode:l,shouldCollapseDiffs:u}){let[d]=_t(),f=FO(e=>e.isBriefOnly),[p]=pV.useState(()=>void 0),[m]=pV.useState(()=>ist(n));if(pV.useEffect(()=>{cst(n)},[n]),!e.toolUseResult||!a)return null;let h=a.outputSchema?.safeParse(e.toolUseResult);if(h&&!h.success)return null;let g=h?.data??e.toolUseResult,_=u&&!s?`condensed`:i,v=a.renderToolResultMessage?.(g,gc(r),{style:_,theme:d,tools:o,verbose:s,isTranscriptMode:l,isBriefOnly:f,input:t.toolUseByToolUseID.get(n)?.input})??null;return v===null?null:(0,mV.jsxs)(B,{flexDirection:`column`,children:[(0,mV.jsxs)(B,{flexDirection:`column`,width:a.userFacingName(void 0)===``?void 0:c,children:[v,null,m&&(0,mV.jsx)(Q,{height:1,children:(0,mV.jsx)(z,{dimColor:!0,children:`Allowed by auto mode classifier`})})]}),(0,mV.jsx)(Gfe,{children:(0,mV.jsx)(mst,{hookEvent:`PostToolUse`,lookups:t,toolUseID:n,verbose:s,isTranscriptMode:l})})]})}var pV,mV,bft=n((()=>{pV=r(R(),1),Wfe(),Tt(),UO(),Sc(),Sz(),OT(),hst(),mV=jt()}));function xft(e,t,n){return(0,Sft.useMemo)(()=>{let r=n.toolUseByToolUseID.get(e);if(!r)return null;let i=rl(t,r.name);return i?{tool:i,toolUse:r}:null},[e,n,t])}var Sft,Cft=n((()=>{Sft=r(R(),1),Sc()}));function wft({param:e,message:t,lookups:n,progressMessagesForMessage:r,style:i,tools:a,verbose:o,width:s,isTranscriptMode:c,shouldCollapseDiffs:l}){let u=xft(e.tool_use_id,a,n);return u?typeof e.content==`string`&&e.content.startsWith(`The user doesn't want to take this action right now. STOP what you are doing and wait for the user to tell you how to proceed.`)?(0,hV.jsx)(lft,{}):typeof e.content==`string`&&e.content.startsWith(`The user doesn't want to proceed with this tool use. The tool use was rejected (eg. if it was a file edit, the new_string was NOT written to the file). STOP what you are doing and wait for the user to tell you how to proceed.`)||e.content===`[Request interrupted by user for tool use]`?(0,hV.jsx)(_ft,{input:u.toolUse.input,progressMessagesForMessage:r,tool:u.tool,tools:a,lookups:n,style:i,verbose:o,isTranscriptMode:c}):e.is_error?(0,hV.jsx)(hft,{progressMessagesForMessage:r,tool:u.tool,tools:a,param:e,verbose:o,isTranscriptMode:c}):(0,hV.jsx)(yft,{message:t,lookups:n,toolUseID:u.toolUse.id,progressMessagesForMessage:r,style:i,tool:u.tool,tools:a,verbose:o,width:s,isTranscriptMode:c,shouldCollapseDiffs:l}):null}var hV,Tft=n((()=>{R(),i3(),uft(),gft(),vft(),bft(),Cft(),hV=jt()}));function gV({children:e}){"use no memo";let t=(0,_V.useContext)(mT),[n,{isVisible:r}]=Jee(),i=(0,_V.useRef)(e);return(r||t)&&(i.current=e),(0,Eft.jsx)(B,{ref:n,children:i.current})}var _V,Eft,vV=n((()=>{_V=r(R(),1),Tt(),hT(),Eft=jt()}));function Dft({message:e,lookups:t,containerWidth:n,addMargin:r,tools:i,commands:a,verbose:o,inProgressToolUseIDs:s,progressMessagesForMessage:c,shouldAnimate:l,shouldShowDot:u,style:d,width:f,isTranscriptMode:p,onOpenRateLimitOptions:m,isActiveCollapsedGroup:h,isUserContinuation:g=!1,lastThinkingBlockId:_,latestBashOutputUUID:v,shouldCollapseDiffs:y}){switch(e.type){case`attachment`:return(0,yV.jsx)(jdt,{addMargin:r,attachment:e.attachment,verbose:o,isTranscriptMode:p});case`assistant`:return(0,yV.jsx)(B,{flexDirection:`column`,width:n??`100%`,children:e.message.content.map((n,d)=>(0,yV.jsx)(kft,{param:n,addMargin:r,tools:i,commands:a,verbose:o,inProgressToolUseIDs:s,progressMessagesForMessage:c,shouldAnimate:l,shouldShowDot:u,width:f,inProgressToolCallCount:s.size,isTranscriptMode:p,lookups:t,onOpenRateLimitOptions:m,thinkingBlockId:`${e.uuid}:${d}`,lastThinkingBlockId:_,advisorModel:e.advisorModel},d))});case`user`:{if(e.isCompactSummary)return(0,yV.jsx)($at,{message:e,screen:p?`transcript`:`prompt`});let a=[],s=0;for(let t of e.message.content)if(t.type===`image`){let t=e.imagePasteIds?.[s];s++,a.push(t??s)}else a.push(s);let l=v===e.uuid,u=(0,yV.jsx)(B,{flexDirection:`column`,width:n??`100%`,children:e.message.content.map((n,s)=>(0,yV.jsx)(Oft,{message:e,addMargin:r,tools:i,progressMessagesForMessage:c,param:n,style:d,verbose:o,imageIndex:a[s],isUserContinuation:g,lookups:t,isTranscriptMode:p,shouldCollapseDiffs:y},s))});return l?(0,yV.jsx)(vUe,{children:u}):u}case`system`:return e.subtype===`compact_boundary`?Ck()?null:(0,yV.jsx)(Wdt,{}):e.subtype===`microcompact_boundary`?null:e.subtype===`local_command`?(0,yV.jsx)(HB,{addMargin:r,param:{type:`text`,text:String(e.content??``)},verbose:o,isTranscriptMode:p}):(0,yV.jsx)(eft,{message:e,addMargin:r,verbose:o,isTranscriptMode:p});case`grouped_tool_use`:return(0,yV.jsx)(Kdt,{message:e,tools:i,lookups:t,inProgressToolUseIDs:s,shouldAnimate:l});case`collapsed_read_search`:return(0,yV.jsx)(gV,{children:(0,yV.jsx)(Vdt,{message:e,inProgressToolUseIDs:s,shouldAnimate:l,verbose:o||p,tools:i,lookups:t,isActiveGroup:h})})}}function Oft({message:e,addMargin:t,tools:n,progressMessagesForMessage:r,param:i,style:a,verbose:o,imageIndex:s,isUserContinuation:c,lookups:l,isTranscriptMode:u,shouldCollapseDiffs:d}){let{columns:f}=ct();switch(i.type){case`text`:return(0,yV.jsx)(HB,{addMargin:t,param:i,verbose:o,planContent:e.planContent,isTranscriptMode:u,timestamp:e.timestamp});case`image`:return(0,yV.jsx)(kdt,{imageId:s,addMargin:t&&!c});case`tool_result`:return(0,yV.jsx)(wft,{param:i,message:e,lookups:l,progressMessagesForMessage:r,style:a,tools:n,verbose:o,width:f-5,isTranscriptMode:u,shouldCollapseDiffs:d});default:return}}function kft({param:e,addMargin:t,tools:n,commands:r,verbose:i,inProgressToolUseIDs:a,progressMessagesForMessage:o,shouldAnimate:s,shouldShowDot:c,width:l,inProgressToolCallCount:u,isTranscriptMode:d,lookups:f,onOpenRateLimitOptions:p,thinkingBlockId:m,lastThinkingBlockId:h,advisorModel:g}){if(Pf(e))return(0,yV.jsx)(Zot,{param:{type:`text`,text:e.connector_text},addMargin:t,shouldShowDot:c,verbose:i,width:l,onOpenRateLimitOptions:p});switch(e.type){case`tool_use`:return(0,yV.jsx)(gst,{param:e,addMargin:t,tools:n,commands:r,verbose:i,inProgressToolUseIDs:a,progressMessagesForMessage:o,shouldAnimate:s,shouldShowDot:c,inProgressToolCallCount:u,lookups:f,isTranscriptMode:d});case`text`:return(0,yV.jsx)(Zot,{param:e,addMargin:t,shouldShowDot:c,verbose:i,width:l,onOpenRateLimitOptions:p});case`redacted_thinking`:return!d&&!i?null:(0,yV.jsx)(sot,{addMargin:t});case`thinking`:return!d&&!i?null:(0,yV.jsx)(tst,{addMargin:t,param:e,isTranscriptMode:d,verbose:i,hideInTranscript:d&&!(!h||m===h)});case`server_tool_use`:case`advisor_tool_result`:return Kat(e)?(0,yV.jsx)(aot,{block:e,addMargin:t,resolvedToolUseIDs:f.resolvedToolUseIDs,erroredToolUseIDs:f.erroredToolUseIDs,shouldAnimate:s,verbose:i||d,advisorModel:g}):(q(Error(`Unable to render server tool block: ${e.type}`)),null);default:return q(Error(`Unable to render message type: ${e.type}`)),null}}function Aft(e){return e.type!==`assistant`||!e.message?!1:e.message.content.some(e=>e.type===`thinking`||e.type===`redacted_thinking`)}function jft(e,t){return e.message.uuid!==t.message.uuid||e.lastThinkingBlockId!==t.lastThinkingBlockId&&Aft(t.message)||e.verbose!==t.verbose||e.latestBashOutputUUID===e.message.uuid!=(t.latestBashOutputUUID===t.message.uuid)||e.isTranscriptMode!==t.isTranscriptMode||e.containerWidth!==t.containerWidth?!1:!!(e.isStatic&&t.isStatic)}var Mft,yV,bV,xV=n((()=>{Mft=r(R(),1),kT(),Tt(),Ff(),$R(),Dk(),Ao(),eot(),oot(),lot(),est(),nst(),xst(),Fdt(),Udt(),Gdt(),qdt(),cft(),Adt(),WB(),Tft(),vV(),wUe(),yV=jt(),bV=Mft.memo(Dft,jft)}));function Nft(e){if(`status`in e&&e.status===`forked`)return(0,CV.jsx)(Q,{height:1,children:(0,CV.jsx)(z,{children:(0,CV.jsx)(St,{children:[`Done`]})})});let t=[`Successfully loaded skill`];if(`allowedTools`in e&&e.allowedTools&&e.allowedTools.length>0){let n=e.allowedTools.length;t.push(`${n} ${mr(n,`tool`)} allowed`)}return`model`in e&&e.model&&t.push(e.model),(0,CV.jsx)(Q,{height:1,children:(0,CV.jsx)(z,{children:(0,CV.jsx)(St,{children:t})})})}function Pft({skill:e},{commands:t}){return e?t?.find(t=>t.name===e)?.loadedFrom===`commands_DEPRECATED`?`/${e}`:e:null}function SV(e,{tools:t,verbose:n}){if(!e.length)return(0,CV.jsx)(Q,{height:1,children:(0,CV.jsx)(z,{dimColor:!0,children:Rft})});let r=n?e:e.slice(-Lft),i=e.length-r.length,{inProgressToolUseIDs:a}=v4(e.map(e=>e.data));return(0,CV.jsx)(Q,{children:(0,CV.jsxs)(B,{flexDirection:`column`,children:[(0,CV.jsx)(gT,{children:r.map(e=>(0,CV.jsx)(B,{height:1,overflow:`hidden`,children:(0,CV.jsx)(bV,{message:e.data.message,lookups:t3,addMargin:!1,tools:t,commands:[],verbose:n,inProgressToolUseIDs:a,progressMessagesForMessage:[],shouldAnimate:!1,shouldShowDot:!1,style:`condensed`,isTranscriptMode:!1,isStatic:!0})},e.uuid))}),i>0&&(0,CV.jsxs)(z,{dimColor:!0,children:[`+`,i,` more tool `,mr(i,`use`)]})]})})}function Fft(e,{progressMessagesForMessage:t,tools:n,verbose:r}){return(0,CV.jsxs)(CV.Fragment,{children:[SV(t,{tools:n,verbose:r}),(0,CV.jsx)(JR,{})]})}function Ift(e,{progressMessagesForMessage:t,tools:n,verbose:r}){return(0,CV.jsxs)(CV.Fragment,{children:[SV(t,{tools:n,verbose:r}),(0,CV.jsx)(HR,{result:e,verbose:r})]})}var CV,Lft,Rft,zft=n((()=>{R(),xT(),WR(),YR(),Tt(),xV(),OT(),i3(),Di(),CV=jt(),Lft=3,Rft=`Initializing…`})),Bft=i({getDiscoveredRemoteSkill:()=>Hft,stripCanonicalPrefix:()=>Vft});function Vft(e){return null}function Hft(e){}var Uft=n((()=>{})),Wft=i({loadRemoteSkill:()=>Gft});function Gft(e,t){return Promise.resolve({cacheHit:!1,latencyMs:0,skillPath:``,content:``})}var Kft=n((()=>{})),qft=i({logRemoteSkillLoaded:()=>Jft});function Jft(e){}var Yft=n((()=>{})),wV=i({isSkillSearchCompiledIn:()=>Xft,isSkillSearchEnabled:()=>TV});function Xft(){return!0}function TV(){return process.env.SKILL_SEARCH_ENABLED===`1`}var EV=n((()=>{}));async function DV(e){let t=e.getAppState().mcp.commands.filter(e=>e.type===`prompt`&&e.loadedFrom===`mcp`);return t.length===0?F6(hn()):ti([...await F6(hn()),...t],`name`)}async function Zft(e,t,n,r,i,a,o){let s=Date.now(),c=SP(),l=e8().has(t),u=$ft(e),d=e.source===`bundled`,f=l||d||u?t:`custom`,p=OV.isSkillSearchEnabled()?{was_discovered:r.discoveredSkillNames?.has(t)??!1}:{},m=e.pluginInfo?sl(e.pluginInfo.repository).marketplace:void 0,h=r.queryTracking?.depth??0,g=yn()?.agentId;G(`tengu_skill_tool_invocation`,{command_name:f,_PROTO_skill_name:t,execution_context:`fork`,invocation_trigger:h>0?`nested-skill`:`claude-proactive`,query_depth:h,...g&&{parent_agent_id:g},...p,...process.env.USER_TYPE===`ant`&&{skill_name:t,skill_source:e.source,...e.loadedFrom&&{skill_loaded_from:e.loadedFrom},...e.kind&&{skill_kind:e.kind}},...e.pluginInfo&&{_PROTO_plugin_name:e.pluginInfo.pluginManifest.name,...m&&{_PROTO_marketplace_name:m},plugin_name:u?e.pluginInfo.pluginManifest.name:`third-party`,plugin_repository:u?e.pluginInfo.repository:`third-party`,...vP(e.pluginInfo)}});let{modifiedGetAppState:_,baseAgent:v,promptMessages:y,skillContent:b}=await JBt(e,n||``,r),x=e.effort===void 0?v:{...v,effort:e.effort},S=[];U(`SkillTool executing forked skill ${t} with agent ${x.agentType}`);try{for await(let t of BR({agentDefinition:x,promptMessages:y,toolUseContext:{...r,getAppState:_},canUseTool:i,isAsync:!1,querySource:`agent:custom`,model:e.model,availableTools:r.options.tools,override:{agentId:c}}))if(S.push(t),(t.type===`assistant`||t.type===`user`)&&o){let e=g4([t]);for(let t of e){let e=t.message?.content;Array.isArray(e)&&e.some(e=>e.type===`tool_use`||e.type===`tool_result`)&&o({toolUseID:`skill_${a.message.id}`,data:{message:t,type:`skill_progress`,prompt:b,agentId:c}})}}let n=YBt(S,`Skill execution completed`);return S.length=0,U(`SkillTool forked skill ${t} completed in ${Date.now()-s}ms`),{data:{success:!0,commandName:t,status:`forked`,agentId:c,result:n}}}finally{rn(c)}}function Qft(e){for(let t of Object.keys(e)){if(ipt.has(t))continue;let n=e[t];if(n!=null&&!(Array.isArray(n)&&n.length===0)&&!(typeof n==`object`&&!Array.isArray(n)&&Object.keys(n).length===0))return!1}return!0}function $ft(e){return e.source!==`plugin`||!e.pluginInfo?.repository?!1:al(sl(e.pluginInfo.repository).marketplace)}function ept(e){return e.startsWith(`gs://`)?`gs`:e.startsWith(`https://`)?`https`:e.startsWith(`http://`)?`http`:e.startsWith(`s3://`)?`s3`:`gs`}async function tpt(e,t,n,r){let{getDiscoveredRemoteSkill:i,loadRemoteSkill:a,logRemoteSkillLoaded:o}=OV,s=i(e);if(!s)throw Error(`Remote skill ${e} was not discovered in this session. Use DiscoverSkills to find remote skills first.`);let c=ept(s.url),l;try{l=await a(e,s.url)}catch(t){let n=H(t);throw o({slug:e,cacheHit:!1,latencyMs:0,urlScheme:c,error:n}),Error(`Failed to load remote skill ${e}: ${n}`)}let{cacheHit:u,latencyMs:d,skillPath:f,content:p,fileCount:m,totalBytes:h,fetchMethod:g}=l;o({slug:e,cacheHit:u,latencyMs:d,urlScheme:c,fileCount:m,totalBytes:h,fetchMethod:g});let _=r.queryTracking?.depth??0,v=yn()?.agentId;G(`tengu_skill_tool_invocation`,{command_name:`remote_skill`,_PROTO_skill_name:t,execution_context:`remote`,invocation_trigger:_>0?`nested-skill`:`claude-proactive`,query_depth:_,...v&&{parent_agent_id:v},was_discovered:!0,is_remote:!0,remote_cache_hit:u,remote_load_latency_ms:d,...process.env.USER_TYPE===`ant`&&{skill_name:t,remote_slug:e}}),bP(t),U(`SkillTool loaded remote skill ${e} (cacheHit=${u}, ${d}ms, ${p.length} chars)`);let{content:y}=Sf(p,f),b=Eu(f),x=process.platform===`win32`?b.replace(/\\/g,`/`):b,S=`Base directory for this skill: ${x}\n\n${y}`;S=S.replace(/\$\{CLAUDE_SKILL_DIR\}/g,x),S=S.replace(/\$\{CLAUDE_SESSION_ID\}/g,Ft()),Nne(t,f,S,yn()?.agentId??null);let C=Bat(n,Lc);return{data:{success:!0,commandName:t,status:`inline`},newMessages:zat([d4({content:S,isMeta:!0})],C)}}var OV,npt,rpt,kV,ipt,apt=n((()=>{ga(),tn(),s8(),Sc(),W(),P9(),ol(),yP(),it(),Eo(),Ua(),ia(),ka(),E$(),Of(),Fs(),i3(),hr(),n9e(),CP(),VR(),Vat(),uc(),hh(),zft(),OV={...(Uft(),e(Bft)),...(Kft(),e(Wft)),...(Yft(),e(qft)),...(EV(),e(wV))},npt=J(()=>L({skill:F().describe(`The skill name. E.g., "commit", "review-pr", or "pdf"`),args:F().optional().describe(`Optional arguments for the skill`)})),rpt=J(()=>Be([L({success:We().describe(`Whether the skill is valid`),commandName:F().describe(`The name of the skill`),allowedTools:Re(F()).optional().describe(`Tools allowed by this skill`),model:F().optional().describe(`Model override if specified`),status:I(`inline`).optional().describe(`Execution status`)}),L({success:We().describe(`Whether the skill completed successfully`),commandName:F().describe(`The name of the skill`),status:I(`forked`).describe(`Execution status`),agentId:F().describe(`The ID of the sub-agent that executed the skill`),result:F().describe(`The result from the forked skill execution`)})])),kV=sc({name:Lc,searchHint:`invoke a slash-command skill`,maxResultSizeChars:1e5,get inputSchema(){return npt()},get outputSchema(){return rpt()},description:async({skill:e})=>`Execute skill: ${e}`,prompt:async()=>mh(hn()),toAutoClassifierInput:({skill:e})=>e??``,async validateInput({skill:e},t){let n=e.trim();if(!n)return{result:!1,message:`Invalid skill format: ${e}`,errorCode:1};let r=n.startsWith(`/`);r&&G(`tengu_skill_tool_slash_prefix`,{});let i=r?n.substring(1):n;if(process.env.USER_TYPE===`ant`){let e=OV.stripCanonicalPrefix(i);if(e!==null)return OV.getDiscoveredRemoteSkill(e)?{result:!0}:{result:!1,message:`Remote skill ${e} was not discovered in this session. Use DiscoverSkills to find remote skills first.`,errorCode:6}}let a=I6(i,await DV(t));return a?a.disableModelInvocation?{result:!1,message:`Skill ${i} cannot be used with ${Lc} tool due to disable-model-invocation`,errorCode:4}:a.type===`prompt`?{result:!0}:{result:!1,message:`Skill ${i} is not a prompt-based skill`,errorCode:5}:{result:!1,message:`Unknown skill: ${i}`,errorCode:2}},async checkPermissions({skill:e,args:t},n){let r=e.trim(),i=r.startsWith(`/`)?r.substring(1):r,a=n.getAppState().toolPermissionContext,o=I6(i,await DV(n)),s=e=>{let t=e.startsWith(`/`)?e.substring(1):e;if(t===i)return!0;if(t.endsWith(`:*`)){let e=t.slice(0,-2);return i.startsWith(e)}return!1},c=k9(a,kV,`deny`);for(let[e,t]of c.entries())if(s(e))return{behavior:`deny`,message:`Skill execution blocked by permission rules`,decisionReason:{type:`rule`,rule:t}};if(process.env.USER_TYPE===`ant`&&OV.stripCanonicalPrefix(i)!==null)return{behavior:`allow`,updatedInput:{skill:e,args:t},decisionReason:void 0};let l=k9(a,kV,`allow`);for(let[n,r]of l.entries())if(s(n))return{behavior:`allow`,updatedInput:{skill:e,args:t},decisionReason:{type:`rule`,rule:r}};if(o?.type===`prompt`&&Qft(o))return{behavior:`allow`,updatedInput:{skill:e,args:t},decisionReason:void 0};let u=[{type:`addRules`,rules:[{toolName:Lc,ruleContent:i}],behavior:`allow`,destination:`localSettings`},{type:`addRules`,rules:[{toolName:Lc,ruleContent:`${i}:*`}],behavior:`allow`,destination:`localSettings`}];return{behavior:`ask`,message:`Execute skill: ${i}`,decisionReason:void 0,suggestions:u,updatedInput:{skill:e,args:t},metadata:o?{command:o}:void 0}},async call({skill:e,args:t},n,r,i,a){let o=e.trim(),s=o.startsWith(`/`)?o.substring(1):o;if(process.env.USER_TYPE===`ant`){let e=OV.stripCanonicalPrefix(s);if(e!==null)return tpt(e,s,i,n)}let c=await DV(n),l=I6(s,c);if(bP(s),l?.type===`prompt`&&l.context===`fork`)return Zft(l,s,t,n,r,i,a);let{processPromptSlashCommand:u}=await import(`./processSlashCommand-DyPCeZux.js`),d=await u(s,t||``,c,n);if(!d.shouldQuery)throw Error(`Command processing failed`);let f=d.allowedTools||[],p=d.model,m=l?.type===`prompt`?l.effort:void 0,h=e8().has(s),g=l?.type===`prompt`&&l.source===`bundled`,_=l?.type===`prompt`&&$ft(l),v=h||g||_?s:`custom`,y=OV.isSkillSearchEnabled()?{was_discovered:n.discoveredSkillNames?.has(s)??!1}:{},b=l?.type===`prompt`&&l.pluginInfo?sl(l.pluginInfo.repository).marketplace:void 0,x=n.queryTracking?.depth??0,S=yn()?.agentId;G(`tengu_skill_tool_invocation`,{command_name:v,_PROTO_skill_name:s,execution_context:`inline`,invocation_trigger:x>0?`nested-skill`:`claude-proactive`,query_depth:x,...S&&{parent_agent_id:S},...y,...process.env.USER_TYPE===`ant`&&{skill_name:s,...l?.type===`prompt`&&{skill_source:l.source},...l?.loadedFrom&&{skill_loaded_from:l.loadedFrom},...l?.kind&&{skill_kind:l.kind}},...l?.type===`prompt`&&l.pluginInfo&&{_PROTO_plugin_name:l.pluginInfo.pluginManifest.name,...b&&{_PROTO_marketplace_name:b},plugin_name:_?l.pluginInfo.pluginManifest.name:`third-party`,plugin_repository:_?l.pluginInfo.repository:`third-party`,...vP(l.pluginInfo)}});let C=Bat(i,Lc),w=zat(d.messages.filter(e=>{if(e.type===`progress`)return!1;if(e.type===`user`&&`message`in e){let t=e.message.content;if(typeof t==`string`&&t.includes(`<command-message>`))return!1}return!0}),C);return U(`SkillTool returning ${w.length} newMessages for skill ${s}`),{data:{success:!0,commandName:s,allowedTools:f.length>0?f:void 0,model:p},newMessages:w,contextModifier(e){let t=e;if(f.length>0){let e=t.getAppState;t={...t,getAppState(){let t=e();return{...t,toolPermissionContext:{...t.toolPermissionContext,alwaysAllowRules:{...t.toolPermissionContext.alwaysAllowRules,command:[...new Set([...t.toolPermissionContext.alwaysAllowRules.command||[],...f])]}}}}}}if(p&&(t={...t,options:{...t.options,mainLoopModel:Pie(p,e.options.mainLoopModel)}}),m!==void 0){let e=t.getAppState;t={...t,getAppState(){return{...e(),effortValue:m}}}}return t}}},mapToolResultToToolResultBlockParam(e,t){return`status`in e&&e.status===`forked`?{type:`tool_result`,tool_use_id:t,content:`Skill "${e.commandName}" completed (forked execution).\n\nResult:\n${e.result}`}:{type:`tool_result`,tool_use_id:t,content:`Launching skill: ${e.commandName}`}},renderToolResultMessage:Nft,renderToolUseMessage:Pft,renderToolUseProgressMessage:SV,renderToolUseRejectedMessage:Fft,renderToolUseErrorMessage:Ift}),ipt=new Set(`type.progressMessage.contentLength.argNames.model.effort.source.pluginInfo.disableNonInteractive.skillRoot.context.agent.getPromptForCommand.frontmatterKeys.name.description.hasUserSpecifiedDescription.isEnabled.isHidden.aliases.isMcp.argumentHint.whenToUse.paths.version.disableModelInvocation.userInvocable.loadedFrom.immediate.userFacingName`.split(`.`))}));function opt({serverName:e,files:t}){let n=od();U(`LSP Diagnostics: Registering ${t.length} diagnostic file(s) from ${e} (ID: ${n})`),MV.set(n,{serverName:e,files:t,timestamp:Date.now(),attachmentSent:!1})}function spt(e){switch(e){case`Error`:return 1;case`Warning`:return 2;case`Info`:return 3;case`Hint`:return 4;default:return 4}}function cpt(e){return V({message:e.message,severity:e.severity,range:e.range,source:e.source||null,code:e.code||null})}function lpt(e){let t=new Map,n=[];for(let r of e){t.has(r.uri)||(t.set(r.uri,new Set),n.push({uri:r.uri,diagnostics:[]}));let e=t.get(r.uri),i=n.find(e=>e.uri===r.uri),a=NV.get(r.uri)||new Set;for(let t of r.diagnostics)try{let n=cpt(t);if(e.has(n)||a.has(n))continue;e.add(n),i.diagnostics.push(t)}catch(e){let n=xa(e),a=t.message?.substring(0,100)||`<no message>`;q(Error(`Failed to deduplicate diagnostic in ${r.uri}: ${n.message}. Diagnostic message: ${a}`)),i.diagnostics.push(t)}}return n.filter(e=>e.diagnostics.length>0)}function upt(){U(`LSP Diagnostics: Checking registry - ${MV.size} pending`);let e=[],t=new Set,n=[];for(let r of MV.values())r.attachmentSent||(e.push(...r.files),t.add(r.serverName),n.push(r));if(e.length===0)return[];let r;try{r=lpt(e)}catch(t){let n=xa(t);q(Error(`Failed to deduplicate LSP diagnostics: ${n.message}`)),r=e}for(let e of n)e.attachmentSent=!0;for(let[e,t]of MV)t.attachmentSent&&MV.delete(e);let i=e.reduce((e,t)=>e+t.diagnostics.length,0),a=r.reduce((e,t)=>e+t.diagnostics.length,0);i>a&&U(`LSP Diagnostics: Deduplication removed ${i-a} duplicate diagnostic(s)`);let o=0,s=0;for(let e of r){e.diagnostics.sort((e,t)=>spt(e.severity)-spt(t.severity)),e.diagnostics.length>AV&&(s+=e.diagnostics.length-AV,e.diagnostics=e.diagnostics.slice(0,AV));let t=jV-o;e.diagnostics.length>t&&(s+=e.diagnostics.length-t,e.diagnostics=e.diagnostics.slice(0,t)),o+=e.diagnostics.length}r=r.filter(e=>e.diagnostics.length>0),s>0&&U(`LSP Diagnostics: Volume limiting removed ${s} diagnostic(s) (max ${AV}/file, ${jV} total)`);for(let e of r){NV.has(e.uri)||NV.set(e.uri,new Set);let t=NV.get(e.uri);for(let n of e.diagnostics)try{t.add(cpt(n))}catch(t){let r=xa(t),i=n.message?.substring(0,100)||`<no message>`;q(Error(`Failed to track delivered diagnostic in ${e.uri}: ${r.message}. Diagnostic message: ${i}`))}}let c=r.reduce((e,t)=>e+t.diagnostics.length,0);return c===0?(U(`LSP Diagnostics: No new diagnostics to deliver (all filtered by deduplication)`),[]):(U(`LSP Diagnostics: Delivering ${r.length} file(s) with ${c} diagnostic(s) from ${t.size} server(s)`),[{serverName:Array.from(t).join(`, `),files:r}])}function dpt(){U(`LSP Diagnostics: Clearing ${MV.size} pending diagnostic(s)`),MV.clear()}function fpt(){U(`LSP Diagnostics: Resetting all state (${MV.size} pending, ${NV.size} files tracked)`),MV.clear(),NV.clear()}function ppt(e){NV.has(e)&&(U(`LSP Diagnostics: Clearing delivered diagnostics for ${e}`),NV.delete(e))}var AV,jV,mpt,MV,NV,PV=n((()=>{Fo(),W(),ka(),Ao(),Va(),AV=10,jV=30,mpt=500,MV=new Map,NV=new Io({max:mpt})}));function hpt(e,t){let n=Nu(e),r=Nu(e,t),i=Mu(n,r);return i.startsWith(`..`)||Nu(i)===i?null:r}async function gpt(e,t=[]){let n={},r=Y(e.path,`.lsp.json`);try{let i=Da(await hd(r,`utf-8`)),a=Fe(F(),Si()).safeParse(i);if(a.success)Object.assign(n,a.data);else{let n=`LSP config validation failed for .lsp.json in plugin ${e.name}: ${a.error.message}`;q(Error(n)),t.push({type:`lsp-config-invalid`,plugin:e.name,serverName:`.lsp.json`,validationError:a.error.message,source:`plugin`})}}catch(n){Oa(n)||(n instanceof Error?`${e.name}${n.message}`:`${e.name}`,q(xa(n)),t.push({type:`lsp-config-invalid`,plugin:e.name,serverName:`.lsp.json`,validationError:n instanceof Error?`Failed to parse JSON: ${n.message}`:`Failed to parse JSON file`,source:`plugin`}))}if(e.manifest.lspServers){let r=await _pt(e.manifest.lspServers,e.path,e.name,t);r&&Object.assign(n,r)}return Object.keys(n).length>0?n:void 0}async function _pt(e,t,n,r){let i={},a=Array.isArray(e)?e:[e];for(let e of a)if(typeof e==`string`){let a=hpt(t,e);if(!a){let t=`Security: Path traversal attempt blocked in plugin ${n}: ${e}`;q(Error(t)),U(t,{level:`warn`}),r.push({type:`lsp-config-invalid`,plugin:n,serverName:e,validationError:`Invalid path: must be relative and within plugin directory`,source:`plugin`});continue}try{let t=Da(await hd(a,`utf-8`)),o=Fe(F(),Si()).safeParse(t);if(o.success)Object.assign(i,o.data);else{let t=`LSP config validation failed for ${e} in plugin ${n}: ${o.error.message}`;q(Error(t)),r.push({type:`lsp-config-invalid`,plugin:n,serverName:e,validationError:o.error.message,source:`plugin`})}}catch(t){t instanceof Error?`${e}${n}${t.message}`:`${e}${n}`,q(xa(t)),r.push({type:`lsp-config-invalid`,plugin:n,serverName:e,validationError:t instanceof Error?`Failed to parse JSON: ${t.message}`:`Failed to parse JSON file`,source:`plugin`})}}else for(let[t,a]of Object.entries(e)){let e=Si().safeParse(a);if(e.success)i[t]=e.data;else{let i=`LSP config validation failed for inline server "${t}" in plugin ${n}: ${e.error.message}`;q(Error(i)),r.push({type:`lsp-config-invalid`,plugin:n,serverName:t,validationError:e.error.message,source:`plugin`})}}return Object.keys(i).length>0?i:void 0}function vpt(e,t,n,r){let i=[],a=e=>{let r=UT(e,t);n&&(r=iGe(r,n));let{expanded:a,missingVars:o}=EWe(r);return i.push(...o),a},o={...e};o.command&&(o.command=a(o.command)),o.args&&(o.args=o.args.map(e=>a(e)));let s={CLAUDE_PLUGIN_ROOT:t.path,CLAUDE_PLUGIN_DATA:ch(t.source),...o.env||{}};for(let[e,t]of Object.entries(s))e!==`CLAUDE_PLUGIN_ROOT`&&e!==`CLAUDE_PLUGIN_DATA`&&(s[e]=a(t));if(o.env=s,o.workspaceFolder&&(o.workspaceFolder=a(o.workspaceFolder)),i.length>0){let e=`Missing environment variables in plugin LSP config: ${[...new Set(i)].join(`, `)}`;q(Error(e)),U(e,{level:`warn`})}return o}function ypt(e,t){let n={};for(let[r,i]of Object.entries(e)){let e=`plugin:${t}:${r}`;n[e]={...i,scope:`dynamic`,source:t}}return n}async function bpt(e,t=[]){if(!e.enabled)return;let n=e.lspServers||await gpt(e,t);if(!n)return;let r=e.manifest.userConfig?WT($We(e)):void 0,i={};for(let[a,o]of Object.entries(n))i[a]=vpt(o,e,r,t);return ypt(i,e.name)}var xpt=n((()=>{it(),DWe(),W(),ka(),Ao(),Va(),lh(),GT(),ma()}));async function Spt(){let e={};try{let{enabled:t}=await U2(),n=await Promise.all(t.map(async e=>{let t=[];try{return{plugin:e,scopedServers:await bpt(e,t),errors:t}}catch(n){return U(`Failed to load LSP servers for plugin ${e.name}: ${n}`,{level:`error`}),{plugin:e,scopedServers:void 0,errors:t}}}));for(let{plugin:t,scopedServers:r,errors:i}of n){let n=r?Object.keys(r).length:0;n>0&&(Object.assign(e,r),U(`Loaded ${n} LSP server(s) from plugin: ${t.name}`)),i.length>0&&U(`${i.length} error(s) loading LSP servers from plugin: ${t.name}`)}U(`Total LSP servers loaded: ${Object.keys(e).length}`)}catch(e){q(xa(e)),U(`Error loading LSP servers: ${H(e)}`)}return{servers:e}}var Cpt=n((()=>{W(),ka(),Ao(),xpt(),W2()})),FV=a((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.stringArray=e.array=e.func=e.error=e.number=e.string=e.boolean=void 0;function t(e){return e===!0||e===!1}e.boolean=t;function n(e){return typeof e==`string`||e instanceof String}e.string=n;function r(e){return typeof e==`number`||e instanceof Number}e.number=r;function i(e){return e instanceof Error}e.error=i;function a(e){return typeof e==`function`}e.func=a;function o(e){return Array.isArray(e)}e.array=o;function s(e){return o(e)&&e.every(e=>n(e))}e.stringArray=s})),wpt=a((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.Message=e.NotificationType9=e.NotificationType8=e.NotificationType7=e.NotificationType6=e.NotificationType5=e.NotificationType4=e.NotificationType3=e.NotificationType2=e.NotificationType1=e.NotificationType0=e.NotificationType=e.RequestType9=e.RequestType8=e.RequestType7=e.RequestType6=e.RequestType5=e.RequestType4=e.RequestType3=e.RequestType2=e.RequestType1=e.RequestType=e.RequestType0=e.AbstractMessageSignature=e.ParameterStructures=e.ResponseError=e.ErrorCodes=void 0;var t=FV(),n;(function(e){e.ParseError=-32700,e.InvalidRequest=-32600,e.MethodNotFound=-32601,e.InvalidParams=-32602,e.InternalError=-32603,e.jsonrpcReservedErrorRangeStart=-32099,e.serverErrorStart=-32099,e.MessageWriteError=-32099,e.MessageReadError=-32098,e.PendingResponseRejected=-32097,e.ConnectionInactive=-32096,e.ServerNotInitialized=-32002,e.UnknownErrorCode=-32001,e.jsonrpcReservedErrorRangeEnd=-32e3,e.serverErrorEnd=-32e3})(n||(e.ErrorCodes=n={})),e.ResponseError=class e extends Error{constructor(r,i,a){super(i),this.code=t.number(r)?r:n.UnknownErrorCode,this.data=a,Object.setPrototypeOf(this,e.prototype)}toJson(){let e={code:this.code,message:this.message};return this.data!==void 0&&(e.data=this.data),e}};var r=class e{constructor(e){this.kind=e}static is(t){return t===e.auto||t===e.byName||t===e.byPosition}toString(){return this.kind}};e.ParameterStructures=r,r.auto=new r(`auto`),r.byPosition=new r(`byPosition`),r.byName=new r(`byName`);var i=class{constructor(e,t){this.method=e,this.numberOfParams=t}get parameterStructures(){return r.auto}};e.AbstractMessageSignature=i,e.RequestType0=class extends i{constructor(e){super(e,0)}},e.RequestType=class extends i{constructor(e,t=r.auto){super(e,1),this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}},e.RequestType1=class extends i{constructor(e,t=r.auto){super(e,1),this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}},e.RequestType2=class extends i{constructor(e){super(e,2)}},e.RequestType3=class extends i{constructor(e){super(e,3)}},e.RequestType4=class extends i{constructor(e){super(e,4)}},e.RequestType5=class extends i{constructor(e){super(e,5)}},e.RequestType6=class extends i{constructor(e){super(e,6)}},e.RequestType7=class extends i{constructor(e){super(e,7)}},e.RequestType8=class extends i{constructor(e){super(e,8)}},e.RequestType9=class extends i{constructor(e){super(e,9)}},e.NotificationType=class extends i{constructor(e,t=r.auto){super(e,1),this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}},e.NotificationType0=class extends i{constructor(e){super(e,0)}},e.NotificationType1=class extends i{constructor(e,t=r.auto){super(e,1),this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}},e.NotificationType2=class extends i{constructor(e){super(e,2)}},e.NotificationType3=class extends i{constructor(e){super(e,3)}},e.NotificationType4=class extends i{constructor(e){super(e,4)}},e.NotificationType5=class extends i{constructor(e){super(e,5)}},e.NotificationType6=class extends i{constructor(e){super(e,6)}},e.NotificationType7=class extends i{constructor(e){super(e,7)}},e.NotificationType8=class extends i{constructor(e){super(e,8)}},e.NotificationType9=class extends i{constructor(e){super(e,9)}};var a;(function(e){function n(e){let n=e;return n&&t.string(n.method)&&(t.string(n.id)||t.number(n.id))}e.isRequest=n;function r(e){let n=e;return n&&t.string(n.method)&&e.id===void 0}e.isNotification=r;function i(e){let n=e;return n&&(n.result!==void 0||!!n.error)&&(t.string(n.id)||t.number(n.id)||n.id===null)}e.isResponse=i})(a||(e.Message=a={}))})),Tpt=a((e=>{var t;Object.defineProperty(e,`__esModule`,{value:!0}),e.LRUCache=e.LinkedMap=e.Touch=void 0;var n;(function(e){e.None=0,e.First=1,e.AsOld=e.First,e.Last=2,e.AsNew=e.Last})(n||(e.Touch=n={}));var r=class{constructor(){this[t]=`LinkedMap`,this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has(e){return this._map.has(e)}get(e,t=n.None){let r=this._map.get(e);if(r)return t!==n.None&&this.touch(r,t),r.value}set(e,t,r=n.None){let i=this._map.get(e);if(i)i.value=t,r!==n.None&&this.touch(i,r);else{switch(i={key:e,value:t,next:void 0,previous:void 0},r){case n.None:this.addItemLast(i);break;case n.First:this.addItemFirst(i);break;case n.Last:this.addItemLast(i);break;default:this.addItemLast(i);break}this._map.set(e,i),this._size++}return this}delete(e){return!!this.remove(e)}remove(e){let t=this._map.get(e);if(t)return this._map.delete(e),this.removeItem(t),this._size--,t.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw Error(`Invalid list`);let e=this._head;return this._map.delete(e.key),this.removeItem(e),this._size--,e.value}forEach(e,t){let n=this._state,r=this._head;for(;r;){if(t?e.bind(t)(r.value,r.key,this):e(r.value,r.key,this),this._state!==n)throw Error(`LinkedMap got modified during iteration.`);r=r.next}}keys(){let e=this._state,t=this._head,n={[Symbol.iterator]:()=>n,next:()=>{if(this._state!==e)throw Error(`LinkedMap got modified during iteration.`);if(t){let e={value:t.key,done:!1};return t=t.next,e}else return{value:void 0,done:!0}}};return n}values(){let e=this._state,t=this._head,n={[Symbol.iterator]:()=>n,next:()=>{if(this._state!==e)throw Error(`LinkedMap got modified during iteration.`);if(t){let e={value:t.value,done:!1};return t=t.next,e}else return{value:void 0,done:!0}}};return n}entries(){let e=this._state,t=this._head,n={[Symbol.iterator]:()=>n,next:()=>{if(this._state!==e)throw Error(`LinkedMap got modified during iteration.`);if(t){let e={value:[t.key,t.value],done:!1};return t=t.next,e}else return{value:void 0,done:!0}}};return n}[(t=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(e){if(e>=this.size)return;if(e===0){this.clear();return}let t=this._head,n=this.size;for(;t&&n>e;)this._map.delete(t.key),t=t.next,n--;this._head=t,this._size=n,t&&(t.previous=void 0),this._state++}addItemFirst(e){if(!this._head&&!this._tail)this._tail=e;else if(this._head)e.next=this._head,this._head.previous=e;else throw Error(`Invalid list`);this._head=e,this._state++}addItemLast(e){if(!this._head&&!this._tail)this._head=e;else if(this._tail)e.previous=this._tail,this._tail.next=e;else throw Error(`Invalid list`);this._tail=e,this._state++}removeItem(e){if(e===this._head&&e===this._tail)this._head=void 0,this._tail=void 0;else if(e===this._head){if(!e.next)throw Error(`Invalid list`);e.next.previous=void 0,this._head=e.next}else if(e===this._tail){if(!e.previous)throw Error(`Invalid list`);e.previous.next=void 0,this._tail=e.previous}else{let t=e.next,n=e.previous;if(!t||!n)throw Error(`Invalid list`);t.previous=n,n.next=t}e.next=void 0,e.previous=void 0,this._state++}touch(e,t){if(!this._head||!this._tail)throw Error(`Invalid list`);if(!(t!==n.First&&t!==n.Last)){if(t===n.First){if(e===this._head)return;let t=e.next,n=e.previous;e===this._tail?(n.next=void 0,this._tail=n):(t.previous=n,n.next=t),e.previous=void 0,e.next=this._head,this._head.previous=e,this._head=e,this._state++}else if(t===n.Last){if(e===this._tail)return;let t=e.next,n=e.previous;e===this._head?(t.previous=void 0,this._head=t):(t.previous=n,n.next=t),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e,this._state++}}}toJSON(){let e=[];return this.forEach((t,n)=>{e.push([n,t])}),e}fromJSON(e){this.clear();for(let[t,n]of e)this.set(t,n)}};e.LinkedMap=r,e.LRUCache=class extends r{constructor(e,t=1){super(),this._limit=e,this._ratio=Math.min(Math.max(0,t),1)}get limit(){return this._limit}set limit(e){this._limit=e,this.checkTrim()}get ratio(){return this._ratio}set ratio(e){this._ratio=Math.min(Math.max(0,e),1),this.checkTrim()}get(e,t=n.AsNew){return super.get(e,t)}peek(e){return super.get(e,n.None)}set(e,t){return super.set(e,t,n.Last),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}}})),Ept=a((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.Disposable=void 0;var t;(function(e){function t(e){return{dispose:e}}e.create=t})(t||(e.Disposable=t={}))})),IV=a((e=>{Object.defineProperty(e,`__esModule`,{value:!0});var t;function n(){if(t===void 0)throw Error(`No runtime abstraction layer installed`);return t}(function(e){function n(e){if(e===void 0)throw Error(`No runtime abstraction layer provided`);t=e}e.install=n})(n||(n={})),e.default=n})),LV=a((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.Emitter=e.Event=void 0;var t=IV(),n;(function(e){let t={dispose(){}};e.None=function(){return t}})(n||(e.Event=n={}));var r=class{add(e,t=null,n){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(e),this._contexts.push(t),Array.isArray(n)&&n.push({dispose:()=>this.remove(e,t)})}remove(e,t=null){if(!this._callbacks)return;let n=!1;for(let r=0,i=this._callbacks.length;r<i;r++)if(this._callbacks[r]===e)if(this._contexts[r]===t){this._callbacks.splice(r,1),this._contexts.splice(r,1);return}else n=!0;if(n)throw Error(`When adding a listener with a context, you should remove it with the same context`)}invoke(...e){if(!this._callbacks)return[];let n=[],r=this._callbacks.slice(0),i=this._contexts.slice(0);for(let a=0,o=r.length;a<o;a++)try{n.push(r[a].apply(i[a],e))}catch(e){(0,t.default)().console.error(e)}return n}isEmpty(){return!this._callbacks||this._callbacks.length===0}dispose(){this._callbacks=void 0,this._contexts=void 0}},i=class e{constructor(e){this._options=e}get event(){return this._event||(this._event=(t,n,i)=>{this._callbacks||(this._callbacks=new r),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(t,n);let a={dispose:()=>{this._callbacks&&(this._callbacks.remove(t,n),a.dispose=e._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(i)&&i.push(a),a}),this._event}fire(e){this._callbacks&&this._callbacks.invoke.call(this._callbacks,e)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}};e.Emitter=i,i._noop=function(){}})),RV=a((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.CancellationTokenSource=e.CancellationToken=void 0;var t=IV(),n=FV(),r=LV(),i;(function(e){e.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:r.Event.None}),e.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:r.Event.None});function t(t){let r=t;return r&&(r===e.None||r===e.Cancelled||n.boolean(r.isCancellationRequested)&&!!r.onCancellationRequested)}e.is=t})(i||(e.CancellationToken=i={}));var a=Object.freeze(function(e,n){let r=(0,t.default)().timer.setTimeout(e.bind(n),0);return{dispose(){r.dispose()}}}),o=class{constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?a:(this._emitter||(this._emitter=new r.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}};e.CancellationTokenSource=class{get token(){return this._token||(this._token=new o),this._token}cancel(){this._token?this._token.cancel():this._token=i.Cancelled}dispose(){this._token?this._token instanceof o&&this._token.dispose():this._token=i.None}}})),Dpt=a((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.SharedArrayReceiverStrategy=e.SharedArraySenderStrategy=void 0;var t=RV(),n;(function(e){e.Continue=0,e.Cancelled=1})(n||(n={})),e.SharedArraySenderStrategy=class{constructor(){this.buffers=new Map}enableCancellation(e){if(e.id===null)return;let t=new SharedArrayBuffer(4),r=new Int32Array(t,0,1);r[0]=n.Continue,this.buffers.set(e.id,t),e.$cancellationData=t}async sendCancellation(e,t){let r=this.buffers.get(t);if(r===void 0)return;let i=new Int32Array(r,0,1);Atomics.store(i,0,n.Cancelled)}cleanup(e){this.buffers.delete(e)}dispose(){this.buffers.clear()}};var r=class{constructor(e){this.data=new Int32Array(e,0,1)}get isCancellationRequested(){return Atomics.load(this.data,0)===n.Cancelled}get onCancellationRequested(){throw Error(`Cancellation over SharedArrayBuffer doesn't support cancellation events`)}},i=class{constructor(e){this.token=new r(e)}cancel(){}dispose(){}};e.SharedArrayReceiverStrategy=class{constructor(){this.kind=`request`}createCancellationTokenSource(e){let n=e.$cancellationData;return n===void 0?new t.CancellationTokenSource:new i(n)}}})),Opt=a((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.Semaphore=void 0;var t=IV();e.Semaphore=class{constructor(e=1){if(e<=0)throw Error(`Capacity must be greater than 0`);this._capacity=e,this._active=0,this._waiting=[]}lock(e){return new Promise((t,n)=>{this._waiting.push({thunk:e,resolve:t,reject:n}),this.runNext()})}get active(){return this._active}runNext(){this._waiting.length===0||this._active===this._capacity||(0,t.default)().timer.setImmediate(()=>this.doRunNext())}doRunNext(){if(this._waiting.length===0||this._active===this._capacity)return;let e=this._waiting.shift();if(this._active++,this._active>this._capacity)throw Error(`To many thunks active`);try{let t=e.thunk();t instanceof Promise?t.then(t=>{this._active--,e.resolve(t),this.runNext()},t=>{this._active--,e.reject(t),this.runNext()}):(this._active--,e.resolve(t),this.runNext())}catch(t){this._active--,e.reject(t),this.runNext()}}}})),kpt=a((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.ReadableStreamMessageReader=e.AbstractMessageReader=e.MessageReader=void 0;var t=IV(),n=FV(),r=LV(),i=Opt(),a;(function(e){function t(e){let t=e;return t&&n.func(t.listen)&&n.func(t.dispose)&&n.func(t.onError)&&n.func(t.onClose)&&n.func(t.onPartialMessage)}e.is=t})(a||(e.MessageReader=a={}));var o=class{constructor(){this.errorEmitter=new r.Emitter,this.closeEmitter=new r.Emitter,this.partialMessageEmitter=new r.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e){this.errorEmitter.fire(this.asError(e))}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}get onPartialMessage(){return this.partialMessageEmitter.event}firePartialMessage(e){this.partialMessageEmitter.fire(e)}asError(e){return e instanceof Error?e:Error(`Reader received error. Reason: ${n.string(e.message)?e.message:`unknown`}`)}};e.AbstractMessageReader=o;var s;(function(e){function n(e){let n,r,i=new Map,a,o=new Map;if(e===void 0||typeof e==`string`)n=e??`utf-8`;else{if(n=e.charset??`utf-8`,e.contentDecoder!==void 0&&(r=e.contentDecoder,i.set(r.name,r)),e.contentDecoders!==void 0)for(let t of e.contentDecoders)i.set(t.name,t);if(e.contentTypeDecoder!==void 0&&(a=e.contentTypeDecoder,o.set(a.name,a)),e.contentTypeDecoders!==void 0)for(let t of e.contentTypeDecoders)o.set(t.name,t)}return a===void 0&&(a=(0,t.default)().applicationJson.decoder,o.set(a.name,a)),{charset:n,contentDecoder:r,contentDecoders:i,contentTypeDecoder:a,contentTypeDecoders:o}}e.fromOptions=n})(s||(s={})),e.ReadableStreamMessageReader=class extends o{constructor(e,n){super(),this.readable=e,this.options=s.fromOptions(n),this.buffer=(0,t.default)().messageBuffer.create(this.options.charset),this._partialMessageTimeout=1e4,this.nextMessageLength=-1,this.messageToken=0,this.readSemaphore=new i.Semaphore(1)}set partialMessageTimeout(e){this._partialMessageTimeout=e}get partialMessageTimeout(){return this._partialMessageTimeout}listen(e){this.nextMessageLength=-1,this.messageToken=0,this.partialMessageTimer=void 0,this.callback=e;let t=this.readable.onData(e=>{this.onData(e)});return this.readable.onError(e=>this.fireError(e)),this.readable.onClose(()=>this.fireClose()),t}onData(e){try{for(this.buffer.append(e);;){if(this.nextMessageLength===-1){let e=this.buffer.tryReadHeaders(!0);if(!e)return;let t=e.get(`content-length`);if(!t){this.fireError(Error(`Header must provide a Content-Length property.\n${JSON.stringify(Object.fromEntries(e))}`));return}let n=parseInt(t);if(isNaN(n)){this.fireError(Error(`Content-Length value must be a number. Got ${t}`));return}this.nextMessageLength=n}let e=this.buffer.tryReadBody(this.nextMessageLength);if(e===void 0){this.setPartialMessageTimer();return}this.clearPartialMessageTimer(),this.nextMessageLength=-1,this.readSemaphore.lock(async()=>{let t=this.options.contentDecoder===void 0?e:await this.options.contentDecoder.decode(e),n=await this.options.contentTypeDecoder.decode(t,this.options);this.callback(n)}).catch(e=>{this.fireError(e)})}}catch(e){this.fireError(e)}}clearPartialMessageTimer(){this.partialMessageTimer&&(this.partialMessageTimer.dispose(),this.partialMessageTimer=void 0)}setPartialMessageTimer(){this.clearPartialMessageTimer(),!(this._partialMessageTimeout<=0)&&(this.partialMessageTimer=(0,t.default)().timer.setTimeout((e,t)=>{this.partialMessageTimer=void 0,e===this.messageToken&&(this.firePartialMessage({messageToken:e,waitingTime:t}),this.setPartialMessageTimer())},this._partialMessageTimeout,this.messageToken,this._partialMessageTimeout))}}})),Apt=a((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.WriteableStreamMessageWriter=e.AbstractMessageWriter=e.MessageWriter=void 0;var t=IV(),n=FV(),r=Opt(),i=LV(),a=`Content-Length: `,o=`\r
|
|
1090
1090
|
`,s;(function(e){function t(e){let t=e;return t&&n.func(t.dispose)&&n.func(t.onClose)&&n.func(t.onError)&&n.func(t.write)}e.is=t})(s||(e.MessageWriter=s={}));var c=class{constructor(){this.errorEmitter=new i.Emitter,this.closeEmitter=new i.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e,t,n){this.errorEmitter.fire([this.asError(e),t,n])}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}asError(e){return e instanceof Error?e:Error(`Writer received error. Reason: ${n.string(e.message)?e.message:`unknown`}`)}};e.AbstractMessageWriter=c;var l;(function(e){function n(e){return e===void 0||typeof e==`string`?{charset:e??`utf-8`,contentTypeEncoder:(0,t.default)().applicationJson.encoder}:{charset:e.charset??`utf-8`,contentEncoder:e.contentEncoder,contentTypeEncoder:e.contentTypeEncoder??(0,t.default)().applicationJson.encoder}}e.fromOptions=n})(l||(l={})),e.WriteableStreamMessageWriter=class extends c{constructor(e,t){super(),this.writable=e,this.options=l.fromOptions(t),this.errorCount=0,this.writeSemaphore=new r.Semaphore(1),this.writable.onError(e=>this.fireError(e)),this.writable.onClose(()=>this.fireClose())}async write(e){return this.writeSemaphore.lock(async()=>this.options.contentTypeEncoder.encode(e,this.options).then(e=>this.options.contentEncoder===void 0?e:this.options.contentEncoder.encode(e)).then(t=>{let n=[];return n.push(a,t.byteLength.toString(),o),n.push(o),this.doWrite(e,n,t)},e=>{throw this.fireError(e),e}))}async doWrite(e,t,n){try{return await this.writable.write(t.join(``),`ascii`),this.writable.write(n)}catch(t){return this.handleError(t,e),Promise.reject(t)}}handleError(e,t){this.errorCount++,this.fireError(e,t,this.errorCount)}end(){this.writable.end()}}})),jpt=a((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.AbstractMessageBuffer=void 0;var t=13,n=10,r=`\r
|
|
1091
1091
|
`;e.AbstractMessageBuffer=class{constructor(e=`utf-8`){this._encoding=e,this._chunks=[],this._totalLength=0}get encoding(){return this._encoding}append(e){let t=typeof e==`string`?this.fromString(e,this._encoding):e;this._chunks.push(t),this._totalLength+=t.byteLength}tryReadHeaders(e=!1){if(this._chunks.length===0)return;let i=0,a=0,o=0,s=0;row:for(;a<this._chunks.length;){let e=this._chunks[a];o=0;column:for(;o<e.length;){switch(e[o]){case t:switch(i){case 0:i=1;break;case 2:i=3;break;default:i=0}break;case n:switch(i){case 1:i=2;break;case 3:i=4,o++;break row;default:i=0}break;default:i=0}o++}s+=e.byteLength,a++}if(i!==4)return;let c=this._read(s+o),l=new Map,u=this.toString(c,`ascii`).split(r);if(u.length<2)return l;for(let t=0;t<u.length-2;t++){let n=u[t],r=n.indexOf(`:`);if(r===-1)throw Error(`Message header must separate key and value using ':'\n${n}`);let i=n.substr(0,r),a=n.substr(r+1).trim();l.set(e?i.toLowerCase():i,a)}return l}tryReadBody(e){if(!(this._totalLength<e))return this._read(e)}get numberOfBytes(){return this._totalLength}_read(e){if(e===0)return this.emptyBuffer();if(e>this._totalLength)throw Error(`Cannot read so many bytes!`);if(this._chunks[0].byteLength===e){let t=this._chunks[0];return this._chunks.shift(),this._totalLength-=e,this.asNative(t)}if(this._chunks[0].byteLength>e){let t=this._chunks[0],n=this.asNative(t,e);return this._chunks[0]=t.slice(e),this._totalLength-=e,n}let t=this.allocNative(e),n=0;for(;e>0;){let r=this._chunks[0];if(r.byteLength>e){let i=r.slice(0,e);t.set(i,n),n+=e,this._chunks[0]=r.slice(e),this._totalLength-=e,e-=e}else t.set(r,n),n+=r.byteLength,this._chunks.shift(),this._totalLength-=r.byteLength,e-=r.byteLength}return t}}})),Mpt=a((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.createMessageConnection=e.ConnectionOptions=e.MessageStrategy=e.CancellationStrategy=e.CancellationSenderStrategy=e.CancellationReceiverStrategy=e.RequestCancellationReceiverStrategy=e.IdCancellationReceiverStrategy=e.ConnectionStrategy=e.ConnectionError=e.ConnectionErrors=e.LogTraceNotification=e.SetTraceNotification=e.TraceFormat=e.TraceValues=e.Trace=e.NullLogger=e.ProgressType=e.ProgressToken=void 0;var t=IV(),n=FV(),r=wpt(),i=Tpt(),a=LV(),o=RV(),s;(function(e){e.type=new r.NotificationType(`$/cancelRequest`)})(s||(s={}));var c;(function(e){function t(e){return typeof e==`string`||typeof e==`number`}e.is=t})(c||(e.ProgressToken=c={}));var l;(function(e){e.type=new r.NotificationType(`$/progress`)})(l||(l={})),e.ProgressType=class{constructor(){}};var u;(function(e){function t(e){return n.func(e)}e.is=t})(u||(u={})),e.NullLogger=Object.freeze({error:()=>{},warn:()=>{},info:()=>{},log:()=>{}});var d;(function(e){e[e.Off=0]=`Off`,e[e.Messages=1]=`Messages`,e[e.Compact=2]=`Compact`,e[e.Verbose=3]=`Verbose`})(d||(e.Trace=d={}));var f;(function(e){e.Off=`off`,e.Messages=`messages`,e.Compact=`compact`,e.Verbose=`verbose`})(f||(e.TraceValues=f={})),(function(e){function t(t){if(!n.string(t))return e.Off;switch(t=t.toLowerCase(),t){case`off`:return e.Off;case`messages`:return e.Messages;case`compact`:return e.Compact;case`verbose`:return e.Verbose;default:return e.Off}}e.fromString=t;function r(t){switch(t){case e.Off:return`off`;case e.Messages:return`messages`;case e.Compact:return`compact`;case e.Verbose:return`verbose`;default:return`off`}}e.toString=r})(d||(e.Trace=d={}));var p;(function(e){e.Text=`text`,e.JSON=`json`})(p||(e.TraceFormat=p={})),(function(e){function t(t){return n.string(t)?(t=t.toLowerCase(),t===`json`?e.JSON:e.Text):e.Text}e.fromString=t})(p||(e.TraceFormat=p={}));var m;(function(e){e.type=new r.NotificationType(`$/setTrace`)})(m||(e.SetTraceNotification=m={}));var h;(function(e){e.type=new r.NotificationType(`$/logTrace`)})(h||(e.LogTraceNotification=h={}));var g;(function(e){e[e.Closed=1]=`Closed`,e[e.Disposed=2]=`Disposed`,e[e.AlreadyListening=3]=`AlreadyListening`})(g||(e.ConnectionErrors=g={}));var _=class e extends Error{constructor(t,n){super(n),this.code=t,Object.setPrototypeOf(this,e.prototype)}};e.ConnectionError=_;var v;(function(e){function t(e){let t=e;return t&&n.func(t.cancelUndispatched)}e.is=t})(v||(e.ConnectionStrategy=v={}));var y;(function(e){function t(e){let t=e;return t&&(t.kind===void 0||t.kind===`id`)&&n.func(t.createCancellationTokenSource)&&(t.dispose===void 0||n.func(t.dispose))}e.is=t})(y||(e.IdCancellationReceiverStrategy=y={}));var b;(function(e){function t(e){let t=e;return t&&t.kind===`request`&&n.func(t.createCancellationTokenSource)&&(t.dispose===void 0||n.func(t.dispose))}e.is=t})(b||(e.RequestCancellationReceiverStrategy=b={}));var x;(function(e){e.Message=Object.freeze({createCancellationTokenSource(e){return new o.CancellationTokenSource}});function t(e){return y.is(e)||b.is(e)}e.is=t})(x||(e.CancellationReceiverStrategy=x={}));var S;(function(e){e.Message=Object.freeze({sendCancellation(e,t){return e.sendNotification(s.type,{id:t})},cleanup(e){}});function t(e){let t=e;return t&&n.func(t.sendCancellation)&&n.func(t.cleanup)}e.is=t})(S||(e.CancellationSenderStrategy=S={}));var C;(function(e){e.Message=Object.freeze({receiver:x.Message,sender:S.Message});function t(e){let t=e;return t&&x.is(t.receiver)&&S.is(t.sender)}e.is=t})(C||(e.CancellationStrategy=C={}));var w;(function(e){function t(e){let t=e;return t&&n.func(t.handleMessage)}e.is=t})(w||(e.MessageStrategy=w={}));var T;(function(e){function t(e){let t=e;return t&&(C.is(t.cancellationStrategy)||v.is(t.connectionStrategy)||w.is(t.messageStrategy))}e.is=t})(T||(e.ConnectionOptions=T={}));var E;(function(e){e[e.New=1]=`New`,e[e.Listening=2]=`Listening`,e[e.Closed=3]=`Closed`,e[e.Disposed=4]=`Disposed`})(E||(E={}));function D(f,v,b,x){let S=b===void 0?e.NullLogger:b,T=0,D=0,ee=0,O,k=new Map,te,ne=new Map,re=new Map,ie,ae=new i.LinkedMap,oe=new Map,A=new Set,se=new Map,j=d.Off,ce=p.Text,M,N=E.New,le=new a.Emitter,ue=new a.Emitter,de=new a.Emitter,fe=new a.Emitter,pe=new a.Emitter,me=x&&x.cancellationStrategy?x.cancellationStrategy:C.Message;function he(e){if(e===null)throw Error(`Can't send requests with id null since the response can't be correlated.`);return`req-`+e.toString()}function ge(e){return e===null?`res-unknown-`+(++ee).toString():`res-`+e.toString()}function _e(){return`not-`+(++D).toString()}function ve(e,t){r.Message.isRequest(t)?e.set(he(t.id),t):r.Message.isResponse(t)?e.set(ge(t.id),t):e.set(_e(),t)}function ye(e){}function be(){return N===E.Listening}function xe(){return N===E.Closed}function Se(){return N===E.Disposed}function Ce(){(N===E.New||N===E.Listening)&&(N=E.Closed,ue.fire(void 0))}function we(e){le.fire([e,void 0,void 0])}function Te(e){le.fire(e)}f.onClose(Ce),f.onError(we),v.onClose(Ce),v.onError(Te);function Ee(){ie||ae.size===0||(ie=(0,t.default)().timer.setImmediate(()=>{ie=void 0,Oe()}))}function De(e){r.Message.isRequest(e)?Ae(e):r.Message.isNotification(e)?Me(e):r.Message.isResponse(e)?je(e):Ne(e)}function Oe(){if(ae.size===0)return;let e=ae.shift();try{let t=x?.messageStrategy;w.is(t)?t.handleMessage(e,De):De(e)}finally{Ee()}}let ke=e=>{try{if(r.Message.isNotification(e)&&e.method===s.type.method){let t=e.params.id,n=he(t),i=ae.get(n);if(r.Message.isRequest(i)){let r=x?.connectionStrategy,a=r&&r.cancelUndispatched?r.cancelUndispatched(i,ye):void 0;if(a&&(a.error!==void 0||a.result!==void 0)){ae.delete(n),se.delete(t),a.id=i.id,Fe(a,e.method,Date.now()),v.write(a).catch(()=>S.error(`Sending response for canceled message failed.`));return}}let a=se.get(t);if(a!==void 0){a.cancel(),Le(e);return}else A.add(t)}ve(ae,e)}finally{Ee()}};function Ae(e){if(Se())return;function t(t,n,i){let a={jsonrpc:`2.0`,id:e.id};t instanceof r.ResponseError?a.error=t.toJson():a.result=t===void 0?null:t,Fe(a,n,i),v.write(a).catch(()=>S.error(`Sending response failed.`))}function i(t,n,r){let i={jsonrpc:`2.0`,id:e.id,error:t.toJson()};Fe(i,n,r),v.write(i).catch(()=>S.error(`Sending response failed.`))}function a(t,n,r){t===void 0&&(t=null);let i={jsonrpc:`2.0`,id:e.id,result:t};Fe(i,n,r),v.write(i).catch(()=>S.error(`Sending response failed.`))}Ie(e);let o=k.get(e.method),s,c;o&&(s=o.type,c=o.handler);let l=Date.now();if(c||O){let o=e.id??String(Date.now()),u=y.is(me.receiver)?me.receiver.createCancellationTokenSource(o):me.receiver.createCancellationTokenSource(e);e.id!==null&&A.has(e.id)&&u.cancel(),e.id!==null&&se.set(o,u);try{let d;if(c)if(e.params===void 0){if(s!==void 0&&s.numberOfParams!==0){i(new r.ResponseError(r.ErrorCodes.InvalidParams,`Request ${e.method} defines ${s.numberOfParams} params but received none.`),e.method,l);return}d=c(u.token)}else if(Array.isArray(e.params)){if(s!==void 0&&s.parameterStructures===r.ParameterStructures.byName){i(new r.ResponseError(r.ErrorCodes.InvalidParams,`Request ${e.method} defines parameters by name but received parameters by position`),e.method,l);return}d=c(...e.params,u.token)}else{if(s!==void 0&&s.parameterStructures===r.ParameterStructures.byPosition){i(new r.ResponseError(r.ErrorCodes.InvalidParams,`Request ${e.method} defines parameters by position but received parameters by name`),e.method,l);return}d=c(e.params,u.token)}else O&&(d=O(e.method,e.params,u.token));let f=d;d?f.then?f.then(n=>{se.delete(o),t(n,e.method,l)},t=>{se.delete(o),t instanceof r.ResponseError?i(t,e.method,l):t&&n.string(t.message)?i(new r.ResponseError(r.ErrorCodes.InternalError,`Request ${e.method} failed with message: ${t.message}`),e.method,l):i(new r.ResponseError(r.ErrorCodes.InternalError,`Request ${e.method} failed unexpectedly without providing any details.`),e.method,l)}):(se.delete(o),t(d,e.method,l)):(se.delete(o),a(d,e.method,l))}catch(a){se.delete(o),a instanceof r.ResponseError?t(a,e.method,l):a&&n.string(a.message)?i(new r.ResponseError(r.ErrorCodes.InternalError,`Request ${e.method} failed with message: ${a.message}`),e.method,l):i(new r.ResponseError(r.ErrorCodes.InternalError,`Request ${e.method} failed unexpectedly without providing any details.`),e.method,l)}}else i(new r.ResponseError(r.ErrorCodes.MethodNotFound,`Unhandled method ${e.method}`),e.method,l)}function je(e){if(!Se())if(e.id===null)e.error?S.error(`Received response message without id: Error is: \n${JSON.stringify(e.error,void 0,4)}`):S.error(`Received response message without id. No further error information provided.`);else{let t=e.id,n=oe.get(t);if(Re(e,n),n!==void 0){oe.delete(t);try{if(e.error){let t=e.error;n.reject(new r.ResponseError(t.code,t.message,t.data))}else if(e.result!==void 0)n.resolve(e.result);else throw Error(`Should never happen.`)}catch(e){e.message?S.error(`Response handler '${n.method}' failed with message: ${e.message}`):S.error(`Response handler '${n.method}' failed unexpectedly.`)}}}}function Me(e){if(Se())return;let t,n;if(e.method===s.type.method){let t=e.params.id;A.delete(t),Le(e);return}else{let r=ne.get(e.method);r&&(n=r.handler,t=r.type)}if(n||te)try{if(Le(e),n)if(e.params===void 0)t!==void 0&&t.numberOfParams!==0&&t.parameterStructures!==r.ParameterStructures.byName&&S.error(`Notification ${e.method} defines ${t.numberOfParams} params but received none.`),n();else if(Array.isArray(e.params)){let i=e.params;e.method===l.type.method&&i.length===2&&c.is(i[0])?n({token:i[0],value:i[1]}):(t!==void 0&&(t.parameterStructures===r.ParameterStructures.byName&&S.error(`Notification ${e.method} defines parameters by name but received parameters by position`),t.numberOfParams!==e.params.length&&S.error(`Notification ${e.method} defines ${t.numberOfParams} params but received ${i.length} arguments`)),n(...i))}else t!==void 0&&t.parameterStructures===r.ParameterStructures.byPosition&&S.error(`Notification ${e.method} defines parameters by position but received parameters by name`),n(e.params);else te&&te(e.method,e.params)}catch(t){t.message?S.error(`Notification handler '${e.method}' failed with message: ${t.message}`):S.error(`Notification handler '${e.method}' failed unexpectedly.`)}else de.fire(e)}function Ne(e){if(!e){S.error(`Received empty message.`);return}S.error(`Received message which is neither a response nor a notification message:\n${JSON.stringify(e,null,4)}`);let t=e;if(n.string(t.id)||n.number(t.id)){let e=t.id,n=oe.get(e);n&&n.reject(Error(`The received response has neither a result nor an error property.`))}}function P(e){if(e!=null)switch(j){case d.Verbose:return JSON.stringify(e,null,4);case d.Compact:return JSON.stringify(e);default:return}}function Pe(e){if(!(j===d.Off||!M))if(ce===p.Text){let t;(j===d.Verbose||j===d.Compact)&&e.params&&(t=`Params: ${P(e.params)}\n\n`),M.log(`Sending request '${e.method} - (${e.id})'.`,t)}else ze(`send-request`,e)}function F(e){if(!(j===d.Off||!M))if(ce===p.Text){let t;(j===d.Verbose||j===d.Compact)&&(t=e.params?`Params: ${P(e.params)}\n\n`:`No parameters provided.
|
|
1092
1092
|
|
|
@@ -1202,7 +1202,7 @@ FIND_GREP_FUNC_END
|
|
|
1202
1202
|
`)}function wU(e){return/^data:image\/[a-z0-9.+_-]+;base64,/i.test(e)}function qht(e){let t=e.trim().match(Qht);return!t||!t[1]||!t[2]?null:{mediaType:t[1],data:t[2]}}function Jht(e,t){let n=qht(e);return n?{tool_use_id:t,type:`tool_result`,content:[{type:`image`,source:{type:`base64`,media_type:n.mediaType,data:n.data}}]}:null}async function Yht(e,t,n){let r=e;if(t){if((n??(await xd(t)).size)>$ht)return null;r=await hd(t,`utf8`)}let i=qht(r);if(!i)return null;let a=Buffer.from(i.data,`base64`),o=i.mediaType.split(`/`)[1]||`png`,s=await j_(a,a.length,o);return`data:image/${s.mediaType};base64,${s.buffer.toString(`base64`)}`}function Xht(e){let t=wU(e);if(t)return{totalLines:1,truncatedContent:e,isImage:t};let n=dH();if(e.length<=n)return{totalLines:lr(e,`
|
|
1203
1203
|
`)+1,truncatedContent:e,isImage:t};let r=`${e.slice(0,n)}\n\n... [${lr(e,`
|
|
1204
1204
|
`,n)+1} lines truncated] ...`;return{totalLines:lr(e,`
|
|
1205
|
-
`)+1,truncatedContent:r,isImage:t}}function Zht(e){let t=Ga(),n=fn(),r=g();return(r||t!==n&&!T5(t,e))&&(eU(n),!r)?(G(`tengu_bash_tool_reset_to_original_dir`,{}),!0):!1}var Qht,$ht,TU,EU=n((()=>{tn(),Ua(),Wa(),N5(),rU(),y(),R_(),mH(),Di(),Qht=/^data:([^;]+);base64,(.+)$/,$ht=20*1024*1024,TU=e=>`${e.trim()}\nShell cwd was reset to ${fn()}`}));function DU(e,t=``){return RegExp(`\\bgit(?:\\s+-[cC]\\s+\\S+|\\s+--\\S+=\\S+)*\\s+${e}\\b${t}`)}function egt(e){let t=e.match(/https:\/\/github\.com\/([^/]+\/[^/]+)\/pull\/(\d+)/);return t?.[1]&&t?.[2]?{prNumber:parseInt(t[2],10),prUrl:e,prRepository:t[1]}:null}function tgt(e){let t=e.match(/https:\/\/github\.com\/[^/\s]+\/[^/\s]+\/pull\/\d+/);return t?egt(t[0]):null}function ngt(e){return e.match(/\[[\w./-]+(?: \(root-commit\))? ([0-9a-f]+)\]/)?.[1]}function rgt(e){return e.match(/^\s*[+\-*!= ]?\s*(?:\[new branch\]|\S+\.\.+\S+)\s+\S+\s*->\s*(\S+)/m)?.[1]}function igt(e){let t=e.match(/[Pp]ull request (?:\S+#)?#?(\d+)/);return t?.[1]?parseInt(t[1],10):void 0}function agt(e,t){let n=e.split(DU(t))[1];if(n)for(let e of n.trim().split(/\s+/)){if(/^[&|;><]/.test(e))break;if(!e.startsWith(`-`))return e}}function ogt(e,t){let n={},r=cgt.test(e);if(OU.test(e)||r){let i=ngt(t);i&&(n.commit={sha:i.slice(0,6),kind:r?`cherry-picked`:/--amend\b/.test(e)?`amended`:`committed`})}if(kU.test(e)){let e=rgt(t);e&&(n.push={branch:e})}if(lgt.test(e)&&/(Fast-forward|Merge made by)/.test(t)){let t=agt(e,`merge`);t&&(n.branch={ref:t,action:`merged`})}if(ugt.test(e)&&/Successfully rebased/.test(t)){let t=agt(e,`rebase`);t&&(n.branch={ref:t,action:`rebased`})}let i=AU.find(t=>t.re.test(e))?.action;if(i){let e=tgt(t);if(e)n.pr={number:e.prNumber,url:e.prUrl,action:i};else{let e=igt(t);e&&(n.pr={number:e,action:i})}}return n}function sgt(e,t,n){if(t!==0)return;OU.test(e)&&(G(`tengu_git_operation`,{operation:`commit`}),e.match(/--amend\b/)&&G(`tengu_git_operation`,{operation:`commit_amend`}),Lte()?.add(1)),kU.test(e)&&G(`tengu_git_operation`,{operation:`push`});let r=AU.find(t=>t.re.test(e));if(r&&G(`tengu_git_operation`,{operation:r.op}),r?.action===`created`&&(un()?.add(1),n)){let e=tgt(n);e&&import(`./sessionStorage-DG68Xvsy.js`).then(({linkSessionToPR:t})=>{import(`./state-B2GIOsTB.js`).then(({getSessionId:n})=>{let r=n();r&&t(r,e.prNumber,e.prUrl,e.prRepository)})})}e.match(/\bglab\s+mr\s+create\b/)&&(G(`tengu_git_operation`,{operation:`pr_create`}),un()?.add(1));let i=e.match(/\bcurl\b/)&&(e.match(/-X\s*POST\b/i)||e.match(/--request\s*=?\s*POST\b/i)||e.match(/\s-d\s/)),a=e.match(/https?:\/\/[^\s'"]*\/(pulls|pull-requests|merge[-_]requests)(?!\/\d)/i);i&&a&&(G(`tengu_git_operation`,{operation:`pr_create`}),un()?.add(1))}var OU,kU,cgt,lgt,ugt,AU,jU=n((()=>{tn(),Ua(),OU=DU(`commit`),kU=DU(`push`),cgt=DU(`cherry-pick`),lgt=DU(`merge`,`(?!-)`),ugt=DU(`rebase`),AU=[{re:/\bgh\s+pr\s+create\b/,action:`created`,op:`pr_create`},{re:/\bgh\s+pr\s+edit\b/,action:`edited`,op:`pr_edit`},{re:/\bgh\s+pr\s+merge\b/,action:`merged`,op:`pr_merge`},{re:/\bgh\s+pr\s+comment\b/,action:`commented`,op:`pr_comment`},{re:/\bgh\s+pr\s+close\b/,action:`closed`,op:`pr_close`},{re:/\bgh\s+pr\s+ready\b/,action:`ready`,op:`pr_ready`}]}));function dgt(e){let t=(e.trim().replace(/^[&.]\s+/,``).split(/\s+/)[0]||``).replace(/^["']|["']$/g,``);return(t.split(/[\\/]/).pop()||t).toLowerCase().replace(/\.exe$/,``)}function fgt(e){let t=e.split(/[;|]/).filter(e=>e.trim());return dgt(t[t.length-1]||e)}function pgt(e,t,n,r){let i=fgt(e);return(hgt.get(i)??mgt)(t,n,r)}var mgt,MU,hgt,ggt=n((()=>{mgt=(e,t,n)=>({isError:e!==0,message:e===0?void 0:`Command failed with exit code ${e}`}),MU=(e,t,n)=>({isError:e>=2,message:e===1?`No matches found`:void 0}),hgt=new Map([[`grep`,MU],[`rg`,MU],[`findstr`,MU],[`robocopy`,(e,t,n)=>({isError:e>=8,message:e===0?`No files copied (already in sync)`:e>=1&&e<8?e&1?`Files copied successfully`:`Robocopy completed (no errors)`:void 0})]])}));function _gt(){let e=process.env.CLAUDE_CODE_PWSH_PARSE_TIMEOUT_MS;if(e){let t=parseInt(e,10);if(!isNaN(t)&&t>0)return t}return Ngt}function NU(e,t,n){return{...Vgt,errors:[{message:t,errorId:n}],originalCommand:e}}function vgt(e){if(typeof Buffer<`u`)return Buffer.from(e,`utf16le`).toString(`base64`);let t=[];for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);t.push(r&255,r>>8&255)}return btoa(t.map(e=>String.fromCharCode(e)).join(``))}function ygt(e){return`$EncodedCommand = '${typeof Buffer<`u`?Buffer.from(e,`utf8`).toString(`base64`):btoa(new TextEncoder().encode(e).reduce((e,t)=>e+String.fromCharCode(t),``))}'\n${UU}`}function PU(e){return e==null?[]:Array.isArray(e)?e:[e]}function bgt(e){switch(e){case`PipelineAst`:return`PipelineAst`;case`PipelineChainAst`:return`PipelineChainAst`;case`AssignmentStatementAst`:return`AssignmentStatementAst`;case`IfStatementAst`:return`IfStatementAst`;case`ForStatementAst`:return`ForStatementAst`;case`ForEachStatementAst`:return`ForEachStatementAst`;case`WhileStatementAst`:return`WhileStatementAst`;case`DoWhileStatementAst`:return`DoWhileStatementAst`;case`DoUntilStatementAst`:return`DoUntilStatementAst`;case`SwitchStatementAst`:return`SwitchStatementAst`;case`TryStatementAst`:return`TryStatementAst`;case`TrapStatementAst`:return`TrapStatementAst`;case`FunctionDefinitionAst`:return`FunctionDefinitionAst`;case`DataStatementAst`:return`DataStatementAst`;default:return`UnknownStatementAst`}}function FU(e,t){switch(e){case`ScriptBlockExpressionAst`:return`ScriptBlock`;case`SubExpressionAst`:case`ArrayExpressionAst`:return`SubExpression`;case`ExpandableStringExpressionAst`:return`ExpandableString`;case`InvokeMemberExpressionAst`:case`MemberExpressionAst`:return`MemberInvocation`;case`VariableExpressionAst`:return`Variable`;case`StringConstantExpressionAst`:case`ConstantExpressionAst`:return`StringConstant`;case`CommandParameterAst`:return`Parameter`;case`ParenExpressionAst`:return`SubExpression`;case`CommandExpressionAst`:return t?FU(t):`Other`;default:return`Other`}}function xgt(e){return/^[A-Za-z]+-[A-Za-z][A-Za-z0-9_]*$/.test(e)?`cmdlet`:/[.\\/]/.test(e)?`application`:`unknown`}function IU(e){let t=e.lastIndexOf(`\\`);return t<0||/^[A-Za-z]:/.test(e)||e.startsWith(`\\\\`)||e.startsWith(`.\\`)||e.startsWith(`..\\`)?e:e.substring(t+1)}function Sgt(e){let t=PU(e.commandElements),n=``,r=[],i=[],a=[],o=!1,s=`unknown`;if(t.length>0){let e=t[0],c=((e.type===`StringConstantExpressionAst`||e.type===`ExpandableStringExpressionAst`)&&typeof e.value==`string`?e.value:e.text).replace(/^['"]|['"]$/g,``);s=/[\u0080-\uFFFF]/.test(c)?`application`:xgt(c),n=IU(c),i.push(FU(e.type,e.expressionType));for(let e=1;e<t.length;e++){let n=t[e],s=n.type===`StringConstantExpressionAst`||n.type===`ExpandableStringExpressionAst`;r.push(s&&n.value!=null?n.value:n.text),i.push(FU(n.type,n.expressionType));let c=PU(n.children);c.length>0?(o=!0,a.push(c.map(e=>({type:FU(e.type),text:e.text})))):a.push(void 0)}}let c={name:n,nameType:s,elementType:`CommandAst`,args:r,text:e.text,elementTypes:i,...o?{children:a}:{}},l=PU(e.redirections);return l.length>0&&(c.redirections=l.map(LU)),c}function Cgt(e){let t=e.type===`ParenExpressionAst`?`ParenExpressionAst`:`CommandExpressionAst`,n=[FU(e.type,e.expressionType)];return{name:e.text,nameType:`unknown`,elementType:t,args:[],text:e.text,elementTypes:n}}function LU(e){if(e.type===`MergingRedirectionAst`)return{operator:`2>&1`,target:``,isMerging:!0};let t=e.append??!1,n=e.fromStream??`Output`,r;if(t)switch(n){case`Error`:r=`2>>`;break;case`All`:r=`*>>`;break;default:r=`>>`;break}else switch(n){case`Error`:r=`2>`;break;case`All`:r=`*>`;break;default:r=`>`;break}return{operator:r,target:e.locationText??``,isMerging:!1}}function wgt(e){let t=bgt(e.type),n=[],r=[];if(e.elements){for(let t of PU(e.elements))if(t.type===`CommandAst`){n.push(Sgt(t));for(let e of PU(t.redirections))r.push(LU(e))}else{n.push(Cgt(t));for(let e of PU(t.redirections))r.push(LU(e))}let t=new Set(r.map(e=>`${e.operator}\0${e.target}`));for(let n of PU(e.redirections)){let e=LU(n),i=`${e.operator}\0${e.target}`;t.has(i)||(t.add(i),r.push(e))}}else{n.push({name:e.text,nameType:`unknown`,elementType:`CommandExpressionAst`,args:[],text:e.text});for(let t of PU(e.redirections))r.push(LU(t))}let i,a=PU(e.nestedCommands);a.length>0&&(i=a.map(Sgt));let o={statementType:t,commands:n,redirections:r,text:e.text,nestedCommands:i};return e.securityPatterns&&(o.securityPatterns=e.securityPatterns),o}function Tgt(e){let t={valid:e.valid,errors:PU(e.errors),statements:PU(e.statements).map(wgt),variables:PU(e.variables),hasStopParsing:e.hasStopParsing,originalCommand:e.originalCommand},n=PU(e.typeLiterals);return n.length>0&&(t.typeLiterals=n),e.hasUsingStatements&&(t.hasUsingStatements=!0),e.hasScriptRequirements&&(t.hasScriptRequirements=!0),t}async function Egt(e){let t=Buffer.byteLength(e,`utf8`);if(t>WU)return U(`PowerShell parser: command too long (${t} bytes, max ${WU})`),NU(e,`Command too long for parsing (${t} bytes). Maximum supported length is ${WU} bytes.`,`CommandTooLong`);let n=await YH();if(!n)return NU(e,`PowerShell is not available`,`NoPowerShell`);let r=[`-NoProfile`,`-NonInteractive`,`-NoLogo`,`-EncodedCommand`,vgt(ygt(e))],i=_gt(),a=``,o=``,s=null,c=!1;for(let t=0;t<2;t++){try{let e=await co(n,r,{timeout:i,reject:!1});a=e.stdout,o=e.stderr,c=e.timedOut,s=e.failed?e.exitCode??1:0}catch(t){return U(`PowerShell parser: failed to spawn pwsh: ${t instanceof Error?t.message:t}`),NU(e,`Failed to spawn PowerShell: ${t instanceof Error?t.message:t}`,`PwshSpawnError`)}if(!c)break;U(`PowerShell parser: pwsh timed out after ${i}ms (attempt ${t+1})`)}if(c)return NU(e,`pwsh timed out after ${i}ms (2 attempts)`,`PwshTimeout`);if(s!==0)return U(`PowerShell parser: pwsh exited with code ${s}, stderr: ${o}`),NU(e,`pwsh exited with code ${s}: ${o}`,`PwshError`);let l=a.trim();if(!l)return U(`PowerShell parser: empty stdout from pwsh`),NU(e,`No output from PowerShell parser`,`EmptyOutput`);try{return Tgt(Da(l))}catch{return U(`PowerShell parser: invalid JSON output: ${l.slice(0,200)}`),NU(e,`Invalid JSON from PowerShell parser`,`InvalidJson`)}}function Dgt(e){let t=[];for(let n of e.statements){for(let e of n.commands)t.push(e.name.toLowerCase());if(n.nestedCommands)for(let e of n.nestedCommands)t.push(e.name.toLowerCase())}return t}function RU(e){let t=[];for(let n of e.statements){for(let e of n.commands)t.push(e);if(n.nestedCommands)for(let e of n.nestedCommands)t.push(e)}return t}function Ogt(e){let t=[];for(let n of e.statements){for(let e of n.redirections)t.push(e);if(n.nestedCommands){for(let e of n.nestedCommands)if(e.redirections)for(let n of e.redirections)t.push(n)}}return t}function kgt(e,t){let n=t.toLowerCase()+`:`;return e.variables.filter(e=>e.path.toLowerCase().startsWith(n))}function Agt(e,t){let n=t.toLowerCase(),r=KU[n]?.toLowerCase();for(let t of Dgt(e)){if(t===n)return!0;let e=KU[t]?.toLowerCase();if(e===n||r&&t===r||e&&r&&e===r)return!0}return!1}function zU(e,t){return t===void 0?e.length>0&&qU.has(e[0]):t===`Parameter`}function jgt(e,t,n){let r=t.toLowerCase(),i=n.toLowerCase();return e.args.some(e=>{let t=e.indexOf(`:`,1),n=(t>0?e.slice(0,t):e).replace(/`/g,``).toLowerCase();return n.startsWith(i)&&r.startsWith(n)&&n.length<=r.length})}function Mgt(e){return e.statements}function BU(e){let t=e.trim().toLowerCase();return t===`$null`||t==="${null}"}function VU(e){return Ogt(e).filter(e=>!e.isMerging&&!BU(e.target))}function HU(e){let t={hasSubExpressions:!1,hasScriptBlocks:!1,hasSplatting:!1,hasExpandableStrings:!1,hasMemberInvocations:!1,hasAssignments:!1,hasStopParsing:e.hasStopParsing};function n(e){if(e.elementTypes)for(let n of e.elementTypes)switch(n){case`ScriptBlock`:t.hasScriptBlocks=!0;break;case`SubExpression`:t.hasSubExpressions=!0;break;case`ExpandableString`:t.hasExpandableStrings=!0;break;case`MemberInvocation`:t.hasMemberInvocations=!0;break}}for(let r of e.statements){r.statementType===`AssignmentStatementAst`&&(t.hasAssignments=!0);for(let e of r.commands)n(e);if(r.nestedCommands)for(let e of r.nestedCommands)n(e);r.securityPatterns&&(r.securityPatterns.hasMemberInvocations&&(t.hasMemberInvocations=!0),r.securityPatterns.hasSubExpressions&&(t.hasSubExpressions=!0),r.securityPatterns.hasExpandableStrings&&(t.hasExpandableStrings=!0),r.securityPatterns.hasScriptBlocks&&(t.hasScriptBlocks=!0))}for(let n of e.variables)if(n.isSplatted){t.hasSplatting=!0;break}return t}var Ngt,UU,Pgt,Fgt,Igt,Lgt,Rgt,zgt,Bgt,WU,Vgt,Hgt,GU,KU,qU,JU=n((()=>{so(),W(),Ro(),ZH(),Va(),Ngt=5e3,UU=`
|
|
1205
|
+
`)+1,truncatedContent:r,isImage:t}}function Zht(e){let t=Ga(),n=fn(),r=g();return(r||t!==n&&!T5(t,e))&&(eU(n),!r)?(G(`tengu_bash_tool_reset_to_original_dir`,{}),!0):!1}var Qht,$ht,TU,EU=n((()=>{tn(),Ua(),Wa(),N5(),rU(),y(),R_(),mH(),Di(),Qht=/^data:([^;]+);base64,(.+)$/,$ht=20*1024*1024,TU=e=>`${e.trim()}\nShell cwd was reset to ${fn()}`}));function DU(e,t=``){return RegExp(`\\bgit(?:\\s+-[cC]\\s+\\S+|\\s+--\\S+=\\S+)*\\s+${e}\\b${t}`)}function egt(e){let t=e.match(/https:\/\/github\.com\/([^/]+\/[^/]+)\/pull\/(\d+)/);return t?.[1]&&t?.[2]?{prNumber:parseInt(t[2],10),prUrl:e,prRepository:t[1]}:null}function tgt(e){let t=e.match(/https:\/\/github\.com\/[^/\s]+\/[^/\s]+\/pull\/\d+/);return t?egt(t[0]):null}function ngt(e){return e.match(/\[[\w./-]+(?: \(root-commit\))? ([0-9a-f]+)\]/)?.[1]}function rgt(e){return e.match(/^\s*[+\-*!= ]?\s*(?:\[new branch\]|\S+\.\.+\S+)\s+\S+\s*->\s*(\S+)/m)?.[1]}function igt(e){let t=e.match(/[Pp]ull request (?:\S+#)?#?(\d+)/);return t?.[1]?parseInt(t[1],10):void 0}function agt(e,t){let n=e.split(DU(t))[1];if(n)for(let e of n.trim().split(/\s+/)){if(/^[&|;><]/.test(e))break;if(!e.startsWith(`-`))return e}}function ogt(e,t){let n={},r=cgt.test(e);if(OU.test(e)||r){let i=ngt(t);i&&(n.commit={sha:i.slice(0,6),kind:r?`cherry-picked`:/--amend\b/.test(e)?`amended`:`committed`})}if(kU.test(e)){let e=rgt(t);e&&(n.push={branch:e})}if(lgt.test(e)&&/(Fast-forward|Merge made by)/.test(t)){let t=agt(e,`merge`);t&&(n.branch={ref:t,action:`merged`})}if(ugt.test(e)&&/Successfully rebased/.test(t)){let t=agt(e,`rebase`);t&&(n.branch={ref:t,action:`rebased`})}let i=AU.find(t=>t.re.test(e))?.action;if(i){let e=tgt(t);if(e)n.pr={number:e.prNumber,url:e.prUrl,action:i};else{let e=igt(t);e&&(n.pr={number:e,action:i})}}return n}function sgt(e,t,n){if(t!==0)return;OU.test(e)&&(G(`tengu_git_operation`,{operation:`commit`}),e.match(/--amend\b/)&&G(`tengu_git_operation`,{operation:`commit_amend`}),Lte()?.add(1)),kU.test(e)&&G(`tengu_git_operation`,{operation:`push`});let r=AU.find(t=>t.re.test(e));if(r&&G(`tengu_git_operation`,{operation:r.op}),r?.action===`created`&&(un()?.add(1),n)){let e=tgt(n);e&&import(`./sessionStorage-CFfMypMQ.js`).then(({linkSessionToPR:t})=>{import(`./state-B2GIOsTB.js`).then(({getSessionId:n})=>{let r=n();r&&t(r,e.prNumber,e.prUrl,e.prRepository)})})}e.match(/\bglab\s+mr\s+create\b/)&&(G(`tengu_git_operation`,{operation:`pr_create`}),un()?.add(1));let i=e.match(/\bcurl\b/)&&(e.match(/-X\s*POST\b/i)||e.match(/--request\s*=?\s*POST\b/i)||e.match(/\s-d\s/)),a=e.match(/https?:\/\/[^\s'"]*\/(pulls|pull-requests|merge[-_]requests)(?!\/\d)/i);i&&a&&(G(`tengu_git_operation`,{operation:`pr_create`}),un()?.add(1))}var OU,kU,cgt,lgt,ugt,AU,jU=n((()=>{tn(),Ua(),OU=DU(`commit`),kU=DU(`push`),cgt=DU(`cherry-pick`),lgt=DU(`merge`,`(?!-)`),ugt=DU(`rebase`),AU=[{re:/\bgh\s+pr\s+create\b/,action:`created`,op:`pr_create`},{re:/\bgh\s+pr\s+edit\b/,action:`edited`,op:`pr_edit`},{re:/\bgh\s+pr\s+merge\b/,action:`merged`,op:`pr_merge`},{re:/\bgh\s+pr\s+comment\b/,action:`commented`,op:`pr_comment`},{re:/\bgh\s+pr\s+close\b/,action:`closed`,op:`pr_close`},{re:/\bgh\s+pr\s+ready\b/,action:`ready`,op:`pr_ready`}]}));function dgt(e){let t=(e.trim().replace(/^[&.]\s+/,``).split(/\s+/)[0]||``).replace(/^["']|["']$/g,``);return(t.split(/[\\/]/).pop()||t).toLowerCase().replace(/\.exe$/,``)}function fgt(e){let t=e.split(/[;|]/).filter(e=>e.trim());return dgt(t[t.length-1]||e)}function pgt(e,t,n,r){let i=fgt(e);return(hgt.get(i)??mgt)(t,n,r)}var mgt,MU,hgt,ggt=n((()=>{mgt=(e,t,n)=>({isError:e!==0,message:e===0?void 0:`Command failed with exit code ${e}`}),MU=(e,t,n)=>({isError:e>=2,message:e===1?`No matches found`:void 0}),hgt=new Map([[`grep`,MU],[`rg`,MU],[`findstr`,MU],[`robocopy`,(e,t,n)=>({isError:e>=8,message:e===0?`No files copied (already in sync)`:e>=1&&e<8?e&1?`Files copied successfully`:`Robocopy completed (no errors)`:void 0})]])}));function _gt(){let e=process.env.CLAUDE_CODE_PWSH_PARSE_TIMEOUT_MS;if(e){let t=parseInt(e,10);if(!isNaN(t)&&t>0)return t}return Ngt}function NU(e,t,n){return{...Vgt,errors:[{message:t,errorId:n}],originalCommand:e}}function vgt(e){if(typeof Buffer<`u`)return Buffer.from(e,`utf16le`).toString(`base64`);let t=[];for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);t.push(r&255,r>>8&255)}return btoa(t.map(e=>String.fromCharCode(e)).join(``))}function ygt(e){return`$EncodedCommand = '${typeof Buffer<`u`?Buffer.from(e,`utf8`).toString(`base64`):btoa(new TextEncoder().encode(e).reduce((e,t)=>e+String.fromCharCode(t),``))}'\n${UU}`}function PU(e){return e==null?[]:Array.isArray(e)?e:[e]}function bgt(e){switch(e){case`PipelineAst`:return`PipelineAst`;case`PipelineChainAst`:return`PipelineChainAst`;case`AssignmentStatementAst`:return`AssignmentStatementAst`;case`IfStatementAst`:return`IfStatementAst`;case`ForStatementAst`:return`ForStatementAst`;case`ForEachStatementAst`:return`ForEachStatementAst`;case`WhileStatementAst`:return`WhileStatementAst`;case`DoWhileStatementAst`:return`DoWhileStatementAst`;case`DoUntilStatementAst`:return`DoUntilStatementAst`;case`SwitchStatementAst`:return`SwitchStatementAst`;case`TryStatementAst`:return`TryStatementAst`;case`TrapStatementAst`:return`TrapStatementAst`;case`FunctionDefinitionAst`:return`FunctionDefinitionAst`;case`DataStatementAst`:return`DataStatementAst`;default:return`UnknownStatementAst`}}function FU(e,t){switch(e){case`ScriptBlockExpressionAst`:return`ScriptBlock`;case`SubExpressionAst`:case`ArrayExpressionAst`:return`SubExpression`;case`ExpandableStringExpressionAst`:return`ExpandableString`;case`InvokeMemberExpressionAst`:case`MemberExpressionAst`:return`MemberInvocation`;case`VariableExpressionAst`:return`Variable`;case`StringConstantExpressionAst`:case`ConstantExpressionAst`:return`StringConstant`;case`CommandParameterAst`:return`Parameter`;case`ParenExpressionAst`:return`SubExpression`;case`CommandExpressionAst`:return t?FU(t):`Other`;default:return`Other`}}function xgt(e){return/^[A-Za-z]+-[A-Za-z][A-Za-z0-9_]*$/.test(e)?`cmdlet`:/[.\\/]/.test(e)?`application`:`unknown`}function IU(e){let t=e.lastIndexOf(`\\`);return t<0||/^[A-Za-z]:/.test(e)||e.startsWith(`\\\\`)||e.startsWith(`.\\`)||e.startsWith(`..\\`)?e:e.substring(t+1)}function Sgt(e){let t=PU(e.commandElements),n=``,r=[],i=[],a=[],o=!1,s=`unknown`;if(t.length>0){let e=t[0],c=((e.type===`StringConstantExpressionAst`||e.type===`ExpandableStringExpressionAst`)&&typeof e.value==`string`?e.value:e.text).replace(/^['"]|['"]$/g,``);s=/[\u0080-\uFFFF]/.test(c)?`application`:xgt(c),n=IU(c),i.push(FU(e.type,e.expressionType));for(let e=1;e<t.length;e++){let n=t[e],s=n.type===`StringConstantExpressionAst`||n.type===`ExpandableStringExpressionAst`;r.push(s&&n.value!=null?n.value:n.text),i.push(FU(n.type,n.expressionType));let c=PU(n.children);c.length>0?(o=!0,a.push(c.map(e=>({type:FU(e.type),text:e.text})))):a.push(void 0)}}let c={name:n,nameType:s,elementType:`CommandAst`,args:r,text:e.text,elementTypes:i,...o?{children:a}:{}},l=PU(e.redirections);return l.length>0&&(c.redirections=l.map(LU)),c}function Cgt(e){let t=e.type===`ParenExpressionAst`?`ParenExpressionAst`:`CommandExpressionAst`,n=[FU(e.type,e.expressionType)];return{name:e.text,nameType:`unknown`,elementType:t,args:[],text:e.text,elementTypes:n}}function LU(e){if(e.type===`MergingRedirectionAst`)return{operator:`2>&1`,target:``,isMerging:!0};let t=e.append??!1,n=e.fromStream??`Output`,r;if(t)switch(n){case`Error`:r=`2>>`;break;case`All`:r=`*>>`;break;default:r=`>>`;break}else switch(n){case`Error`:r=`2>`;break;case`All`:r=`*>`;break;default:r=`>`;break}return{operator:r,target:e.locationText??``,isMerging:!1}}function wgt(e){let t=bgt(e.type),n=[],r=[];if(e.elements){for(let t of PU(e.elements))if(t.type===`CommandAst`){n.push(Sgt(t));for(let e of PU(t.redirections))r.push(LU(e))}else{n.push(Cgt(t));for(let e of PU(t.redirections))r.push(LU(e))}let t=new Set(r.map(e=>`${e.operator}\0${e.target}`));for(let n of PU(e.redirections)){let e=LU(n),i=`${e.operator}\0${e.target}`;t.has(i)||(t.add(i),r.push(e))}}else{n.push({name:e.text,nameType:`unknown`,elementType:`CommandExpressionAst`,args:[],text:e.text});for(let t of PU(e.redirections))r.push(LU(t))}let i,a=PU(e.nestedCommands);a.length>0&&(i=a.map(Sgt));let o={statementType:t,commands:n,redirections:r,text:e.text,nestedCommands:i};return e.securityPatterns&&(o.securityPatterns=e.securityPatterns),o}function Tgt(e){let t={valid:e.valid,errors:PU(e.errors),statements:PU(e.statements).map(wgt),variables:PU(e.variables),hasStopParsing:e.hasStopParsing,originalCommand:e.originalCommand},n=PU(e.typeLiterals);return n.length>0&&(t.typeLiterals=n),e.hasUsingStatements&&(t.hasUsingStatements=!0),e.hasScriptRequirements&&(t.hasScriptRequirements=!0),t}async function Egt(e){let t=Buffer.byteLength(e,`utf8`);if(t>WU)return U(`PowerShell parser: command too long (${t} bytes, max ${WU})`),NU(e,`Command too long for parsing (${t} bytes). Maximum supported length is ${WU} bytes.`,`CommandTooLong`);let n=await YH();if(!n)return NU(e,`PowerShell is not available`,`NoPowerShell`);let r=[`-NoProfile`,`-NonInteractive`,`-NoLogo`,`-EncodedCommand`,vgt(ygt(e))],i=_gt(),a=``,o=``,s=null,c=!1;for(let t=0;t<2;t++){try{let e=await co(n,r,{timeout:i,reject:!1});a=e.stdout,o=e.stderr,c=e.timedOut,s=e.failed?e.exitCode??1:0}catch(t){return U(`PowerShell parser: failed to spawn pwsh: ${t instanceof Error?t.message:t}`),NU(e,`Failed to spawn PowerShell: ${t instanceof Error?t.message:t}`,`PwshSpawnError`)}if(!c)break;U(`PowerShell parser: pwsh timed out after ${i}ms (attempt ${t+1})`)}if(c)return NU(e,`pwsh timed out after ${i}ms (2 attempts)`,`PwshTimeout`);if(s!==0)return U(`PowerShell parser: pwsh exited with code ${s}, stderr: ${o}`),NU(e,`pwsh exited with code ${s}: ${o}`,`PwshError`);let l=a.trim();if(!l)return U(`PowerShell parser: empty stdout from pwsh`),NU(e,`No output from PowerShell parser`,`EmptyOutput`);try{return Tgt(Da(l))}catch{return U(`PowerShell parser: invalid JSON output: ${l.slice(0,200)}`),NU(e,`Invalid JSON from PowerShell parser`,`InvalidJson`)}}function Dgt(e){let t=[];for(let n of e.statements){for(let e of n.commands)t.push(e.name.toLowerCase());if(n.nestedCommands)for(let e of n.nestedCommands)t.push(e.name.toLowerCase())}return t}function RU(e){let t=[];for(let n of e.statements){for(let e of n.commands)t.push(e);if(n.nestedCommands)for(let e of n.nestedCommands)t.push(e)}return t}function Ogt(e){let t=[];for(let n of e.statements){for(let e of n.redirections)t.push(e);if(n.nestedCommands){for(let e of n.nestedCommands)if(e.redirections)for(let n of e.redirections)t.push(n)}}return t}function kgt(e,t){let n=t.toLowerCase()+`:`;return e.variables.filter(e=>e.path.toLowerCase().startsWith(n))}function Agt(e,t){let n=t.toLowerCase(),r=KU[n]?.toLowerCase();for(let t of Dgt(e)){if(t===n)return!0;let e=KU[t]?.toLowerCase();if(e===n||r&&t===r||e&&r&&e===r)return!0}return!1}function zU(e,t){return t===void 0?e.length>0&&qU.has(e[0]):t===`Parameter`}function jgt(e,t,n){let r=t.toLowerCase(),i=n.toLowerCase();return e.args.some(e=>{let t=e.indexOf(`:`,1),n=(t>0?e.slice(0,t):e).replace(/`/g,``).toLowerCase();return n.startsWith(i)&&r.startsWith(n)&&n.length<=r.length})}function Mgt(e){return e.statements}function BU(e){let t=e.trim().toLowerCase();return t===`$null`||t==="${null}"}function VU(e){return Ogt(e).filter(e=>!e.isMerging&&!BU(e.target))}function HU(e){let t={hasSubExpressions:!1,hasScriptBlocks:!1,hasSplatting:!1,hasExpandableStrings:!1,hasMemberInvocations:!1,hasAssignments:!1,hasStopParsing:e.hasStopParsing};function n(e){if(e.elementTypes)for(let n of e.elementTypes)switch(n){case`ScriptBlock`:t.hasScriptBlocks=!0;break;case`SubExpression`:t.hasSubExpressions=!0;break;case`ExpandableString`:t.hasExpandableStrings=!0;break;case`MemberInvocation`:t.hasMemberInvocations=!0;break}}for(let r of e.statements){r.statementType===`AssignmentStatementAst`&&(t.hasAssignments=!0);for(let e of r.commands)n(e);if(r.nestedCommands)for(let e of r.nestedCommands)n(e);r.securityPatterns&&(r.securityPatterns.hasMemberInvocations&&(t.hasMemberInvocations=!0),r.securityPatterns.hasSubExpressions&&(t.hasSubExpressions=!0),r.securityPatterns.hasExpandableStrings&&(t.hasExpandableStrings=!0),r.securityPatterns.hasScriptBlocks&&(t.hasScriptBlocks=!0))}for(let n of e.variables)if(n.isSplatted){t.hasSplatting=!0;break}return t}var Ngt,UU,Pgt,Fgt,Igt,Lgt,Rgt,zgt,Bgt,WU,Vgt,Hgt,GU,KU,qU,JU=n((()=>{so(),W(),Ro(),ZH(),Va(),Ngt=5e3,UU=`
|
|
1206
1206
|
if (-not $EncodedCommand) {
|
|
1207
1207
|
Write-Output '{"valid":false,"errors":[{"message":"No command provided","errorId":"NoInput"}],"statements":[],"variables":[],"hasStopParsing":false,"originalCommand":""}'
|
|
1208
1208
|
exit 0
|
|
@@ -1614,7 +1614,7 @@ To complete your request, I need to fetch content from the redirected URL. Pleas
|
|
|
1614
1614
|
`),c=s>=0?r.slice(0,s):r;if(c.includes(`"isSidechain":true`)||c.includes(`"isSidechain": true`))return null;let l=Go(i,`customTitle`)||Go(r,`customTitle`)||Go(i,`aiTitle`)||Go(r,`aiTitle`)||void 0,u=rce(r)||void 0,d=Ho(r,`timestamp`),f;if(d){let e=Date.parse(d);Number.isNaN(e)||(f=e)}let p=l||Go(i,`lastPrompt`)||Go(i,`summary`)||u;if(!p)return null;let m=Go(i,`gitBranch`)||Ho(r,`gitBranch`)||void 0,h=Ho(r,`cwd`)||n||void 0,g=i.split(`
|
|
1615
1615
|
`).findLast(e=>e.startsWith(`{"type":"tag"`));return{sessionId:e,summary:p,lastModified:a,fileSize:o,customTitle:l,firstPrompt:u,gitBranch:m,cwd:h,tag:g&&Go(g,`tag`)||void 0,createdAt:f}}async function dq(e,t,n){let r;try{r=await gd(e)}catch{return[]}return(await Promise.all(r.map(async r=>{if(!r.endsWith(`.jsonl`))return null;let i=nce(r.slice(0,-6));if(!i)return null;let a=Y(e,r);if(!t)return{sessionId:i,filePath:a,mtime:0,projectPath:n};try{return{sessionId:i,filePath:a,mtime:(await xd(a)).mtime.getTime(),projectPath:n}}catch{return null}}))).filter(e=>e!==null)}async function jCt(e){let t=await $se(e.filePath);if(!t)return null;let n=ACt(e.sessionId,t,e.projectPath);return n?(e.mtime&&(n.lastModified=e.mtime),n):null}function MCt(e,t){return t.mtime===e.mtime?t.sessionId<e.sessionId?-1:+(t.sessionId>e.sessionId):t.mtime-e.mtime}async function NCt(e,t,n){e.sort(MCt);let r=[],i=t&&t>0?t:1/0,a=0,o=new Set;for(let t=0;t<e.length&&r.length<i;){let s=Math.min(t+RCt,e.length),c=e.slice(t,s),l=await Promise.all(c.map(jCt));for(let e=0;e<l.length&&r.length<i;e++){t++;let i=l[e];if(i&&!o.has(i.sessionId)){if(o.add(i.sessionId),a<n){a++;continue}r.push(i)}}}return r}async function PCt(e){let t=await Promise.all(e.map(jCt)),n=new Map;for(let e of t){if(!e)continue;let t=n.get(e.sessionId);(!t||e.lastModified>t.lastModified)&&n.set(e.sessionId,e)}let r=[...n.values()];return r.sort((e,t)=>t.lastModified===e.lastModified?t.sessionId<e.sessionId?-1:+(t.sessionId>e.sessionId):t.lastModified-e.lastModified),r}async function FCt(e,t,n){let r=await ice(e),i;if(t)try{i=await tce(r)}catch{i=[]}else i=[];if(i.length<=1){let e=await Ko(r);return e?dq(e,n,r):[]}let a=Qse(),o=process.platform===`win32`,s=i.map(e=>{let t=Wo(e);return{path:e,prefix:o?t.toLowerCase():t}});s.sort((e,t)=>t.prefix.length-e.prefix.length);let c;try{c=await gd(a,{withFileTypes:!0})}catch{let e=await Ko(r);return e?dq(e,n,r):[]}let l=[],u=new Set,d=await Ko(r);if(d){let e=Tu(d);u.add(o?e.toLowerCase():e),l.push(...await dq(d,n,r))}for(let e of c){if(!e.isDirectory())continue;let t=o?e.name.toLowerCase():e.name;if(!u.has(t)){for(let{path:r,prefix:i}of s)if(t===i||i.length>=200&&t.startsWith(i+`-`)){u.add(t),l.push(...await dq(Y(a,e.name),n,r));break}}}return l}async function ICt(e){let t=Qse(),n;try{n=await gd(t,{withFileTypes:!0})}catch{return[]}return(await Promise.all(n.filter(e=>e.isDirectory()).map(n=>dq(Y(t,n.name),e)))).flat()}async function LCt(e){let{dir:t,limit:n,offset:r,includeWorktrees:i}=e??{},a=r??0,o=n!==void 0&&n>0||a>0,s=t?await FCt(t,i??!0,o):await ICt(o);return o?NCt(s,n,a):PCt(s)}var RCt,zCt=n((()=>{Zse(),Uo(),RCt=32}));function fq(){return Y(Ii(),GCt)}async function BCt(){try{return(await xd(fq())).mtimeMs}catch{return 0}}async function VCt(){let e=fq(),t,n;try{let[r,i]=await Promise.all([xd(e),hd(e,`utf8`)]);t=r.mtimeMs;let a=parseInt(i.trim(),10);n=Number.isFinite(a)?a:void 0}catch{}if(t!==void 0&&Date.now()-t<KCt&&n!==void 0&&Ws(n))return U(`[autoDream] lock held by live PID ${n} (mtime ${Math.round((Date.now()-t)/1e3)}s ago)`),null;await pd(Ii(),{recursive:!0}),await wd(e,String(process.pid));let r;try{r=await hd(e,`utf8`)}catch{return null}return parseInt(r.trim(),10)===process.pid?t??0:null}async function HCt(e){let t=fq();try{if(e===0){await Cd(t);return}await wd(t,``);let n=e/1e3;await fme(t,n,n)}catch(e){U(`[autoDream] rollback failed: ${e.message} — next trigger delayed to minHours`)}}async function UCt(e){return(await dq(u5(fn()),!0)).filter(t=>t.mtime>e).map(e=>e.sessionId)}async function WCt(){try{await pd(Ii(),{recursive:!0}),await wd(fq(),String(process.pid))}catch(e){U(`[autoDream] recordConsolidation write failed: ${e.message}`)}}var GCt,KCt,pq=n((()=>{tn(),Xr(),W(),Gs(),zCt(),h5(),GCt=`.consolidate-lock`,KCt=3600*1e3}));function qCt(e){return typeof e==`object`&&!!e&&`type`in e&&e.type===`dream`}function JCt(e,t){let n=n7(`dream`);return Lx({...r7(n,`dream`,`dreaming`),type:`dream`,status:`running`,phase:`starting`,sessionsReviewing:t.sessionsReviewing,filesTouched:[],turns:[],abortController:t.abortController,priorMtime:t.priorMtime},e),n}function YCt(e,t,n,r){Ix(e,r,e=>{let r=new Set(e.filesTouched),i=n.filter(e=>!r.has(e)&&r.add(e));return t.text===``&&t.toolUseCount===0&&i.length===0?e:{...e,phase:i.length>0?`updating`:e.phase,filesTouched:i.length>0?[...e.filesTouched,...i]:e.filesTouched,turns:e.turns.slice(-(QCt-1)).concat(t)}})}function XCt(e,t){Ix(e,t,e=>({...e,status:`completed`,endTime:Date.now(),notified:!0,abortController:void 0}))}function ZCt(e,t){Ix(e,t,e=>({...e,status:`failed`,endTime:Date.now(),notified:!0,abortController:void 0}))}var QCt,mq,hq=n((()=>{pq(),i7(),Bx(),QCt=30,mq={name:`DreamTask`,type:`dream`,async kill(e,t){let n;Ix(e,t,e=>e.status===`running`?(e.abortController?.abort(),n=e.priorMtime,{...e,status:`killed`,endTime:Date.now(),notified:!0,abortController:void 0}):e),n!==void 0&&await HCt(n)}}})),$Ct=i({LocalWorkflowTask:()=>swt,completeWorkflowTask:()=>nwt,failWorkflowTask:()=>rwt,isLocalWorkflowTask:()=>ewt,killWorkflowTask:()=>gq,killWorkflowTasksForAgent:()=>owt,registerLocalWorkflowTask:()=>twt,retryWorkflowAgent:()=>awt,skipWorkflowAgent:()=>iwt});function ewt(e){return typeof e==`object`&&!!e&&`type`in e&&e.type===`local_workflow`}function twt(e,t){let n=n7(`local_workflow`);return Lx({...r7(n,`local_workflow`,t.description,t.toolUseId),type:`local_workflow`,status:`running`,workflowName:t.workflowName,workflowFile:t.workflowFile,summary:t.summary,agentId:t.agentId,abortController:t.abortController},e),n}function nwt(e,t){Ix(e,t,e=>({...e,status:`completed`,endTime:Date.now(),notified:!0,abortController:void 0}))}function rwt(e,t){Ix(e,t,e=>({...e,status:`failed`,endTime:Date.now(),notified:!0,abortController:void 0}))}function gq(e,t){Ix(e,t,e=>e.status===`running`?(e.abortController?.abort(),{...e,status:`killed`,endTime:Date.now(),notified:!0,abortController:void 0}):e)}function iwt(e,t,n){U(`skipWorkflowAgent: skipping agent ${t} in workflow task ${e}`),Ix(e,n,e=>e.status===`running`?{...e,pendingAgentAction:{kind:`skip`,agentId:t,requestedAt:Date.now()}}:e)}function awt(e,t,n){U(`retryWorkflowAgent: retrying agent ${t} in workflow task ${e}`),Ix(e,n,e=>e.status===`running`?{...e,pendingAgentAction:{kind:`retry`,agentId:t,requestedAt:Date.now()}}:e)}function owt(e,t,n){let r=t().tasks??{};for(let[t,i]of Object.entries(r))ewt(i)&&i.agentId===e&&i.status===`running`&&(U(`killWorkflowTasksForAgent: killing orphaned workflow task ${t} (agent ${e} exiting)`),gq(t,n))}var swt,cwt=n((()=>{i7(),W(),Bx(),swt={name:`LocalWorkflowTask`,type:`local_workflow`,async kill(e,t){gq(e,t)}}}));function lwt(){let e=[LZ,wZ,hP,mq];return _q&&e.push(_q),vq&&e.push(vq),e}function uwt(e){return lwt().find(t=>t.type===e)}var _q,vq,dwt=n((()=>{hq(),EZ(),RZ(),gP(),_q=(cwt(),e($Ct)).LocalWorkflowTask,vq=(Pat(),e(Eat)).MonitorMcpTask}));async function fwt(e,t){let{getAppState:n,setAppState:r}=t,i=n().tasks?.[e];if(!i)throw new yq(`No task found with ID: ${e}`,`not_found`);if(i.status!==`running`)throw new yq(`Task ${e} is not running (status: ${i.status})`,`not_running`);let a=uwt(i.type);if(!a)throw new yq(`Unsupported task type: ${i.type}`,`unsupported_type`);if(await a.kill(e,r),wP(i)){let t=!1;r(n=>{let r=n.tasks[e];return!r||r.notified?n:(t=!0,{...n,tasks:{...n.tasks,[e]:{...r,notified:!0}}})}),t&&wl(e,`stopped`,{toolUseId:i.toolUseId,summary:i.description})}let o=wP(i)?i.command:i.description;return{taskId:e,taskType:i.type,command:o}}var yq,pwt=n((()=>{dwt(),yl(),TP(),yq=class extends Error{constructor(e,t){super(e),this.code=t,this.name=`StopTaskError`}}}));function mwt(){return``}function hwt(e){let t=e.split(`
|
|
1616
1616
|
`),n=e;return t.length>xq&&(n=t.slice(0,xq).join(`
|
|
1617
|
-
`)),st(n)>Sq&&(n=vce(n,Sq)),n.trim()}function gwt(e,t,{verbose:n}){if(process.env.USER_TYPE===`ant`)return null;let r=e.command??``,i=n?r:hwt(r);return(0,bq.jsx)(Q,{children:(0,bq.jsxs)(z,{children:[i,i===r?` · stopped`:`… · stopped`]})})}var bq,xq,Sq,_wt=n((()=>{R(),OT(),Tt(),Ns(),bq=jt(),xq=2,Sq=160})),vwt,ywt,Cq,bwt=n((()=>{it(),Sc(),pwt(),Fs(),Va(),Rr(),_wt(),vwt=J(()=>Pe({task_id:F().optional().describe(`The ID of the background task to stop`),shell_id:F().optional().describe(`Deprecated: use task_id instead`)})),ywt=J(()=>L({message:F().describe(`Status message about the operation`),task_id:F().describe(`The ID of the task that was stopped`),task_type:F().describe(`The type of the task that was stopped`),command:F().optional().describe(`The command or description of the stopped task`)})),Cq=sc({name:Br,searchHint:`kill a running background task`,aliases:[`KillShell`],maxResultSizeChars:1e5,userFacingName:()=>process.env.USER_TYPE===`ant`?``:`Stop Task`,get inputSchema(){return vwt()},get outputSchema(){return ywt()},shouldDefer:!0,isConcurrencySafe(){return!0},toAutoClassifierInput(e){return e.task_id??e.shell_id??``},async validateInput({task_id:e,shell_id:t},{getAppState:n}){let r=e??t;if(!r)return{result:!1,message:`Missing required parameter: task_id`,errorCode:1};let i=n().tasks?.[r];return i?i.status===`running`?{result:!0}:{result:!1,message:`Task ${r} is not running (status: ${i.status})`,errorCode:3}:{result:!1,message:`No task found with ID: ${r}`,errorCode:1}},async description(){return`Stop a running background task by ID`},async prompt(){return Nre},mapToolResultToToolResultBlockParam(e,t){return{tool_use_id:t,type:`tool_result`,content:V(e)}},renderToolUseMessage:mwt,renderToolResultMessage:gwt,async call({task_id:e,shell_id:t},{getAppState:n,setAppState:r,abortController:i}){let a=e??t;if(!a)throw Error(`Missing required parameter: task_id`);let o=await fwt(a,{getAppState:n,setAppState:r});return{data:{message:`Successfully stopped task: ${o.taskId} (${o.command})`,task_id:o.taskId,task_type:o.taskType,command:o.command}}}})}));async function xwt(e){let t=Ga();for(let n of e){let e=Yo(n);try{if(!(await xd(e)).isFile())return{result:!1,message:`Attachment "${n}" is not a regular file.`,errorCode:1}}catch(e){let r=Ea(e);if(r===`ENOENT`)return{result:!1,message:`Attachment "${n}" does not exist. Current working directory: ${t}.`,errorCode:1};if(r===`EACCES`||r===`EPERM`)return{result:!1,message:`Attachment "${n}" is not accessible (permission denied).`,errorCode:1};throw e}}return{result:!0}}async function Swt(e,t){let n=[];for(let t of e){let e=Yo(t),r=await xd(e);n.push({path:e,size:r.size,isImage:fO.test(e)})}{let e=t.replBridgeEnabled||x(process.env.CLAUDE_CODE_BRIEF_UPLOAD),{uploadBriefAttachment:r}=await import(`./upload-
|
|
1617
|
+
`)),st(n)>Sq&&(n=vce(n,Sq)),n.trim()}function gwt(e,t,{verbose:n}){if(process.env.USER_TYPE===`ant`)return null;let r=e.command??``,i=n?r:hwt(r);return(0,bq.jsx)(Q,{children:(0,bq.jsxs)(z,{children:[i,i===r?` · stopped`:`… · stopped`]})})}var bq,xq,Sq,_wt=n((()=>{R(),OT(),Tt(),Ns(),bq=jt(),xq=2,Sq=160})),vwt,ywt,Cq,bwt=n((()=>{it(),Sc(),pwt(),Fs(),Va(),Rr(),_wt(),vwt=J(()=>Pe({task_id:F().optional().describe(`The ID of the background task to stop`),shell_id:F().optional().describe(`Deprecated: use task_id instead`)})),ywt=J(()=>L({message:F().describe(`Status message about the operation`),task_id:F().describe(`The ID of the task that was stopped`),task_type:F().describe(`The type of the task that was stopped`),command:F().optional().describe(`The command or description of the stopped task`)})),Cq=sc({name:Br,searchHint:`kill a running background task`,aliases:[`KillShell`],maxResultSizeChars:1e5,userFacingName:()=>process.env.USER_TYPE===`ant`?``:`Stop Task`,get inputSchema(){return vwt()},get outputSchema(){return ywt()},shouldDefer:!0,isConcurrencySafe(){return!0},toAutoClassifierInput(e){return e.task_id??e.shell_id??``},async validateInput({task_id:e,shell_id:t},{getAppState:n}){let r=e??t;if(!r)return{result:!1,message:`Missing required parameter: task_id`,errorCode:1};let i=n().tasks?.[r];return i?i.status===`running`?{result:!0}:{result:!1,message:`Task ${r} is not running (status: ${i.status})`,errorCode:3}:{result:!1,message:`No task found with ID: ${r}`,errorCode:1}},async description(){return`Stop a running background task by ID`},async prompt(){return Nre},mapToolResultToToolResultBlockParam(e,t){return{tool_use_id:t,type:`tool_result`,content:V(e)}},renderToolUseMessage:mwt,renderToolResultMessage:gwt,async call({task_id:e,shell_id:t},{getAppState:n,setAppState:r,abortController:i}){let a=e??t;if(!a)throw Error(`Missing required parameter: task_id`);let o=await fwt(a,{getAppState:n,setAppState:r});return{data:{message:`Successfully stopped task: ${o.taskId} (${o.command})`,task_id:o.taskId,task_type:o.taskType,command:o.command}}}})}));async function xwt(e){let t=Ga();for(let n of e){let e=Yo(n);try{if(!(await xd(e)).isFile())return{result:!1,message:`Attachment "${n}" is not a regular file.`,errorCode:1}}catch(e){let r=Ea(e);if(r===`ENOENT`)return{result:!1,message:`Attachment "${n}" does not exist. Current working directory: ${t}.`,errorCode:1};if(r===`EACCES`||r===`EPERM`)return{result:!1,message:`Attachment "${n}" is not accessible (permission denied).`,errorCode:1};throw e}}return{result:!0}}async function Swt(e,t){let n=[];for(let t of e){let e=Yo(t),r=await xd(e);n.push({path:e,size:r.size,isImage:fO.test(e)})}{let e=t.replBridgeEnabled||x(process.env.CLAUDE_CODE_BRIEF_UPLOAD),{uploadBriefAttachment:r}=await import(`./upload-Df84yCBz.js`),i=await Promise.all(n.map(n=>r(n.path,n.size,{replBridgeEnabled:e,signal:t.signal})));return n.map((e,t)=>i[t]===void 0?e:{...e,file_uuid:i[t]})}return n}var Cwt=n((()=>{Wa(),y(),ka(),pO(),Jo()}));function wwt(){return``}function Twt(e,t,n){let r=(e.attachments?.length??0)>0;if(!e.message&&!r)return null;if(n?.isTranscriptMode)return(0,Tq.jsxs)(B,{flexDirection:`row`,marginTop:1,children:[(0,Tq.jsx)(B,{minWidth:2,children:(0,Tq.jsx)(z,{color:`text`,children:Hn})}),(0,Tq.jsxs)(B,{flexDirection:`column`,children:[e.message?(0,Tq.jsx)(uz,{children:e.message}):null,(0,Tq.jsx)(wq,{attachments:e.attachments})]})]});if(n?.isBriefOnly){let t=e.sentAt?$st(e.sentAt):``;return(0,Tq.jsxs)(B,{flexDirection:`column`,marginTop:1,paddingLeft:2,children:[(0,Tq.jsxs)(B,{flexDirection:`row`,children:[(0,Tq.jsx)(z,{color:`briefLabelClaude`,children:`Claude`}),t?(0,Tq.jsxs)(z,{dimColor:!0,children:[` `,t]}):null]}),(0,Tq.jsxs)(B,{flexDirection:`column`,children:[e.message?(0,Tq.jsx)(uz,{children:e.message}):null,(0,Tq.jsx)(wq,{attachments:e.attachments})]})]})}return(0,Tq.jsxs)(B,{flexDirection:`row`,marginTop:1,children:[(0,Tq.jsx)(B,{minWidth:2}),(0,Tq.jsxs)(B,{flexDirection:`column`,children:[e.message?(0,Tq.jsx)(uz,{children:e.message}):null,(0,Tq.jsx)(wq,{attachments:e.attachments})]})]})}function wq({attachments:e}){return!e||e.length===0?null:(0,Tq.jsx)(B,{flexDirection:`column`,marginTop:1,children:e.map(e=>(0,Tq.jsxs)(B,{flexDirection:`row`,children:[(0,Tq.jsxs)(z,{dimColor:!0,children:[ue.pointerSmall,` `,e.isImage?`[image]`:`[file]`,` `]}),(0,Tq.jsx)(z,{children:Wr(e.path)}),(0,Tq.jsxs)(z,{dimColor:!0,children:[` (`,Os(e.size),`)`]})]},e.path))})}var Tq,Ewt=n((()=>{N(),R(),pz(),Rn(),Tt(),pi(),Ns(),nct(),Tq=jt()})),Dwt=i({BriefTool:()=>Dq,isBriefEnabled:()=>Owt,isBriefEntitled:()=>Eq});function Eq(){return Bt()||x(process.env.CLAUDE_CODE_BRIEF)||Coe(`tengu_kairos_brief`,!1,jwt)}function Owt(){return(Bt()||mn())&&Eq()}var kwt,Awt,jwt,Dq,Oq=n((()=>{it(),tn(),wr(),Ua(),Sc(),y(),Fs(),Di(),du(),Cwt(),er(),Ewt(),kwt=J(()=>Pe({message:F().describe(`The message for the user. Supports markdown formatting.`),attachments:Re(F()).optional().describe(`Optional file paths (absolute or relative to cwd) to attach. Use for photos, screenshots, diffs, logs, or any file the user should see alongside your message.`),status:Ge([`normal`,`proactive`]).describe(`Use 'proactive' when you're surfacing something the user hasn't asked for and needs to see now — task completion while they're away, a blocker you hit, an unsolicited status update. Use 'normal' when replying to something the user just said.`)})),Awt=J(()=>L({message:F().describe(`The message`),attachments:Re(L({path:F(),size:P(),isImage:We(),file_uuid:F().optional()})).optional().describe(`Resolved attachment metadata`),sentAt:F().optional().describe(`ISO timestamp captured at tool execution on the emitting process. Optional — resumed sessions replay pre-sentAt outputs verbatim.`)})),jwt=300*1e3,Dq=sc({name:Bn,aliases:[yre],searchHint:`send a message to the user — your primary visible output channel`,maxResultSizeChars:1e5,userFacingName(){return``},get inputSchema(){return kwt()},get outputSchema(){return Awt()},isEnabled(){return uu()},isConcurrencySafe(){return!0},isReadOnly(){return!0},toAutoClassifierInput(e){return e.message},async validateInput({attachments:e},t){return!e||e.length===0?{result:!0}:xwt(e)},async description(){return Nie},async prompt(){return Cie},mapToolResultToToolResultBlockParam(e,t){let n=e.attachments?.length??0;return{tool_use_id:t,type:`tool_result`,content:`Message delivered to user.${n===0?``:` (${n} ${mr(n,`attachment`)} included)`}`}},renderToolUseMessage:wwt,renderToolResultMessage:Twt,async call({message:e,attachments:t,status:n},r){let i=new Date().toISOString();return G(`tengu_brief_send`,{proactive:n===`proactive`,attachment_count:t?.length??0}),!t||t.length===0?{data:{message:e,sentAt:i}}:{data:{message:e,attachments:await Swt(t,{replBridgeEnabled:r.getAppState().replBridgeEnabled,signal:r.abortController.signal}),sentAt:i}}}})}));function Mwt(){return lH(`TASK_MAX_OUTPUT_LENGTH`,process.env.TASK_MAX_OUTPUT_LENGTH,Aq,kq).effective}function Nwt(e,t){let n=Mwt();if(e.length<=n)return{content:e,wasTruncated:!1};let r=`[Truncated. Full output: ${F5(t)}]\n\n`,i=n-r.length;return{content:r+e.slice(-i),wasTruncated:!0}}var kq,Aq,Pwt=n((()=>{uH(),e7(),kq=16e4,Aq=32e3}));function Fwt({agentType:e,description:t,name:n,descriptionColor:r,taskDescription:i,toolUseCount:a,tokens:o,color:s,isLast:c,isResolved:l,isError:u,isAsync:d=!1,shouldAnimate:f,lastToolInfo:p,hideType:m=!1}){let h=c?`└─`:`├─`,g=d&&l;return(0,jq.jsxs)(B,{flexDirection:`column`,children:[(0,jq.jsxs)(B,{paddingLeft:3,children:[(0,jq.jsxs)(z,{dimColor:!0,children:[h,` `]}),(0,jq.jsxs)(z,{dimColor:!l,children:[m?(0,jq.jsxs)(jq.Fragment,{children:[(0,jq.jsx)(z,{bold:!0,children:n??t??e}),n&&t&&(0,jq.jsxs)(z,{dimColor:!0,children:[`: `,t]})]}):(0,jq.jsxs)(jq.Fragment,{children:[(0,jq.jsx)(z,{bold:!0,backgroundColor:s,color:s?`inverseText`:void 0,children:e}),t&&(0,jq.jsxs)(jq.Fragment,{children:[` (`,(0,jq.jsx)(z,{backgroundColor:r,color:r?`inverseText`:void 0,children:t}),`)`]})]}),!g&&(0,jq.jsxs)(jq.Fragment,{children:[` · `,a,` tool `,a===1?`use`:`uses`,o!==null&&(0,jq.jsxs)(jq.Fragment,{children:[` · `,As(o),` tokens`]})]})]})]}),!g&&(0,jq.jsxs)(B,{paddingLeft:3,flexDirection:`row`,children:[(0,jq.jsx)(z,{dimColor:!0,children:c?` ⎿ `:`│ ⎿ `}),(0,jq.jsx)(z,{dimColor:!0,children:l?g?i??`Running in the background`:`Done`:p||`Initializing…`})]})]})}var jq,Iwt=n((()=>{R(),Tt(),Ns(),jq=jt()}));function Lwt(){return`${Rwt} When you complete the task, respond with a concise report covering what was done and any key findings — the caller will relay this to the user, so it only needs the essentials.
|
|
1618
1618
|
|
|
1619
1619
|
${zwt}`}var Rwt,zwt,Mq,Nq=n((()=>{Rwt=`You are an agent for Claude Code, Anthropic's official CLI for Claude. Given the user's message, you should use the tools available to complete the task. Complete the task fully—don't gold-plate, but don't leave it half-done.`,zwt=`Your strengths:
|
|
1620
1620
|
- Searching for code, configurations, and patterns across large codebases
|
|
@@ -1888,7 +1888,7 @@ ${n}
|
|
|
1888
1888
|
- model - Override the default model. Available options:
|
|
1889
1889
|
${NJ().map(e=>` - ${e.value===null?`null/"default"`:`"${e.value}"`}: ${e.descriptionForModel??e.description}`).join(`
|
|
1890
1890
|
`)}`}catch{return`## Model
|
|
1891
|
-
- model - Override the default model (sonnet, opus, haiku, best, or full model ID)`}}var yOt,bOt=n((()=>{IJ(),Zfe(),gOt(),yOt=`Get or set Claude Code configuration settings.`}));function xOt(e){return e.setting?e.value===void 0?(0,VJ.jsxs)(z,{dimColor:!0,children:[`Getting `,e.setting]}):(0,VJ.jsxs)(z,{dimColor:!0,children:[`Setting `,e.setting,` to `,V(e.value)]}):null}function SOt(e){return e.success?e.operation===`get`?(0,VJ.jsx)(Q,{children:(0,VJ.jsxs)(z,{children:[(0,VJ.jsx)(z,{bold:!0,children:e.setting}),` = `,V(e.value)]})}):(0,VJ.jsx)(Q,{children:(0,VJ.jsxs)(z,{children:[`Set `,(0,VJ.jsx)(z,{bold:!0,children:e.setting}),` to `,(0,VJ.jsx)(z,{bold:!0,children:V(e.newValue)})]})}):(0,VJ.jsx)(Q,{children:(0,VJ.jsxs)(z,{color:`error`,children:[`Failed: `,e.error]})})}function COt(){return(0,VJ.jsx)(z,{color:`warning`,children:`Config change rejected`})}var VJ,wOt=n((()=>{R(),OT(),Tt(),Va(),VJ=jt()}));function TOt(e,t){if(e===`global`){let e=Tr(),n=t[0];return n?e[n]:void 0}let n=Qn();for(let e of t)if(n&&typeof n==`object`&&e in n)n=n[e];else return;return n}function EOt(e,t){if(e.length===0)return{};let n=e[0];return e.length===1?{[n]:t}:{[n]:EOt(e.slice(1),t)}}var DOt,OOt,kOt,AOt=n((()=>{it(),Ua(),Sc(),xn(),ka(),Fs(),Ao(),Gi(),Va(),KDt(),bOt(),gOt(),wOt(),DOt=J(()=>Pe({setting:F().describe(`The setting key (e.g., "theme", "model", "permissions.defaultMode")`),value:Be([F(),We(),P()]).optional().describe(`The new value. Omit to get current value.`)})),OOt=J(()=>L({success:We(),operation:Ge([`get`,`set`]).optional(),setting:F().optional(),value:ze().optional(),previousValue:ze().optional(),newValue:ze().optional(),error:F().optional()})),kOt=sc({name:GDt,searchHint:`get or set Claude Code settings (theme, model)`,maxResultSizeChars:1e5,async description(){return yOt},async prompt(){return _Ot()},get inputSchema(){return DOt()},get outputSchema(){return OOt()},userFacingName(){return`Config`},shouldDefer:!0,isConcurrencySafe(){return!0},isReadOnly(e){return e.value===void 0},toAutoClassifierInput(e){return e.value===void 0?e.setting:`${e.setting} = ${e.value}`},async checkPermissions(e){return e.value===void 0?{behavior:`allow`,updatedInput:e}:{behavior:`ask`,message:`Set ${e.setting} to ${V(e.value)}`}},renderToolUseMessage:xOt,renderToolResultMessage:SOt,renderToolUseRejectedMessage:COt,async call({setting:e,value:t},n){if(e===`voiceEnabled`){let{isVoiceGrowthBookEnabled:t}=await import(`./voiceModeEnabled-
|
|
1891
|
+
- model - Override the default model (sonnet, opus, haiku, best, or full model ID)`}}var yOt,bOt=n((()=>{IJ(),Zfe(),gOt(),yOt=`Get or set Claude Code configuration settings.`}));function xOt(e){return e.setting?e.value===void 0?(0,VJ.jsxs)(z,{dimColor:!0,children:[`Getting `,e.setting]}):(0,VJ.jsxs)(z,{dimColor:!0,children:[`Setting `,e.setting,` to `,V(e.value)]}):null}function SOt(e){return e.success?e.operation===`get`?(0,VJ.jsx)(Q,{children:(0,VJ.jsxs)(z,{children:[(0,VJ.jsx)(z,{bold:!0,children:e.setting}),` = `,V(e.value)]})}):(0,VJ.jsx)(Q,{children:(0,VJ.jsxs)(z,{children:[`Set `,(0,VJ.jsx)(z,{bold:!0,children:e.setting}),` to `,(0,VJ.jsx)(z,{bold:!0,children:V(e.newValue)})]})}):(0,VJ.jsx)(Q,{children:(0,VJ.jsxs)(z,{color:`error`,children:[`Failed: `,e.error]})})}function COt(){return(0,VJ.jsx)(z,{color:`warning`,children:`Config change rejected`})}var VJ,wOt=n((()=>{R(),OT(),Tt(),Va(),VJ=jt()}));function TOt(e,t){if(e===`global`){let e=Tr(),n=t[0];return n?e[n]:void 0}let n=Qn();for(let e of t)if(n&&typeof n==`object`&&e in n)n=n[e];else return;return n}function EOt(e,t){if(e.length===0)return{};let n=e[0];return e.length===1?{[n]:t}:{[n]:EOt(e.slice(1),t)}}var DOt,OOt,kOt,AOt=n((()=>{it(),Ua(),Sc(),xn(),ka(),Fs(),Ao(),Gi(),Va(),KDt(),bOt(),gOt(),wOt(),DOt=J(()=>Pe({setting:F().describe(`The setting key (e.g., "theme", "model", "permissions.defaultMode")`),value:Be([F(),We(),P()]).optional().describe(`The new value. Omit to get current value.`)})),OOt=J(()=>L({success:We(),operation:Ge([`get`,`set`]).optional(),setting:F().optional(),value:ze().optional(),previousValue:ze().optional(),newValue:ze().optional(),error:F().optional()})),kOt=sc({name:GDt,searchHint:`get or set Claude Code settings (theme, model)`,maxResultSizeChars:1e5,async description(){return yOt},async prompt(){return _Ot()},get inputSchema(){return DOt()},get outputSchema(){return OOt()},userFacingName(){return`Config`},shouldDefer:!0,isConcurrencySafe(){return!0},isReadOnly(e){return e.value===void 0},toAutoClassifierInput(e){return e.value===void 0?e.setting:`${e.setting} = ${e.value}`},async checkPermissions(e){return e.value===void 0?{behavior:`allow`,updatedInput:e}:{behavior:`ask`,message:`Set ${e.setting} to ${V(e.value)}`}},renderToolUseMessage:xOt,renderToolResultMessage:SOt,renderToolUseRejectedMessage:COt,async call({setting:e,value:t},n){if(e===`voiceEnabled`){let{isVoiceGrowthBookEnabled:t}=await import(`./voiceModeEnabled-BqFYzoXw.js`);if(!t())return{data:{success:!1,error:`Unknown setting: "${e}"`}}}if(!fOt(e))return{data:{success:!1,error:`Unknown setting: "${e}"`}};let r=pOt(e),i=hOt(e);if(t===void 0){let t=TOt(r.source,i);return{data:{success:!0,operation:`get`,setting:e,value:r.formatOnRead?r.formatOnRead(t):t}}}if(e===`remoteControlAtStartup`&&typeof t==`string`&&t.toLowerCase().trim()===`default`){fr(e=>{if(e.remoteControlAtStartup===void 0)return e;let t={...e};return delete t.remoteControlAtStartup,t});let t=cr();return n.setAppState(e=>e.replBridgeEnabled===t&&!e.replBridgeOutboundOnly?e:{...e,replBridgeEnabled:t,replBridgeOutboundOnly:!1}),{data:{success:!0,operation:`set`,setting:e,value:t}}}let a=t;if(r.type===`boolean`){if(typeof t==`string`){let e=t.toLowerCase().trim();e===`true`?a=!0:e===`false`&&(a=!1)}if(typeof a!=`boolean`)return{data:{success:!1,operation:`set`,setting:e,error:`${e} requires true or false.`}}}let o=mOt(e);if(o&&!o.includes(String(a)))return{data:{success:!1,operation:`set`,setting:e,error:`Invalid value "${t}". Options: ${o.join(`, `)}`}};if(r.validateOnWrite){let t=await r.validateOnWrite(a);if(!t.valid)return{data:{success:!1,operation:`set`,setting:e,error:t.error}}}if(e===`voiceEnabled`&&a===!0){let{isVoiceModeEnabled:e}=await import(`./voiceModeEnabled-BqFYzoXw.js`);if(!e()){let{isAnthropicAuthEnabled:e}=await import(`./auth-DxRiJwZ-.js`);return{data:{success:!1,error:e()?`Voice mode is not available.`:`Voice mode requires a Claude.ai account. Please run /login to sign in.`}}}let{isVoiceStreamAvailable:t}=await import(`./voiceStreamSTT-C0pkuXGm.js`),{checkRecordingAvailability:n,checkVoiceDependencies:r,requestMicrophonePermission:i}=await import(`./voice-DXiiy8HX.js`),a=await n();if(!a.available)return{data:{success:!1,error:a.reason??`Voice mode is not available in this environment.`}};if(!t())return{data:{success:!1,error:`Voice mode requires a Claude.ai account. Please run /login to sign in.`}};let o=await r();if(!o.available)return{data:{success:!1,error:`No audio recording tool found.`+(o.installCommand?` Run: ${o.installCommand}`:``)}};if(!await i()){let e;return e=process.platform===`win32`?`Settings → Privacy → Microphone`:process.platform===`linux`?`your system's audio settings`:`System Settings → Privacy & Security → Microphone`,{data:{success:!1,error:`Microphone access is denied. To enable it, go to ${e}, then try again.`}}}}let s=TOt(r.source,i);try{if(r.source===`global`){let t=i[0];if(!t)return{data:{success:!1,operation:`set`,setting:e,error:`Invalid setting path`}};fr(e=>e[t]===a?e:{...e,[t]:a})}else{let t=Ni(`userSettings`,EOt(i,a));if(t.error)return{data:{success:!1,operation:`set`,setting:e,error:t.error.message}}}if(e===`voiceEnabled`){let{settingsChangeDetector:e}=await import(`./changeDetector-DTXMv7gH.js`);e.notifyChange(`userSettings`)}if(r.appStateKey){let e=r.appStateKey;n.setAppState(t=>t[e]===a?t:{...t,[e]:a})}if(e===`remoteControlAtStartup`){let e=cr();n.setAppState(t=>t.replBridgeEnabled===e&&!t.replBridgeOutboundOnly?t:{...t,replBridgeEnabled:e,replBridgeOutboundOnly:!1})}return G(`tengu_config_tool_changed`,{setting:e,value:String(a)}),{data:{success:!0,operation:`set`,setting:e,previousValue:s,newValue:a}}}catch(t){return q(t),{data:{success:!1,operation:`set`,setting:e,error:H(t)}}}},mapToolResultToToolResultBlockParam(e,t){return e.success?e.operation===`get`?{tool_use_id:t,type:`tool_result`,content:`${e.setting} = ${V(e.value)}`}:{tool_use_id:t,type:`tool_result`,content:`Set ${e.setting} to ${V(e.newValue)}`}:{tool_use_id:t,type:`tool_result`,content:`Error: ${e.error}`,is_error:!0}}})}));function HJ(e){if(!e)throw Error(`Empty key`);if(e.length>WJ)throw Error(`Key too long (max ${WJ})`);if(!jOt.test(e))throw Error(`Invalid key chars: ${JSON.stringify(e)}`);if(e.startsWith(`.`))throw Error(`Leading dot forbidden`);let t=e.includes(`.`)?e.split(`.`)[0]:e;if(MOt.test(t))throw Error(`Windows reserved name: ${e}`)}function UJ(e){try{return HJ(e),!0}catch{return!1}}var jOt,MOt,WJ,GJ=n((()=>{jOt=/^[A-Za-z0-9._-]+$/,MOt=/^(CON|PRN|AUX|NUL|COM[1-9]|LPT[1-9])$/i,WJ=128}));function NOt(){let e=process.env.CLAUDE_CONFIG_DIR??Ru(td(),`.claude`);if(YJ&&YJ.configDir===e)return YJ.baseDir;let t=Ru(e,`local-memory`);return YJ={configDir:e,baseDir:t},t}function KJ(e){return Ru(NOt(),e)}function qJ(e,t){return HJ(t),Ru(KJ(e),`${t}.md`)}function POt(e){try{return JJ(e),!0}catch{return!1}}function JJ(e){if(!e)throw Error(`Invalid store name: store name must not be empty.`);if(e.length>XJ)throw Error(`Invalid store name: "${e.slice(0,20)}…" is too long (max ${XJ} chars).`);if(/[/\\:]/.test(e)||e.includes(`\0`))throw Error(`Invalid store name: "${e}" contains illegal characters (path separators, null byte, or colon).`);if(e.startsWith(`.`))throw Error(`Invalid store name: "${e}" must not start with ".".`);if(Ape(e)!==e)throw Error(`Invalid store name: "${e}" is path-like and would escape the base directory.`)}function FOt(){let e=NOt();return qu(e)?Xu(e,{withFileTypes:!0}).filter(e=>e.isDirectory()&&!e.name.endsWith(`.archived`)).map(e=>e.name).sort():[]}function IOt(e){JJ(e);let t=KJ(e);if(qu(t))throw Error(`Store "${e}" already exists`);Ju(t,{recursive:!0})}function LOt(e){JJ(e);let t=KJ(e);if(!qu(t))throw Error(`Store "${e}" does not exist`);Zu(t,t+`.archived`)}function ROt(e,t,n){JJ(e),HJ(t);let r=Buffer.byteLength(n,`utf8`);if(r>UOt)throw Error(`Entry value too large: ${r} bytes exceeds the 1 MB limit. Use external storage for large data.`);let i=KJ(e);qu(i)||Ju(i,{recursive:!0});let a=qJ(e,t),o=Ru(i,`.${rd(8).toString(`hex`)}.tmp`);try{$u(o,n,`utf8`),Zu(o,a)}catch(e){try{Qu(o,{force:!0})}catch{}throw e}}function zOt(e,t){JJ(e),HJ(t);let n=qJ(e,t);return qu(n)?Yu(n,`utf8`):null}function BOt(e,t,n){JJ(e),HJ(t);let r=qJ(e,t);if(!qu(r))return null;let i=nme(r).size,a=Math.min(i,n),o=Buffer.alloc(a),s=eme(r,`r`),c=0;try{for(;c<a;){let e=tme(s,o,c,a-c,c);if(e===0||e<0)break;c+=e}}finally{Qpe(s)}let l=i>n||c<a;return{value:o.subarray(0,c).toString(`utf8`),truncated:l}}function VOt(e){JJ(e);let t=KJ(e);return qu(t)?Xu(t).filter(e=>e.endsWith(`.md`)).map(e=>e.slice(0,-3)).sort():[]}function HOt(e,t){JJ(e);let n=KJ(e);if(!qu(n))return{entries:[],truncated:!1};let r=[],i=0;for(let e of Xu(n)){if(!e.endsWith(`.md`))continue;i++;let n=e.slice(0,-3);if(r.length<t){let e=0;for(;e<r.length&&r[e]<n;)e++;r.splice(e,0,n)}else if(n<r[t-1]){let e=0;for(;e<r.length&&r[e]<n;)e++;r.splice(e,0,n),r.pop()}}return{entries:r,truncated:i>t}}var YJ,XJ,UOt,WOt=n((()=>{GJ(),XJ=255,UOt=1048576})),GOt,KOt,qOt=n((()=>{GOt=`Recall the user's local cross-session notes stored in ~/.claude/local-memory/. The user manages these via /local-memory CLI (list, create, store, fetch, archive). Use this tool when the user references prior notes, says 'last time' or 'my saved X', or when continuing multi-session work. This tool is read-only — to write notes, ask the user to run /local-memory store. Default behavior returns a 2KB preview; set preview_only=false to fetch full content (will trigger a permission prompt unless permissions.allow contains 'LocalMemoryRecall(fetch:store/key)' for that exact key).`,KOt=`LocalMemoryRecall — read-only access to user-stored cross-session notes.
|
|
1892
1892
|
|
|
1893
1893
|
Actions:
|
|
1894
1894
|
list_stores → list all stores under ~/.claude/local-memory/
|
|
@@ -2152,14 +2152,14 @@ Examples:
|
|
|
2152
2152
|
Guidelines:
|
|
2153
2153
|
- Use absolute paths
|
|
2154
2154
|
- The file must exist and be readable
|
|
2155
|
-
- Large files may take time to transfer`},isEnabled(){return uu()},isConcurrencySafe(){return!0},isReadOnly(){return!0},userFacingName(){return`SendFile`},renderToolUseMessage(e){return`Send file: ${e.file_path??`...`}`},mapToolResultToToolResultBlockParam(e,t){return{tool_use_id:t,type:`tool_result`,content:e.sent?`File sent: ${e.file_path}`:`Failed to send file: ${e.file_path}`}},async call(e,t){let{file_path:n}=e,{stat:r}=await import(`fs/promises`),i;try{let e=await r(n);if(!e.isFile())return{data:{sent:!1,file_path:n,error:`Path is not a file.`}};i=e.size}catch{return{data:{sent:!1,file_path:n,error:`File does not exist or is not readable.`}}}let a=t.getAppState(),o;if(a.replBridgeEnabled)try{let{uploadBriefAttachment:e}=await import(`./upload-
|
|
2155
|
+
- Large files may take time to transfer`},isEnabled(){return uu()},isConcurrencySafe(){return!0},isReadOnly(){return!0},userFacingName(){return`SendFile`},renderToolUseMessage(e){return`Send file: ${e.file_path??`...`}`},mapToolResultToToolResultBlockParam(e,t){return{tool_use_id:t,type:`tool_result`,content:e.sent?`File sent: ${e.file_path}`:`Failed to send file: ${e.file_path}`}},async call(e,t){let{file_path:n}=e,{stat:r}=await import(`fs/promises`),i;try{let e=await r(n);if(!e.isFile())return{data:{sent:!1,file_path:n,error:`Path is not a file.`}};i=e.size}catch{return{data:{sent:!1,file_path:n,error:`File does not exist or is not readable.`}}}let a=t.getAppState(),o;if(a.replBridgeEnabled)try{let{uploadBriefAttachment:e}=await import(`./upload-Df84yCBz.js`);o=await e(n,i,{replBridgeEnabled:!0,signal:t.abortController.signal})}catch{}let s=!a.replBridgeEnabled||!!o;return{data:{sent:s,file_path:n,size:i,...o?{file_uuid:o}:{},...s?{}:{error:`Bridge upload failed. File available at local path.`}}}}})})),Hjt=i({PushNotificationTool:()=>Gjt}),Ujt,Wjt,Gjt,Kjt=n((()=>{it(),Sc(),Fs(),W(),du(),Ujt=`PushNotification`,Wjt=J(()=>Pe({title:F().describe(`Title of the push notification.`),body:F().describe(`Body text of the push notification.`),priority:Ge([`normal`,`high`]).optional().describe(`Notification priority. Use "high" for blockers or permission prompts.`)})),Gjt=sc({name:Ujt,searchHint:`push notification mobile alert notify user`,maxResultSizeChars:1e3,strict:!0,get inputSchema(){return Wjt()},async description(){return`Send a push notification to the user's mobile device`},async prompt(){return`Send a push notification to the user's mobile device via Remote Control.
|
|
2156
2156
|
|
|
2157
2157
|
Use this when:
|
|
2158
2158
|
- A long-running task completes and the user may not be watching
|
|
2159
2159
|
- A permission prompt is waiting and you need user input
|
|
2160
2160
|
- Something urgent requires the user's attention
|
|
2161
2161
|
|
|
2162
|
-
Requires Remote Control to be configured. Respects user notification settings (taskCompleteNotifEnabled, inputNeededNotifEnabled, agentPushNotifEnabled).`},isEnabled(){return uu()},isConcurrencySafe(){return!0},isReadOnly(){return!0},userFacingName(){return`Notify`},renderToolUseMessage(e){return`Push: ${e.title??`...`}`},mapToolResultToToolResultBlockParam(e,t){return{tool_use_id:t,type:`tool_result`,content:e.sent?`Notification sent.`:`Failed to send notification.`}},async call(e,t){if(t.getAppState().replBridgeEnabled)try{let{getBridgeAccessToken:t,getBridgeBaseUrl:n}=await import(`./bridgeConfig-
|
|
2162
|
+
Requires Remote Control to be configured. Respects user notification settings (taskCompleteNotifEnabled, inputNeededNotifEnabled, agentPushNotifEnabled).`},isEnabled(){return uu()},isConcurrencySafe(){return!0},isReadOnly(){return!0},userFacingName(){return`Notify`},renderToolUseMessage(e){return`Push: ${e.title??`...`}`},mapToolResultToToolResultBlockParam(e,t){return{tool_use_id:t,type:`tool_result`,content:e.sent?`Notification sent.`:`Failed to send notification.`}},async call(e,t){if(t.getAppState().replBridgeEnabled)try{let{getBridgeAccessToken:t,getBridgeBaseUrl:n}=await import(`./bridgeConfig-Dkn5GGec.js`),{getSessionId:r}=await import(`./state-B2GIOsTB.js`),i=t(),a=r();if(i&&a){let t=n(),r=await(await import(`./axios-DLnc2dVy.js`)).default.post(`${t}/v1/sessions/${a}/events`,{events:[{type:`push_notification`,title:e.title,body:e.body,priority:e.priority??`normal`}]},{headers:{Authorization:`Bearer ${i}`,"Content-Type":`application/json`,"anthropic-version":`2023-06-01`},timeout:1e4,validateStatus:e=>e<500});if(r.status>=200&&r.status<300)return U(`[PushNotification] delivered via bridge session=${a}`),{data:{sent:!0}};U(`[PushNotification] bridge delivery failed: status=${r.status}`)}}catch(e){U(`[PushNotification] bridge delivery error: ${e}`)}return U(`[PushNotification] no bridge available, not delivered: ${e.title}`),{data:{sent:!1,error:`No Remote Control bridge configured. Notification not delivered.`}}}})})),bY,xY,qjt=n((()=>{it(),Fs(),bY=J(()=>rt.enum([`allow`,`deny`,`ask`])),xY=J(()=>rt.object({toolName:rt.string(),ruleContent:rt.string().optional()}))})),SY,CY,wY=n((()=>{it(),Fs(),sr(),qjt(),SY=J(()=>rt.enum([`userSettings`,`projectSettings`,`localSettings`,`session`,`cliArg`])),CY=J(()=>rt.discriminatedUnion(`type`,[rt.object({type:rt.literal(`addRules`),rules:rt.array(xY()),behavior:bY(),destination:SY()}),rt.object({type:rt.literal(`replaceRules`),rules:rt.array(xY()),behavior:bY(),destination:SY()}),rt.object({type:rt.literal(`removeRules`),rules:rt.array(xY()),behavior:bY(),destination:SY()}),rt.object({type:rt.literal(`setMode`),mode:jae(),destination:SY()}),rt.object({type:rt.literal(`addDirectories`),directories:rt.array(rt.string()),destination:SY()}),rt.object({type:rt.literal(`removeDirectories`),directories:rt.array(rt.string()),destination:SY()})]))}));function Jjt(){return`perm-${Date.now()}-${Math.random().toString(36).substring(2,9)}`}function Yjt(e){let t=e.teamName||ds(),n=e.workerId||bs(),r=e.workerName||vs(),i=e.workerColor||ys();if(!t)throw Error(`Team name is required for permission requests`);if(!n)throw Error(`Worker ID is required for permission requests`);if(!r)throw Error(`Worker name is required for permission requests`);return{id:Jjt(),workerId:n,workerName:r,workerColor:i,teamName:t,toolName:e.toolName,toolUseId:e.toolUseId,description:e.description,input:e.input,permissionSuggestions:e.permissionSuggestions||[],status:`pending`,createdAt:Date.now()}}function Xjt(e){if(!(e||ds()))return!1;let t=bs();return!t||t===`team-lead`}function Zjt(){let e=ds(),t=bs();return!!e&&!!t&&!Xjt()}async function Qjt(e){let t=e||ds();if(!t)return null;let n=await ql(t);return n?n.members.find(e=>e.agentId===n.leadAgentId)?.name||`team-lead`:(U(`[PermissionSync] Team file not found for team: ${t}`),null)}async function $jt(e){let t=await Qjt(e.teamName);if(!t)return U(`[PermissionSync] Cannot send permission request: leader name not found`),!1;try{let n=kut({request_id:e.id,agent_id:e.workerName,tool_name:e.toolName,tool_use_id:e.toolUseId,description:e.description,input:e.input,permission_suggestions:e.permissionSuggestions});return await fB(t,{from:e.workerName,text:V(n),timestamp:new Date().toISOString(),color:e.workerColor},e.teamName),U(`[PermissionSync] Sent permission request ${e.id} to leader ${t} via mailbox`),!0}catch(e){return U(`[PermissionSync] Failed to send permission request via mailbox: ${e}`),q(e),!1}}async function eMt(e,t,n,r){let i=r||ds();if(!i)return U(`[PermissionSync] Cannot send permission response: team name not found`),!1;try{let r=Aut({request_id:n,subtype:t.decision===`approved`?`success`:`error`,error:t.feedback,updated_input:t.updatedInput,permission_updates:t.permissionUpdates});return await fB(e,{from:vs()||`team-lead`,text:V(r),timestamp:new Date().toISOString()},i),U(`[PermissionSync] Sent permission response for ${n} to worker ${e} via mailbox`),!0}catch(e){return U(`[PermissionSync] Failed to send permission response via mailbox: ${e}`),q(e),!1}}function tMt(){return`sandbox-${Date.now()}-${Math.random().toString(36).substring(2,9)}`}async function nMt(e,t,n){let r=n||ds();if(!r)return U(`[PermissionSync] Cannot send sandbox permission request: team name not found`),!1;let i=await Qjt(r);if(!i)return U(`[PermissionSync] Cannot send sandbox permission request: leader name not found`),!1;let a=bs(),o=vs(),s=ys();if(!a||!o)return U(`[PermissionSync] Cannot send sandbox permission request: worker ID or name not found`),!1;try{return await fB(i,{from:o,text:V(Mut({requestId:t,workerId:a,workerName:o,workerColor:s,host:e})),timestamp:new Date().toISOString(),color:s},r),U(`[PermissionSync] Sent sandbox permission request ${t} for host ${e} to leader ${i} via mailbox`),!0}catch(e){return U(`[PermissionSync] Failed to send sandbox permission request via mailbox: ${e}`),q(e),!1}}async function rMt(e,t,n,r,i){let a=i||ds();if(!a)return U(`[PermissionSync] Cannot send sandbox permission response: team name not found`),!1;try{let i=Nut({requestId:t,host:n,allow:r});return await fB(e,{from:vs()||`team-lead`,text:V(i),timestamp:new Date().toISOString()},a),U(`[PermissionSync] Sent sandbox permission response for ${t} (host: ${n}, allow: ${r}) to worker ${e} via mailbox`),!0}catch(e){return U(`[PermissionSync] Failed to send sandbox permission response via mailbox: ${e}`),q(e),!1}}var TY=n((()=>{it(),W(),ka(),Fs(),ls(),Ao(),Va(),_s(),FB(),Gl(),J(()=>L({id:F(),workerId:F(),workerName:F(),workerColor:F().optional(),teamName:F(),toolName:F(),toolUseId:F(),description:F(),input:Fe(F(),ze()),permissionSuggestions:Re(ze()),status:Ge([`pending`,`approved`,`rejected`]),resolvedBy:Ge([`worker`,`leader`]).optional(),resolvedAt:P().optional(),feedback:F().optional(),updatedInput:Fe(F(),ze()).optional(),permissionUpdates:Re(ze()).optional(),createdAt:P()}))}));function iMt(e){if(!Array.isArray(e))return[];let t=CY(),n=[];for(let r of e){let e=t.safeParse(r);e.success?n.push(e.data):U(`[SwarmPermissionPoller] Dropping malformed permissionUpdate entry: ${e.error.message}`,{level:`warn`})}return n}function aMt(e){DY.set(e.requestId,e),U(`[SwarmPermissionPoller] Registered callback for request ${e.requestId}`)}function oMt(e){DY.delete(e),U(`[SwarmPermissionPoller] Unregistered callback for request ${e}`)}function sMt(e){return DY.has(e)}function cMt(){DY.clear(),OY.clear()}function EY(e){let t=DY.get(e.requestId);if(!t)return U(`[SwarmPermissionPoller] No callback registered for mailbox response ${e.requestId}`),!1;if(U(`[SwarmPermissionPoller] Processing mailbox response for request ${e.requestId}: ${e.decision}`),DY.delete(e.requestId),e.decision===`approved`){let n=iMt(e.permissionUpdates),r=e.updatedInput;t.onAllow(r,n)}else t.onReject(e.feedback);return!0}function lMt(e){OY.set(e.requestId,e),U(`[SwarmPermissionPoller] Registered sandbox callback for request ${e.requestId}`)}function uMt(e){return OY.has(e)}function dMt(e){let t=OY.get(e.requestId);return t?(U(`[SwarmPermissionPoller] Processing sandbox response for request ${e.requestId}: allow=${e.allow}`),OY.delete(e.requestId),t.resolve(e.allow),!0):(U(`[SwarmPermissionPoller] No sandbox callback registered for request ${e.requestId}`),!1)}var DY,OY,fMt=n((()=>{R(),W(),ka(),wY(),TY(),_s(),DY=new Map,OY=new Map}));function pMt(e){kY=e}function mMt(){return kY}function hMt(){kY=null}function gMt(e){AY=e}function _Mt(){return AY}function vMt(){AY=null}var kY,AY,yMt=n((()=>{kY=null,AY=null})),bMt=i({TEAMMATE_SYSTEM_PROMPT_ADDENDUM:()=>jY}),jY,xMt=n((()=>{jY=`
|
|
2163
2163
|
# Agent Teammate Communication
|
|
2164
2164
|
|
|
2165
2165
|
IMPORTANT: You are running as an agent in a team. To communicate with anyone on your team:
|
|
@@ -2170,7 +2170,7 @@ Just writing a response in text is not visible to others on your team - you MUST
|
|
|
2170
2170
|
|
|
2171
2171
|
The user interacts primarily with the team lead. Your work is coordinated through the task system and teammate messaging.
|
|
2172
2172
|
`}));function SMt(e,t,n){return async(r,i,a,o,s,c)=>{let l=c??await N9(r,i,a,o,s);if(l.behavior!==`ask`)return l;if(t.signal.aborted)return{behavior:`ask`,message:Y4};let u=a.getAppState(),d=await r.description(i,{isNonInteractiveSession:a.options.isNonInteractiveSession,toolPermissionContext:u.toolPermissionContext,tools:a.options.tools});if(t.signal.aborted)return{behavior:`ask`,message:Y4};let f=mMt();return f?new Promise(c=>{let u=!1,p=Date.now(),m=()=>{n?.(Date.now()-p)},h=()=>{u||(u=!0,m(),c({behavior:`ask`,message:Y4}),f(e=>e.filter(e=>e.toolUseID!==s)))};t.signal.addEventListener(`abort`,h,{once:!0}),f(n=>[...n,{assistantMessage:o,tool:r,description:d,input:i,toolUseContext:a,toolUseID:s,permissionResult:l,permissionPromptStartTimeMs:p,workerBadge:e.color?{name:e.agentName,color:e.color}:void 0,onUserInteraction(){},onAbort(){u||(u=!0,t.signal.removeEventListener(`abort`,h),m(),c({behavior:`ask`,message:Y4}))},async onAllow(e,n,r,i){if(u)return;if(u=!0,t.signal.removeEventListener(`abort`,h),m(),Ry(n),n.length>0){let e=_Mt();e&&e(Ly(a.getAppState().toolPermissionContext,n),{preserveMode:!0})}let o=r?.trim();c({behavior:`allow`,updatedInput:e,userModified:!1,acceptFeedback:o||void 0,...i&&i.length>0&&{contentBlocks:i}})},onReject(e,n){u||(u=!0,t.signal.removeEventListener(`abort`,h),m(),c({behavior:`ask`,message:e?`${X4}${e}`:Y4,contentBlocks:n}))},async recheckPermission(){if(u)return;let e=await N9(r,i,a,o,s);e.behavior===`allow`&&(u=!0,t.signal.removeEventListener(`abort`,h),m(),f(e=>e.filter(e=>e.toolUseID!==s)),c({...e,updatedInput:i,userModified:!1}))}}])}):new Promise(n=>{let a=Yjt({toolName:r.name,toolUseId:s,input:i,description:d,permissionSuggestions:l.suggestions,workerId:e.agentId,workerName:e.agentName,workerColor:e.color,teamName:e.teamName});aMt({requestId:a.id,toolUseId:s,onAllow(e,t,r,a){u(),Ry(t),n({behavior:`allow`,updatedInput:e&&Object.keys(e).length>0?e:i,userModified:!1,...a&&a.length>0&&{contentBlocks:a}})},onReject(e,t){u(),n({behavior:`ask`,message:e?`${X4}${e}`:Y4,contentBlocks:t})}}),$jt(a);let o=setInterval(async(e,t,n,r,i)=>{if(e.signal.aborted){t(),n({behavior:`ask`,message:Y4});return}let a=await uB(r.agentName,r.teamName);for(let e=0;e<a.length;e++){let t=a[e];if(t&&!t.read){let e=gB(t.text);if(e&&e.request_id===i.id){await pB(r.agentName,r.teamName,t),e.subtype===`success`?EY({requestId:e.request_id,decision:`approved`,updatedInput:e.response?.updated_input,permissionUpdates:e.response?.permission_updates}):EY({requestId:e.request_id,decision:`rejected`,feedback:e.error});return}}}},jMt,t,u,n,e,a),c=()=>{u(),n({behavior:`ask`,message:Y4})};t.signal.addEventListener(`abort`,c,{once:!0});function u(){clearInterval(o),oMt(a.id),t.signal.removeEventListener(`abort`,c)}})}}function MY(e,t,n,r){return`<${_o} teammate_id="${e}"${n?` color="${n}"`:``}${r?` summary="${r}"`:``}>\n${t}\n</${_o}>`}function NY(e,t,n){n(n=>{let r=n.tasks[e];if(!r||r.type!==`in_process_teammate`)return n;let i=t(r);return i===r?n:{...n,tasks:{...n.tasks,[e]:i}}})}async function CMt(e,t,n,r){await fB(cu,{from:e,text:t,timestamp:new Date().toISOString(),color:n},r)}async function wMt(e,t,n,r){await CMt(e,V(mB(e,r)),t,n)}function TMt(e){let t=new Set(e.filter(e=>e.status!==`completed`).map(e=>e.id));return e.find(e=>e.status!==`pending`||e.owner?!1:e.blockedBy.every(e=>!t.has(e)))}function EMt(e){let t=`Complete all open tasks. Start with task #${e.id}: \n\n ${e.subject}`;return e.description&&(t+=`\n\n${e.description}`),t}async function DMt(e,t){try{let n=TMt(await Hl(e));if(!n)return;let r=await Dde(e,n.id,t);if(!r.success){U(`[inProcessRunner] Failed to claim task #${n.id}: ${r.reason}`);return}return await Ode(e,n.id,{status:`in_progress`}),U(`[inProcessRunner] Claimed task #${n.id}: ${n.subject}`),EMt(n)}catch(e){U(`[inProcessRunner] Error checking task list: ${e}`);return}}async function OMt(e,t,n,r,i,a){U(`[inProcessRunner] ${e.agentName} starting poll loop (abort=${t.signal.aborted})`);let o=0;for(;!t.signal.aborted;){let s=r().tasks[n];if(s&&s.type===`in_process_teammate`&&s.pendingUserMessages.length>0){let t=s.pendingUserMessages[0];return i(e=>{let t=e.tasks[n];return!t||t.type!==`in_process_teammate`?e:{...e,tasks:{...e.tasks,[n]:{...t,pendingUserMessages:t.pendingUserMessages.slice(1)}}}}),U(`[inProcessRunner] ${e.agentName} found pending user message (poll #${o})`),t.autonomyRunId&&await LEe(t.autonomyRunId,t.autonomyRootDir),{type:`new_message`,message:t.message,autonomyRunId:t.autonomyRunId,autonomyRootDir:t.autonomyRootDir,from:`user`}}if(o>0&&await Hs(500),o++,t.signal.aborted)return U(`[inProcessRunner] ${e.agentName} aborted while waiting (poll #${o})`),{type:`aborted`};U(`[inProcessRunner] ${e.agentName} poll #${o}: checking mailbox`);try{let t=await uB(e.agentName,e.teamName),n=-1,r=null;for(let e=0;e<t.length;e++){let i=t[e];if(i&&!i.read){let t=vB(i.text);if(t){n=e,r=t;break}}}if(n!==-1){let i=t[n],a=fs(t.slice(0,n),e=>!e.read);return U(`[inProcessRunner] ${e.agentName} received shutdown request from ${r?.from} (prioritized over ${a} unread messages)`),await pB(e.agentName,e.teamName,i),{type:`shutdown_request`,request:r,originalMessage:i.text}}let i=-1;for(let e=0;e<t.length;e++){let n=t[e];if(n&&!n.read&&n.from===`team-lead`){i=e;break}}if(i===-1&&(i=t.findIndex(e=>!e.read)),i!==-1){let n=t[i];if(n)return U(`[inProcessRunner] ${e.agentName} received new message from ${n.from} (index ${i})`),await pB(e.agentName,e.teamName,n),{type:`new_message`,message:n.text,from:n.from,color:n.color,summary:n.summary}}}catch(t){U(`[inProcessRunner] ${e.agentName} poll error: ${t}`)}let c=await DMt(a,e.agentName);if(c)return{type:`new_message`,message:c,from:`task-list`}}return U(`[inProcessRunner] ${e.agentName} exiting poll loop (abort=${t.signal.aborted}, polls=${o})`),{type:`aborted`}}async function kMt(e){let{identity:t,taskId:n,prompt:r,description:i,agentDefinition:a,teammateContext:o,toolUseContext:s,abortController:c,model:l,systemPrompt:u,systemPromptMode:d,allowedTools:f,allowPermissionPrompts:p,invokingRequestId:m}=e,{setAppState:h}=s,g=Date.now();U(`[inProcessRunner] Starting agent loop for ${t.agentId}`);let _={agentId:t.agentId,parentSessionId:t.parentSessionId,agentName:t.agentName,teamName:t.teamName,agentColor:t.color,planModeRequired:t.planModeRequired,isTeamLead:!1,agentType:`teammate`,invokingRequestId:m,invocationKind:`spawn`,invocationEmitted:!1},v;if(d===`replace`&&u)v=u;else{let e=[...await Q7(s.options.tools,s.options.mainLoopModel,void 0,s.options.mcpClients),jY];if(a){let t=a.getSystemPrompt();t&&e.push(`\n# Custom Agent Instructions\n${t}`),a.memory&&G(`tengu_agent_memory_loaded`,{...process.env.USER_TYPE===`ant`?{agent_type:a.agentType}:{},scope:a.memory,source:`in-process-teammate`})}d===`append`&&u&&e.push(u),v=e.join(`
|
|
2173
|
-
`)}let y={agentType:t.agentName,whenToUse:`In-process teammate: ${t.agentName}`,getSystemPrompt:()=>v,tools:a?.tools?[...new Set([...a.tools,Rc,Gx,qx,Qs,yc,Zs,nl])]:[`*`],source:`projectSettings`,permissionMode:`default`,...a?.model?{model:a.model}:{}},b=[],x=MY(`team-lead`,r,void 0,i),S=x,C,w,T=!1;await DMt(t.parentSessionId,t.agentName);try{NY(n,e=>({...e,messages:Cj(e.messages,d4({content:x}))}),h);let e=s.contentReplacementState?ME():void 0;for(;!c.signal.aborted&&!T;){U(`[inProcessRunner] ${t.agentId} processing prompt: ${S.substring(0,50)}...`);let r=iy();NY(n,e=>({...e,currentWorkAbortController:r}),h);let i=d4({content:S}),a=[i],u=b,d=o_(b);if(d>X$(s.options.mainLoopModel)){U(`[inProcessRunner] ${t.agentId} compacting history (${d} tokens)`);let r={...s,readFileState:fl(s.readFileState),onCompactProgress:void 0,setStreamMode:void 0};u=j$(await M$(b,r,{systemPrompt:Sl([]),userContext:{},systemContext:{},toolUseContext:r,forkContextMessages:[]},!0,void 0,!0)),Gh(),e&&(e=ME()),b.length=0,b.push(...u),NY(n,e=>({...e,messages:[...u,i]}),h)}let m=u.length>0?[...u]:void 0;b.push(i);let g=hZ(),v=yZ(s.options.tools),x=[],E=s.getAppState().tasks[n],D=E&&E.type===`in_process_teammate`?E.permissionMode:`default`,ee={...y,permissionMode:D},O=!1;if(await hce(o,async()=>Vi(_,async()=>{NY(n,e=>({...e,status:`running`,isIdle:!1}),h);for await(let i of BR({agentDefinition:ee,promptMessages:a,toolUseContext:s,canUseTool:SMt(t,r,e=>{NY(n,t=>({...t,totalPausedMs:(t.totalPausedMs??0)+e}),h)}),isAsync:!0,canShowPermissionPrompts:p??!0,forkContextMessages:m,querySource:`agent:custom`,override:{abortController:r},model:l,preserveToolUseResults:!0,availableTools:s.options.tools,allowedTools:f,contentReplacementState:e})){if(c.signal.aborted){U(`[inProcessRunner] ${t.agentId} lifecycle aborted`);break}if(r.signal.aborted){U(`[inProcessRunner] ${t.agentId} current work aborted (Escape pressed)`),O=!0;break}x.push(i),b.push(i),_Z(g,i,v,s.options.tools);let e=vZ(g);NY(n,t=>{let n=t.inProgressToolUseIDs;if(i.type===`assistant`)for(let e of Array.isArray(i.message.content)?i.message.content:[])typeof e!=`string`&&e.type===`tool_use`&&(n=new Set([...n??[],e.id]));else if(i.type===`user`){let e=i.message.content;if(Array.isArray(e))for(let t of e)typeof t==`object`&&`type`in t&&t.type===`tool_result`&&n&&(n=new Set(n),n.delete(t.tool_use_id))}return{...t,progress:e,messages:Cj(t.messages,i),inProgressToolUseIDs:n}},h)}return{success:!0,messages:x}})),NY(n,e=>({...e,currentWorkAbortController:void 0}),h),c.signal.aborted)break;if(O){U(`[inProcessRunner] ${t.agentId} work interrupted, returning to idle`);let e=u4({content:z$});NY(n,t=>({...t,messages:Cj(t.messages,e)}),h),C&&(await Iv(C,z$,w),C=void 0,w=void 0)}else C&&(await REe(C,w),C=void 0,w=void 0);let k=s.getAppState().tasks[n],te=k?.type===`in_process_teammate`&&k.isIdle;NY(n,e=>(e.onIdleCallbacks?.forEach(e=>e()),{...e,isIdle:!0,onIdleCallbacks:[]}),h),te?U(`[inProcessRunner] Skipping duplicate idle notification for ${t.agentName}`):await wMt(t.agentName,t.color,t.teamName,{idleReason:O?`interrupted`:`available`,summary:TB(b)}),U(`[inProcessRunner] ${t.agentId} finished prompt, waiting for next`);let ne=await OMt(t,c,n,s.getAppState,h,t.parentSessionId);switch(ne.type){case`shutdown_request`:U(`[inProcessRunner] ${t.agentId} received shutdown request - passing to model`),S=MY(ne.request?.from||`team-lead`,ne.originalMessage),xM(n,d4({content:S}),h),C=void 0,w=void 0;break;case`new_message`:U(`[inProcessRunner] ${t.agentId} received new message from ${ne.from}`),ne.from===`user`?(S=ne.message,C=ne.autonomyRunId,w=ne.autonomyRootDir):(S=MY(ne.from,ne.message,ne.color,ne.summary),xM(n,d4({content:S}),h),C=void 0,w=void 0);break;case`aborted`:U(`[inProcessRunner] ${t.agentId} aborted while waiting`),T=!0;break}}let r=!1,i,a=0,u=0,d=[],m;for(let e=b.length-1;e>=0;e--){let t=b[e];if(t.type===`assistant`){let e=t.message?.content??[];for(let t of e)t?.type===`tool_use`&&u++;let n=e.filter(e=>e?.type===`text`);if(n.length>0&&d.length===0&&(d=n.map(e=>({type:`text`,text:e.text}))),!m&&t.message?.usage&&(m=t.message.usage,a=i_(t.message.usage)),a>0&&d.length>0)break}}let v={agentId:t.agentId,agentType:`teammate`,content:d,totalToolUseCount:u,totalDurationMs:Date.now()-g,totalTokens:a,usage:m};return NY(n,e=>e.status===`running`?(i=e.toolUseId,e.onIdleCallbacks?.forEach(e=>e()),e.unregisterCleanup?.(),{...e,status:`completed`,notified:!0,endTime:Date.now(),result:v,messages:e.messages?.length?[e.messages.at(-1)]:void 0,pendingUserMessages:[],inProgressToolUseIDs:void 0,abortController:void 0,unregisterCleanup:void 0,currentWorkAbortController:void 0,onIdleCallbacks:[]}):(r=!0,e),h),L5(n),Rx(n,h),r||wl(n,`completed`,{toolUseId:i,summary:t.agentId}),Al(t.agentId),{success:!0,messages:b}}catch(e){let r=e instanceof Error?e.message:`Unknown error`;U(`[inProcessRunner] Agent ${t.agentId} failed: ${r}`);let i=!1,a;return NY(n,e=>e.status===`running`?(a=e.toolUseId,e.onIdleCallbacks?.forEach(e=>e()),e.unregisterCleanup?.(),{...e,status:`failed`,notified:!0,error:r,isIdle:!0,endTime:Date.now(),onIdleCallbacks:[],messages:e.messages?.length?[e.messages.at(-1)]:void 0,pendingUserMessages:[],inProgressToolUseIDs:void 0,abortController:void 0,unregisterCleanup:void 0,currentWorkAbortController:void 0}):(i=!0,e),h),L5(n),Rx(n,h),i||wl(n,`failed`,{toolUseId:a,summary:t.agentId}),C&&await Iv(C,r,w),await wMt(t.agentName,t.color,t.teamName,{idleReason:`failed`,completedStatus:`failed`,failureReason:r}),Al(t.agentId),{success:!1,error:r,messages:b}}}function AMt(e){let t=e.identity.agentId;kMt(e).catch(e=>{U(`[inProcessRunner] Unhandled error in ${t}: ${e}`)})}var jMt,MMt=n((()=>{r9(),Eo(),fMt(),Ua(),r1(),V$(),Yh(),EM(),wj(),EZ(),VR(),bQ(),Js(),pc(),$s(),el(),vc(),Kx(),Jx(),i3(),e7(),Bx(),s_(),oy(),ia(),zv(),Ss(),W(),pl(),By(),P9(),yl(),Us(),Va(),z_(),Wl(),us(),FB(),Il(),IE(),lu(),yMt(),TY(),xMt(),jMt=500}));function NMt(){return new PMt}var PMt,FMt=n((()=>{EM(),bM(),W(),Va(),FB(),MMt(),$6e(),O(),PMt=class{constructor(){k(this,`type`,`in-process`),k(this,`context`,null)}setContext(e){this.context=e}async isAvailable(){return!0}async spawn(e){if(!this.context)return U(`[InProcessBackend] spawn() called without context for ${e.name}`),{success:!1,agentId:`${e.name}@${e.teamName}`,error:`InProcessBackend not initialized. Call setContext() before spawn().`};U(`[InProcessBackend] spawn() called for ${e.name}`);let t=await Z6e({name:e.name,teamName:e.teamName,prompt:e.prompt,color:e.color,planModeRequired:e.planModeRequired??!1,model:e.model},this.context);return t.success&&t.taskId&&t.teammateContext&&t.abortController&&(AMt({identity:{agentId:t.agentId,agentName:e.name,teamName:e.teamName,color:e.color,planModeRequired:e.planModeRequired??!1,parentSessionId:t.teammateContext.parentSessionId},taskId:t.taskId,prompt:e.prompt,description:e.description,agentDefinition:e.agentDefinition,teammateContext:t.teammateContext,toolUseContext:{...this.context,messages:[]},abortController:t.abortController,model:e.model,systemPrompt:e.systemPrompt,systemPromptMode:e.systemPromptMode,allowedTools:e.permissions,allowPermissionPrompts:e.allowPermissionPrompts,invokingRequestId:e.invokingRequestId}),U(`[InProcessBackend] Started agent execution for ${t.agentId}`)),{success:t.success,agentId:t.agentId,taskId:t.taskId,abortController:t.abortController,backendType:this.type,color:e.color,error:t.error}}async sendMessage(e,t){U(`[InProcessBackend] sendMessage() to ${e}: ${t.text.substring(0,50)}...`);let n=vM(e);if(!n)throw U(`[InProcessBackend] Invalid agentId format: ${e}`),Error(`Invalid agentId format: ${e}. Expected format: agentName@teamName`);let{agentName:r,teamName:i}=n;await fB(r,{text:t.text,from:t.from,color:t.color,timestamp:t.timestamp??new Date().toISOString()},i),U(`[InProcessBackend] sendMessage() completed for ${e}`)}async terminate(e,t){if(U(`[InProcessBackend] terminate() called for ${e}: ${t}`),!this.context)return U(`[InProcessBackend] terminate() failed: no context set for ${e}`),!1;let n=SM(e,this.context.getAppState().tasks);if(!n)return U(`[InProcessBackend] terminate() failed: task not found for ${e}`),!1;if(n.shutdownRequested)return U(`[InProcessBackend] terminate(): shutdown already requested for ${e}`),!0;let r=_B({requestId:`shutdown-${e}-${Date.now()}`,from:`team-lead`,reason:t}),i=n.identity.agentName;return await fB(i,{from:`team-lead`,text:V(r),timestamp:new Date().toISOString()},n.identity.teamName),t8e(n.id,this.context.setAppState),U(`[InProcessBackend] terminate() sent shutdown request to ${e}`),!0}async kill(e){if(U(`[InProcessBackend] kill() called for ${e}`),!this.context)return U(`[InProcessBackend] kill() failed: no context set for ${e}`),!1;let t=SM(e,this.context.getAppState().tasks);if(!t)return U(`[InProcessBackend] kill() failed: task not found for ${e}`),!1;let n=Q6e(t.id,this.context.setAppState);return U(`[InProcessBackend] kill() ${n?`succeeded`:`failed`} for ${e}`),n}async isActive(e){if(U(`[InProcessBackend] isActive() called for ${e}`),!this.context)return U(`[InProcessBackend] isActive() failed: no context set for ${e}`),!1;let t=SM(e,this.context.getAppState().tasks);if(!t)return U(`[InProcessBackend] isActive(): task not found for ${e}`),!1;let n=t.status===`running`,r=t.abortController?.signal.aborted??!0,i=n&&!r;return U(`[InProcessBackend] isActive() for ${e}: ${i} (running=${n}, aborted=${r})`),i}}}));async function IMt(){return(await ts(`which`,[`uv`])).code===0?(U(`[it2Setup] Found uv (will use uv tool install)`),`uvx`):(await ts(`which`,[`pipx`])).code===0?(U(`[it2Setup] Found pipx package manager`),`pipx`):(await ts(`which`,[`pip`])).code===0?(U(`[it2Setup] Found pip package manager`),`pip`):(await ts(`which`,[`pip3`])).code===0?(U(`[it2Setup] Found pip3 package manager`),`pip`):(U(`[it2Setup] No Python package manager found`),null)}async function LMt(){return(await ts(`which`,[`it2`])).code===0}async function RMt(e){U(`[it2Setup] Installing it2 using ${e}`);let t;switch(e){case`uvx`:t=await $o(`uv`,[`tool`,`install`,`it2`],{cwd:Su()});break;case`pipx`:t=await $o(`pipx`,[`install`,`it2`],{cwd:Su()});break;case`pip`:t=await $o(`pip`,[`install`,`--user`,`it2`],{cwd:Su()}),t.code!==0&&(t=await $o(`pip3`,[`install`,`--user`,`it2`],{cwd:Su()}));break}if(t.code!==0){let n=t.stderr||`Unknown installation error`;return q(Error(`[it2Setup] Failed to install it2: ${n}`)),{success:!1,error:n,packageManager:e}}return U(`[it2Setup] it2 installed successfully`),{success:!0,packageManager:e}}async function zMt(){if(U(`[it2Setup] Verifying it2 setup...`),!await LMt())return{success:!1,error:`it2 CLI is not installed or not in PATH`};let e=await ts(`it2`,[`session`,`list`]);if(e.code!==0){let t=e.stderr.toLowerCase();return t.includes(`api`)||t.includes(`python`)||t.includes(`connection refused`)||t.includes(`not enabled`)?(U(`[it2Setup] Python API not enabled in iTerm2`),{success:!1,error:`Python API not enabled in iTerm2 preferences`,needsPythonApiEnabled:!0}):{success:!1,error:e.stderr||`Failed to communicate with iTerm2`}}return U(`[it2Setup] it2 setup verified successfully`),{success:!0}}function BMt(){return[`Almost done! Enable the Python API in iTerm2:`,``,` iTerm2 → Settings → General → Magic → Enable Python API`,``,`After enabling, you may need to restart iTerm2.`]}function VMt(){Tr().iterm2It2SetupComplete!==!0&&(fr(e=>({...e,iterm2It2SetupComplete:!0})),U(`[it2Setup] Marked it2 setup as complete`))}function HMt(e){Tr().preferTmuxOverIterm2!==e&&(fr(t=>({...t,preferTmuxOverIterm2:e})),U(`[it2Setup] Set preferTmuxOverIterm2 = ${e}`))}function UMt(){return Tr().preferTmuxOverIterm2===!0}var WMt=n((()=>{xn(),W(),es(),Ao()}));function GMt(){return process.env.CLAUDE_CODE_TEAMMATE_COMMAND?process.env[Hfe]:ao()?process.execPath:process.argv[1]}function KMt(e){let t=[],{planModeRequired:n,permissionMode:r}=e||{};n||(r===`bypassPermissions`||Bne()?t.push(`--dangerously-skip-permissions`):r===`acceptEdits`?t.push(`--permission-mode`,`acceptEdits`):r===`auto`&&t.push(`--permission-mode`,`auto`));let i=rne();i&&t.push(`--model`,i);let a=jte();a&&t.push(`--settings`,a);let o=Nt();for(let e of o)t.push(`--plugin-dir`,e);let s=vu();t.push(`--teammate-mode`,s);let c=Wte();return c===!0?t.push(`--chrome`):c===!1&&t.push(`--no-chrome`),t}function qMt(){return JMt().map(([e,t])=>`${e}=${ll([t])}`).join(` `)}function JMt(){let e=[[`CLAUDECODE`,`1`],[`CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS`,`1`]];for(let t of YMt){let n=process.env[t];n!==void 0&&n!==``&&e.push([t,n])}return e}var YMt,XMt=n((()=>{tn(),dl(),oo(),ope(),lu(),YMt=[`CLAUDE_CODE_USE_BEDROCK`,`CLAUDE_CODE_USE_VERTEX`,`CLAUDE_CODE_USE_FOUNDRY`,`ANTHROPIC_BASE_URL`,`CLAUDE_CONFIG_DIR`,`CLAUDE_CODE_REMOTE`,`CLAUDE_CODE_REMOTE_MEMORY_DIR`,`HTTPS_PROXY`,`https_proxy`,`HTTP_PROXY`,`http_proxy`,`NO_PROXY`,`no_proxy`,`SSL_CERT_FILE`,`NODE_EXTRA_CA_CERTS`,`REQUESTS_CA_BUNDLE`,`CURL_CA_BUNDLE`]}));function PY(e){let t=FY.get(e);if(t)return t;let n=Dj[IY%Dj.length];return FY.set(e,n),IY++,n}function ZMt(){FY.clear(),IY=0}var FY,IY,LY=n((()=>{kj(),eX(),FY=new Map,IY=0}));function RY(e){return`'${e.replace(/'/g,`''`)}'`}function QMt(e){let t=[];for(let n=0;n<e.length;n+=1){if(e[n]===`--model`){n+=1;continue}t.push(e[n])}return t}function $Mt(e,t,n){let r=JMt().map(([e,t])=>`$env:${e} = ${RY(t)}`),i=ao()?`& ${RY(e)}`:`& ${RY(process.execPath)} ${RY(e)}`;return[`Set-Location -LiteralPath ${RY(n)}`,...r,`${i} ${t.map(RY).join(` `)}`].join(`; `)}function eNt(e){return new tNt(e)}var tNt,nNt=n((()=>{tn(),bM(),dl(),oo(),Ma(),W(),Va(),FB(),XMt(),LY(),_u(),O(),tNt=class{constructor(e){k(this,`type`,void 0),k(this,`backend`,void 0),k(this,`context`,null),k(this,`spawnedTeammates`,void 0),k(this,`cleanupRegistered`,!1),this.backend=e,this.type=e.type,this.spawnedTeammates=new Map}setContext(e){this.context=e}async isAvailable(){return this.backend.isAvailable()}async spawn(e){let t=_M(e.name,e.teamName);if(!this.context)return U(`[PaneBackendExecutor] spawn() called without context for ${e.name}`),{success:!1,agentId:t,error:`PaneBackendExecutor not initialized. Call setContext() before spawn().`};try{let n=e.color??PY(t),r=e.useSplitPane===!1&&this.backend.createTeammateWindowInSwarmView?await this.backend.createTeammateWindowInSwarmView(e.name,n):await this.backend.createTeammatePaneInSwarmView(e.name,n),{paneId:i,isFirstTeammate:a}=r,o=await rpe();a&&o&&await this.backend.enablePaneBorderStatus();let s=GMt(),c=[`--agent-id`,t,`--agent-name`,e.name,`--team-name`,e.teamName,`--agent-color`,n,`--parent-session-id`,e.parentSessionId||Ft(),...e.planModeRequired?[`--plan-mode-required`]:[],...e.agentType?[`--agent-type`,e.agentType]:[]],l=this.context.getAppState(),u=KMt({planModeRequired:e.planModeRequired,permissionMode:l.toolPermissionContext.mode});e.model&&(u=QMt(u),u.push(`--model`,e.model));let d=e.cwd,f=qMt(),p=[...c,...u],m=this.type===`windows-terminal`?$Mt(s,p,d):`cd ${ll([d])} && env ${f} ${ll([s])} ${ll(p)}`;return await this.backend.sendCommandToPane(i,m,!o),this.spawnedTeammates.set(t,{paneId:i,insideTmux:o}),this.cleanupRegistered||(this.cleanupRegistered=!0,ja(async()=>{for(let[e,t]of this.spawnedTeammates)U(`[PaneBackendExecutor] Cleanup: killing pane for ${e}`),await this.backend.killPane(t.paneId,!t.insideTmux);this.spawnedTeammates.clear()})),await fB(e.name,{from:`team-lead`,text:e.prompt,timestamp:new Date().toISOString()},e.teamName),U(`[PaneBackendExecutor] Spawned teammate ${t} in pane ${i}`),{success:!0,agentId:t,paneId:i,backendType:this.type,color:n,insideTmux:o,windowName:`windowName`in r?r.windowName:void 0,isSplitPane:e.useSplitPane!==!1}}catch(e){let n=e instanceof Error?e.message:String(e);return U(`[PaneBackendExecutor] Failed to spawn ${t}: ${n}`),{success:!1,agentId:t,error:n}}}async sendMessage(e,t){U(`[PaneBackendExecutor] sendMessage() to ${e}: ${t.text.substring(0,50)}...`);let n=vM(e);if(!n)throw Error(`Invalid agentId format: ${e}. Expected format: agentName@teamName`);let{agentName:r,teamName:i}=n;await fB(r,{text:t.text,from:t.from,color:t.color,timestamp:t.timestamp??new Date().toISOString()},i),U(`[PaneBackendExecutor] sendMessage() completed for ${e}`)}async terminate(e,t){U(`[PaneBackendExecutor] terminate() called for ${e}: ${t}`);let n=vM(e);if(!n)return U(`[PaneBackendExecutor] terminate() failed: invalid agentId format`),!1;let{agentName:r,teamName:i}=n;return await fB(r,{from:`team-lead`,text:V({type:`shutdown_request`,requestId:`shutdown-${e}-${Date.now()}`,from:`team-lead`,reason:t}),timestamp:new Date().toISOString()},i),U(`[PaneBackendExecutor] terminate() sent shutdown request to ${e}`),!0}async kill(e){U(`[PaneBackendExecutor] kill() called for ${e}`);let t=this.spawnedTeammates.get(e);if(!t)return U(`[PaneBackendExecutor] kill() failed: teammate ${e} not found in spawned map`),!1;let{paneId:n,insideTmux:r}=t,i=await this.backend.killPane(n,!r);return i?(this.spawnedTeammates.delete(e),U(`[PaneBackendExecutor] kill() succeeded for ${e}`)):U(`[PaneBackendExecutor] kill() failed for ${e}`),i}async isActive(e){return U(`[PaneBackendExecutor] isActive() called for ${e}`),this.spawnedTeammates.get(e)?!0:(U(`[PaneBackendExecutor] isActive(): teammate ${e} not found`),!1)}}}));async function zY(){qY||(await import(`./TmuxBackend-Ct9v-J78.js`),await import(`./ITermBackend-CG-a4QYW.js`),await import(`./WindowsTerminalBackend-Dw6qjsBu.js`),qY=!0)}function rNt(e){ZY=e}function iNt(e){U(`[registry] registerITermBackend called, class=${e?.name||`undefined`}`),QY=e}function aNt(e){$Y=e}function BY(){if(!ZY)throw Error(`TmuxBackend not registered. Import TmuxBackend.ts before using the registry.`);return new ZY}function oNt(){if(!QY)throw Error(`ITermBackend not registered. Import ITermBackend.ts before using the registry.`);return new QY}function VY(){if(!$Y)throw Error(`WindowsTerminalBackend not registered. Import WindowsTerminalBackend.ts before using the registry.`);return new $Y}async function sNt(){if(await zY(),KY)return U(`[BackendRegistry] Using cached backend: ${KY.backend.type}`),KY;U(`[BackendRegistry] Starting backend detection...`);let e=await rpe(),t=hu(),n=tpe();if(U(`[BackendRegistry] Environment: insideTmux=${e}, inITerm2=${t}, inWindowsTerminal=${n}`),HY()===`windows-terminal`){if(No()!==`windows`)throw Error(`Windows Terminal teammate mode is only available on Windows`);if(!await ape())throw Error(`Windows Terminal teammate mode requires wt.exe in PATH`);let e=VY();return GY=e,KY={backend:e,isNative:n,needsIt2Setup:!1},KY}if(e){U(`[BackendRegistry] Selected: tmux (running inside tmux session)`);let e=BY();return GY=e,KY={backend:e,isNative:!0,needsIt2Setup:!1},KY}if(t){let e=UMt();if(e)U(`[BackendRegistry] User prefers tmux over iTerm2, skipping iTerm2 detection`);else{let e=await npe();if(U(`[BackendRegistry] iTerm2 detected, it2 CLI available: ${e}`),e){U(`[BackendRegistry] Selected: iterm2 (native iTerm2 with it2 CLI)`);let e=oNt();return GY=e,KY={backend:e,isNative:!0,needsIt2Setup:!1},KY}}let t=await gu();if(U(`[BackendRegistry] it2 not available, tmux available: ${t}`),t){U(`[BackendRegistry] Selected: tmux (fallback in iTerm2, it2 setup recommended)`);let t=BY();return GY=t,KY={backend:t,isNative:!1,needsIt2Setup:!e},KY}throw U(`[BackendRegistry] ERROR: iTerm2 detected but no it2 CLI and no tmux`),Error(`iTerm2 detected but it2 CLI not installed. Install it2 with: pip install it2`)}if(No()===`windows`&&n){let e=await ape();if(U(`[BackendRegistry] Inside Windows Terminal, wt.exe available: ${e}`),e){U(`[BackendRegistry] Selected: Windows Terminal (wt.exe)`);let e=VY();return GY=e,KY={backend:e,isNative:!0,needsIt2Setup:!1},KY}}let r=await gu();if(U(`[BackendRegistry] Not in tmux or iTerm2, tmux available: ${r}`),r){U(`[BackendRegistry] Selected: tmux (external session mode)`);let e=BY();return GY=e,KY={backend:e,isNative:!1,needsIt2Setup:!1},KY}throw U(`[BackendRegistry] ERROR: No pane backend available`),Error(cNt())}function cNt(){switch(No()){case`macos`:return`To use agent swarms, install tmux:
|
|
2173
|
+
`)}let y={agentType:t.agentName,whenToUse:`In-process teammate: ${t.agentName}`,getSystemPrompt:()=>v,tools:a?.tools?[...new Set([...a.tools,Rc,Gx,qx,Qs,yc,Zs,nl])]:[`*`],source:`projectSettings`,permissionMode:`default`,...a?.model?{model:a.model}:{}},b=[],x=MY(`team-lead`,r,void 0,i),S=x,C,w,T=!1;await DMt(t.parentSessionId,t.agentName);try{NY(n,e=>({...e,messages:Cj(e.messages,d4({content:x}))}),h);let e=s.contentReplacementState?ME():void 0;for(;!c.signal.aborted&&!T;){U(`[inProcessRunner] ${t.agentId} processing prompt: ${S.substring(0,50)}...`);let r=iy();NY(n,e=>({...e,currentWorkAbortController:r}),h);let i=d4({content:S}),a=[i],u=b,d=o_(b);if(d>X$(s.options.mainLoopModel)){U(`[inProcessRunner] ${t.agentId} compacting history (${d} tokens)`);let r={...s,readFileState:fl(s.readFileState),onCompactProgress:void 0,setStreamMode:void 0};u=j$(await M$(b,r,{systemPrompt:Sl([]),userContext:{},systemContext:{},toolUseContext:r,forkContextMessages:[]},!0,void 0,!0)),Gh(),e&&(e=ME()),b.length=0,b.push(...u),NY(n,e=>({...e,messages:[...u,i]}),h)}let m=u.length>0?[...u]:void 0;b.push(i);let g=hZ(),v=yZ(s.options.tools),x=[],E=s.getAppState().tasks[n],D=E&&E.type===`in_process_teammate`?E.permissionMode:`default`,ee={...y,permissionMode:D},O=!1;if(await hce(o,async()=>Vi(_,async()=>{NY(n,e=>({...e,status:`running`,isIdle:!1}),h);for await(let i of BR({agentDefinition:ee,promptMessages:a,toolUseContext:s,canUseTool:SMt(t,r,e=>{NY(n,t=>({...t,totalPausedMs:(t.totalPausedMs??0)+e}),h)}),isAsync:!0,canShowPermissionPrompts:p??!0,forkContextMessages:m,querySource:`agent:custom`,override:{abortController:r},model:l,preserveToolUseResults:!0,availableTools:s.options.tools,allowedTools:f,contentReplacementState:e})){if(c.signal.aborted){U(`[inProcessRunner] ${t.agentId} lifecycle aborted`);break}if(r.signal.aborted){U(`[inProcessRunner] ${t.agentId} current work aborted (Escape pressed)`),O=!0;break}x.push(i),b.push(i),_Z(g,i,v,s.options.tools);let e=vZ(g);NY(n,t=>{let n=t.inProgressToolUseIDs;if(i.type===`assistant`)for(let e of Array.isArray(i.message.content)?i.message.content:[])typeof e!=`string`&&e.type===`tool_use`&&(n=new Set([...n??[],e.id]));else if(i.type===`user`){let e=i.message.content;if(Array.isArray(e))for(let t of e)typeof t==`object`&&`type`in t&&t.type===`tool_result`&&n&&(n=new Set(n),n.delete(t.tool_use_id))}return{...t,progress:e,messages:Cj(t.messages,i),inProgressToolUseIDs:n}},h)}return{success:!0,messages:x}})),NY(n,e=>({...e,currentWorkAbortController:void 0}),h),c.signal.aborted)break;if(O){U(`[inProcessRunner] ${t.agentId} work interrupted, returning to idle`);let e=u4({content:z$});NY(n,t=>({...t,messages:Cj(t.messages,e)}),h),C&&(await Iv(C,z$,w),C=void 0,w=void 0)}else C&&(await REe(C,w),C=void 0,w=void 0);let k=s.getAppState().tasks[n],te=k?.type===`in_process_teammate`&&k.isIdle;NY(n,e=>(e.onIdleCallbacks?.forEach(e=>e()),{...e,isIdle:!0,onIdleCallbacks:[]}),h),te?U(`[inProcessRunner] Skipping duplicate idle notification for ${t.agentName}`):await wMt(t.agentName,t.color,t.teamName,{idleReason:O?`interrupted`:`available`,summary:TB(b)}),U(`[inProcessRunner] ${t.agentId} finished prompt, waiting for next`);let ne=await OMt(t,c,n,s.getAppState,h,t.parentSessionId);switch(ne.type){case`shutdown_request`:U(`[inProcessRunner] ${t.agentId} received shutdown request - passing to model`),S=MY(ne.request?.from||`team-lead`,ne.originalMessage),xM(n,d4({content:S}),h),C=void 0,w=void 0;break;case`new_message`:U(`[inProcessRunner] ${t.agentId} received new message from ${ne.from}`),ne.from===`user`?(S=ne.message,C=ne.autonomyRunId,w=ne.autonomyRootDir):(S=MY(ne.from,ne.message,ne.color,ne.summary),xM(n,d4({content:S}),h),C=void 0,w=void 0);break;case`aborted`:U(`[inProcessRunner] ${t.agentId} aborted while waiting`),T=!0;break}}let r=!1,i,a=0,u=0,d=[],m;for(let e=b.length-1;e>=0;e--){let t=b[e];if(t.type===`assistant`){let e=t.message?.content??[];for(let t of e)t?.type===`tool_use`&&u++;let n=e.filter(e=>e?.type===`text`);if(n.length>0&&d.length===0&&(d=n.map(e=>({type:`text`,text:e.text}))),!m&&t.message?.usage&&(m=t.message.usage,a=i_(t.message.usage)),a>0&&d.length>0)break}}let v={agentId:t.agentId,agentType:`teammate`,content:d,totalToolUseCount:u,totalDurationMs:Date.now()-g,totalTokens:a,usage:m};return NY(n,e=>e.status===`running`?(i=e.toolUseId,e.onIdleCallbacks?.forEach(e=>e()),e.unregisterCleanup?.(),{...e,status:`completed`,notified:!0,endTime:Date.now(),result:v,messages:e.messages?.length?[e.messages.at(-1)]:void 0,pendingUserMessages:[],inProgressToolUseIDs:void 0,abortController:void 0,unregisterCleanup:void 0,currentWorkAbortController:void 0,onIdleCallbacks:[]}):(r=!0,e),h),L5(n),Rx(n,h),r||wl(n,`completed`,{toolUseId:i,summary:t.agentId}),Al(t.agentId),{success:!0,messages:b}}catch(e){let r=e instanceof Error?e.message:`Unknown error`;U(`[inProcessRunner] Agent ${t.agentId} failed: ${r}`);let i=!1,a;return NY(n,e=>e.status===`running`?(a=e.toolUseId,e.onIdleCallbacks?.forEach(e=>e()),e.unregisterCleanup?.(),{...e,status:`failed`,notified:!0,error:r,isIdle:!0,endTime:Date.now(),onIdleCallbacks:[],messages:e.messages?.length?[e.messages.at(-1)]:void 0,pendingUserMessages:[],inProgressToolUseIDs:void 0,abortController:void 0,unregisterCleanup:void 0,currentWorkAbortController:void 0}):(i=!0,e),h),L5(n),Rx(n,h),i||wl(n,`failed`,{toolUseId:a,summary:t.agentId}),C&&await Iv(C,r,w),await wMt(t.agentName,t.color,t.teamName,{idleReason:`failed`,completedStatus:`failed`,failureReason:r}),Al(t.agentId),{success:!1,error:r,messages:b}}}function AMt(e){let t=e.identity.agentId;kMt(e).catch(e=>{U(`[inProcessRunner] Unhandled error in ${t}: ${e}`)})}var jMt,MMt=n((()=>{r9(),Eo(),fMt(),Ua(),r1(),V$(),Yh(),EM(),wj(),EZ(),VR(),bQ(),Js(),pc(),$s(),el(),vc(),Kx(),Jx(),i3(),e7(),Bx(),s_(),oy(),ia(),zv(),Ss(),W(),pl(),By(),P9(),yl(),Us(),Va(),z_(),Wl(),us(),FB(),Il(),IE(),lu(),yMt(),TY(),xMt(),jMt=500}));function NMt(){return new PMt}var PMt,FMt=n((()=>{EM(),bM(),W(),Va(),FB(),MMt(),$6e(),O(),PMt=class{constructor(){k(this,`type`,`in-process`),k(this,`context`,null)}setContext(e){this.context=e}async isAvailable(){return!0}async spawn(e){if(!this.context)return U(`[InProcessBackend] spawn() called without context for ${e.name}`),{success:!1,agentId:`${e.name}@${e.teamName}`,error:`InProcessBackend not initialized. Call setContext() before spawn().`};U(`[InProcessBackend] spawn() called for ${e.name}`);let t=await Z6e({name:e.name,teamName:e.teamName,prompt:e.prompt,color:e.color,planModeRequired:e.planModeRequired??!1,model:e.model},this.context);return t.success&&t.taskId&&t.teammateContext&&t.abortController&&(AMt({identity:{agentId:t.agentId,agentName:e.name,teamName:e.teamName,color:e.color,planModeRequired:e.planModeRequired??!1,parentSessionId:t.teammateContext.parentSessionId},taskId:t.taskId,prompt:e.prompt,description:e.description,agentDefinition:e.agentDefinition,teammateContext:t.teammateContext,toolUseContext:{...this.context,messages:[]},abortController:t.abortController,model:e.model,systemPrompt:e.systemPrompt,systemPromptMode:e.systemPromptMode,allowedTools:e.permissions,allowPermissionPrompts:e.allowPermissionPrompts,invokingRequestId:e.invokingRequestId}),U(`[InProcessBackend] Started agent execution for ${t.agentId}`)),{success:t.success,agentId:t.agentId,taskId:t.taskId,abortController:t.abortController,backendType:this.type,color:e.color,error:t.error}}async sendMessage(e,t){U(`[InProcessBackend] sendMessage() to ${e}: ${t.text.substring(0,50)}...`);let n=vM(e);if(!n)throw U(`[InProcessBackend] Invalid agentId format: ${e}`),Error(`Invalid agentId format: ${e}. Expected format: agentName@teamName`);let{agentName:r,teamName:i}=n;await fB(r,{text:t.text,from:t.from,color:t.color,timestamp:t.timestamp??new Date().toISOString()},i),U(`[InProcessBackend] sendMessage() completed for ${e}`)}async terminate(e,t){if(U(`[InProcessBackend] terminate() called for ${e}: ${t}`),!this.context)return U(`[InProcessBackend] terminate() failed: no context set for ${e}`),!1;let n=SM(e,this.context.getAppState().tasks);if(!n)return U(`[InProcessBackend] terminate() failed: task not found for ${e}`),!1;if(n.shutdownRequested)return U(`[InProcessBackend] terminate(): shutdown already requested for ${e}`),!0;let r=_B({requestId:`shutdown-${e}-${Date.now()}`,from:`team-lead`,reason:t}),i=n.identity.agentName;return await fB(i,{from:`team-lead`,text:V(r),timestamp:new Date().toISOString()},n.identity.teamName),t8e(n.id,this.context.setAppState),U(`[InProcessBackend] terminate() sent shutdown request to ${e}`),!0}async kill(e){if(U(`[InProcessBackend] kill() called for ${e}`),!this.context)return U(`[InProcessBackend] kill() failed: no context set for ${e}`),!1;let t=SM(e,this.context.getAppState().tasks);if(!t)return U(`[InProcessBackend] kill() failed: task not found for ${e}`),!1;let n=Q6e(t.id,this.context.setAppState);return U(`[InProcessBackend] kill() ${n?`succeeded`:`failed`} for ${e}`),n}async isActive(e){if(U(`[InProcessBackend] isActive() called for ${e}`),!this.context)return U(`[InProcessBackend] isActive() failed: no context set for ${e}`),!1;let t=SM(e,this.context.getAppState().tasks);if(!t)return U(`[InProcessBackend] isActive(): task not found for ${e}`),!1;let n=t.status===`running`,r=t.abortController?.signal.aborted??!0,i=n&&!r;return U(`[InProcessBackend] isActive() for ${e}: ${i} (running=${n}, aborted=${r})`),i}}}));async function IMt(){return(await ts(`which`,[`uv`])).code===0?(U(`[it2Setup] Found uv (will use uv tool install)`),`uvx`):(await ts(`which`,[`pipx`])).code===0?(U(`[it2Setup] Found pipx package manager`),`pipx`):(await ts(`which`,[`pip`])).code===0?(U(`[it2Setup] Found pip package manager`),`pip`):(await ts(`which`,[`pip3`])).code===0?(U(`[it2Setup] Found pip3 package manager`),`pip`):(U(`[it2Setup] No Python package manager found`),null)}async function LMt(){return(await ts(`which`,[`it2`])).code===0}async function RMt(e){U(`[it2Setup] Installing it2 using ${e}`);let t;switch(e){case`uvx`:t=await $o(`uv`,[`tool`,`install`,`it2`],{cwd:Su()});break;case`pipx`:t=await $o(`pipx`,[`install`,`it2`],{cwd:Su()});break;case`pip`:t=await $o(`pip`,[`install`,`--user`,`it2`],{cwd:Su()}),t.code!==0&&(t=await $o(`pip3`,[`install`,`--user`,`it2`],{cwd:Su()}));break}if(t.code!==0){let n=t.stderr||`Unknown installation error`;return q(Error(`[it2Setup] Failed to install it2: ${n}`)),{success:!1,error:n,packageManager:e}}return U(`[it2Setup] it2 installed successfully`),{success:!0,packageManager:e}}async function zMt(){if(U(`[it2Setup] Verifying it2 setup...`),!await LMt())return{success:!1,error:`it2 CLI is not installed or not in PATH`};let e=await ts(`it2`,[`session`,`list`]);if(e.code!==0){let t=e.stderr.toLowerCase();return t.includes(`api`)||t.includes(`python`)||t.includes(`connection refused`)||t.includes(`not enabled`)?(U(`[it2Setup] Python API not enabled in iTerm2`),{success:!1,error:`Python API not enabled in iTerm2 preferences`,needsPythonApiEnabled:!0}):{success:!1,error:e.stderr||`Failed to communicate with iTerm2`}}return U(`[it2Setup] it2 setup verified successfully`),{success:!0}}function BMt(){return[`Almost done! Enable the Python API in iTerm2:`,``,` iTerm2 → Settings → General → Magic → Enable Python API`,``,`After enabling, you may need to restart iTerm2.`]}function VMt(){Tr().iterm2It2SetupComplete!==!0&&(fr(e=>({...e,iterm2It2SetupComplete:!0})),U(`[it2Setup] Marked it2 setup as complete`))}function HMt(e){Tr().preferTmuxOverIterm2!==e&&(fr(t=>({...t,preferTmuxOverIterm2:e})),U(`[it2Setup] Set preferTmuxOverIterm2 = ${e}`))}function UMt(){return Tr().preferTmuxOverIterm2===!0}var WMt=n((()=>{xn(),W(),es(),Ao()}));function GMt(){return process.env.CLAUDE_CODE_TEAMMATE_COMMAND?process.env[Hfe]:ao()?process.execPath:process.argv[1]}function KMt(e){let t=[],{planModeRequired:n,permissionMode:r}=e||{};n||(r===`bypassPermissions`||Bne()?t.push(`--dangerously-skip-permissions`):r===`acceptEdits`?t.push(`--permission-mode`,`acceptEdits`):r===`auto`&&t.push(`--permission-mode`,`auto`));let i=rne();i&&t.push(`--model`,i);let a=jte();a&&t.push(`--settings`,a);let o=Nt();for(let e of o)t.push(`--plugin-dir`,e);let s=vu();t.push(`--teammate-mode`,s);let c=Wte();return c===!0?t.push(`--chrome`):c===!1&&t.push(`--no-chrome`),t}function qMt(){return JMt().map(([e,t])=>`${e}=${ll([t])}`).join(` `)}function JMt(){let e=[[`CLAUDECODE`,`1`],[`CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS`,`1`]];for(let t of YMt){let n=process.env[t];n!==void 0&&n!==``&&e.push([t,n])}return e}var YMt,XMt=n((()=>{tn(),dl(),oo(),ope(),lu(),YMt=[`CLAUDE_CODE_USE_BEDROCK`,`CLAUDE_CODE_USE_VERTEX`,`CLAUDE_CODE_USE_FOUNDRY`,`ANTHROPIC_BASE_URL`,`CLAUDE_CONFIG_DIR`,`CLAUDE_CODE_REMOTE`,`CLAUDE_CODE_REMOTE_MEMORY_DIR`,`HTTPS_PROXY`,`https_proxy`,`HTTP_PROXY`,`http_proxy`,`NO_PROXY`,`no_proxy`,`SSL_CERT_FILE`,`NODE_EXTRA_CA_CERTS`,`REQUESTS_CA_BUNDLE`,`CURL_CA_BUNDLE`]}));function PY(e){let t=FY.get(e);if(t)return t;let n=Dj[IY%Dj.length];return FY.set(e,n),IY++,n}function ZMt(){FY.clear(),IY=0}var FY,IY,LY=n((()=>{kj(),eX(),FY=new Map,IY=0}));function RY(e){return`'${e.replace(/'/g,`''`)}'`}function QMt(e){let t=[];for(let n=0;n<e.length;n+=1){if(e[n]===`--model`){n+=1;continue}t.push(e[n])}return t}function $Mt(e,t,n){let r=JMt().map(([e,t])=>`$env:${e} = ${RY(t)}`),i=ao()?`& ${RY(e)}`:`& ${RY(process.execPath)} ${RY(e)}`;return[`Set-Location -LiteralPath ${RY(n)}`,...r,`${i} ${t.map(RY).join(` `)}`].join(`; `)}function eNt(e){return new tNt(e)}var tNt,nNt=n((()=>{tn(),bM(),dl(),oo(),Ma(),W(),Va(),FB(),XMt(),LY(),_u(),O(),tNt=class{constructor(e){k(this,`type`,void 0),k(this,`backend`,void 0),k(this,`context`,null),k(this,`spawnedTeammates`,void 0),k(this,`cleanupRegistered`,!1),this.backend=e,this.type=e.type,this.spawnedTeammates=new Map}setContext(e){this.context=e}async isAvailable(){return this.backend.isAvailable()}async spawn(e){let t=_M(e.name,e.teamName);if(!this.context)return U(`[PaneBackendExecutor] spawn() called without context for ${e.name}`),{success:!1,agentId:t,error:`PaneBackendExecutor not initialized. Call setContext() before spawn().`};try{let n=e.color??PY(t),r=e.useSplitPane===!1&&this.backend.createTeammateWindowInSwarmView?await this.backend.createTeammateWindowInSwarmView(e.name,n):await this.backend.createTeammatePaneInSwarmView(e.name,n),{paneId:i,isFirstTeammate:a}=r,o=await rpe();a&&o&&await this.backend.enablePaneBorderStatus();let s=GMt(),c=[`--agent-id`,t,`--agent-name`,e.name,`--team-name`,e.teamName,`--agent-color`,n,`--parent-session-id`,e.parentSessionId||Ft(),...e.planModeRequired?[`--plan-mode-required`]:[],...e.agentType?[`--agent-type`,e.agentType]:[]],l=this.context.getAppState(),u=KMt({planModeRequired:e.planModeRequired,permissionMode:l.toolPermissionContext.mode});e.model&&(u=QMt(u),u.push(`--model`,e.model));let d=e.cwd,f=qMt(),p=[...c,...u],m=this.type===`windows-terminal`?$Mt(s,p,d):`cd ${ll([d])} && env ${f} ${ll([s])} ${ll(p)}`;return await this.backend.sendCommandToPane(i,m,!o),this.spawnedTeammates.set(t,{paneId:i,insideTmux:o}),this.cleanupRegistered||(this.cleanupRegistered=!0,ja(async()=>{for(let[e,t]of this.spawnedTeammates)U(`[PaneBackendExecutor] Cleanup: killing pane for ${e}`),await this.backend.killPane(t.paneId,!t.insideTmux);this.spawnedTeammates.clear()})),await fB(e.name,{from:`team-lead`,text:e.prompt,timestamp:new Date().toISOString()},e.teamName),U(`[PaneBackendExecutor] Spawned teammate ${t} in pane ${i}`),{success:!0,agentId:t,paneId:i,backendType:this.type,color:n,insideTmux:o,windowName:`windowName`in r?r.windowName:void 0,isSplitPane:e.useSplitPane!==!1}}catch(e){let n=e instanceof Error?e.message:String(e);return U(`[PaneBackendExecutor] Failed to spawn ${t}: ${n}`),{success:!1,agentId:t,error:n}}}async sendMessage(e,t){U(`[PaneBackendExecutor] sendMessage() to ${e}: ${t.text.substring(0,50)}...`);let n=vM(e);if(!n)throw Error(`Invalid agentId format: ${e}. Expected format: agentName@teamName`);let{agentName:r,teamName:i}=n;await fB(r,{text:t.text,from:t.from,color:t.color,timestamp:t.timestamp??new Date().toISOString()},i),U(`[PaneBackendExecutor] sendMessage() completed for ${e}`)}async terminate(e,t){U(`[PaneBackendExecutor] terminate() called for ${e}: ${t}`);let n=vM(e);if(!n)return U(`[PaneBackendExecutor] terminate() failed: invalid agentId format`),!1;let{agentName:r,teamName:i}=n;return await fB(r,{from:`team-lead`,text:V({type:`shutdown_request`,requestId:`shutdown-${e}-${Date.now()}`,from:`team-lead`,reason:t}),timestamp:new Date().toISOString()},i),U(`[PaneBackendExecutor] terminate() sent shutdown request to ${e}`),!0}async kill(e){U(`[PaneBackendExecutor] kill() called for ${e}`);let t=this.spawnedTeammates.get(e);if(!t)return U(`[PaneBackendExecutor] kill() failed: teammate ${e} not found in spawned map`),!1;let{paneId:n,insideTmux:r}=t,i=await this.backend.killPane(n,!r);return i?(this.spawnedTeammates.delete(e),U(`[PaneBackendExecutor] kill() succeeded for ${e}`)):U(`[PaneBackendExecutor] kill() failed for ${e}`),i}async isActive(e){return U(`[PaneBackendExecutor] isActive() called for ${e}`),this.spawnedTeammates.get(e)?!0:(U(`[PaneBackendExecutor] isActive(): teammate ${e} not found`),!1)}}}));async function zY(){qY||(await import(`./TmuxBackend-B7Nabc5t.js`),await import(`./ITermBackend-dcs68DGS.js`),await import(`./WindowsTerminalBackend-CeSoQ_Nk.js`),qY=!0)}function rNt(e){ZY=e}function iNt(e){U(`[registry] registerITermBackend called, class=${e?.name||`undefined`}`),QY=e}function aNt(e){$Y=e}function BY(){if(!ZY)throw Error(`TmuxBackend not registered. Import TmuxBackend.ts before using the registry.`);return new ZY}function oNt(){if(!QY)throw Error(`ITermBackend not registered. Import ITermBackend.ts before using the registry.`);return new QY}function VY(){if(!$Y)throw Error(`WindowsTerminalBackend not registered. Import WindowsTerminalBackend.ts before using the registry.`);return new $Y}async function sNt(){if(await zY(),KY)return U(`[BackendRegistry] Using cached backend: ${KY.backend.type}`),KY;U(`[BackendRegistry] Starting backend detection...`);let e=await rpe(),t=hu(),n=tpe();if(U(`[BackendRegistry] Environment: insideTmux=${e}, inITerm2=${t}, inWindowsTerminal=${n}`),HY()===`windows-terminal`){if(No()!==`windows`)throw Error(`Windows Terminal teammate mode is only available on Windows`);if(!await ape())throw Error(`Windows Terminal teammate mode requires wt.exe in PATH`);let e=VY();return GY=e,KY={backend:e,isNative:n,needsIt2Setup:!1},KY}if(e){U(`[BackendRegistry] Selected: tmux (running inside tmux session)`);let e=BY();return GY=e,KY={backend:e,isNative:!0,needsIt2Setup:!1},KY}if(t){let e=UMt();if(e)U(`[BackendRegistry] User prefers tmux over iTerm2, skipping iTerm2 detection`);else{let e=await npe();if(U(`[BackendRegistry] iTerm2 detected, it2 CLI available: ${e}`),e){U(`[BackendRegistry] Selected: iterm2 (native iTerm2 with it2 CLI)`);let e=oNt();return GY=e,KY={backend:e,isNative:!0,needsIt2Setup:!1},KY}}let t=await gu();if(U(`[BackendRegistry] it2 not available, tmux available: ${t}`),t){U(`[BackendRegistry] Selected: tmux (fallback in iTerm2, it2 setup recommended)`);let t=BY();return GY=t,KY={backend:t,isNative:!1,needsIt2Setup:!e},KY}throw U(`[BackendRegistry] ERROR: iTerm2 detected but no it2 CLI and no tmux`),Error(`iTerm2 detected but it2 CLI not installed. Install it2 with: pip install it2`)}if(No()===`windows`&&n){let e=await ape();if(U(`[BackendRegistry] Inside Windows Terminal, wt.exe available: ${e}`),e){U(`[BackendRegistry] Selected: Windows Terminal (wt.exe)`);let e=VY();return GY=e,KY={backend:e,isNative:!0,needsIt2Setup:!1},KY}}let r=await gu();if(U(`[BackendRegistry] Not in tmux or iTerm2, tmux available: ${r}`),r){U(`[BackendRegistry] Selected: tmux (external session mode)`);let e=BY();return GY=e,KY={backend:e,isNative:!1,needsIt2Setup:!1},KY}throw U(`[BackendRegistry] ERROR: No pane backend available`),Error(cNt())}function cNt(){switch(No()){case`macos`:return`To use agent swarms, install tmux:
|
|
2174
2174
|
brew install tmux
|
|
2175
2175
|
Then start a tmux session with: tmux new-session -s claude`;case`linux`:case`wsl`:return`To use agent swarms, install tmux:
|
|
2176
2176
|
sudo apt install tmux # Ubuntu/Debian
|
|
@@ -2342,7 +2342,7 @@ Use this when:
|
|
|
2342
2342
|
|
|
2343
2343
|
The search uses TF-IDF keyword matching against all registered skills (bundled, user-defined, and MCP-provided). Results include skill name, description, and relevance score.`})),BPt=i({DiscoverSkillsTool:()=>HPt}),VPt,HPt,UPt=n((()=>{it(),Sc(),Fs(),zPt(),VPt=J(()=>Pe({description:F().describe(`Description of what you want to do. Be specific — e.g. "deploy a Next.js app to Cloudflare Workers" rather than just "deploy".`),limit:P().optional().describe(`Maximum number of results to return (default: 5)`)})),HPt=sc({name:vX,searchHint:`find search discover skills commands tools capabilities`,maxResultSizeChars:1e4,strict:!0,get inputSchema(){return VPt()},async description(){return yX},async prompt(){return bX},isConcurrencySafe(){return!0},isReadOnly(){return!0},userFacingName(){return`Discover Skills`},renderToolUseMessage(e){return`Searching skills: ${e.description?.slice(0,80)??`...`}`},mapToolResultToToolResultBlockParam(e,t){if(e.count===0)return{tool_use_id:t,type:`tool_result`,content:`No matching skills found for that description.`};let n=e.results.map((e,t)=>`${t+1}. **${e.name}** (score: ${e.score.toFixed(2)})\n ${e.description}`);return{tool_use_id:t,type:`tool_result`,content:`Found ${e.count} relevant skill(s):\n\n${n.join(`
|
|
2344
2344
|
|
|
2345
|
-
`)}`}},async call(e,t){let{getSkillIndex:n,searchSkills:r}=await import(`./localSearch-
|
|
2345
|
+
`)}`}},async call(e,t){let{getSkillIndex:n,searchSkills:r}=await import(`./localSearch-COyJeP9E.js`),{getCwd:i}=await import(`./cwd-BgpSJxd7.js`),a=await n(i()),o=r(e.description,a,e.limit??5);return{data:{results:o.map(e=>({name:e.name,description:e.description,score:e.score})),count:o.length}}}})})),WPt=i({initBundledWorkflows:()=>GPt});function GPt(){}var KPt=n((()=>{})),qPt=i({WorkflowTool:()=>lFt});async function JPt(e,t){for(let n of Cc){let r=Y(e,`${t}${n}`);try{return{path:r,content:await hd(r,`utf-8`)}}catch{}}return null}async function YPt(e){try{return(await gd(e)).filter(e=>Cc.includes(Au(e).ext.toLowerCase())).map(e=>Au(e).name).sort()}catch{return[]}}function XPt(e,t){return Y(e,CX,`${t}.json`)}async function ZPt(e,t){try{let n=os(await hd(XPt(e,t),`utf-8`),!1);return!n||typeof n.runId!=`string`||typeof n.workflow!=`string`||!Array.isArray(n.steps)?null:n}catch{return null}}async function xX(e,t){await pd(Y(e,CX),{recursive:!0}),await wd(XPt(e,t.runId),JSON.stringify(t,null,2)+`
|
|
2346
2346
|
`,`utf-8`)}async function QPt(e){let t;try{t=await gd(Y(e,CX))}catch{return[]}return(await Promise.all(t.filter(e=>e.endsWith(`.json`)).map(t=>ZPt(e,t.slice(0,-5))))).filter(e=>e!==null).sort((e,t)=>t.updatedAt-e.updatedAt)}function $Pt(e){let t=[];for(let n of e.split(`
|
|
2347
2347
|
`)){let e=n.trim(),r=e.match(/^[-*]\s+\[[ xX]\]\s+(.+)$/),i=e.match(/^[-*]\s+(.+)$/),a=e.match(/^\d+[.)]\s+(.+)$/),o=r?.[1]??i?.[1]??a?.[1];o&&t.push({name:o.slice(0,80),prompt:o,status:`pending`})}return t}function eFt(e){let t=[],n=null,r=()=>{if(!n)return;let e=n.prompt??n.name;n.name&&e&&t.push({name:n.name,prompt:e,status:`pending`}),n=null};for(let t of e.split(`
|
|
2348
2348
|
`)){let e=t.trim(),i=e.match(/^-\s+(.+)$/)?.[1];if(i){r();let e=i.match(/^name:\s*(.+)$/)?.[1];n={name:e??i,prompt:e?void 0:i};continue}let a=e.match(/^name:\s*(.+)$/)?.[1];if(a){n||(n={}),n.name=a;continue}let o=e.match(/^(prompt|run|command):\s*(.+)$/)?.[2];o&&(n||(n={}),n.prompt=o)}return r(),t}function tFt(e,t){let n=Au(e).ext.toLowerCase()===`.md`?$Pt(t):eFt(t);return n.length>0?n:[{name:`Execute workflow`,prompt:t.trim(),status:`pending`}]}function nFt(e,t){return`Step ${t+1}: ${e.name}\n${e.prompt}`}function rFt(e){let t=[`Workflow run: ${e.runId}`,`Workflow: ${e.workflow}`,`Status: ${e.status}`,`Current step: ${e.steps[e.currentStepIndex]?.name??`none`}`,`Steps: ${e.steps.length}`];for(let n=0;n<e.steps.length;n+=1){let r=e.steps[n];t.push(` ${n+1}. [${r.status}] ${r.name}`)}return t.join(`
|
|
@@ -2552,7 +2552,7 @@ For commands that are harder to parse at a glance (piped commands, obscure flags
|
|
|
2552
2552
|
`).filter(e=>{let t=e.trim();return t!==``&&!t.startsWith(`#`)});return t.length===0?e:t.join(`
|
|
2553
2553
|
`)}function iQ(e){let t=[/^timeout[ \t]+(?:(?:--(?:foreground|preserve-status|verbose)|--(?:kill-after|signal)=[A-Za-z0-9_.+-]+|--(?:kill-after|signal)[ \t]+[A-Za-z0-9_.+-]+|-v|-[ks][ \t]+[A-Za-z0-9_.+-]+|-[ks][A-Za-z0-9_.+-]+)[ \t]+)*(?:--[ \t]+)?\d+(?:\.\d+)?[smhd]?[ \t]+/,/^time[ \t]+(?:--[ \t]+)?/,/^nice(?:[ \t]+-n[ \t]+-?\d+|[ \t]+-\d+)?[ \t]+(?:--[ \t]+)?/,/^stdbuf(?:[ \t]+-[ioe][LN0-9]+)+[ \t]+(?:--[ \t]+)?/,/^nohup[ \t]+(?:--[ \t]+)?/],n=/^([A-Za-z_][A-Za-z0-9_]*)=([A-Za-z0-9_./:-]+)[ \t]+/,r=e,i=``;for(;r!==i;){i=r,r=rQ(r);let e=r.match(n);if(e){let t=e[1],i=process.env.USER_TYPE===`ant`&&gQ.has(t);(hQ.has(t)||i)&&(r=r.replace(n,``))}}for(i=``;r!==i;){i=r,r=rQ(r);for(let e of t)r=r.replace(e,``)}return r.trim()}function ULt(e,t){let n=/^([A-Za-z_][A-Za-z0-9_]*(?:\[[^\]]*\])?)\+?=(?:'[^'\n\r]*'|"(?:\\.|[^"$`\\\n\r])*"|\\.|[^ \t\n\r$`;|&()<>\\\\'"])*[ \t]+/,r=e,i=``;for(;r!==i;){i=r,r=rQ(r);let e=r.match(n);if(e){if(t?.test(e[1]))break;r=r.slice(e[0].length)}}return r.trim()}function aQ(e,t,n,{stripAllEnvVars:r=!1,skipCompoundCheck:i=!1}={}){let a=e.command.trim(),o=g9(a).commandWithoutRedirections,s=(n===`exact`?[a,o]:[o]).flatMap(e=>{let t=iQ(e);return t===e?[e]:[e,t]});if(r){let e=new Set(s),t=0;for(;t<s.length;){let n=s.length;for(let r=t;r<n;r++){let t=s[r];if(!t)continue;let n=ULt(t);e.has(n)||(s.push(n),e.add(n));let i=iQ(t);e.has(i)||(s.push(i),e.add(i))}t=n}}let c=new Map;if(n===`prefix`&&!i)for(let e of s)c.has(e)||c.set(e,fQ(e).length>1);return Array.from(t.entries()).filter(([e])=>{let t=mQ(e);return s.some(e=>{switch(t.type){case`exact`:return t.command===e;case`prefix`:switch(n){case`exact`:return t.prefix===e;case`prefix`:{if(c.get(e))return!1;if(e===t.prefix||e.startsWith(t.prefix+` `))return!0;let n=`xargs `+t.prefix;return e===n?!0:e.startsWith(n+` `)}}break;case`wildcard`:return n===`exact`||c.get(e)?!1:nQ(t.pattern,e)}})}).map(([,e])=>e)}function oQ(e,t,n,{skipCompoundCheck:r=!1}={}){return{matchingDenyRules:aQ(e,k9(t,QZ,`deny`),n,{stripAllEnvVars:!0,skipCompoundCheck:!0}),matchingAskRules:aQ(e,k9(t,QZ,`ask`),n,{stripAllEnvVars:!0,skipCompoundCheck:!0}),matchingAllowRules:aQ(e,k9(t,QZ,`allow`),n,{skipCompoundCheck:r})}}async function WLt(e,t,n,r,i){let a=_Q(e,t);if(a.behavior!==`passthrough`)return a;let o=vQ(e,t,r);if(o.behavior===`deny`||o.behavior===`ask`)return o;if(!i&&!x(process.env.CLAUDE_CODE_DISABLE_COMMAND_INJECTION_CHECK)){let t=await dQ(e.command);if(t.behavior!==`passthrough`){let e={type:`other`,reason:t.behavior===`ask`&&t.message?t.message:`This command contains patterns that could pose security risks and requires approval`};return{behavior:`ask`,message:D9(QZ.name,e),decisionReason:e,suggestions:[]}}}if(o.behavior===`allow`)return o;let s=n?.commandPrefix?HLt(n.commandPrefix):tQ(e.command);return{...o,suggestions:s}}function GLt(e,t){let n=e.command.trim(),{matchingDenyRules:r,matchingAskRules:i}=oQ(e,t,`prefix`);if(r[0]!==void 0)return{behavior:`deny`,message:`Permission to use ${QZ.name} with command ${n} has been denied.`,decisionReason:{type:`rule`,rule:r[0]}};let a=fQ(n);if(a.length>1){let e;for(let r of a){let i=oQ({command:r},t,`prefix`);if(i.matchingDenyRules[0]!==void 0)return{behavior:`deny`,message:`Permission to use ${QZ.name} with command ${n} has been denied.`,decisionReason:{type:`rule`,rule:i.matchingDenyRules[0]}};e??(e=i.matchingAskRules[0])}if(e)return{behavior:`ask`,message:D9(QZ.name),decisionReason:{type:`rule`,rule:e}}}return i[0]===void 0?{behavior:`allow`,updatedInput:e,decisionReason:{type:`other`,reason:`Auto-allowed with sandbox (autoAllowBashIfSandboxed enabled)`}}:{behavior:`ask`,message:D9(QZ.name),decisionReason:{type:`rule`,rule:i[0]}}}function KLt(e,t,n,r){let i=[],a=[];for(let o=0;o<e.length;o++){let s=e[o];s===`cd ${n}`||s===`cd ${r}`||(i.push(s),a.push(t?.[o]))}return{subcommands:i,astCommandsByIdx:a}}function qLt(e,t){let n=_Q(e,t);if(n.behavior!==`passthrough`)return n;let r=oQ(e,t,`prefix`).matchingDenyRules[0];return r===void 0?null:{behavior:`deny`,message:`Permission to use ${QZ.name} with command ${e.command} has been denied.`,decisionReason:{type:`rule`,rule:r}}}function JLt(e,t,n){let r=qLt(e,t);if(r!==null)return r;for(let r of n){let n=oQ({...e,command:r.text},t,`prefix`).matchingDenyRules[0];if(n!==void 0)return{behavior:`deny`,message:`Permission to use ${QZ.name} with command ${e.command} has been denied.`,decisionReason:{type:`rule`,rule:n}}}return null}function YLt(e,t,n,r){if(!ky()||t.mode===`auto`||t.mode===`bypassPermissions`)return!1;let i=cMe(t);if(i.length===0)return!1;let a=Ay(e,Ga(),i,`allow`,n,r);return a.catch(()=>{}),yQ.set(e,a),!0}function XLt(){yQ.clear()}async function sQ(e,t,n=C9){let r=t.getAppState(),i=x(process.env.CLAUDE_CODE_DISABLE_COMMAND_INJECTION_CHECK)?null:await ode(e.command),a=i?wje(e.command,i):{kind:`parse-unavailable`},o=null,s,c;if(a.kind===`too-complex`){let t=qLt(e,r.toolPermissionContext);if(t!==null)return t;let n={type:`other`,reason:a.reason};return G(`tengu_bash_ast_too_complex`,{nodeTypeId:xje(a.nodeType)}),{behavior:`ask`,decisionReason:n,message:D9(QZ.name,n),suggestions:[]}}if(a.kind===`simple`){let t=Ije(a.commands);if(!t.ok){let n=JLt(e,r.toolPermissionContext,a.commands);if(n!==null)return n;let i={type:`other`,reason:t.reason};return{behavior:`ask`,decisionReason:i,message:D9(QZ.name,i),suggestions:[]}}o=a.commands.map(e=>e.text),s=a.commands.flatMap(e=>e.redirects),c=a.commands}if(a.kind===`parse-unavailable`){U(`bashToolHasPermission: tree-sitter unavailable, using legacy shell-quote path`);let t=cl(e.command);if(!t.success){let e={type:`other`,reason:`Command contains malformed syntax that cannot be parsed: ${t.error}`};return{behavior:`ask`,decisionReason:e,message:D9(QZ.name,e)}}}if(Nm.isSandboxingEnabled()&&Nm.isAutoAllowBashIfSandboxedEnabled()&&T9(e)){let t=GLt(e,r.toolPermissionContext);if(t.behavior!==`passthrough`)return t}let l=_Q(e,r.toolPermissionContext);if(l.behavior===`deny`)return l;if(ky()&&r.toolPermissionContext.mode!==`auto`){let i=oMe(r.toolPermissionContext),a=sMe(r.toolPermissionContext),o=i.length>0,s=a.length>0;if(o||s){let[r,c]=await Promise.all([o?Ay(e.command,Ga(),i,`deny`,t.abortController.signal,t.options.isNonInteractiveSession):null,s?Ay(e.command,Ga(),a,`ask`,t.abortController.signal,t.options.isNonInteractiveSession):null]);if(t.abortController.signal.aborted)throw new La;if(r&&zLt(e.command,`deny`,i,r),c&&zLt(e.command,`ask`,a,c),r?.matches&&r.confidence===`high`)return{behavior:`deny`,message:`Denied by Bash prompt rule: "${r.matchedDescription}"`,decisionReason:{type:`other`,reason:`Denied by Bash prompt rule: "${r.matchedDescription}"`}};if(c?.matches&&c.confidence===`high`){let r;if(n===C9)r=tQ(e.command);else{let i=await n(e.command,t.abortController.signal,t.options.isNonInteractiveSession);if(t.abortController.signal.aborted)throw new La;r=i?.commandPrefix?HLt(i.commandPrefix):tQ(e.command)}return{behavior:`ask`,message:D9(QZ.name),decisionReason:{type:`other`,reason:`Required by Bash prompt rule: "${c.matchedDescription}"`},suggestions:r}}}}let u=await jLt(e,e=>sQ(e,t,n),{isNormalizedCdCommand:lQ,isNormalizedGitCommand:cQ},i);if(u.behavior!==`passthrough`){if(u.behavior===`allow`){let n=o===null?await dQ(e.command):null;if(n!==null&&n.behavior!==`passthrough`&&n.behavior!==`allow`)return r=t.getAppState(),{behavior:`ask`,message:D9(QZ.name,{type:`other`,reason:n.message??`Command contains patterns that require approval`}),decisionReason:{type:`other`,reason:n.message??`Command contains patterns that require approval`}};r=t.getAppState();let i=bb(e,Ga(),r.toolPermissionContext,uQ(e.command),s,c);if(i.behavior!==`passthrough`)return i}return u.behavior===`ask`?(r=t.getAppState(),{...u}):u}if(o===null&&!x(process.env.CLAUDE_CODE_DISABLE_COMMAND_INJECTION_CHECK)){let n=await dQ(e.command);if(n.behavior===`ask`&&n.isBashSecurityCheckForMisparsing){let i=wNe(e.command),a=i===null?null:await dQ(i);if(i===null||a?.behavior===`ask`&&a.isBashSecurityCheckForMisparsing){r=t.getAppState();let i=_Q(e,r.toolPermissionContext);if(i.behavior===`allow`)return i;let a={type:`other`,reason:n.message};return{behavior:`ask`,message:D9(QZ.name,a),decisionReason:a,suggestions:[]}}}}let d=Ga(),f=No()===`windows`?zo(d):d,{subcommands:p,astCommandsByIdx:m}=KLt(o??void 0??fQ(e.command),c,d,f);if(o===null&&p.length>50){U(`bashPermissions: ${p.length} subcommands exceeds cap (50) — returning ask`,{level:`debug`});let e={type:`other`,reason:`Command splits into ${p.length} subcommands, too many to safety-check individually`};return{behavior:`ask`,message:D9(QZ.name,e),decisionReason:e}}let h=p.filter(e=>lQ(e));if(h.length>1){let e={type:`other`,reason:`Multiple directory changes in one command require approval for clarity`};return{behavior:`ask`,decisionReason:e,message:D9(QZ.name,e)}}let g=h.length>0;if(g&&p.some(e=>cQ(e.trim()))){let e={type:`other`,reason:`Compound commands with cd and git require approval to prevent bare repository attacks`};return{behavior:`ask`,decisionReason:e,message:D9(QZ.name,e)}}r=t.getAppState();let _=p.map((e,t)=>vQ({command:e},r.toolPermissionContext,g,m[t]));if(_.find(e=>e.behavior===`deny`)!==void 0)return{behavior:`deny`,message:`Permission to use ${QZ.name} with command ${e.command} has been denied.`,decisionReason:{type:`subcommandResults`,reasons:new Map(_.map((e,t)=>[p[t],e]))}};let v=bb(e,Ga(),r.toolPermissionContext,g,s,c);if(v.behavior===`deny`)return v;let y=_.find(e=>e.behavior===`ask`),b=fs(_,e=>e.behavior!==`allow`);if(v.behavior===`ask`&&y===void 0)return v;if(y!==void 0&&b===1)return{...y};if(l.behavior===`allow`)return l;let S=!1;if(o===null&&!x(process.env.CLAUDE_CODE_DISABLE_COMMAND_INJECTION_CHECK)){let e=0,t=()=>{e++};S=(await Promise.all(p.map(e=>dQ(e,t)))).some(e=>e.behavior!==`passthrough`),e>0&&G(`tengu_tree_sitter_security_divergence`,{quoteContextDivergence:!0,count:e})}if(_.every(e=>e.behavior===`allow`)&&!S)return{behavior:`allow`,updatedInput:e,decisionReason:{type:`subcommandResults`,reasons:new Map(_.map((e,t)=>[p[t],e]))}};let C=null;if(n!==C9&&(C=await n(e.command,t.abortController.signal,t.options.isNonInteractiveSession),t.abortController.signal.aborted))throw new La;if(r=t.getAppState(),p.length===1){let e=await WLt({command:p[0]},r.toolPermissionContext,C,g,o!==null);return e.behavior===`ask`||e.behavior===`passthrough`?{...e}:e}let w=new Map;for(let t of p)w.set(t,await WLt({...e,command:t},r.toolPermissionContext,C?.subcommandPrefixes.get(t),g,o!==null));if(p.every(e=>w.get(e)?.behavior===`allow`))return{behavior:`allow`,updatedInput:e,decisionReason:{type:`subcommandResults`,reasons:w}};let T=new Map;for(let[e,t]of w)if(t.behavior===`ask`||t.behavior===`passthrough`){let n=Fy(`suggestions`in t?t.suggestions:void 0);for(let e of n){let t=Ir(e);T.set(t,e)}if(t.behavior===`ask`&&n.length===0&&t.decisionReason?.type!==`rule`)for(let t of Fy(tQ(e))){let e=Ir(t);T.set(e,t)}}let E={type:`subcommandResults`,reasons:w},D=Array.from(T.values()).slice(0,5),ee=D.length>0?[{type:`addRules`,rules:D,behavior:`allow`,destination:`localSettings`}]:void 0;return{behavior:y===void 0?`passthrough`:`ask`,message:D9(QZ.name,E),decisionReason:E,suggestions:ee}}function cQ(e){if(e.startsWith(`git `)||e===`git`)return!0;let t=iQ(e),n=cl(t);return n.success&&n.tokens.length>0?!!(n.tokens[0]===`git`||n.tokens[0]===`xargs`&&n.tokens.includes(`git`)):/^git(?:\s|$)/.test(t)}function lQ(e){let t=iQ(e),n=cl(t);if(n.success&&n.tokens.length>0){let e=n.tokens[0];return e===`cd`||e===`pushd`||e===`popd`}return/^(?:cd|pushd|popd)(?:\s|$)/.test(t)}function uQ(e){return fQ(e).some(e=>lQ(e.trim()))}var dQ,fQ,pQ,ZLt,QLt,mQ,hQ,gQ,$Lt,_Q,vQ,yQ,bQ=n((()=>{Ka(),wr(),Ua(),Ss(),iMe(),w9(),Ll(),dl(),Wa(),W(),y(),ka(),uMe(),By(),Cr(),P9(),Ky(),Po(),Pm(),Va(),Bo(),$Z(),NLt(),gb(),RLt(),SPe(),vb(),E9(),dQ=qNe,fQ=h9,pQ=/^[A-Za-z_]\w*=/,ZLt=new Set([`sh`,`bash`,`zsh`,`fish`,`csh`,`tcsh`,`ksh`,`dash`,`cmd`,`powershell`,`pwsh`,`env`,`xargs`,`nice`,`stdbuf`,`nohup`,`timeout`,`time`,`sudo`,`doas`,`pkexec`]),QLt=Vy,mQ=wMe,hQ=new Set(`GOEXPERIMENT.GOOS.GOARCH.CGO_ENABLED.GO111MODULE.RUST_BACKTRACE.RUST_LOG.NODE_ENV.PYTHONUNBUFFERED.PYTHONDONTWRITEBYTECODE.PYTEST_DISABLE_PLUGIN_AUTOLOAD.PYTEST_DEBUG.ANTHROPIC_API_KEY.LANG.LANGUAGE.LC_ALL.LC_CTYPE.LC_TIME.CHARSET.TERM.COLORTERM.NO_COLOR.FORCE_COLOR.TZ.LS_COLORS.LSCOLORS.GREP_COLOR.GREP_COLORS.GCC_COLORS.TIME_STYLE.BLOCK_SIZE.BLOCKSIZE`.split(`.`)),gQ=new Set(`KUBECONFIG.DOCKER_HOST.AWS_PROFILE.CLOUDSDK_CORE_PROJECT.CLUSTER.COO_CLUSTER.COO_CLUSTER_NAME.COO_NAMESPACE.COO_LAUNCH_YAML_DRY_RUN.SKIP_NODE_VERSION_CHECK.EXPECTTEST_ACCEPT.CI.GIT_LFS_SKIP_SMUDGE.CUDA_VISIBLE_DEVICES.JAX_PLATFORMS.COLUMNS.TMUX.POSTGRESQL_VERSION.FIRESTORE_EMULATOR_HOST.HARNESS_QUIET.TEST_CROSSCHECK_LISTS_MATCH_UPDATE.DBT_PER_DEVELOPER_ENVIRONMENTS.STATSIG_FORD_DB_CHECKS.ANT_ENVIRONMENT.ANT_SERVICE.MONOREPO_ROOT_DIR.PYENV_VERSION.PGPASSWORD.GH_TOKEN.GROWTHBOOK_API_KEY`.split(`.`)),$Lt=/^(LD_|DYLD_|PATH$)/,_Q=(e,t)=>{let n=e.command.trim(),{matchingDenyRules:r,matchingAskRules:i,matchingAllowRules:a}=oQ(e,t,`exact`);if(r[0]!==void 0)return{behavior:`deny`,message:`Permission to use ${QZ.name} with command ${n} has been denied.`,decisionReason:{type:`rule`,rule:r[0]}};if(i[0]!==void 0)return{behavior:`ask`,message:D9(QZ.name),decisionReason:{type:`rule`,rule:i[0]}};if(a[0]!==void 0)return{behavior:`allow`,updatedInput:e,decisionReason:{type:`rule`,rule:a[0]}};let o={type:`other`,reason:`This command requires approval`};return{behavior:`passthrough`,message:D9(QZ.name,o),decisionReason:o,suggestions:tQ(n)}},vQ=(e,t,n,r)=>{let i=e.command.trim(),a=_Q(e,t);if(a.behavior===`deny`||a.behavior===`ask`)return a;let{matchingDenyRules:o,matchingAskRules:s,matchingAllowRules:c}=oQ(e,t,`prefix`,{skipCompoundCheck:r!==void 0});if(o[0]!==void 0)return{behavior:`deny`,message:`Permission to use ${QZ.name} with command ${i} has been denied.`,decisionReason:{type:`rule`,rule:o[0]}};if(s[0]!==void 0)return{behavior:`ask`,message:D9(QZ.name),decisionReason:{type:`rule`,rule:s[0]}};let l=bb(e,Ga(),t,n,r?.redirects,r?[r]:void 0);if(l.behavior!==`passthrough`)return l;if(a.behavior===`allow`)return a;if(c[0]!==void 0)return{behavior:`allow`,updatedInput:e,decisionReason:{type:`rule`,rule:c[0]}};let u=oPe(e,t);if(u.behavior!==`passthrough`)return u;let d=ILt(e,t);if(d.behavior!==`passthrough`)return d;if(QZ.isReadOnly(e))return{behavior:`allow`,updatedInput:e,decisionReason:{type:`other`,reason:`Read-only command is allowed`}};let f={type:`other`,reason:`This command requires approval`};return{behavior:`passthrough`,message:D9(QZ.name,f),decisionReason:f,suggestions:tQ(i)}},yQ=new Map})),eRt,xQ,tRt=n((()=>{O(),eRt=Symbol.asyncIterator,xQ=class{constructor(e){k(this,`queue`,[]),k(this,`readResolve`,void 0),k(this,`readReject`,void 0),k(this,`isDone`,!1),k(this,`hasError`,void 0),k(this,`started`,!1),this.returned=e}[eRt](){if(this.started)throw Error(`Stream can only be iterated once`);return this.started=!0,this}next(){return this.queue.length>0?Promise.resolve({done:!1,value:this.queue.shift()}):this.isDone?Promise.resolve({done:!0,value:void 0}):this.hasError?Promise.reject(this.hasError):new Promise((e,t)=>{this.readResolve=e,this.readReject=t})}enqueue(e){if(this.readResolve){let t=this.readResolve;this.readResolve=void 0,this.readReject=void 0,t({done:!1,value:e})}else this.queue.push(e)}done(){if(this.isDone=!0,this.readResolve){let e=this.readResolve;this.readResolve=void 0,this.readReject=void 0,e({done:!0,value:void 0})}}error(e){if(this.hasError=e,this.readReject){let t=this.readReject;this.readResolve=void 0,this.readReject=void 0,t(e)}}return(){return this.isDone=!0,this.returned&&this.returned(),Promise.resolve({done:!0,value:void 0})}}}));function SQ(e){if(e instanceof La)return e.message||`[Request interrupted by user for tool use]`;if(!(e instanceof Error))return String(e);let t=nRt(e).filter(Boolean).join(`
|
|
2554
2554
|
`).trim()||`Command failed with no output`;if(t.length<=1e4)return t;let n=5e3,r=t.slice(0,n),i=t.slice(-n);return`${r}\n\n... [${t.length-1e4} characters truncated] ...\n\n${i}`}function nRt(e){if(e instanceof Ca)return[`Exit code ${e.code}`,e.interrupted?K4:``,e.stderr,e.stdout];let t=[e.message];return`stderr`in e&&typeof e.stderr==`string`&&t.push(e.stderr),`stdout`in e&&typeof e.stdout==`string`&&t.push(e.stdout),t}function rRt(e){return e.length===0?``:e.reduce((e,t,n)=>{let r=String(t);return typeof t==`number`?`${String(e)}[${r}]`:n===0?r:`${String(e)}.${r}`},``)}function iRt(e,t){let n=t.issues.filter(e=>e.code===`invalid_type`&&e.message.includes(`received undefined`)).map(e=>rRt(e.path)),r=t.issues.filter(e=>e.code===`unrecognized_keys`).flatMap(e=>e.keys),i=t.issues.filter(e=>e.code===`invalid_type`&&!e.message.includes(`received undefined`)).map(e=>{let t=e,n=e.message.match(/received (\w+)/),r=n?n[1]:`unknown`;return{param:rRt(e.path),expected:t.expected,received:r}}),a=t.message,o=[];if(n.length>0){let e=n.map(e=>`The required parameter \`${e}\` is missing`);o.push(...e)}if(r.length>0){let e=r.map(e=>`An unexpected parameter \`${e}\` was provided`);o.push(...e)}if(i.length>0){let e=i.map(({param:e,expected:t,received:n})=>`The parameter \`${e}\` type is expected as \`${t}\` but provided as \`${n}\``);o.push(...e)}return o.length>0&&(a=`${e} failed due to the following ${o.length>1?`issues`:`issue`}:\n${o.join(`
|
|
2555
|
-
`)}`),a}var CQ=n((()=>{ka(),i3()}));function aRt(e){switch(e){case`allow`:return`allowed`;case`deny`:return`denied`;default:return`asked for confirmation for`}}var oRt=n((()=>{}));async function*sRt(e,t,n,r,i,a,o,s,c){let l=Date.now();try{let c=e.getAppState().toolPermissionContext.mode,u=a;for await(let a of C5t(t.name,n,i,u,e,c,e.abortController.signal))try{if(a.message?.type===`attachment`&&a.message.attachment.type===`hook_cancelled`){G(`tengu_post_tool_hooks_cancelled`,{toolName:Hr(t.name),queryChainId:e.queryTracking?.chainId,queryDepth:e.queryTracking?.depth}),yield{message:u0({type:`hook_cancelled`,hookName:`PostToolUse:${t.name}`,toolUseID:n,hookEvent:`PostToolUse`})};continue}if(a.message&&!(a.message.type===`attachment`&&a.message.attachment.type===`hook_blocking_error`)&&(yield{message:a.message}),a.blockingError&&(yield{message:u0({type:`hook_blocking_error`,hookName:`PostToolUse:${t.name}`,toolUseID:n,hookEvent:`PostToolUse`,blockingError:a.blockingError})}),a.preventContinuation){yield{message:u0({type:`hook_stopped_continuation`,message:a.stopReason||`Execution stopped by PostToolUse hook`,hookName:`PostToolUse:${t.name}`,toolUseID:n,hookEvent:`PostToolUse`})};return}a.additionalContexts&&a.additionalContexts.length>0&&(yield{message:u0({type:`hook_additional_context`,content:a.additionalContexts,hookName:`PostToolUse:${t.name}`,toolUseID:n,hookEvent:`PostToolUse`})}),a.updatedMCPToolOutput&&iE(t)&&(u=a.updatedMCPToolOutput,yield{updatedMCPToolOutput:u})}catch(i){let a=Date.now()-l;G(`tengu_post_tool_hook_error`,{messageID:r,toolName:Hr(t.name),isMcp:t.isMcp??!1,duration:a,queryChainId:e.queryTracking?.chainId,queryDepth:e.queryTracking?.depth,...s?{mcpServerType:s}:{},...o?{requestId:o}:{}}),yield{message:u0({type:`hook_error_during_execution`,content:SQ(i),hookName:`PostToolUse:${t.name}`,toolUseID:n,hookEvent:`PostToolUse`})}}}catch(e){q(e)}}async function*cRt(e,t,n,r,i,a,o,s,c,l){let u=Date.now();try{let l=e.getAppState().toolPermissionContext.mode;for await(let d of w5t(t.name,n,i,a,e,o,l,e.abortController.signal))try{if(d.message?.type===`attachment`&&d.message.attachment.type===`hook_cancelled`){G(`tengu_post_tool_failure_hooks_cancelled`,{toolName:Hr(t.name),queryChainId:e.queryTracking?.chainId,queryDepth:e.queryTracking?.depth}),yield{message:u0({type:`hook_cancelled`,hookName:`PostToolUseFailure:${t.name}`,toolUseID:n,hookEvent:`PostToolUseFailure`})};continue}d.message&&!(d.message.type===`attachment`&&d.message.attachment.type===`hook_blocking_error`)&&(yield{message:d.message}),d.blockingError&&(yield{message:u0({type:`hook_blocking_error`,hookName:`PostToolUseFailure:${t.name}`,toolUseID:n,hookEvent:`PostToolUseFailure`,blockingError:d.blockingError})}),d.additionalContexts&&d.additionalContexts.length>0&&(yield{message:u0({type:`hook_additional_context`,content:d.additionalContexts,hookName:`PostToolUseFailure:${t.name}`,toolUseID:n,hookEvent:`PostToolUseFailure`})})}catch(i){let a=Date.now()-u;G(`tengu_post_tool_failure_hook_error`,{messageID:r,toolName:Hr(t.name),isMcp:t.isMcp??!1,duration:a,queryChainId:e.queryTracking?.chainId,queryDepth:e.queryTracking?.depth,...c?{mcpServerType:c}:{},...s?{requestId:s}:{}}),yield{message:u0({type:`hook_error_during_execution`,content:SQ(i),hookName:`PostToolUseFailure:${t.name}`,toolUseID:n,hookEvent:`PostToolUseFailure`})}}}catch(e){q(e)}}async function lRt(e,t,n,r,i,a,o){let s=t.requiresUserInteraction?.(),c=r.requireCanUseTool;if(e?.behavior===`allow`){let l=e.updatedInput??n,u=s&&e.updatedInput!==void 0;if(s&&!u||c)return U(`Hook approved tool use for ${t.name}, but canUseTool is required`),{decision:await i(t,l,r,a,o),input:l};let d=await Qen(t,l,r);return d===null?(U(u?`Hook satisfied user interaction for ${t.name} via updatedInput`:`Hook approved tool use for ${t.name}, bypassing permission prompt`),{decision:e,input:l}):d.behavior===`deny`?(U(`Hook approved tool use for ${t.name}, but deny rule overrides: ${d.message}`),{decision:d,input:l}):(U(`Hook approved tool use for ${t.name}, but ask rule requires prompt`),{decision:await i(t,l,r,a,o),input:l})}if(e?.behavior===`deny`)return U(`Hook denied tool use for ${t.name}`),{decision:e,input:n};let l=e?.behavior===`ask`?e:void 0,u=e?.behavior===`ask`&&e.updatedInput?e.updatedInput:n;return{decision:await i(t,u,r,a,o,l),input:u}}async function*uRt(e,t,n,r,i,a,o,s){let c=Date.now();try{let s=e.getAppState();for await(let l of S5t(t.name,r,n,e,s.toolPermissionContext.mode,e.abortController.signal,void 0,e.requestPrompt,t.getToolUseSummary?.(n)))try{if(l.message&&(yield{type:`message`,message:{message:l.message}}),l.blockingError){let e=h5t(`PreToolUse:${t.name}`,l.blockingError);yield{type:`hookPermissionResult`,hookPermissionResult:{behavior:`deny`,message:e,decisionReason:{type:`hook`,hookName:`PreToolUse:${t.name}`,reason:e}}}}if(l.preventContinuation&&(yield{type:`preventContinuation`,shouldPreventContinuation:!0},l.stopReason&&(yield{type:`stopReason`,stopReason:l.stopReason})),l.permissionBehavior!==void 0){U(`Hook result has permissionBehavior=${l.permissionBehavior}`);let e={type:`hook`,hookName:`PreToolUse:${t.name}`,hookSource:l.hookSource,reason:l.hookPermissionDecisionReason};l.permissionBehavior===`allow`?yield{type:`hookPermissionResult`,hookPermissionResult:{behavior:`allow`,updatedInput:l.updatedInput,decisionReason:e}}:l.permissionBehavior===`ask`?yield{type:`hookPermissionResult`,hookPermissionResult:{behavior:`ask`,updatedInput:l.updatedInput,message:l.hookPermissionDecisionReason||`Hook PreToolUse:${t.name} ${aRt(l.permissionBehavior)} this tool`,decisionReason:e}}:yield{type:`hookPermissionResult`,hookPermissionResult:{behavior:l.permissionBehavior,message:l.hookPermissionDecisionReason||`Hook PreToolUse:${t.name} ${aRt(l.permissionBehavior)} this tool`,decisionReason:e}}}if(l.updatedInput&&l.permissionBehavior===void 0&&(yield{type:`hookUpdatedInput`,updatedInput:l.updatedInput}),l.additionalContexts&&l.additionalContexts.length>0&&(yield{type:`additionalContext`,message:{message:u0({type:`hook_additional_context`,content:l.additionalContexts,hookName:`PreToolUse:${t.name}`,toolUseID:r,hookEvent:`PreToolUse`})}}),e.abortController.signal.aborted){G(`tengu_pre_tool_hooks_cancelled`,{toolName:Hr(t.name),queryChainId:e.queryTracking?.chainId,queryDepth:e.queryTracking?.depth}),yield{type:`message`,message:{message:u0({type:`hook_cancelled`,hookName:`PreToolUse:${t.name}`,toolUseID:r,hookEvent:`PreToolUse`})}},yield{type:`stop`};return}}catch(n){q(n);let s=Date.now()-c;G(`tengu_pre_tool_hook_error`,{messageID:i,toolName:Hr(t.name),isMcp:t.isMcp??!1,duration:s,queryChainId:e.queryTracking?.chainId,queryDepth:e.queryTracking?.depth,...o?{mcpServerType:o}:{},...a?{requestId:a}:{}}),yield{type:`message`,message:{message:u0({type:`hook_error_during_execution`,content:SQ(n),hookName:`PreToolUse:${t.name}`,toolUseID:r,hookEvent:`PreToolUse`})}},yield{type:`stop`}}}catch(e){q(e),yield{type:`stop`};return}}var dRt=n((()=>{Ua(),qn(),w0(),W(),G7(),Ao(),oRt(),P9(),CQ(),oE()}));function fRt(){return TQ||(TQ=import(`./toolEventObserver-CuJbsUL0.js`).catch(e=>{throw TQ=void 0,e})),TQ}function pRt(e){if(e instanceof Ta)return e.telemetryMessage.slice(0,200);if(e instanceof Error){let t=Ea(e);return typeof t==`string`?`Error:${t}`:e.name&&e.name!==`Error`&&e.name.length>3?e.name.slice(0,60):`Error`}return`UnknownError`}function mRt(e,t){switch(e){case`session`:return t===`allow`?`user_temporary`:`user_reject`;case`localSettings`:case`userSettings`:return t===`allow`?`user_permanent`:`user_reject`;default:return`config`}}function hRt(e,t){if(!e)return`config`;switch(e.type){case`permissionPromptTool`:{let n=e.toolResult?.decisionClassification;return n===`user_temporary`||n===`user_permanent`||n===`user_reject`?n:t===`allow`?`user_temporary`:`user_reject`}case`rule`:return mRt(e.rule.source,t);case`hook`:return`hook`;case`mode`:case`classifier`:case`subcommandResults`:case`asyncAgent`:case`sandboxOverride`:case`workingDir`:case`safetyCheck`:case`other`:return`config`;default:return`config`}}function gRt(e){let t=0;for(let n of e)if(n.type===`user`&&n.imagePasteIds)for(let e of n.imagePasteIds)e>t&&(t=e);return t+1}function _Rt(e,t){if(!e.startsWith(`mcp__`))return;let n=sa(e);if(n)return t.find(e=>Ls(e.name)===n.serverName)}function vRt(e,t){let n=_Rt(e,t);if(n?.type===`connected`)return n.config.type??`stdio`}function yRt(e,t){let n=_Rt(e,t);if(n?.type===`connected`)return aE(n.config)}async function*wQ(e,t,n,r){let i=e.name,a=rl(r.options.tools,i);if(!a){let e=rl(wX(),i);e&&e.aliases?.includes(i)&&(a=e)}let o=t.message.id,s=t.requestId,c=vRt(i,r.options.mcpClients),l=yRt(i,r.options.mcpClients);if(!a){let n=Hr(i);U(`Unknown tool ${i}: ${e.id}`),G(`tengu_tool_use_error`,{error:`No such tool available: ${n}`,toolName:n,toolUseID:e.id,isMcp:i.startsWith(`mcp__`),queryChainId:r.queryTracking?.chainId,queryDepth:r.queryTracking?.depth,...c&&{mcpServerType:c},...l&&{mcpServerBaseUrl:l},...s&&{requestId:s},...Lr(i,c,l)}),yield{message:d4({content:[{type:`tool_result`,content:`<tool_use_error>Error: No such tool available: ${i}</tool_use_error>`,is_error:!0,tool_use_id:e.id}],toolUseResult:`Error: No such tool available: ${i}`,sourceToolAssistantUUID:t.uuid})};return}let u=e.input;try{if(r.abortController.signal.aborted){G(`tengu_tool_use_cancelled`,{toolName:Hr(a.name),toolUseID:e.id,isMcp:a.isMcp??!1,queryChainId:r.queryTracking?.chainId,queryDepth:r.queryTracking?.depth,...c&&{mcpServerType:c},...l&&{mcpServerBaseUrl:l},...s&&{requestId:s},...Lr(a.name,c,l)});let n=MJt(e.id);n.content=o4(q4),yield{message:d4({content:[n],toolUseResult:q4,sourceToolAssistantUUID:t.uuid})};return}for await(let i of bRt(a,e.id,u,r,n,t,o,s,c,l))yield i}catch(n){q(n);let r=n instanceof Error?n.message:String(n),i=`Error calling tool${a?` (${a.name})`:``}: ${r}`;yield{message:d4({content:[{type:`tool_result`,content:`<tool_use_error>${i}</tool_use_error>`,is_error:!0,tool_use_id:e.id}],toolUseResult:i,sourceToolAssistantUUID:t.uuid})}}}function bRt(e,t,n,r,i,a,o,s,c,l){let u=new xQ;return SRt(e,t,n,r,i,a,o,s,c,l,n=>{G(`tengu_tool_use_progress`,{messageID:o,toolName:Hr(e.name),isMcp:e.isMcp??!1,queryChainId:r.queryTracking?.chainId,queryDepth:r.queryTracking?.depth,...c&&{mcpServerType:c},...l&&{mcpServerBaseUrl:l},...s&&{requestId:s},...Lr(e.name,c,l)}),u.enqueue({message:jJt({toolUseID:n.toolUseID,parentToolUseID:t,data:n.data})})}).then(e=>{for(let t of e)u.enqueue(t)}).catch(e=>{u.error(e)}).finally(()=>{u.done()}),u}function xRt(e,t,n){if(!p1()||!m1(n)||!Pc(e)||_1(t).has(e.name))return null;let r=e.userFacingName?e.userFacingName(void 0):e.name;return`\n\nTool "${r}" is deferred-loading and needs to be discovered before use.\nWhen using OpenAI-compatible models (DeepSeek, Ollama, etc.), follow these steps:\n1. First discover the tool with SearchExtraTools: ${Dc}("select:${e.name}")\n2. Then call ${r} tool\n\nExample:\n${Dc}("select:${e.name}") → ${r}({ ... })\n\nImportant notes:\n• Use camelCase parameter names (e.g., taskId), not snake_case (task_id)\n• All task tools (TaskGet, TaskCreate, TaskUpdate, TaskList) need to be discovered first\n• You can discover them all at once: ${Dc}("select:TaskGet,TaskCreate,TaskUpdate,TaskList")\n\nSee docs/openai-task-tools.md for detailed guide.`}async function SRt(e,t,n,r,i,a,o,s,c,l,u){let d=e.inputSchema.safeParse(n);if(!d.success){let n=iRt(e.name,d.error),i=xRt(e,r.messages,r.options.tools);return i&&(G(`tengu_deferred_tool_schema_not_sent`,{toolName:Hr(e.name),isMcp:e.isMcp??!1}),n+=i),U(`${e.name} tool input error: ${n.slice(0,200)}`),G(`tengu_tool_use_error`,{error:`InputValidationError`,errorDetails:n.slice(0,2e3),messageID:o,toolName:Hr(e.name),isMcp:e.isMcp??!1,queryChainId:r.queryTracking?.chainId,queryDepth:r.queryTracking?.depth,...c&&{mcpServerType:c},...l&&{mcpServerBaseUrl:l},...s&&{requestId:s},...Lr(e.name,c,l)}),[{message:d4({content:[{type:`tool_result`,content:`<tool_use_error>InputValidationError: ${n}</tool_use_error>`,is_error:!0,tool_use_id:t}],toolUseResult:`InputValidationError: ${d.error.message}`,sourceToolAssistantUUID:a.uuid})}]}let f=await e.validateInput?.(d.data,r);if(f?.result===!1)return U(`${e.name} tool validation error: ${f.message?.slice(0,200)}`),G(`tengu_tool_use_error`,{messageID:o,toolName:Hr(e.name),error:f.message,errorCode:f.errorCode,isMcp:e.isMcp??!1,queryChainId:r.queryTracking?.chainId,queryDepth:r.queryTracking?.depth,...c&&{mcpServerType:c},...l&&{mcpServerBaseUrl:l},...s&&{requestId:s},...Lr(e.name,c,l)}),[{message:d4({content:[{type:`tool_result`,content:`<tool_use_error>${f.message}</tool_use_error>`,is_error:!0,tool_use_id:t}],toolUseResult:`Error: ${f.message}`,sourceToolAssistantUUID:a.uuid})}];if(e.name===`Bash`&&d.data&&`command`in d.data){let e=r.getAppState();YLt(d.data.command,e.toolPermissionContext,r.abortController.signal,r.options.isNonInteractiveSession)}let p=[],m=d.data;if(e.name===`Bash`&&m&&typeof m==`object`&&`_simulatedSedEdit`in m){let{_simulatedSedEdit:e,...t}=m;m=t}let h=m,g=e.backfillObservableInput&&typeof m==`object`&&m?{...m}:null;g&&(e.backfillObservableInput(g),m=g);let _=!1,v,y,b=[],x=Date.now();for await(let n of uRt(r,e,m,t,a.message.id,s,c,l))switch(n.type){case`message`:if(n.message.message.type===`progress`)u(n.message.message);else{p.push(n.message);let e=n.message.message.attachment;e&&`command`in e&&e.command!==void 0&&`durationMs`in e&&e.durationMs!==void 0&&b.push({command:e.command,durationMs:e.durationMs})}break;case`hookPermissionResult`:y=n.hookPermissionResult;break;case`hookUpdatedInput`:m=n.updatedInput;break;case`preventContinuation`:_=n.shouldPreventContinuation;break;case`stopReason`:v=n.stopReason;break;case`additionalContext`:p.push(n.message);break;case`stop`:return Ut()?.observe(`pre_tool_hook_duration_ms`,Date.now()-x),p.push({message:d4({content:[MJt(t)],toolUseResult:`Error: ${v}`,sourceToolAssistantUUID:a.uuid})}),p}let S=Date.now()-x;Ut()?.observe(`pre_tool_hook_duration_ms`,S),S>=EQ&&U(`Slow PreToolUse hooks: ${S}ms for ${e.name} (${b.length} hooks)`,{level:`info`}),process.env.USER_TYPE===`ant`&&b.length>0&&S>500&&p.push({message:L4(b.length,b,[],!1,void 0,!1,`suggestion`,void 0,`PreToolUse`,S)});let C={};m&&typeof m==`object`&&(e.name===`Read`&&`file_path`in m||(e.name===`Edit`||e.name===`Write`)&&`file_path`in m?C.file_path=String(m.file_path):e.name===`Bash`&&`command`in m&&(C.full_command=m.command)),Zue(e.name,C,Pl()?V(m):void 0),nde();let w=r.getAppState().toolPermissionContext.mode,T=Date.now(),E=await lRt(y,e,m,r,i,a,t),D=E.decision;m=E.input;let ee=Date.now()-T;if(ee>=EQ&&w===`auto`&&U(`Slow permission decision: ${ee}ms for ${e.name} (mode=${w}, behavior=${D.behavior})`,{level:`info`}),D.behavior!==`ask`&&!r.toolDecisions?.has(t)){let t=D.behavior===`allow`?`accept`:`reject`,n=hRt(D.decisionReason,D.behavior);jl(`tool_decision`,{decision:t,source:n,tool_name:Hr(e.name)}),pje(e.name)&&mje(e,m,t,n).then(e=>wte()?.add(1,e))}if(D.decisionReason?.type===`hook`&&D.decisionReason.hookName===`PermissionRequest`&&D.behavior!==`ask`&&p.push({message:u0({type:`hook_permission_decision`,decision:D.behavior,toolUseID:t,hookEvent:`PermissionRequest`})}),D.behavior!==`allow`){U(`${e.name} tool permission denied`);let n=r.toolDecisions?.get(t);Jue(`reject`,n?.source||`unknown`),Nl(),G(`tengu_tool_use_can_use_tool_rejected`,{messageID:o,toolName:Hr(e.name),queryChainId:r.queryTracking?.chainId,queryDepth:r.queryTracking?.depth,...c&&{mcpServerType:c},...l&&{mcpServerBaseUrl:l},...s&&{requestId:s},...Lr(e.name,c,l)});let i=D.message;_&&!i&&(i=`Execution stopped by PreToolUse hook${v?`: ${v}`:``}`);let u=[{type:`tool_result`,content:i,is_error:!0,tool_use_id:t}],d=D.behavior===`ask`?D.contentBlocks:void 0;d?.length&&u.push(...d);let f;if(d?.length){let e=fs(d,e=>e.type===`image`);if(e>0){let t=gRt(r.messages);f=Array.from({length:e},(e,n)=>t+n)}}if(p.push({message:d4({content:u,imagePasteIds:f,toolUseResult:`Error: ${i}`,sourceToolAssistantUUID:a.uuid})}),D.decisionReason?.type===`classifier`&&D.decisionReason.classifier===`auto-mode`){let n=!1;for await(let i of T5t(e.name,t,m,D.decisionReason.reason??`Permission denied`,r,w,r.abortController.signal))i.retry&&(n=!0);n&&p.push({message:d4({content:`The PermissionDenied hook indicated this command is now approved. You may retry it if you would like.`,isMeta:!0})})}return p}G(`tengu_tool_use_can_use_tool_allowed`,{messageID:o,toolName:Hr(e.name),queryChainId:r.queryTracking?.chainId,queryDepth:r.queryTracking?.depth,...c&&{mcpServerType:c},...l&&{mcpServerBaseUrl:l},...s&&{requestId:s},...Lr(e.name,c,l)}),D.updatedInput!==void 0&&(m=D.updatedInput);let O=Oie(m),k={};if(zie()){if(e.name===`Bash`&&`command`in m){let e=m;k={bash_command:e.command.trim().split(/\s+/)[0]||``,full_command:e.command,...e.timeout!==void 0&&{timeout:e.timeout},...e.description!==void 0&&{description:e.description},...`dangerouslyDisableSandbox`in e&&{dangerouslyDisableSandbox:e.dangerouslyDisableSandbox}}}let t=xre(e.name);t&&(k.mcp_server_name=t.serverName,k.mcp_tool_name=t.mcpToolName);let n=bie(e.name,m);n&&(k.skill_name=n)}let te=r.toolDecisions?.get(t);Jue(te?.decision||`unknown`,te?.source||`unknown`),$ue();let ne=Date.now();Wue(`tool_exec`),g&&m!==h&&typeof m==`object`&&m&&`file_path`in m&&`file_path`in h&&m.file_path===g.file_path?h={...m,file_path:h.file_path}:m!==g&&(h=m);try{let n=()=>e.call(h,{...r,toolUseId:t,userModified:D.userModified??!1},i,a,e=>{u({toolUseID:e.toolUseID,data:e.data})}),d=lpe()?await(async()=>{let{runToolCallWithSkillLearningHooks:t}=await fRt();return t(e.name,h,{sessionId:r.sessionId},n)})():await n(),f=Date.now()-ne;if(kne(f),d.data&&typeof d.data==`object`){let t={};e.name===`Read`&&`content`in d.data&&(`file_path`in m&&(t.file_path=String(m.file_path)),t.content=String(d.data.content)),(e.name===`Edit`||e.name===`Write`)&&`file_path`in m&&(t.file_path=String(m.file_path),e.name===`Edit`&&`diff`in d.data&&(t.diff=String(d.data.diff)),e.name===`Write`&&`content`in m&&(t.content=String(m.content))),e.name===`Bash`&&`command`in m&&(t.bash_command=m.command,`output`in d.data&&(t.output=String(d.data.output))),Object.keys(t).length>0&&rde(`tool.output`,t)}typeof d==`object`&&`structured_output`in d&&p.push({message:u0({type:`structured_output`,data:d.structured_output})}),tde({success:!0});let g=d.data&&typeof d.data==`object`?V(d.data):String(d.data??``);Nl(g),RLe(r.langfuseTrace??null,{toolName:e.name,toolUseId:t,input:m,output:g,startTime:new Date(ne),isError:!1,parentBatchSpan:r.langfuseBatchSpan});let y=e.mapToolResultToToolResultBlockParam(d.data,t),b=y.content,x=b?typeof b==`string`?b.length:V(b).length:0,C;if(m&&typeof m==`object`){if((e.name===`Read`||e.name===`Edit`||e.name===`Write`)&&`file_path`in m)C=Zn(String(m.file_path));else if(e.name===`NotebookEdit`&&`notebook_path`in m)C=Zn(String(m.notebook_path));else if(e.name===`Bash`&&`command`in m){let e=m;C=eoe(e.command,e._simulatedSedEdit?.filePath)}}if(G(`tengu_tool_use_success`,{messageID:o,toolName:Hr(e.name),isMcp:e.isMcp??!1,durationMs:f,preToolHookDurationMs:S,toolResultSizeBytes:x,...C!==void 0&&{fileExtension:C},queryChainId:r.queryTracking?.chainId,queryDepth:r.queryTracking?.depth,...c&&{mcpServerType:c},...l&&{mcpServerBaseUrl:l},...s&&{requestId:s},...Lr(e.name,c,l)}),zie()&&(e.name===`Bash`||e.name===`PowerShell`)&&`command`in m&&typeof m.command==`string`&&m.command.match(/\bgit\s+commit\b/)&&d.data&&typeof d.data==`object`&&`stdout`in d.data){let e=ngt(String(d.data.stdout));e&&(k.git_commit_id=e)}let w=iE(e)?pKe(e.name):null;jl(`tool_result`,{tool_name:Hr(e.name),success:`true`,duration_ms:String(f),...Object.keys(k).length>0&&{tool_parameters:V(k)},...O&&{tool_input:O},tool_result_size_bytes:String(x),...te&&{decision_source:te.source,decision_type:te.decision},...w&&{mcp_server_scope:w}});let T=d.data,E=[],ee=d.contextModifier,re=d.mcpMeta;async function ie(n,i){let o=[i?await _qe(i,e.name,e.maxResultSizeChars):await kE(e,n,t)];`acceptFeedback`in D&&D.acceptFeedback&&o.push({type:`text`,text:D.acceptFeedback});let s=`contentBlocks`in D?D.contentBlocks:void 0;s?.length&&o.push(...s);let c;if(s?.length){let e=fs(s,e=>e.type===`image`);if(e>0){let t=gRt(r.messages);c=Array.from({length:e},(e,n)=>t+n)}}p.push({message:d4({content:o,imagePasteIds:c,toolUseResult:r.agentId&&!r.preserveToolUseResults?void 0:n,mcpMeta:r.agentId?void 0:re,sourceToolAssistantUUID:a.uuid}),contextModifier:ee?{toolUseID:t,modifyContext:ee}:void 0})}iE(e)||await ie(T,y);let ae=[],oe=Date.now();for await(let n of sRt(r,e,t,a.message.id,m,T,s,c,l))if(`updatedMCPToolOutput`in n)iE(e)&&(T=n.updatedMCPToolOutput);else if(iE(e)){if(E.push(n),n.message.type===`attachment`){let e=n.message.attachment;`command`in e&&e.command!==void 0&&`durationMs`in e&&e.durationMs!==void 0&&ae.push({command:e.command,durationMs:e.durationMs})}}else if(p.push(n),n.message.type===`attachment`){let e=n.message.attachment;`command`in e&&e.command!==void 0&&`durationMs`in e&&e.durationMs!==void 0&&ae.push({command:e.command,durationMs:e.durationMs})}let A=Date.now()-oe;if(A>=EQ&&U(`Slow PostToolUse hooks: ${A}ms for ${e.name} (${ae.length} hooks)`,{level:`info`}),iE(e)&&await ie(T),process.env.USER_TYPE===`ant`&&ae.length>0&&A>500&&p.push({message:L4(ae.length,ae,[],!1,void 0,!1,`suggestion`,void 0,`PostToolUse`,A)}),d.newMessages&&d.newMessages.length>0)for(let e of d.newMessages)p.push({message:e});_&&p.push({message:u0({type:`hook_stopped_continuation`,message:v||`Execution stopped by hook`,hookName:`PreToolUse:${e.name}`,toolUseID:t,hookEvent:`PreToolUse`})});for(let e of E)p.push(e);return p}catch(i){let u=Date.now()-ne;if(kne(u),tde({success:!1,error:H(i)}),Nl(),RLe(r.langfuseTrace??null,{toolName:e?.name??`unknown`,toolUseId:t,input:m??n,output:H(i),startTime:new Date(ne),isError:!0,parentBatchSpan:r.langfuseBatchSpan}),i instanceof _A&&r.setAppState(e=>{let t=i.serverName,n=e.mcp.clients.findIndex(e=>e.name===t);if(n===-1)return e;let r=e.mcp.clients[n];if(!r||r.type!==`connected`)return e;let a=[...e.mcp.clients];return a[n]={name:t,type:`needs-auth`,config:r.config},{...e,mcp:{...e.mcp,clients:a}}}),!(i instanceof La)){let n=H(i);U(`${e.name} tool error (${u}ms): ${n.slice(0,200)}`),i instanceof Ca||q(i),G(`tengu_tool_use_error`,{messageID:o,toolName:Hr(e.name),error:pRt(i),isMcp:e.isMcp??!1,queryChainId:r.queryTracking?.chainId,queryDepth:r.queryTracking?.depth,...c&&{mcpServerType:c},...l&&{mcpServerBaseUrl:l},...s&&{requestId:s},...Lr(e.name,c,l)});let a=iE(e)?pKe(e.name):null;jl(`tool_result`,{tool_name:Hr(e.name),use_id:t,success:`false`,duration_ms:String(u),error:H(i),...Object.keys(k).length>0&&{tool_parameters:V(k)},...O&&{tool_input:O},...te&&{decision_source:te.source,decision_type:te.decision},...a&&{mcp_server_scope:a}})}let d=SQ(i),f=i instanceof La,p=[];for await(let n of cRt(r,e,t,o,m,d,f,s,c,l))p.push(n);return[{message:d4({content:[{type:`tool_result`,content:d,is_error:!0,tool_use_id:t}],toolUseResult:`Error: ${d}`,mcpMeta:r.agentId?void 0:i instanceof yA?i.mcpMeta:void 0,sourceToolAssistantUUID:a.uuid})},...p]}finally{Lue(`tool_exec`),te&&r.toolDecisions?.delete(t)}}var TQ,EQ,CRt=n((()=>{Ua(),qn(),tn(),bje(),Sc(),bQ(),ic(),Ic(),tl(),Wc(),qc(),cc(),jU(),Gc(),VX(),wx(),Ss(),w0(),W(),ka(),G7(),Ao(),i3(),Tl(),Va(),tRt(),Fl(),Ml(),CQ(),IE(),x1(),jA(),Pi(),Rs(),oE(),dRt(),upe(),EQ=2e3}));function wRt(e,t){e.setInProgressToolUseIDs(e=>{let n=new Set(e);return n.delete(t),n})}var DQ,TRt=n((()=>{i3(),Sc(),ic(),oy(),CRt(),wx(),O(),DQ=class{constructor(e,t,n){k(this,`tools`,[]),k(this,`toolUseContext`,void 0),k(this,`hasErrored`,!1),k(this,`erroredToolDescription`,``),k(this,`siblingAbortController`,void 0),k(this,`discarded`,!1),k(this,`progressAvailableResolve`,void 0),k(this,`turnSpan`,null),this.toolDefinitions=e,this.canUseTool=t,this.toolUseContext=n,this.siblingAbortController=ay(n.abortController)}discard(){this.discarded=!0,this.siblingAbortController.abort(`streaming_fallback`),this.tools.length=0,this.progressAvailableResolve=void 0,this.turnSpan&&(Sx(this.turnSpan),this.turnSpan=null)}addTool(e,t){this.tools.length===0&&this.turnSpan===null&&(this.turnSpan=zLe(this.toolUseContext.langfuseTrace??null,{toolNames:[e.name],batchIndex:0}),this.turnSpan&&(this.toolUseContext={...this.toolUseContext,langfuseBatchSpan:this.turnSpan}));let n=rl(this.toolDefinitions,e.name);if(!n){this.tools.push({id:e.id,block:e,assistantMessage:t,status:`completed`,isConcurrencySafe:!0,pendingProgress:[],results:[d4({content:[{type:`tool_result`,content:`<tool_use_error>Error: No such tool available: ${e.name}</tool_use_error>`,is_error:!0,tool_use_id:e.id}],toolUseResult:`Error: No such tool available: ${e.name}`,sourceToolAssistantUUID:t.uuid})]});return}let r=n.inputSchema.safeParse(e.input),i=r?.success?(()=>{try{return!!n.isConcurrencySafe(r.data)}catch{return!1}})():!1;this.tools.push({id:e.id,block:e,assistantMessage:t,status:`queued`,isConcurrencySafe:i,pendingProgress:[]}),this.processQueue()}canExecuteTool(e){let t=this.tools.filter(e=>e.status===`executing`);return t.length===0||e&&t.every(e=>e.isConcurrencySafe)}async processQueue(){for(let e of this.tools)if(e.status===`queued`){if(this.canExecuteTool(e.isConcurrencySafe))await this.executeTool(e);else if(!e.isConcurrencySafe)break}}createSyntheticErrorMessage(e,t,n){if(t===`user_interrupted`)return d4({content:[{type:`tool_result`,content:o4(J4),is_error:!0,tool_use_id:e}],toolUseResult:`User rejected tool use`,sourceToolAssistantUUID:n.uuid});if(t===`streaming_fallback`)return d4({content:[{type:`tool_result`,content:`<tool_use_error>Error: Streaming fallback - tool execution discarded</tool_use_error>`,is_error:!0,tool_use_id:e}],toolUseResult:`Streaming fallback - tool execution discarded`,sourceToolAssistantUUID:n.uuid});let r=this.erroredToolDescription,i=r?`Cancelled: parallel tool call ${r} errored`:`Cancelled: parallel tool call errored`;return d4({content:[{type:`tool_result`,content:`<tool_use_error>${i}</tool_use_error>`,is_error:!0,tool_use_id:e}],toolUseResult:i,sourceToolAssistantUUID:n.uuid})}getAbortReason(e){return this.discarded?`streaming_fallback`:this.hasErrored?`sibling_error`:this.toolUseContext.abortController.signal.aborted?this.toolUseContext.abortController.signal.reason===`interrupt`?this.getToolInterruptBehavior(e)===`cancel`?`user_interrupted`:null:`user_interrupted`:null}getToolInterruptBehavior(e){let t=rl(this.toolDefinitions,e.block.name);if(!t?.interruptBehavior)return`block`;try{return t.interruptBehavior()}catch{return`block`}}getToolDescription(e){let t=e.block.input,n=t?.command??t?.file_path??t?.pattern??``;if(typeof n==`string`&&n.length>0){let t=n.length>40?n.slice(0,40)+`…`:n;return`${e.block.name}(${t})`}return e.block.name}updateInterruptibleState(){let e=this.tools.filter(e=>e.status===`executing`);this.toolUseContext.setHasInterruptibleToolInProgress?.(e.length>0&&e.every(e=>this.getToolInterruptBehavior(e)===`cancel`))}async executeTool(e){e.status=`executing`,this.toolUseContext.setInProgressToolUseIDs(t=>new Set(t).add(e.id)),this.updateInterruptibleState();let t=[],n=[],r=(async()=>{let r=this.getAbortReason(e);if(r){t.push(this.createSyntheticErrorMessage(e.id,r,e.assistantMessage)),e.results=t,e.contextModifiers=n,e.status=`completed`,this.updateInterruptibleState();return}let i=ay(this.siblingAbortController);i.signal.addEventListener(`abort`,()=>{i.signal.reason!==`sibling_error`&&!this.toolUseContext.abortController.signal.aborted&&!this.discarded&&this.toolUseContext.abortController.abort(i.signal.reason)},{once:!0});let a=wQ(e.block,e.assistantMessage,this.canUseTool,{...this.toolUseContext,abortController:i}),o=!1;for await(let r of a){let i=this.getAbortReason(e);if(i&&!o){t.push(this.createSyntheticErrorMessage(e.id,i,e.assistantMessage));break}r.message.type===`user`&&Array.isArray(r.message.message.content)&&r.message.message.content.some(e=>e.type===`tool_result`&&e.is_error===!0)&&(o=!0,e.block.name===`Bash`&&(this.hasErrored=!0,this.erroredToolDescription=this.getToolDescription(e),this.siblingAbortController.abort(`sibling_error`))),r.message&&(r.message.type===`progress`?(e.pendingProgress.push(r.message),this.progressAvailableResolve&&(this.progressAvailableResolve(),this.progressAvailableResolve=void 0)):t.push(r.message)),r.contextModifier&&n.push(r.contextModifier.modifyContext)}if(e.results=t,e.contextModifiers=n,e.status=`completed`,this.updateInterruptibleState(),!e.isConcurrencySafe&&n.length>0)for(let e of n)this.toolUseContext=e(this.toolUseContext)})();e.promise=r,r.finally(()=>{this.processQueue()})}*getCompletedResults(){if(!this.discarded)for(let e of this.tools){for(;e.pendingProgress.length>0;)yield{message:e.pendingProgress.shift(),newContext:this.toolUseContext};if(e.status!==`yielded`){if(e.status===`completed`&&e.results){e.status=`yielded`;for(let t of e.results)yield{message:t,newContext:this.toolUseContext};wRt(this.toolUseContext,e.id)}else if(e.status===`executing`&&!e.isConcurrencySafe)break}}}hasPendingProgress(){return this.tools.some(e=>e.pendingProgress.length>0)}async*getRemainingResults(){if(!this.discarded){for(;this.hasUnfinishedTools();){await this.processQueue();for(let e of this.getCompletedResults())yield e;if(this.hasExecutingTools()&&!this.hasCompletedResults()&&!this.hasPendingProgress()){let e=this.tools.filter(e=>e.status===`executing`&&e.promise).map(e=>e.promise),t=new Promise(e=>{this.progressAvailableResolve=e});e.length>0&&await Promise.race([...e,t])}}for(let e of this.getCompletedResults())yield e;Sx(this.turnSpan),this.turnSpan=null}}hasCompletedResults(){return this.tools.some(e=>e.status===`completed`)}hasExecutingTools(){return this.tools.some(e=>e.status===`executing`)}hasUnfinishedTools(){return this.tools.some(e=>e.status!==`yielded`)}getUpdatedContext(){return this.toolUseContext}}}));function ERt(){kQ&&(ks().clearMarks(),AQ.clear(),MQ=null,jQ++,OQ(`query_user_input_received`))}function OQ(e){if(!kQ)return;let t=ks();if(t.mark(e),AQ.set(e,process.memoryUsage()),e===`query_first_chunk_received`&&MQ===null){let e=t.getEntriesByType(`mark`);e.length>0&&(MQ=e[e.length-1]?.startTime??0)}}function DRt(){kQ&&OQ(`query_profile_end`)}function ORt(e,t){return t===`query_user_input_received`?``:e>1e3?` ⚠️ VERY SLOW`:e>100?` ⚠️ SLOW`:t.includes(`git_status`)&&e>50?` ⚠️ git status`:t.includes(`tool_schema`)&&e>50?` ⚠️ tool schemas`:t.includes(`client_creation`)&&e>50?` ⚠️ client creation`:``}function kRt(){if(!kQ)return`Query profiling not enabled (set CLAUDE_CODE_PROFILE_QUERY=1)`;let e=ks().getEntriesByType(`mark`);if(e.length===0)return`No query profiling checkpoints recorded`;let t=[];t.push(`=`.repeat(80)),t.push(`QUERY PROFILING REPORT - Query #${jQ}`),t.push(`=`.repeat(80)),t.push(``);let n=e[0]?.startTime??0,r=n,i=0,a=0;for(let o of e){let e=o.startTime-n,s=o.startTime-r;t.push(yce(e,s,o.name,AQ.get(o.name),10,9,ORt(s,o.name))),o.name===`query_api_request_sent`&&(i=e),o.name===`query_first_chunk_received`&&(a=e),r=o.startTime}let o=e[e.length-1],s=o?o.startTime-n:0;if(t.push(``),t.push(`-`.repeat(80)),a>0){let e=i,n=a-i,r=(e/a*100).toFixed(1),o=(n/a*100).toFixed(1);t.push(`Total TTFT: ${js(a)}ms`),t.push(` - Pre-request overhead: ${js(e)}ms (${r}%)`),t.push(` - Network latency: ${js(n)}ms (${o}%)`)}else t.push(`Total time: ${js(s)}ms`);return t.push(ARt(e,n)),t.push(`=`.repeat(80)),t.join(`
|
|
2555
|
+
`)}`),a}var CQ=n((()=>{ka(),i3()}));function aRt(e){switch(e){case`allow`:return`allowed`;case`deny`:return`denied`;default:return`asked for confirmation for`}}var oRt=n((()=>{}));async function*sRt(e,t,n,r,i,a,o,s,c){let l=Date.now();try{let c=e.getAppState().toolPermissionContext.mode,u=a;for await(let a of C5t(t.name,n,i,u,e,c,e.abortController.signal))try{if(a.message?.type===`attachment`&&a.message.attachment.type===`hook_cancelled`){G(`tengu_post_tool_hooks_cancelled`,{toolName:Hr(t.name),queryChainId:e.queryTracking?.chainId,queryDepth:e.queryTracking?.depth}),yield{message:u0({type:`hook_cancelled`,hookName:`PostToolUse:${t.name}`,toolUseID:n,hookEvent:`PostToolUse`})};continue}if(a.message&&!(a.message.type===`attachment`&&a.message.attachment.type===`hook_blocking_error`)&&(yield{message:a.message}),a.blockingError&&(yield{message:u0({type:`hook_blocking_error`,hookName:`PostToolUse:${t.name}`,toolUseID:n,hookEvent:`PostToolUse`,blockingError:a.blockingError})}),a.preventContinuation){yield{message:u0({type:`hook_stopped_continuation`,message:a.stopReason||`Execution stopped by PostToolUse hook`,hookName:`PostToolUse:${t.name}`,toolUseID:n,hookEvent:`PostToolUse`})};return}a.additionalContexts&&a.additionalContexts.length>0&&(yield{message:u0({type:`hook_additional_context`,content:a.additionalContexts,hookName:`PostToolUse:${t.name}`,toolUseID:n,hookEvent:`PostToolUse`})}),a.updatedMCPToolOutput&&iE(t)&&(u=a.updatedMCPToolOutput,yield{updatedMCPToolOutput:u})}catch(i){let a=Date.now()-l;G(`tengu_post_tool_hook_error`,{messageID:r,toolName:Hr(t.name),isMcp:t.isMcp??!1,duration:a,queryChainId:e.queryTracking?.chainId,queryDepth:e.queryTracking?.depth,...s?{mcpServerType:s}:{},...o?{requestId:o}:{}}),yield{message:u0({type:`hook_error_during_execution`,content:SQ(i),hookName:`PostToolUse:${t.name}`,toolUseID:n,hookEvent:`PostToolUse`})}}}catch(e){q(e)}}async function*cRt(e,t,n,r,i,a,o,s,c,l){let u=Date.now();try{let l=e.getAppState().toolPermissionContext.mode;for await(let d of w5t(t.name,n,i,a,e,o,l,e.abortController.signal))try{if(d.message?.type===`attachment`&&d.message.attachment.type===`hook_cancelled`){G(`tengu_post_tool_failure_hooks_cancelled`,{toolName:Hr(t.name),queryChainId:e.queryTracking?.chainId,queryDepth:e.queryTracking?.depth}),yield{message:u0({type:`hook_cancelled`,hookName:`PostToolUseFailure:${t.name}`,toolUseID:n,hookEvent:`PostToolUseFailure`})};continue}d.message&&!(d.message.type===`attachment`&&d.message.attachment.type===`hook_blocking_error`)&&(yield{message:d.message}),d.blockingError&&(yield{message:u0({type:`hook_blocking_error`,hookName:`PostToolUseFailure:${t.name}`,toolUseID:n,hookEvent:`PostToolUseFailure`,blockingError:d.blockingError})}),d.additionalContexts&&d.additionalContexts.length>0&&(yield{message:u0({type:`hook_additional_context`,content:d.additionalContexts,hookName:`PostToolUseFailure:${t.name}`,toolUseID:n,hookEvent:`PostToolUseFailure`})})}catch(i){let a=Date.now()-u;G(`tengu_post_tool_failure_hook_error`,{messageID:r,toolName:Hr(t.name),isMcp:t.isMcp??!1,duration:a,queryChainId:e.queryTracking?.chainId,queryDepth:e.queryTracking?.depth,...c?{mcpServerType:c}:{},...s?{requestId:s}:{}}),yield{message:u0({type:`hook_error_during_execution`,content:SQ(i),hookName:`PostToolUseFailure:${t.name}`,toolUseID:n,hookEvent:`PostToolUseFailure`})}}}catch(e){q(e)}}async function lRt(e,t,n,r,i,a,o){let s=t.requiresUserInteraction?.(),c=r.requireCanUseTool;if(e?.behavior===`allow`){let l=e.updatedInput??n,u=s&&e.updatedInput!==void 0;if(s&&!u||c)return U(`Hook approved tool use for ${t.name}, but canUseTool is required`),{decision:await i(t,l,r,a,o),input:l};let d=await Qen(t,l,r);return d===null?(U(u?`Hook satisfied user interaction for ${t.name} via updatedInput`:`Hook approved tool use for ${t.name}, bypassing permission prompt`),{decision:e,input:l}):d.behavior===`deny`?(U(`Hook approved tool use for ${t.name}, but deny rule overrides: ${d.message}`),{decision:d,input:l}):(U(`Hook approved tool use for ${t.name}, but ask rule requires prompt`),{decision:await i(t,l,r,a,o),input:l})}if(e?.behavior===`deny`)return U(`Hook denied tool use for ${t.name}`),{decision:e,input:n};let l=e?.behavior===`ask`?e:void 0,u=e?.behavior===`ask`&&e.updatedInput?e.updatedInput:n;return{decision:await i(t,u,r,a,o,l),input:u}}async function*uRt(e,t,n,r,i,a,o,s){let c=Date.now();try{let s=e.getAppState();for await(let l of S5t(t.name,r,n,e,s.toolPermissionContext.mode,e.abortController.signal,void 0,e.requestPrompt,t.getToolUseSummary?.(n)))try{if(l.message&&(yield{type:`message`,message:{message:l.message}}),l.blockingError){let e=h5t(`PreToolUse:${t.name}`,l.blockingError);yield{type:`hookPermissionResult`,hookPermissionResult:{behavior:`deny`,message:e,decisionReason:{type:`hook`,hookName:`PreToolUse:${t.name}`,reason:e}}}}if(l.preventContinuation&&(yield{type:`preventContinuation`,shouldPreventContinuation:!0},l.stopReason&&(yield{type:`stopReason`,stopReason:l.stopReason})),l.permissionBehavior!==void 0){U(`Hook result has permissionBehavior=${l.permissionBehavior}`);let e={type:`hook`,hookName:`PreToolUse:${t.name}`,hookSource:l.hookSource,reason:l.hookPermissionDecisionReason};l.permissionBehavior===`allow`?yield{type:`hookPermissionResult`,hookPermissionResult:{behavior:`allow`,updatedInput:l.updatedInput,decisionReason:e}}:l.permissionBehavior===`ask`?yield{type:`hookPermissionResult`,hookPermissionResult:{behavior:`ask`,updatedInput:l.updatedInput,message:l.hookPermissionDecisionReason||`Hook PreToolUse:${t.name} ${aRt(l.permissionBehavior)} this tool`,decisionReason:e}}:yield{type:`hookPermissionResult`,hookPermissionResult:{behavior:l.permissionBehavior,message:l.hookPermissionDecisionReason||`Hook PreToolUse:${t.name} ${aRt(l.permissionBehavior)} this tool`,decisionReason:e}}}if(l.updatedInput&&l.permissionBehavior===void 0&&(yield{type:`hookUpdatedInput`,updatedInput:l.updatedInput}),l.additionalContexts&&l.additionalContexts.length>0&&(yield{type:`additionalContext`,message:{message:u0({type:`hook_additional_context`,content:l.additionalContexts,hookName:`PreToolUse:${t.name}`,toolUseID:r,hookEvent:`PreToolUse`})}}),e.abortController.signal.aborted){G(`tengu_pre_tool_hooks_cancelled`,{toolName:Hr(t.name),queryChainId:e.queryTracking?.chainId,queryDepth:e.queryTracking?.depth}),yield{type:`message`,message:{message:u0({type:`hook_cancelled`,hookName:`PreToolUse:${t.name}`,toolUseID:r,hookEvent:`PreToolUse`})}},yield{type:`stop`};return}}catch(n){q(n);let s=Date.now()-c;G(`tengu_pre_tool_hook_error`,{messageID:i,toolName:Hr(t.name),isMcp:t.isMcp??!1,duration:s,queryChainId:e.queryTracking?.chainId,queryDepth:e.queryTracking?.depth,...o?{mcpServerType:o}:{},...a?{requestId:a}:{}}),yield{type:`message`,message:{message:u0({type:`hook_error_during_execution`,content:SQ(n),hookName:`PreToolUse:${t.name}`,toolUseID:r,hookEvent:`PreToolUse`})}},yield{type:`stop`}}}catch(e){q(e),yield{type:`stop`};return}}var dRt=n((()=>{Ua(),qn(),w0(),W(),G7(),Ao(),oRt(),P9(),CQ(),oE()}));function fRt(){return TQ||(TQ=import(`./toolEventObserver-nxcfjaur.js`).catch(e=>{throw TQ=void 0,e})),TQ}function pRt(e){if(e instanceof Ta)return e.telemetryMessage.slice(0,200);if(e instanceof Error){let t=Ea(e);return typeof t==`string`?`Error:${t}`:e.name&&e.name!==`Error`&&e.name.length>3?e.name.slice(0,60):`Error`}return`UnknownError`}function mRt(e,t){switch(e){case`session`:return t===`allow`?`user_temporary`:`user_reject`;case`localSettings`:case`userSettings`:return t===`allow`?`user_permanent`:`user_reject`;default:return`config`}}function hRt(e,t){if(!e)return`config`;switch(e.type){case`permissionPromptTool`:{let n=e.toolResult?.decisionClassification;return n===`user_temporary`||n===`user_permanent`||n===`user_reject`?n:t===`allow`?`user_temporary`:`user_reject`}case`rule`:return mRt(e.rule.source,t);case`hook`:return`hook`;case`mode`:case`classifier`:case`subcommandResults`:case`asyncAgent`:case`sandboxOverride`:case`workingDir`:case`safetyCheck`:case`other`:return`config`;default:return`config`}}function gRt(e){let t=0;for(let n of e)if(n.type===`user`&&n.imagePasteIds)for(let e of n.imagePasteIds)e>t&&(t=e);return t+1}function _Rt(e,t){if(!e.startsWith(`mcp__`))return;let n=sa(e);if(n)return t.find(e=>Ls(e.name)===n.serverName)}function vRt(e,t){let n=_Rt(e,t);if(n?.type===`connected`)return n.config.type??`stdio`}function yRt(e,t){let n=_Rt(e,t);if(n?.type===`connected`)return aE(n.config)}async function*wQ(e,t,n,r){let i=e.name,a=rl(r.options.tools,i);if(!a){let e=rl(wX(),i);e&&e.aliases?.includes(i)&&(a=e)}let o=t.message.id,s=t.requestId,c=vRt(i,r.options.mcpClients),l=yRt(i,r.options.mcpClients);if(!a){let n=Hr(i);U(`Unknown tool ${i}: ${e.id}`),G(`tengu_tool_use_error`,{error:`No such tool available: ${n}`,toolName:n,toolUseID:e.id,isMcp:i.startsWith(`mcp__`),queryChainId:r.queryTracking?.chainId,queryDepth:r.queryTracking?.depth,...c&&{mcpServerType:c},...l&&{mcpServerBaseUrl:l},...s&&{requestId:s},...Lr(i,c,l)}),yield{message:d4({content:[{type:`tool_result`,content:`<tool_use_error>Error: No such tool available: ${i}</tool_use_error>`,is_error:!0,tool_use_id:e.id}],toolUseResult:`Error: No such tool available: ${i}`,sourceToolAssistantUUID:t.uuid})};return}let u=e.input;try{if(r.abortController.signal.aborted){G(`tengu_tool_use_cancelled`,{toolName:Hr(a.name),toolUseID:e.id,isMcp:a.isMcp??!1,queryChainId:r.queryTracking?.chainId,queryDepth:r.queryTracking?.depth,...c&&{mcpServerType:c},...l&&{mcpServerBaseUrl:l},...s&&{requestId:s},...Lr(a.name,c,l)});let n=MJt(e.id);n.content=o4(q4),yield{message:d4({content:[n],toolUseResult:q4,sourceToolAssistantUUID:t.uuid})};return}for await(let i of bRt(a,e.id,u,r,n,t,o,s,c,l))yield i}catch(n){q(n);let r=n instanceof Error?n.message:String(n),i=`Error calling tool${a?` (${a.name})`:``}: ${r}`;yield{message:d4({content:[{type:`tool_result`,content:`<tool_use_error>${i}</tool_use_error>`,is_error:!0,tool_use_id:e.id}],toolUseResult:i,sourceToolAssistantUUID:t.uuid})}}}function bRt(e,t,n,r,i,a,o,s,c,l){let u=new xQ;return SRt(e,t,n,r,i,a,o,s,c,l,n=>{G(`tengu_tool_use_progress`,{messageID:o,toolName:Hr(e.name),isMcp:e.isMcp??!1,queryChainId:r.queryTracking?.chainId,queryDepth:r.queryTracking?.depth,...c&&{mcpServerType:c},...l&&{mcpServerBaseUrl:l},...s&&{requestId:s},...Lr(e.name,c,l)}),u.enqueue({message:jJt({toolUseID:n.toolUseID,parentToolUseID:t,data:n.data})})}).then(e=>{for(let t of e)u.enqueue(t)}).catch(e=>{u.error(e)}).finally(()=>{u.done()}),u}function xRt(e,t,n){if(!p1()||!m1(n)||!Pc(e)||_1(t).has(e.name))return null;let r=e.userFacingName?e.userFacingName(void 0):e.name;return`\n\nTool "${r}" is deferred-loading and needs to be discovered before use.\nWhen using OpenAI-compatible models (DeepSeek, Ollama, etc.), follow these steps:\n1. First discover the tool with SearchExtraTools: ${Dc}("select:${e.name}")\n2. Then call ${r} tool\n\nExample:\n${Dc}("select:${e.name}") → ${r}({ ... })\n\nImportant notes:\n• Use camelCase parameter names (e.g., taskId), not snake_case (task_id)\n• All task tools (TaskGet, TaskCreate, TaskUpdate, TaskList) need to be discovered first\n• You can discover them all at once: ${Dc}("select:TaskGet,TaskCreate,TaskUpdate,TaskList")\n\nSee docs/openai-task-tools.md for detailed guide.`}async function SRt(e,t,n,r,i,a,o,s,c,l,u){let d=e.inputSchema.safeParse(n);if(!d.success){let n=iRt(e.name,d.error),i=xRt(e,r.messages,r.options.tools);return i&&(G(`tengu_deferred_tool_schema_not_sent`,{toolName:Hr(e.name),isMcp:e.isMcp??!1}),n+=i),U(`${e.name} tool input error: ${n.slice(0,200)}`),G(`tengu_tool_use_error`,{error:`InputValidationError`,errorDetails:n.slice(0,2e3),messageID:o,toolName:Hr(e.name),isMcp:e.isMcp??!1,queryChainId:r.queryTracking?.chainId,queryDepth:r.queryTracking?.depth,...c&&{mcpServerType:c},...l&&{mcpServerBaseUrl:l},...s&&{requestId:s},...Lr(e.name,c,l)}),[{message:d4({content:[{type:`tool_result`,content:`<tool_use_error>InputValidationError: ${n}</tool_use_error>`,is_error:!0,tool_use_id:t}],toolUseResult:`InputValidationError: ${d.error.message}`,sourceToolAssistantUUID:a.uuid})}]}let f=await e.validateInput?.(d.data,r);if(f?.result===!1)return U(`${e.name} tool validation error: ${f.message?.slice(0,200)}`),G(`tengu_tool_use_error`,{messageID:o,toolName:Hr(e.name),error:f.message,errorCode:f.errorCode,isMcp:e.isMcp??!1,queryChainId:r.queryTracking?.chainId,queryDepth:r.queryTracking?.depth,...c&&{mcpServerType:c},...l&&{mcpServerBaseUrl:l},...s&&{requestId:s},...Lr(e.name,c,l)}),[{message:d4({content:[{type:`tool_result`,content:`<tool_use_error>${f.message}</tool_use_error>`,is_error:!0,tool_use_id:t}],toolUseResult:`Error: ${f.message}`,sourceToolAssistantUUID:a.uuid})}];if(e.name===`Bash`&&d.data&&`command`in d.data){let e=r.getAppState();YLt(d.data.command,e.toolPermissionContext,r.abortController.signal,r.options.isNonInteractiveSession)}let p=[],m=d.data;if(e.name===`Bash`&&m&&typeof m==`object`&&`_simulatedSedEdit`in m){let{_simulatedSedEdit:e,...t}=m;m=t}let h=m,g=e.backfillObservableInput&&typeof m==`object`&&m?{...m}:null;g&&(e.backfillObservableInput(g),m=g);let _=!1,v,y,b=[],x=Date.now();for await(let n of uRt(r,e,m,t,a.message.id,s,c,l))switch(n.type){case`message`:if(n.message.message.type===`progress`)u(n.message.message);else{p.push(n.message);let e=n.message.message.attachment;e&&`command`in e&&e.command!==void 0&&`durationMs`in e&&e.durationMs!==void 0&&b.push({command:e.command,durationMs:e.durationMs})}break;case`hookPermissionResult`:y=n.hookPermissionResult;break;case`hookUpdatedInput`:m=n.updatedInput;break;case`preventContinuation`:_=n.shouldPreventContinuation;break;case`stopReason`:v=n.stopReason;break;case`additionalContext`:p.push(n.message);break;case`stop`:return Ut()?.observe(`pre_tool_hook_duration_ms`,Date.now()-x),p.push({message:d4({content:[MJt(t)],toolUseResult:`Error: ${v}`,sourceToolAssistantUUID:a.uuid})}),p}let S=Date.now()-x;Ut()?.observe(`pre_tool_hook_duration_ms`,S),S>=EQ&&U(`Slow PreToolUse hooks: ${S}ms for ${e.name} (${b.length} hooks)`,{level:`info`}),process.env.USER_TYPE===`ant`&&b.length>0&&S>500&&p.push({message:L4(b.length,b,[],!1,void 0,!1,`suggestion`,void 0,`PreToolUse`,S)});let C={};m&&typeof m==`object`&&(e.name===`Read`&&`file_path`in m||(e.name===`Edit`||e.name===`Write`)&&`file_path`in m?C.file_path=String(m.file_path):e.name===`Bash`&&`command`in m&&(C.full_command=m.command)),Zue(e.name,C,Pl()?V(m):void 0),nde();let w=r.getAppState().toolPermissionContext.mode,T=Date.now(),E=await lRt(y,e,m,r,i,a,t),D=E.decision;m=E.input;let ee=Date.now()-T;if(ee>=EQ&&w===`auto`&&U(`Slow permission decision: ${ee}ms for ${e.name} (mode=${w}, behavior=${D.behavior})`,{level:`info`}),D.behavior!==`ask`&&!r.toolDecisions?.has(t)){let t=D.behavior===`allow`?`accept`:`reject`,n=hRt(D.decisionReason,D.behavior);jl(`tool_decision`,{decision:t,source:n,tool_name:Hr(e.name)}),pje(e.name)&&mje(e,m,t,n).then(e=>wte()?.add(1,e))}if(D.decisionReason?.type===`hook`&&D.decisionReason.hookName===`PermissionRequest`&&D.behavior!==`ask`&&p.push({message:u0({type:`hook_permission_decision`,decision:D.behavior,toolUseID:t,hookEvent:`PermissionRequest`})}),D.behavior!==`allow`){U(`${e.name} tool permission denied`);let n=r.toolDecisions?.get(t);Jue(`reject`,n?.source||`unknown`),Nl(),G(`tengu_tool_use_can_use_tool_rejected`,{messageID:o,toolName:Hr(e.name),queryChainId:r.queryTracking?.chainId,queryDepth:r.queryTracking?.depth,...c&&{mcpServerType:c},...l&&{mcpServerBaseUrl:l},...s&&{requestId:s},...Lr(e.name,c,l)});let i=D.message;_&&!i&&(i=`Execution stopped by PreToolUse hook${v?`: ${v}`:``}`);let u=[{type:`tool_result`,content:i,is_error:!0,tool_use_id:t}],d=D.behavior===`ask`?D.contentBlocks:void 0;d?.length&&u.push(...d);let f;if(d?.length){let e=fs(d,e=>e.type===`image`);if(e>0){let t=gRt(r.messages);f=Array.from({length:e},(e,n)=>t+n)}}if(p.push({message:d4({content:u,imagePasteIds:f,toolUseResult:`Error: ${i}`,sourceToolAssistantUUID:a.uuid})}),D.decisionReason?.type===`classifier`&&D.decisionReason.classifier===`auto-mode`){let n=!1;for await(let i of T5t(e.name,t,m,D.decisionReason.reason??`Permission denied`,r,w,r.abortController.signal))i.retry&&(n=!0);n&&p.push({message:d4({content:`The PermissionDenied hook indicated this command is now approved. You may retry it if you would like.`,isMeta:!0})})}return p}G(`tengu_tool_use_can_use_tool_allowed`,{messageID:o,toolName:Hr(e.name),queryChainId:r.queryTracking?.chainId,queryDepth:r.queryTracking?.depth,...c&&{mcpServerType:c},...l&&{mcpServerBaseUrl:l},...s&&{requestId:s},...Lr(e.name,c,l)}),D.updatedInput!==void 0&&(m=D.updatedInput);let O=Oie(m),k={};if(zie()){if(e.name===`Bash`&&`command`in m){let e=m;k={bash_command:e.command.trim().split(/\s+/)[0]||``,full_command:e.command,...e.timeout!==void 0&&{timeout:e.timeout},...e.description!==void 0&&{description:e.description},...`dangerouslyDisableSandbox`in e&&{dangerouslyDisableSandbox:e.dangerouslyDisableSandbox}}}let t=xre(e.name);t&&(k.mcp_server_name=t.serverName,k.mcp_tool_name=t.mcpToolName);let n=bie(e.name,m);n&&(k.skill_name=n)}let te=r.toolDecisions?.get(t);Jue(te?.decision||`unknown`,te?.source||`unknown`),$ue();let ne=Date.now();Wue(`tool_exec`),g&&m!==h&&typeof m==`object`&&m&&`file_path`in m&&`file_path`in h&&m.file_path===g.file_path?h={...m,file_path:h.file_path}:m!==g&&(h=m);try{let n=()=>e.call(h,{...r,toolUseId:t,userModified:D.userModified??!1},i,a,e=>{u({toolUseID:e.toolUseID,data:e.data})}),d=lpe()?await(async()=>{let{runToolCallWithSkillLearningHooks:t}=await fRt();return t(e.name,h,{sessionId:r.sessionId},n)})():await n(),f=Date.now()-ne;if(kne(f),d.data&&typeof d.data==`object`){let t={};e.name===`Read`&&`content`in d.data&&(`file_path`in m&&(t.file_path=String(m.file_path)),t.content=String(d.data.content)),(e.name===`Edit`||e.name===`Write`)&&`file_path`in m&&(t.file_path=String(m.file_path),e.name===`Edit`&&`diff`in d.data&&(t.diff=String(d.data.diff)),e.name===`Write`&&`content`in m&&(t.content=String(m.content))),e.name===`Bash`&&`command`in m&&(t.bash_command=m.command,`output`in d.data&&(t.output=String(d.data.output))),Object.keys(t).length>0&&rde(`tool.output`,t)}typeof d==`object`&&`structured_output`in d&&p.push({message:u0({type:`structured_output`,data:d.structured_output})}),tde({success:!0});let g=d.data&&typeof d.data==`object`?V(d.data):String(d.data??``);Nl(g),RLe(r.langfuseTrace??null,{toolName:e.name,toolUseId:t,input:m,output:g,startTime:new Date(ne),isError:!1,parentBatchSpan:r.langfuseBatchSpan});let y=e.mapToolResultToToolResultBlockParam(d.data,t),b=y.content,x=b?typeof b==`string`?b.length:V(b).length:0,C;if(m&&typeof m==`object`){if((e.name===`Read`||e.name===`Edit`||e.name===`Write`)&&`file_path`in m)C=Zn(String(m.file_path));else if(e.name===`NotebookEdit`&&`notebook_path`in m)C=Zn(String(m.notebook_path));else if(e.name===`Bash`&&`command`in m){let e=m;C=eoe(e.command,e._simulatedSedEdit?.filePath)}}if(G(`tengu_tool_use_success`,{messageID:o,toolName:Hr(e.name),isMcp:e.isMcp??!1,durationMs:f,preToolHookDurationMs:S,toolResultSizeBytes:x,...C!==void 0&&{fileExtension:C},queryChainId:r.queryTracking?.chainId,queryDepth:r.queryTracking?.depth,...c&&{mcpServerType:c},...l&&{mcpServerBaseUrl:l},...s&&{requestId:s},...Lr(e.name,c,l)}),zie()&&(e.name===`Bash`||e.name===`PowerShell`)&&`command`in m&&typeof m.command==`string`&&m.command.match(/\bgit\s+commit\b/)&&d.data&&typeof d.data==`object`&&`stdout`in d.data){let e=ngt(String(d.data.stdout));e&&(k.git_commit_id=e)}let w=iE(e)?pKe(e.name):null;jl(`tool_result`,{tool_name:Hr(e.name),success:`true`,duration_ms:String(f),...Object.keys(k).length>0&&{tool_parameters:V(k)},...O&&{tool_input:O},tool_result_size_bytes:String(x),...te&&{decision_source:te.source,decision_type:te.decision},...w&&{mcp_server_scope:w}});let T=d.data,E=[],ee=d.contextModifier,re=d.mcpMeta;async function ie(n,i){let o=[i?await _qe(i,e.name,e.maxResultSizeChars):await kE(e,n,t)];`acceptFeedback`in D&&D.acceptFeedback&&o.push({type:`text`,text:D.acceptFeedback});let s=`contentBlocks`in D?D.contentBlocks:void 0;s?.length&&o.push(...s);let c;if(s?.length){let e=fs(s,e=>e.type===`image`);if(e>0){let t=gRt(r.messages);c=Array.from({length:e},(e,n)=>t+n)}}p.push({message:d4({content:o,imagePasteIds:c,toolUseResult:r.agentId&&!r.preserveToolUseResults?void 0:n,mcpMeta:r.agentId?void 0:re,sourceToolAssistantUUID:a.uuid}),contextModifier:ee?{toolUseID:t,modifyContext:ee}:void 0})}iE(e)||await ie(T,y);let ae=[],oe=Date.now();for await(let n of sRt(r,e,t,a.message.id,m,T,s,c,l))if(`updatedMCPToolOutput`in n)iE(e)&&(T=n.updatedMCPToolOutput);else if(iE(e)){if(E.push(n),n.message.type===`attachment`){let e=n.message.attachment;`command`in e&&e.command!==void 0&&`durationMs`in e&&e.durationMs!==void 0&&ae.push({command:e.command,durationMs:e.durationMs})}}else if(p.push(n),n.message.type===`attachment`){let e=n.message.attachment;`command`in e&&e.command!==void 0&&`durationMs`in e&&e.durationMs!==void 0&&ae.push({command:e.command,durationMs:e.durationMs})}let A=Date.now()-oe;if(A>=EQ&&U(`Slow PostToolUse hooks: ${A}ms for ${e.name} (${ae.length} hooks)`,{level:`info`}),iE(e)&&await ie(T),process.env.USER_TYPE===`ant`&&ae.length>0&&A>500&&p.push({message:L4(ae.length,ae,[],!1,void 0,!1,`suggestion`,void 0,`PostToolUse`,A)}),d.newMessages&&d.newMessages.length>0)for(let e of d.newMessages)p.push({message:e});_&&p.push({message:u0({type:`hook_stopped_continuation`,message:v||`Execution stopped by hook`,hookName:`PreToolUse:${e.name}`,toolUseID:t,hookEvent:`PreToolUse`})});for(let e of E)p.push(e);return p}catch(i){let u=Date.now()-ne;if(kne(u),tde({success:!1,error:H(i)}),Nl(),RLe(r.langfuseTrace??null,{toolName:e?.name??`unknown`,toolUseId:t,input:m??n,output:H(i),startTime:new Date(ne),isError:!0,parentBatchSpan:r.langfuseBatchSpan}),i instanceof _A&&r.setAppState(e=>{let t=i.serverName,n=e.mcp.clients.findIndex(e=>e.name===t);if(n===-1)return e;let r=e.mcp.clients[n];if(!r||r.type!==`connected`)return e;let a=[...e.mcp.clients];return a[n]={name:t,type:`needs-auth`,config:r.config},{...e,mcp:{...e.mcp,clients:a}}}),!(i instanceof La)){let n=H(i);U(`${e.name} tool error (${u}ms): ${n.slice(0,200)}`),i instanceof Ca||q(i),G(`tengu_tool_use_error`,{messageID:o,toolName:Hr(e.name),error:pRt(i),isMcp:e.isMcp??!1,queryChainId:r.queryTracking?.chainId,queryDepth:r.queryTracking?.depth,...c&&{mcpServerType:c},...l&&{mcpServerBaseUrl:l},...s&&{requestId:s},...Lr(e.name,c,l)});let a=iE(e)?pKe(e.name):null;jl(`tool_result`,{tool_name:Hr(e.name),use_id:t,success:`false`,duration_ms:String(u),error:H(i),...Object.keys(k).length>0&&{tool_parameters:V(k)},...O&&{tool_input:O},...te&&{decision_source:te.source,decision_type:te.decision},...a&&{mcp_server_scope:a}})}let d=SQ(i),f=i instanceof La,p=[];for await(let n of cRt(r,e,t,o,m,d,f,s,c,l))p.push(n);return[{message:d4({content:[{type:`tool_result`,content:d,is_error:!0,tool_use_id:t}],toolUseResult:`Error: ${d}`,mcpMeta:r.agentId?void 0:i instanceof yA?i.mcpMeta:void 0,sourceToolAssistantUUID:a.uuid})},...p]}finally{Lue(`tool_exec`),te&&r.toolDecisions?.delete(t)}}var TQ,EQ,CRt=n((()=>{Ua(),qn(),tn(),bje(),Sc(),bQ(),ic(),Ic(),tl(),Wc(),qc(),cc(),jU(),Gc(),VX(),wx(),Ss(),w0(),W(),ka(),G7(),Ao(),i3(),Tl(),Va(),tRt(),Fl(),Ml(),CQ(),IE(),x1(),jA(),Pi(),Rs(),oE(),dRt(),upe(),EQ=2e3}));function wRt(e,t){e.setInProgressToolUseIDs(e=>{let n=new Set(e);return n.delete(t),n})}var DQ,TRt=n((()=>{i3(),Sc(),ic(),oy(),CRt(),wx(),O(),DQ=class{constructor(e,t,n){k(this,`tools`,[]),k(this,`toolUseContext`,void 0),k(this,`hasErrored`,!1),k(this,`erroredToolDescription`,``),k(this,`siblingAbortController`,void 0),k(this,`discarded`,!1),k(this,`progressAvailableResolve`,void 0),k(this,`turnSpan`,null),this.toolDefinitions=e,this.canUseTool=t,this.toolUseContext=n,this.siblingAbortController=ay(n.abortController)}discard(){this.discarded=!0,this.siblingAbortController.abort(`streaming_fallback`),this.tools.length=0,this.progressAvailableResolve=void 0,this.turnSpan&&(Sx(this.turnSpan),this.turnSpan=null)}addTool(e,t){this.tools.length===0&&this.turnSpan===null&&(this.turnSpan=zLe(this.toolUseContext.langfuseTrace??null,{toolNames:[e.name],batchIndex:0}),this.turnSpan&&(this.toolUseContext={...this.toolUseContext,langfuseBatchSpan:this.turnSpan}));let n=rl(this.toolDefinitions,e.name);if(!n){this.tools.push({id:e.id,block:e,assistantMessage:t,status:`completed`,isConcurrencySafe:!0,pendingProgress:[],results:[d4({content:[{type:`tool_result`,content:`<tool_use_error>Error: No such tool available: ${e.name}</tool_use_error>`,is_error:!0,tool_use_id:e.id}],toolUseResult:`Error: No such tool available: ${e.name}`,sourceToolAssistantUUID:t.uuid})]});return}let r=n.inputSchema.safeParse(e.input),i=r?.success?(()=>{try{return!!n.isConcurrencySafe(r.data)}catch{return!1}})():!1;this.tools.push({id:e.id,block:e,assistantMessage:t,status:`queued`,isConcurrencySafe:i,pendingProgress:[]}),this.processQueue()}canExecuteTool(e){let t=this.tools.filter(e=>e.status===`executing`);return t.length===0||e&&t.every(e=>e.isConcurrencySafe)}async processQueue(){for(let e of this.tools)if(e.status===`queued`){if(this.canExecuteTool(e.isConcurrencySafe))await this.executeTool(e);else if(!e.isConcurrencySafe)break}}createSyntheticErrorMessage(e,t,n){if(t===`user_interrupted`)return d4({content:[{type:`tool_result`,content:o4(J4),is_error:!0,tool_use_id:e}],toolUseResult:`User rejected tool use`,sourceToolAssistantUUID:n.uuid});if(t===`streaming_fallback`)return d4({content:[{type:`tool_result`,content:`<tool_use_error>Error: Streaming fallback - tool execution discarded</tool_use_error>`,is_error:!0,tool_use_id:e}],toolUseResult:`Streaming fallback - tool execution discarded`,sourceToolAssistantUUID:n.uuid});let r=this.erroredToolDescription,i=r?`Cancelled: parallel tool call ${r} errored`:`Cancelled: parallel tool call errored`;return d4({content:[{type:`tool_result`,content:`<tool_use_error>${i}</tool_use_error>`,is_error:!0,tool_use_id:e}],toolUseResult:i,sourceToolAssistantUUID:n.uuid})}getAbortReason(e){return this.discarded?`streaming_fallback`:this.hasErrored?`sibling_error`:this.toolUseContext.abortController.signal.aborted?this.toolUseContext.abortController.signal.reason===`interrupt`?this.getToolInterruptBehavior(e)===`cancel`?`user_interrupted`:null:`user_interrupted`:null}getToolInterruptBehavior(e){let t=rl(this.toolDefinitions,e.block.name);if(!t?.interruptBehavior)return`block`;try{return t.interruptBehavior()}catch{return`block`}}getToolDescription(e){let t=e.block.input,n=t?.command??t?.file_path??t?.pattern??``;if(typeof n==`string`&&n.length>0){let t=n.length>40?n.slice(0,40)+`…`:n;return`${e.block.name}(${t})`}return e.block.name}updateInterruptibleState(){let e=this.tools.filter(e=>e.status===`executing`);this.toolUseContext.setHasInterruptibleToolInProgress?.(e.length>0&&e.every(e=>this.getToolInterruptBehavior(e)===`cancel`))}async executeTool(e){e.status=`executing`,this.toolUseContext.setInProgressToolUseIDs(t=>new Set(t).add(e.id)),this.updateInterruptibleState();let t=[],n=[],r=(async()=>{let r=this.getAbortReason(e);if(r){t.push(this.createSyntheticErrorMessage(e.id,r,e.assistantMessage)),e.results=t,e.contextModifiers=n,e.status=`completed`,this.updateInterruptibleState();return}let i=ay(this.siblingAbortController);i.signal.addEventListener(`abort`,()=>{i.signal.reason!==`sibling_error`&&!this.toolUseContext.abortController.signal.aborted&&!this.discarded&&this.toolUseContext.abortController.abort(i.signal.reason)},{once:!0});let a=wQ(e.block,e.assistantMessage,this.canUseTool,{...this.toolUseContext,abortController:i}),o=!1;for await(let r of a){let i=this.getAbortReason(e);if(i&&!o){t.push(this.createSyntheticErrorMessage(e.id,i,e.assistantMessage));break}r.message.type===`user`&&Array.isArray(r.message.message.content)&&r.message.message.content.some(e=>e.type===`tool_result`&&e.is_error===!0)&&(o=!0,e.block.name===`Bash`&&(this.hasErrored=!0,this.erroredToolDescription=this.getToolDescription(e),this.siblingAbortController.abort(`sibling_error`))),r.message&&(r.message.type===`progress`?(e.pendingProgress.push(r.message),this.progressAvailableResolve&&(this.progressAvailableResolve(),this.progressAvailableResolve=void 0)):t.push(r.message)),r.contextModifier&&n.push(r.contextModifier.modifyContext)}if(e.results=t,e.contextModifiers=n,e.status=`completed`,this.updateInterruptibleState(),!e.isConcurrencySafe&&n.length>0)for(let e of n)this.toolUseContext=e(this.toolUseContext)})();e.promise=r,r.finally(()=>{this.processQueue()})}*getCompletedResults(){if(!this.discarded)for(let e of this.tools){for(;e.pendingProgress.length>0;)yield{message:e.pendingProgress.shift(),newContext:this.toolUseContext};if(e.status!==`yielded`){if(e.status===`completed`&&e.results){e.status=`yielded`;for(let t of e.results)yield{message:t,newContext:this.toolUseContext};wRt(this.toolUseContext,e.id)}else if(e.status===`executing`&&!e.isConcurrencySafe)break}}}hasPendingProgress(){return this.tools.some(e=>e.pendingProgress.length>0)}async*getRemainingResults(){if(!this.discarded){for(;this.hasUnfinishedTools();){await this.processQueue();for(let e of this.getCompletedResults())yield e;if(this.hasExecutingTools()&&!this.hasCompletedResults()&&!this.hasPendingProgress()){let e=this.tools.filter(e=>e.status===`executing`&&e.promise).map(e=>e.promise),t=new Promise(e=>{this.progressAvailableResolve=e});e.length>0&&await Promise.race([...e,t])}}for(let e of this.getCompletedResults())yield e;Sx(this.turnSpan),this.turnSpan=null}}hasCompletedResults(){return this.tools.some(e=>e.status===`completed`)}hasExecutingTools(){return this.tools.some(e=>e.status===`executing`)}hasUnfinishedTools(){return this.tools.some(e=>e.status!==`yielded`)}getUpdatedContext(){return this.toolUseContext}}}));function ERt(){kQ&&(ks().clearMarks(),AQ.clear(),MQ=null,jQ++,OQ(`query_user_input_received`))}function OQ(e){if(!kQ)return;let t=ks();if(t.mark(e),AQ.set(e,process.memoryUsage()),e===`query_first_chunk_received`&&MQ===null){let e=t.getEntriesByType(`mark`);e.length>0&&(MQ=e[e.length-1]?.startTime??0)}}function DRt(){kQ&&OQ(`query_profile_end`)}function ORt(e,t){return t===`query_user_input_received`?``:e>1e3?` ⚠️ VERY SLOW`:e>100?` ⚠️ SLOW`:t.includes(`git_status`)&&e>50?` ⚠️ git status`:t.includes(`tool_schema`)&&e>50?` ⚠️ tool schemas`:t.includes(`client_creation`)&&e>50?` ⚠️ client creation`:``}function kRt(){if(!kQ)return`Query profiling not enabled (set CLAUDE_CODE_PROFILE_QUERY=1)`;let e=ks().getEntriesByType(`mark`);if(e.length===0)return`No query profiling checkpoints recorded`;let t=[];t.push(`=`.repeat(80)),t.push(`QUERY PROFILING REPORT - Query #${jQ}`),t.push(`=`.repeat(80)),t.push(``);let n=e[0]?.startTime??0,r=n,i=0,a=0;for(let o of e){let e=o.startTime-n,s=o.startTime-r;t.push(yce(e,s,o.name,AQ.get(o.name),10,9,ORt(s,o.name))),o.name===`query_api_request_sent`&&(i=e),o.name===`query_first_chunk_received`&&(a=e),r=o.startTime}let o=e[e.length-1],s=o?o.startTime-n:0;if(t.push(``),t.push(`-`.repeat(80)),a>0){let e=i,n=a-i,r=(e/a*100).toFixed(1),o=(n/a*100).toFixed(1);t.push(`Total TTFT: ${js(a)}ms`),t.push(` - Pre-request overhead: ${js(e)}ms (${r}%)`),t.push(` - Network latency: ${js(n)}ms (${o}%)`)}else t.push(`Total time: ${js(s)}ms`);return t.push(ARt(e,n)),t.push(`=`.repeat(80)),t.join(`
|
|
2556
2556
|
`)}function ARt(e,t){let n=[{name:`Context loading`,start:`query_context_loading_start`,end:`query_context_loading_end`},{name:`Microcompact`,start:`query_microcompact_start`,end:`query_microcompact_end`},{name:`Autocompact`,start:`query_autocompact_start`,end:`query_autocompact_end`},{name:`Query setup`,start:`query_setup_start`,end:`query_setup_end`},{name:`Tool schemas`,start:`query_tool_schema_build_start`,end:`query_tool_schema_build_end`},{name:`Message normalization`,start:`query_message_normalization_start`,end:`query_message_normalization_end`},{name:`Client creation`,start:`query_client_creation_start`,end:`query_client_creation_end`},{name:`Network TTFB`,start:`query_api_request_sent`,end:`query_first_chunk_received`},{name:`Tool execution`,start:`query_tool_execution_start`,end:`query_tool_execution_end`}],r=new Map(e.map(e=>[e.name,e.startTime-t])),i=[];i.push(``),i.push(`PHASE BREAKDOWN:`);for(let e of n){let t=r.get(e.start),n=r.get(e.end);if(t!==void 0&&n!==void 0){let r=n-t,a=`█`.repeat(Math.min(Math.ceil(r/10),50));i.push(` ${e.name.padEnd(22)} ${js(r).padStart(10)}ms ${a}`)}}let a=r.get(`query_api_request_sent`);return a!==void 0&&(i.push(``),i.push(` ${`Total pre-API overhead`.padEnd(22)} ${js(a).padStart(10)}ms`)),i.join(`
|
|
2557
2557
|
`)}function jRt(){kQ&&U(kRt())}var kQ,AQ,jQ,MQ,NQ=n((()=>{W(),y(),Sce(),kQ=x(process.env.CLAUDE_CODE_PROFILE_QUERY),AQ=new Map,jQ=0,MQ=null}));function MRt(){let e=Qn().autoDreamEnabled;return e===void 0?Jr(`tengu_onyx_plover`,null)?.enabled===!0:e}var NRt=n((()=>{Gi(),wr()}));async function PQ(e,t=0,n,r,i,a){i?.throwIfAborted();let o=a?.truncateOnByteLimit??!1,s=await xd(e);if(s.isDirectory())throw Error(`EISDIR: illegal operation on a directory, read '${e}'`);if(s.isFile()&&s.size<FQ){if(!o&&r!==void 0&&s.size>r)throw new IQ(s.size,r);return(t>0||n!==void 0)&&s.size>FQ/4?RRt(e,t,n,r,o,i):PRt(await hd(e,{encoding:`utf8`,signal:i}),s.mtimeMs,t,n,o?r:void 0)}return RRt(e,t,n,r,o,i)}function PRt(e,t,n,r,i){let a=r===void 0?1/0:n+r,o=e.charCodeAt(0)===65279?e.slice(1):e,s=[],c=0,l=0,u,d=0,f=!1;function p(e){if(i!==void 0){let t=+(s.length>0),n=d+t+Buffer.byteLength(e);if(n>i)return f=!0,!1;d=n}return s.push(e),!0}for(;(u=o.indexOf(`
|
|
2558
2558
|
`,l))!==-1;){if(c>=n&&c<a&&!f){let e=o.slice(l,u);e.endsWith(`\r`)&&(e=e.slice(0,-1)),p(e)}c++,l=u+1}if(c>=n&&c<a&&!f){let e=o.slice(l);e.endsWith(`\r`)&&(e=e.slice(0,-1)),p(e)}c++;let m=s.join(`
|
|
@@ -2616,7 +2616,7 @@ Return a brief summary of what you consolidated, updated, or pruned. If nothing
|
|
|
2616
2616
|
|
|
2617
2617
|
Sessions since last consolidation (${c.length}):
|
|
2618
2618
|
${c.map(e=>`- ${e}`).join(`
|
|
2619
|
-
`)}`)})],cacheSafeParams:S$(t),canUseTool:WQ(e),querySource:`auto_dream`,forkLabel:`auto_dream`,skipTranscript:!0,overrides:{abortController:f},onMessage:fzt(p,d)});XCt(p,d);let i=t.toolUseContext.getAppState().tasks?.[p];n&&qCt(i)&&i.filesTouched.length>0&&n({...CYt(i.filesTouched),verb:`Improved`}),U(`[autoDream] completed — cache: read=${r.totalUsage.cache_read_input_tokens} created=${r.totalUsage.cache_creation_input_tokens}`),G(`tengu_auto_dream_completed`,{cache_read:r.totalUsage.cache_read_input_tokens,cache_created:r.totalUsage.cache_creation_input_tokens,output:r.totalUsage.output_tokens,sessions_reviewed:c.length})}catch(e){if(f.signal.aborted){U(`[autoDream] aborted by user`);return}U(`[autoDream] fork failed: ${e.message}`),G(`tengu_auto_dream_failed`,{}),ZCt(p,d),await HCt(u)}}}function fzt(e,t){return n=>{if(n.type!==`assistant`)return;let r=``,i=0,a=[],o=n.message.content;for(let e of o)if(e.type===`text`)r+=e.text;else if(e.type===`tool_use`&&(i++,e.name===`Edit`||e.name===`Write`)){let t=e.input;typeof t.file_path==`string`&&a.push(t.file_path)}YCt(e,{text:r.trim(),toolUseCount:i},a,t)}}async function pzt(e,t){await JQ?.(e,t)}var mzt,qQ,JQ,hzt=n((()=>{E$(),i3(),W(),Ua(),wr(),Xr(),NRt(),h5(),tn(),azt(),szt(),pq(),hq(),Ic(),Wc(),mzt=600*1e3,qQ={minHours:24,minSessions:5},JQ=null})),gzt=i({classifyAndWriteState:()=>_zt});async function _zt(e,t){let n=Y(e,`state.json`),r;try{r=JSON.parse(Uu(n,`utf-8`))}catch{return}let i=vzt(t);r.status=i,r.updatedAt=new Date().toISOString(),qpe(n,JSON.stringify(r,null,2),`utf-8`)}function vzt(e){if(e.length===0)return`running`;let t=e[e.length-1],n=t.message?.content;return Array.isArray(n)&&n.some(e=>typeof e==`object`&&!!e&&`type`in e&&e.type===`tool_use`)?`running`:t.message?.stop_reason===`end_turn`?`completed`:`running`}var yzt=n((()=>{}));async function*bzt(e,t,n,r,i,a,o,s){let c=Date.now(),l={messages:[...e,...t],systemPrompt:n,userContext:r,systemContext:i,toolUseContext:a,querySource:o};if((o===`repl_main_thread`||o===`sdk`)&&GBt(S$(l)),process.env.CLAUDE_JOB_DIR&&o.startsWith(`repl_main_thread`)&&!a.agentId){let e=l.messages.filter(e=>e.type===`assistant`),t=xzt.classifyAndWriteState(process.env.CLAUDE_JOB_DIR,e).catch(e=>{U(`[job] classifier error: ${H(e)}`,{level:`error`})});await Promise.race([t,new Promise(e=>setTimeout(e,6e4).unref())])}let u=(await import(`./poorMode-BAuBNURJ.js`)).isPoorModeActive();if(d()||(!h(process.env.CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION)&&!u&&RMe(l),!a.agentId&&nae()&&!u&&import(`./extractMemories-D34FfNYT.js`).then(({executeExtractMemories:e})=>e(l,a.appendSystemMessage)).catch(()=>{}),!a.agentId&&!u&&pzt(l,a.appendSystemMessage)),!a.agentId)try{let{cleanupComputerUseAfterTurn:e}=await import(`./cleanup-Bg_gFgcj.js`);await e(a)}catch{}try{let n=[],r=a.getAppState().toolPermissionContext.mode,i=D5t(r,a.abortController.signal,void 0,s??!1,a.agentId,a,[...e,...t],a.agentType),o=``,c=0,l=!1,u=``,d=!1,f=[],p=[];for await(let e of i){if(e.message){if(yield e.message,e.message.type===`progress`&&e.message.toolUseID){o=e.message.toolUseID,c++;let t=e.message.data;t.command&&p.push({command:t.command,promptText:t.promptText})}if(e.message.type===`attachment`){let t=e.message.attachment;if(`hookEvent`in t&&(t.hookEvent===`Stop`||t.hookEvent===`SubagentStop`)&&(t.type===`hook_non_blocking_error`?(f.push(t.stderr||`Exit code ${t.exitCode}`),d=!0):t.type===`hook_error_during_execution`?(f.push(t.content),d=!0):t.type===`hook_success`&&(t.stdout&&t.stdout.trim()||t.stderr&&t.stderr.trim())&&(d=!0),`durationMs`in t&&`command`in t)){let e=p.find(e=>e.command===t.command&&e.durationMs===void 0);e&&(e.durationMs=t.durationMs)}}}if(e.blockingError){let t=d4({content:g5t(e.blockingError),isMeta:!0});n.push(t),yield t,d=!0,f.push(e.blockingError.blockingError)}if(e.preventContinuation&&(l=!0,u=e.stopReason||`Stop hook prevented continuation`,yield u0({type:`hook_stopped_continuation`,message:u,hookName:`Stop`,toolUseID:o,hookEvent:`Stop`})),a.abortController.signal.aborted)return G(`tengu_pre_stop_hooks_cancelled`,{queryChainId:a.queryTracking?.chainId,queryDepth:a.queryTracking?.depth}),yield f4({toolUse:!1}),{blockingErrors:[],preventContinuation:!0}}if(c>0&&(yield L4(c,p,f,l,u,d,`suggestion`,o),f.length>0)){let e=Xw(`app:toggleTranscript`,`Global`,`ctrl+o`);a.addNotification?.({key:`stop-hook-error`,text:`Stop hook error occurred \u00b7 ${e} to see`,priority:`immediate`})}if(l)return{blockingErrors:[],preventContinuation:!0};if(n.length>0)return{blockingErrors:n,preventContinuation:!1};if(ms()){let e=vs()??``,t=ds()??``,n=[],i=!1,o,s=``,c=(await Hl(Ul())).filter(t=>t.status===`in_progress`&&t.owner===e);for(let l of c){let c=A5t(l.id,l.subject,l.description,e,t,r,a.abortController.signal,void 0,a);for await(let e of c){if(e.message&&(e.message.type===`progress`&&e.message.toolUseID&&(s=e.message.toolUseID),yield e.message),e.blockingError){let t=d4({content:y5t(e.blockingError),isMeta:!0});n.push(t),yield t}if(e.preventContinuation&&(i=!0,o=e.stopReason||`TaskCompleted hook prevented continuation`,yield u0({type:`hook_stopped_continuation`,message:o,hookName:`TaskCompleted`,toolUseID:s,hookEvent:`TaskCompleted`})),a.abortController.signal.aborted)return{blockingErrors:[],preventContinuation:!0}}}let l=O5t(e,t,r,a.abortController.signal);for await(let e of l){if(e.message&&(e.message.type===`progress`&&e.message.toolUseID&&(s=e.message.toolUseID),yield e.message),e.blockingError){let t=d4({content:_5t(e.blockingError),isMeta:!0});n.push(t),yield t}if(e.preventContinuation&&(i=!0,o=e.stopReason||`TeammateIdle hook prevented continuation`,yield u0({type:`hook_stopped_continuation`,message:o,hookName:`TeammateIdle`,toolUseID:s,hookEvent:`TeammateIdle`})),a.abortController.signal.aborted)return{blockingErrors:[],preventContinuation:!0}}if(i)return{blockingErrors:[],preventContinuation:!0};if(n.length>0)return{blockingErrors:n,preventContinuation:!1}}return{blockingErrors:[],preventContinuation:!1}}catch(e){return G(`tengu_stop_hook_error`,{duration:Date.now()-c,queryChainId:a.queryTracking?.chainId,queryDepth:a.queryTracking?.depth}),yield I4(`Stop hook failed: ${H(e)}`,`warning`),{blockingErrors:[],preventContinuation:!1}}}var xzt,Szt=n((()=>{Qw(),Xr(),Ua(),w0(),W(),ka(),G7(),i3(),Wl(),_s(),hzt(),tb(),y(),E$(),xzt=(yzt(),e(gzt))}));function Czt(){return{sessionId:Ft(),gates:{streamingToolExecution:ci(`tengu_streaming_tool_execution2`),emitToolUseSummaries:x(process.env.CLAUDE_CODE_EMIT_TOOL_USE_SUMMARIES),isAnt:process.env.USER_TYPE===`ant`,fastModeEnabled:!x(process.env.CLAUDE_CODE_DISABLE_FAST_MODE)}}}var wzt=n((()=>{tn(),wr(),y()}));function Tzt(){return{callModel:Z9t,microcompact:qh,autocompact:mHt,uuid:od}}var Ezt=n((()=>{p9(),r1(),Yh()}));function YQ(e,t){return parseFloat(e)*jzt[t.toLowerCase()]}function Dzt(e){let t=e.match(XQ);if(t)return YQ(t[1],t[2]);let n=e.match(ZQ);if(n)return YQ(n[1],n[2]);let r=e.match(QQ);return r?YQ(r[1],r[2]):null}function Ozt(e){let t=[],n=e.match(XQ);if(n){let e=n.index+n[0].length-n[0].trimStart().length;t.push({start:e,end:n.index+n[0].length})}let r=e.match(ZQ);if(r){let e=r.index+1;t.some(t=>e>=t.start&&e<t.end)||t.push({start:e,end:r.index+r[0].length})}for(let n of e.matchAll(Azt))t.push({start:n.index,end:n.index+n[0].length});return t}function kzt(e,t,n){let r=e=>new Intl.NumberFormat(`en-US`).format(e);return`Stopped at ${e}% of token target (${r(t)} / ${r(n)}). Keep working \u2014 do not summarize.`}var XQ,ZQ,QQ,Azt,jzt,Mzt=n((()=>{XQ=/^\s*\+(\d+(?:\.\d+)?)\s*(k|m|b)\b/i,ZQ=/\s\+(\d+(?:\.\d+)?)\s*(k|m|b)\s*[.!?]?\s*$/i,QQ=/\b(?:use|spend)\s+(\d+(?:\.\d+)?)\s*(k|m|b)\s*tokens?\b/i,Azt=new RegExp(QQ.source,`gi`),jzt={k:1e3,m:1e6,b:1e9}}));function Nzt(){return{continuationCount:0,lastDeltaTokens:0,lastGlobalTurnTokens:0,startedAt:Date.now()}}function Pzt(e,t,n,r){if(t||n===null||n<=0)return{action:`stop`,completionEvent:null};let i=r,a=Math.round(i/n*100),o=r-e.lastGlobalTurnTokens,s=e.continuationCount>=3&&o<$Q&&e.lastDeltaTokens<$Q;return!s&&i<n*Fzt?(e.continuationCount++,e.lastDeltaTokens=o,e.lastGlobalTurnTokens=r,{action:`continue`,nudgeMessage:kzt(a,i,n),continuationCount:e.continuationCount,pct:a,turnTokens:i,budget:n}):s||e.continuationCount>0?{action:`stop`,completionEvent:{continuationCount:e.continuationCount,pct:a,turnTokens:i,budget:n,diminishingReturns:s,durationMs:Date.now()-e.startedAt}}:{action:`stop`,completionEvent:null}}var Fzt,$Q,Izt=n((()=>{Mzt(),Fzt=.9,$Q=500})),Lzt=i({_resetCacheWarningStateForTest:()=>Hzt,calculateCacheHitRate:()=>zzt,createCacheWarningMessage:()=>Vzt,getCacheThreshold:()=>Rzt,shouldShowCacheWarning:()=>Bzt});function Rzt(){return Qn().cacheThreshold??Wzt}function zzt(e){if(!e)return null;let{input_tokens:t,cache_creation_input_tokens:n,cache_read_input_tokens:r}=e;if(r===0&&n===0)return null;let i=t+n+r;return i===0?null:r/i*100}function Bzt(e,t,n){let r=zzt(e);if(r===null)return null;let i=e$.get(t);if(!i){if(i={lastHitRate:null,lastTimestamp:null},e$.size>=Uzt){let e=e$.keys().next().value;e!==void 0&&e$.delete(e)}e$.set(t,i)}if(i.lastHitRate===null)return i.lastHitRate=r,i.lastTimestamp=Date.now(),null;let a=r-i.lastHitRate;return i.lastHitRate=r,i.lastTimestamp=Date.now(),r<n?{hitRate:r,threshold:n,trend:a,shouldWarn:!0}:null}function Vzt(e){let{hitRate:t,threshold:n,trend:r}=e,i=`Cache hit rate ${t.toFixed(0)}%, below ${n}% threshold`;if(r!==null&&Math.abs(r)>.1){let e=r>0?`^`:`v`,t=Math.abs(r).toFixed(0);i+=` (${e}${t}%)`}return{type:`system`,subtype:`cache_warning`,level:`warning`,content:i,timestamp:new Date().toISOString(),uuid:od(),isMeta:!1}}function Hzt(){e$.clear()}var e$,Uzt,Wzt,Gzt=n((()=>{Gi(),e$=new Map,Uzt=50,Wzt=80}));function Kzt(e,t){if(n$.has(e)&&n$.delete(e),n$.set(e,t),n$.size>nBt){let e=n$.size-rBt,t=n$.keys();for(let n=0;n<e;n++){let e=t.next();if(e.done)break;n$.delete(e.value)}}}function qzt(){return process.env.SKILL_SEARCH_INTENT_ENABLED===`1`}async function Jzt(e){let t=e.trim();if(!t||!qzt()||!/[\u4e00-\u9fff]/.test(t))return t;let n=n$.get(t);if(n!==void 0)return n$.delete(t),n$.set(t,n),n;let r=await Yzt(t.slice(0,eBt)),i=r?`${t} ${r}`:t;return Kzt(t,i),U(`[skill-search] intent normalized: "${t.slice(0,40)}" -> "${r}"`),i}async function Yzt(e){let t=Xzt(),n=new AbortController,r=setTimeout(()=>n.abort(),t);try{return Qzt(Zzt((await d9({systemPrompt:Sl([$zt]),userPrompt:e,signal:n.signal,options:{querySource:`skill_search_intent`,enablePromptCaching:!0,agents:[],isNonInteractiveSession:!0,hasAppendSystemPrompt:!1,mcpTools:[]}}))?.message?.content))}catch(e){return U(`[skill-search] intent normalize failed: ${e}`),``}finally{clearTimeout(r)}}function Xzt(){let e=process.env.SKILL_SEARCH_INTENT_TIMEOUT_MS;if(!e)return t$;let t=Number(e);return!Number.isFinite(t)||t<=0?t$:t}function Zzt(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 Qzt(e){if(!e)return``;let t=e.toLowerCase().replace(/[^a-z0-9\- ]+/g,` `).replace(/\s+/g,` `).trim();return t?t.slice(0,tBt):``}var $zt,t$,eBt,tBt,nBt,rBt,n$,iBt=n((()=>{p9(),z_(),W(),$zt=`You are a query normalizer for a skill-search index.
|
|
2619
|
+
`)}`)})],cacheSafeParams:S$(t),canUseTool:WQ(e),querySource:`auto_dream`,forkLabel:`auto_dream`,skipTranscript:!0,overrides:{abortController:f},onMessage:fzt(p,d)});XCt(p,d);let i=t.toolUseContext.getAppState().tasks?.[p];n&&qCt(i)&&i.filesTouched.length>0&&n({...CYt(i.filesTouched),verb:`Improved`}),U(`[autoDream] completed — cache: read=${r.totalUsage.cache_read_input_tokens} created=${r.totalUsage.cache_creation_input_tokens}`),G(`tengu_auto_dream_completed`,{cache_read:r.totalUsage.cache_read_input_tokens,cache_created:r.totalUsage.cache_creation_input_tokens,output:r.totalUsage.output_tokens,sessions_reviewed:c.length})}catch(e){if(f.signal.aborted){U(`[autoDream] aborted by user`);return}U(`[autoDream] fork failed: ${e.message}`),G(`tengu_auto_dream_failed`,{}),ZCt(p,d),await HCt(u)}}}function fzt(e,t){return n=>{if(n.type!==`assistant`)return;let r=``,i=0,a=[],o=n.message.content;for(let e of o)if(e.type===`text`)r+=e.text;else if(e.type===`tool_use`&&(i++,e.name===`Edit`||e.name===`Write`)){let t=e.input;typeof t.file_path==`string`&&a.push(t.file_path)}YCt(e,{text:r.trim(),toolUseCount:i},a,t)}}async function pzt(e,t){await JQ?.(e,t)}var mzt,qQ,JQ,hzt=n((()=>{E$(),i3(),W(),Ua(),wr(),Xr(),NRt(),h5(),tn(),azt(),szt(),pq(),hq(),Ic(),Wc(),mzt=600*1e3,qQ={minHours:24,minSessions:5},JQ=null})),gzt=i({classifyAndWriteState:()=>_zt});async function _zt(e,t){let n=Y(e,`state.json`),r;try{r=JSON.parse(Uu(n,`utf-8`))}catch{return}let i=vzt(t);r.status=i,r.updatedAt=new Date().toISOString(),qpe(n,JSON.stringify(r,null,2),`utf-8`)}function vzt(e){if(e.length===0)return`running`;let t=e[e.length-1],n=t.message?.content;return Array.isArray(n)&&n.some(e=>typeof e==`object`&&!!e&&`type`in e&&e.type===`tool_use`)?`running`:t.message?.stop_reason===`end_turn`?`completed`:`running`}var yzt=n((()=>{}));async function*bzt(e,t,n,r,i,a,o,s){let c=Date.now(),l={messages:[...e,...t],systemPrompt:n,userContext:r,systemContext:i,toolUseContext:a,querySource:o};if((o===`repl_main_thread`||o===`sdk`)&&GBt(S$(l)),process.env.CLAUDE_JOB_DIR&&o.startsWith(`repl_main_thread`)&&!a.agentId){let e=l.messages.filter(e=>e.type===`assistant`),t=xzt.classifyAndWriteState(process.env.CLAUDE_JOB_DIR,e).catch(e=>{U(`[job] classifier error: ${H(e)}`,{level:`error`})});await Promise.race([t,new Promise(e=>setTimeout(e,6e4).unref())])}let u=(await import(`./poorMode-DZQXZ_zu.js`)).isPoorModeActive();if(d()||(!h(process.env.CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION)&&!u&&RMe(l),!a.agentId&&nae()&&!u&&import(`./extractMemories-CA2eJwHy.js`).then(({executeExtractMemories:e})=>e(l,a.appendSystemMessage)).catch(()=>{}),!a.agentId&&!u&&pzt(l,a.appendSystemMessage)),!a.agentId)try{let{cleanupComputerUseAfterTurn:e}=await import(`./cleanup-Bg_gFgcj.js`);await e(a)}catch{}try{let n=[],r=a.getAppState().toolPermissionContext.mode,i=D5t(r,a.abortController.signal,void 0,s??!1,a.agentId,a,[...e,...t],a.agentType),o=``,c=0,l=!1,u=``,d=!1,f=[],p=[];for await(let e of i){if(e.message){if(yield e.message,e.message.type===`progress`&&e.message.toolUseID){o=e.message.toolUseID,c++;let t=e.message.data;t.command&&p.push({command:t.command,promptText:t.promptText})}if(e.message.type===`attachment`){let t=e.message.attachment;if(`hookEvent`in t&&(t.hookEvent===`Stop`||t.hookEvent===`SubagentStop`)&&(t.type===`hook_non_blocking_error`?(f.push(t.stderr||`Exit code ${t.exitCode}`),d=!0):t.type===`hook_error_during_execution`?(f.push(t.content),d=!0):t.type===`hook_success`&&(t.stdout&&t.stdout.trim()||t.stderr&&t.stderr.trim())&&(d=!0),`durationMs`in t&&`command`in t)){let e=p.find(e=>e.command===t.command&&e.durationMs===void 0);e&&(e.durationMs=t.durationMs)}}}if(e.blockingError){let t=d4({content:g5t(e.blockingError),isMeta:!0});n.push(t),yield t,d=!0,f.push(e.blockingError.blockingError)}if(e.preventContinuation&&(l=!0,u=e.stopReason||`Stop hook prevented continuation`,yield u0({type:`hook_stopped_continuation`,message:u,hookName:`Stop`,toolUseID:o,hookEvent:`Stop`})),a.abortController.signal.aborted)return G(`tengu_pre_stop_hooks_cancelled`,{queryChainId:a.queryTracking?.chainId,queryDepth:a.queryTracking?.depth}),yield f4({toolUse:!1}),{blockingErrors:[],preventContinuation:!0}}if(c>0&&(yield L4(c,p,f,l,u,d,`suggestion`,o),f.length>0)){let e=Xw(`app:toggleTranscript`,`Global`,`ctrl+o`);a.addNotification?.({key:`stop-hook-error`,text:`Stop hook error occurred \u00b7 ${e} to see`,priority:`immediate`})}if(l)return{blockingErrors:[],preventContinuation:!0};if(n.length>0)return{blockingErrors:n,preventContinuation:!1};if(ms()){let e=vs()??``,t=ds()??``,n=[],i=!1,o,s=``,c=(await Hl(Ul())).filter(t=>t.status===`in_progress`&&t.owner===e);for(let l of c){let c=A5t(l.id,l.subject,l.description,e,t,r,a.abortController.signal,void 0,a);for await(let e of c){if(e.message&&(e.message.type===`progress`&&e.message.toolUseID&&(s=e.message.toolUseID),yield e.message),e.blockingError){let t=d4({content:y5t(e.blockingError),isMeta:!0});n.push(t),yield t}if(e.preventContinuation&&(i=!0,o=e.stopReason||`TaskCompleted hook prevented continuation`,yield u0({type:`hook_stopped_continuation`,message:o,hookName:`TaskCompleted`,toolUseID:s,hookEvent:`TaskCompleted`})),a.abortController.signal.aborted)return{blockingErrors:[],preventContinuation:!0}}}let l=O5t(e,t,r,a.abortController.signal);for await(let e of l){if(e.message&&(e.message.type===`progress`&&e.message.toolUseID&&(s=e.message.toolUseID),yield e.message),e.blockingError){let t=d4({content:_5t(e.blockingError),isMeta:!0});n.push(t),yield t}if(e.preventContinuation&&(i=!0,o=e.stopReason||`TeammateIdle hook prevented continuation`,yield u0({type:`hook_stopped_continuation`,message:o,hookName:`TeammateIdle`,toolUseID:s,hookEvent:`TeammateIdle`})),a.abortController.signal.aborted)return{blockingErrors:[],preventContinuation:!0}}if(i)return{blockingErrors:[],preventContinuation:!0};if(n.length>0)return{blockingErrors:n,preventContinuation:!1}}return{blockingErrors:[],preventContinuation:!1}}catch(e){return G(`tengu_stop_hook_error`,{duration:Date.now()-c,queryChainId:a.queryTracking?.chainId,queryDepth:a.queryTracking?.depth}),yield I4(`Stop hook failed: ${H(e)}`,`warning`),{blockingErrors:[],preventContinuation:!1}}}var xzt,Szt=n((()=>{Qw(),Xr(),Ua(),w0(),W(),ka(),G7(),i3(),Wl(),_s(),hzt(),tb(),y(),E$(),xzt=(yzt(),e(gzt))}));function Czt(){return{sessionId:Ft(),gates:{streamingToolExecution:ci(`tengu_streaming_tool_execution2`),emitToolUseSummaries:x(process.env.CLAUDE_CODE_EMIT_TOOL_USE_SUMMARIES),isAnt:process.env.USER_TYPE===`ant`,fastModeEnabled:!x(process.env.CLAUDE_CODE_DISABLE_FAST_MODE)}}}var wzt=n((()=>{tn(),wr(),y()}));function Tzt(){return{callModel:Z9t,microcompact:qh,autocompact:mHt,uuid:od}}var Ezt=n((()=>{p9(),r1(),Yh()}));function YQ(e,t){return parseFloat(e)*jzt[t.toLowerCase()]}function Dzt(e){let t=e.match(XQ);if(t)return YQ(t[1],t[2]);let n=e.match(ZQ);if(n)return YQ(n[1],n[2]);let r=e.match(QQ);return r?YQ(r[1],r[2]):null}function Ozt(e){let t=[],n=e.match(XQ);if(n){let e=n.index+n[0].length-n[0].trimStart().length;t.push({start:e,end:n.index+n[0].length})}let r=e.match(ZQ);if(r){let e=r.index+1;t.some(t=>e>=t.start&&e<t.end)||t.push({start:e,end:r.index+r[0].length})}for(let n of e.matchAll(Azt))t.push({start:n.index,end:n.index+n[0].length});return t}function kzt(e,t,n){let r=e=>new Intl.NumberFormat(`en-US`).format(e);return`Stopped at ${e}% of token target (${r(t)} / ${r(n)}). Keep working \u2014 do not summarize.`}var XQ,ZQ,QQ,Azt,jzt,Mzt=n((()=>{XQ=/^\s*\+(\d+(?:\.\d+)?)\s*(k|m|b)\b/i,ZQ=/\s\+(\d+(?:\.\d+)?)\s*(k|m|b)\s*[.!?]?\s*$/i,QQ=/\b(?:use|spend)\s+(\d+(?:\.\d+)?)\s*(k|m|b)\s*tokens?\b/i,Azt=new RegExp(QQ.source,`gi`),jzt={k:1e3,m:1e6,b:1e9}}));function Nzt(){return{continuationCount:0,lastDeltaTokens:0,lastGlobalTurnTokens:0,startedAt:Date.now()}}function Pzt(e,t,n,r){if(t||n===null||n<=0)return{action:`stop`,completionEvent:null};let i=r,a=Math.round(i/n*100),o=r-e.lastGlobalTurnTokens,s=e.continuationCount>=3&&o<$Q&&e.lastDeltaTokens<$Q;return!s&&i<n*Fzt?(e.continuationCount++,e.lastDeltaTokens=o,e.lastGlobalTurnTokens=r,{action:`continue`,nudgeMessage:kzt(a,i,n),continuationCount:e.continuationCount,pct:a,turnTokens:i,budget:n}):s||e.continuationCount>0?{action:`stop`,completionEvent:{continuationCount:e.continuationCount,pct:a,turnTokens:i,budget:n,diminishingReturns:s,durationMs:Date.now()-e.startedAt}}:{action:`stop`,completionEvent:null}}var Fzt,$Q,Izt=n((()=>{Mzt(),Fzt=.9,$Q=500})),Lzt=i({_resetCacheWarningStateForTest:()=>Hzt,calculateCacheHitRate:()=>zzt,createCacheWarningMessage:()=>Vzt,getCacheThreshold:()=>Rzt,shouldShowCacheWarning:()=>Bzt});function Rzt(){return Qn().cacheThreshold??Wzt}function zzt(e){if(!e)return null;let{input_tokens:t,cache_creation_input_tokens:n,cache_read_input_tokens:r}=e;if(r===0&&n===0)return null;let i=t+n+r;return i===0?null:r/i*100}function Bzt(e,t,n){let r=zzt(e);if(r===null)return null;let i=e$.get(t);if(!i){if(i={lastHitRate:null,lastTimestamp:null},e$.size>=Uzt){let e=e$.keys().next().value;e!==void 0&&e$.delete(e)}e$.set(t,i)}if(i.lastHitRate===null)return i.lastHitRate=r,i.lastTimestamp=Date.now(),null;let a=r-i.lastHitRate;return i.lastHitRate=r,i.lastTimestamp=Date.now(),r<n?{hitRate:r,threshold:n,trend:a,shouldWarn:!0}:null}function Vzt(e){let{hitRate:t,threshold:n,trend:r}=e,i=`Cache hit rate ${t.toFixed(0)}%, below ${n}% threshold`;if(r!==null&&Math.abs(r)>.1){let e=r>0?`^`:`v`,t=Math.abs(r).toFixed(0);i+=` (${e}${t}%)`}return{type:`system`,subtype:`cache_warning`,level:`warning`,content:i,timestamp:new Date().toISOString(),uuid:od(),isMeta:!1}}function Hzt(){e$.clear()}var e$,Uzt,Wzt,Gzt=n((()=>{Gi(),e$=new Map,Uzt=50,Wzt=80}));function Kzt(e,t){if(n$.has(e)&&n$.delete(e),n$.set(e,t),n$.size>nBt){let e=n$.size-rBt,t=n$.keys();for(let n=0;n<e;n++){let e=t.next();if(e.done)break;n$.delete(e.value)}}}function qzt(){return process.env.SKILL_SEARCH_INTENT_ENABLED===`1`}async function Jzt(e){let t=e.trim();if(!t||!qzt()||!/[\u4e00-\u9fff]/.test(t))return t;let n=n$.get(t);if(n!==void 0)return n$.delete(t),n$.set(t,n),n;let r=await Yzt(t.slice(0,eBt)),i=r?`${t} ${r}`:t;return Kzt(t,i),U(`[skill-search] intent normalized: "${t.slice(0,40)}" -> "${r}"`),i}async function Yzt(e){let t=Xzt(),n=new AbortController,r=setTimeout(()=>n.abort(),t);try{return Qzt(Zzt((await d9({systemPrompt:Sl([$zt]),userPrompt:e,signal:n.signal,options:{querySource:`skill_search_intent`,enablePromptCaching:!0,agents:[],isNonInteractiveSession:!0,hasAppendSystemPrompt:!1,mcpTools:[]}}))?.message?.content))}catch(e){return U(`[skill-search] intent normalize failed: ${e}`),``}finally{clearTimeout(r)}}function Xzt(){let e=process.env.SKILL_SEARCH_INTENT_TIMEOUT_MS;if(!e)return t$;let t=Number(e);return!Number.isFinite(t)||t<=0?t$:t}function Zzt(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 Qzt(e){if(!e)return``;let t=e.toLowerCase().replace(/[^a-z0-9\- ]+/g,` `).replace(/\s+/g,` `).trim();return t?t.slice(0,tBt):``}var $zt,t$,eBt,tBt,nBt,rBt,n$,iBt=n((()=>{p9(),z_(),W(),$zt=`You are a query normalizer for a skill-search index.
|
|
2620
2620
|
|
|
2621
2621
|
Given a user's natural-language request (often Chinese, possibly long), extract 3-6 English keywords that capture:
|
|
2622
2622
|
1. TASK VERB (optimize, review, debug, refactor, test, deploy, analyze, write, audit, design, research, cleanup, implement)
|
|
@@ -2634,7 +2634,7 @@ Examples:
|
|
|
2634
2634
|
- "重构这个模块的代码" -> refactor code modularize
|
|
2635
2635
|
- "帮我写个 Go 单元测试" -> write test golang unit
|
|
2636
2636
|
|
|
2637
|
-
Output ONLY keywords. Nothing else.`,t$=6e3,eBt=500,tBt=120,nBt=200,rBt=150,n$=new Map})),aBt=i({collectSkillDiscoveryPrefetch:()=>fBt,extractQueryFromMessages:()=>i$,getTurnZeroSkillDiscovery:()=>pBt,startSkillDiscoveryPrefetch:()=>dBt});function r$(e,t){if(e.add(t),e.size>mBt){let t=e.size-hBt,n=e.values();for(let r=0;r<t;r++){let t=n.next();if(t.done)break;e.delete(t.value)}}}function i$(e,t){let n=[];e&&n.push(e);for(let e=t.length-1;e>=0;e--){let r=t[e];if(r.type!==`user`)continue;let i=r.content;if(typeof i==`string`){n.push(i.slice(0,500));break}if(Array.isArray(i)){let e=!1;for(let t of i){let r=t;if(r.type&&r.type!==`text`)continue;let i=r.text;if(typeof i==`string`&&i.trim()){n.push(i.slice(0,500)),e=!0;break}}if(e)break}}return n.join(` `)}function oBt(e,t,n){return{type:`skill_discovery`,skills:e,signal:t,source:`native`,gap:n}}async function sBt(e,t){let n=0,r=[];for(let i of e){let e={name:i.name,description:i.description,score:i.score};if(n>=_Bt||i.score<gBt){r.push(e);continue}let a=await cBt(i);if(!a){r.push(e);continue}n++,await lBt(i.name,a.path,a.content,t),r.push({...e,autoLoaded:!0,content:a.content,path:a.path})}return r}async function cBt(e){if(!e.skillRoot)return null;let t=[Ru(e.skillRoot,`SKILL.md`),Ru(e.skillRoot,`skill.md`)];for(let e of t)try{return{path:e,content:Sf(await Cme(e,`utf8`)).content.slice(0,vBt)}}catch{}return null}async function lBt(e,t,n,r){try{let{addInvokedSkill:i}=await import(`./state-B2GIOsTB.js`);i(e,t,n,r.agentId??null)}catch{}}async function uBt(e,t,n,r){if(r!==`user_input`||!e.trim())return;let i=`${r}:${e.trim().toLowerCase()}`;if(!o$.has(i)){r$(o$,i);try{let[{isSkillLearningEnabled:r},{recordSkillGap:i}]=await Promise.all([import(`./featureCheck-p7OeCYzj.js`),import(`./skillGapStore-Bp5IVfOx.js`)]);if(!r())return;let a=await i({prompt:e,cwd:n.cwd??process.cwd(),sessionId:n.sessionId??`unknown-session`,recommendations:t}),o=a.status;return o!==`pending`&&o!==`draft`&&o!==`active`?void 0:{key:a.key,status:o,draftName:a.draft?.name,draftPath:a.draft?.skillPath,activeName:a.active?.name,activePath:a.active?.skillPath}}catch(e){U(`[skill-search] skill gap learning error: ${e}`);return}}}async function dBt(e,t,n){if(!TV())return[];let r=Date.now(),i=i$(e,t);if(!i.trim())return[];try{let e=await Cue(n.cwd??process.cwd()),t=wue(i,e).filter(e=>!a$.has(e.name));if(t.length===0)return[];for(let e of t)r$(a$,e.name);let a={trigger:`assistant_turn`,queryText:i.slice(0,200),startedAt:r,durationMs:Date.now()-r,indexSize:e.length,method:`tfidf`};return U(`[skill-search] prefetch found ${t.length} skills in ${a.durationMs}ms`),[oBt(await sBt(t,n),a)]}catch(e){return U(`[skill-search] prefetch error: ${e}`),[]}}async function fBt(e){try{return await e}catch{return[]}}async function pBt(e,t,n){if(!TV()||!e.trim())return null;let r=Date.now();try{let t=await Cue(n.cwd??process.cwd()),i=wue(await Jzt(e),t),a=await sBt(i,n),o=a.some(e=>e.autoLoaded)?void 0:await uBt(e,i,n,`user_input`);if(i.length===0&&!o)return null;for(let e of i)r$(a$,e.name);let s={trigger:`user_input`,queryText:e.slice(0,200),startedAt:r,durationMs:Date.now()-r,indexSize:t.length,method:`tfidf`};return U(`[skill-search] turn-zero found ${i.length} skills in ${s.durationMs}ms`),oBt(a,s,o)}catch(e){return U(`[skill-search] turn-zero error: ${e}`),null}}var mBt,hBt,a$,o$,gBt,_Bt,vBt,s$=n((()=>{EV(),ml(),iBt(),W(),Of(),mBt=1e3,hBt=750,a$=new Set,o$=new Set,gBt=Number(process.env.SKILL_SEARCH_AUTOLOAD_MIN_SCORE??`0.30`),_Bt=Number(process.env.SKILL_SEARCH_AUTOLOAD_LIMIT??`2`),vBt=Number(process.env.SKILL_SEARCH_AUTOLOAD_MAX_CHARS??`12000`)})),yBt=i({buildToolDiscoveryAttachment:()=>EBt,clearSearchExtraToolsPrefetchResults:()=>CBt,collectSearchExtraToolsPrefetch:()=>kBt,getSearchExtraToolsPrefetchSnapshot:()=>SBt,getTurnZeroSearchExtraToolsPrefetch:()=>OBt,startSearchExtraToolsPrefetch:()=>DBt,subscribeToSearchExtraToolsPrefetch:()=>xBt});function bBt(){for(let e of u$)e()}function xBt(e){return u$.add(e),()=>{u$.delete(e)}}function SBt(){return l$}function CBt(){l$=[],bBt()}function wBt(e,t){if(e.add(t),e.size>ABt){let t=e.size-jBt,n=e.values();for(let r=0;r<t;r++){let t=n.next();if(t.done)break;e.delete(t.value)}}}function TBt(e){return{name:e.name,description:e.description,searchHint:e.searchHint,score:e.score,isMcp:e.isMcp,isDeferred:e.isDeferred,inputSchema:e.inputSchema}}function EBt(e,t,n,r,i){return{type:`tool_discovery`,tools:e,trigger:t,queryText:n.slice(0,200),durationMs:r,indexSize:i}}async function DBt(e,t){let n=Date.now(),r=i$(null,t);if(!r.trim())return[];try{let t=await g_(e),i=h_(r,t,3).filter(e=>!c$.has(e.name));if(i.length===0)return[];for(let e of i)wBt(c$,e.name);let a=Date.now()-n;U(`[search-extra-tools] prefetch found ${i.length} tools in ${a}ms`);let o=i.map(TBt);return l$=o,bBt(),[EBt(o,`assistant_turn`,r,a,t.length)]}catch(e){return U(`[search-extra-tools] prefetch error: ${e}`),[]}}async function OBt(e,t){return null}async function kBt(e){try{return await e}catch{return[]}}var ABt,jBt,c$,l$,u$,d$=n((()=>{oCe(),W(),s$(),ABt=500,jBt=400,c$=new Set,l$=[],u$=new Set})),MBt=i({maybeGenerateTaskSummary:()=>PBt,shouldGenerateTaskSummary:()=>NBt});function NBt(){return INt()?Date.now()-f$>=FBt:!1}function PBt(e){f$=Date.now();try{let t=e.forkContextMessages;if(!t||t.length===0)return;let n;for(let e=t.length-1;e>=0;e--)if(t[e].type===`assistant`){n=t[e];break}let r=`busy`,i;if(n?.message?.content){let e=n.message.content;if(Array.isArray(e)){let t=e[e.length-1];t?.type===`tool_use`&&(r=`busy`,i=`tool: ${t.name||`unknown`}`)}}BNt({status:r,waitingFor:i}).catch(e=>{U(`[taskSummary] updateSessionActivity failed: ${e}`)})}catch(e){U(`[taskSummary] error: ${e}`)}}var FBt,f$,IBt=n((()=>{rX(),W(),FBt=3e4,f$=0}));function*p$(e,t){for(let n of e){let e=(Array.isArray(n.message?.content)?n.message.content:[]).filter(e=>e.type===`tool_use`);for(let r of e)yield d4({content:[{type:`tool_result`,content:t,is_error:!0,tool_use_id:r.id}],toolUseResult:t,sourceToolAssistantUUID:n.uuid})}}function LBt(e){return e?.type===`assistant`&&e.apiError===`max_output_tokens`}function RBt(e){if(e.thrownError!==void 0)return{type:`failed`,error:e.thrownError};let t=e.terminal,n=t?.reason;switch(n){case`completed`:return{type:`completed`};case void 0:case`aborted_streaming`:case`aborted_tools`:return{type:`cancelled`};case`model_error`:return{type:`failed`,error:t.error};default:return{type:`failed`,message:`query ended without successful completion: ${n}`}}}async function*m$(e){let t=[],n=[],r=!e.toolUseContext.langfuseTrace;U(`[query] ownsTrace=${r} incoming langfuseTrace=${e.toolUseContext.langfuseTrace?`present`:`null/undefined`} isLangfuseEnabled=${gx()}`);let i=e.toolUseContext.langfuseTrace??(gx()?bx({sessionId:Ft(),model:e.toolUseContext.options.mainLoopModel,provider:ar(),input:e.messages,querySource:e.querySource}):null),a=i?{...e,toolUseContext:{...e.toolUseContext,langfuseTrace:i}}:e,o,s=!1,c;try{o=yield*zBt(a,t,n)}catch(e){throw s=!0,c=e,e}finally{await lDe({commands:n,outcome:RBt({terminal:o,...s?{thrownError:c}:{}}),priority:`later`}).then(e=>{for(let t of e)Kwe(t)}).catch(q),r&&(Cx(i,void 0,o?.reason===`aborted_streaming`||o?.reason===`aborted_tools`?`interrupted`:void 0),await FLe()),a!==e&&(a.toolUseContext.langfuseTrace=null,a.toolUseContext.langfuseRootTrace=null,a.toolUseContext.langfuseBatchSpan=null);let t=globalThis.performance;if(t&&typeof t.clearMarks==`function`)try{t.clearMarks(),t.clearMeasures?.(),t.clearResourceTimings?.()}catch{}}for(let e of t)Uv(e,`completed`);return o}async function*zBt(e,t,n){try{var r=ise();let{systemPrompt:i,userContext:a,systemContext:o,canUseTool:s,fallbackModel:c,querySource:l,maxTurns:u,skipCacheWrite:d}=e,f=e.deps??Tzt(),p={messages:e.messages,toolUseContext:e.toolUseContext,maxOutputTokensOverride:e.maxOutputTokensOverride,autoCompactTracking:void 0,stopHookActive:void 0,maxOutputTokensRecoveryCount:0,hasAttemptedReactiveCompact:!1,turnCount:1,pendingToolUseSummary:void 0,transition:void 0},m=Nzt(),h,g=Czt(),_=r.u(BWt(p.messages,p.toolUseContext));for(;;){let{toolUseContext:r}=p,{messages:v,autoCompactTracking:y,maxOutputTokensRecoveryCount:b,hasAttemptedReactiveCompact:x,maxOutputTokensOverride:S,pendingToolUseSummary:C,stopHookActive:w,turnCount:T}=p,E=g$?.startSkillDiscoveryPrefetch(null,v,r),D=_$?.startSearchExtraToolsPrefetch(r.options.tools??[],v);yield{type:`stream_request_start`},OQ(`query_fn_entry`),r.agentId||Gv(`query_started`);let ee=r.queryTracking?{chainId:r.queryTracking.chainId,depth:r.queryTracking.depth+1}:{chainId:f.uuid(),depth:0},O=ee.chainId;r={...r,queryTracking:ee};let k=B4(v);for(let e of k)e.type===`user`&&`toolUseResult`in e&&e.toolUseResult!==void 0&&delete e.toolUseResult;let te=y,ne=l.startsWith(`agent:`)||l.startsWith(`repl_main_thread`);k=await Pqe(k,r.contentReplacementState,ne?e=>void A8(e,r.agentId).catch(q):void 0,new Set(r.options.tools.filter(e=>!Number.isFinite(e.maxResultSizeChars)).map(e=>e.name)));let re=0;OQ(`query_microcompact_start`);let ie=await f.microcompact(k,r,l);if(k=ie.messages,ie.clearedToolUseIds?.length){let e=r?.contentReplacementState?.replacements;if(e)for(let t of ie.clearedToolUseIds)e.delete(t)}OQ(`query_microcompact_end`);let ae=Sl(m9t(i,o));OQ(`query_autocompact_start`);let{compactionResult:oe,consecutiveFailures:A}=await f.autocompact(k,r,{systemPrompt:i,userContext:a,systemContext:o,toolUseContext:r,forkContextMessages:k},l,te,re);if(OQ(`query_autocompact_end`),oe){let{preCompactTokenCount:t,postCompactTokenCount:n,truePostCompactTokenCount:r,compactionUsage:i}=oe;if(G(`tengu_auto_compact_succeeded`,{originalMessageCount:v.length,compactedMessageCount:oe.summaryMessages.length+oe.attachments.length+oe.hookResults.length,preCompactTokenCount:t,postCompactTokenCount:n,truePostCompactTokenCount:r,compactionInputTokens:i?.input_tokens,compactionOutputTokens:i?.output_tokens,compactionCacheReadTokens:i?.cache_read_input_tokens??0,compactionCacheCreationTokens:i?.cache_creation_input_tokens??0,compactionTotalTokens:i?i.input_tokens+(i.cache_creation_input_tokens??0)+(i.cache_read_input_tokens??0)+i.output_tokens:0,queryChainId:O,queryDepth:ee.depth}),e.taskBudget){let t=PSe(k);h=Math.max(0,(h??e.taskBudget.total)-t)}te={compacted:!0,turnId:f.uuid(),turnCounter:0,consecutiveFailures:0};let a=j$(oe);for(let e of a)yield e;k=a}else A!==void 0&&(te={...te??{compacted:!1,turnId:``,turnCounter:0},consecutiveFailures:A});r={...r,messages:k};let se=[],j=[],ce=[],M=!1;OQ(`query_setup_start`);let N=g.gates.streamingToolExecution?new DQ(r.options.tools,s,r):null,le=r.getAppState(),ue=le.toolPermissionContext.mode,de=Oi({permissionMode:ue,mainLoopModel:r.options.mainLoopModel,exceeds200kTokens:ue===`plan`&&ISe(k)});OQ(`query_setup_end`);let fe=g.gates.isAnt?TDe(r.agentId??g.sessionId):void 0,pe=h$?.isReactiveCompactEnabled()??!1;if(!oe&&l!==`compact`&&l!==`session_memory`&&!(h$?.isReactiveCompactEnabled()&&Q$())){let{isAtBlockingLimit:e}=Z$(o_(k)-re,r.options.mainLoopModel);if(e)return yield u4({content:tv,error:`invalid_request`}),{reason:`blocking_limit`}}if(!oe&&Q$()){let e=r.options.mainLoopModel,t=o_(k)-re,n=fHt(e);if(t>Y$(e)-n){let e=await f.autocompact(k,r,{systemPrompt:i,userContext:a,systemContext:o,toolUseContext:r,forkContextMessages:k},l,te,re);e.compactionResult&&(k=j$(e.compactionResult),re=0,te=te&&{...te,compacted:!0,consecutiveFailures:e.consecutiveFailures??0})}}let me=!0;OQ(`query_api_loop_start`);try{for(;me;){me=!1;try{let t=!1;OQ(`query_api_streaming_start`);for await(let n of f.callModel({messages:h9t(k,a),systemPrompt:ae,thinkingConfig:r.options.thinkingConfig,tools:r.options.tools,signal:r.abortController.signal,options:{async getToolPermissionContext(){return r.getAppState().toolPermissionContext},model:de,...g.gates.fastModeEnabled&&{fastMode:le.fastMode},toolChoice:void 0,isNonInteractiveSession:r.options.isNonInteractiveSession,fallbackModel:c,onStreamingFallback:()=>{t=!0},querySource:l,agents:r.options.agentDefinitions.activeAgents,allowedAgentTypes:r.options.agentDefinitions.allowedAgentTypes,hasAppendSystemPrompt:!!r.options.appendSystemPrompt,maxOutputTokensOverride:S,fetchOverride:fe,mcpTools:le.mcp.tools,hasPendingMcpServers:le.mcp.clients.some(e=>e.type===`pending`),queryTracking:ee,effortValue:le.effortValue,advisorModel:le.advisorModel,skipCacheWrite:d,agentId:r.agentId,addNotification:r.addNotification,...e.taskBudget&&{taskBudget:{total:e.taskBudget.total,...h!==void 0&&{remaining:h}}},langfuseTrace:r.langfuseTrace}})){if(t){for(let e of se)yield{type:`tombstone`,message:e};G(`tengu_orphaned_messages_tombstoned`,{orphanedMessageCount:se.length,queryChainId:O,queryDepth:ee.depth}),se.length=0,j.length=0,ce.length=0,M=!1,N&&(N.discard(),N=new DQ(r.options.tools,s,r))}let e=n;if(n.type===`assistant`){let t=n,i=Array.isArray(t.message?.content)?t.message.content:[],a;for(let e=0;e<i.length;e++){let t=i[e];if(t.type===`tool_use`&&typeof t.input==`object`&&t.input!==null){let n=rl(r.options.tools,t.name);if(n?.backfillObservableInput){let r=t.input,o={...r};n.backfillObservableInput(o),Object.keys(o).some(e=>!(e in r))&&(a??(a=[...i]),a[e]={...t,input:o})}}}a&&(e={...n,message:{...t.message??{},content:a}})}let i=!1;if(h$?.isWithheldPromptTooLong(n)&&(i=!0),pe&&h$?.isWithheldMediaSizeError(n)&&(i=!0),LBt(n)&&(i=!0),i||(yield e),n.type===`assistant`){let e=n;se.push(e);let t=(Array.isArray(e.message?.content)?e.message.content:[]).filter(e=>e.type===`tool_use`);if(t.length>0&&(ce.push(...t),M=!0),N&&!r.abortController.signal.aborted)for(let n of t)N.addTool(n,e)}if(N&&!r.abortController.signal.aborted)for(let e of N.getCompletedResults())e.message&&(yield e.message,j.push(...b4([e.message],r.options.tools).filter(e=>e.type===`user`)))}OQ(`query_api_streaming_end`)}catch(e){if(e instanceof g3&&c){de=c,me=!0,yield*p$(se,`Model fallback triggered`),se.length=0,j.length=0,ce.length=0,M=!1,N&&(N.discard(),N=new DQ(r.options.tools,s,r)),r.options.mainLoopModel=c,process.env.USER_TYPE===`ant`&&(k=IYt(k)),G(`tengu_model_fallback_triggered`,{original_model:e.originalModel,fallback_model:c,entrypoint:`cli`,queryChainId:O,queryDepth:ee.depth}),yield I4(`Switched to ${Vn(e.fallbackModel)} due to high demand for ${Vn(e.originalModel)}`,`warning`);continue}throw e}}}catch(e){q(e);let t=e instanceof Error?e.message:String(e);return G(`tengu_query_error`,{assistantMessages:se.length,toolUses:se.flatMap(e=>(Array.isArray(e.message?.content)?e.message.content:[]).filter(e=>e.type===`tool_use`)).length,queryChainId:O,queryDepth:ee.depth}),e instanceof D_||e instanceof L_?(yield u4({content:e.message}),{reason:`image_error`}):(yield*p$(se,t),yield u4({content:t}),Ba(`Query error`,e),{reason:`model_error`,error:e})}if(se.length>0&&!r.options.isNonInteractiveSession){let e=se.at(-1)?.message?.usage;if(e){let t=Bzt(e,l,Rzt());t&&(yield Vzt(t))}}if(se.length>0&&_De(k.concat(se),i,a,o,r,l),r.abortController.signal.aborted){if(N)for await(let e of N.getRemainingResults())e.message&&(yield e.message);else yield*p$(se,`Interrupted by user`);if(!r.agentId)try{let{cleanupComputerUseAfterTurn:e}=await import(`./cleanup-Bg_gFgcj.js`);await e(r)}catch{}return r.abortController.signal.reason!==`interrupt`&&(yield f4({toolUse:!1})),{reason:`aborted_streaming`}}if(C){let e=await C;e&&(yield e)}if(!M){let e=se.at(-1);if(e?.type===`assistant`&&e.isApiErrorMessage&&gwe(e),pe&&h$?.isWithheldMediaSizeError(e),LBt(e)){if(Jr(`tengu_otk_slot_v1`,!1)&&S===void 0&&!process.env.CLAUDE_CODE_MAX_OUTPUT_TOKENS){G(`tengu_max_tokens_escalate`,{escalatedTo:Oae}),p={messages:k,toolUseContext:r,autoCompactTracking:te,maxOutputTokensRecoveryCount:b,hasAttemptedReactiveCompact:x,maxOutputTokensOverride:Oae,pendingToolUseSummary:void 0,stopHookActive:void 0,turnCount:T,transition:{reason:`max_output_tokens_escalate`}};continue}if(b<BBt){let e=d4({content:`Output token limit hit. Resume directly — no apology, no recap of what you were doing. Pick up mid-thought if that is where the cut happened. Break remaining work into smaller pieces.`,isMeta:!0});p={messages:[...k,...se,e],toolUseContext:r,autoCompactTracking:te,maxOutputTokensRecoveryCount:b+1,hasAttemptedReactiveCompact:x,maxOutputTokensOverride:void 0,pendingToolUseSummary:void 0,stopHookActive:void 0,turnCount:T,transition:{reason:`max_output_tokens_recovery`,attempt:b+1}};continue}yield e}if(e?.isApiErrorMessage)return E5t(e,r),{reason:`model_error`,error:e.error??e.apiError??`api_error`};let t=yield*bzt(k,se,i,a,o,r,l,w);if(t.preventContinuation)return{reason:`stop_hook_prevented`};if(t.blockingErrors.length>0){p={messages:[...k,...se,...t.blockingErrors],toolUseContext:r,autoCompactTracking:te,maxOutputTokensRecoveryCount:0,hasAttemptedReactiveCompact:x,maxOutputTokensOverride:void 0,pendingToolUseSummary:void 0,stopHookActive:!0,turnCount:T,transition:{reason:`stop_hook_blocking`}};continue}{let e=Pzt(m,r.agentId,Mt(),Zt());if(e.action===`continue`){Mne(),U(`Token budget continuation #${e.continuationCount}: ${e.pct}% (${e.turnTokens.toLocaleString()} / ${e.budget.toLocaleString()})`),p={messages:[...k,...se,d4({content:e.nudgeMessage,isMeta:!0})],toolUseContext:r,autoCompactTracking:te,maxOutputTokensRecoveryCount:0,hasAttemptedReactiveCompact:!1,maxOutputTokensOverride:void 0,pendingToolUseSummary:void 0,stopHookActive:void 0,turnCount:T,transition:{reason:`token_budget_continuation`}};continue}e.completionEvent&&(e.completionEvent.diminishingReturns&&U(`Token budget early stop: diminishing returns at ${e.completionEvent.pct}%`),G(`tengu_token_budget_completed`,{...e.completionEvent,queryChainId:O,queryDepth:ee.depth}))}return{reason:`completed`}}let he=!1,ge=r;OQ(`query_tool_execution_start`),G(N?`tengu_streaming_tool_execution_used`:`tengu_streaming_tool_execution_not_used`,{tool_count:ce.length,queryChainId:O,queryDepth:ee.depth});let _e=N?N.getRemainingResults():GLe(ce,se,s,r);for await(let e of _e)e.message&&(yield e.message,e.message.type===`attachment`&&e.message.attachment.type===`hook_stopped_continuation`&&(he=!0),j.push(...b4([e.message],r.options.tools).filter(e=>e.type===`user`))),e.newContext&&(ge={...e.newContext,queryTracking:ee});OQ(`query_tool_execution_end`);let ve;if(g.gates.emitToolUseSummaries&&ce.length>0&&!r.abortController.signal.aborted&&!r.agentId){let e=se.at(-1),t;if(e){let n=(Array.isArray(e.message?.content)?e.message.content:[]).filter(e=>e.type===`text`);if(n.length>0){let e=n.at(-1);e&&`text`in e&&(t=e.text)}}let n=ce.map(e=>e.id);ve=Pwe({tools:ce.map(e=>{let t=j.find(t=>t.type===`user`&&Array.isArray(t.message.content)&&t.message.content.some(t=>t.type===`tool_result`&&t.tool_use_id===e.id)),n=t?.type===`user`&&Array.isArray(t.message.content)?t.message.content.find(t=>t.type===`tool_result`&&t.tool_use_id===e.id):void 0;return{name:e.name,input:e.input,output:n&&`content`in n?n.content:null}}),signal:r.abortController.signal,isNonInteractiveSession:r.options.isNonInteractiveSession,lastAssistantText:t}).then(e=>e?LYt(e,n):null).catch(()=>null)}if(r.abortController.signal.aborted){if(!r.agentId)try{let{cleanupComputerUseAfterTurn:e}=await import(`./cleanup-Bg_gFgcj.js`);await e(r)}catch{}r.abortController.signal.reason!==`interrupt`&&(yield f4({toolUse:!0}));let e=T+1;return u&&e>u&&(yield u0({type:`max_turns_reached`,maxTurns:u,turnCount:e})),{reason:`aborted_tools`}}if(he)return{reason:`hook_stopped`};te?.compacted&&(te.turnCounter++,G(`tengu_post_autocompact_turn`,{turnId:te.turnId,turnCounter:te.turnCounter,queryChainId:O,queryDepth:ee.depth})),G(`tengu_query_before_attachments`,{messagesForQueryCount:k.length,assistantMessagesCount:se.length,toolResultsCount:j.length,queryChainId:O,queryDepth:ee.depth});let ye=ce.some(e=>e.name===jc),be=l.startsWith(`repl_main_thread`)||l===`sdk`,xe=r.agentId,Se=await aDe(sTe(ye?`later`:`next`).filter(e=>cTe(e)?!1:be?e.agentId===void 0:e.mode===`task-notification`&&e.agentId===xe));Se.staleCommands.length>0&&hv(Se.staleCommands);let Ce=Se.claimedCommands.filter(e=>e.mode===`prompt`||e.mode===`task-notification`);if(Ce.length>0){n.push(...Ce);for(let e of Ce)e.uuid&&(t.push(e.uuid),Uv(e.uuid,`started`));hv(Ce)}for await(let e of rGt(null,ge,null,Se.attachmentCommands,k.concat(se,j),l))yield e,j.push(e);if(_&&_.settledAt!==null&&_.consumedOnIteration===-1){let e=WWt(await _.promise,r.readFileState);for(let t of e){let e=u0(t);yield e,j.push(e)}_.consumedOnIteration=T-1}if(g$&&E){let e=await g$.collectSkillDiscoveryPrefetch(E);for(let t of e){let e=u0(t);yield e,j.push(e)}}if(_$&&D){let e=await _$.collectSearchExtraToolsPrefetch(D);for(let t of e){let e=u0(t);yield e,j.push(e)}}let we=new Set(Ce),Te=Se.attachmentCommands.filter(e=>(e.mode===`prompt`||e.mode===`task-notification`)&&!we.has(e));if(Te.length>0){for(let e of Te)e.uuid&&(t.push(e.uuid),Uv(e.uuid,`started`));hv(Te)}let Ee=fs(j,e=>e.type===`attachment`&&e.attachment.type===`edited_text_file`);if(G(`tengu_query_after_attachments`,{totalToolResultsCount:j.length,fileChangeAttachmentCount:Ee,queryChainId:O,queryDepth:ee.depth}),ge.options.refreshTools){let e=ge.options.refreshTools();e!==ge.options.tools&&(ge={...ge,options:{...ge.options,tools:e}})}let De={...ge,queryTracking:ee},Oe=T+1;if(!r.agentId&&v$.shouldGenerateTaskSummary()&&v$.maybeGenerateTaskSummary({systemPrompt:i,userContext:a,systemContext:o,toolUseContext:r,forkContextMessages:k.concat(se,j)}),u&&Oe>u)return yield u0({type:`max_turns_reached`,maxTurns:u,turnCount:Oe}),{reason:`max_turns`,turnCount:Oe};OQ(`query_recursive_call`),p={messages:k.concat(se,j),toolUseContext:De,autoCompactTracking:te,turnCount:Oe,maxOutputTokensRecoveryCount:0,hasAttemptedReactiveCompact:!1,pendingToolUseSummary:ve,maxOutputTokensOverride:void 0,stopHookActive:w,transition:{reason:`next_turn`}}}}catch(e){r.e=e}finally{r.d()}}var h$,g$,_$,v$,BBt,y$=n((()=>{_3(),r1(),V$(),$oe(),Ua(),O_(),R_(),Sc(),z_(),Ao(),dv(),W(),i3(),Lwe(),i9(),w0(),xv(),uDe(),fDe(),Zv(),hr(),s_(),fi(),wr(),Bc(),vDe(),G7(),ry(),TRt(),NQ(),XLe(),IE(),h5(),Szt(),wzt(),Ezt(),tn(),Izt(),Ss(),wx(),Pn(),Gzt(),h$=null,g$=(s$(),e(aBt)),_$=(d$(),e(yBt)),yzt(),v$=(IBt(),e(MBt)),BBt=3}));function VBt(){return{consecutiveDenials:0,totalDenials:0}}function HBt(e){return{...e,consecutiveDenials:e.consecutiveDenials+1,totalDenials:e.totalDenials+1}}function b$(e){return e.consecutiveDenials===0?e:{...e,consecutiveDenials:0}}function UBt(e){return e.consecutiveDenials>=x$.maxConsecutive||e.totalDenials>=x$.maxTotal}var x$,WBt=n((()=>{x$={maxConsecutive:3,maxTotal:20}}));function GBt(e){T$=e}function KBt(){return T$}function S$(e){return{systemPrompt:e.systemPrompt,userContext:e.userContext,systemContext:e.systemContext,toolUseContext:e.toolUseContext,forkContextMessages:e.messages}}function qBt(e,t){return t.length===0?e:()=>{let n=e();return{...n,toolPermissionContext:{...n.toolPermissionContext,alwaysAllowRules:{...n.toolPermissionContext.alwaysAllowRules,command:[...new Set([...n.toolPermissionContext.alwaysAllowRules.command||[],...t])]}}}}}async function JBt(e,t,n){let r=(await e.getPromptForCommand(t,n)).map(e=>e.type===`text`?e.text:``).join(`
|
|
2637
|
+
Output ONLY keywords. Nothing else.`,t$=6e3,eBt=500,tBt=120,nBt=200,rBt=150,n$=new Map})),aBt=i({collectSkillDiscoveryPrefetch:()=>fBt,extractQueryFromMessages:()=>i$,getTurnZeroSkillDiscovery:()=>pBt,startSkillDiscoveryPrefetch:()=>dBt});function r$(e,t){if(e.add(t),e.size>mBt){let t=e.size-hBt,n=e.values();for(let r=0;r<t;r++){let t=n.next();if(t.done)break;e.delete(t.value)}}}function i$(e,t){let n=[];e&&n.push(e);for(let e=t.length-1;e>=0;e--){let r=t[e];if(r.type!==`user`)continue;let i=r.content;if(typeof i==`string`){n.push(i.slice(0,500));break}if(Array.isArray(i)){let e=!1;for(let t of i){let r=t;if(r.type&&r.type!==`text`)continue;let i=r.text;if(typeof i==`string`&&i.trim()){n.push(i.slice(0,500)),e=!0;break}}if(e)break}}return n.join(` `)}function oBt(e,t,n){return{type:`skill_discovery`,skills:e,signal:t,source:`native`,gap:n}}async function sBt(e,t){let n=0,r=[];for(let i of e){let e={name:i.name,description:i.description,score:i.score};if(n>=_Bt||i.score<gBt){r.push(e);continue}let a=await cBt(i);if(!a){r.push(e);continue}n++,await lBt(i.name,a.path,a.content,t),r.push({...e,autoLoaded:!0,content:a.content,path:a.path})}return r}async function cBt(e){if(!e.skillRoot)return null;let t=[Ru(e.skillRoot,`SKILL.md`),Ru(e.skillRoot,`skill.md`)];for(let e of t)try{return{path:e,content:Sf(await Cme(e,`utf8`)).content.slice(0,vBt)}}catch{}return null}async function lBt(e,t,n,r){try{let{addInvokedSkill:i}=await import(`./state-B2GIOsTB.js`);i(e,t,n,r.agentId??null)}catch{}}async function uBt(e,t,n,r){if(r!==`user_input`||!e.trim())return;let i=`${r}:${e.trim().toLowerCase()}`;if(!o$.has(i)){r$(o$,i);try{let[{isSkillLearningEnabled:r},{recordSkillGap:i}]=await Promise.all([import(`./featureCheck-p7OeCYzj.js`),import(`./skillGapStore-ax0GuSmd.js`)]);if(!r())return;let a=await i({prompt:e,cwd:n.cwd??process.cwd(),sessionId:n.sessionId??`unknown-session`,recommendations:t}),o=a.status;return o!==`pending`&&o!==`draft`&&o!==`active`?void 0:{key:a.key,status:o,draftName:a.draft?.name,draftPath:a.draft?.skillPath,activeName:a.active?.name,activePath:a.active?.skillPath}}catch(e){U(`[skill-search] skill gap learning error: ${e}`);return}}}async function dBt(e,t,n){if(!TV())return[];let r=Date.now(),i=i$(e,t);if(!i.trim())return[];try{let e=await Cue(n.cwd??process.cwd()),t=wue(i,e).filter(e=>!a$.has(e.name));if(t.length===0)return[];for(let e of t)r$(a$,e.name);let a={trigger:`assistant_turn`,queryText:i.slice(0,200),startedAt:r,durationMs:Date.now()-r,indexSize:e.length,method:`tfidf`};return U(`[skill-search] prefetch found ${t.length} skills in ${a.durationMs}ms`),[oBt(await sBt(t,n),a)]}catch(e){return U(`[skill-search] prefetch error: ${e}`),[]}}async function fBt(e){try{return await e}catch{return[]}}async function pBt(e,t,n){if(!TV()||!e.trim())return null;let r=Date.now();try{let t=await Cue(n.cwd??process.cwd()),i=wue(await Jzt(e),t),a=await sBt(i,n),o=a.some(e=>e.autoLoaded)?void 0:await uBt(e,i,n,`user_input`);if(i.length===0&&!o)return null;for(let e of i)r$(a$,e.name);let s={trigger:`user_input`,queryText:e.slice(0,200),startedAt:r,durationMs:Date.now()-r,indexSize:t.length,method:`tfidf`};return U(`[skill-search] turn-zero found ${i.length} skills in ${s.durationMs}ms`),oBt(a,s,o)}catch(e){return U(`[skill-search] turn-zero error: ${e}`),null}}var mBt,hBt,a$,o$,gBt,_Bt,vBt,s$=n((()=>{EV(),ml(),iBt(),W(),Of(),mBt=1e3,hBt=750,a$=new Set,o$=new Set,gBt=Number(process.env.SKILL_SEARCH_AUTOLOAD_MIN_SCORE??`0.30`),_Bt=Number(process.env.SKILL_SEARCH_AUTOLOAD_LIMIT??`2`),vBt=Number(process.env.SKILL_SEARCH_AUTOLOAD_MAX_CHARS??`12000`)})),yBt=i({buildToolDiscoveryAttachment:()=>EBt,clearSearchExtraToolsPrefetchResults:()=>CBt,collectSearchExtraToolsPrefetch:()=>kBt,getSearchExtraToolsPrefetchSnapshot:()=>SBt,getTurnZeroSearchExtraToolsPrefetch:()=>OBt,startSearchExtraToolsPrefetch:()=>DBt,subscribeToSearchExtraToolsPrefetch:()=>xBt});function bBt(){for(let e of u$)e()}function xBt(e){return u$.add(e),()=>{u$.delete(e)}}function SBt(){return l$}function CBt(){l$=[],bBt()}function wBt(e,t){if(e.add(t),e.size>ABt){let t=e.size-jBt,n=e.values();for(let r=0;r<t;r++){let t=n.next();if(t.done)break;e.delete(t.value)}}}function TBt(e){return{name:e.name,description:e.description,searchHint:e.searchHint,score:e.score,isMcp:e.isMcp,isDeferred:e.isDeferred,inputSchema:e.inputSchema}}function EBt(e,t,n,r,i){return{type:`tool_discovery`,tools:e,trigger:t,queryText:n.slice(0,200),durationMs:r,indexSize:i}}async function DBt(e,t){let n=Date.now(),r=i$(null,t);if(!r.trim())return[];try{let t=await g_(e),i=h_(r,t,3).filter(e=>!c$.has(e.name));if(i.length===0)return[];for(let e of i)wBt(c$,e.name);let a=Date.now()-n;U(`[search-extra-tools] prefetch found ${i.length} tools in ${a}ms`);let o=i.map(TBt);return l$=o,bBt(),[EBt(o,`assistant_turn`,r,a,t.length)]}catch(e){return U(`[search-extra-tools] prefetch error: ${e}`),[]}}async function OBt(e,t){return null}async function kBt(e){try{return await e}catch{return[]}}var ABt,jBt,c$,l$,u$,d$=n((()=>{oCe(),W(),s$(),ABt=500,jBt=400,c$=new Set,l$=[],u$=new Set})),MBt=i({maybeGenerateTaskSummary:()=>PBt,shouldGenerateTaskSummary:()=>NBt});function NBt(){return INt()?Date.now()-f$>=FBt:!1}function PBt(e){f$=Date.now();try{let t=e.forkContextMessages;if(!t||t.length===0)return;let n;for(let e=t.length-1;e>=0;e--)if(t[e].type===`assistant`){n=t[e];break}let r=`busy`,i;if(n?.message?.content){let e=n.message.content;if(Array.isArray(e)){let t=e[e.length-1];t?.type===`tool_use`&&(r=`busy`,i=`tool: ${t.name||`unknown`}`)}}BNt({status:r,waitingFor:i}).catch(e=>{U(`[taskSummary] updateSessionActivity failed: ${e}`)})}catch(e){U(`[taskSummary] error: ${e}`)}}var FBt,f$,IBt=n((()=>{rX(),W(),FBt=3e4,f$=0}));function*p$(e,t){for(let n of e){let e=(Array.isArray(n.message?.content)?n.message.content:[]).filter(e=>e.type===`tool_use`);for(let r of e)yield d4({content:[{type:`tool_result`,content:t,is_error:!0,tool_use_id:r.id}],toolUseResult:t,sourceToolAssistantUUID:n.uuid})}}function LBt(e){return e?.type===`assistant`&&e.apiError===`max_output_tokens`}function RBt(e){if(e.thrownError!==void 0)return{type:`failed`,error:e.thrownError};let t=e.terminal,n=t?.reason;switch(n){case`completed`:return{type:`completed`};case void 0:case`aborted_streaming`:case`aborted_tools`:return{type:`cancelled`};case`model_error`:return{type:`failed`,error:t.error};default:return{type:`failed`,message:`query ended without successful completion: ${n}`}}}async function*m$(e){let t=[],n=[],r=!e.toolUseContext.langfuseTrace;U(`[query] ownsTrace=${r} incoming langfuseTrace=${e.toolUseContext.langfuseTrace?`present`:`null/undefined`} isLangfuseEnabled=${gx()}`);let i=e.toolUseContext.langfuseTrace??(gx()?bx({sessionId:Ft(),model:e.toolUseContext.options.mainLoopModel,provider:ar(),input:e.messages,querySource:e.querySource}):null),a=i?{...e,toolUseContext:{...e.toolUseContext,langfuseTrace:i}}:e,o,s=!1,c;try{o=yield*zBt(a,t,n)}catch(e){throw s=!0,c=e,e}finally{await lDe({commands:n,outcome:RBt({terminal:o,...s?{thrownError:c}:{}}),priority:`later`}).then(e=>{for(let t of e)Kwe(t)}).catch(q),r&&(Cx(i,void 0,o?.reason===`aborted_streaming`||o?.reason===`aborted_tools`?`interrupted`:void 0),await FLe()),a!==e&&(a.toolUseContext.langfuseTrace=null,a.toolUseContext.langfuseRootTrace=null,a.toolUseContext.langfuseBatchSpan=null);let t=globalThis.performance;if(t&&typeof t.clearMarks==`function`)try{t.clearMarks(),t.clearMeasures?.(),t.clearResourceTimings?.()}catch{}}for(let e of t)Uv(e,`completed`);return o}async function*zBt(e,t,n){try{var r=ise();let{systemPrompt:i,userContext:a,systemContext:o,canUseTool:s,fallbackModel:c,querySource:l,maxTurns:u,skipCacheWrite:d}=e,f=e.deps??Tzt(),p={messages:e.messages,toolUseContext:e.toolUseContext,maxOutputTokensOverride:e.maxOutputTokensOverride,autoCompactTracking:void 0,stopHookActive:void 0,maxOutputTokensRecoveryCount:0,hasAttemptedReactiveCompact:!1,turnCount:1,pendingToolUseSummary:void 0,transition:void 0},m=Nzt(),h,g=Czt(),_=r.u(BWt(p.messages,p.toolUseContext));for(;;){let{toolUseContext:r}=p,{messages:v,autoCompactTracking:y,maxOutputTokensRecoveryCount:b,hasAttemptedReactiveCompact:x,maxOutputTokensOverride:S,pendingToolUseSummary:C,stopHookActive:w,turnCount:T}=p,E=g$?.startSkillDiscoveryPrefetch(null,v,r),D=_$?.startSearchExtraToolsPrefetch(r.options.tools??[],v);yield{type:`stream_request_start`},OQ(`query_fn_entry`),r.agentId||Gv(`query_started`);let ee=r.queryTracking?{chainId:r.queryTracking.chainId,depth:r.queryTracking.depth+1}:{chainId:f.uuid(),depth:0},O=ee.chainId;r={...r,queryTracking:ee};let k=B4(v);for(let e of k)e.type===`user`&&`toolUseResult`in e&&e.toolUseResult!==void 0&&delete e.toolUseResult;let te=y,ne=l.startsWith(`agent:`)||l.startsWith(`repl_main_thread`);k=await Pqe(k,r.contentReplacementState,ne?e=>void A8(e,r.agentId).catch(q):void 0,new Set(r.options.tools.filter(e=>!Number.isFinite(e.maxResultSizeChars)).map(e=>e.name)));let re=0;OQ(`query_microcompact_start`);let ie=await f.microcompact(k,r,l);if(k=ie.messages,ie.clearedToolUseIds?.length){let e=r?.contentReplacementState?.replacements;if(e)for(let t of ie.clearedToolUseIds)e.delete(t)}OQ(`query_microcompact_end`);let ae=Sl(m9t(i,o));OQ(`query_autocompact_start`);let{compactionResult:oe,consecutiveFailures:A}=await f.autocompact(k,r,{systemPrompt:i,userContext:a,systemContext:o,toolUseContext:r,forkContextMessages:k},l,te,re);if(OQ(`query_autocompact_end`),oe){let{preCompactTokenCount:t,postCompactTokenCount:n,truePostCompactTokenCount:r,compactionUsage:i}=oe;if(G(`tengu_auto_compact_succeeded`,{originalMessageCount:v.length,compactedMessageCount:oe.summaryMessages.length+oe.attachments.length+oe.hookResults.length,preCompactTokenCount:t,postCompactTokenCount:n,truePostCompactTokenCount:r,compactionInputTokens:i?.input_tokens,compactionOutputTokens:i?.output_tokens,compactionCacheReadTokens:i?.cache_read_input_tokens??0,compactionCacheCreationTokens:i?.cache_creation_input_tokens??0,compactionTotalTokens:i?i.input_tokens+(i.cache_creation_input_tokens??0)+(i.cache_read_input_tokens??0)+i.output_tokens:0,queryChainId:O,queryDepth:ee.depth}),e.taskBudget){let t=PSe(k);h=Math.max(0,(h??e.taskBudget.total)-t)}te={compacted:!0,turnId:f.uuid(),turnCounter:0,consecutiveFailures:0};let a=j$(oe);for(let e of a)yield e;k=a}else A!==void 0&&(te={...te??{compacted:!1,turnId:``,turnCounter:0},consecutiveFailures:A});r={...r,messages:k};let se=[],j=[],ce=[],M=!1;OQ(`query_setup_start`);let N=g.gates.streamingToolExecution?new DQ(r.options.tools,s,r):null,le=r.getAppState(),ue=le.toolPermissionContext.mode,de=Oi({permissionMode:ue,mainLoopModel:r.options.mainLoopModel,exceeds200kTokens:ue===`plan`&&ISe(k)});OQ(`query_setup_end`);let fe=g.gates.isAnt?TDe(r.agentId??g.sessionId):void 0,pe=h$?.isReactiveCompactEnabled()??!1;if(!oe&&l!==`compact`&&l!==`session_memory`&&!(h$?.isReactiveCompactEnabled()&&Q$())){let{isAtBlockingLimit:e}=Z$(o_(k)-re,r.options.mainLoopModel);if(e)return yield u4({content:tv,error:`invalid_request`}),{reason:`blocking_limit`}}if(!oe&&Q$()){let e=r.options.mainLoopModel,t=o_(k)-re,n=fHt(e);if(t>Y$(e)-n){let e=await f.autocompact(k,r,{systemPrompt:i,userContext:a,systemContext:o,toolUseContext:r,forkContextMessages:k},l,te,re);e.compactionResult&&(k=j$(e.compactionResult),re=0,te=te&&{...te,compacted:!0,consecutiveFailures:e.consecutiveFailures??0})}}let me=!0;OQ(`query_api_loop_start`);try{for(;me;){me=!1;try{let t=!1;OQ(`query_api_streaming_start`);for await(let n of f.callModel({messages:h9t(k,a),systemPrompt:ae,thinkingConfig:r.options.thinkingConfig,tools:r.options.tools,signal:r.abortController.signal,options:{async getToolPermissionContext(){return r.getAppState().toolPermissionContext},model:de,...g.gates.fastModeEnabled&&{fastMode:le.fastMode},toolChoice:void 0,isNonInteractiveSession:r.options.isNonInteractiveSession,fallbackModel:c,onStreamingFallback:()=>{t=!0},querySource:l,agents:r.options.agentDefinitions.activeAgents,allowedAgentTypes:r.options.agentDefinitions.allowedAgentTypes,hasAppendSystemPrompt:!!r.options.appendSystemPrompt,maxOutputTokensOverride:S,fetchOverride:fe,mcpTools:le.mcp.tools,hasPendingMcpServers:le.mcp.clients.some(e=>e.type===`pending`),queryTracking:ee,effortValue:le.effortValue,advisorModel:le.advisorModel,skipCacheWrite:d,agentId:r.agentId,addNotification:r.addNotification,...e.taskBudget&&{taskBudget:{total:e.taskBudget.total,...h!==void 0&&{remaining:h}}},langfuseTrace:r.langfuseTrace}})){if(t){for(let e of se)yield{type:`tombstone`,message:e};G(`tengu_orphaned_messages_tombstoned`,{orphanedMessageCount:se.length,queryChainId:O,queryDepth:ee.depth}),se.length=0,j.length=0,ce.length=0,M=!1,N&&(N.discard(),N=new DQ(r.options.tools,s,r))}let e=n;if(n.type===`assistant`){let t=n,i=Array.isArray(t.message?.content)?t.message.content:[],a;for(let e=0;e<i.length;e++){let t=i[e];if(t.type===`tool_use`&&typeof t.input==`object`&&t.input!==null){let n=rl(r.options.tools,t.name);if(n?.backfillObservableInput){let r=t.input,o={...r};n.backfillObservableInput(o),Object.keys(o).some(e=>!(e in r))&&(a??(a=[...i]),a[e]={...t,input:o})}}}a&&(e={...n,message:{...t.message??{},content:a}})}let i=!1;if(h$?.isWithheldPromptTooLong(n)&&(i=!0),pe&&h$?.isWithheldMediaSizeError(n)&&(i=!0),LBt(n)&&(i=!0),i||(yield e),n.type===`assistant`){let e=n;se.push(e);let t=(Array.isArray(e.message?.content)?e.message.content:[]).filter(e=>e.type===`tool_use`);if(t.length>0&&(ce.push(...t),M=!0),N&&!r.abortController.signal.aborted)for(let n of t)N.addTool(n,e)}if(N&&!r.abortController.signal.aborted)for(let e of N.getCompletedResults())e.message&&(yield e.message,j.push(...b4([e.message],r.options.tools).filter(e=>e.type===`user`)))}OQ(`query_api_streaming_end`)}catch(e){if(e instanceof g3&&c){de=c,me=!0,yield*p$(se,`Model fallback triggered`),se.length=0,j.length=0,ce.length=0,M=!1,N&&(N.discard(),N=new DQ(r.options.tools,s,r)),r.options.mainLoopModel=c,process.env.USER_TYPE===`ant`&&(k=IYt(k)),G(`tengu_model_fallback_triggered`,{original_model:e.originalModel,fallback_model:c,entrypoint:`cli`,queryChainId:O,queryDepth:ee.depth}),yield I4(`Switched to ${Vn(e.fallbackModel)} due to high demand for ${Vn(e.originalModel)}`,`warning`);continue}throw e}}}catch(e){q(e);let t=e instanceof Error?e.message:String(e);return G(`tengu_query_error`,{assistantMessages:se.length,toolUses:se.flatMap(e=>(Array.isArray(e.message?.content)?e.message.content:[]).filter(e=>e.type===`tool_use`)).length,queryChainId:O,queryDepth:ee.depth}),e instanceof D_||e instanceof L_?(yield u4({content:e.message}),{reason:`image_error`}):(yield*p$(se,t),yield u4({content:t}),Ba(`Query error`,e),{reason:`model_error`,error:e})}if(se.length>0&&!r.options.isNonInteractiveSession){let e=se.at(-1)?.message?.usage;if(e){let t=Bzt(e,l,Rzt());t&&(yield Vzt(t))}}if(se.length>0&&_De(k.concat(se),i,a,o,r,l),r.abortController.signal.aborted){if(N)for await(let e of N.getRemainingResults())e.message&&(yield e.message);else yield*p$(se,`Interrupted by user`);if(!r.agentId)try{let{cleanupComputerUseAfterTurn:e}=await import(`./cleanup-Bg_gFgcj.js`);await e(r)}catch{}return r.abortController.signal.reason!==`interrupt`&&(yield f4({toolUse:!1})),{reason:`aborted_streaming`}}if(C){let e=await C;e&&(yield e)}if(!M){let e=se.at(-1);if(e?.type===`assistant`&&e.isApiErrorMessage&&gwe(e),pe&&h$?.isWithheldMediaSizeError(e),LBt(e)){if(Jr(`tengu_otk_slot_v1`,!1)&&S===void 0&&!process.env.CLAUDE_CODE_MAX_OUTPUT_TOKENS){G(`tengu_max_tokens_escalate`,{escalatedTo:Oae}),p={messages:k,toolUseContext:r,autoCompactTracking:te,maxOutputTokensRecoveryCount:b,hasAttemptedReactiveCompact:x,maxOutputTokensOverride:Oae,pendingToolUseSummary:void 0,stopHookActive:void 0,turnCount:T,transition:{reason:`max_output_tokens_escalate`}};continue}if(b<BBt){let e=d4({content:`Output token limit hit. Resume directly — no apology, no recap of what you were doing. Pick up mid-thought if that is where the cut happened. Break remaining work into smaller pieces.`,isMeta:!0});p={messages:[...k,...se,e],toolUseContext:r,autoCompactTracking:te,maxOutputTokensRecoveryCount:b+1,hasAttemptedReactiveCompact:x,maxOutputTokensOverride:void 0,pendingToolUseSummary:void 0,stopHookActive:void 0,turnCount:T,transition:{reason:`max_output_tokens_recovery`,attempt:b+1}};continue}yield e}if(e?.isApiErrorMessage)return E5t(e,r),{reason:`model_error`,error:e.error??e.apiError??`api_error`};let t=yield*bzt(k,se,i,a,o,r,l,w);if(t.preventContinuation)return{reason:`stop_hook_prevented`};if(t.blockingErrors.length>0){p={messages:[...k,...se,...t.blockingErrors],toolUseContext:r,autoCompactTracking:te,maxOutputTokensRecoveryCount:0,hasAttemptedReactiveCompact:x,maxOutputTokensOverride:void 0,pendingToolUseSummary:void 0,stopHookActive:!0,turnCount:T,transition:{reason:`stop_hook_blocking`}};continue}{let e=Pzt(m,r.agentId,Mt(),Zt());if(e.action===`continue`){Mne(),U(`Token budget continuation #${e.continuationCount}: ${e.pct}% (${e.turnTokens.toLocaleString()} / ${e.budget.toLocaleString()})`),p={messages:[...k,...se,d4({content:e.nudgeMessage,isMeta:!0})],toolUseContext:r,autoCompactTracking:te,maxOutputTokensRecoveryCount:0,hasAttemptedReactiveCompact:!1,maxOutputTokensOverride:void 0,pendingToolUseSummary:void 0,stopHookActive:void 0,turnCount:T,transition:{reason:`token_budget_continuation`}};continue}e.completionEvent&&(e.completionEvent.diminishingReturns&&U(`Token budget early stop: diminishing returns at ${e.completionEvent.pct}%`),G(`tengu_token_budget_completed`,{...e.completionEvent,queryChainId:O,queryDepth:ee.depth}))}return{reason:`completed`}}let he=!1,ge=r;OQ(`query_tool_execution_start`),G(N?`tengu_streaming_tool_execution_used`:`tengu_streaming_tool_execution_not_used`,{tool_count:ce.length,queryChainId:O,queryDepth:ee.depth});let _e=N?N.getRemainingResults():GLe(ce,se,s,r);for await(let e of _e)e.message&&(yield e.message,e.message.type===`attachment`&&e.message.attachment.type===`hook_stopped_continuation`&&(he=!0),j.push(...b4([e.message],r.options.tools).filter(e=>e.type===`user`))),e.newContext&&(ge={...e.newContext,queryTracking:ee});OQ(`query_tool_execution_end`);let ve;if(g.gates.emitToolUseSummaries&&ce.length>0&&!r.abortController.signal.aborted&&!r.agentId){let e=se.at(-1),t;if(e){let n=(Array.isArray(e.message?.content)?e.message.content:[]).filter(e=>e.type===`text`);if(n.length>0){let e=n.at(-1);e&&`text`in e&&(t=e.text)}}let n=ce.map(e=>e.id);ve=Pwe({tools:ce.map(e=>{let t=j.find(t=>t.type===`user`&&Array.isArray(t.message.content)&&t.message.content.some(t=>t.type===`tool_result`&&t.tool_use_id===e.id)),n=t?.type===`user`&&Array.isArray(t.message.content)?t.message.content.find(t=>t.type===`tool_result`&&t.tool_use_id===e.id):void 0;return{name:e.name,input:e.input,output:n&&`content`in n?n.content:null}}),signal:r.abortController.signal,isNonInteractiveSession:r.options.isNonInteractiveSession,lastAssistantText:t}).then(e=>e?LYt(e,n):null).catch(()=>null)}if(r.abortController.signal.aborted){if(!r.agentId)try{let{cleanupComputerUseAfterTurn:e}=await import(`./cleanup-Bg_gFgcj.js`);await e(r)}catch{}r.abortController.signal.reason!==`interrupt`&&(yield f4({toolUse:!0}));let e=T+1;return u&&e>u&&(yield u0({type:`max_turns_reached`,maxTurns:u,turnCount:e})),{reason:`aborted_tools`}}if(he)return{reason:`hook_stopped`};te?.compacted&&(te.turnCounter++,G(`tengu_post_autocompact_turn`,{turnId:te.turnId,turnCounter:te.turnCounter,queryChainId:O,queryDepth:ee.depth})),G(`tengu_query_before_attachments`,{messagesForQueryCount:k.length,assistantMessagesCount:se.length,toolResultsCount:j.length,queryChainId:O,queryDepth:ee.depth});let ye=ce.some(e=>e.name===jc),be=l.startsWith(`repl_main_thread`)||l===`sdk`,xe=r.agentId,Se=await aDe(sTe(ye?`later`:`next`).filter(e=>cTe(e)?!1:be?e.agentId===void 0:e.mode===`task-notification`&&e.agentId===xe));Se.staleCommands.length>0&&hv(Se.staleCommands);let Ce=Se.claimedCommands.filter(e=>e.mode===`prompt`||e.mode===`task-notification`);if(Ce.length>0){n.push(...Ce);for(let e of Ce)e.uuid&&(t.push(e.uuid),Uv(e.uuid,`started`));hv(Ce)}for await(let e of rGt(null,ge,null,Se.attachmentCommands,k.concat(se,j),l))yield e,j.push(e);if(_&&_.settledAt!==null&&_.consumedOnIteration===-1){let e=WWt(await _.promise,r.readFileState);for(let t of e){let e=u0(t);yield e,j.push(e)}_.consumedOnIteration=T-1}if(g$&&E){let e=await g$.collectSkillDiscoveryPrefetch(E);for(let t of e){let e=u0(t);yield e,j.push(e)}}if(_$&&D){let e=await _$.collectSearchExtraToolsPrefetch(D);for(let t of e){let e=u0(t);yield e,j.push(e)}}let we=new Set(Ce),Te=Se.attachmentCommands.filter(e=>(e.mode===`prompt`||e.mode===`task-notification`)&&!we.has(e));if(Te.length>0){for(let e of Te)e.uuid&&(t.push(e.uuid),Uv(e.uuid,`started`));hv(Te)}let Ee=fs(j,e=>e.type===`attachment`&&e.attachment.type===`edited_text_file`);if(G(`tengu_query_after_attachments`,{totalToolResultsCount:j.length,fileChangeAttachmentCount:Ee,queryChainId:O,queryDepth:ee.depth}),ge.options.refreshTools){let e=ge.options.refreshTools();e!==ge.options.tools&&(ge={...ge,options:{...ge.options,tools:e}})}let De={...ge,queryTracking:ee},Oe=T+1;if(!r.agentId&&v$.shouldGenerateTaskSummary()&&v$.maybeGenerateTaskSummary({systemPrompt:i,userContext:a,systemContext:o,toolUseContext:r,forkContextMessages:k.concat(se,j)}),u&&Oe>u)return yield u0({type:`max_turns_reached`,maxTurns:u,turnCount:Oe}),{reason:`max_turns`,turnCount:Oe};OQ(`query_recursive_call`),p={messages:k.concat(se,j),toolUseContext:De,autoCompactTracking:te,turnCount:Oe,maxOutputTokensRecoveryCount:0,hasAttemptedReactiveCompact:!1,pendingToolUseSummary:ve,maxOutputTokensOverride:void 0,stopHookActive:w,transition:{reason:`next_turn`}}}}catch(e){r.e=e}finally{r.d()}}var h$,g$,_$,v$,BBt,y$=n((()=>{_3(),r1(),V$(),$oe(),Ua(),O_(),R_(),Sc(),z_(),Ao(),dv(),W(),i3(),Lwe(),i9(),w0(),xv(),uDe(),fDe(),Zv(),hr(),s_(),fi(),wr(),Bc(),vDe(),G7(),ry(),TRt(),NQ(),XLe(),IE(),h5(),Szt(),wzt(),Ezt(),tn(),Izt(),Ss(),wx(),Pn(),Gzt(),h$=null,g$=(s$(),e(aBt)),_$=(d$(),e(yBt)),yzt(),v$=(IBt(),e(MBt)),BBt=3}));function VBt(){return{consecutiveDenials:0,totalDenials:0}}function HBt(e){return{...e,consecutiveDenials:e.consecutiveDenials+1,totalDenials:e.totalDenials+1}}function b$(e){return e.consecutiveDenials===0?e:{...e,consecutiveDenials:0}}function UBt(e){return e.consecutiveDenials>=x$.maxConsecutive||e.totalDenials>=x$.maxTotal}var x$,WBt=n((()=>{x$={maxConsecutive:3,maxTotal:20}}));function GBt(e){T$=e}function KBt(){return T$}function S$(e){return{systemPrompt:e.systemPrompt,userContext:e.userContext,systemContext:e.systemContext,toolUseContext:e.toolUseContext,forkContextMessages:e.messages}}function qBt(e,t){return t.length===0?e:()=>{let n=e();return{...n,toolPermissionContext:{...n.toolPermissionContext,alwaysAllowRules:{...n.toolPermissionContext.alwaysAllowRules,command:[...new Set([...n.toolPermissionContext.alwaysAllowRules.command||[],...t])]}}}}}async function JBt(e,t,n){let r=(await e.getPromptForCommand(t,n)).map(e=>e.type===`text`?e.text:``).join(`
|
|
2638
2638
|
`),i=R9(e.allowedTools??[]),a=qBt(n.getAppState,i),o=e.agent??`general-purpose`,s=n.options.agentDefinitions.activeAgents,c=s.find(e=>e.agentType===o)??s.find(e=>e.agentType===`general-purpose`)??s[0];if(!c)throw Error(`No agent available for forked execution`);return{skillContent:r,modifiedGetAppState:a,baseAgent:c,promptMessages:[d4({content:r})]}}function YBt(e,t=`Execution completed`){let n=c4(e);return n&&A4(Array.isArray(n.message.content)?n.message.content:[],`
|
|
2639
2639
|
`)||t}function C$(e,t){let n=t?.abortController??(t?.shareAbortController?e.abortController:ay(e.abortController)),r=t?.getAppState?t.getAppState:t?.shareAbortController?e.getAppState:()=>{let t=e.getAppState();return t.toolPermissionContext.shouldAvoidPermissionPrompts?t:{...t,toolPermissionContext:{...t.toolPermissionContext,shouldAvoidPermissionPrompts:!0}}};return{langfuseRootTrace:e.langfuseTrace,readFileState:fl(t?.readFileState??e.readFileState),nestedMemoryAttachmentTriggers:new Set,loadedNestedMemoryPaths:new Set,dynamicSkillDirTriggers:new Set,discoveredSkillNames:new Set,toolDecisions:void 0,contentReplacementState:t?.contentReplacementState??(e.contentReplacementState?bqe(e.contentReplacementState):void 0),abortController:n,getAppState:r,setAppState:t?.shareSetAppState?e.setAppState:()=>{},setAppStateForTasks:e.setAppStateForTasks??e.setAppState,localDenialTracking:t?.shareSetAppState?e.localDenialTracking:VBt(),setInProgressToolUseIDs:()=>{},setResponseLength:t?.shareSetResponseLength?e.setResponseLength:()=>{},pushApiMetricsEntry:t?.shareSetResponseLength?e.pushApiMetricsEntry:void 0,updateFileHistoryState:()=>{},updateAttributionState:e.updateAttributionState,addNotification:void 0,setToolJSX:void 0,setStreamMode:void 0,setSDKStatus:void 0,openMessageSelector:void 0,options:t?.options??e.options,messages:t?.messages??e.messages,agentId:t?.agentId??SP(),agentType:t?.agentType,queryTracking:{chainId:od(),depth:(e.queryTracking?.depth??-1)+1},fileReadingLimits:e.fileReadingLimits,userModified:e.userModified,criticalSystemReminder_EXPERIMENTAL:t?.criticalSystemReminder_EXPERIMENTAL,requireCanUseTool:t?.requireCanUseTool}}async function w$({promptMessages:e,cacheSafeParams:t,canUseTool:n,querySource:r,forkLabel:i,overrides:a,maxOutputTokens:o,maxTurns:s,onMessage:c,skipTranscript:l,skipCacheWrite:u}){let d=Date.now(),f=[],p={...Cl},{systemPrompt:m,userContext:h,systemContext:g,toolUseContext:_,forkContextMessages:v}=t,y=C$(_,a),b=[...v,...e],x=l?void 0:SP(i),S=null;x&&(await D8(b,x).catch(e=>U(`Forked agent [${i}] failed to record initial transcript: ${e}`)),S=b.length>0?b[b.length-1].uuid:null);try{for await(let e of m$({messages:b,systemPrompt:m,userContext:h,systemContext:g,canUseTool:n,toolUseContext:y,querySource:r,maxOutputTokensOverride:o,maxTurns:s,skipCacheWrite:u})){if(e.type===`stream_event`){if(`event`in e&&e.event?.type===`message_delta`&&e.event.usage){let t=u9({...Cl},e.event.usage);p=aen(p,t)}continue}if(e.type===`stream_request_start`)continue;U(`Forked agent [${i}] received message: type=${e.type}`),f.push(e),c?.(e);let t=e;x&&(t.type===`assistant`||t.type===`user`||t.type===`progress`)&&(await D8([t],x,S).catch(e=>U(`Forked agent [${i}] failed to record transcript: ${e}`)),t.type!==`progress`&&(S=t.uuid))}}finally{y.readFileState.clear(),b.length=0}return U(`Forked agent [${i}] finished: ${f.length} messages, types=[${f.map(e=>e.type).join(`, `)}], totalUsage: input=${p.input_tokens} output=${p.output_tokens} cacheRead=${p.cache_read_input_tokens} cacheCreate=${p.cache_creation_input_tokens}`),XBt({forkLabel:i,querySource:r,durationMs:Date.now()-d,messageCount:f.length,totalUsage:p,queryTracking:_.queryTracking}),{messages:f,totalUsage:p}}function XBt({forkLabel:e,querySource:t,durationMs:n,messageCount:r,totalUsage:i,queryTracking:a}){let o=i.input_tokens+i.cache_creation_input_tokens+i.cache_read_input_tokens,s=o>0?i.cache_read_input_tokens/o:0;G(`tengu_fork_agent_query`,{forkLabel:e,querySource:t,durationMs:n,messageCount:r,inputTokens:i.input_tokens,outputTokens:i.output_tokens,cacheReadInputTokens:i.cache_read_input_tokens,cacheCreationInputTokens:i.cache_creation_input_tokens,serviceTier:i.service_tier,cacheCreationEphemeral1hTokens:i.cache_creation.ephemeral_1h_input_tokens,cacheCreationEphemeral5mTokens:i.cache_creation.ephemeral_5m_input_tokens,cacheHitRate:s,...a?{queryChainId:a.chainId,queryDepth:a.depth}:{}})}var T$,E$=n((()=>{y$(),Ua(),p9(),bl(),oy(),W(),pl(),i3(),WBt(),U9(),h5(),IE(),CP(),T$=null})),ZBt,QBt=n((()=>{ZBt=[`User`,`Project`,`Local`,`Managed`,`AutoMem`,...[]]}));async function $Bt(e,t){process.env.USER_TYPE===`ant`&&G(`tengu_internal_record_permission_context`,{moment:t,namespace:await eVt(),toolPermissionContext:V(e),containerId:await tVt()})}var eVt,tVt,nVt=n((()=>{l(),Va(),Ua(),eVt=c(async()=>{if(process.env.USER_TYPE!==`ant`)return null;try{return(await hd(`/var/run/secrets/kubernetes.io/serviceaccount/namespace`,{encoding:`utf8`})).trim()}catch{return`namespace not found`}}),tVt=c(async()=>{if(process.env.USER_TYPE!==`ant`)return null;try{let e=(await hd(`/proc/self/mountinfo`,{encoding:`utf8`})).trim(),t=/(?:\/docker\/containers\/|\/sandboxes\/)([0-9a-f]{64})/,n=e.split(`
|
|
2640
2640
|
`);for(let e of n){let n=e.match(t);if(n&&n[1])return n[1]}return`container ID not found in mountinfo`}catch{return`container ID not found`}})}));function rVt(e){let t=[],n=[],r;for(let i of e)i.type===`assistant`&&i.message.id!==r&&n.length>0?(t.push(n),n=[i]):n.push(i),i.type===`assistant`&&(r=i.message.id);return n.length>0&&t.push(n),t}var iVt=n((()=>{}));function aVt(e,t=`from`){let n=O$+(t===`up_to`?fVt:dVt);return e&&e.trim()!==``&&(n+=`\n\nAdditional Instructions:\n${e}`),n+=A$,n}function oVt(e){let t=O$+uVt;return e&&e.trim()!==``&&(t+=`\n\nAdditional Instructions:\n${e}`),t+=A$,t}function sVt(e){let t=e;t=t.replace(/<analysis>[\s\S]*?<\/analysis>/,``);let n=t.match(/<summary>([\s\S]*?)<\/summary>/);if(n){let e=n[1]||``;t=t.replace(/<summary>[\s\S]*?<\/summary>/,`Summary:\n${e.trim()}`)}return t=t.replace(/\n\n+/g,`
|
|
@@ -2959,7 +2959,7 @@ _If the user asked a specific output such as an answer to a question, a table, o
|
|
|
2959
2959
|
# Worklog
|
|
2960
2960
|
_Step by step, what was attempted, done? Very terse summary for each step_
|
|
2961
2961
|
`}));function $Vt(e){q$={...q$,...e}}function eHt(){return{...q$}}async function tHt(){if(J$)return;J$=!0;let e=await yi(`tengu_sm_compact_config`,{});$Vt({minTokens:e.minTokens&&e.minTokens>0?e.minTokens:K$.minTokens,minTextBlockMessages:e.minTextBlockMessages&&e.minTextBlockMessages>0?e.minTextBlockMessages:K$.minTextBlockMessages,maxTokens:e.maxTokens&&e.maxTokens>0?e.maxTokens:K$.maxTokens})}function nHt(e){if(e.type===`assistant`){let t=e.message.content;return Array.isArray(t)&&t.some(e=>e.type===`text`)}if(e.type===`user`){let t=e.message.content;if(typeof t==`string`)return t.length>0;if(Array.isArray(t))return t.some(e=>e.type===`text`)}return!1}function rHt(e){if(e.type!==`user`)return[];let t=e.message.content;if(!Array.isArray(t))return[];let n=[];for(let e of t)e.type===`tool_result`&&n.push(e.tool_use_id);return n}function iHt(e,t){if(e.type!==`assistant`)return!1;let n=e.message.content;return Array.isArray(n)?n.some(e=>e.type===`tool_use`&&t.has(e.id)):!1}function aHt(e,t){if(t<=0||t>=e.length)return t;let n=t,r=[];for(let n=t;n<e.length;n++)r.push(...rHt(e[n]));if(r.length>0){let t=new Set;for(let r=n;r<e.length;r++){let n=e[r];if(n.type===`assistant`&&Array.isArray(n.message.content))for(let e of n.message.content)e.type===`tool_use`&&t.add(e.id)}let i=new Set(r.filter(e=>!t.has(e)));for(let t=n-1;t>=0&&i.size>0;t--){let r=e[t];if(iHt(r,i)&&(n=t,r.type===`assistant`&&Array.isArray(r.message.content)))for(let e of r.message.content)e.type===`tool_use`&&i.has(e.id)&&i.delete(e.id)}}let i=new Set;for(let t=n;t<e.length;t++){let n=e[t];n.type===`assistant`&&n.message.id&&i.add(n.message.id)}for(let t=n-1;t>=0;t--){let r=e[t];r.type===`assistant`&&r.message.id&&i.has(r.message.id)&&(n=t)}return n}function oHt(e,t){if(e.length===0)return 0;let n=eHt(),r=t>=0?t+1:e.length,i=0,a=0;for(let t=r;t<e.length;t++){let n=e[t];i+=Kh([n]),nHt(n)&&a++}if(i>=n.maxTokens||i>=n.minTokens&&a>=n.minTextBlockMessages)return aHt(e,r);let o=e.findLastIndex(e=>z4(e)),s=o===-1?0:o+1;for(let t=r-1;t>=s;t--){let o=e[t],s=Kh([o]);if(i+=s,nHt(o)&&a++,r=t,i>=n.maxTokens||i>=n.minTokens&&a>=n.minTextBlockMessages)break}return aHt(e,r)}function sHt(){if(x(process.env.ENABLE_CLAUDE_CODE_SM_COMPACT))return!0;if(x(process.env.DISABLE_CLAUDE_CODE_SM_COMPACT))return!1;let e=Jr(`tengu_session_memory`,!1),t=Jr(`tengu_sm_compact`,!1),n=e&&t;return process.env.USER_TYPE===`ant`&&G(`tengu_sm_compact_flag_check`,{tengu_session_memory:e,tengu_sm_compact:t,should_use:n}),n}function cHt(e,t,n,r,i,a){let o=a_(e),s=R4(`auto`,o??0,e[e.length-1]?.uuid),c=_1(e);c.size>0&&(s.compactMetadata.preCompactDiscoveredTools=[...c].sort());let{truncatedContent:l,wasTruncated:u}=YVt(t),d=D$(l,!0,i,!0);if(u){let e=g6t();d+=`\n\nSome session memory sections were truncated for length. The full session memory can be viewed at: ${e}`}let f=[d4({content:d,isCompactSummary:!0,isVisibleInTranscriptOnly:!0})],p=N$(a),m=p?[p]:[];return{boundaryMarker:SVt(s,f[f.length-1].uuid,n),summaryMessages:f,attachments:m,hookResults:r,messagesToKeep:n,preCompactTokenCount:o,postCompactTokenCount:Kh(f),truePostCompactTokenCount:Kh(f)}}async function lHt(e,t,n){if(!sHt())return null;await tHt(),await VSe();let r=RSe(),i=await HSe();if(!i)return G(`tengu_sm_compact_no_session_memory`,{}),null;if(await qVt(i))return G(`tengu_sm_compact_empty_template`,{}),null;try{let a;if(r){if(a=e.findIndex(e=>e.uuid===r),a===-1)return G(`tengu_sm_compact_summarized_id_not_found`,{}),null}else a=e.length-1,G(`tengu_sm_compact_resumed_session`,{});let o=oHt(e,a),s=cHt(e,i,e.slice(o).filter(e=>!z4(e)),await zN(`compact`,{model:An()}),d8(),t),c=Kh(j$(s));return n!==void 0&&c>=n?(G(`tengu_sm_compact_threshold_exceeded`,{postCompactTokenCount:c,autoCompactThreshold:n}),null):{...s,postCompactTokenCount:c,truePostCompactTokenCount:c}}catch(e){return G(`tengu_sm_compact_error`,{}),process.env.USER_TYPE===`ant`&&U(`Session memory compaction error: ${H(e)}`),null}}var K$,q$,J$,uHt=n((()=>{W(),y(),ka(),i3(),hr(),N5(),VN(),h5(),s_(),x1(),wr(),Ua(),QVt(),m_(),V$(),Yh(),pVt(),K$={minTokens:1e4,minTextBlockMessages:5,maxTokens:4e4},q$={...K$},J$=!1}));function Y$(e){let t=Math.min(f9(e),$$),n=Ki(e,gn()),r=process.env.CLAUDE_CODE_AUTO_COMPACT_WINDOW;if(r){let e=parseInt(r,10);!isNaN(e)&&e>0&&(n=Math.min(n,e))}return n-t}function dHt(e){let t=Y$(e);return t>=8e5?5e4:t>=4e5?3e4:e1}function fHt(e){return Math.min(f9(e),$$)+_Ht}function X$(e){let t=Y$(e),n=t-dHt(e),r=process.env.CLAUDE_AUTOCOMPACT_PCT_OVERRIDE;if(r){let e=parseFloat(r);if(!isNaN(e)&&e>0&&e<=100){let r=Math.floor(e/100*t);return Math.min(r,n)}}return n}function Z$(e,t){let n=X$(t),r=Q$()?n:Y$(t),i=Math.max(0,Math.round((r-e)/r*100)),a=r-hHt,o=r-gHt,s=e>=a,c=e>=o,l=Q$()&&e>=n,u=Y$(t)-t1,d=process.env.CLAUDE_CODE_BLOCKING_LIMIT_OVERRIDE,f=d?parseInt(d,10):NaN;return{percentLeft:i,isAboveWarningThreshold:s,isAboveErrorThreshold:c,isAboveAutoCompactThreshold:l,isAtBlockingLimit:e>=(!isNaN(f)&&f>0?f:u)}}function Q$(){return x(process.env.DISABLE_COMPACT)||x(process.env.DISABLE_AUTO_COMPACT)?!1:Tr().autoCompactEnabled}async function pHt(e,t,n,r=0){if(n===`session_memory`||n===`compact`||!Q$())return!1;let i=o_(e)-r;U(`autocompact: tokens=${i} threshold=${X$(t)} effectiveWindow=${Y$(t)}${r>0?` snipFreed=${r}`:``}`);let{isAboveAutoCompactThreshold:a}=Z$(i,t);return a}async function mHt(e,t,n,r,i,a){if(x(process.env.DISABLE_COMPACT)||i?.consecutiveFailures!==void 0&&i.consecutiveFailures>=n1)return{wasCompacted:!1};let o=t.options.mainLoopModel;if(!await pHt(e,o,r,a))return{wasCompacted:!1};let s={isRecompactionInChain:i?.compacted===!0,turnsSincePreviousCompact:i?.turnCounter??-1,previousCompactTurnId:i?.turnId,autoCompactThreshold:X$(o),querySource:r},c=await lHt(e,t.agentId,s.autoCompactThreshold);if(c)return c_(void 0),H$(r),zh(r??`compact`,t.agentId),an(),{wasCompacted:!0,compactionResult:c};try{let i=await M$(e,t,n,!0,void 0,!0,s);return c_(void 0),H$(r),{wasCompacted:!0,compactionResult:i,consecutiveFailures:0}}catch(e){ya(e,`API Error: Request was aborted.`)||q(e);let t=(i?.consecutiveFailures??0)+1;return t>=n1&&U(`autocompact: circuit breaker tripped after ${t} consecutive failures — skipping future attempts this session`,{level:`warn`}),{wasCompacted:!1,consecutiveFailures:t}}}var $$,e1,hHt,gHt,t1,_Ht,n1,r1=n((()=>{tn(),xn(),fi(),W(),y(),ka(),Ao(),s_(),wr(),p9(),Vh(),m_(),V$(),BVt(),uHt(),$$=2e4,e1=13e3,hHt=2e4,gHt=2e4,t1=3e3,_Ht=15e3,n1=3}));async function i1(e,t){try{let n=await E1(e,t);if(n!==null)return n;U(`countTokensWithFallback: API returned null, trying haiku fallback (${t.length} tools)`)}catch(e){U(`countTokensWithFallback: API failed: ${H(e)}`),q(e)}try{let n=await sUt(e,t);return n===null&&U(`countTokensWithFallback: haiku fallback also returned null (${t.length} tools)`),n}catch(e){return U(`countTokensWithFallback: haiku fallback failed: ${H(e)}`),q(e),null}}async function a1(e,t,n,r){let i=await i1([],await Promise.all(e.map(i=>u9t(i,{getToolPermissionContext:t,tools:e,agents:n?.activeAgents??[],model:r}))));if(i===null||i===0){let t=e.map(e=>e.name).join(`, `);U(`countToolDefinitionTokens returned ${i} for ${e.length} tools: ${t.slice(0,100)}${t.length>100?`...`:``}`)}return i??0}function vHt(e){let t=e.match(/^#+\s+(.+)$/m);if(t)return t[1].trim();let n=e.split(`
|
|
2962
|
-
`).find(e=>e.trim().length>0)??``;return n.length>40?n.slice(0,40)+`…`:n}async function yHt(e){let t=await e_(),n=[...e.filter(e=>e.length>0&&e!==`__SYSTEM_PROMPT_DYNAMIC_BOUNDARY__`).map(e=>({name:vHt(e),content:e})),...Object.entries(t).filter(([,e])=>e.length>0).map(([e,t])=>({name:e,content:t}))];if(n.length<1)return{systemPromptTokens:0,systemPromptSections:[]};let r=await Promise.all(n.map(({content:e})=>i1([{role:`user`,content:e}],[]))),i=n.map((e,t)=>({name:e.name,tokens:r[t]||0}));return{systemPromptTokens:r.reduce((e,t)=>e+(t||0),0),systemPromptSections:i}}async function bHt(){if(x(process.env.CLAUDE_CODE_SIMPLE))return{memoryFileDetails:[],claudeMdTokens:0};let e=gSe(await Jg()),t=[],n=0;if(e.length<1)return{memoryFileDetails:[],claudeMdTokens:0};let r=await Promise.all(e.map(async e=>({file:e,tokens:await i1([{role:`user`,content:e.content}],[])||0})));for(let{file:e,tokens:i}of r)n+=i,t.push({path:e.path,type:e.type,tokens:i});return{claudeMdTokens:n,memoryFileDetails:t}}async function xHt(e,t,n,r,i){let a=e.filter(e=>!e.isMcp);if(a.length<1)return{builtInToolTokens:0,deferredBuiltinDetails:[],deferredBuiltinTokens:0,systemToolDetails:[]};let{isSearchExtraToolsEnabled:o}=await import(`./searchExtraTools-Ntz1u-YC.js`),{isDeferredTool:s}=await import(`./prompt-ohTcwieE.js`),c=await o(r??``,e,t,n?.activeAgents??[],`analyzeBuiltIn`),l=a.filter(e=>!s(e)),u=a.filter(e=>s(e)),d=l.length>0?await a1(l,t,n,r):0,f=[];if(process.env.USER_TYPE===`ant`){let e=l.filter(e=>!nc(e,Lc));if(e.length>0){let t=e.map(e=>D1(V(e.inputSchema??{}))),n=t.reduce((e,t)=>e+t,0)||1,r=Math.max(0,d-500);f=e.map((e,i)=>({name:e.name,tokens:Math.round(t[i]/n*r)})).sort((e,t)=>t.tokens-e.tokens)}}let p=[],m=0,h=0;if(u.length>0&&c){let e=new Set;if(i){let t=new Set(u.map(e=>e.name));for(let n of i)if(n.type===`assistant`&&Array.isArray(n.message.content))for(let r of n.message.content)typeof r!=`string`&&`type`in r&&r.type===`tool_use`&&`name`in r&&typeof r.name==`string`&&t.has(r.name)&&e.add(r.name)}let a=await Promise.all(u.map(e=>a1([e],t,n,r)));for(let[t,n]of u.entries()){let r=Math.max(0,(a[t]||0)-500),i=e.has(n.name);p.push({name:n.name,tokens:r,isLoaded:i}),h+=r,i&&(m+=r)}}else if(u.length>0)return{builtInToolTokens:d+await a1(u,t,n,r),deferredBuiltinDetails:[],deferredBuiltinTokens:0,systemToolDetails:f};return{builtInToolTokens:d+m,deferredBuiltinDetails:p,deferredBuiltinTokens:h-m,systemToolDetails:f}}function SHt(e){return rl(e,Lc)}async function CHt(e,t,n){let r=await Wye(Ga()),i=SHt(e);return i?{slashCommandTokens:await a1([i],t,n),commandInfo:{totalCommands:r.totalCommands,includedCommands:r.includedCommands}}:{slashCommandTokens:0,commandInfo:{totalCommands:0,includedCommands:0}}}async function wHt(e,t,n){try{let r=await Gye(Ga()),i=SHt(e);if(!i)return{skillTokens:0,skillInfo:{totalSkills:0,includedSkills:0,skillFrontmatter:[]}};let a=await a1([i],t,n),o=r.map(e=>({name:x6(e),source:e.type===`prompt`?e.source:`plugin`,tokens:gyt(e)}));return{skillTokens:a,skillInfo:{totalSkills:r.length,includedSkills:r.length,skillFrontmatter:o}}}catch(e){return q(xa(e)),{skillTokens:0,skillInfo:{totalSkills:0,includedSkills:0,skillFrontmatter:[]}}}}async function THt(e,t,n,r,i){let a=e.filter(e=>e.isMcp),o=[],s=await a1(a,t,n,r),c=Math.max(0,(s||0)-500),l=await Promise.all(a.map(async r=>D1(V({name:r.name,description:await r.prompt({getToolPermissionContext:t,tools:e,agents:n?.activeAgents??[]}),input_schema:r.inputJSONSchema??{}})))),u=l.reduce((e,t)=>e+t,0)||1,d=l.map(e=>Math.round(e/u*c)),{isSearchExtraToolsEnabled:f}=await import(`./searchExtraTools-Ntz1u-YC.js`),{isDeferredTool:p}=await import(`./prompt-ohTcwieE.js`),m=await f(r,e,t,n?.activeAgents??[],`analyzeMcp`),h=new Set;if(m&&i){let e=new Set(a.map(e=>e.name));for(let t of i)if(t.type===`assistant`&&Array.isArray(t.message.content))for(let n of t.message.content)typeof n!=`string`&&`type`in n&&n.type===`tool_use`&&`name`in n&&typeof n.name==`string`&&e.has(n.name)&&h.add(n.name)}for(let[e,t]of a.entries())o.push({name:t.name,serverName:t.name.split(`__`)[1]||`unknown`,tokens:d[e],isLoaded:h.has(t.name)||!p(t)});let g=0,_=0;for(let e of o)e.isLoaded?g+=e.tokens:m&&(_+=e.tokens);return{mcpToolTokens:m?g:c,mcpToolDetails:o,deferredToolTokens:_,loadedMcpToolNames:h}}async function EHt(e){let t=e.activeAgents.filter(e=>e.source!==`built-in`),n=[],r=0,i=await Promise.all(t.map(e=>i1([{role:`user`,content:[e.agentType,e.whenToUse].join(` `)}],[])));for(let[e,a]of t.entries()){let t=i[e]||0;r+=t||0,n.push({agentType:a.agentType,source:a.source,tokens:t||0})}return{agentTokens:r,agentDetails:n}}function DHt(e,t){let n=Array.isArray(e.message.content)?e.message.content:[];for(let e of n){let n=D1(V(e));if(typeof e!=`string`&&`type`in e&&e.type===`tool_use`){t.toolCallTokens+=n;let r=(`name`in e?e.name:void 0)||`unknown`;t.toolCallsByType.set(r,(t.toolCallsByType.get(r)||0)+n)}else t.assistantMessageTokens+=n}}function OHt(e,t,n){if(typeof e.message.content==`string`){let n=D1(e.message.content);t.userMessageTokens+=n;return}for(let r of e.message.content??[]){let e=D1(V(r));if(`type`in r&&r.type===`tool_result`){let i=`tool_use_id`in r?r.tool_use_id:void 0,a=(i?n.get(i):void 0)||`unknown`;t.toolResultsByType.set(a,(t.toolResultsByType.get(a)||0)+e)}else t.userMessageTokens+=e}}function kHt(e,t){let n=D1(V(e.attachment));t.attachmentTokens+=n;let r=e.attachment.type||`unknown`;t.attachmentsByType.set(r,(t.attachmentsByType.get(r)||0)+n)}async function AHt(e){let t=await qh(e),n={totalTokens:0,toolCallTokens:0,toolResultTokens:0,attachmentTokens:0,assistantMessageTokens:0,userMessageTokens:0,toolCallsByType:new Map,toolResultsByType:new Map,attachmentsByType:new Map},r=new Map;for(let e of t.messages)if(e.type===`assistant`&&Array.isArray(e.message.content)){for(let t of e.message.content)if(typeof t!=`string`&&`type`in t&&t.type===`tool_use`){let e=`id`in t?t.id:void 0,n=(`name`in t?t.name:void 0)||`unknown`;e&&r.set(e,n)}}for(let e of t.messages)e.type===`assistant`?DHt(e,n):e.type===`user`?OHt(e,n,r):e.type===`attachment`&&kHt(e,n);return n.totalTokens=await i1(b4(t.messages).map(e=>e.type===`assistant`?{role:`assistant`,content:e.message.content}:e.message),[])??0,n}async function jHt(t,n,r,i,a,o,s,c,l){let u=Oi({permissionMode:(await r()).mode,mainLoopModel:n}),d=Ki(u,gn()),f=await Q7(i,u),p=sX({mainThreadAgentDefinition:c,toolUseContext:s??{options:{}},customSystemPrompt:s?.options.customSystemPrompt,defaultSystemPrompt:f,appendSystemPrompt:s?.options.appendSystemPrompt}),[{systemPromptTokens:m,systemPromptSections:h},{claudeMdTokens:g,memoryFileDetails:_},{builtInToolTokens:v,deferredBuiltinDetails:y,deferredBuiltinTokens:b,systemToolDetails:x},{mcpToolTokens:S,mcpToolDetails:C,deferredToolTokens:w},{agentTokens:T,agentDetails:E},{slashCommandTokens:D,commandInfo:ee},O]=await Promise.all([yHt(p),bHt(),xHt(i,r,a,u,t),THt(i,r,a,u,t),EHt(a),CHt(i,r,a),AHt(t)]),k=(await wHt(i,r,a)).skillInfo,te=k.skillFrontmatter.reduce((e,t)=>e+t.tokens,0),ne=O.totalTokens,re=Q$(),ie=re?Y$(n)-e1:void 0,ae=[];m>0&&ae.push({name:`System prompt`,tokens:m,color:`promptBorder`});let oe=v-te;oe>0&&ae.push({name:process.env.USER_TYPE===`ant`?`[ANT-ONLY] System tools`:`System tools`,tokens:oe,color:`inactive`}),S>0&&ae.push({name:`MCP tools`,tokens:S,color:`cyan_FOR_SUBAGENTS_ONLY`}),w>0&&ae.push({name:`MCP tools (deferred)`,tokens:w,color:`inactive`,isDeferred:!0}),b>0&&ae.push({name:`System tools (deferred)`,tokens:b,color:`inactive`,isDeferred:!0}),T>0&&ae.push({name:`Custom agents`,tokens:T,color:`permission`}),g>0&&ae.push({name:`Memory files`,tokens:g,color:`claude`}),te>0&&ae.push({name:`Skills`,tokens:te,color:`warning`}),ne!==null&&ne>0&&ae.push({name:`Messages`,tokens:ne,color:`purple_FOR_SUBAGENTS_ONLY`});let A=ae.reduce((e,t)=>e+(t.isDeferred?0:t.tokens),0),se=0;re&&ie!==void 0?(se=d-ie,ae.push({name:o1,tokens:se,color:`inactive`})):re||(se=t1,ae.push({name:s1,tokens:se,color:`inactive`}));let j=Math.max(0,d-A-se);ae.push({name:`Free space`,tokens:j,color:`promptBorder`});let ce=A,M=FSe(l??t),N=(M?M.input_tokens+M.cache_creation_input_tokens+M.cache_read_input_tokens:null)??ce,le=o&&o<80,ue=d>=1e6?le?5:20:le?5:10,de=d>=1e6?10:le?5:10,fe=ue*de,pe=ae.filter(e=>!e.isDeferred).map(e=>({...e,squares:e.name===`Free space`?Math.round(e.tokens/d*fe):Math.max(1,Math.round(e.tokens/d*fe)),percentageOfTotal:Math.round(e.tokens/d*100)}));function me(e){let t=[],n=e.tokens/d*fe,r=Math.floor(n),i=n-r;for(let n=0;n<e.squares;n++){let a=1;n===r&&i>0&&(a=i),t.push({color:e.color,isFilled:!0,categoryName:e.name,tokens:e.tokens,percentage:e.percentageOfTotal,squareFullness:a})}return t}let he=[],ge=pe.find(e=>e.name===o1||e.name===s1),_e=pe.filter(e=>e.name!==o1&&e.name!==s1&&e.name!==`Free space`);for(let e of _e){let t=me(e);for(let e of t)he.length<fe&&he.push(e)}let ve=ge?ge.squares:0,ye=ae.find(e=>e.name===`Free space`),be=fe-ve;for(;he.length<be;)he.push({color:`promptBorder`,isFilled:!0,categoryName:`Free space`,tokens:ye?.tokens||0,percentage:ye?Math.round(ye.tokens/d*100):0,squareFullness:1});if(ge){let e=me(ge);for(let t of e)he.length<fe&&he.push(t)}let xe=[];for(let e=0;e<de;e++)xe.push(he.slice(e*ue,(e+1)*ue));let Se=new Map;for(let[e,t]of O.toolCallsByType.entries()){let n=Se.get(e)||{callTokens:0,resultTokens:0};Se.set(e,{...n,callTokens:t})}for(let[e,t]of O.toolResultsByType.entries()){let n=Se.get(e)||{callTokens:0,resultTokens:0};Se.set(e,{...n,resultTokens:t})}let Ce=Array.from(Se.entries()).map(([e,{callTokens:t,resultTokens:n}])=>({name:e,callTokens:t,resultTokens:n})).sort((e,t)=>t.callTokens+t.resultTokens-(e.callTokens+e.resultTokens)),we=Array.from(O.attachmentsByType.entries()).map(([e,t])=>({name:e,tokens:t})).sort((e,t)=>t.tokens-e.tokens),Te={toolCallTokens:O.toolCallTokens,toolResultTokens:O.toolResultTokens,attachmentTokens:O.attachmentTokens,assistantMessageTokens:O.assistantMessageTokens,userMessageTokens:O.userMessageTokens,toolCallsByType:Ce,attachmentsByType:we};return{categories:ae,totalTokens:N,maxTokens:d,rawMaxTokens:d,percentage:Math.round(N/d*100),gridRows:xe,model:u,memoryFiles:_,mcpTools:C,deferredBuiltinTools:process.env.USER_TYPE===`ant`?y:void 0,systemTools:process.env.USER_TYPE===`ant`?x:void 0,systemPromptSections:process.env.USER_TYPE===`ant`?h:void 0,agents:E,slashCommands:D>0?{totalCommands:ee.totalCommands,includedCommands:ee.includedCommands,tokens:D}:void 0,skills:te>0?{totalSkills:k.totalSkills,includedSkills:k.includedSkills,tokens:te,skillFrontmatter:k.skillFrontmatter}:void 0,autoCompactThreshold:ie,isAutoCompactEnabled:re,messageBreakdown:Te,apiUsage:M,...(()=>{if(!M)return{};let{calculateCacheHitRate:t,getCacheThreshold:n}=(Gzt(),e(Lzt)),r=t(M);return r===null?{}:{cacheHitRate:r,cacheThreshold:n()}})()}}var o1,s1,MHt=n((()=>{r9(),Yh(),tn(),s8(),n_(),wr(),r1(),M1(),sG(),Sc(),uc(),hh(),i9(),Zg(),fi(),Wa(),W(),y(),ka(),Ao(),i3(),hr(),Va(),cX(),s_(),o1=`Autocompact buffer`,s1=`Compact buffer`}));function c1(e){let t=l1.get(e);if(t)return t;let n=Ie(e);return l1.set(e,n),n}var l1,u1=n((()=>{it(),l1=new WeakMap}));function NHt(e){if(!e.startsWith(`auto:`))return null;let t=e.slice(5),n=parseInt(t,10);return isNaN(n)?(U(`Invalid ENABLE_SEARCH_EXTRA_TOOLS value "${e}": expected auto:N where N is a number.`),null):Math.max(0,Math.min(100,n))}function PHt(e){return e?e===`auto`||e.startsWith(`auto:`):!1}function d1(){let e=process.env.ENABLE_SEARCH_EXTRA_TOOLS;if(!e||e===`auto`)return y1;let t=NHt(e);return t===null?y1:t}function FHt(e){let t=Ki(e,roe(e)),n=d1()/100;return Math.floor(t*n)}function IHt(e){return Math.floor(FHt(e)*WHt)}function f1(){if(x(process.env.CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS))return`standard`;let e=process.env.ENABLE_SEARCH_EXTRA_TOOLS,t=e?NHt(e):null;return t===0?`tst`:t===100?`standard`:PHt(e)?`tst-auto`:x(e)?`tst`:h(process.env.ENABLE_SEARCH_EXTRA_TOOLS)?`standard`:`tst`}function p1(){let e=f1();return e===`standard`?(b1||(b1=!0,U(`[SearchExtraTools:optimistic] mode=${e}, ENABLE_SEARCH_EXTRA_TOOLS=${process.env.ENABLE_SEARCH_EXTRA_TOOLS}, result=false`)),!1):(b1||(b1=!0,U(`[SearchExtraTools:optimistic] mode=${e}, ENABLE_SEARCH_EXTRA_TOOLS=${process.env.ENABLE_SEARCH_EXTRA_TOOLS}, result=true`)),!0)}function m1(e){return e.some(e=>nc(e,Dc))}async function LHt(e,t,n){let r=e.filter(e=>Pc(e));return r.length===0?0:(await Promise.all(r.map(async r=>{let i=await r.prompt({getToolPermissionContext:t,tools:e,agents:n}),a=r.inputJSONSchema?V(r.inputJSONSchema):r.inputSchema?V(c1(r.inputSchema)):``;return r.name.length+i.length+a.length}))).reduce((e,t)=>e+t,0)}async function h1(e,t,n,r,i){let a=fs(t,e=>e.isMcp);function o(t,n,r,i){G(`tengu_search_extra_tools_mode_decision`,{enabled:t,mode:n,reason:r,checkedModel:e,mcpToolCount:a,userType:process.env.USER_TYPE??`external`,...i})}if(!m1(t))return U(`Tool search disabled: SearchExtraToolsTool is not available (may have been disallowed via disallowedTools).`),o(!1,`standard`,`mcp_search_unavailable`),!1;let s=f1();switch(s){case`tst`:return o(!0,s,`tst_enabled`),!0;case`tst-auto`:{let{enabled:a,debugDescription:c,metrics:l}=await UHt(t,n,r,e);return a?(U(`Auto tool search enabled: ${c}`+(i?` [source: ${i}]`:``)),o(!0,s,`auto_above_threshold`,l),!0):(U(`Auto tool search disabled: ${c}`+(i?` [source: ${i}]`:``)),o(!1,s,`auto_below_threshold`,l),!1)}case`standard`:return o(!1,s,`standard_mode`),!1}}function g1(e){return typeof e==`object`&&!!e&&`type`in e&&e.type===`tool_reference`}function RHt(e){return g1(e)&&`tool_name`in e&&typeof e.tool_name==`string`}function zHt(e){return typeof e==`object`&&!!e&&`type`in e&&e.type===`tool_result`&&`content`in e&&Array.isArray(e.content)}function BHt(e){return typeof e==`object`&&!!e&&`type`in e&&e.type===`tool_result`&&`content`in e&&typeof e.content==`string`}function VHt(e){let t=KHt.exec(e);return t?.[1]?t[1].split(`,`).map(e=>e.trim()).filter(Boolean):[]}function _1(e){let t=new Set,n=0;for(let r of e){if(r.type===`system`&&r.subtype===`compact_boundary`){let e=r.compactMetadata?.preCompactDiscoveredTools;if(e){for(let n of e)t.add(n);n+=e.length}continue}if(r.type===`attachment`&&r.attachment?.type===`deferred_tools_delta`){let e=r.attachment.addedNames??[];for(let n of e)t.add(n);continue}if(r.type!==`user`)continue;let e=r.message?.content;if(Array.isArray(e))for(let n of e){if(zHt(n))for(let e of n.content)RHt(e)&&t.add(e.tool_name);if(BHt(n)){let e=VHt(n.content);for(let n of e)t.add(n)}}}return t.size>0&&U(`Dynamic tool loading: found ${t.size} discovered tools in message history`+(n>0?` (${n} carried from compact boundary)`:``)),t}function v1(){return process.env.USER_TYPE===`ant`||Jr(`tengu_glacier_2xr`,!1)}function HHt(e,t,n){let r=new Set,i=0,a=0,o=new Set;for(let e of t)if(e.type===`attachment`&&(i++,o.add(e.attachment.type),e.attachment.type===`deferred_tools_delta`)){a++;for(let t of e.attachment.addedNames)r.add(t);for(let t of e.attachment.removedNames)r.delete(t)}let s=e.filter(Pc),c=new Set(s.map(e=>e.name)),l=new Set(e.map(e=>e.name)),u=s.filter(e=>!r.has(e.name)),d=[];for(let e of r)c.has(e)||l.has(e)||d.push(e);return u.length===0&&d.length===0?null:(G(`tengu_deferred_tools_pool_change`,{addedCount:u.length,removedCount:d.length,priorAnnouncedCount:r.size,messagesLength:t.length,attachmentCount:i,dtdCount:a,callSite:n?.callSite??`unknown`,querySource:n?.querySource??`unknown`,attachmentTypesSeen:[...o].sort().join(`,`)}),{addedNames:u.map(e=>e.name).sort(),addedLines:u.map(qle).sort(),removedNames:d.sort()})}async function UHt(e,t,n,r){let i=await GHt(e,t,n,r);if(i!==null){let e=FHt(r);return{enabled:i>=e,debugDescription:`${i} tokens (threshold: ${e}, ${d1()}% of context)`,metrics:{deferredToolTokens:i,threshold:e}}}let a=await LHt(e,t,n),o=IHt(r);return{enabled:a>=o,debugDescription:`${a} chars (threshold: ${o}, ${d1()}% of context) (char fallback)`,metrics:{deferredToolDescriptionChars:a,charThreshold:o}}}var y1,WHt,GHt,b1,KHt,x1=n((()=>{l(),wr(),Ua(),Sc(),Gc(),MHt(),Ss(),zr(),fi(),W(),y(),Va(),u1(),y1=10,WHt=2.5,GHt=c(async(e,t,n,r)=>{let i=e.filter(e=>Pc(e));if(i.length===0)return 0;try{let e=await a1(i,t,{activeAgents:n,allAgents:n},r);return e===0?null:Math.max(0,e-500)}catch{return null}},e=>e.filter(e=>Pc(e)).map(e=>e.name).join(`,`)),b1=!1,KHt=/^Found \d+ deferred tool\(s\): (.+)\.$/m}));function S1(){return!!(process.env.USER_TYPE===`ant`&&x(process.env.FORCE_VCR))}async function qHt(e,t,n){if(!S1())return await n();let r=id(`sha1`).update(V(e)).digest(`hex`).slice(0,12),i=Y(process.env.CLAUDE_CODE_TEST_FIXTURES_ROOT??Ga(),`fixtures/${t}-${r}.json`);try{return Da(await hd(i,{encoding:`utf8`}))}catch(e){if(Ea(e)!==`ENOENT`)throw e}if((po.isCI||process.env.CI)&&!x(process.env.VCR_RECORD))throw Error(`Fixture missing: ${i}. Re-run tests with VCR_RECORD=1, then commit the result.`);let a=await n();return await pd(Eu(i),{recursive:!0}),await wd(i,V(a,null,2),{encoding:`utf8`}),a}async function C1(e,t){if(!S1())return await t();let n=YHt(b4(e.filter(e=>e.type===`user`?!e.isMeta:!0)).map(e=>e.message.content),T1),r=Y(process.env.CLAUDE_CODE_TEST_FIXTURES_ROOT??Ga(),`fixtures/${n.map(e=>id(`sha1`).update(V(e)).digest(`hex`).slice(0,6)).join(`-`)}.json`);try{let e=Da(await hd(r,{encoding:`utf8`}));return e.output.forEach(JHt),e.output.map((e,t)=>ZHt(e,QHt,t,od()))}catch(e){if(Ea(e)!==`ENOENT`)throw e}if(po.isCI&&!x(process.env.VCR_RECORD))throw Error(`Anthropic API fixture missing: ${r}. Re-run tests with VCR_RECORD=1, then commit the result. Input messages:\n${V(n,null,2)}`);let i=await t();return po.isCI&&!x(process.env.VCR_RECORD)?i:(await pd(Eu(r),{recursive:!0}),await wd(r,V({input:n,output:i.map((e,t)=>ZHt(e,T1,t))},null,2),{encoding:`utf8`}),i)}function JHt(e){if(e.type===`stream_event`)return;let t=e.message.model,n=e.message.usage;lG(Zr(t,n),n,t)}function YHt(e,t){return e.map(e=>typeof e==`string`?t(e):e.map(e=>{switch(e.type){case`tool_result`:return typeof e.content==`string`?{...e,content:t(e.content)}:Array.isArray(e.content)?{...e,content:e.content.map(e=>{switch(e.type){case`text`:return{...e,text:t(e.text)};case`image`:return e;default:return}})}:e;case`text`:return{...e,text:t(e.text)};case`tool_use`:return{...e,input:w1(e.input,t)};case`image`:return e;default:return}}))}function w1(e,t){return pr(e,(n,r)=>Array.isArray(n)?n.map(e=>w1(e,t)):wre(n)?w1(n,t):t(n,r,e))}function XHt(e,t,n,r){return{uuid:r??`UUID-${n}`,requestId:`REQUEST_ID`,timestamp:e.timestamp,message:{...e.message,content:e.message.content.map(e=>{switch(e.type){case`text`:return{...e,text:t(e.text),citations:e.citations||[]};case`tool_use`:return{...e,input:w1(e.input,t)};default:return e}}).filter(Boolean)},type:`assistant`}}function ZHt(e,t,n,r){return e.type===`assistant`?XHt(e,t,n,r):e}function T1(e){if(typeof e!=`string`)return e;let t=Ga(),n=_(),r=e.replace(/num_files="\d+"/g,`num_files="[NUM]"`).replace(/duration_ms="\d+"/g,`duration_ms="[DURATION]"`).replace(/cost_usd="\d+"/g,`cost_usd="[COST]"`).replaceAll(n,`[CONFIG_HOME]`).replaceAll(t,`[CWD]`).replace(/Available commands:.+/,`Available commands: [COMMANDS]`);if(process.platform===`win32`){let e=t.replaceAll(`\\`,`/`),i=n.replaceAll(`\\`,`/`),a=V(t).slice(1,-1),o=V(n).slice(1,-1);r=r.replaceAll(a,`[CWD]`).replaceAll(o,`[CONFIG_HOME]`).replaceAll(e,`[CWD]`).replaceAll(i,`[CONFIG_HOME]`)}return r=r.replace(/\[CWD\][^\s"'<>]*/g,e=>e.replaceAll(`\\\\`,`/`).replaceAll(`\\`,`/`)).replace(/\[CONFIG_HOME\][^\s"'<>]*/g,e=>e.replaceAll(`\\\\`,`/`).replaceAll(`\\`,`/`)),r.includes(`Files modified by user:`)?`Files modified by user: [FILES]`:r}function QHt(e){return typeof e==`string`?e.replaceAll(`[NUM]`,`1`).replaceAll(`[DURATION]`,`100`).replaceAll(`[CONFIG_HOME]`,_()).replaceAll(`[CWD]`,Ga()):e}async function*$Ht(e,t){if(!S1())return yield*t();let n=[],r=await C1(e,async()=>{for await(let e of t())n.push(e);return n});if(r.length>0){yield*r;return}yield*n}async function eUt(e,t,n){let r=Ga().replace(/[^a-zA-Z0-9]/g,`-`);return(await qHt(T1(V({messages:e,tools:t})).replaceAll(r,`[CWD_SLUG]`).replace(/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/gi,`[UUID]`).replace(/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?Z?/g,`[TIMESTAMP]`),`token-count`,async()=>({tokenCount:await n()}))).tokenCount}var tUt=n((()=>{Eie(),Yre(),uG(),oi(),Wa(),fo(),y(),ka(),i3(),Va()}));function nUt(e){for(let t of e)if(t.role===`assistant`&&Array.isArray(t.content)){for(let e of t.content)if(typeof e==`object`&&e&&`type`in e&&(e.type===`thinking`||e.type===`redacted_thinking`))return!0}return!1}function rUt(e){return e.map(e=>{if(!Array.isArray(e.content))return e;let t=e.content.map(e=>{if(e.type===`tool_use`){let t=e;return{type:`tool_use`,id:t.id,name:t.name,input:t.input}}if(e.type===`tool_result`){let t=e;if(Array.isArray(t.content)){let e=t.content.filter(e=>!g1(e));if(e.length===0)return{...t,content:[{type:`text`,text:`[tool references]`}]};if(e.length!==t.content.length)return{...t,content:e}}}return e});return{...e,content:t}})}async function iUt(e){return e?E1([{role:`user`,content:e}],[]):0}async function E1(e,t){return eUt(e,t,async()=>{try{let n=ar();if(n===`gemini`)return lUt(e,t);let r=An(),i=Jn(r),a=nUt(e);if(n===`bedrock`)return dUt({model:va(r),messages:e,tools:t,betas:i,containsThinking:a});let o=await vi({maxRetries:1,model:r,source:`count_tokens`}),s=ar()===`vertex`?i.filter(e=>jie.has(e)):i,c=await o.beta.messages.countTokens({model:va(r),messages:e.length>0?e:[{role:`user`,content:`foo`}],tools:t,...s.length>0&&{betas:s},...a&&{thinking:{type:`enabled`,budget_tokens:A1}}});return typeof c.input_tokens==`number`?c.input_tokens:null}catch(e){return q(e),null}})}function D1(e,t=4){return Math.round(e.length/t)}function aUt(e){switch(e){case`json`:case`jsonl`:case`jsonc`:return 2;default:return 4}}function oUt(e,t){return D1(e,aUt(t))}async function sUt(e,t){if(ar()===`gemini`)return lUt(e,t);let n=nUt(e),r=x(process.env.CLAUDE_CODE_USE_VERTEX)&&u(rr())===`global`,i=x(process.env.CLAUDE_CODE_USE_BEDROCK)&&n,a=x(process.env.CLAUDE_CODE_USE_VERTEX)&&n,o=r||i||a?Mn():rr(),s=await vi({maxRetries:1,model:o,source:`count_tokens`}),c=rUt(e),l=c.length>0?c:[{role:`user`,content:`count`}],d=Jn(o),f=ar()===`vertex`?d.filter(e=>jie.has(e)):d,p=Date.now(),m=gx()?bx({sessionId:Ft(),model:va(o),provider:ar(),name:`token-estimation`}):null,h=await s.beta.messages.create({model:va(o),max_tokens:n?j1:1,messages:l,tools:t.length>0?t:void 0,...f.length>0&&{betas:f},metadata:s9(),...a9(),...n&&{thinking:{type:`enabled`,budget_tokens:A1}}}),g=h.usage,_=g.input_tokens,v=g.cache_creation_input_tokens||0,y=g.cache_read_input_tokens||0;return xx(m,{model:va(o),provider:ar(),input:l,output:h.content,usage:{input_tokens:_,output_tokens:g.output_tokens,cache_creation_input_tokens:v||void 0,cache_read_input_tokens:y||void 0},startTime:new Date(p),endTime:new Date,...n&&{thinking:{type:`enabled`,budgetTokens:A1}}}),Cx(m),_+v+y}function O1(e){let t=0;for(let n of e)t+=cUt(n);return t}function cUt(e){if((e.type===`assistant`||e.type===`user`)&&e.message?.content)return k1(e.message?.content);if(e.type===`attachment`&&e.attachment){let t=_Yt(e.attachment),n=0;for(let e of t)n+=k1(e.message.content);return n}return 0}function k1(e){if(!e)return 0;if(typeof e==`string`)return D1(e);let t=0;for(let n of e)t+=uUt(n);return t}function lUt(e,t){let n=0;for(let t of e)n+=k1(t.content);return t.length>0&&(n+=D1(V(t))),n}function uUt(e){return typeof e==`string`?D1(e):e.type===`text`?D1(e.text):e.type===`image`||e.type===`document`?2e3:e.type===`tool_result`?k1(e.content):e.type===`tool_use`?D1(e.name+V(e.input??{})):e.type===`thinking`?D1(e.thinking):e.type===`redacted_thinking`?D1(e.data):D1(V(e))}async function dUt({model:e,messages:t,tools:n,betas:r,containsThinking:i}){try{let a=await ere(),o=kie(e)?e:await Sre(e);if(!o)return null;let s={anthropic_version:`bedrock-2023-05-31`,messages:t.length>0?t:[{role:`user`,content:`foo`}],max_tokens:i?j1:1,...n.length>0&&{tools:n},...r.length>0&&{anthropic_beta:r},...i&&{thinking:{type:`enabled`,budget_tokens:A1}}},{CountTokensCommand:c}=await import(`./dist-es-DN7otr6F.js`),l={modelId:o,input:{invokeModel:{body:new TextEncoder().encode(V(s))}}};return(await a.send(new c(l))).inputTokens??null}catch(e){return q(e),null}}var A1,j1,M1=n((()=>{Pn(),Ln(),zr(),y(),Ao(),i3(),Mr(),hr(),Va(),x1(),p9(),Yr(),wx(),tn(),tUt(),A1=1024,j1=2048}));async function fUt(e){try{let t=(await za().stat(e)).size;if(t===0)return{success:!1,error:{reason:`empty`,message:`PDF file is empty: ${e}`}};if(t>20971520)return{success:!1,error:{reason:`too_large`,message:`PDF file exceeds maximum allowed size of ${Os(vh)}.`}};let n=await hd(e);return n.subarray(0,5).toString(`ascii`).startsWith(`%PDF-`)?{success:!0,data:{type:`pdf`,file:{filePath:e,base64:n.toString(`base64`),originalSize:t}}}:{success:!1,error:{reason:`corrupted`,message:`File is not a valid PDF (missing %PDF- header): ${e}`}}}catch(e){return{success:!1,error:{reason:`unknown`,message:H(e)}}}}async function pUt(e){let{code:t,stdout:n}=await ts(`pdfinfo`,[e],{timeout:1e4,useCwd:!1});if(t!==0)return null;let r=/^Pages:\s+(\d+)/m.exec(n);if(!r)return null;let i=parseInt(r[1],10);return isNaN(i)?null:i}async function mUt(){if(N1!==void 0)return N1;let{code:e,stderr:t}=await ts(`pdftoppm`,[`-v`],{timeout:5e3,useCwd:!1});return N1=e===0||t.length>0,N1}async function hUt(e,t){try{let n=(await za().stat(e)).size;if(n===0)return{success:!1,error:{reason:`empty`,message:`PDF file is empty: ${e}`}};if(n>104857600)return{success:!1,error:{reason:`too_large`,message:`PDF file exceeds maximum allowed size for text extraction (${Os(Jye)}).`}};if(!await mUt())return{success:!1,error:{reason:`unavailable`,message:"pdftoppm is not installed. Install poppler-utils (e.g. `brew install poppler` or `apt-get install poppler-utils`) to enable PDF page rendering."}};let r=od(),i=Y(wE(),`pdf-${r}`);await pd(i,{recursive:!0});let a=Y(i,`page`),o=[`-jpeg`,`-r`,`100`];t?.firstPage&&o.push(`-f`,String(t.firstPage)),t?.lastPage&&t.lastPage!==1/0&&o.push(`-l`,String(t.lastPage)),o.push(e,a);let{code:s,stderr:c}=await ts(`pdftoppm`,o,{timeout:12e4,useCwd:!1});if(s!==0)return/password/i.test(c)?{success:!1,error:{reason:`password_protected`,message:`PDF is password-protected. Please provide an unprotected version.`}}:/damaged|corrupt|invalid/i.test(c)?{success:!1,error:{reason:`corrupted`,message:`PDF file is corrupted or invalid.`}}:{success:!1,error:{reason:`unknown`,message:`pdftoppm failed: ${c}`}};let l=(await gd(i)).filter(e=>e.endsWith(`.jpg`)).sort();return l.length===0?{success:!1,error:{reason:`corrupted`,message:`pdftoppm produced no output pages. The PDF may be invalid.`}}:{success:!0,data:{type:`parts`,file:{filePath:e,originalSize:n,outputDir:i,count:l.length}}}}catch(e){return{success:!1,error:{reason:`unknown`,message:H(e)}}}}var N1,gUt=n((()=>{yh(),ka(),es(),Ns(),Fa(),IE()}));function _Ut(){let e=process.env.CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS;if(e){let t=parseInt(e,10);if(!isNaN(t)&&t>0)return t}}var P1,vUt=n((()=>{l(),wr(),pi(),P1=c(()=>{let e=Jr(`tengu_amber_wren`,{});return{maxSizeBytes:typeof e?.maxSizeBytes==`number`&&Number.isFinite(e.maxSizeBytes)&&e.maxSizeBytes>0?e.maxSizeBytes:Aie,maxTokens:_Ut()??(typeof e?.maxTokens==`number`&&Number.isFinite(e.maxTokens)&&e.maxTokens>0?e.maxTokens:25e3),includeMaxSizeInPrompt:typeof e?.includeMaxSizeInPrompt==`boolean`?e.includeMaxSizeInPrompt:void 0,targetedRangeNudge:typeof e?.targetedRangeNudge==`boolean`?e.targetedRangeNudge:void 0}})}));function F1(e){let t=`${P5()}/`;if(e.startsWith(t)&&e.endsWith(`.output`)){let n=e.slice(t.length,-7);if(n.length>0&&n.length<=20&&/^[a-zA-Z0-9_-]+$/.test(n))return n}return null}function yUt({file_path:e,offset:t,limit:n,pages:r},{verbose:i}){if(!e)return null;if(F1(e))return``;let a=i?e:Wr(e);if(r)return(0,I1.jsxs)(I1.Fragment,{children:[(0,I1.jsx)(Tz,{filePath:e,children:a}),` · pages ${r}`]});if(i&&(t||n)){let r=t??1,i=n?`lines ${r}-${r+n-1}`:`from line ${r}`;return(0,I1.jsxs)(I1.Fragment,{children:[(0,I1.jsx)(Tz,{filePath:e,children:a}),` · ${i}`]})}return(0,I1.jsx)(Tz,{filePath:e,children:a})}function bUt({file_path:e}){let t=e?F1(e):null;return t?(0,I1.jsxs)(z,{dimColor:!0,children:[` `,t]}):null}function xUt(e){switch(e.type){case`image`:{let{originalSize:t}=e.file;return(0,I1.jsx)(Q,{height:1,children:(0,I1.jsxs)(z,{children:[`Read image (`,Os(t),`)`]})})}case`notebook`:{let{cells:t}=e.file;return!t||t.length<1?(0,I1.jsx)(z,{color:`error`,children:`No cells found in notebook`}):(0,I1.jsx)(Q,{height:1,children:(0,I1.jsxs)(z,{children:[`Read `,(0,I1.jsx)(z,{bold:!0,children:t.length}),` cells`]})})}case`pdf`:{let{originalSize:t}=e.file;return(0,I1.jsx)(Q,{height:1,children:(0,I1.jsxs)(z,{children:[`Read PDF (`,Os(t),`)`]})})}case`parts`:return(0,I1.jsx)(Q,{height:1,children:(0,I1.jsxs)(z,{children:[`Read `,(0,I1.jsx)(z,{bold:!0,children:e.file.count}),` `,e.file.count===1?`page`:`pages`,` (`,Os(e.file.originalSize),`)`]})});case`text`:{let{numLines:t}=e.file;return(0,I1.jsx)(Q,{height:1,children:(0,I1.jsxs)(z,{children:[`Read `,(0,I1.jsx)(z,{bold:!0,children:t}),` `,t===1?`line`:`lines`]})})}case`file_unchanged`:return(0,I1.jsx)(Q,{height:1,children:(0,I1.jsx)(z,{dimColor:!0,children:`Unchanged since last read`})})}}function SUt(e,{verbose:t}){if(!t&&typeof e==`string`){if(e.includes(`Note: your current working directory is`))return(0,I1.jsx)(Q,{children:(0,I1.jsx)(z,{color:`error`,children:`File not found`})});if(p4(e,`tool_use_error`))return(0,I1.jsx)(Q,{children:(0,I1.jsx)(z,{color:`error`,children:`Error reading file`})})}return(0,I1.jsx)(HR,{result:e,verbose:t})}function CUt(e){return e?.file_path?.startsWith(gN())?`Reading Plan`:e?.file_path&&F1(e.file_path)?`Read agent output`:`Read`}function wUt(e){return e?.file_path?F1(e.file_path)||Wr(e.file_path):null}var I1,TUt=n((()=>{R(),i3(),WR(),OT(),Tt(),Ez(),pi(),Ns(),_N(),e7(),I1=jt()}));function EUt(e){return!!(LUt.has(e)||e.startsWith(`/proc/`)&&(e.endsWith(`/fd/0`)||e.endsWith(`/fd/1`)||e.endsWith(`/fd/2`)))}function DUt(e){let t=wu.basename(e).match(/^(.+)([ \u202F])(AM|PM)(\.png)$/);if(!t)return;let n=t[2],r=n===` `?RUt:` `;return e.replace(`${n}${t[3]}${t[4]}`,`${r}${t[3]}${t[4]}`)}function OUt(e){return R1.push(e),()=>{let t=R1.indexOf(e);t>=0&&R1.splice(t,1)}}function kUt(e){let t=_();if(!e.startsWith(t))return null;let n=e.split(Fu.sep).join(ju.sep);return n.includes(`/session-memory/`)&&n.endsWith(`.md`)?`session_memory`:n.includes(`/projects/`)&&n.endsWith(`.jsonl`)?`session_transcript`:null}function AUt(){return hle}function jUt(e){return vre(e)}function MUt(){let e=ni(An());return!HUt.has(e)}function NUt(e){let t=H1.get(e);return t===void 0?``:Qye(t)}async function PUt(e,t,n){let r=n??P1().maxTokens,i=Buffer.byteLength(e);if(i>r*4)throw new z1(Math.ceil(i/4),r);let a=oUt(e,t);if(!a||a<=r/4)return;let o=await iUt(e)??a;if(o>r)throw new z1(o,r)}function L1(e,t,n,r){return{type:`image`,file:{base64:e.toString(`base64`),type:`image/${t}`,originalSize:n,dimensions:r}}}async function FUt(e,t,n,r,i,a,o,s,c,l,u,d){if(r===`ipynb`){let o=await LSt(n),d=V(o),f=Buffer.byteLength(d);if(f>s)throw Error(`Notebook content (${Os(f)}) exceeds maximum allowed size (${Os(s)}). Use ${ec} with jq to read specific portions:\n cat "${e}" | jq '.cells[:20]' # First 20 cells\n cat "${e}" | jq '.cells[100:120]' # Cells 100-120\n cat "${e}" | jq '.cells | length' # Count total cells\n cat "${e}" | jq '.cells[] | select(.cell_type=="code") | .source' # All code sources`);await PUt(d,r,c);let p=await za().stat(n);l.set(t,{content:d,timestamp:Math.floor(p.mtimeMs),offset:i,limit:a}),u.nestedMemoryAttachmentTriggers?.add(t);let m={type:`notebook`,file:{filePath:e,cells:o}};return vG({operation:`read`,tool:`FileReadTool`,filePath:t,content:d}),{data:m}}if(B1.has(r)){let e=await IUt(n,c);u.nestedMemoryAttachmentTriggers?.add(t),vG({operation:`read`,tool:`FileReadTool`,filePath:t,content:e.file.base64});let r=e.file.dimensions?FCe(e.file.dimensions):null;return{data:e,...r&&{newMessages:[d4({content:r,isMeta:!0})]}}}if($c(r)){if(o){let e=await hUt(n,Gce(o)??void 0);if(!e.success)throw Error(e.error.message);G(`tengu_pdf_page_extraction`,{success:!0,pageCount:e.data.file.count,fileSize:e.data.file.originalSize,hasPageRange:!0}),vG({operation:`read`,tool:`FileReadTool`,filePath:t,content:`PDF pages ${o}`});let r=(await gd(e.data.file.outputDir)).filter(e=>e.endsWith(`.jpg`)).sort(),i=await Promise.all(r.map(async t=>{let n=await hd(wu.join(e.data.file.outputDir,t)),r=await j_(n,n.length,`jpeg`);return{type:`image`,source:{type:`base64`,media_type:`image/${r.mediaType}`,data:r.buffer.toString(`base64`)}}}));return{data:e.data,...i.length>0&&{newMessages:[d4({content:i,isMeta:!0})]}}}let e=await pUt(n);if(e!==null&&e>10)throw Error(`This PDF has ${e} pages, which is too many to read at once. Use the pages parameter to read specific page ranges (e.g., pages: "1-5"). Maximum 20 pages per request.`);let r=await za().stat(n);if(!sle()||r.size>3145728){let e=await hUt(n);e.success?G(`tengu_pdf_page_extraction`,{success:!0,pageCount:e.data.file.count,fileSize:e.data.file.originalSize}):G(`tengu_pdf_page_extraction`,{success:!1,available:e.error.reason!==`unavailable`,fileSize:r.size})}if(!sle())throw Error('Reading full PDFs is not supported with this model. Use a newer model (Sonnet 3.5 v2 or later), or use the pages parameter to read specific page ranges (e.g., pages: "1-5", maximum 20 pages per request). Page extraction requires poppler-utils: install with `brew install poppler` on macOS or `apt-get install poppler-utils` on Debian/Ubuntu.');let i=await fUt(n);if(!i.success)throw Error(i.error.message);let a=i.data;return vG({operation:`read`,tool:`FileReadTool`,filePath:t,content:a.file.base64}),{data:a,newMessages:[d4({content:[{type:`document`,source:{type:`base64`,media_type:`application/pdf`,data:a.file.base64}}],isMeta:!0})]}}let{content:f,lineCount:p,totalLines:m,totalBytes:h,readBytes:g,mtimeMs:_}=await PQ(n,i===0?0:i-1,a,a===void 0?s:void 0,u.abortController.signal);await PUt(f,r,c),l.set(t,{content:f,timestamp:Math.floor(_),offset:i,limit:a}),u.nestedMemoryAttachmentTriggers?.add(t);for(let e of R1.slice())e(n,f);let v={type:`text`,file:{filePath:e,content:f,numLines:p,startLine:i,totalLines:m}};$X(t)&&H1.set(v,_),vG({operation:`read`,tool:`FileReadTool`,filePath:t,content:f});let y=kUt(t),b=Zn(t);return G(`tengu_session_file_read`,{totalLines:m,readLines:p,totalBytes:h,readBytes:g,offset:i,...a!==void 0&&{limit:a},...b!==void 0&&{ext:b},...d!==void 0&&{messageID:d},is_session_memory:y===`session_memory`,is_session_transcript:y===`session_transcript`}),{data:v}}async function IUt(e,t=P1().maxTokens,n){let i=await za().readFileBytes(e,n),a=i.length;if(a===0)throw Error(`Image file is empty: ${e}`);let o=N_(i),s=o.split(`/`)[1]||`png`,c;try{let e=await j_(i,a,s);c=L1(e.buffer,e.mediaType,a,e.dimensions)}catch(e){if(e instanceof L_)throw e;q(e),c=L1(i,s,a)}if(Math.ceil(c.file.base64.length*.125)>t)try{let e=await OCe(i,t,o);return{type:`image`,file:{base64:e.base64,type:e.mediaType,originalSize:a}}}catch(e){q(e);try{let e=await import(`./lib-Ca3QWJjN.js`).then(e=>r(e.default,1));return L1(await(e.default||e)(i).resize(400,400,{fit:`inside`,withoutEnlargement:!0}).jpeg({quality:20}).toBuffer(),`jpeg`,a)}catch(e){return q(e),L1(i,s,a)}}return c}var LUt,RUt,R1,z1,B1,zUt,BUt,V1,VUt,HUt,H1,U1=n((()=>{it(),yh(),hse(),$ye(),wr(),Ua(),qn(),M1(),sG(),Sc(),Wa(),y(),ka(),pi(),yG(),Ns(),Fa(),R_(),Fs(),Ao(),nZ(),i3(),hr(),YK(),Jo(),gUt(),Hce(),N5(),Ky(),LQ(),sU(),Va(),ic(),vUt(),tl(),TUt(),LUt=new Set([`/dev/zero`,`/dev/random`,`/dev/urandom`,`/dev/full`,`/dev/stdin`,`/dev/tty`,`/dev/console`,`/dev/stdout`,`/dev/stderr`,`/dev/fd/0`,`/dev/fd/1`,`/dev/fd/2`]),RUt=` `,R1=[],z1=class extends Error{constructor(e,t){super(`File content (${e} tokens) exceeds maximum allowed tokens (${t}). Use offset and limit parameters to read specific portions of the file, or search for specific content instead of reading the whole file.`),this.tokenCount=e,this.maxTokens=t,this.name=`MaxFileReadTokenExceededError`}},B1=new Set([`png`,`jpg`,`jpeg`,`gif`,`webp`]),zUt=J(()=>Pe({file_path:F().describe(`The absolute path to the file to read`),offset:oU(P().int().nonnegative().optional()).describe(`The line number to start reading from. Only provide if the file is too large to read at once`),limit:oU(P().int().positive().optional()).describe(`The number of lines to read. Only provide if the file is too large to read at once.`),pages:F().optional().describe(`Page range for PDF files (e.g., "1-5", "3", "10-20"). Only applicable to PDF files. Maximum 20 pages per request.`)})),BUt=J(()=>{let e=Ge([`image/jpeg`,`image/png`,`image/gif`,`image/webp`]);return qe(`type`,[L({type:I(`text`),file:L({filePath:F().describe(`The path to the file that was read`),content:F().describe(`The content of the file`),numLines:P().describe(`Number of lines in the returned content`),startLine:P().describe(`The starting line number`),totalLines:P().describe(`Total number of lines in the file`)})}),L({type:I(`image`),file:L({base64:F().describe(`Base64-encoded image data`),type:e.describe(`The MIME type of the image`),originalSize:P().describe(`Original file size in bytes`),dimensions:L({originalWidth:P().optional().describe(`Original image width in pixels`),originalHeight:P().optional().describe(`Original image height in pixels`),displayWidth:P().optional().describe(`Displayed image width in pixels (after resizing)`),displayHeight:P().optional().describe(`Displayed image height in pixels (after resizing)`)}).optional().describe(`Image dimension info for coordinate mapping`)})}),L({type:I(`notebook`),file:L({filePath:F().describe(`The path to the notebook file`),cells:Re(Ke()).describe(`Array of notebook cells`)})}),L({type:I(`pdf`),file:L({filePath:F().describe(`The path to the PDF file`),base64:F().describe(`Base64-encoded PDF data`),originalSize:P().describe(`Original file size in bytes`)})}),L({type:I(`parts`),file:L({filePath:F().describe(`The path to the PDF file`),originalSize:P().describe(`Original file size in bytes`),count:P().describe(`Number of pages extracted`),outputDir:F().describe(`Directory containing extracted page images`)})}),L({type:I(`file_unchanged`),file:L({filePath:F().describe(`The path to the file`)})})])}),V1=sc({name:Mc,searchHint:`read files, images, PDFs, notebooks`,maxResultSizeChars:1e5,strict:!0,async description(){return Rle},async prompt(){let e=P1(),t=e.includeMaxSizeInPrompt?`. Files larger than ${Os(e.maxSizeBytes)} will return an error; use offset and limit for larger files`:``,n=e.targetedRangeNudge?yle:eue;return ale(AUt(),t,n)},get inputSchema(){return zUt()},get outputSchema(){return BUt()},userFacingName:CUt,getToolUseSummary:wUt,getActivityDescription(e){let t=wUt(e);return t?`Reading ${t}`:`Reading file`},isConcurrencySafe(){return!0},isReadOnly(){return!0},toAutoClassifierInput(e){return e.file_path},isSearchOrReadCommand(){return{isSearch:!1,isRead:!0}},getPath({file_path:e}){return e||Ga()},backfillObservableInput(e){typeof e.file_path==`string`&&(e.file_path=Yo(e.file_path))},async preparePermissionMatcher({file_path:e}){return t=>Hy(t,e)},async checkPermissions(e,t){return O5(V1,e,t.getAppState().toolPermissionContext)},renderToolUseMessage:yUt,renderToolUseTag:bUt,renderToolResultMessage:xUt,extractSearchText(){return``},renderToolUseErrorMessage:SUt,async validateInput({file_path:e,pages:t},n){if(t!==void 0){let e=Gce(t);if(!e)return{result:!1,message:`Invalid pages parameter: "${t}". Use formats like "1-5", "3", or "10-20". Pages are 1-indexed.`,errorCode:7};if((e.lastPage===1/0?21:e.lastPage-e.firstPage+1)>20)return{result:!1,message:`Page range "${t}" exceeds maximum of 20 pages per request. Please use a smaller range.`,errorCode:8}}let r=Yo(e);if(D5(r,n.getAppState().toolPermissionContext,`read`,`deny`)!==null)return{result:!1,message:`File is in a directory that is denied by your permission settings.`,errorCode:1};if(r.startsWith(`\\\\`)||r.startsWith(`//`))return{result:!0};let i=wu.extname(r).toLowerCase();return mse(r)&&!$c(i)&&!B1.has(i.slice(1))?{result:!1,message:`This tool cannot read binary files. The file appears to be a binary ${i} file. Please use appropriate tools for binary file analysis.`,errorCode:4}:EUt(r)?{result:!1,message:`Cannot read '${e}': this device file would block or produce infinite output.`,errorCode:9}:{result:!0}},async call({file_path:e,offset:t=1,limit:n=void 0,pages:r},i,a,o){let{readFileState:s,fileReadingLimits:c}=i,l=P1(),u=c?.maxSizeBytes??l.maxSizeBytes,d=c?.maxTokens??l.maxTokens;c!==void 0&&G(`tengu_file_read_limits_override`,{hasMaxTokens:c.maxTokens!==void 0,hasMaxSizeBytes:c.maxSizeBytes!==void 0});let f=wu.extname(e).toLowerCase().slice(1),p=Yo(e),m=Jr(`tengu_read_dedup_killswitch`,!1)?void 0:s.get(p);if(m&&!m.isPartialView&&m.offset!==void 0&&m.offset===t&&m.limit===n)try{if(await Gne(p)===m.timestamp){let t=Zn(p);return G(`tengu_file_read_dedup`,{...t!==void 0&&{ext:t}}),{data:{type:`file_unchanged`,file:{filePath:e}}}}}catch{}let h=Ga();if(!x(process.env.CLAUDE_CODE_SIMPLE)){let e=await QW([p],h);if(e.length>0){for(let t of e)i.dynamicSkillDirTriggers?.add(t);$W(e).catch(()=>{})}eG([p],h)}try{return await FUt(e,p,p,f,t,n,r,u,d,s,i,o?.message.id)}catch(a){if(Ea(a)===`ENOENT`){let a=DUt(p);if(a)try{return await FUt(e,p,a,f,t,n,r,u,d,s,i,o?.message.id)}catch(e){if(!Oa(e))throw e}let c=Vie(p),l=await oa(p),m=`File does not exist. ${Nr} ${Ga()}.`;throw l?m+=` Did you mean ${l}?`:c&&(m+=` Did you mean ${c}?`),Error(m)}throw a}},mapToolResultToToolResultBlockParam(e,t){switch(e.type){case`image`:return{tool_use_id:t,type:`tool_result`,content:[{type:`image`,source:{type:`base64`,data:e.file.base64,media_type:e.file.type}}]};case`notebook`:return RSt(e.file.cells,t);case`pdf`:return{tool_use_id:t,type:`tool_result`,content:`PDF file read: ${e.file.filePath} (${Os(e.file.originalSize)})`};case`parts`:return{tool_use_id:t,type:`tool_result`,content:`PDF pages extracted: ${e.file.count} page(s) from ${e.file.filePath} (${Os(e.file.originalSize)})`};case`file_unchanged`:return{tool_use_id:t,type:`tool_result`,content:Ole};case`text`:{let n;return n=e.file.content?NUt(e)+jUt(e.file)+(MUt()?VUt:``):e.file.totalLines===0?`<system-reminder>Warning: the file exists but the contents are empty.</system-reminder>`:`<system-reminder>Warning: the file exists but is shorter than the provided offset (${e.file.startLine}). The file has ${e.file.totalLines} lines.</system-reminder>`,{tool_use_id:t,type:`tool_result`,content:n}}}}}),VUt=`
|
|
2962
|
+
`).find(e=>e.trim().length>0)??``;return n.length>40?n.slice(0,40)+`…`:n}async function yHt(e){let t=await e_(),n=[...e.filter(e=>e.length>0&&e!==`__SYSTEM_PROMPT_DYNAMIC_BOUNDARY__`).map(e=>({name:vHt(e),content:e})),...Object.entries(t).filter(([,e])=>e.length>0).map(([e,t])=>({name:e,content:t}))];if(n.length<1)return{systemPromptTokens:0,systemPromptSections:[]};let r=await Promise.all(n.map(({content:e})=>i1([{role:`user`,content:e}],[]))),i=n.map((e,t)=>({name:e.name,tokens:r[t]||0}));return{systemPromptTokens:r.reduce((e,t)=>e+(t||0),0),systemPromptSections:i}}async function bHt(){if(x(process.env.CLAUDE_CODE_SIMPLE))return{memoryFileDetails:[],claudeMdTokens:0};let e=gSe(await Jg()),t=[],n=0;if(e.length<1)return{memoryFileDetails:[],claudeMdTokens:0};let r=await Promise.all(e.map(async e=>({file:e,tokens:await i1([{role:`user`,content:e.content}],[])||0})));for(let{file:e,tokens:i}of r)n+=i,t.push({path:e.path,type:e.type,tokens:i});return{claudeMdTokens:n,memoryFileDetails:t}}async function xHt(e,t,n,r,i){let a=e.filter(e=>!e.isMcp);if(a.length<1)return{builtInToolTokens:0,deferredBuiltinDetails:[],deferredBuiltinTokens:0,systemToolDetails:[]};let{isSearchExtraToolsEnabled:o}=await import(`./searchExtraTools-Denn1c1E.js`),{isDeferredTool:s}=await import(`./prompt-DaIJzI1P.js`),c=await o(r??``,e,t,n?.activeAgents??[],`analyzeBuiltIn`),l=a.filter(e=>!s(e)),u=a.filter(e=>s(e)),d=l.length>0?await a1(l,t,n,r):0,f=[];if(process.env.USER_TYPE===`ant`){let e=l.filter(e=>!nc(e,Lc));if(e.length>0){let t=e.map(e=>D1(V(e.inputSchema??{}))),n=t.reduce((e,t)=>e+t,0)||1,r=Math.max(0,d-500);f=e.map((e,i)=>({name:e.name,tokens:Math.round(t[i]/n*r)})).sort((e,t)=>t.tokens-e.tokens)}}let p=[],m=0,h=0;if(u.length>0&&c){let e=new Set;if(i){let t=new Set(u.map(e=>e.name));for(let n of i)if(n.type===`assistant`&&Array.isArray(n.message.content))for(let r of n.message.content)typeof r!=`string`&&`type`in r&&r.type===`tool_use`&&`name`in r&&typeof r.name==`string`&&t.has(r.name)&&e.add(r.name)}let a=await Promise.all(u.map(e=>a1([e],t,n,r)));for(let[t,n]of u.entries()){let r=Math.max(0,(a[t]||0)-500),i=e.has(n.name);p.push({name:n.name,tokens:r,isLoaded:i}),h+=r,i&&(m+=r)}}else if(u.length>0)return{builtInToolTokens:d+await a1(u,t,n,r),deferredBuiltinDetails:[],deferredBuiltinTokens:0,systemToolDetails:f};return{builtInToolTokens:d+m,deferredBuiltinDetails:p,deferredBuiltinTokens:h-m,systemToolDetails:f}}function SHt(e){return rl(e,Lc)}async function CHt(e,t,n){let r=await Wye(Ga()),i=SHt(e);return i?{slashCommandTokens:await a1([i],t,n),commandInfo:{totalCommands:r.totalCommands,includedCommands:r.includedCommands}}:{slashCommandTokens:0,commandInfo:{totalCommands:0,includedCommands:0}}}async function wHt(e,t,n){try{let r=await Gye(Ga()),i=SHt(e);if(!i)return{skillTokens:0,skillInfo:{totalSkills:0,includedSkills:0,skillFrontmatter:[]}};let a=await a1([i],t,n),o=r.map(e=>({name:x6(e),source:e.type===`prompt`?e.source:`plugin`,tokens:gyt(e)}));return{skillTokens:a,skillInfo:{totalSkills:r.length,includedSkills:r.length,skillFrontmatter:o}}}catch(e){return q(xa(e)),{skillTokens:0,skillInfo:{totalSkills:0,includedSkills:0,skillFrontmatter:[]}}}}async function THt(e,t,n,r,i){let a=e.filter(e=>e.isMcp),o=[],s=await a1(a,t,n,r),c=Math.max(0,(s||0)-500),l=await Promise.all(a.map(async r=>D1(V({name:r.name,description:await r.prompt({getToolPermissionContext:t,tools:e,agents:n?.activeAgents??[]}),input_schema:r.inputJSONSchema??{}})))),u=l.reduce((e,t)=>e+t,0)||1,d=l.map(e=>Math.round(e/u*c)),{isSearchExtraToolsEnabled:f}=await import(`./searchExtraTools-Denn1c1E.js`),{isDeferredTool:p}=await import(`./prompt-DaIJzI1P.js`),m=await f(r,e,t,n?.activeAgents??[],`analyzeMcp`),h=new Set;if(m&&i){let e=new Set(a.map(e=>e.name));for(let t of i)if(t.type===`assistant`&&Array.isArray(t.message.content))for(let n of t.message.content)typeof n!=`string`&&`type`in n&&n.type===`tool_use`&&`name`in n&&typeof n.name==`string`&&e.has(n.name)&&h.add(n.name)}for(let[e,t]of a.entries())o.push({name:t.name,serverName:t.name.split(`__`)[1]||`unknown`,tokens:d[e],isLoaded:h.has(t.name)||!p(t)});let g=0,_=0;for(let e of o)e.isLoaded?g+=e.tokens:m&&(_+=e.tokens);return{mcpToolTokens:m?g:c,mcpToolDetails:o,deferredToolTokens:_,loadedMcpToolNames:h}}async function EHt(e){let t=e.activeAgents.filter(e=>e.source!==`built-in`),n=[],r=0,i=await Promise.all(t.map(e=>i1([{role:`user`,content:[e.agentType,e.whenToUse].join(` `)}],[])));for(let[e,a]of t.entries()){let t=i[e]||0;r+=t||0,n.push({agentType:a.agentType,source:a.source,tokens:t||0})}return{agentTokens:r,agentDetails:n}}function DHt(e,t){let n=Array.isArray(e.message.content)?e.message.content:[];for(let e of n){let n=D1(V(e));if(typeof e!=`string`&&`type`in e&&e.type===`tool_use`){t.toolCallTokens+=n;let r=(`name`in e?e.name:void 0)||`unknown`;t.toolCallsByType.set(r,(t.toolCallsByType.get(r)||0)+n)}else t.assistantMessageTokens+=n}}function OHt(e,t,n){if(typeof e.message.content==`string`){let n=D1(e.message.content);t.userMessageTokens+=n;return}for(let r of e.message.content??[]){let e=D1(V(r));if(`type`in r&&r.type===`tool_result`){let i=`tool_use_id`in r?r.tool_use_id:void 0,a=(i?n.get(i):void 0)||`unknown`;t.toolResultsByType.set(a,(t.toolResultsByType.get(a)||0)+e)}else t.userMessageTokens+=e}}function kHt(e,t){let n=D1(V(e.attachment));t.attachmentTokens+=n;let r=e.attachment.type||`unknown`;t.attachmentsByType.set(r,(t.attachmentsByType.get(r)||0)+n)}async function AHt(e){let t=await qh(e),n={totalTokens:0,toolCallTokens:0,toolResultTokens:0,attachmentTokens:0,assistantMessageTokens:0,userMessageTokens:0,toolCallsByType:new Map,toolResultsByType:new Map,attachmentsByType:new Map},r=new Map;for(let e of t.messages)if(e.type===`assistant`&&Array.isArray(e.message.content)){for(let t of e.message.content)if(typeof t!=`string`&&`type`in t&&t.type===`tool_use`){let e=`id`in t?t.id:void 0,n=(`name`in t?t.name:void 0)||`unknown`;e&&r.set(e,n)}}for(let e of t.messages)e.type===`assistant`?DHt(e,n):e.type===`user`?OHt(e,n,r):e.type===`attachment`&&kHt(e,n);return n.totalTokens=await i1(b4(t.messages).map(e=>e.type===`assistant`?{role:`assistant`,content:e.message.content}:e.message),[])??0,n}async function jHt(t,n,r,i,a,o,s,c,l){let u=Oi({permissionMode:(await r()).mode,mainLoopModel:n}),d=Ki(u,gn()),f=await Q7(i,u),p=sX({mainThreadAgentDefinition:c,toolUseContext:s??{options:{}},customSystemPrompt:s?.options.customSystemPrompt,defaultSystemPrompt:f,appendSystemPrompt:s?.options.appendSystemPrompt}),[{systemPromptTokens:m,systemPromptSections:h},{claudeMdTokens:g,memoryFileDetails:_},{builtInToolTokens:v,deferredBuiltinDetails:y,deferredBuiltinTokens:b,systemToolDetails:x},{mcpToolTokens:S,mcpToolDetails:C,deferredToolTokens:w},{agentTokens:T,agentDetails:E},{slashCommandTokens:D,commandInfo:ee},O]=await Promise.all([yHt(p),bHt(),xHt(i,r,a,u,t),THt(i,r,a,u,t),EHt(a),CHt(i,r,a),AHt(t)]),k=(await wHt(i,r,a)).skillInfo,te=k.skillFrontmatter.reduce((e,t)=>e+t.tokens,0),ne=O.totalTokens,re=Q$(),ie=re?Y$(n)-e1:void 0,ae=[];m>0&&ae.push({name:`System prompt`,tokens:m,color:`promptBorder`});let oe=v-te;oe>0&&ae.push({name:process.env.USER_TYPE===`ant`?`[ANT-ONLY] System tools`:`System tools`,tokens:oe,color:`inactive`}),S>0&&ae.push({name:`MCP tools`,tokens:S,color:`cyan_FOR_SUBAGENTS_ONLY`}),w>0&&ae.push({name:`MCP tools (deferred)`,tokens:w,color:`inactive`,isDeferred:!0}),b>0&&ae.push({name:`System tools (deferred)`,tokens:b,color:`inactive`,isDeferred:!0}),T>0&&ae.push({name:`Custom agents`,tokens:T,color:`permission`}),g>0&&ae.push({name:`Memory files`,tokens:g,color:`claude`}),te>0&&ae.push({name:`Skills`,tokens:te,color:`warning`}),ne!==null&&ne>0&&ae.push({name:`Messages`,tokens:ne,color:`purple_FOR_SUBAGENTS_ONLY`});let A=ae.reduce((e,t)=>e+(t.isDeferred?0:t.tokens),0),se=0;re&&ie!==void 0?(se=d-ie,ae.push({name:o1,tokens:se,color:`inactive`})):re||(se=t1,ae.push({name:s1,tokens:se,color:`inactive`}));let j=Math.max(0,d-A-se);ae.push({name:`Free space`,tokens:j,color:`promptBorder`});let ce=A,M=FSe(l??t),N=(M?M.input_tokens+M.cache_creation_input_tokens+M.cache_read_input_tokens:null)??ce,le=o&&o<80,ue=d>=1e6?le?5:20:le?5:10,de=d>=1e6?10:le?5:10,fe=ue*de,pe=ae.filter(e=>!e.isDeferred).map(e=>({...e,squares:e.name===`Free space`?Math.round(e.tokens/d*fe):Math.max(1,Math.round(e.tokens/d*fe)),percentageOfTotal:Math.round(e.tokens/d*100)}));function me(e){let t=[],n=e.tokens/d*fe,r=Math.floor(n),i=n-r;for(let n=0;n<e.squares;n++){let a=1;n===r&&i>0&&(a=i),t.push({color:e.color,isFilled:!0,categoryName:e.name,tokens:e.tokens,percentage:e.percentageOfTotal,squareFullness:a})}return t}let he=[],ge=pe.find(e=>e.name===o1||e.name===s1),_e=pe.filter(e=>e.name!==o1&&e.name!==s1&&e.name!==`Free space`);for(let e of _e){let t=me(e);for(let e of t)he.length<fe&&he.push(e)}let ve=ge?ge.squares:0,ye=ae.find(e=>e.name===`Free space`),be=fe-ve;for(;he.length<be;)he.push({color:`promptBorder`,isFilled:!0,categoryName:`Free space`,tokens:ye?.tokens||0,percentage:ye?Math.round(ye.tokens/d*100):0,squareFullness:1});if(ge){let e=me(ge);for(let t of e)he.length<fe&&he.push(t)}let xe=[];for(let e=0;e<de;e++)xe.push(he.slice(e*ue,(e+1)*ue));let Se=new Map;for(let[e,t]of O.toolCallsByType.entries()){let n=Se.get(e)||{callTokens:0,resultTokens:0};Se.set(e,{...n,callTokens:t})}for(let[e,t]of O.toolResultsByType.entries()){let n=Se.get(e)||{callTokens:0,resultTokens:0};Se.set(e,{...n,resultTokens:t})}let Ce=Array.from(Se.entries()).map(([e,{callTokens:t,resultTokens:n}])=>({name:e,callTokens:t,resultTokens:n})).sort((e,t)=>t.callTokens+t.resultTokens-(e.callTokens+e.resultTokens)),we=Array.from(O.attachmentsByType.entries()).map(([e,t])=>({name:e,tokens:t})).sort((e,t)=>t.tokens-e.tokens),Te={toolCallTokens:O.toolCallTokens,toolResultTokens:O.toolResultTokens,attachmentTokens:O.attachmentTokens,assistantMessageTokens:O.assistantMessageTokens,userMessageTokens:O.userMessageTokens,toolCallsByType:Ce,attachmentsByType:we};return{categories:ae,totalTokens:N,maxTokens:d,rawMaxTokens:d,percentage:Math.round(N/d*100),gridRows:xe,model:u,memoryFiles:_,mcpTools:C,deferredBuiltinTools:process.env.USER_TYPE===`ant`?y:void 0,systemTools:process.env.USER_TYPE===`ant`?x:void 0,systemPromptSections:process.env.USER_TYPE===`ant`?h:void 0,agents:E,slashCommands:D>0?{totalCommands:ee.totalCommands,includedCommands:ee.includedCommands,tokens:D}:void 0,skills:te>0?{totalSkills:k.totalSkills,includedSkills:k.includedSkills,tokens:te,skillFrontmatter:k.skillFrontmatter}:void 0,autoCompactThreshold:ie,isAutoCompactEnabled:re,messageBreakdown:Te,apiUsage:M,...(()=>{if(!M)return{};let{calculateCacheHitRate:t,getCacheThreshold:n}=(Gzt(),e(Lzt)),r=t(M);return r===null?{}:{cacheHitRate:r,cacheThreshold:n()}})()}}var o1,s1,MHt=n((()=>{r9(),Yh(),tn(),s8(),n_(),wr(),r1(),M1(),sG(),Sc(),uc(),hh(),i9(),Zg(),fi(),Wa(),W(),y(),ka(),Ao(),i3(),hr(),Va(),cX(),s_(),o1=`Autocompact buffer`,s1=`Compact buffer`}));function c1(e){let t=l1.get(e);if(t)return t;let n=Ie(e);return l1.set(e,n),n}var l1,u1=n((()=>{it(),l1=new WeakMap}));function NHt(e){if(!e.startsWith(`auto:`))return null;let t=e.slice(5),n=parseInt(t,10);return isNaN(n)?(U(`Invalid ENABLE_SEARCH_EXTRA_TOOLS value "${e}": expected auto:N where N is a number.`),null):Math.max(0,Math.min(100,n))}function PHt(e){return e?e===`auto`||e.startsWith(`auto:`):!1}function d1(){let e=process.env.ENABLE_SEARCH_EXTRA_TOOLS;if(!e||e===`auto`)return y1;let t=NHt(e);return t===null?y1:t}function FHt(e){let t=Ki(e,roe(e)),n=d1()/100;return Math.floor(t*n)}function IHt(e){return Math.floor(FHt(e)*WHt)}function f1(){if(x(process.env.CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS))return`standard`;let e=process.env.ENABLE_SEARCH_EXTRA_TOOLS,t=e?NHt(e):null;return t===0?`tst`:t===100?`standard`:PHt(e)?`tst-auto`:x(e)?`tst`:h(process.env.ENABLE_SEARCH_EXTRA_TOOLS)?`standard`:`tst`}function p1(){let e=f1();return e===`standard`?(b1||(b1=!0,U(`[SearchExtraTools:optimistic] mode=${e}, ENABLE_SEARCH_EXTRA_TOOLS=${process.env.ENABLE_SEARCH_EXTRA_TOOLS}, result=false`)),!1):(b1||(b1=!0,U(`[SearchExtraTools:optimistic] mode=${e}, ENABLE_SEARCH_EXTRA_TOOLS=${process.env.ENABLE_SEARCH_EXTRA_TOOLS}, result=true`)),!0)}function m1(e){return e.some(e=>nc(e,Dc))}async function LHt(e,t,n){let r=e.filter(e=>Pc(e));return r.length===0?0:(await Promise.all(r.map(async r=>{let i=await r.prompt({getToolPermissionContext:t,tools:e,agents:n}),a=r.inputJSONSchema?V(r.inputJSONSchema):r.inputSchema?V(c1(r.inputSchema)):``;return r.name.length+i.length+a.length}))).reduce((e,t)=>e+t,0)}async function h1(e,t,n,r,i){let a=fs(t,e=>e.isMcp);function o(t,n,r,i){G(`tengu_search_extra_tools_mode_decision`,{enabled:t,mode:n,reason:r,checkedModel:e,mcpToolCount:a,userType:process.env.USER_TYPE??`external`,...i})}if(!m1(t))return U(`Tool search disabled: SearchExtraToolsTool is not available (may have been disallowed via disallowedTools).`),o(!1,`standard`,`mcp_search_unavailable`),!1;let s=f1();switch(s){case`tst`:return o(!0,s,`tst_enabled`),!0;case`tst-auto`:{let{enabled:a,debugDescription:c,metrics:l}=await UHt(t,n,r,e);return a?(U(`Auto tool search enabled: ${c}`+(i?` [source: ${i}]`:``)),o(!0,s,`auto_above_threshold`,l),!0):(U(`Auto tool search disabled: ${c}`+(i?` [source: ${i}]`:``)),o(!1,s,`auto_below_threshold`,l),!1)}case`standard`:return o(!1,s,`standard_mode`),!1}}function g1(e){return typeof e==`object`&&!!e&&`type`in e&&e.type===`tool_reference`}function RHt(e){return g1(e)&&`tool_name`in e&&typeof e.tool_name==`string`}function zHt(e){return typeof e==`object`&&!!e&&`type`in e&&e.type===`tool_result`&&`content`in e&&Array.isArray(e.content)}function BHt(e){return typeof e==`object`&&!!e&&`type`in e&&e.type===`tool_result`&&`content`in e&&typeof e.content==`string`}function VHt(e){let t=KHt.exec(e);return t?.[1]?t[1].split(`,`).map(e=>e.trim()).filter(Boolean):[]}function _1(e){let t=new Set,n=0;for(let r of e){if(r.type===`system`&&r.subtype===`compact_boundary`){let e=r.compactMetadata?.preCompactDiscoveredTools;if(e){for(let n of e)t.add(n);n+=e.length}continue}if(r.type===`attachment`&&r.attachment?.type===`deferred_tools_delta`){let e=r.attachment.addedNames??[];for(let n of e)t.add(n);continue}if(r.type!==`user`)continue;let e=r.message?.content;if(Array.isArray(e))for(let n of e){if(zHt(n))for(let e of n.content)RHt(e)&&t.add(e.tool_name);if(BHt(n)){let e=VHt(n.content);for(let n of e)t.add(n)}}}return t.size>0&&U(`Dynamic tool loading: found ${t.size} discovered tools in message history`+(n>0?` (${n} carried from compact boundary)`:``)),t}function v1(){return process.env.USER_TYPE===`ant`||Jr(`tengu_glacier_2xr`,!1)}function HHt(e,t,n){let r=new Set,i=0,a=0,o=new Set;for(let e of t)if(e.type===`attachment`&&(i++,o.add(e.attachment.type),e.attachment.type===`deferred_tools_delta`)){a++;for(let t of e.attachment.addedNames)r.add(t);for(let t of e.attachment.removedNames)r.delete(t)}let s=e.filter(Pc),c=new Set(s.map(e=>e.name)),l=new Set(e.map(e=>e.name)),u=s.filter(e=>!r.has(e.name)),d=[];for(let e of r)c.has(e)||l.has(e)||d.push(e);return u.length===0&&d.length===0?null:(G(`tengu_deferred_tools_pool_change`,{addedCount:u.length,removedCount:d.length,priorAnnouncedCount:r.size,messagesLength:t.length,attachmentCount:i,dtdCount:a,callSite:n?.callSite??`unknown`,querySource:n?.querySource??`unknown`,attachmentTypesSeen:[...o].sort().join(`,`)}),{addedNames:u.map(e=>e.name).sort(),addedLines:u.map(qle).sort(),removedNames:d.sort()})}async function UHt(e,t,n,r){let i=await GHt(e,t,n,r);if(i!==null){let e=FHt(r);return{enabled:i>=e,debugDescription:`${i} tokens (threshold: ${e}, ${d1()}% of context)`,metrics:{deferredToolTokens:i,threshold:e}}}let a=await LHt(e,t,n),o=IHt(r);return{enabled:a>=o,debugDescription:`${a} chars (threshold: ${o}, ${d1()}% of context) (char fallback)`,metrics:{deferredToolDescriptionChars:a,charThreshold:o}}}var y1,WHt,GHt,b1,KHt,x1=n((()=>{l(),wr(),Ua(),Sc(),Gc(),MHt(),Ss(),zr(),fi(),W(),y(),Va(),u1(),y1=10,WHt=2.5,GHt=c(async(e,t,n,r)=>{let i=e.filter(e=>Pc(e));if(i.length===0)return 0;try{let e=await a1(i,t,{activeAgents:n,allAgents:n},r);return e===0?null:Math.max(0,e-500)}catch{return null}},e=>e.filter(e=>Pc(e)).map(e=>e.name).join(`,`)),b1=!1,KHt=/^Found \d+ deferred tool\(s\): (.+)\.$/m}));function S1(){return!!(process.env.USER_TYPE===`ant`&&x(process.env.FORCE_VCR))}async function qHt(e,t,n){if(!S1())return await n();let r=id(`sha1`).update(V(e)).digest(`hex`).slice(0,12),i=Y(process.env.CLAUDE_CODE_TEST_FIXTURES_ROOT??Ga(),`fixtures/${t}-${r}.json`);try{return Da(await hd(i,{encoding:`utf8`}))}catch(e){if(Ea(e)!==`ENOENT`)throw e}if((po.isCI||process.env.CI)&&!x(process.env.VCR_RECORD))throw Error(`Fixture missing: ${i}. Re-run tests with VCR_RECORD=1, then commit the result.`);let a=await n();return await pd(Eu(i),{recursive:!0}),await wd(i,V(a,null,2),{encoding:`utf8`}),a}async function C1(e,t){if(!S1())return await t();let n=YHt(b4(e.filter(e=>e.type===`user`?!e.isMeta:!0)).map(e=>e.message.content),T1),r=Y(process.env.CLAUDE_CODE_TEST_FIXTURES_ROOT??Ga(),`fixtures/${n.map(e=>id(`sha1`).update(V(e)).digest(`hex`).slice(0,6)).join(`-`)}.json`);try{let e=Da(await hd(r,{encoding:`utf8`}));return e.output.forEach(JHt),e.output.map((e,t)=>ZHt(e,QHt,t,od()))}catch(e){if(Ea(e)!==`ENOENT`)throw e}if(po.isCI&&!x(process.env.VCR_RECORD))throw Error(`Anthropic API fixture missing: ${r}. Re-run tests with VCR_RECORD=1, then commit the result. Input messages:\n${V(n,null,2)}`);let i=await t();return po.isCI&&!x(process.env.VCR_RECORD)?i:(await pd(Eu(r),{recursive:!0}),await wd(r,V({input:n,output:i.map((e,t)=>ZHt(e,T1,t))},null,2),{encoding:`utf8`}),i)}function JHt(e){if(e.type===`stream_event`)return;let t=e.message.model,n=e.message.usage;lG(Zr(t,n),n,t)}function YHt(e,t){return e.map(e=>typeof e==`string`?t(e):e.map(e=>{switch(e.type){case`tool_result`:return typeof e.content==`string`?{...e,content:t(e.content)}:Array.isArray(e.content)?{...e,content:e.content.map(e=>{switch(e.type){case`text`:return{...e,text:t(e.text)};case`image`:return e;default:return}})}:e;case`text`:return{...e,text:t(e.text)};case`tool_use`:return{...e,input:w1(e.input,t)};case`image`:return e;default:return}}))}function w1(e,t){return pr(e,(n,r)=>Array.isArray(n)?n.map(e=>w1(e,t)):wre(n)?w1(n,t):t(n,r,e))}function XHt(e,t,n,r){return{uuid:r??`UUID-${n}`,requestId:`REQUEST_ID`,timestamp:e.timestamp,message:{...e.message,content:e.message.content.map(e=>{switch(e.type){case`text`:return{...e,text:t(e.text),citations:e.citations||[]};case`tool_use`:return{...e,input:w1(e.input,t)};default:return e}}).filter(Boolean)},type:`assistant`}}function ZHt(e,t,n,r){return e.type===`assistant`?XHt(e,t,n,r):e}function T1(e){if(typeof e!=`string`)return e;let t=Ga(),n=_(),r=e.replace(/num_files="\d+"/g,`num_files="[NUM]"`).replace(/duration_ms="\d+"/g,`duration_ms="[DURATION]"`).replace(/cost_usd="\d+"/g,`cost_usd="[COST]"`).replaceAll(n,`[CONFIG_HOME]`).replaceAll(t,`[CWD]`).replace(/Available commands:.+/,`Available commands: [COMMANDS]`);if(process.platform===`win32`){let e=t.replaceAll(`\\`,`/`),i=n.replaceAll(`\\`,`/`),a=V(t).slice(1,-1),o=V(n).slice(1,-1);r=r.replaceAll(a,`[CWD]`).replaceAll(o,`[CONFIG_HOME]`).replaceAll(e,`[CWD]`).replaceAll(i,`[CONFIG_HOME]`)}return r=r.replace(/\[CWD\][^\s"'<>]*/g,e=>e.replaceAll(`\\\\`,`/`).replaceAll(`\\`,`/`)).replace(/\[CONFIG_HOME\][^\s"'<>]*/g,e=>e.replaceAll(`\\\\`,`/`).replaceAll(`\\`,`/`)),r.includes(`Files modified by user:`)?`Files modified by user: [FILES]`:r}function QHt(e){return typeof e==`string`?e.replaceAll(`[NUM]`,`1`).replaceAll(`[DURATION]`,`100`).replaceAll(`[CONFIG_HOME]`,_()).replaceAll(`[CWD]`,Ga()):e}async function*$Ht(e,t){if(!S1())return yield*t();let n=[],r=await C1(e,async()=>{for await(let e of t())n.push(e);return n});if(r.length>0){yield*r;return}yield*n}async function eUt(e,t,n){let r=Ga().replace(/[^a-zA-Z0-9]/g,`-`);return(await qHt(T1(V({messages:e,tools:t})).replaceAll(r,`[CWD_SLUG]`).replace(/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/gi,`[UUID]`).replace(/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?Z?/g,`[TIMESTAMP]`),`token-count`,async()=>({tokenCount:await n()}))).tokenCount}var tUt=n((()=>{Eie(),Yre(),uG(),oi(),Wa(),fo(),y(),ka(),i3(),Va()}));function nUt(e){for(let t of e)if(t.role===`assistant`&&Array.isArray(t.content)){for(let e of t.content)if(typeof e==`object`&&e&&`type`in e&&(e.type===`thinking`||e.type===`redacted_thinking`))return!0}return!1}function rUt(e){return e.map(e=>{if(!Array.isArray(e.content))return e;let t=e.content.map(e=>{if(e.type===`tool_use`){let t=e;return{type:`tool_use`,id:t.id,name:t.name,input:t.input}}if(e.type===`tool_result`){let t=e;if(Array.isArray(t.content)){let e=t.content.filter(e=>!g1(e));if(e.length===0)return{...t,content:[{type:`text`,text:`[tool references]`}]};if(e.length!==t.content.length)return{...t,content:e}}}return e});return{...e,content:t}})}async function iUt(e){return e?E1([{role:`user`,content:e}],[]):0}async function E1(e,t){return eUt(e,t,async()=>{try{let n=ar();if(n===`gemini`)return lUt(e,t);let r=An(),i=Jn(r),a=nUt(e);if(n===`bedrock`)return dUt({model:va(r),messages:e,tools:t,betas:i,containsThinking:a});let o=await vi({maxRetries:1,model:r,source:`count_tokens`}),s=ar()===`vertex`?i.filter(e=>jie.has(e)):i,c=await o.beta.messages.countTokens({model:va(r),messages:e.length>0?e:[{role:`user`,content:`foo`}],tools:t,...s.length>0&&{betas:s},...a&&{thinking:{type:`enabled`,budget_tokens:A1}}});return typeof c.input_tokens==`number`?c.input_tokens:null}catch(e){return q(e),null}})}function D1(e,t=4){return Math.round(e.length/t)}function aUt(e){switch(e){case`json`:case`jsonl`:case`jsonc`:return 2;default:return 4}}function oUt(e,t){return D1(e,aUt(t))}async function sUt(e,t){if(ar()===`gemini`)return lUt(e,t);let n=nUt(e),r=x(process.env.CLAUDE_CODE_USE_VERTEX)&&u(rr())===`global`,i=x(process.env.CLAUDE_CODE_USE_BEDROCK)&&n,a=x(process.env.CLAUDE_CODE_USE_VERTEX)&&n,o=r||i||a?Mn():rr(),s=await vi({maxRetries:1,model:o,source:`count_tokens`}),c=rUt(e),l=c.length>0?c:[{role:`user`,content:`count`}],d=Jn(o),f=ar()===`vertex`?d.filter(e=>jie.has(e)):d,p=Date.now(),m=gx()?bx({sessionId:Ft(),model:va(o),provider:ar(),name:`token-estimation`}):null,h=await s.beta.messages.create({model:va(o),max_tokens:n?j1:1,messages:l,tools:t.length>0?t:void 0,...f.length>0&&{betas:f},metadata:s9(),...a9(),...n&&{thinking:{type:`enabled`,budget_tokens:A1}}}),g=h.usage,_=g.input_tokens,v=g.cache_creation_input_tokens||0,y=g.cache_read_input_tokens||0;return xx(m,{model:va(o),provider:ar(),input:l,output:h.content,usage:{input_tokens:_,output_tokens:g.output_tokens,cache_creation_input_tokens:v||void 0,cache_read_input_tokens:y||void 0},startTime:new Date(p),endTime:new Date,...n&&{thinking:{type:`enabled`,budgetTokens:A1}}}),Cx(m),_+v+y}function O1(e){let t=0;for(let n of e)t+=cUt(n);return t}function cUt(e){if((e.type===`assistant`||e.type===`user`)&&e.message?.content)return k1(e.message?.content);if(e.type===`attachment`&&e.attachment){let t=_Yt(e.attachment),n=0;for(let e of t)n+=k1(e.message.content);return n}return 0}function k1(e){if(!e)return 0;if(typeof e==`string`)return D1(e);let t=0;for(let n of e)t+=uUt(n);return t}function lUt(e,t){let n=0;for(let t of e)n+=k1(t.content);return t.length>0&&(n+=D1(V(t))),n}function uUt(e){return typeof e==`string`?D1(e):e.type===`text`?D1(e.text):e.type===`image`||e.type===`document`?2e3:e.type===`tool_result`?k1(e.content):e.type===`tool_use`?D1(e.name+V(e.input??{})):e.type===`thinking`?D1(e.thinking):e.type===`redacted_thinking`?D1(e.data):D1(V(e))}async function dUt({model:e,messages:t,tools:n,betas:r,containsThinking:i}){try{let a=await ere(),o=kie(e)?e:await Sre(e);if(!o)return null;let s={anthropic_version:`bedrock-2023-05-31`,messages:t.length>0?t:[{role:`user`,content:`foo`}],max_tokens:i?j1:1,...n.length>0&&{tools:n},...r.length>0&&{anthropic_beta:r},...i&&{thinking:{type:`enabled`,budget_tokens:A1}}},{CountTokensCommand:c}=await import(`./dist-es-DN7otr6F.js`),l={modelId:o,input:{invokeModel:{body:new TextEncoder().encode(V(s))}}};return(await a.send(new c(l))).inputTokens??null}catch(e){return q(e),null}}var A1,j1,M1=n((()=>{Pn(),Ln(),zr(),y(),Ao(),i3(),Mr(),hr(),Va(),x1(),p9(),Yr(),wx(),tn(),tUt(),A1=1024,j1=2048}));async function fUt(e){try{let t=(await za().stat(e)).size;if(t===0)return{success:!1,error:{reason:`empty`,message:`PDF file is empty: ${e}`}};if(t>20971520)return{success:!1,error:{reason:`too_large`,message:`PDF file exceeds maximum allowed size of ${Os(vh)}.`}};let n=await hd(e);return n.subarray(0,5).toString(`ascii`).startsWith(`%PDF-`)?{success:!0,data:{type:`pdf`,file:{filePath:e,base64:n.toString(`base64`),originalSize:t}}}:{success:!1,error:{reason:`corrupted`,message:`File is not a valid PDF (missing %PDF- header): ${e}`}}}catch(e){return{success:!1,error:{reason:`unknown`,message:H(e)}}}}async function pUt(e){let{code:t,stdout:n}=await ts(`pdfinfo`,[e],{timeout:1e4,useCwd:!1});if(t!==0)return null;let r=/^Pages:\s+(\d+)/m.exec(n);if(!r)return null;let i=parseInt(r[1],10);return isNaN(i)?null:i}async function mUt(){if(N1!==void 0)return N1;let{code:e,stderr:t}=await ts(`pdftoppm`,[`-v`],{timeout:5e3,useCwd:!1});return N1=e===0||t.length>0,N1}async function hUt(e,t){try{let n=(await za().stat(e)).size;if(n===0)return{success:!1,error:{reason:`empty`,message:`PDF file is empty: ${e}`}};if(n>104857600)return{success:!1,error:{reason:`too_large`,message:`PDF file exceeds maximum allowed size for text extraction (${Os(Jye)}).`}};if(!await mUt())return{success:!1,error:{reason:`unavailable`,message:"pdftoppm is not installed. Install poppler-utils (e.g. `brew install poppler` or `apt-get install poppler-utils`) to enable PDF page rendering."}};let r=od(),i=Y(wE(),`pdf-${r}`);await pd(i,{recursive:!0});let a=Y(i,`page`),o=[`-jpeg`,`-r`,`100`];t?.firstPage&&o.push(`-f`,String(t.firstPage)),t?.lastPage&&t.lastPage!==1/0&&o.push(`-l`,String(t.lastPage)),o.push(e,a);let{code:s,stderr:c}=await ts(`pdftoppm`,o,{timeout:12e4,useCwd:!1});if(s!==0)return/password/i.test(c)?{success:!1,error:{reason:`password_protected`,message:`PDF is password-protected. Please provide an unprotected version.`}}:/damaged|corrupt|invalid/i.test(c)?{success:!1,error:{reason:`corrupted`,message:`PDF file is corrupted or invalid.`}}:{success:!1,error:{reason:`unknown`,message:`pdftoppm failed: ${c}`}};let l=(await gd(i)).filter(e=>e.endsWith(`.jpg`)).sort();return l.length===0?{success:!1,error:{reason:`corrupted`,message:`pdftoppm produced no output pages. The PDF may be invalid.`}}:{success:!0,data:{type:`parts`,file:{filePath:e,originalSize:n,outputDir:i,count:l.length}}}}catch(e){return{success:!1,error:{reason:`unknown`,message:H(e)}}}}var N1,gUt=n((()=>{yh(),ka(),es(),Ns(),Fa(),IE()}));function _Ut(){let e=process.env.CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS;if(e){let t=parseInt(e,10);if(!isNaN(t)&&t>0)return t}}var P1,vUt=n((()=>{l(),wr(),pi(),P1=c(()=>{let e=Jr(`tengu_amber_wren`,{});return{maxSizeBytes:typeof e?.maxSizeBytes==`number`&&Number.isFinite(e.maxSizeBytes)&&e.maxSizeBytes>0?e.maxSizeBytes:Aie,maxTokens:_Ut()??(typeof e?.maxTokens==`number`&&Number.isFinite(e.maxTokens)&&e.maxTokens>0?e.maxTokens:25e3),includeMaxSizeInPrompt:typeof e?.includeMaxSizeInPrompt==`boolean`?e.includeMaxSizeInPrompt:void 0,targetedRangeNudge:typeof e?.targetedRangeNudge==`boolean`?e.targetedRangeNudge:void 0}})}));function F1(e){let t=`${P5()}/`;if(e.startsWith(t)&&e.endsWith(`.output`)){let n=e.slice(t.length,-7);if(n.length>0&&n.length<=20&&/^[a-zA-Z0-9_-]+$/.test(n))return n}return null}function yUt({file_path:e,offset:t,limit:n,pages:r},{verbose:i}){if(!e)return null;if(F1(e))return``;let a=i?e:Wr(e);if(r)return(0,I1.jsxs)(I1.Fragment,{children:[(0,I1.jsx)(Tz,{filePath:e,children:a}),` · pages ${r}`]});if(i&&(t||n)){let r=t??1,i=n?`lines ${r}-${r+n-1}`:`from line ${r}`;return(0,I1.jsxs)(I1.Fragment,{children:[(0,I1.jsx)(Tz,{filePath:e,children:a}),` · ${i}`]})}return(0,I1.jsx)(Tz,{filePath:e,children:a})}function bUt({file_path:e}){let t=e?F1(e):null;return t?(0,I1.jsxs)(z,{dimColor:!0,children:[` `,t]}):null}function xUt(e){switch(e.type){case`image`:{let{originalSize:t}=e.file;return(0,I1.jsx)(Q,{height:1,children:(0,I1.jsxs)(z,{children:[`Read image (`,Os(t),`)`]})})}case`notebook`:{let{cells:t}=e.file;return!t||t.length<1?(0,I1.jsx)(z,{color:`error`,children:`No cells found in notebook`}):(0,I1.jsx)(Q,{height:1,children:(0,I1.jsxs)(z,{children:[`Read `,(0,I1.jsx)(z,{bold:!0,children:t.length}),` cells`]})})}case`pdf`:{let{originalSize:t}=e.file;return(0,I1.jsx)(Q,{height:1,children:(0,I1.jsxs)(z,{children:[`Read PDF (`,Os(t),`)`]})})}case`parts`:return(0,I1.jsx)(Q,{height:1,children:(0,I1.jsxs)(z,{children:[`Read `,(0,I1.jsx)(z,{bold:!0,children:e.file.count}),` `,e.file.count===1?`page`:`pages`,` (`,Os(e.file.originalSize),`)`]})});case`text`:{let{numLines:t}=e.file;return(0,I1.jsx)(Q,{height:1,children:(0,I1.jsxs)(z,{children:[`Read `,(0,I1.jsx)(z,{bold:!0,children:t}),` `,t===1?`line`:`lines`]})})}case`file_unchanged`:return(0,I1.jsx)(Q,{height:1,children:(0,I1.jsx)(z,{dimColor:!0,children:`Unchanged since last read`})})}}function SUt(e,{verbose:t}){if(!t&&typeof e==`string`){if(e.includes(`Note: your current working directory is`))return(0,I1.jsx)(Q,{children:(0,I1.jsx)(z,{color:`error`,children:`File not found`})});if(p4(e,`tool_use_error`))return(0,I1.jsx)(Q,{children:(0,I1.jsx)(z,{color:`error`,children:`Error reading file`})})}return(0,I1.jsx)(HR,{result:e,verbose:t})}function CUt(e){return e?.file_path?.startsWith(gN())?`Reading Plan`:e?.file_path&&F1(e.file_path)?`Read agent output`:`Read`}function wUt(e){return e?.file_path?F1(e.file_path)||Wr(e.file_path):null}var I1,TUt=n((()=>{R(),i3(),WR(),OT(),Tt(),Ez(),pi(),Ns(),_N(),e7(),I1=jt()}));function EUt(e){return!!(LUt.has(e)||e.startsWith(`/proc/`)&&(e.endsWith(`/fd/0`)||e.endsWith(`/fd/1`)||e.endsWith(`/fd/2`)))}function DUt(e){let t=wu.basename(e).match(/^(.+)([ \u202F])(AM|PM)(\.png)$/);if(!t)return;let n=t[2],r=n===` `?RUt:` `;return e.replace(`${n}${t[3]}${t[4]}`,`${r}${t[3]}${t[4]}`)}function OUt(e){return R1.push(e),()=>{let t=R1.indexOf(e);t>=0&&R1.splice(t,1)}}function kUt(e){let t=_();if(!e.startsWith(t))return null;let n=e.split(Fu.sep).join(ju.sep);return n.includes(`/session-memory/`)&&n.endsWith(`.md`)?`session_memory`:n.includes(`/projects/`)&&n.endsWith(`.jsonl`)?`session_transcript`:null}function AUt(){return hle}function jUt(e){return vre(e)}function MUt(){let e=ni(An());return!HUt.has(e)}function NUt(e){let t=H1.get(e);return t===void 0?``:Qye(t)}async function PUt(e,t,n){let r=n??P1().maxTokens,i=Buffer.byteLength(e);if(i>r*4)throw new z1(Math.ceil(i/4),r);let a=oUt(e,t);if(!a||a<=r/4)return;let o=await iUt(e)??a;if(o>r)throw new z1(o,r)}function L1(e,t,n,r){return{type:`image`,file:{base64:e.toString(`base64`),type:`image/${t}`,originalSize:n,dimensions:r}}}async function FUt(e,t,n,r,i,a,o,s,c,l,u,d){if(r===`ipynb`){let o=await LSt(n),d=V(o),f=Buffer.byteLength(d);if(f>s)throw Error(`Notebook content (${Os(f)}) exceeds maximum allowed size (${Os(s)}). Use ${ec} with jq to read specific portions:\n cat "${e}" | jq '.cells[:20]' # First 20 cells\n cat "${e}" | jq '.cells[100:120]' # Cells 100-120\n cat "${e}" | jq '.cells | length' # Count total cells\n cat "${e}" | jq '.cells[] | select(.cell_type=="code") | .source' # All code sources`);await PUt(d,r,c);let p=await za().stat(n);l.set(t,{content:d,timestamp:Math.floor(p.mtimeMs),offset:i,limit:a}),u.nestedMemoryAttachmentTriggers?.add(t);let m={type:`notebook`,file:{filePath:e,cells:o}};return vG({operation:`read`,tool:`FileReadTool`,filePath:t,content:d}),{data:m}}if(B1.has(r)){let e=await IUt(n,c);u.nestedMemoryAttachmentTriggers?.add(t),vG({operation:`read`,tool:`FileReadTool`,filePath:t,content:e.file.base64});let r=e.file.dimensions?FCe(e.file.dimensions):null;return{data:e,...r&&{newMessages:[d4({content:r,isMeta:!0})]}}}if($c(r)){if(o){let e=await hUt(n,Gce(o)??void 0);if(!e.success)throw Error(e.error.message);G(`tengu_pdf_page_extraction`,{success:!0,pageCount:e.data.file.count,fileSize:e.data.file.originalSize,hasPageRange:!0}),vG({operation:`read`,tool:`FileReadTool`,filePath:t,content:`PDF pages ${o}`});let r=(await gd(e.data.file.outputDir)).filter(e=>e.endsWith(`.jpg`)).sort(),i=await Promise.all(r.map(async t=>{let n=await hd(wu.join(e.data.file.outputDir,t)),r=await j_(n,n.length,`jpeg`);return{type:`image`,source:{type:`base64`,media_type:`image/${r.mediaType}`,data:r.buffer.toString(`base64`)}}}));return{data:e.data,...i.length>0&&{newMessages:[d4({content:i,isMeta:!0})]}}}let e=await pUt(n);if(e!==null&&e>10)throw Error(`This PDF has ${e} pages, which is too many to read at once. Use the pages parameter to read specific page ranges (e.g., pages: "1-5"). Maximum 20 pages per request.`);let r=await za().stat(n);if(!sle()||r.size>3145728){let e=await hUt(n);e.success?G(`tengu_pdf_page_extraction`,{success:!0,pageCount:e.data.file.count,fileSize:e.data.file.originalSize}):G(`tengu_pdf_page_extraction`,{success:!1,available:e.error.reason!==`unavailable`,fileSize:r.size})}if(!sle())throw Error('Reading full PDFs is not supported with this model. Use a newer model (Sonnet 3.5 v2 or later), or use the pages parameter to read specific page ranges (e.g., pages: "1-5", maximum 20 pages per request). Page extraction requires poppler-utils: install with `brew install poppler` on macOS or `apt-get install poppler-utils` on Debian/Ubuntu.');let i=await fUt(n);if(!i.success)throw Error(i.error.message);let a=i.data;return vG({operation:`read`,tool:`FileReadTool`,filePath:t,content:a.file.base64}),{data:a,newMessages:[d4({content:[{type:`document`,source:{type:`base64`,media_type:`application/pdf`,data:a.file.base64}}],isMeta:!0})]}}let{content:f,lineCount:p,totalLines:m,totalBytes:h,readBytes:g,mtimeMs:_}=await PQ(n,i===0?0:i-1,a,a===void 0?s:void 0,u.abortController.signal);await PUt(f,r,c),l.set(t,{content:f,timestamp:Math.floor(_),offset:i,limit:a}),u.nestedMemoryAttachmentTriggers?.add(t);for(let e of R1.slice())e(n,f);let v={type:`text`,file:{filePath:e,content:f,numLines:p,startLine:i,totalLines:m}};$X(t)&&H1.set(v,_),vG({operation:`read`,tool:`FileReadTool`,filePath:t,content:f});let y=kUt(t),b=Zn(t);return G(`tengu_session_file_read`,{totalLines:m,readLines:p,totalBytes:h,readBytes:g,offset:i,...a!==void 0&&{limit:a},...b!==void 0&&{ext:b},...d!==void 0&&{messageID:d},is_session_memory:y===`session_memory`,is_session_transcript:y===`session_transcript`}),{data:v}}async function IUt(e,t=P1().maxTokens,n){let i=await za().readFileBytes(e,n),a=i.length;if(a===0)throw Error(`Image file is empty: ${e}`);let o=N_(i),s=o.split(`/`)[1]||`png`,c;try{let e=await j_(i,a,s);c=L1(e.buffer,e.mediaType,a,e.dimensions)}catch(e){if(e instanceof L_)throw e;q(e),c=L1(i,s,a)}if(Math.ceil(c.file.base64.length*.125)>t)try{let e=await OCe(i,t,o);return{type:`image`,file:{base64:e.base64,type:e.mediaType,originalSize:a}}}catch(e){q(e);try{let e=await import(`./lib-Ca3QWJjN.js`).then(e=>r(e.default,1));return L1(await(e.default||e)(i).resize(400,400,{fit:`inside`,withoutEnlargement:!0}).jpeg({quality:20}).toBuffer(),`jpeg`,a)}catch(e){return q(e),L1(i,s,a)}}return c}var LUt,RUt,R1,z1,B1,zUt,BUt,V1,VUt,HUt,H1,U1=n((()=>{it(),yh(),hse(),$ye(),wr(),Ua(),qn(),M1(),sG(),Sc(),Wa(),y(),ka(),pi(),yG(),Ns(),Fa(),R_(),Fs(),Ao(),nZ(),i3(),hr(),YK(),Jo(),gUt(),Hce(),N5(),Ky(),LQ(),sU(),Va(),ic(),vUt(),tl(),TUt(),LUt=new Set([`/dev/zero`,`/dev/random`,`/dev/urandom`,`/dev/full`,`/dev/stdin`,`/dev/tty`,`/dev/console`,`/dev/stdout`,`/dev/stderr`,`/dev/fd/0`,`/dev/fd/1`,`/dev/fd/2`]),RUt=` `,R1=[],z1=class extends Error{constructor(e,t){super(`File content (${e} tokens) exceeds maximum allowed tokens (${t}). Use offset and limit parameters to read specific portions of the file, or search for specific content instead of reading the whole file.`),this.tokenCount=e,this.maxTokens=t,this.name=`MaxFileReadTokenExceededError`}},B1=new Set([`png`,`jpg`,`jpeg`,`gif`,`webp`]),zUt=J(()=>Pe({file_path:F().describe(`The absolute path to the file to read`),offset:oU(P().int().nonnegative().optional()).describe(`The line number to start reading from. Only provide if the file is too large to read at once`),limit:oU(P().int().positive().optional()).describe(`The number of lines to read. Only provide if the file is too large to read at once.`),pages:F().optional().describe(`Page range for PDF files (e.g., "1-5", "3", "10-20"). Only applicable to PDF files. Maximum 20 pages per request.`)})),BUt=J(()=>{let e=Ge([`image/jpeg`,`image/png`,`image/gif`,`image/webp`]);return qe(`type`,[L({type:I(`text`),file:L({filePath:F().describe(`The path to the file that was read`),content:F().describe(`The content of the file`),numLines:P().describe(`Number of lines in the returned content`),startLine:P().describe(`The starting line number`),totalLines:P().describe(`Total number of lines in the file`)})}),L({type:I(`image`),file:L({base64:F().describe(`Base64-encoded image data`),type:e.describe(`The MIME type of the image`),originalSize:P().describe(`Original file size in bytes`),dimensions:L({originalWidth:P().optional().describe(`Original image width in pixels`),originalHeight:P().optional().describe(`Original image height in pixels`),displayWidth:P().optional().describe(`Displayed image width in pixels (after resizing)`),displayHeight:P().optional().describe(`Displayed image height in pixels (after resizing)`)}).optional().describe(`Image dimension info for coordinate mapping`)})}),L({type:I(`notebook`),file:L({filePath:F().describe(`The path to the notebook file`),cells:Re(Ke()).describe(`Array of notebook cells`)})}),L({type:I(`pdf`),file:L({filePath:F().describe(`The path to the PDF file`),base64:F().describe(`Base64-encoded PDF data`),originalSize:P().describe(`Original file size in bytes`)})}),L({type:I(`parts`),file:L({filePath:F().describe(`The path to the PDF file`),originalSize:P().describe(`Original file size in bytes`),count:P().describe(`Number of pages extracted`),outputDir:F().describe(`Directory containing extracted page images`)})}),L({type:I(`file_unchanged`),file:L({filePath:F().describe(`The path to the file`)})})])}),V1=sc({name:Mc,searchHint:`read files, images, PDFs, notebooks`,maxResultSizeChars:1e5,strict:!0,async description(){return Rle},async prompt(){let e=P1(),t=e.includeMaxSizeInPrompt?`. Files larger than ${Os(e.maxSizeBytes)} will return an error; use offset and limit for larger files`:``,n=e.targetedRangeNudge?yle:eue;return ale(AUt(),t,n)},get inputSchema(){return zUt()},get outputSchema(){return BUt()},userFacingName:CUt,getToolUseSummary:wUt,getActivityDescription(e){let t=wUt(e);return t?`Reading ${t}`:`Reading file`},isConcurrencySafe(){return!0},isReadOnly(){return!0},toAutoClassifierInput(e){return e.file_path},isSearchOrReadCommand(){return{isSearch:!1,isRead:!0}},getPath({file_path:e}){return e||Ga()},backfillObservableInput(e){typeof e.file_path==`string`&&(e.file_path=Yo(e.file_path))},async preparePermissionMatcher({file_path:e}){return t=>Hy(t,e)},async checkPermissions(e,t){return O5(V1,e,t.getAppState().toolPermissionContext)},renderToolUseMessage:yUt,renderToolUseTag:bUt,renderToolResultMessage:xUt,extractSearchText(){return``},renderToolUseErrorMessage:SUt,async validateInput({file_path:e,pages:t},n){if(t!==void 0){let e=Gce(t);if(!e)return{result:!1,message:`Invalid pages parameter: "${t}". Use formats like "1-5", "3", or "10-20". Pages are 1-indexed.`,errorCode:7};if((e.lastPage===1/0?21:e.lastPage-e.firstPage+1)>20)return{result:!1,message:`Page range "${t}" exceeds maximum of 20 pages per request. Please use a smaller range.`,errorCode:8}}let r=Yo(e);if(D5(r,n.getAppState().toolPermissionContext,`read`,`deny`)!==null)return{result:!1,message:`File is in a directory that is denied by your permission settings.`,errorCode:1};if(r.startsWith(`\\\\`)||r.startsWith(`//`))return{result:!0};let i=wu.extname(r).toLowerCase();return mse(r)&&!$c(i)&&!B1.has(i.slice(1))?{result:!1,message:`This tool cannot read binary files. The file appears to be a binary ${i} file. Please use appropriate tools for binary file analysis.`,errorCode:4}:EUt(r)?{result:!1,message:`Cannot read '${e}': this device file would block or produce infinite output.`,errorCode:9}:{result:!0}},async call({file_path:e,offset:t=1,limit:n=void 0,pages:r},i,a,o){let{readFileState:s,fileReadingLimits:c}=i,l=P1(),u=c?.maxSizeBytes??l.maxSizeBytes,d=c?.maxTokens??l.maxTokens;c!==void 0&&G(`tengu_file_read_limits_override`,{hasMaxTokens:c.maxTokens!==void 0,hasMaxSizeBytes:c.maxSizeBytes!==void 0});let f=wu.extname(e).toLowerCase().slice(1),p=Yo(e),m=Jr(`tengu_read_dedup_killswitch`,!1)?void 0:s.get(p);if(m&&!m.isPartialView&&m.offset!==void 0&&m.offset===t&&m.limit===n)try{if(await Gne(p)===m.timestamp){let t=Zn(p);return G(`tengu_file_read_dedup`,{...t!==void 0&&{ext:t}}),{data:{type:`file_unchanged`,file:{filePath:e}}}}}catch{}let h=Ga();if(!x(process.env.CLAUDE_CODE_SIMPLE)){let e=await QW([p],h);if(e.length>0){for(let t of e)i.dynamicSkillDirTriggers?.add(t);$W(e).catch(()=>{})}eG([p],h)}try{return await FUt(e,p,p,f,t,n,r,u,d,s,i,o?.message.id)}catch(a){if(Ea(a)===`ENOENT`){let a=DUt(p);if(a)try{return await FUt(e,p,a,f,t,n,r,u,d,s,i,o?.message.id)}catch(e){if(!Oa(e))throw e}let c=Vie(p),l=await oa(p),m=`File does not exist. ${Nr} ${Ga()}.`;throw l?m+=` Did you mean ${l}?`:c&&(m+=` Did you mean ${c}?`),Error(m)}throw a}},mapToolResultToToolResultBlockParam(e,t){switch(e.type){case`image`:return{tool_use_id:t,type:`tool_result`,content:[{type:`image`,source:{type:`base64`,data:e.file.base64,media_type:e.file.type}}]};case`notebook`:return RSt(e.file.cells,t);case`pdf`:return{tool_use_id:t,type:`tool_result`,content:`PDF file read: ${e.file.filePath} (${Os(e.file.originalSize)})`};case`parts`:return{tool_use_id:t,type:`tool_result`,content:`PDF pages extracted: ${e.file.count} page(s) from ${e.file.filePath} (${Os(e.file.originalSize)})`};case`file_unchanged`:return{tool_use_id:t,type:`tool_result`,content:Ole};case`text`:{let n;return n=e.file.content?NUt(e)+jUt(e.file)+(MUt()?VUt:``):e.file.totalLines===0?`<system-reminder>Warning: the file exists but the contents are empty.</system-reminder>`:`<system-reminder>Warning: the file exists but is shorter than the provided offset (${e.file.startLine}). The file has ${e.file.totalLines} lines.</system-reminder>`,{tool_use_id:t,type:`tool_result`,content:n}}}}}),VUt=`
|
|
2963
2963
|
|
|
2964
2964
|
<system-reminder>
|
|
2965
2965
|
Whenever you read a file, you should consider whether it would be considered malware. You CAN and SHOULD provide analysis of malware, what it is doing. But you MUST refuse to improve or augment the code. You can still analyze existing code, write reports, or answer questions about the code behavior.
|
|
@@ -3706,7 +3706,7 @@ Goal: Write your final plan to the plan file (the only file you can edit).
|
|
|
3706
3706
|
- List the paths of files to be modified and what changes in each (one bullet per file)
|
|
3707
3707
|
- Reference existing functions to reuse, with file:line
|
|
3708
3708
|
- End with the single verification command
|
|
3709
|
-
- **Hard limit: 40 lines.** If the plan is longer, delete prose — not file paths.`}));function XYt(e){return e===void 0||pXt.has(e)}function a3(){return!1}function ZYt(e){return c3(e)||e instanceof C&&e.status===429}function QYt(e){if(!(e instanceof E))return!1;let t=Dl(e);return t?.code===`ECONNRESET`||t?.code===`EPIPE`}async function*o3(e,t,n){let r=cXt(n),i={model:n.model,thinkingConfig:n.thinkingConfig,...pa()&&{fastMode:n.fastMode}},a=null,o=n.initialConsecutive529Errors??0,s,c=0;for(let l=1;l<=r+1;l++){if(n.signal?.aborted)throw new S;let u=pa()?i.fastMode&&!$ie():!1;try{if(process.env.USER_TYPE===`ant`){let e=WCe(i.model,u);if(e)throw e}let n=QYt(s);if(n&&Jr(`tengu_disable_keepalive_on_econnreset`,!1)&&(U(`Stale connection (ECONNRESET/EPIPE) — disabling keep-alive for retry`),kce()),a===null||s instanceof C&&s.status===401||l3(s)||nXt(s)||aXt(s)||n){if(s instanceof C&&s.status===401||l3(s)){let e=Xn()?.accessToken;e&&await qae(e)}a=await e()}return await t(a,l,i)}catch(e){if(s=e,U(`API error (attempt ${l}/${r+1}): ${e instanceof C?`${e.status} ${e.message}`:H(e)}`,{level:`error`}),u&&!a3()&&e instanceof C&&(e.status===429||c3(e))){let t=e.headers?.get(`anthropic-ratelimit-unified-overage-disabled-reason`);if(t!=null){bae(t),i.fastMode=!1;continue}let r=lXt(e);if(r!==null&&r<gXt){await Hs(r,n.signal,{abortError:d3});continue}let a=Math.max(r??hXt,_Xt),o=c3(e)?`overloaded`:`rate_limit`;Pae(Date.now()+a,o),pa()&&(i.fastMode=!1);continue}if(u&&tXt(e)){Kie(),i.fastMode=!1;continue}if(c3(e)&&!XYt(n.querySource))throw G(`tengu_api_529_background_dropped`,{query_source:n.querySource}),new h3(e,i);if(c3(e)&&(process.env.FALLBACK_FOR_ALL_PRIMARY_MODELS||!di()&&Kn(n.model))&&(o++,o>=fXt)){if(n.fallbackModel)throw G(`tengu_api_opus_fallback_triggered`,{original_model:n.model,fallback_model:n.fallbackModel,provider:dr()}),new g3(n.model,n.fallbackModel);if(process.env.USER_TYPE===`external`&&!process.env.IS_SANDBOX&&!a3())throw G(`tengu_api_custom_529_overloaded_error`,{}),new h3(Error(jwe),i)}let t=a3()&&ZYt(e);if(l>r&&!t||!(rXt(e)||oXt(e))&&(!(e instanceof C)||!sXt(e)))throw new h3(e,i);if(e instanceof C){let t=eXt(e);if(t){let{inputTokens:n,contextLimit:r}=t,a=Math.max(0,r-n-1e3);if(a<f3)throw q(Error(`availableContext ${a} is less than FLOOR_OUTPUT_TOKENS ${f3}`)),e;let o=(i.thinkingConfig.type===`enabled`?i.thinkingConfig.budgetTokens:0)+1,s=Math.max(f3,a,o);i.maxTokensOverride=s,G(`tengu_max_tokens_context_overflow_adjustment`,{inputTokens:n,contextLimit:r,adjustedMaxTokens:s,attempt:l});continue}}let a=$Yt(e),d;t&&e instanceof C&&e.status===429?(c++,d=uXt(e)??Math.min(s3(c,a,p3),m3)):t?(c++,d=Math.min(s3(c,a,p3),m3)):d=s3(l,a);let f=t?c:l;if(G(`tengu_api_retry`,{attempt:f,delayMs:d,error:e.message,status:e.status,provider:dr()}),t){d>6e4&&G(`tengu_api_persistent_retry_wait`,{status:e.status,delayMs:d,attempt:f,provider:dr()});let t=d;for(;t>0;){if(n.signal?.aborted)throw new S;e instanceof C&&(yield DYt(e,t,f,r));let i=Math.min(t,mXt);await Hs(i,n.signal,{abortError:d3}),t-=i}l>=r&&(l=r)}else e instanceof C&&(yield DYt(e,d,l,r)),await Hs(d,n.signal,{abortError:d3})}}throw new h3(s,i)}function $Yt(e){return(e.headers?.[`retry-after`]||e.headers?.get?.(`retry-after`))??null}function s3(e,t,n=32e3){if(t){let e=parseInt(t,10);if(!isNaN(e))return e*1e3}let r=Math.min(500*2**(e-1),n);return r+Math.random()*.25*r}function eXt(e){if(e.status!==400||!e.message||!e.message.includes("input length and `max_tokens` exceed context limit"))return;let t=e.message.match(/input length and `max_tokens` exceed context limit: (\d+) \+ (\d+) > (\d+)/);if(!t||t.length!==4)return;if(!t[1]||!t[2]||!t[3]){q(Error(`Unable to parse max_tokens from max_tokens exceed context limit error message`));return}let n=parseInt(t[1],10),r=parseInt(t[2],10),i=parseInt(t[3],10);if(!(isNaN(n)||isNaN(r)||isNaN(i)))return{inputTokens:n,maxTokens:r,contextLimit:i}}function tXt(e){return e instanceof C?e.status===400&&(e.message?.includes(`Fast mode is not enabled`)??!1):!1}function c3(e){return e instanceof C?e.status===529||(e.message?.includes(`"type":"overloaded_error"`)??!1):!1}function l3(e){return e instanceof C&&e.status===403&&(e.message?.includes(`OAuth token has been revoked`)??!1)}function nXt(e){return!!(x(process.env.CLAUDE_CODE_USE_BEDROCK)&&(Hie(e)||e instanceof C&&e.status===403))}function rXt(e){return nXt(e)?(Wre(),!0):!1}function iXt(e){if(!(e instanceof Error))return!1;let t=e.message;return t.includes(`Could not load the default credentials`)||t.includes(`Could not refresh access token`)||t.includes(`invalid_grant`)}function aXt(e){return!!(x(process.env.CLAUDE_CODE_USE_VERTEX)&&(iXt(e)||e instanceof C&&e.status===401))}function oXt(e){return aXt(e)?(uie(),!0):!1}function sXt(e){if(GCe(e))return!1;if(a3()&&ZYt(e)||x(process.env.CLAUDE_CODE_REMOTE)&&(e.status===401||e.status===403)||e.message?.includes(`"type":"overloaded_error"`)||eXt(e))return!0;let t=e.headers?.get(`x-should-retry`);if(t===`true`&&(!di()||Gae()))return!0;if(t===`false`){let t=e.status!==void 0&&e.status>=500;if(!(process.env.USER_TYPE===`ant`&&t))return!1}return e instanceof E?!0:e.status?e.status===408||e.status===409?!0:e.status===429?!di()||Gae():e.status===401?(Are(),!0):!!(l3(e)||e.status&&e.status>=500):!1}function u3(){return process.env.CLAUDE_CODE_MAX_RETRIES?parseInt(process.env.CLAUDE_CODE_MAX_RETRIES,10):dXt}function cXt(e){return e.maxRetries??u3()}function lXt(e){let t=$Yt(e);if(t){let e=parseInt(t,10);if(!isNaN(e))return e*1e3}return null}function uXt(e){let t=e.headers?.get?.(`anthropic-ratelimit-unified-reset`);if(!t)return null;let n=Number(t);if(!Number.isFinite(n))return null;let r=n*1e3-Date.now();return r<=0?null:Math.min(r,m3)}var d3,dXt,f3,fXt,pXt,p3,m3,mXt,h3,g3,hXt,gXt,_Xt,_3=n((()=>{Ka(),Mre(),W(),Ao(),i3(),Pn(),Wi(),y(),ka(),ca(),hr(),Vs(),Us(),wr(),Ua(),H_(),dv(),X_(),d3=()=>new S,dXt=10,f3=3e3,fXt=3,pXt=new Set([`repl_main_thread`,`repl_main_thread:outputStyle:custom`,`repl_main_thread:outputStyle:Explanatory`,`repl_main_thread:outputStyle:Learning`,`sdk`,`agent:custom`,`agent:default`,`agent:builtin`,`compact`,`hook_agent`,`hook_prompt`,`verification_agent`,`side_question`,`auto_mode`,...[]]),p3=300*1e3,m3=360*60*1e3,mXt=3e4,h3=class extends Error{constructor(e,t){let n=H(e);super(n),this.originalError=e,this.retryContext=t,this.name=`RetryError`,e instanceof Error&&e.stack&&(this.stack=e.stack)}},g3=class extends Error{constructor(e,t){super(`Model fallback triggered: ${e} -> ${t}`),this.originalModel=e,this.fallbackModel=t,this.name=`FallbackTriggeredError`}},hXt=1800*1e3,gXt=20*1e3,_Xt=600*1e3})),v3,vXt=n((()=>{it(),Fs(),v3=J(()=>L({restrictions:Fe(F(),L({allowed:We()}))}))}));function yXt(e){return e instanceof Error}function bXt(){k3||x3()&&(k3=new Promise(e=>{A3=e,setTimeout(()=>{A3&&(U(`Policy limits: Loading promise timed out, resolving anyway`),A3(),A3=null)},LXt)}))}function y3(){return Y(_(),PXt)}function xXt(){return`${ro().BASE_API_URL}/api/claude_code/policy_limits`}function b3(e){if(Array.isArray(e))return e.map(b3);if(typeof e==`object`&&e){let t={};for(let[n,r]of Object.entries(e).sort(([e],[t])=>e.localeCompare(t)))t[n]=b3(r);return t}return e}function SXt(e){let t=V(b3(e));return`sha256:${id(`sha256`).update(t).digest(`hex`)}`}function x3(){if(ar()!==`firstParty`||!Wn())return!1;try{let{key:e}=Un({skipRetrievingKeyFromApiKeyHelper:!0});if(e)return!0}catch{}let e=Xn();return!(!e?.accessToken||!e.scopes?.includes(`user:inference`)||e.subscriptionType!==`enterprise`&&e.subscriptionType!==`team`)}async function CXt(){k3&&await k3}function wXt(){try{let{key:e}=Un({skipRetrievingKeyFromApiKeyHelper:!0});if(e)return{headers:{"x-api-key":e}}}catch{}let e=Xn();return e?.accessToken?{headers:{Authorization:`Bearer ${e.accessToken}`,"anthropic-beta":Ese}}:{headers:{},error:`No authentication available`}}async function TXt(e){let t=null;for(let n=1;n<=E3+1;n++){if(t=await EXt(e),t.success||t.skipRetry||n>E3)return t;let r=s3(n);U(`Policy limits: Retry ${n}/${E3} after ${r}ms`),await Hs(r)}return t}async function EXt(e){try{await gr();let t=wXt();if(t.error)return{success:!1,error:`Authentication required for policy limits`,skipRetry:!0};let n=xXt(),r={...t.headers,"User-Agent":Cn()};e&&(r[`If-None-Match`]=`"${e}"`);let i=await Oe.get(n,{headers:r,timeout:FXt,validateStatus:e=>e===200||e===304||e===404});if(i.status===304)return U(`Policy limits: Using cached restrictions (304)`),{success:!0,restrictions:null,etag:e};if(i.status===404)return U(`Policy limits: No restrictions found (404)`),{success:!0,restrictions:{},etag:void 0};let a=v3().safeParse(i.data);return a.success?(U(`Policy limits: Fetched successfully`),{success:!0,restrictions:a.data.restrictions}):(U(`Policy limits: Invalid response format - ${a.error.message}`),{success:!1,error:`Invalid policy limits format`})}catch(e){let{kind:t,message:n}=Zoe(e);switch(t){case`auth`:return{success:!1,error:`Not authorized for policy limits`,skipRetry:!0};case`timeout`:return{success:!1,error:`Policy limits request timeout`};case`network`:return{success:!1,error:`Cannot connect to server`};default:return{success:!1,error:n}}}}function DXt(){try{let e=os(Uu(y3(),`utf-8`),!1),t=v3().safeParse(e);return t.success?t.data.restrictions:null}catch{return null}}async function OXt(e){try{let t=y3();await wd(t,V({restrictions:e},null,2),{encoding:`utf-8`,mode:384}),U(`Policy limits: Saved to ${t}`)}catch(e){U(`Policy limits: Failed to save - ${e instanceof Error?e.message:`unknown error`}`)}}async function S3(){if(!x3())return null;let e=DXt(),t=e?SXt(e):void 0;try{let n=await TXt(t);if(!n.success)return e?(U(`Policy limits: Using stale cache after fetch failure`),j3=e,e):null;if(n.restrictions===null&&e)return U(`Policy limits: Cache still valid (304 Not Modified)`),j3=e,e;let r=n.restrictions||{};if(Object.keys(r).length>0)return j3=r,await OXt(r),U(`Policy limits: Applied new restrictions successfully`),r;j3=r;try{await Cd(y3()),U(`Policy limits: Deleted cached file (404 response)`)}catch(e){yXt(e)&&e.code!==`ENOENT`&&U(`Policy limits: Failed to delete cached file - ${e.message}`)}return r}catch{return e?(U(`Policy limits: Using stale cache after error`),j3=e,e):null}}function C3(e){let t=kXt();if(!t)return!(Do()&&RXt.has(e));let n=t[e];return n?n.allowed:!0}function kXt(){if(!x3())return null;if(j3)return j3;let e=DXt();return e?(j3=e,e):null}async function AXt(){x3()&&!k3&&(k3=new Promise(e=>{A3=e}));try{await S3(),x3()&&NXt()}finally{A3&&(A3(),A3=null)}}async function jXt(){await w3(),x3()&&(await S3(),U(`Policy limits: Refreshed after auth change`))}async function w3(){T3(),j3=null,k3=null,A3=null;try{await Cd(y3())}catch{}}async function MXt(){if(!x3())return;let e=j3?V(j3):null;try{await S3(),(j3?V(j3):null)!==e&&U(`Policy limits: Changed during background poll`)}catch{}}function NXt(){D3===null&&x3()&&(D3=setInterval(()=>{MXt()},IXt),D3.unref(),O3||(O3=!0,ja(async()=>T3())))}function T3(){D3!==null&&(clearInterval(D3),D3=null)}var PXt,FXt,E3,IXt,D3,O3,k3,A3,LXt,j3,RXt,M3=n((()=>{ke(),io(),Wi(),Ma(),W(),y(),ka(),as(),Pn(),To(),Us(),Va(),ki(),_3(),vXt(),PXt=`policy-limits.json`,FXt=1e4,E3=5,IXt=3600*1e3,D3=null,O3=!1,k3=null,A3=null,LXt=3e4,j3=null,RXt=new Set([`allow_product_feedback`])})),N3,zXt=n((()=>{M3(),y(),To(),N3={aliases:[`bug`],type:`local-jsx`,name:`feedback`,description:`Submit feedback about Claude Code`,argumentHint:`[report]`,isEnabled:()=>!(x(process.env.CLAUDE_CODE_USE_BEDROCK)||x(process.env.CLAUDE_CODE_USE_VERTEX)||x(process.env.CLAUDE_CODE_USE_FOUNDRY)||x(process.env.DISABLE_FEEDBACK_COMMAND)||x(process.env.DISABLE_BUG_COMMAND)||Do()||process.env.USER_TYPE===`ant`||!C3(`allow_product_feedback`)),load:()=>import(`./feedback-C2QLdCfW.js`)}})),P3,BXt=n((()=>{P3={type:`local`,name:`clear`,description:`Clear conversation history and free up context`,aliases:[`reset`,`new`],supportsNonInteractive:!1,load:()=>import(`./clear-Cf1D1WkR.js`)}})),F3,VXt=n((()=>{F3={type:`local-jsx`,name:`color`,description:`Set the prompt bar color for this session`,immediate:!0,argumentHint:`<color|default>`,load:()=>import(`./color-DqtpdhFx.js`)}}));function HXt(){let{commit:e}=zZ(),t=``;return process.env.USER_TYPE===`ant`&&bu()&&(t=spe()+`
|
|
3709
|
+
- **Hard limit: 40 lines.** If the plan is longer, delete prose — not file paths.`}));function XYt(e){return e===void 0||pXt.has(e)}function a3(){return!1}function ZYt(e){return c3(e)||e instanceof C&&e.status===429}function QYt(e){if(!(e instanceof E))return!1;let t=Dl(e);return t?.code===`ECONNRESET`||t?.code===`EPIPE`}async function*o3(e,t,n){let r=cXt(n),i={model:n.model,thinkingConfig:n.thinkingConfig,...pa()&&{fastMode:n.fastMode}},a=null,o=n.initialConsecutive529Errors??0,s,c=0;for(let l=1;l<=r+1;l++){if(n.signal?.aborted)throw new S;let u=pa()?i.fastMode&&!$ie():!1;try{if(process.env.USER_TYPE===`ant`){let e=WCe(i.model,u);if(e)throw e}let n=QYt(s);if(n&&Jr(`tengu_disable_keepalive_on_econnreset`,!1)&&(U(`Stale connection (ECONNRESET/EPIPE) — disabling keep-alive for retry`),kce()),a===null||s instanceof C&&s.status===401||l3(s)||nXt(s)||aXt(s)||n){if(s instanceof C&&s.status===401||l3(s)){let e=Xn()?.accessToken;e&&await qae(e)}a=await e()}return await t(a,l,i)}catch(e){if(s=e,U(`API error (attempt ${l}/${r+1}): ${e instanceof C?`${e.status} ${e.message}`:H(e)}`,{level:`error`}),u&&!a3()&&e instanceof C&&(e.status===429||c3(e))){let t=e.headers?.get(`anthropic-ratelimit-unified-overage-disabled-reason`);if(t!=null){bae(t),i.fastMode=!1;continue}let r=lXt(e);if(r!==null&&r<gXt){await Hs(r,n.signal,{abortError:d3});continue}let a=Math.max(r??hXt,_Xt),o=c3(e)?`overloaded`:`rate_limit`;Pae(Date.now()+a,o),pa()&&(i.fastMode=!1);continue}if(u&&tXt(e)){Kie(),i.fastMode=!1;continue}if(c3(e)&&!XYt(n.querySource))throw G(`tengu_api_529_background_dropped`,{query_source:n.querySource}),new h3(e,i);if(c3(e)&&(process.env.FALLBACK_FOR_ALL_PRIMARY_MODELS||!di()&&Kn(n.model))&&(o++,o>=fXt)){if(n.fallbackModel)throw G(`tengu_api_opus_fallback_triggered`,{original_model:n.model,fallback_model:n.fallbackModel,provider:dr()}),new g3(n.model,n.fallbackModel);if(process.env.USER_TYPE===`external`&&!process.env.IS_SANDBOX&&!a3())throw G(`tengu_api_custom_529_overloaded_error`,{}),new h3(Error(jwe),i)}let t=a3()&&ZYt(e);if(l>r&&!t||!(rXt(e)||oXt(e))&&(!(e instanceof C)||!sXt(e)))throw new h3(e,i);if(e instanceof C){let t=eXt(e);if(t){let{inputTokens:n,contextLimit:r}=t,a=Math.max(0,r-n-1e3);if(a<f3)throw q(Error(`availableContext ${a} is less than FLOOR_OUTPUT_TOKENS ${f3}`)),e;let o=(i.thinkingConfig.type===`enabled`?i.thinkingConfig.budgetTokens:0)+1,s=Math.max(f3,a,o);i.maxTokensOverride=s,G(`tengu_max_tokens_context_overflow_adjustment`,{inputTokens:n,contextLimit:r,adjustedMaxTokens:s,attempt:l});continue}}let a=$Yt(e),d;t&&e instanceof C&&e.status===429?(c++,d=uXt(e)??Math.min(s3(c,a,p3),m3)):t?(c++,d=Math.min(s3(c,a,p3),m3)):d=s3(l,a);let f=t?c:l;if(G(`tengu_api_retry`,{attempt:f,delayMs:d,error:e.message,status:e.status,provider:dr()}),t){d>6e4&&G(`tengu_api_persistent_retry_wait`,{status:e.status,delayMs:d,attempt:f,provider:dr()});let t=d;for(;t>0;){if(n.signal?.aborted)throw new S;e instanceof C&&(yield DYt(e,t,f,r));let i=Math.min(t,mXt);await Hs(i,n.signal,{abortError:d3}),t-=i}l>=r&&(l=r)}else e instanceof C&&(yield DYt(e,d,l,r)),await Hs(d,n.signal,{abortError:d3})}}throw new h3(s,i)}function $Yt(e){return(e.headers?.[`retry-after`]||e.headers?.get?.(`retry-after`))??null}function s3(e,t,n=32e3){if(t){let e=parseInt(t,10);if(!isNaN(e))return e*1e3}let r=Math.min(500*2**(e-1),n);return r+Math.random()*.25*r}function eXt(e){if(e.status!==400||!e.message||!e.message.includes("input length and `max_tokens` exceed context limit"))return;let t=e.message.match(/input length and `max_tokens` exceed context limit: (\d+) \+ (\d+) > (\d+)/);if(!t||t.length!==4)return;if(!t[1]||!t[2]||!t[3]){q(Error(`Unable to parse max_tokens from max_tokens exceed context limit error message`));return}let n=parseInt(t[1],10),r=parseInt(t[2],10),i=parseInt(t[3],10);if(!(isNaN(n)||isNaN(r)||isNaN(i)))return{inputTokens:n,maxTokens:r,contextLimit:i}}function tXt(e){return e instanceof C?e.status===400&&(e.message?.includes(`Fast mode is not enabled`)??!1):!1}function c3(e){return e instanceof C?e.status===529||(e.message?.includes(`"type":"overloaded_error"`)??!1):!1}function l3(e){return e instanceof C&&e.status===403&&(e.message?.includes(`OAuth token has been revoked`)??!1)}function nXt(e){return!!(x(process.env.CLAUDE_CODE_USE_BEDROCK)&&(Hie(e)||e instanceof C&&e.status===403))}function rXt(e){return nXt(e)?(Wre(),!0):!1}function iXt(e){if(!(e instanceof Error))return!1;let t=e.message;return t.includes(`Could not load the default credentials`)||t.includes(`Could not refresh access token`)||t.includes(`invalid_grant`)}function aXt(e){return!!(x(process.env.CLAUDE_CODE_USE_VERTEX)&&(iXt(e)||e instanceof C&&e.status===401))}function oXt(e){return aXt(e)?(uie(),!0):!1}function sXt(e){if(GCe(e))return!1;if(a3()&&ZYt(e)||x(process.env.CLAUDE_CODE_REMOTE)&&(e.status===401||e.status===403)||e.message?.includes(`"type":"overloaded_error"`)||eXt(e))return!0;let t=e.headers?.get(`x-should-retry`);if(t===`true`&&(!di()||Gae()))return!0;if(t===`false`){let t=e.status!==void 0&&e.status>=500;if(!(process.env.USER_TYPE===`ant`&&t))return!1}return e instanceof E?!0:e.status?e.status===408||e.status===409?!0:e.status===429?!di()||Gae():e.status===401?(Are(),!0):!!(l3(e)||e.status&&e.status>=500):!1}function u3(){return process.env.CLAUDE_CODE_MAX_RETRIES?parseInt(process.env.CLAUDE_CODE_MAX_RETRIES,10):dXt}function cXt(e){return e.maxRetries??u3()}function lXt(e){let t=$Yt(e);if(t){let e=parseInt(t,10);if(!isNaN(e))return e*1e3}return null}function uXt(e){let t=e.headers?.get?.(`anthropic-ratelimit-unified-reset`);if(!t)return null;let n=Number(t);if(!Number.isFinite(n))return null;let r=n*1e3-Date.now();return r<=0?null:Math.min(r,m3)}var d3,dXt,f3,fXt,pXt,p3,m3,mXt,h3,g3,hXt,gXt,_Xt,_3=n((()=>{Ka(),Mre(),W(),Ao(),i3(),Pn(),Wi(),y(),ka(),ca(),hr(),Vs(),Us(),wr(),Ua(),H_(),dv(),X_(),d3=()=>new S,dXt=10,f3=3e3,fXt=3,pXt=new Set([`repl_main_thread`,`repl_main_thread:outputStyle:custom`,`repl_main_thread:outputStyle:Explanatory`,`repl_main_thread:outputStyle:Learning`,`sdk`,`agent:custom`,`agent:default`,`agent:builtin`,`compact`,`hook_agent`,`hook_prompt`,`verification_agent`,`side_question`,`auto_mode`,...[]]),p3=300*1e3,m3=360*60*1e3,mXt=3e4,h3=class extends Error{constructor(e,t){let n=H(e);super(n),this.originalError=e,this.retryContext=t,this.name=`RetryError`,e instanceof Error&&e.stack&&(this.stack=e.stack)}},g3=class extends Error{constructor(e,t){super(`Model fallback triggered: ${e} -> ${t}`),this.originalModel=e,this.fallbackModel=t,this.name=`FallbackTriggeredError`}},hXt=1800*1e3,gXt=20*1e3,_Xt=600*1e3})),v3,vXt=n((()=>{it(),Fs(),v3=J(()=>L({restrictions:Fe(F(),L({allowed:We()}))}))}));function yXt(e){return e instanceof Error}function bXt(){k3||x3()&&(k3=new Promise(e=>{A3=e,setTimeout(()=>{A3&&(U(`Policy limits: Loading promise timed out, resolving anyway`),A3(),A3=null)},LXt)}))}function y3(){return Y(_(),PXt)}function xXt(){return`${ro().BASE_API_URL}/api/claude_code/policy_limits`}function b3(e){if(Array.isArray(e))return e.map(b3);if(typeof e==`object`&&e){let t={};for(let[n,r]of Object.entries(e).sort(([e],[t])=>e.localeCompare(t)))t[n]=b3(r);return t}return e}function SXt(e){let t=V(b3(e));return`sha256:${id(`sha256`).update(t).digest(`hex`)}`}function x3(){if(ar()!==`firstParty`||!Wn())return!1;try{let{key:e}=Un({skipRetrievingKeyFromApiKeyHelper:!0});if(e)return!0}catch{}let e=Xn();return!(!e?.accessToken||!e.scopes?.includes(`user:inference`)||e.subscriptionType!==`enterprise`&&e.subscriptionType!==`team`)}async function CXt(){k3&&await k3}function wXt(){try{let{key:e}=Un({skipRetrievingKeyFromApiKeyHelper:!0});if(e)return{headers:{"x-api-key":e}}}catch{}let e=Xn();return e?.accessToken?{headers:{Authorization:`Bearer ${e.accessToken}`,"anthropic-beta":Ese}}:{headers:{},error:`No authentication available`}}async function TXt(e){let t=null;for(let n=1;n<=E3+1;n++){if(t=await EXt(e),t.success||t.skipRetry||n>E3)return t;let r=s3(n);U(`Policy limits: Retry ${n}/${E3} after ${r}ms`),await Hs(r)}return t}async function EXt(e){try{await gr();let t=wXt();if(t.error)return{success:!1,error:`Authentication required for policy limits`,skipRetry:!0};let n=xXt(),r={...t.headers,"User-Agent":Cn()};e&&(r[`If-None-Match`]=`"${e}"`);let i=await Oe.get(n,{headers:r,timeout:FXt,validateStatus:e=>e===200||e===304||e===404});if(i.status===304)return U(`Policy limits: Using cached restrictions (304)`),{success:!0,restrictions:null,etag:e};if(i.status===404)return U(`Policy limits: No restrictions found (404)`),{success:!0,restrictions:{},etag:void 0};let a=v3().safeParse(i.data);return a.success?(U(`Policy limits: Fetched successfully`),{success:!0,restrictions:a.data.restrictions}):(U(`Policy limits: Invalid response format - ${a.error.message}`),{success:!1,error:`Invalid policy limits format`})}catch(e){let{kind:t,message:n}=Zoe(e);switch(t){case`auth`:return{success:!1,error:`Not authorized for policy limits`,skipRetry:!0};case`timeout`:return{success:!1,error:`Policy limits request timeout`};case`network`:return{success:!1,error:`Cannot connect to server`};default:return{success:!1,error:n}}}}function DXt(){try{let e=os(Uu(y3(),`utf-8`),!1),t=v3().safeParse(e);return t.success?t.data.restrictions:null}catch{return null}}async function OXt(e){try{let t=y3();await wd(t,V({restrictions:e},null,2),{encoding:`utf-8`,mode:384}),U(`Policy limits: Saved to ${t}`)}catch(e){U(`Policy limits: Failed to save - ${e instanceof Error?e.message:`unknown error`}`)}}async function S3(){if(!x3())return null;let e=DXt(),t=e?SXt(e):void 0;try{let n=await TXt(t);if(!n.success)return e?(U(`Policy limits: Using stale cache after fetch failure`),j3=e,e):null;if(n.restrictions===null&&e)return U(`Policy limits: Cache still valid (304 Not Modified)`),j3=e,e;let r=n.restrictions||{};if(Object.keys(r).length>0)return j3=r,await OXt(r),U(`Policy limits: Applied new restrictions successfully`),r;j3=r;try{await Cd(y3()),U(`Policy limits: Deleted cached file (404 response)`)}catch(e){yXt(e)&&e.code!==`ENOENT`&&U(`Policy limits: Failed to delete cached file - ${e.message}`)}return r}catch{return e?(U(`Policy limits: Using stale cache after error`),j3=e,e):null}}function C3(e){let t=kXt();if(!t)return!(Do()&&RXt.has(e));let n=t[e];return n?n.allowed:!0}function kXt(){if(!x3())return null;if(j3)return j3;let e=DXt();return e?(j3=e,e):null}async function AXt(){x3()&&!k3&&(k3=new Promise(e=>{A3=e}));try{await S3(),x3()&&NXt()}finally{A3&&(A3(),A3=null)}}async function jXt(){await w3(),x3()&&(await S3(),U(`Policy limits: Refreshed after auth change`))}async function w3(){T3(),j3=null,k3=null,A3=null;try{await Cd(y3())}catch{}}async function MXt(){if(!x3())return;let e=j3?V(j3):null;try{await S3(),(j3?V(j3):null)!==e&&U(`Policy limits: Changed during background poll`)}catch{}}function NXt(){D3===null&&x3()&&(D3=setInterval(()=>{MXt()},IXt),D3.unref(),O3||(O3=!0,ja(async()=>T3())))}function T3(){D3!==null&&(clearInterval(D3),D3=null)}var PXt,FXt,E3,IXt,D3,O3,k3,A3,LXt,j3,RXt,M3=n((()=>{ke(),io(),Wi(),Ma(),W(),y(),ka(),as(),Pn(),To(),Us(),Va(),ki(),_3(),vXt(),PXt=`policy-limits.json`,FXt=1e4,E3=5,IXt=3600*1e3,D3=null,O3=!1,k3=null,A3=null,LXt=3e4,j3=null,RXt=new Set([`allow_product_feedback`])})),N3,zXt=n((()=>{M3(),y(),To(),N3={aliases:[`bug`],type:`local-jsx`,name:`feedback`,description:`Submit feedback about Claude Code`,argumentHint:`[report]`,isEnabled:()=>!(x(process.env.CLAUDE_CODE_USE_BEDROCK)||x(process.env.CLAUDE_CODE_USE_VERTEX)||x(process.env.CLAUDE_CODE_USE_FOUNDRY)||x(process.env.DISABLE_FEEDBACK_COMMAND)||x(process.env.DISABLE_BUG_COMMAND)||Do()||process.env.USER_TYPE===`ant`||!C3(`allow_product_feedback`)),load:()=>import(`./feedback-D5iWO16P.js`)}})),P3,BXt=n((()=>{P3={type:`local`,name:`clear`,description:`Clear conversation history and free up context`,aliases:[`reset`,`new`],supportsNonInteractive:!1,load:()=>import(`./clear-C9pufI6F.js`)}})),F3,VXt=n((()=>{F3={type:`local-jsx`,name:`color`,description:`Set the prompt bar color for this session`,immediate:!0,argumentHint:`<color|default>`,load:()=>import(`./color-AYeAYKyq.js`)}}));function HXt(){let{commit:e}=zZ(),t=``;return process.env.USER_TYPE===`ant`&&bu()&&(t=spe()+`
|
|
3710
3710
|
`),`${t}## Context
|
|
3711
3711
|
|
|
3712
3712
|
- Current git status: !\`git status\`
|
|
@@ -3741,7 +3741,7 @@ EOF
|
|
|
3741
3741
|
)"
|
|
3742
3742
|
\`\`\`
|
|
3743
3743
|
|
|
3744
|
-
You have the capability to call multiple tools in a single response. Stage and create the commit using a single message. Do not use any other tools or do anything else. Do not send any other text or messages besides these tool calls.`}var I3,UXt,WXt=n((()=>{BZ(),qW(),yu(),I3=[`Bash(git add:*)`,`Bash(git status:*)`,`Bash(git commit:*)`],UXt={type:`prompt`,name:`commit`,description:`Create a git commit`,allowedTools:I3,contentLength:0,progressMessage:`creating commit`,source:`builtin`,async getPromptForCommand(e,t){return[{type:`text`,text:await KW(HXt(),{...t,getAppState(){let e=t.getAppState();return{...e,toolPermissionContext:{...e.toolPermissionContext,alwaysAllowRules:{...e.toolPermissionContext.alwaysAllowRules,command:I3}}}}},`/commit`)}]}}})),L3,GXt=n((()=>{L3={type:`local-jsx`,name:`copy`,description:`Copy Claude's last response to clipboard (or /copy N for the Nth-latest)`,load:()=>import(`./copy-
|
|
3744
|
+
You have the capability to call multiple tools in a single response. Stage and create the commit using a single message. Do not use any other tools or do anything else. Do not send any other text or messages besides these tool calls.`}var I3,UXt,WXt=n((()=>{BZ(),qW(),yu(),I3=[`Bash(git add:*)`,`Bash(git status:*)`,`Bash(git commit:*)`],UXt={type:`prompt`,name:`commit`,description:`Create a git commit`,allowedTools:I3,contentLength:0,progressMessage:`creating commit`,source:`builtin`,async getPromptForCommand(e,t){return[{type:`text`,text:await KW(HXt(),{...t,getAppState(){let e=t.getAppState();return{...e,toolPermissionContext:{...e.toolPermissionContext,alwaysAllowRules:{...e.toolPermissionContext.alwaysAllowRules,command:I3}}}}},`/commit`)}]}}})),L3,GXt=n((()=>{L3={type:`local-jsx`,name:`copy`,description:`Copy Claude's last response to clipboard (or /copy N for the Nth-latest)`,load:()=>import(`./copy-CbhxPqw4.js`)}}));function KXt(){return process.platform===`darwin`||process.platform===`win32`&&process.arch===`x64`}var qXt,JXt=n((()=>{qXt={type:`local-jsx`,name:`desktop`,aliases:[`app`],description:`Continue the current session in Claude Desktop`,availability:[`claude-ai`],isEnabled:KXt,get isHidden(){return!KXt()},load:()=>import(`./desktop-ZASE3YWy.js`)}}));function YXt(e,t){let{commit:n,pr:r}=zZ(),i=t??r,a=process.env.SAFEUSER||``,o=process.env.USER||``,s=``,c=" and `--reviewer anthropics/claude-code`",l=" (and add `--add-reviewer anthropics/claude-code`)",u=`
|
|
3745
3745
|
|
|
3746
3746
|
## Changelog
|
|
3747
3747
|
<!-- CHANGELOG:START -->
|
|
@@ -3797,7 +3797,7 @@ EOF
|
|
|
3797
3797
|
|
|
3798
3798
|
You have the capability to call multiple tools in a single response. You MUST do all of the above in a single message.${d}
|
|
3799
3799
|
|
|
3800
|
-
Return the PR URL when you're done, so the user can see it.`}var R3,XXt,ZXt=n((()=>{BZ(),no(),qW(),yu(),R3=[`Bash(git checkout --branch:*)`,`Bash(git checkout -b:*)`,`Bash(git add:*)`,`Bash(git status:*)`,`Bash(git push:*)`,`Bash(git commit:*)`,`Bash(gh pr create:*)`,`Bash(gh pr edit:*)`,`Bash(gh pr view:*)`,`Bash(gh pr merge:*)`,`SearchExtraTools`,`mcp__slack__send_message`,`mcp__claude_ai_Slack__slack_send_message`],XXt={type:`prompt`,name:`commit-push-pr`,description:`Commit, push, and open a PR`,allowedTools:R3,get contentLength(){return YXt(`main`).length},progressMessage:`creating commit and PR`,source:`builtin`,async getPromptForCommand(e,t){let[n,r]=await Promise.all([Za(),cLt(t.getAppState)]),i=YXt(n,r),a=e?.trim();return a&&(i+=`\n\n## Additional instructions from user\n\n${a}`),[{type:`text`,text:await KW(i,{...t,getAppState(){let e=t.getAppState();return{...e,toolPermissionContext:{...e.toolPermissionContext,alwaysAllowRules:{...e.toolPermissionContext.alwaysAllowRules,command:R3}}}}},`/commit-push-pr`)}]}}})),z3,QXt=n((()=>{y(),z3={type:`local`,name:`compact`,description:`Clear conversation history but keep a summary in context. Optional: /compact [instructions for summarization]`,isEnabled:()=>!x(process.env.DISABLE_COMPACT),supportsNonInteractive:!0,argumentHint:`<optional custom summarization instructions>`,load:()=>import(`./compact-
|
|
3800
|
+
Return the PR URL when you're done, so the user can see it.`}var R3,XXt,ZXt=n((()=>{BZ(),no(),qW(),yu(),R3=[`Bash(git checkout --branch:*)`,`Bash(git checkout -b:*)`,`Bash(git add:*)`,`Bash(git status:*)`,`Bash(git push:*)`,`Bash(git commit:*)`,`Bash(gh pr create:*)`,`Bash(gh pr edit:*)`,`Bash(gh pr view:*)`,`Bash(gh pr merge:*)`,`SearchExtraTools`,`mcp__slack__send_message`,`mcp__claude_ai_Slack__slack_send_message`],XXt={type:`prompt`,name:`commit-push-pr`,description:`Commit, push, and open a PR`,allowedTools:R3,get contentLength(){return YXt(`main`).length},progressMessage:`creating commit and PR`,source:`builtin`,async getPromptForCommand(e,t){let[n,r]=await Promise.all([Za(),cLt(t.getAppState)]),i=YXt(n,r),a=e?.trim();return a&&(i+=`\n\n## Additional instructions from user\n\n${a}`),[{type:`text`,text:await KW(i,{...t,getAppState(){let e=t.getAppState();return{...e,toolPermissionContext:{...e.toolPermissionContext,alwaysAllowRules:{...e.toolPermissionContext.alwaysAllowRules,command:R3}}}}},`/commit-push-pr`)}]}}})),z3,QXt=n((()=>{y(),z3={type:`local`,name:`compact`,description:`Clear conversation history but keep a summary in context. Optional: /compact [instructions for summarization]`,isEnabled:()=>!x(process.env.DISABLE_COMPACT),supportsNonInteractive:!0,argumentHint:`<optional custom summarization instructions>`,load:()=>import(`./compact-BF0-0_qh.js`)}})),$Xt,eZt=n((()=>{$Xt={aliases:[`settings`],type:`local-jsx`,name:`config`,description:`Open config panel`,load:()=>import(`./config-45GLd-lt.js`)}})),tZt,nZt,rZt=n((()=>{tn(),tZt={name:`context`,description:`Visualize current context usage as a colored grid`,isEnabled:()=>!Kt(),type:`local-jsx`,load:()=>import(`./context-Bl5VUX5M.js`)},nZt={type:`local`,name:`context`,supportsNonInteractive:!0,description:`Show current context usage`,get isHidden(){return!Kt()},isEnabled(){return Kt()},load:()=>import(`./context-noninteractive-BtzPsJ8k.js`)}})),iZt,aZt=n((()=>{iZt={type:`local-jsx`,name:`diff`,description:`View uncommitted changes and per-turn diffs`,load:()=>import(`./diff-QP-TbxuD.js`)}})),oZt,sZt=n((()=>{y(),oZt={name:`doctor`,description:`Diagnose and verify your Claude Code installation and settings`,isEnabled:()=>!x(process.env.DISABLE_DOCTOR_COMMAND),type:`local-jsx`,load:()=>import(`./doctor-DVkgmkRb.js`)}})),cZt,lZt=n((()=>{cZt={type:`local-jsx`,name:`memory`,description:`Edit Claude memory files`,load:()=>import(`./memory-BYYOgo4e.js`)}})),B3,uZt=n((()=>{B3={type:`local-jsx`,name:`help`,description:`Show help and available commands`,load:()=>import(`./help-C2DM0p8U.js`)}})),dZt,fZt=n((()=>{dZt={type:`local-jsx`,name:`ide`,description:`Manage IDE integrations and show status`,argumentHint:`[open]`,load:()=>import(`./ide-Bn8R7397.js`)}})),pZt,mZt,hZt=n((()=>{xfe(),NTe(),y(),pZt=`Please analyze this codebase and create a CLAUDE.md file, which will be given to future instances of Claude Code to operate in this repository.
|
|
3801
3801
|
|
|
3802
3802
|
What to add:
|
|
3803
3803
|
1. Commands that will be commonly used, such as how to build, lint, and run tests. Include the necessary commands to develop in this codebase, such as how to run a single test.
|
|
@@ -4058,7 +4058,7 @@ After writing the skill file(s), inform the user:
|
|
|
4058
4058
|
3. That they can edit the skills to customize them
|
|
4059
4059
|
4. That they can run /init-verifiers again to add more verifiers for other areas
|
|
4060
4060
|
5. That the verifier will offer to self-update if it detects its own instructions are outdated (wrong dev server command, changed ready signal, etc.)
|
|
4061
|
-
`}]}}})),V3,vZt=n((()=>{Yw(),V3={name:`keybindings`,description:`Open or create your keybindings configuration file`,isEnabled:()=>Rw(),supportsNonInteractive:!1,type:`local`,load:()=>import(`./keybindings-
|
|
4061
|
+
`}]}}})),V3,vZt=n((()=>{Yw(),V3={name:`keybindings`,description:`Open or create your keybindings configuration file`,isEnabled:()=>Rw(),supportsNonInteractive:!1,type:`local`,load:()=>import(`./keybindings-BjaRqcbD.js`)}})),yZt,bZt=n((()=>{yZt={type:`local-jsx`,name:`lang`,description:`Set display language (en/zh/auto)`,immediate:!0,argumentHint:`<en|zh|auto>`,load:()=>import(`./lang-BI8CzjL6.js`)}})),xZt,SZt=n((()=>{Wi(),y(),xZt=()=>({type:`local-jsx`,name:`login`,description:coe()?`Switch Anthropic accounts`:`Sign in with your Anthropic account`,isEnabled:()=>!x(process.env.DISABLE_LOGIN_COMMAND),load:()=>import(`./login-Cf89biEK.js`)})})),CZt,wZt=n((()=>{y(),CZt={type:`local-jsx`,name:`logout`,description:`Sign out from your configured account`,isEnabled:()=>!x(process.env.DISABLE_LOGOUT_COMMAND),load:()=>import(`./logout-CEXwTlEX.js`)}})),TZt,EZt=n((()=>{y(),TZt={type:`local-jsx`,name:`install-github-app`,description:`Set up Claude GitHub Actions for a repository`,availability:[`claude-ai`,`console`],isEnabled:()=>!x(process.env.DISABLE_INSTALL_GITHUB_APP_COMMAND),load:()=>import(`./install-github-app-SD4PvrTR.js`)}})),DZt,OZt=n((()=>{DZt={type:`local`,name:`install-slack-app`,description:`Install the Claude Slack app`,availability:[`claude-ai`],supportsNonInteractive:!1,load:()=>import(`./install-slack-app-DLQXpOCt.js`)}})),kZt,AZt=n((()=>{kZt={type:`local-jsx`,name:`mcp`,description:`Manage MCP servers`,immediate:!0,argumentHint:`[enable|disable [server-name]]`,load:()=>import(`./mcp-CZltNml5.js`)}})),H3,jZt=n((()=>{H3={type:`local-jsx`,name:`mobile`,aliases:[`ios`,`android`],description:`Show QR code to download the Claude mobile app`,load:()=>import(`./mobile-umu5P0cM.js`)}})),MZt,NZt=n((()=>{MZt={type:`local-jsx`,name:`onboarding`,description:`Re-run the first-run setup (theme, trust, model, MCP)`,argumentHint:`[full|theme|trust|model|mcp|status]`,isEnabled:()=>!0,isHidden:!1,bridgeSafe:!1,getBridgeInvocationError:()=>`onboarding requires the local interactive UI and is not bridge-safe`,load:async()=>({call:(await import(`./launchOnboarding-WEW34cnl.js`)).callOnboarding})}}));function PZt({name:e,description:t,progressMessage:n,pluginName:r,pluginCommand:i,getPromptWhileMarketplaceIsPrivate:a}){return{type:`prompt`,name:e,description:t,progressMessage:n,contentLength:0,userFacingName(){return e},source:`builtin`,async getPromptForCommand(e,t){return process.env.USER_TYPE===`ant`?[{type:`text`,text:`This command has been moved to a plugin. Tell the user:
|
|
4062
4062
|
|
|
4063
4063
|
1. To install the plugin, run:
|
|
4064
4064
|
claude plugin install ${r}@claude-code-marketplace
|
|
@@ -4100,7 +4100,7 @@ Remember:
|
|
|
4100
4100
|
5. Use jq to parse the JSON responses from the GitHub API
|
|
4101
4101
|
|
|
4102
4102
|
${e?`Additional user input: `+e:``}
|
|
4103
|
-
`}]}})})),U3,RZt=n((()=>{U3={description:`View release notes`,name:`release-notes`,type:`local`,supportsNonInteractive:!0,load:()=>import(`./release-notes-
|
|
4103
|
+
`}]}})})),U3,RZt=n((()=>{U3={description:`View release notes`,name:`release-notes`,type:`local`,supportsNonInteractive:!0,load:()=>import(`./release-notes-Cg85UVo8.js`)}})),zZt,BZt=n((()=>{zZt={type:`local-jsx`,name:`rename`,description:`Rename the current conversation`,immediate:!0,argumentHint:`[name]`,load:()=>import(`./rename-Bigaipiq.js`)}})),VZt,HZt=n((()=>{VZt={type:`local-jsx`,name:`resume`,description:`Resume a previous conversation`,aliases:[`continue`],argumentHint:`[conversation id or search term]`,load:()=>import(`./resume-CtOI2pOJ.js`)}}));function UZt(){return Jr(`tengu_review_bughunter_config`,null)?.enabled===!0}var WZt=n((()=>{wr()})),GZt,KZt,W3,qZt,JZt=n((()=>{WZt(),GZt=`https://code.claude.com/docs/en/claude-code-on-the-web`,KZt=e=>`
|
|
4104
4104
|
You are an expert code reviewer. Follow these steps:
|
|
4105
4105
|
|
|
4106
4106
|
1. If no PR number is provided in the args, run \`gh pr list\` to show open PRs
|
|
@@ -4122,14 +4122,14 @@ ${e?`Additional user input: `+e:``}
|
|
|
4122
4122
|
Format your review with clear sections and bullet points.
|
|
4123
4123
|
|
|
4124
4124
|
PR number: ${e}
|
|
4125
|
-
`,W3={type:`prompt`,name:`review`,description:`Review a pull request`,progressMessage:`reviewing pull request`,contentLength:0,source:`builtin`,async getPromptForCommand(e){return[{type:`text`,text:KZt(e)}]}},qZt={type:`local-jsx`,name:`ultrareview`,description:`~10–20 min · Finds and verifies bugs in your branch. Runs in Claude Code on the web. See ${GZt}`,isEnabled:()=>UZt(),load:()=>import(`./ultrareviewCommand-
|
|
4125
|
+
`,W3={type:`prompt`,name:`review`,description:`Review a pull request`,progressMessage:`reviewing pull request`,contentLength:0,source:`builtin`,async getPromptForCommand(e){return[{type:`text`,text:KZt(e)}]}},qZt={type:`local-jsx`,name:`ultrareview`,description:`~10–20 min · Finds and verifies bugs in your branch. Runs in Claude Code on the web. See ${GZt}`,isEnabled:()=>UZt(),load:()=>import(`./ultrareviewCommand-BY0T8Pzl.js`)}})),G3,YZt=n((()=>{tn(),G3={type:`local-jsx`,name:`session`,aliases:[`remote`],description:`Show remote session URL and QR code`,isEnabled:()=>Yt(),get isHidden(){return!Yt()},load:()=>import(`./session-C5yIf_zV.js`)}}));function XZt(e){let t=td(),n=e.replace(new RegExp(t.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),`g`),`~`);return n.length>200&&(n=n.slice(0,200)+`…`),n}function K3(e,t,n){return kpe(Gu.execFile)(e,t,n)}function ZZt(e){let t=e;for(let{pattern:e,replacement:n}of iQt)t=t.replace(e,n);return t}function QZt(e){try{let t=Yu(e,`utf8`).trim().split(`
|
|
4126
4126
|
`).filter(Boolean),n=[];for(let e of t)try{let t=JSON.parse(e),r=t.role;if(r!==`user`&&r!==`assistant`)continue;let i=t.content,a=``;typeof i==`string`?a=i.slice(0,200):Array.isArray(i)&&(a=(i.find(e=>e.type===`text`)?.text??``).slice(0,200)),a&&n.push(JSON.stringify({role:r,content:a}))}catch{}return n.join(`
|
|
4127
4127
|
`)}catch{return``}}function $Zt(){let e=Ft(),t=Gt();if(t)return Ru(t,`${e}.jsonl`);let n=Wo(fn());return Ru(_(),`projects`,n,`${e}.jsonl`)}async function eQt(){try{return await K3(`gh`,[`--version`],{timeout:3e3}),!0}catch{return!1}}async function tQt(e,t){let n=(await K3(`gh`,[`gist`,`create`,e,t?`--public`:`--secret`,`--filename`,`claude-session.jsonl`],{timeout:3e4})).stdout.trim();if(!n.startsWith(`https://`))throw Error(`Unexpected gh gist output: ${n}`);return n}async function nQt(e){let t=(await K3(`curl`,[`-s`,`-F`,`file=@${e}`,`https://0x0.st`],{timeout:2e4})).stdout.trim();if(!t.startsWith(`https://`)&&!t.startsWith(`http://`))throw Error(`0x0.st returned unexpected output: ${t.slice(0,100)}`);return t}function rQt(e){let t=e.trim().split(/\s+/).filter(Boolean);return t.filter(e=>e.startsWith(`--`)&&![`--public`,`--private`,`--mask-secrets`,`--summary-only`,`--allow-public-fallback`].includes(e)).length>0?{isPublic:!1,maskSecrets:!1,summaryOnly:!1,allowPublicFallback:!1,valid:!1}:{isPublic:t.includes(`--public`),maskSecrets:t.includes(`--mask-secrets`),summaryOnly:t.includes(`--summary-only`),allowPublicFallback:t.includes(`--allow-public-fallback`),valid:!0}}var iQt,aQt,oQt=n((()=>{tn(),y(),Jo(),Ua(),iQt=[{pattern:/\b(sk-ant-[A-Za-z0-9_-]{20,})/g,replacement:`[REDACTED_ANTHROPIC_KEY]`},{pattern:/\b(sk-[A-Za-z0-9_-]{20,})/g,replacement:`[REDACTED_API_KEY]`},{pattern:/\b(Bearer\s+)[A-Za-z0-9._~+/-]{20,}/gi,replacement:`$1[REDACTED_TOKEN]`},{pattern:/("(?:api[_-]?key|token|secret|password|passwd|auth)["\s]*[:=]\s*")[^"]{8,}"/gi,replacement:`$1[REDACTED]"`},{pattern:/\b(AKIA[A-Z0-9]{16})\b/g,replacement:`[REDACTED_AWS_KEY]`},{pattern:/\b(gh[a-z]_[A-Za-z0-9_]{36,})/g,replacement:`[REDACTED_GH_TOKEN]`},{pattern:/\b(xoxb-[A-Za-z0-9-]{30,})/g,replacement:`[REDACTED_SLACK_TOKEN]`}],aQt={type:`local`,name:`share`,description:`Upload the current session log to GitHub Gist. Flags: --public, --private (default), --mask-secrets, --summary-only, --allow-public-fallback`,isHidden:!1,isEnabled:()=>!0,supportsNonInteractive:!0,bridgeSafe:!0,load:async()=>({call:async e=>{let t=rQt(e);if(!t.valid)return{type:`text`,value:[`Usage: /share [--public|--private] [--mask-secrets] [--summary-only] [--allow-public-fallback]`,``,` --public Create a public Gist (default: secret)`,` --private Create a secret Gist (default)`,` --mask-secrets Redact API keys, tokens, and secrets before uploading`,` --summary-only Upload a summary (first 200 chars per turn) instead of full log`,` --allow-public-fallback Fall back to 0x0.st if gh gist fails`].join(`
|
|
4128
4128
|
`)};let n=Ft(),r=$Zt();if(G(`tengu_share_started`,{visibility:t.isPublic?`public`:`private`,mask_secrets:String(t.maskSecrets),summary_only:String(t.summaryOnly)}),!qu(r))return G(`tengu_share_failed`,{reason:`log_not_found`}),{type:`text`,value:[`## Session log not found`,``,`Session: ${n}`,`Expected path: \`${r}\``,``,`The session log may not have been written yet. Try sending at least one message first.`].join(`
|
|
4129
4129
|
`)};let i=await eQt();if(!i&&!t.allowPublicFallback)return G(`tengu_share_failed`,{reason:`gh_not_installed`}),{type:`text`,value:[`## Share session log`,``,`Session: ${n}`,`Log file: \`${r}\``,``,"To upload to GitHub Gist automatically, install the `gh` CLI:",` https://cli.github.com/`,``,`Then run:`,` \`gh gist create "${r}" --secret --filename claude-session.jsonl\``,``,"Or use `--allow-public-fallback` to upload to 0x0.st instead.",``,`_Privacy note: the JSONL contains everything typed in this session,_`,`_including tool outputs. Review before sharing._`].join(`
|
|
4130
4130
|
`)};let a;if(t.summaryOnly){if(a=QZt(r),!a)return{type:`text`,value:`No conversation content found in session log.`}}else a=Yu(r,`utf8`);t.maskSecrets&&(a=ZZt(a));let o=$pe(Ru(nd(),`cc-share-`)),s=Ru(o,`claude-session.jsonl`);try{$u(s,a,`utf8`)}catch(e){return Qu(o,{recursive:!0,force:!0}),{type:`text`,value:`Failed to prepare share file: ${XZt(e instanceof Error?e.message:String(e))}`}}try{let e,r;if(i)try{e=await tQt(s,t.isPublic),r=`GitHub Gist`}catch(n){if(!t.allowPublicFallback)throw n;e=await nQt(s),r=`0x0.st (fallback)`}else e=await nQt(s),r=`0x0.st (fallback)`;return G(`tengu_share_succeeded`,{visibility:t.isPublic?`public`:`private`,method:r}),{type:`text`,value:[`## Session shared`,``,`URL: ${e}`,`Session: ${n}`,`Visibility: ${t.isPublic?`public`:`secret`}`,`Method: ${r}`,t.summaryOnly?`Content: summary only (truncated)`:``,t.maskSecrets?`Secrets: masked before upload`:``,``,`_Privacy note: the JSONL contains everything typed in this session._`].filter(e=>e!==``).join(`
|
|
4131
4131
|
`)}}catch(e){let t=e instanceof Error?e.message:String(e);return G(`tengu_share_failed`,{reason:`upload_error`}),{type:`text`,value:[`## Failed to share session`,``,`Error: ${t}`,``,i?"Make sure you are logged in: `gh auth login`":"Install the `gh` CLI: https://cli.github.com/",`Log file: \`${r}\``].join(`
|
|
4132
|
-
`)}}finally{Qu(o,{recursive:!0,force:!0})}}})}})),sQt,cQt=n((()=>{sQt={type:`local-jsx`,name:`skills`,description:`List available skills`,load:()=>import(`./skills-
|
|
4132
|
+
`)}}finally{Qu(o,{recursive:!0,force:!0})}}})}})),sQt,cQt=n((()=>{sQt={type:`local-jsx`,name:`skills`,description:`List available skills`,load:()=>import(`./skills-BVWDDcD9.js`)}})),lQt,uQt=n((()=>{lQt={type:`local-jsx`,name:`status`,description:`Show Claude Code status including version, model, account, API connectivity, and tool statuses`,immediate:!0,load:()=>import(`./status-DZKjK9CE.js`)}})),dQt,fQt=n((()=>{dQt={type:`local-jsx`,name:`tasks`,aliases:[`bashes`],description:`List and manage background tasks`,load:()=>import(`./tasks-vXM-vULI.js`)}})),pQt,mQt=n((()=>{pQt={type:`local-jsx`,name:`teleport`,aliases:[`tp`],description:`Resume a Claude Code session from claude.ai`,argumentHint:`SESSION_ID`,isHidden:!1,isEnabled:()=>!0,bridgeSafe:!1,getBridgeInvocationError:e=>`teleport resumes the REPL and is not bridge-safe`,load:async()=>({call:(await import(`./launchTeleport-uOtMsYcI.js`)).callTeleport})}})),hQt,gQt=n((()=>{xn(),hQt={type:`local-jsx`,name:`agents-platform`,aliases:[`agents`,`schedule-agent`],description:`Manage scheduled remote agents (cron-style triggers)`,argumentHint:`list | create CRON PROMPT | delete ID | run ID`,get isHidden(){return!process.env.ANTHROPIC_API_KEY&&!Tr().workspaceApiKey},isEnabled:()=>!0,bridgeSafe:!1,availability:[`claude-ai`],load:async()=>({call:(await import(`./launchAgentsPlatform-Bg9guiqy.js`)).callAgentsPlatform})}})),_Qt,vQt=n((()=>{_Qt={type:`local-jsx`,name:`triggers`,aliases:[`cron`],description:`Manage scheduled remote agent triggers (cloud cron). Requires Claude Pro/Max/Team subscription.`,argumentHint:`list | get ID | create CRON PROMPT | update ID FIELD VALUE | delete ID | run ID | enable ID | disable ID`,isHidden:!1,isEnabled:()=>!0,bridgeSafe:!1,availability:[`claude-ai`],load:async()=>({call:(await import(`./launchSchedule-X0rcM_kM.js`)).callSchedule})}})),yQt,bQt=n((()=>{xn(),yQt={type:`local-jsx`,name:`memory-stores`,aliases:[`mem`,`mstore`],description:`Manage remote memory stores (cross-device memory persistence). Requires Claude Pro/Max/Team subscription.`,argumentHint:`list | get ID | create NAME | archive ID | memories STORE_ID | create-memory STORE_ID CONTENT | get-memory STORE_ID MEMORY_ID | update-memory STORE_ID MEMORY_ID CONTENT | delete-memory STORE_ID MEMORY_ID | versions STORE_ID | redact STORE_ID VERSION_ID`,get isHidden(){return!process.env.ANTHROPIC_API_KEY&&!Tr().workspaceApiKey},isEnabled:()=>!0,bridgeSafe:!1,availability:[`claude-ai`],load:async()=>({call:(await import(`./launchMemoryStores-Bw11ruRi.js`)).callMemoryStores})}})),xQt,SQt=n((()=>{xn(),xQt={type:`local-jsx`,name:`skill-store`,aliases:[`ss`,`cloud-skills`],description:`Browse and install remote skills from the Anthropic skill marketplace. Requires Claude Pro/Max/Team subscription.`,argumentHint:`list | get ID | versions ID | version ID VER | create NAME MARKDOWN | delete ID | install ID[@VERSION]`,get isHidden(){return!process.env.ANTHROPIC_API_KEY&&!Tr().workspaceApiKey},isEnabled:()=>!0,bridgeSafe:!1,availability:[`claude-ai`],load:async()=>({call:(await import(`./launchSkillStore-DpxSlMCU.js`)).callSkillStore})}})),CQt,wQt=n((()=>{xn(),CQt={type:`local-jsx`,name:`vault`,aliases:[`vaults`],description:`Manage remote secret vaults and credentials for cloud agents. Requires Claude Pro/Max/Team subscription.`,argumentHint:`list | create NAME | get ID | archive ID | add-credential VAULT_ID KEY VALUE | archive-credential VAULT_ID CRED_ID`,get isHidden(){return!process.env.ANTHROPIC_API_KEY&&!Tr().workspaceApiKey},isEnabled:()=>!0,bridgeSafe:!1,availability:[`claude-ai`],load:async()=>({call:(await import(`./launchVault-CJyJaPqH.js`)).callVault})}})),TQt,EQt=n((()=>{TQt={type:`local-jsx`,name:`local-vault`,aliases:[`lv`,`local-secret`],description:`Manage local encrypted secrets. Stored in OS keychain or encrypted file fallback — no API key required.`,argumentHint:`list | set KEY VALUE | get KEY [--reveal] | delete KEY`,isHidden:!1,isEnabled:()=>!0,bridgeSafe:!0,load:async()=>({call:(await import(`./launchLocalVault-C0Oz-lto.js`)).callLocalVault})}})),DQt,OQt=n((()=>{DQt={type:`local-jsx`,name:`local-memory`,aliases:[`lm`],description:`Manage local memory stores for notes and context. Stored in ~/.claude/local-memory/ — no API key required.`,argumentHint:`list | create STORE | store STORE KEY VALUE | fetch STORE KEY | entries STORE | archive STORE`,isHidden:!1,isEnabled:()=>!0,bridgeSafe:!0,load:async()=>({call:(await import(`./launchLocalMemory-lgnXOi6U.js`)).callLocalMemory})}})),kQt,AQt,jQt=n((()=>{Of(),J9(),qW(),FZt(),kQt=`---
|
|
4133
4133
|
allowed-tools: Bash(git diff:*), Bash(git status:*), Bash(git log:*), Bash(git show:*), Bash(git remote show:*), Read, Glob, Grep, LS, Task
|
|
4134
4134
|
description: Complete a security review of the pending changes on the current branch
|
|
4135
4135
|
---
|
|
@@ -4319,7 +4319,7 @@ Begin your analysis now. Do this in 3 steps:
|
|
|
4319
4319
|
2. Then for each vulnerability identified by the above sub-task, create a new sub-task to filter out false-positives. Launch these sub-tasks as parallel sub-tasks. In the prompt for these sub-tasks, include everything in the "FALSE POSITIVE FILTERING" instructions.
|
|
4320
4320
|
3. Filter out any vulnerabilities where the sub-task reported a confidence less than 8.
|
|
4321
4321
|
|
|
4322
|
-
Your final reply must contain the markdown report and nothing else.`,AQt=PZt({name:`security-review`,description:`Complete a security review of the pending changes on the current branch`,progressMessage:`analyzing code changes for security risks`,pluginName:`security-review`,pluginCommand:`security-review`,async getPromptWhileMarketplaceIsPrivate(e,t){let n=Sf(kQt),r=K9(n.frontmatter[`allowed-tools`]);return[{type:`text`,text:await KW(n.content,{...t,getAppState(){let e=t.getAppState();return{...e,toolPermissionContext:{...e.toolPermissionContext,alwaysAllowRules:{...e.toolPermissionContext.alwaysAllowRules,command:r}}}}},`security-review`)}]}})})),MQt,NQt=n((()=>{MQt={isEnabled:()=>!1,isHidden:!0,name:`stub`}})),PQt,FQt=n((()=>{fo(),PQt={type:`local-jsx`,name:`terminal-setup`,description:po.terminal===`Apple_Terminal`?`Enable Option+Enter key binding for newlines and visual bell`:`Install Shift+Enter key binding for newlines`,isHidden:po.terminal!==null&&po.terminal in{ghostty:`Ghostty`,kitty:`Kitty`,"iTerm.app":`iTerm2`,WezTerm:`WezTerm`},load:()=>import(`./terminalSetup-yQ0CoywX.js`)}})),q3,IQt=n((()=>{q3={type:`local-jsx`,name:`usage`,aliases:[`cost`,`stats`],description:`Show session cost, plan usage, and activity stats`,load:()=>import(`./usage-DNXwr_ep.js`)}})),J3,LQt=n((()=>{J3={type:`local-jsx`,name:`theme`,description:`Change the theme`,load:()=>import(`./theme-C5ULGNRs.js`)}})),Y3,RQt=n((()=>{Y3={name:`vim`,description:`Toggle between Vim and Normal editing modes`,supportsNonInteractive:!1,type:`local`,load:()=>import(`./vim-BGqKMQxl.js`)}})),zQt,BQt=n((()=>{wr(),zQt={type:`local-jsx`,name:`think-back`,description:`Your 2025 Claude Code Year in Review`,isEnabled:()=>ci(`tengu_thinkback`),load:()=>import(`./thinkback-D1Fv1QYl.js`)}})),VQt,HQt=n((()=>{wr(),VQt={type:`local`,name:`thinkback-play`,description:`Play the thinkback animation`,isEnabled:()=>ci(`tengu_thinkback`),isHidden:!0,supportsNonInteractive:!1,load:()=>import(`./thinkback-play-syg_SJm8.js`)}})),UQt,WQt=n((()=>{UQt={type:`local-jsx`,name:`permissions`,aliases:[`allowed-tools`],description:`Manage allow & deny tool permission rules`,load:()=>import(`./permissions-CYrv_WVH.js`)}})),X3,GQt=n((()=>{X3={bridgeSafe:!0,getBridgeInvocationError(e){if(e.trim().split(/\s+/)[0]===`open`)return`Opening the local editor via /plan open isn't available over Remote Control.`},type:`local-jsx`,name:`plan`,description:`Enable plan mode or view the current session plan`,argumentHint:`[open|<description>]`,load:()=>import(`./plan-B7EPetF0.js`)}}));function Z3(){return process.env.USER_TYPE===`ant`||Jr(`tengu_immediate_model_command`,!1)}var Q3=n((()=>{wr()})),KQt,qQt=n((()=>{ca(),Q3(),KQt={type:`local-jsx`,name:`fast`,get description(){return`Toggle fast mode (${Rae} only)`},availability:[`claude-ai`,`console`],isEnabled:()=>pa(),get isHidden(){return!pa()},argumentHint:`[on|off]`,get immediate(){return Z3()},load:()=>import(`./fast-CxPB-PBH.js`)}})),JQt,YQt=n((()=>{Dfe(),JQt={type:`local-jsx`,name:`passes`,get description(){return wfe()?`Share a free week of Claude Code with friends and earn extra usage`:`Share a free week of Claude Code with friends`},get isHidden(){let{eligible:e,hasCache:t}=Ofe();return!e||!t},load:()=>import(`./passes-B1f6NHWA.js`)}})),XQt,ZQt=n((()=>{Wi(),XQt={type:`local-jsx`,name:`privacy-settings`,description:`View and update your privacy settings`,isEnabled:()=>hae(),load:()=>import(`./privacy-settings-CmHUlYoo.js`)}})),QQt,$Qt=n((()=>{QQt={type:`local-jsx`,name:`hooks`,description:`View hook configurations for tool events`,immediate:!0,load:()=>import(`./hooks-D22Uu3Vs.js`)}})),$3,e$t=n((()=>{$3={type:`local`,name:`files`,description:`List all files currently in context`,isEnabled:()=>process.env.USER_TYPE===`ant`,supportsNonInteractive:!0,load:()=>import(`./files-DYvAZGxp.js`)}})),t$t,n$t=n((()=>{t$t={type:`local-jsx`,name:`branch`,aliases:[`fork`],description:`Create a branch of the current conversation at this point`,argumentHint:`[name]`,load:()=>import(`./branch-Ac3HXXs2.js`)}})),r$t,i$t=n((()=>{r$t={type:`local-jsx`,name:`agents`,description:`Manage agent configurations`,load:()=>import(`./agents-CICHEOOq.js`)}})),a$t,o$t=n((()=>{a$t={type:`local-jsx`,name:`plugin`,aliases:[`plugins`,`marketplace`],description:`Manage Claude Code plugins`,immediate:!0,load:()=>import(`./plugin-BRWx-_ZS.js`)}})),s$t,c$t=n((()=>{s$t={type:`local`,name:`reload-plugins`,description:`Activate pending plugin changes in the current session`,supportsNonInteractive:!1,load:()=>import(`./reload-plugins-qUIybHNy.js`)}})),l$t,u$t=n((()=>{l$t={description:`Restore the code and/or conversation to a previous point`,name:`rewind`,aliases:[`checkpoint`],argumentHint:``,type:`local`,supportsNonInteractive:!1,load:()=>import(`./rewind-CXplHgh_.js`)}})),d$t,f$t=n((()=>{d$t={type:`local`,name:`heapdump`,description:`Dump the JS heap to ~/Desktop`,isHidden:!0,supportsNonInteractive:!0,load:()=>import(`./heapdump-BRj4tC1y.js`)}})),p$t,m$t=n((()=>{p$t={isEnabled:()=>!1,isHidden:!0,name:`stub`}}));function e6(e,t){if(!e||!b$t.test(e))throw Error(`Invalid ${t}: contains unsafe characters`);return e}function h$t(e){function t(t){e.onDebug?.(t)}let n=0;function r(t){let n={Authorization:`Bearer ${t}`,"Content-Type":`application/json`,"anthropic-version":`2023-06-01`,"anthropic-beta":y$t,"x-environment-runner-version":e.runnerVersion},r=e.getTrustedDeviceToken?.();return r&&(n[`X-Trusted-Device-Token`]=r),n}function i(){let t=e.getAccessToken();if(!t)throw Error(bpe);return t}async function a(n,r){let a=i(),o=await n(a);if(o.status!==401)return o;if(!e.onAuth401)return t(`[bridge:api] ${r}: 401 received, no refresh handler`),o;if(t(`[bridge:api] ${r}: 401 received, attempting token refresh`),await e.onAuth401(a)){t(`[bridge:api] ${r}: Token refreshed, retrying request`);let e=await n(i());if(e.status!==401)return e;t(`[bridge:api] ${r}: Retry after refresh also got 401`)}else t(`[bridge:api] ${r}: Token refresh failed`);return o}return{async registerBridgeEnvironment(n){t(`[bridge:api] POST /v1/environments/bridge bridgeId=${n.bridgeId}`);let i=await a(t=>Oe.post(`${e.baseUrl}/v1/environments/bridge`,{machine_name:n.machineName,directory:n.dir,branch:n.branch,git_repo_url:n.gitRepoUrl,max_sessions:n.maxSessions,metadata:{worker_type:n.workerType},...n.reuseEnvironmentId&&{environment_id:n.reuseEnvironmentId}},{headers:r(t),timeout:15e3,validateStatus:e=>e<500}),`Registration`);return t6(i.status,i.data,`Registration`),t(`[bridge:api] POST /v1/environments/bridge -> ${i.status} environment_id=${i.data.environment_id}`),t(`[bridge:api] >>> ${Bl({machine_name:n.machineName,directory:n.dir,branch:n.branch,git_repo_url:n.gitRepoUrl,max_sessions:n.maxSessions,metadata:{worker_type:n.workerType}})}`),t(`[bridge:api] <<< ${Bl(i.data)}`),i.data},async pollForWork(i,a,o,s){e6(i,`environmentId`);let c=n;n=0;let l=await Oe.get(`${e.baseUrl}/v1/environments/${i}/work/poll`,{headers:r(a),params:s===void 0?void 0:{reclaim_older_than_ms:s},timeout:1e4,signal:o,validateStatus:e=>e<500});return t6(l.status,l.data,`Poll`),Vue(`poll response: status=${l.status} hasData=${!!l.data} url=${e.baseUrl}`),l.data?(t(`[bridge:api] GET .../work/poll -> ${l.status} workId=${l.data.id} type=${l.data.data?.type}${l.data.data?.id?` sessionId=${l.data.data.id}`:``}`),t(`[bridge:api] <<< ${Bl(l.data)}`),l.data):(n=c+1,(n===1||n%100==0)&&t(`[bridge:api] GET .../work/poll -> ${l.status} (no work, ${n} consecutive empty polls)`),null)},async acknowledgeWork(n,i,a){e6(n,`environmentId`),e6(i,`workId`),t(`[bridge:api] POST .../work/${i}/ack`);let o=await Oe.post(`${e.baseUrl}/v1/environments/${n}/work/${i}/ack`,{},{headers:r(a),timeout:1e4,validateStatus:e=>e<500});t6(o.status,o.data,`Acknowledge`),t(`[bridge:api] POST .../work/${i}/ack -> ${o.status}`)},async stopWork(n,i,o){e6(n,`environmentId`),e6(i,`workId`),t(`[bridge:api] POST .../work/${i}/stop force=${o}`);let s=await a(t=>Oe.post(`${e.baseUrl}/v1/environments/${n}/work/${i}/stop`,{force:o},{headers:r(t),timeout:1e4,validateStatus:e=>e<500}),`StopWork`);t6(s.status,s.data,`StopWork`),t(`[bridge:api] POST .../work/${i}/stop -> ${s.status}`)},async deregisterEnvironment(n){e6(n,`environmentId`),t(`[bridge:api] DELETE /v1/environments/bridge/${n}`);let i=await a(t=>Oe.delete(`${e.baseUrl}/v1/environments/bridge/${n}`,{headers:r(t),timeout:1e4,validateStatus:e=>e<500}),`Deregister`);t6(i.status,i.data,`Deregister`),t(`[bridge:api] DELETE /v1/environments/bridge/${n} -> ${i.status}`)},async archiveSession(n){e6(n,`sessionId`),t(`[bridge:api] POST /v1/sessions/${n}/archive`);let i=await a(t=>Oe.post(`${e.baseUrl}/v1/sessions/${n}/archive`,{},{headers:r(t),timeout:1e4,validateStatus:e=>e<500}),`ArchiveSession`);if(i.status===409){t(`[bridge:api] POST /v1/sessions/${n}/archive -> 409 (already archived)`);return}t6(i.status,i.data,`ArchiveSession`),t(`[bridge:api] POST /v1/sessions/${n}/archive -> ${i.status}`)},async reconnectSession(n,i){e6(n,`environmentId`),e6(i,`sessionId`),t(`[bridge:api] POST /v1/environments/${n}/bridge/reconnect session_id=${i}`);let o=await a(t=>Oe.post(`${e.baseUrl}/v1/environments/${n}/bridge/reconnect`,{session_id:i},{headers:r(t),timeout:1e4,validateStatus:e=>e<500}),`ReconnectSession`);t6(o.status,o.data,`ReconnectSession`),t(`[bridge:api] POST .../bridge/reconnect -> ${o.status}`)},async heartbeatWork(n,i,a){e6(n,`environmentId`),e6(i,`workId`),t(`[bridge:api] POST .../work/${i}/heartbeat`);let o=await Oe.post(`${e.baseUrl}/v1/environments/${n}/work/${i}/heartbeat`,{},{headers:r(a),timeout:1e4,validateStatus:e=>e<500});return t6(o.status,o.data,`Heartbeat`),t(`[bridge:api] POST .../work/${i}/heartbeat -> ${o.status} lease_extended=${o.data.lease_extended} state=${o.data.state}`),o.data},async sendPermissionResponseEvent(n,i,a){e6(n,`sessionId`),t(`[bridge:api] POST /v1/sessions/${n}/events type=${i.type}`);let o=await Oe.post(`${e.baseUrl}/v1/sessions/${n}/events`,{events:[i]},{headers:r(a),timeout:1e4,validateStatus:e=>e<500});t6(o.status,o.data,`SendPermissionResponseEvent`),t(`[bridge:api] POST /v1/sessions/${n}/events -> ${o.status}`),t(`[bridge:api] >>> ${Bl({events:[i]})}`),t(`[bridge:api] <<< ${Bl(o.data)}`)}}}function t6(e,t,n){if(e===200||e===204)return;let r=xde(t),i=v$t(t);switch(e){case 401:throw new n6(`${n}: Authentication failed (401)${r?`: ${r}`:``}. ${bpe}`,401,i);case 403:throw new n6(g$t(i)?"Remote Control session has expired. Please restart with `claude remote-control` or /remote-control.":`${n}: Access denied (403)${r?`: ${r}`:``}. Check your organization permissions.`,403,i);case 404:throw new n6(r??`${n}: Not found (404). Remote Control may not be available for this organization.`,404,i);case 410:throw new n6(r??"Remote Control session has expired. Please restart with `claude remote-control` or /remote-control.",410,i??`environment_expired`);case 429:throw Error(`${n}: Rate limited (429). Polling too frequently.`);default:throw Error(`${n}: Failed with status ${e}${r?`: ${r}`:``}`)}}function g$t(e){return e?e.includes(`expired`)||e.includes(`lifetime`):!1}function _$t(e){return e.status===403?e.message.includes(`external_poll_sessions`)||e.message.includes(`environments:manage`):!1}function v$t(e){if(e&&typeof e==`object`&&`error`in e&&e.error&&typeof e.error==`object`&&`type`in e.error&&typeof e.error.type==`string`)return e.error.type}var y$t,b$t,n6,x$t=n((()=>{ke(),Cde(),Gue(),vpe(),O(),y$t=`environments-2025-11-01`,b$t=/^[a-zA-Z0-9_-]+$/,n6=class extends Error{constructor(e,t,n){super(e),k(this,`status`,void 0),k(this,`errorType`,void 0),this.name=`BridgeFatalError`,this.status=t,this.errorType=n}}}));function S$t(e){r6=e}function C$t(){r6=null,i6.length=0}function w$t(){return r6}function T$t(e){i6.push(e),U(`[bridge:debug] Queued fault: ${e.method} ${e.kind}/${e.status}${e.errorType?`/${e.errorType}`:``} ×${e.count}`)}function E$t(e){function t(e){let t=i6.findIndex(t=>t.method===e);if(t===-1)return null;let n=i6[t];return n.count--,n.count<=0&&i6.splice(t,1),n}function n(e,t){throw U(`[bridge:debug] Injecting ${e.kind} fault into ${t}: status=${e.status} errorType=${e.errorType??`none`}`),e.kind===`fatal`?new n6(`[injected] ${t} ${e.status}`,e.status,e.errorType):Error(`[injected transient] ${t} ${e.status}`)}return{...e,async pollForWork(r,i,a,o){let s=t(`pollForWork`);return s&&n(s,`Poll`),e.pollForWork(r,i,a,o)},async registerBridgeEnvironment(r){let i=t(`registerBridgeEnvironment`);return i&&n(i,`Registration`),e.registerBridgeEnvironment(r)},async reconnectSession(r,i){let a=t(`reconnectSession`);return a&&n(a,`ReconnectSession`),e.reconnectSession(r,i)},async heartbeatWork(r,i,a){let o=t(`heartbeatWork`);return o&&n(o,`Heartbeat`),e.heartbeatWork(r,i,a)}}}var r6,i6,D$t=n((()=>{W(),x$t(),r6=null,i6=[]})),a6,O$t,k$t,A$t=n((()=>{D$t(),a6=`/bridge-kick <subcommand>
|
|
4322
|
+
Your final reply must contain the markdown report and nothing else.`,AQt=PZt({name:`security-review`,description:`Complete a security review of the pending changes on the current branch`,progressMessage:`analyzing code changes for security risks`,pluginName:`security-review`,pluginCommand:`security-review`,async getPromptWhileMarketplaceIsPrivate(e,t){let n=Sf(kQt),r=K9(n.frontmatter[`allowed-tools`]);return[{type:`text`,text:await KW(n.content,{...t,getAppState(){let e=t.getAppState();return{...e,toolPermissionContext:{...e.toolPermissionContext,alwaysAllowRules:{...e.toolPermissionContext.alwaysAllowRules,command:r}}}}},`security-review`)}]}})})),MQt,NQt=n((()=>{MQt={isEnabled:()=>!1,isHidden:!0,name:`stub`}})),PQt,FQt=n((()=>{fo(),PQt={type:`local-jsx`,name:`terminal-setup`,description:po.terminal===`Apple_Terminal`?`Enable Option+Enter key binding for newlines and visual bell`:`Install Shift+Enter key binding for newlines`,isHidden:po.terminal!==null&&po.terminal in{ghostty:`Ghostty`,kitty:`Kitty`,"iTerm.app":`iTerm2`,WezTerm:`WezTerm`},load:()=>import(`./terminalSetup-BKfVYk3w.js`)}})),q3,IQt=n((()=>{q3={type:`local-jsx`,name:`usage`,aliases:[`cost`,`stats`],description:`Show session cost, plan usage, and activity stats`,load:()=>import(`./usage-lTILrQJV.js`)}})),J3,LQt=n((()=>{J3={type:`local-jsx`,name:`theme`,description:`Change the theme`,load:()=>import(`./theme-BM2CXWYE.js`)}})),Y3,RQt=n((()=>{Y3={name:`vim`,description:`Toggle between Vim and Normal editing modes`,supportsNonInteractive:!1,type:`local`,load:()=>import(`./vim-CK7lReJi.js`)}})),zQt,BQt=n((()=>{wr(),zQt={type:`local-jsx`,name:`think-back`,description:`Your 2025 Claude Code Year in Review`,isEnabled:()=>ci(`tengu_thinkback`),load:()=>import(`./thinkback-ChP6pvCS.js`)}})),VQt,HQt=n((()=>{wr(),VQt={type:`local`,name:`thinkback-play`,description:`Play the thinkback animation`,isEnabled:()=>ci(`tengu_thinkback`),isHidden:!0,supportsNonInteractive:!1,load:()=>import(`./thinkback-play-Cg8Ys2dq.js`)}})),UQt,WQt=n((()=>{UQt={type:`local-jsx`,name:`permissions`,aliases:[`allowed-tools`],description:`Manage allow & deny tool permission rules`,load:()=>import(`./permissions-C7wcAYOc.js`)}})),X3,GQt=n((()=>{X3={bridgeSafe:!0,getBridgeInvocationError(e){if(e.trim().split(/\s+/)[0]===`open`)return`Opening the local editor via /plan open isn't available over Remote Control.`},type:`local-jsx`,name:`plan`,description:`Enable plan mode or view the current session plan`,argumentHint:`[open|<description>]`,load:()=>import(`./plan-DA8IRpHQ.js`)}}));function Z3(){return process.env.USER_TYPE===`ant`||Jr(`tengu_immediate_model_command`,!1)}var Q3=n((()=>{wr()})),KQt,qQt=n((()=>{ca(),Q3(),KQt={type:`local-jsx`,name:`fast`,get description(){return`Toggle fast mode (${Rae} only)`},availability:[`claude-ai`,`console`],isEnabled:()=>pa(),get isHidden(){return!pa()},argumentHint:`[on|off]`,get immediate(){return Z3()},load:()=>import(`./fast-B01NO2uA.js`)}})),JQt,YQt=n((()=>{Dfe(),JQt={type:`local-jsx`,name:`passes`,get description(){return wfe()?`Share a free week of Claude Code with friends and earn extra usage`:`Share a free week of Claude Code with friends`},get isHidden(){let{eligible:e,hasCache:t}=Ofe();return!e||!t},load:()=>import(`./passes-BpI6azLG.js`)}})),XQt,ZQt=n((()=>{Wi(),XQt={type:`local-jsx`,name:`privacy-settings`,description:`View and update your privacy settings`,isEnabled:()=>hae(),load:()=>import(`./privacy-settings-DT3LGgsH.js`)}})),QQt,$Qt=n((()=>{QQt={type:`local-jsx`,name:`hooks`,description:`View hook configurations for tool events`,immediate:!0,load:()=>import(`./hooks-CMh0a2pT.js`)}})),$3,e$t=n((()=>{$3={type:`local`,name:`files`,description:`List all files currently in context`,isEnabled:()=>process.env.USER_TYPE===`ant`,supportsNonInteractive:!0,load:()=>import(`./files-DYvAZGxp.js`)}})),t$t,n$t=n((()=>{t$t={type:`local-jsx`,name:`branch`,aliases:[`fork`],description:`Create a branch of the current conversation at this point`,argumentHint:`[name]`,load:()=>import(`./branch-BPsUW1dk.js`)}})),r$t,i$t=n((()=>{r$t={type:`local-jsx`,name:`agents`,description:`Manage agent configurations`,load:()=>import(`./agents-DK0y9jId.js`)}})),a$t,o$t=n((()=>{a$t={type:`local-jsx`,name:`plugin`,aliases:[`plugins`,`marketplace`],description:`Manage Claude Code plugins`,immediate:!0,load:()=>import(`./plugin-N2pTkzOz.js`)}})),s$t,c$t=n((()=>{s$t={type:`local`,name:`reload-plugins`,description:`Activate pending plugin changes in the current session`,supportsNonInteractive:!1,load:()=>import(`./reload-plugins-Bo-R1CF3.js`)}})),l$t,u$t=n((()=>{l$t={description:`Restore the code and/or conversation to a previous point`,name:`rewind`,aliases:[`checkpoint`],argumentHint:``,type:`local`,supportsNonInteractive:!1,load:()=>import(`./rewind-CXplHgh_.js`)}})),d$t,f$t=n((()=>{d$t={type:`local`,name:`heapdump`,description:`Dump the JS heap to ~/Desktop`,isHidden:!0,supportsNonInteractive:!0,load:()=>import(`./heapdump-8vyFTWly.js`)}})),p$t,m$t=n((()=>{p$t={isEnabled:()=>!1,isHidden:!0,name:`stub`}}));function e6(e,t){if(!e||!b$t.test(e))throw Error(`Invalid ${t}: contains unsafe characters`);return e}function h$t(e){function t(t){e.onDebug?.(t)}let n=0;function r(t){let n={Authorization:`Bearer ${t}`,"Content-Type":`application/json`,"anthropic-version":`2023-06-01`,"anthropic-beta":y$t,"x-environment-runner-version":e.runnerVersion},r=e.getTrustedDeviceToken?.();return r&&(n[`X-Trusted-Device-Token`]=r),n}function i(){let t=e.getAccessToken();if(!t)throw Error(bpe);return t}async function a(n,r){let a=i(),o=await n(a);if(o.status!==401)return o;if(!e.onAuth401)return t(`[bridge:api] ${r}: 401 received, no refresh handler`),o;if(t(`[bridge:api] ${r}: 401 received, attempting token refresh`),await e.onAuth401(a)){t(`[bridge:api] ${r}: Token refreshed, retrying request`);let e=await n(i());if(e.status!==401)return e;t(`[bridge:api] ${r}: Retry after refresh also got 401`)}else t(`[bridge:api] ${r}: Token refresh failed`);return o}return{async registerBridgeEnvironment(n){t(`[bridge:api] POST /v1/environments/bridge bridgeId=${n.bridgeId}`);let i=await a(t=>Oe.post(`${e.baseUrl}/v1/environments/bridge`,{machine_name:n.machineName,directory:n.dir,branch:n.branch,git_repo_url:n.gitRepoUrl,max_sessions:n.maxSessions,metadata:{worker_type:n.workerType},...n.reuseEnvironmentId&&{environment_id:n.reuseEnvironmentId}},{headers:r(t),timeout:15e3,validateStatus:e=>e<500}),`Registration`);return t6(i.status,i.data,`Registration`),t(`[bridge:api] POST /v1/environments/bridge -> ${i.status} environment_id=${i.data.environment_id}`),t(`[bridge:api] >>> ${Bl({machine_name:n.machineName,directory:n.dir,branch:n.branch,git_repo_url:n.gitRepoUrl,max_sessions:n.maxSessions,metadata:{worker_type:n.workerType}})}`),t(`[bridge:api] <<< ${Bl(i.data)}`),i.data},async pollForWork(i,a,o,s){e6(i,`environmentId`);let c=n;n=0;let l=await Oe.get(`${e.baseUrl}/v1/environments/${i}/work/poll`,{headers:r(a),params:s===void 0?void 0:{reclaim_older_than_ms:s},timeout:1e4,signal:o,validateStatus:e=>e<500});return t6(l.status,l.data,`Poll`),Vue(`poll response: status=${l.status} hasData=${!!l.data} url=${e.baseUrl}`),l.data?(t(`[bridge:api] GET .../work/poll -> ${l.status} workId=${l.data.id} type=${l.data.data?.type}${l.data.data?.id?` sessionId=${l.data.data.id}`:``}`),t(`[bridge:api] <<< ${Bl(l.data)}`),l.data):(n=c+1,(n===1||n%100==0)&&t(`[bridge:api] GET .../work/poll -> ${l.status} (no work, ${n} consecutive empty polls)`),null)},async acknowledgeWork(n,i,a){e6(n,`environmentId`),e6(i,`workId`),t(`[bridge:api] POST .../work/${i}/ack`);let o=await Oe.post(`${e.baseUrl}/v1/environments/${n}/work/${i}/ack`,{},{headers:r(a),timeout:1e4,validateStatus:e=>e<500});t6(o.status,o.data,`Acknowledge`),t(`[bridge:api] POST .../work/${i}/ack -> ${o.status}`)},async stopWork(n,i,o){e6(n,`environmentId`),e6(i,`workId`),t(`[bridge:api] POST .../work/${i}/stop force=${o}`);let s=await a(t=>Oe.post(`${e.baseUrl}/v1/environments/${n}/work/${i}/stop`,{force:o},{headers:r(t),timeout:1e4,validateStatus:e=>e<500}),`StopWork`);t6(s.status,s.data,`StopWork`),t(`[bridge:api] POST .../work/${i}/stop -> ${s.status}`)},async deregisterEnvironment(n){e6(n,`environmentId`),t(`[bridge:api] DELETE /v1/environments/bridge/${n}`);let i=await a(t=>Oe.delete(`${e.baseUrl}/v1/environments/bridge/${n}`,{headers:r(t),timeout:1e4,validateStatus:e=>e<500}),`Deregister`);t6(i.status,i.data,`Deregister`),t(`[bridge:api] DELETE /v1/environments/bridge/${n} -> ${i.status}`)},async archiveSession(n){e6(n,`sessionId`),t(`[bridge:api] POST /v1/sessions/${n}/archive`);let i=await a(t=>Oe.post(`${e.baseUrl}/v1/sessions/${n}/archive`,{},{headers:r(t),timeout:1e4,validateStatus:e=>e<500}),`ArchiveSession`);if(i.status===409){t(`[bridge:api] POST /v1/sessions/${n}/archive -> 409 (already archived)`);return}t6(i.status,i.data,`ArchiveSession`),t(`[bridge:api] POST /v1/sessions/${n}/archive -> ${i.status}`)},async reconnectSession(n,i){e6(n,`environmentId`),e6(i,`sessionId`),t(`[bridge:api] POST /v1/environments/${n}/bridge/reconnect session_id=${i}`);let o=await a(t=>Oe.post(`${e.baseUrl}/v1/environments/${n}/bridge/reconnect`,{session_id:i},{headers:r(t),timeout:1e4,validateStatus:e=>e<500}),`ReconnectSession`);t6(o.status,o.data,`ReconnectSession`),t(`[bridge:api] POST .../bridge/reconnect -> ${o.status}`)},async heartbeatWork(n,i,a){e6(n,`environmentId`),e6(i,`workId`),t(`[bridge:api] POST .../work/${i}/heartbeat`);let o=await Oe.post(`${e.baseUrl}/v1/environments/${n}/work/${i}/heartbeat`,{},{headers:r(a),timeout:1e4,validateStatus:e=>e<500});return t6(o.status,o.data,`Heartbeat`),t(`[bridge:api] POST .../work/${i}/heartbeat -> ${o.status} lease_extended=${o.data.lease_extended} state=${o.data.state}`),o.data},async sendPermissionResponseEvent(n,i,a){e6(n,`sessionId`),t(`[bridge:api] POST /v1/sessions/${n}/events type=${i.type}`);let o=await Oe.post(`${e.baseUrl}/v1/sessions/${n}/events`,{events:[i]},{headers:r(a),timeout:1e4,validateStatus:e=>e<500});t6(o.status,o.data,`SendPermissionResponseEvent`),t(`[bridge:api] POST /v1/sessions/${n}/events -> ${o.status}`),t(`[bridge:api] >>> ${Bl({events:[i]})}`),t(`[bridge:api] <<< ${Bl(o.data)}`)}}}function t6(e,t,n){if(e===200||e===204)return;let r=xde(t),i=v$t(t);switch(e){case 401:throw new n6(`${n}: Authentication failed (401)${r?`: ${r}`:``}. ${bpe}`,401,i);case 403:throw new n6(g$t(i)?"Remote Control session has expired. Please restart with `claude remote-control` or /remote-control.":`${n}: Access denied (403)${r?`: ${r}`:``}. Check your organization permissions.`,403,i);case 404:throw new n6(r??`${n}: Not found (404). Remote Control may not be available for this organization.`,404,i);case 410:throw new n6(r??"Remote Control session has expired. Please restart with `claude remote-control` or /remote-control.",410,i??`environment_expired`);case 429:throw Error(`${n}: Rate limited (429). Polling too frequently.`);default:throw Error(`${n}: Failed with status ${e}${r?`: ${r}`:``}`)}}function g$t(e){return e?e.includes(`expired`)||e.includes(`lifetime`):!1}function _$t(e){return e.status===403?e.message.includes(`external_poll_sessions`)||e.message.includes(`environments:manage`):!1}function v$t(e){if(e&&typeof e==`object`&&`error`in e&&e.error&&typeof e.error==`object`&&`type`in e.error&&typeof e.error.type==`string`)return e.error.type}var y$t,b$t,n6,x$t=n((()=>{ke(),Cde(),Gue(),vpe(),O(),y$t=`environments-2025-11-01`,b$t=/^[a-zA-Z0-9_-]+$/,n6=class extends Error{constructor(e,t,n){super(e),k(this,`status`,void 0),k(this,`errorType`,void 0),this.name=`BridgeFatalError`,this.status=t,this.errorType=n}}}));function S$t(e){r6=e}function C$t(){r6=null,i6.length=0}function w$t(){return r6}function T$t(e){i6.push(e),U(`[bridge:debug] Queued fault: ${e.method} ${e.kind}/${e.status}${e.errorType?`/${e.errorType}`:``} ×${e.count}`)}function E$t(e){function t(e){let t=i6.findIndex(t=>t.method===e);if(t===-1)return null;let n=i6[t];return n.count--,n.count<=0&&i6.splice(t,1),n}function n(e,t){throw U(`[bridge:debug] Injecting ${e.kind} fault into ${t}: status=${e.status} errorType=${e.errorType??`none`}`),e.kind===`fatal`?new n6(`[injected] ${t} ${e.status}`,e.status,e.errorType):Error(`[injected transient] ${t} ${e.status}`)}return{...e,async pollForWork(r,i,a,o){let s=t(`pollForWork`);return s&&n(s,`Poll`),e.pollForWork(r,i,a,o)},async registerBridgeEnvironment(r){let i=t(`registerBridgeEnvironment`);return i&&n(i,`Registration`),e.registerBridgeEnvironment(r)},async reconnectSession(r,i){let a=t(`reconnectSession`);return a&&n(a,`ReconnectSession`),e.reconnectSession(r,i)},async heartbeatWork(r,i,a){let o=t(`heartbeatWork`);return o&&n(o,`Heartbeat`),e.heartbeatWork(r,i,a)}}}var r6,i6,D$t=n((()=>{W(),x$t(),r6=null,i6=[]})),a6,O$t,k$t,A$t=n((()=>{D$t(),a6=`/bridge-kick <subcommand>
|
|
4323
4323
|
close <code> fire ws_closed with the given code (e.g. 1002)
|
|
4324
4324
|
poll <status> [type] next poll throws BridgeFatalError(status, type)
|
|
4325
4325
|
poll transient next poll throws axios-style rejection (5xx/net)
|
|
@@ -4328,26 +4328,26 @@ Your final reply must contain the markdown report and nothing else.`,AQt=PZt({na
|
|
|
4328
4328
|
reconnect-session fail next POST /bridge/reconnect fails
|
|
4329
4329
|
heartbeat <status> next heartbeat throws BridgeFatalError(status)
|
|
4330
4330
|
reconnect call reconnectEnvironmentWithSession directly
|
|
4331
|
-
status print bridge state`,O$t=async e=>{let t=w$t();if(!t)return{type:`text`,value:`No bridge debug handle registered. Remote Control must be connected (USER_TYPE=ant).`};let[n,r,i]=e.trim().split(/\s+/);switch(n){case`close`:{let e=Number(r);return Number.isFinite(e)?(t.fireClose(e),{type:`text`,value:`Fired transport close(${e}). Watch debug.log for [bridge:repl] recovery.`}):{type:`text`,value:`close: need a numeric code\n${a6}`}}case`poll`:{if(r===`transient`)return t.injectFault({method:`pollForWork`,kind:`transient`,status:503,count:1}),t.wakePollLoop(),{type:`text`,value:`Next poll will throw a transient (axios rejection). Poll loop woken.`};let e=Number(r);if(!Number.isFinite(e))return{type:`text`,value:`poll: need 'transient' or a status code\n${a6}`};let n=i??(e===404?`not_found_error`:`authentication_error`);return t.injectFault({method:`pollForWork`,kind:`fatal`,status:e,errorType:n,count:1}),t.wakePollLoop(),{type:`text`,value:`Next poll will throw BridgeFatalError(${e}, ${n}). Poll loop woken.`}}case`register`:{if(r===`fatal`)return t.injectFault({method:`registerBridgeEnvironment`,kind:`fatal`,status:403,errorType:`permission_error`,count:1}),{type:`text`,value:`Next registerBridgeEnvironment will 403. Trigger with close/reconnect.`};let e=Number(i)||1;return t.injectFault({method:`registerBridgeEnvironment`,kind:`transient`,status:503,count:e}),{type:`text`,value:`Next ${e} registerBridgeEnvironment call(s) will transient-fail. Trigger with close/reconnect.`}}case`reconnect-session`:return t.injectFault({method:`reconnectSession`,kind:`fatal`,status:404,errorType:`not_found_error`,count:2}),{type:`text`,value:`Next 2 POST /bridge/reconnect calls will 404. doReconnect Strategy 1 falls through to Strategy 2.`};case`heartbeat`:{let e=Number(r)||401;return t.injectFault({method:`heartbeatWork`,kind:`fatal`,status:e,errorType:e===401?`authentication_error`:`not_found_error`,count:1}),{type:`text`,value:`Next heartbeat will ${e}. Watch for onHeartbeatFatal → work-state teardown.`}}case`reconnect`:return t.forceReconnect(),{type:`text`,value:`Called reconnectEnvironmentWithSession(). Watch debug.log.`};case`status`:return{type:`text`,value:t.describe()};default:return{type:`text`,value:a6}}},k$t={type:`local`,name:`bridge-kick`,description:`Inject bridge failure states for manual recovery testing`,isEnabled:()=>process.env.USER_TYPE===`ant`,supportsNonInteractive:!1,load:()=>Promise.resolve({call:O$t})}})),j$t,M$t,N$t=n((()=>{j$t=async()=>({type:`text`,value:`2.6.
|
|
4331
|
+
status print bridge state`,O$t=async e=>{let t=w$t();if(!t)return{type:`text`,value:`No bridge debug handle registered. Remote Control must be connected (USER_TYPE=ant).`};let[n,r,i]=e.trim().split(/\s+/);switch(n){case`close`:{let e=Number(r);return Number.isFinite(e)?(t.fireClose(e),{type:`text`,value:`Fired transport close(${e}). Watch debug.log for [bridge:repl] recovery.`}):{type:`text`,value:`close: need a numeric code\n${a6}`}}case`poll`:{if(r===`transient`)return t.injectFault({method:`pollForWork`,kind:`transient`,status:503,count:1}),t.wakePollLoop(),{type:`text`,value:`Next poll will throw a transient (axios rejection). Poll loop woken.`};let e=Number(r);if(!Number.isFinite(e))return{type:`text`,value:`poll: need 'transient' or a status code\n${a6}`};let n=i??(e===404?`not_found_error`:`authentication_error`);return t.injectFault({method:`pollForWork`,kind:`fatal`,status:e,errorType:n,count:1}),t.wakePollLoop(),{type:`text`,value:`Next poll will throw BridgeFatalError(${e}, ${n}). Poll loop woken.`}}case`register`:{if(r===`fatal`)return t.injectFault({method:`registerBridgeEnvironment`,kind:`fatal`,status:403,errorType:`permission_error`,count:1}),{type:`text`,value:`Next registerBridgeEnvironment will 403. Trigger with close/reconnect.`};let e=Number(i)||1;return t.injectFault({method:`registerBridgeEnvironment`,kind:`transient`,status:503,count:e}),{type:`text`,value:`Next ${e} registerBridgeEnvironment call(s) will transient-fail. Trigger with close/reconnect.`}}case`reconnect-session`:return t.injectFault({method:`reconnectSession`,kind:`fatal`,status:404,errorType:`not_found_error`,count:2}),{type:`text`,value:`Next 2 POST /bridge/reconnect calls will 404. doReconnect Strategy 1 falls through to Strategy 2.`};case`heartbeat`:{let e=Number(r)||401;return t.injectFault({method:`heartbeatWork`,kind:`fatal`,status:e,errorType:e===401?`authentication_error`:`not_found_error`,count:1}),{type:`text`,value:`Next heartbeat will ${e}. Watch for onHeartbeatFatal → work-state teardown.`}}case`reconnect`:return t.forceReconnect(),{type:`text`,value:`Called reconnectEnvironmentWithSession(). Watch debug.log.`};case`status`:return{type:`text`,value:t.describe()};default:return{type:`text`,value:a6}}},k$t={type:`local`,name:`bridge-kick`,description:`Inject bridge failure states for manual recovery testing`,isEnabled:()=>process.env.USER_TYPE===`ant`,supportsNonInteractive:!1,load:()=>Promise.resolve({call:O$t})}})),j$t,M$t,N$t=n((()=>{j$t=async()=>({type:`text`,value:`2.6.11 (built 2026-06-05T02:52:17.586Z)`}),M$t={type:`local`,name:`version`,description:`Print the version this session is running (not what autoupdate downloaded)`,isEnabled:()=>!0,supportsNonInteractive:!0,load:()=>Promise.resolve({call:j$t})}})),P$t,F$t,o6,I$t=n((()=>{P$t=new Set([`user`,`assistant`,`system`]),F$t=async(e,t)=>{let{messages:n}=t,r=(n??[]).filter(e=>e!=null&&P$t.has(e.type));if(r.length===0)return{type:`text`,value:`No messages to summarize.`};try{let{manuallyExtractSessionMemory:e}=await import(`./sessionMemory-3TAJyNuJ.js`),{getSessionMemoryContent:n}=await import(`./sessionMemoryUtils-BAkA4sGG.js`),i=await e(r,{...t,messages:r});if(!i.success)return{type:`text`,value:`Failed to generate session summary: ${i.error??`unknown error`}`};let a=await n();return!a||a.trim().length===0?{type:`text`,value:`Session summary was updated, but the content is empty.`}:{type:`text`,value:`Session summary updated.\n\n${a}`}}catch(e){return{type:`text`,value:`Failed to generate session summary: ${e instanceof Error?e.message:String(e)}`}}},o6={type:`local`,name:`summary`,description:`Generate and display a session summary`,supportsNonInteractive:!0,isHidden:!1,load:()=>Promise.resolve({call:F$t})}})),L$t,R$t,z$t=n((()=>{wr(),L$t=async(e,t)=>{let{generateRecap:n}=await import(`./generateRecap-DZiXeYWn.js`),r=await n(t.abortController?.signal??new AbortController().signal);switch(r.kind){case`ok`:case`api-error`:return{type:`text`,value:r.text};case`no-turn`:return{type:`text`,value:`Nothing to recap yet — send a message first.`};case`aborted`:return{type:`text`,value:`Recap cancelled.`};case`failed`:return{type:`text`,value:`Couldn’t generate a recap. Run with --debug for details.`}}},R$t={type:`local`,name:`recap`,description:`Generate a one-line session recap now`,aliases:[`away`,`catchup`],isEnabled:()=>Jr(`tengu_sedge_lantern`,!0),supportsNonInteractive:!1,isHidden:!1,load:()=>Promise.resolve({call:L$t})}})),B$t,V$t=n((()=>{upe(),B$t={type:`local-jsx`,name:`skill-learning`,description:`Manage skill learning (observe, analyze, evolve)`,argumentHint:`[start|stop|about|status|ingest|evolve|export|import|prune|promote|projects]`,isEnabled:()=>cpe(),isHidden:!1,load:()=>import(`./skillPanel-CJ4tvX7A.js`)}})),H$t,U$t=n((()=>{EV(),H$t={type:`local-jsx`,name:`skill-search`,description:`Control automatic skill matching during conversations`,argumentHint:`[start|stop|about|status]`,isEnabled:()=>Xft(),isHidden:!1,load:()=>import(`./skillSearchPanel-hwZvXKZ4.js`)}})),s6,W$t,G$t,K$t=n((()=>{s6={isEnabled:()=>!1,isHidden:!0,name:`stub`},W$t=s6,G$t=s6})),q$t,J$t=n((()=>{q$t={isEnabled:()=>!1,isHidden:!0,name:`stub`}}));function Y$t(e){if(!e)return null;for(let[t,n]of Object.entries(o1t))if(e.startsWith(t))return n;return null}function X$t(e){let t=td(),n=e.replace(new RegExp(t.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),`g`),`~`);return n.length>200&&(n=n.slice(0,200)+`…`),n}function Z$t(){return Ru(td(),`.claude`,`perf-reports`)}function Q$t(){let e=Ft(),t=Gt();return t?Ru(t,`${e}.jsonl`):Ru(_(),`projects`,Wo(fn()),`${e}.jsonl`)}function $$t(e){if(e===void 0)return null;let t=typeof e==`number`?e:typeof e==`string`?Date.parse(e):null;return t===null||Number.isNaN(t)?null:t}function e1t(e,t=c6){let n={input_tokens:0,output_tokens:0,cache_creation_input_tokens:0,cache_read_input_tokens:0},r={},i={},a=new Map,o=0,s=0,c=null,l=null,u=null,d=Yu(e,`utf8`).trim().split(`
|
|
4332
4332
|
`).filter(Boolean),f=d.length>t?d.slice(-t):d;for(let e of f)try{let t=JSON.parse(e);s++,t.role===`user`&&o++,t.model&&u===null&&(u=t.model);let d=$$t(t.timestamp);if(d!==null&&(c===null&&(c=d),l=d),t.usage)for(let e of Object.keys(n)){let r=t.usage[e];typeof r==`number`&&(n[e]+=r)}if(Array.isArray(t.content)){for(let e of t.content)if(e.type===`tool_use`){let t=e,n=t.name??`unknown`;r[n]=(r[n]??0)+1,t.id&&a.set(t.id,{name:n,logTimestampMs:d})}else if(e.type===`tool_result`){let t=e;if(t.tool_use_id){let e=a.get(t.tool_use_id);if(e){if(e.logTimestampMs!==null&&d!==null){let t=d-e.logTimestampMs;i[e.name]=i[e.name]??[],i[e.name].push(t)}a.delete(t.tool_use_id)}}}}}catch{}let p=n.cache_creation_input_tokens+n.cache_read_input_tokens,m=p>0?n.cache_read_input_tokens/p:0,h=Y$t(u),g=h?n.input_tokens/1e6*h.input+n.output_tokens/1e6*h.output+n.cache_creation_input_tokens/1e6*h.cache_creation+n.cache_read_input_tokens/1e6*h.cache_read:null,_=c!==null&&l!==null?(l-c)/1e3:null;return{usage:n,toolCounts:r,toolDurations:i,turnCount:o,messageCount:s,cacheHitRate:m,estimatedCostUsd:g,detectedModel:u,firstTimestampMs:c,lastTimestampMs:l,wallClockSeconds:_}}function t1t(e){return Object.entries(e).sort((e,t)=>t[1]-e[1]).slice(0,10).map(([e,t])=>` ${e.padEnd(40)} ${t}`)}function n1t(e){return e.length===0?0:e.reduce((e,t)=>e+t,0)/e.length}function r1t(e,t,n){let{usage:r,toolCounts:i,toolDurations:a,turnCount:o,messageCount:s,cacheHitRate:c,estimatedCostUsd:l,detectedModel:u,wallClockSeconds:d}=n,f=process.memoryUsage(),p=process.cpuUsage(),m=r.input_tokens+r.output_tokens+r.cache_creation_input_tokens+r.cache_read_input_tokens,h=t1t(i),g=Object.entries(a).sort((e,t)=>t[1].length-e[1].length).slice(0,10).map(([e,t])=>` ${e.padEnd(40)} avg ${n1t(t).toFixed(0)} ms (${t.length} calls)`);return[`# Claude Code Performance Snapshot`,``,`- timestamp: ${new Date().toISOString()}`,`- session: ${e}`,`- pid: ${process.pid}`,`- platform: ${process.platform} ${process.arch}`,`- bun: ${typeof Bun<`u`?Bun.version:`n/a`}`,`- node: ${process.version}`,`- uptime: ${process.uptime().toFixed(1)}s`,``,`## Memory`,`- rss: ${f.rss}`,`- heap used: ${f.heapUsed}`,`- heap total: ${f.heapTotal}`,`- external: ${f.external}`,`- array buffers: ${f.arrayBuffers??0}`,``,`## CPU (process.cpuUsage, microseconds)`,`- user: ${p.user}`,`- system: ${p.system}`,``,`## Session Token Usage`,`- total_tokens: ${m.toLocaleString()}`,`- input_tokens: ${r.input_tokens.toLocaleString()}`,`- output_tokens: ${r.output_tokens.toLocaleString()}`,`- cache_creation: ${r.cache_creation_input_tokens.toLocaleString()}`,`- cache_read: ${r.cache_read_input_tokens.toLocaleString()}`,`- turns (user messages): ${o}`,`- total log entries: ${s}`,d===null?``:`- wall_clock_seconds: ${d.toFixed(1)}`,``,`## Cost Estimate (approximate)`,u?`- model: ${u}`:`- model: (unknown — not present in log)`,l===null?`- estimated_usd: ~$ unknown (unrecognized model)`:`- estimated_usd: $${l.toFixed(4)}`,`- cache_hit_rate: ${(c*100).toFixed(1)}%`,``,`## Tool Call Counts (top 10)`,h.length>0?h.join(`
|
|
4333
4333
|
`):` (no tool calls)`,``,`## Tool Average Execution Time (top 10 by call count)`,g.length>0?g.join(`
|
|
4334
4334
|
`):` (no timing data — tool_result/tool_use pairs not found)`,``,`## Notes`,``,`Add a description of what you were doing when the perf issue surfaced:`,``,`- ___`,``,`_(File this report in your repo's issue tracker. No network call was made._`,`_The fork does not transmit perf reports to Anthropic.)_`].filter(e=>e!==``).join(`
|
|
4335
4335
|
`)}function i1t(e,t){let n=process.memoryUsage(),r=process.cpuUsage(),i=t.usage.input_tokens+t.usage.output_tokens+t.usage.cache_creation_input_tokens+t.usage.cache_read_input_tokens;return JSON.stringify({timestamp:new Date().toISOString(),session:e,pid:process.pid,platform:process.platform,arch:process.arch,uptime:process.uptime(),memory:{...n},cpu:{...r},tokens:{total:i,input:t.usage.input_tokens,output:t.usage.output_tokens,cache_creation:t.usage.cache_creation_input_tokens,cache_read:t.usage.cache_read_input_tokens},turns:t.turnCount,messages:t.messageCount,cache_hit_rate:t.cacheHitRate,detected_model:t.detectedModel,estimated_cost_usd:t.estimatedCostUsd,wall_clock_seconds:t.wallClockSeconds,tool_counts:t.toolCounts,tool_avg_ms:Object.fromEntries(Object.entries(t.toolDurations).map(([e,t])=>[e,n1t(t)]))},null,2)}function a1t(e){return[`metric,value`,`timestamp,${new Date().toISOString()}`,`input_tokens,${e.usage.input_tokens}`,`output_tokens,${e.usage.output_tokens}`,`cache_creation_tokens,${e.usage.cache_creation_input_tokens}`,`cache_read_tokens,${e.usage.cache_read_input_tokens}`,`turns,${e.turnCount}`,`cache_hit_rate,${e.cacheHitRate.toFixed(4)}`,`estimated_cost_usd,${e.estimatedCostUsd===null?`unknown`:e.estimatedCostUsd.toFixed(6)}`,`wall_clock_seconds,${e.wallClockSeconds??``}`,...Object.entries(e.toolCounts).map(([e,t])=>`tool_count_${e},${t}`)].join(`
|
|
4336
|
-
`)}var o1t,c6,s1t,c1t=n((()=>{tn(),y(),Jo(),o1t={"claude-sonnet-4":{input:3,output:15,cache_creation:3.75,cache_read:.3},"claude-opus-4":{input:15,output:75,cache_creation:18.75,cache_read:1.5},"claude-haiku-4":{input:.8,output:4,cache_creation:1,cache_read:.08},"claude-3-7-sonnet":{input:3,output:15,cache_creation:3.75,cache_read:.3},"claude-3-5-sonnet":{input:3,output:15,cache_creation:3.75,cache_read:.3},"claude-3-5-haiku":{input:.8,output:4,cache_creation:1,cache_read:.08},"claude-3-opus":{input:15,output:75,cache_creation:18.75,cache_read:1.5}},c6=2e4,s1t={type:`local`,name:`perf-issue`,description:`Capture a performance + token-usage snapshot. Flags: --format=json|csv|md (default md)`,isHidden:!1,isEnabled:()=>!0,supportsNonInteractive:!0,bridgeSafe:!0,load:async()=>({call:async e=>{try{let t=e.match(/--format[= ](json|csv|md)/),n=t?t[1]:`md`,r=e.match(/--limit[= ](\d+)/),i=r?Math.max(1,parseInt(r[1],10)):c6,a=Z$t();Ju(a,{recursive:!0});let o=new Date().toISOString().replace(/[:.]/g,`-`),s=Ft(),c=n===`json`?`json`:n===`csv`?`csv`:`md`,l=Ru(a,`perf-${o}-${s.slice(0,8)}.${c}`),u=Q$t(),d=qu(u),f=null;if(d)try{f=e1t(u,i)}catch{f=null}let p=f??{usage:{input_tokens:0,output_tokens:0,cache_creation_input_tokens:0,cache_read_input_tokens:0},toolCounts:{},toolDurations:{},turnCount:0,messageCount:0,cacheHitRate:0,estimatedCostUsd:null,detectedModel:null,firstTimestampMs:null,lastTimestampMs:null,wallClockSeconds:null},m;return n===`json`?m=i1t(s,p):n===`csv`?m=a1t(p):(m=r1t(s,u,p),d||(m+=`\n\n## Session Log\n(log not found at \`${u}\`)`)),$u(l,m,`utf8`),{type:`text`,value:`Perf snapshot written to:\n \`${l}\`\n\nFormat: ${n}\nEdit it to add notes, then attach to your bug report.`}}catch(e){return{type:`text`,value:`Failed to write perf report: ${X$t(e instanceof Error?e.message:String(e))}`}}}})}})),l1t,u1t=n((()=>{N(),Pm(),l1t={name:`sandbox`,get description(){let e=Nm.isSandboxingEnabled(),t=Nm.isAutoAllowBashIfSandboxedEnabled(),n=Nm.areUnsandboxedCommandsAllowed(),r=Nm.areSandboxSettingsLockedByPolicy(),i=Nm.checkDependencies().errors.length===0,a;a=i?e?ue.tick:ue.circle:ue.warning;let o=`sandbox disabled`;return e&&(o=t?`sandbox enabled (auto-allow)`:`sandbox enabled`,o+=n?`, fallback allowed`:``),r&&(o+=` (managed)`),`${a} ${o} (⏎ to configure)`},argumentHint:`exclude "command pattern"`,get isHidden(){return!Nm.isSupportedPlatform()||!Nm.isPlatformInEnabledList()},immediate:!0,type:`local-jsx`,load:()=>import(`./sandbox-toggle-
|
|
4337
|
-
Use "/advisor <model>" to enable (e.g. "/advisor opus").`}}if(n===`unset`||n===`off`){let e=t.getAppState().advisorModel;return t.setAppState(e=>e.advisorModel===void 0?e:{...e,advisorModel:void 0}),Ni(`userSettings`,{advisorModel:void 0}),{type:`text`,value:e?`Advisor disabled (was ${e}).`:`Advisor already unset.`}}let i=va(n),a=Dn(n),{valid:o,error:s}=await LJ(a);return o?Yat(a)?(t.setAppState(e=>e.advisorModel===i?e:{...e,advisorModel:i}),Ni(`userSettings`,{advisorModel:i}),QR(r)?{type:`text`,value:`Advisor set to ${i}.`}:{type:`text`,value:`Advisor set to ${i}.\nNote: Your current model (${r}) does not support advisors. Switch to a supported model to use the advisor.`}):{type:`text`,value:`The model ${n} (${a}) cannot be used as an advisor`}:{type:`text`,value:s?`Invalid advisor model: ${s}`:`Unknown model: ${n} (${a})`}},h1t={type:`local`,name:`advisor`,description:`Configure the advisor model`,argumentHint:`[<model>|off]`,isEnabled:()=>ZR(),get isHidden(){return!ZR()},supportsNonInteractive:!0,load:()=>Promise.resolve({call:m1t})}})),_1t,v1t=n((()=>{_1t={type:`local-jsx`,name:`autonomy`,description:`Inspect automatic autonomy runs recorded for proactive ticks and scheduled tasks`,argumentHint:`[status [--deep]|runs [limit]|flows [limit]|flow <id>|flow cancel <id>|flow resume <id>]`,load:()=>import(`./autonomyPanel-
|
|
4336
|
+
`)}var o1t,c6,s1t,c1t=n((()=>{tn(),y(),Jo(),o1t={"claude-sonnet-4":{input:3,output:15,cache_creation:3.75,cache_read:.3},"claude-opus-4":{input:15,output:75,cache_creation:18.75,cache_read:1.5},"claude-haiku-4":{input:.8,output:4,cache_creation:1,cache_read:.08},"claude-3-7-sonnet":{input:3,output:15,cache_creation:3.75,cache_read:.3},"claude-3-5-sonnet":{input:3,output:15,cache_creation:3.75,cache_read:.3},"claude-3-5-haiku":{input:.8,output:4,cache_creation:1,cache_read:.08},"claude-3-opus":{input:15,output:75,cache_creation:18.75,cache_read:1.5}},c6=2e4,s1t={type:`local`,name:`perf-issue`,description:`Capture a performance + token-usage snapshot. Flags: --format=json|csv|md (default md)`,isHidden:!1,isEnabled:()=>!0,supportsNonInteractive:!0,bridgeSafe:!0,load:async()=>({call:async e=>{try{let t=e.match(/--format[= ](json|csv|md)/),n=t?t[1]:`md`,r=e.match(/--limit[= ](\d+)/),i=r?Math.max(1,parseInt(r[1],10)):c6,a=Z$t();Ju(a,{recursive:!0});let o=new Date().toISOString().replace(/[:.]/g,`-`),s=Ft(),c=n===`json`?`json`:n===`csv`?`csv`:`md`,l=Ru(a,`perf-${o}-${s.slice(0,8)}.${c}`),u=Q$t(),d=qu(u),f=null;if(d)try{f=e1t(u,i)}catch{f=null}let p=f??{usage:{input_tokens:0,output_tokens:0,cache_creation_input_tokens:0,cache_read_input_tokens:0},toolCounts:{},toolDurations:{},turnCount:0,messageCount:0,cacheHitRate:0,estimatedCostUsd:null,detectedModel:null,firstTimestampMs:null,lastTimestampMs:null,wallClockSeconds:null},m;return n===`json`?m=i1t(s,p):n===`csv`?m=a1t(p):(m=r1t(s,u,p),d||(m+=`\n\n## Session Log\n(log not found at \`${u}\`)`)),$u(l,m,`utf8`),{type:`text`,value:`Perf snapshot written to:\n \`${l}\`\n\nFormat: ${n}\nEdit it to add notes, then attach to your bug report.`}}catch(e){return{type:`text`,value:`Failed to write perf report: ${X$t(e instanceof Error?e.message:String(e))}`}}}})}})),l1t,u1t=n((()=>{N(),Pm(),l1t={name:`sandbox`,get description(){let e=Nm.isSandboxingEnabled(),t=Nm.isAutoAllowBashIfSandboxedEnabled(),n=Nm.areUnsandboxedCommandsAllowed(),r=Nm.areSandboxSettingsLockedByPolicy(),i=Nm.checkDependencies().errors.length===0,a;a=i?e?ue.tick:ue.circle:ue.warning;let o=`sandbox disabled`;return e&&(o=t?`sandbox enabled (auto-allow)`:`sandbox enabled`,o+=n?`, fallback allowed`:``),r&&(o+=` (managed)`),`${a} ${o} (⏎ to configure)`},argumentHint:`exclude "command pattern"`,get isHidden(){return!Nm.isSupportedPlatform()||!Nm.isPlatformInEnabledList()},immediate:!0,type:`local-jsx`,load:()=>import(`./sandbox-toggle-B9dn09gt.js`)}})),d1t,f1t=n((()=>{tn(),d1t={name:`chrome`,description:`Claude in Chrome (Beta) settings`,availability:[],isEnabled:()=>!Kt(),type:`local-jsx`,load:()=>import(`./chrome-Cvkozg2F.js`)}})),l6,p1t=n((()=>{l6={type:`local`,name:`stickers`,description:`Order Claude Code stickers`,supportsNonInteractive:!1,load:()=>import(`./stickers-2K05wjSp.js`)}})),m1t,h1t,g1t=n((()=>{$R(),hr(),zJ(),Gi(),m1t=async(e,t)=>{let n=e.trim().toLowerCase(),r=Dn(t.getAppState().mainLoopModel??da());if(!n){let e=t.getAppState().advisorModel;return e?QR(r)?{type:`text`,value:`Advisor: ${e}\nUse "/advisor unset" to disable or "/advisor <model>" to change.`}:{type:`text`,value:`Advisor: ${e} (inactive)\nThe current model (${r}) does not support advisors.`}:{type:`text`,value:`Advisor: not set
|
|
4337
|
+
Use "/advisor <model>" to enable (e.g. "/advisor opus").`}}if(n===`unset`||n===`off`){let e=t.getAppState().advisorModel;return t.setAppState(e=>e.advisorModel===void 0?e:{...e,advisorModel:void 0}),Ni(`userSettings`,{advisorModel:void 0}),{type:`text`,value:e?`Advisor disabled (was ${e}).`:`Advisor already unset.`}}let i=va(n),a=Dn(n),{valid:o,error:s}=await LJ(a);return o?Yat(a)?(t.setAppState(e=>e.advisorModel===i?e:{...e,advisorModel:i}),Ni(`userSettings`,{advisorModel:i}),QR(r)?{type:`text`,value:`Advisor set to ${i}.`}:{type:`text`,value:`Advisor set to ${i}.\nNote: Your current model (${r}) does not support advisors. Switch to a supported model to use the advisor.`}):{type:`text`,value:`The model ${n} (${a}) cannot be used as an advisor`}:{type:`text`,value:s?`Invalid advisor model: ${s}`:`Unknown model: ${n} (${a})`}},h1t={type:`local`,name:`advisor`,description:`Configure the advisor model`,argumentHint:`[<model>|off]`,isEnabled:()=>ZR(),get isHidden(){return!ZR()},supportsNonInteractive:!0,load:()=>Promise.resolve({call:m1t})}})),_1t,v1t=n((()=>{_1t={type:`local-jsx`,name:`autonomy`,description:`Inspect automatic autonomy runs recorded for proactive ticks and scheduled tasks`,argumentHint:`[status [--deep]|runs [limit]|flows [limit]|flow <id>|flow cancel <id>|flow resume <id>]`,load:()=>import(`./autonomyPanel-DxcumRp-.js`)}}));function y1t(e){let t=e.toUpperCase();return b1t.has(t)||x1t.some(e=>t.startsWith(e))}var b1t,x1t,u6,S1t=n((()=>{b1t=new Set(`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST.CLAUDE_CODE_USE_BEDROCK.CLAUDE_CODE_USE_VERTEX.CLAUDE_CODE_USE_FOUNDRY.CLAUDE_CODE_USE_GEMINI.ANTHROPIC_BASE_URL.ANTHROPIC_BEDROCK_BASE_URL.ANTHROPIC_VERTEX_BASE_URL.ANTHROPIC_FOUNDRY_BASE_URL.ANTHROPIC_FOUNDRY_RESOURCE.ANTHROPIC_VERTEX_PROJECT_ID.GEMINI_BASE_URL.CLOUD_ML_REGION.ANTHROPIC_API_KEY.ANTHROPIC_AUTH_TOKEN.CLAUDE_CODE_OAUTH_TOKEN.AWS_BEARER_TOKEN_BEDROCK.ANTHROPIC_FOUNDRY_API_KEY.CLAUDE_CODE_SKIP_BEDROCK_AUTH.CLAUDE_CODE_SKIP_VERTEX_AUTH.CLAUDE_CODE_SKIP_FOUNDRY_AUTH.GEMINI_API_KEY.ANTHROPIC_MODEL.ANTHROPIC_DEFAULT_HAIKU_MODEL.ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION.ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME.ANTHROPIC_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES.ANTHROPIC_DEFAULT_OPUS_MODEL.ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION.ANTHROPIC_DEFAULT_OPUS_MODEL_NAME.ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES.ANTHROPIC_DEFAULT_SONNET_MODEL.ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION.ANTHROPIC_DEFAULT_SONNET_MODEL_NAME.ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES.OPENAI_AUTH_MODE.OPENAI_API_KEY.OPENAI_BASE_URL.OPENAI_MODEL.OPENAI_DEFAULT_HAIKU_MODEL.OPENAI_DEFAULT_HAIKU_MODEL_DESCRIPTION.OPENAI_DEFAULT_HAIKU_MODEL_NAME.OPENAI_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES.OPENAI_DEFAULT_OPUS_MODEL.OPENAI_DEFAULT_OPUS_MODEL_DESCRIPTION.OPENAI_DEFAULT_OPUS_MODEL_NAME.OPENAI_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES.OPENAI_DEFAULT_SONNET_MODEL.OPENAI_DEFAULT_SONNET_MODEL_DESCRIPTION.OPENAI_DEFAULT_SONNET_MODEL_NAME.OPENAI_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES.OPENAI_SMALL_FAST_MODEL.ANTHROPIC_SMALL_FAST_MODEL.ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION.CLAUDE_CODE_SUBAGENT_MODEL.GEMINI_MODEL.GEMINI_SMALL_FAST_MODEL.GEMINI_DEFAULT_HAIKU_MODEL.GEMINI_DEFAULT_HAIKU_MODEL_DESCRIPTION.GEMINI_DEFAULT_HAIKU_MODEL_NAME.GEMINI_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES.GEMINI_DEFAULT_OPUS_MODEL.GEMINI_DEFAULT_OPUS_MODEL_DESCRIPTION.GEMINI_DEFAULT_OPUS_MODEL_NAME.GEMINI_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES.GEMINI_DEFAULT_SONNET_MODEL.GEMINI_DEFAULT_SONNET_MODEL_DESCRIPTION.GEMINI_DEFAULT_SONNET_MODEL_NAME.GEMINI_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES`.split(`.`)),x1t=[`VERTEX_REGION_CLAUDE_`],u6=new Set(`ANTHROPIC_CUSTOM_HEADERS.ANTHROPIC_CUSTOM_MODEL_OPTION.ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION.ANTHROPIC_CUSTOM_MODEL_OPTION_NAME.ANTHROPIC_DEFAULT_HAIKU_MODEL.ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION.ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME.ANTHROPIC_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES.ANTHROPIC_DEFAULT_OPUS_MODEL.ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION.ANTHROPIC_DEFAULT_OPUS_MODEL_NAME.ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES.ANTHROPIC_DEFAULT_SONNET_MODEL.ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION.ANTHROPIC_DEFAULT_SONNET_MODEL_NAME.ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES.OPENAI_DEFAULT_HAIKU_MODEL.OPENAI_DEFAULT_HAIKU_MODEL_DESCRIPTION.OPENAI_DEFAULT_HAIKU_MODEL_NAME.OPENAI_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES.OPENAI_DEFAULT_OPUS_MODEL.OPENAI_DEFAULT_OPUS_MODEL_DESCRIPTION.OPENAI_DEFAULT_OPUS_MODEL_NAME.OPENAI_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES.OPENAI_DEFAULT_SONNET_MODEL.OPENAI_DEFAULT_SONNET_MODEL_DESCRIPTION.OPENAI_DEFAULT_SONNET_MODEL_NAME.OPENAI_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES.ANTHROPIC_FOUNDRY_API_KEY.ANTHROPIC_MODEL.ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION.ANTHROPIC_SMALL_FAST_MODEL.AWS_DEFAULT_REGION.AWS_PROFILE.AWS_REGION.BASH_DEFAULT_TIMEOUT_MS.BASH_MAX_OUTPUT_LENGTH.BASH_MAX_TIMEOUT_MS.CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR.CLAUDE_CODE_API_KEY_HELPER_TTL_MS.CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC.CLAUDE_CODE_DISABLE_TERMINAL_TITLE.CLAUDE_CODE_ENABLE_TELEMETRY.CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS.CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL.CLAUDE_CODE_MAX_OUTPUT_TOKENS.CLAUDE_CODE_SKIP_BEDROCK_AUTH.CLAUDE_CODE_SKIP_FOUNDRY_AUTH.CLAUDE_CODE_SKIP_VERTEX_AUTH.CLAUDE_CODE_SUBAGENT_MODEL.CLAUDE_CODE_USE_BEDROCK.CLAUDE_CODE_USE_FOUNDRY.CLAUDE_CODE_USE_GEMINI.CLAUDE_CODE_USE_VERTEX.GEMINI_MODEL.GEMINI_SMALL_FAST_MODEL.GEMINI_DEFAULT_HAIKU_MODEL.GEMINI_DEFAULT_HAIKU_MODEL_DESCRIPTION.GEMINI_DEFAULT_HAIKU_MODEL_NAME.GEMINI_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES.GEMINI_DEFAULT_OPUS_MODEL.GEMINI_DEFAULT_OPUS_MODEL_DESCRIPTION.GEMINI_DEFAULT_OPUS_MODEL_NAME.GEMINI_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES.GEMINI_DEFAULT_SONNET_MODEL.GEMINI_DEFAULT_SONNET_MODEL_DESCRIPTION.GEMINI_DEFAULT_SONNET_MODEL_NAME.GEMINI_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES.DISABLE_AUTOUPDATER.DISABLE_BUG_COMMAND.DISABLE_COST_WARNINGS.DISABLE_ERROR_REPORTING.DISABLE_FEEDBACK_COMMAND.DISABLE_TELEMETRY.ENABLE_SEARCH_EXTRA_TOOLS.MAX_MCP_OUTPUT_TOKENS.MAX_THINKING_TOKENS.MCP_TIMEOUT.MCP_TOOL_TIMEOUT.OTEL_EXPORTER_OTLP_HEADERS.OTEL_EXPORTER_OTLP_LOGS_HEADERS.OTEL_EXPORTER_OTLP_LOGS_PROTOCOL.OTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATE.OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY.OTEL_EXPORTER_OTLP_METRICS_HEADERS.OTEL_EXPORTER_OTLP_METRICS_PROTOCOL.OTEL_EXPORTER_OTLP_PROTOCOL.OTEL_EXPORTER_OTLP_TRACES_HEADERS.OTEL_LOG_TOOL_DETAILS.OTEL_LOG_USER_PROMPTS.OTEL_LOGS_EXPORT_INTERVAL.OTEL_LOGS_EXPORTER.OTEL_METRIC_EXPORT_INTERVAL.OTEL_METRICS_EXPORTER.OTEL_METRICS_INCLUDE_ACCOUNT_UUID.OTEL_METRICS_INCLUDE_SESSION_ID.OTEL_METRICS_INCLUDE_VERSION.OTEL_RESOURCE_ATTRIBUTES.USE_BUILTIN_RIPGREP.VERTEX_REGION_CLAUDE_3_5_HAIKU.VERTEX_REGION_CLAUDE_3_5_SONNET.VERTEX_REGION_CLAUDE_3_7_SONNET.VERTEX_REGION_CLAUDE_4_0_OPUS.VERTEX_REGION_CLAUDE_4_0_SONNET.VERTEX_REGION_CLAUDE_4_1_OPUS.VERTEX_REGION_CLAUDE_4_5_SONNET.VERTEX_REGION_CLAUDE_4_6_SONNET.VERTEX_REGION_CLAUDE_HAIKU_4_5`.split(`.`))}));function C1t(e){if(!e||!process.env.ANTHROPIC_UNIX_SOCKET)return e||{};let{ANTHROPIC_UNIX_SOCKET:t,ANTHROPIC_BASE_URL:n,ANTHROPIC_API_KEY:r,ANTHROPIC_AUTH_TOKEN:i,CLAUDE_CODE_OAUTH_TOKEN:a,...o}=e;return o}function w1t(e){if(!e)return{};if(!x(process.env.CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST))return e;let t={};for(let[n,r]of Object.entries(e))y1t(n)||(t[n]=r);return t}function T1t(e){if(!e||!p6)return e||{};let t={};for(let[n,r]of Object.entries(e))p6.has(n)||(t[n]=r);return t}function d6(e){return T1t(w1t(C1t(e)))}function E1t(){p6===void 0&&(p6=process.env.CLAUDE_CODE_ENTRYPOINT===`claude-desktop`?new Set(Object.keys(process.env)):null),Object.assign(process.env,d6(Tr().env));for(let e of D1t)e!==`policySettings`&&Zi(e)&&Object.assign(process.env,d6(_r(e)?.env));DS(),Object.assign(process.env,d6(_r(`policySettings`)?.env));let e=d6(zi()?.env);for(let[t,n]of Object.entries(e))u6.has(t.toUpperCase())&&(process.env[t]=n)}function f6(){Object.assign(process.env,d6(Tr().env)),Object.assign(process.env,d6(zi()?.env)),wce(),Dce(),Pce(),Mce()}var p6,D1t,O1t=n((()=>{Nze(),Fce(),xn(),y(),S1t(),zs(),Vs(),Li(),Gi(),D1t=[`userSettings`,`flagSettings`,`policySettings`]}));function k1t(e){switch(e){case`bedrock`:return`CLAUDE_CODE_USE_BEDROCK`;case`vertex`:return`CLAUDE_CODE_USE_VERTEX`;case`foundry`:return`CLAUDE_CODE_USE_FOUNDRY`;case`gemini`:return`CLAUDE_CODE_USE_GEMINI`;case`grok`:return`CLAUDE_CODE_USE_GROK`;default:throw Error(`Unknown provider: ${e}`)}}function m6(){let e=zi(),t=Object.fromEntries(Object.entries(process.env).filter(e=>e[1]!==void 0));return e?.env&&Object.assign(t,e.env),t}var A1t,j1t,M1t=n((()=>{Pn(),Gi(),O1t(),A1t=async(e,t)=>{let n=e.trim().toLowerCase();if(!n)return{type:`text`,value:`Current API provider: ${ar()}`};if(n===`unset`)return Ni(`userSettings`,{modelType:void 0}),delete process.env.CLAUDE_CODE_USE_BEDROCK,delete process.env.CLAUDE_CODE_USE_VERTEX,delete process.env.CLAUDE_CODE_USE_FOUNDRY,delete process.env.CLAUDE_CODE_USE_OPENAI,delete process.env.CLAUDE_CODE_USE_GEMINI,delete process.env.CLAUDE_CODE_USE_GROK,{type:`text`,value:`API provider cleared (will use environment variables).`};let r=[`anthropic`,`openai`,`gemini`,`grok`,`bedrock`,`vertex`,`foundry`];if(!r.includes(n))return{type:`text`,value:`Invalid provider: ${n}\nValid: ${r.join(`, `)}`};if(n===`openai`){let e=m6(),t=e.OPENAI_AUTH_MODE===`chatgpt`,n=!!e.OPENAI_API_KEY,r=!!e.OPENAI_BASE_URL;if(!t&&(!n||!r)){Ni(`userSettings`,{modelType:`openai`});let e=[];return n||e.push(`OPENAI_API_KEY`),r||e.push(`OPENAI_BASE_URL`),{type:`text`,value:`Switched to OpenAI provider.\nWarning: Missing env vars: ${e.join(`, `)}\nConfigure them via /login or set manually.`}}}if(n===`grok`){let e=m6();if(!(e.GROK_API_KEY||e.XAI_API_KEY))return Ni(`userSettings`,{modelType:`grok`}),{type:`text`,value:`Switched to Grok provider.
|
|
4338
4338
|
Warning: Missing env var: GROK_API_KEY (or XAI_API_KEY)
|
|
4339
4339
|
Configure it via settings.json env or set manually.`}}return n===`gemini`&&!m6().GEMINI_API_KEY?(Ni(`userSettings`,{modelType:`gemini`}),{type:`text`,value:`Switched to Gemini provider.
|
|
4340
4340
|
Warning: Missing env var: GEMINI_API_KEY
|
|
4341
4341
|
Configure it via /login or set manually.`}):n===`anthropic`||n===`openai`||n===`gemini`||n===`grok`?(delete process.env.CLAUDE_CODE_USE_BEDROCK,delete process.env.CLAUDE_CODE_USE_VERTEX,delete process.env.CLAUDE_CODE_USE_FOUNDRY,delete process.env.CLAUDE_CODE_USE_OPENAI,delete process.env.CLAUDE_CODE_USE_GEMINI,delete process.env.CLAUDE_CODE_USE_GROK,Ni(`userSettings`,{modelType:n}),f6(),{type:`text`,value:`API provider set to ${n}.`}):(delete process.env.CLAUDE_CODE_USE_OPENAI,delete process.env.OPENAI_API_KEY,delete process.env.OPENAI_BASE_URL,delete process.env.CLAUDE_CODE_USE_GEMINI,delete process.env.CLAUDE_CODE_USE_GROK,process.env[k1t(n)]=`1`,f6(),{type:`text`,value:`API provider set to ${n} (via environment variable).`})},j1t={type:`local`,name:`provider`,description:`Switch API provider (anthropic/openai/gemini/grok/bedrock/vertex/foundry)`,aliases:[`api`],argumentHint:`[anthropic|openai|gemini|grok|bedrock|vertex|foundry|unset]`,supportsNonInteractive:!0,load:()=>Promise.resolve({call:A1t})}}));function N1t(e){let{files:t}=e,n,r=e.getPromptForCommand;if(t&&Object.keys(t).length>0){n=F1t(e.name);let i,a=e.getPromptForCommand;r=async(n,r)=>{i??(i=I1t(e.name,t));let o=await i,s=await a(n,r);return o===null?s:B1t(s,o)}}let i={type:`prompt`,name:e.name,description:e.description,aliases:e.aliases,hasUserSpecifiedDescription:!0,allowedTools:e.allowedTools??[],argumentHint:e.argumentHint,whenToUse:e.whenToUse,model:e.model,disableModelInvocation:e.disableModelInvocation??!1,userInvocable:e.userInvocable??!0,contentLength:0,source:`bundled`,loadedFrom:`bundled`,hooks:e.hooks,skillRoot:n,context:e.context,agent:e.agent,isEnabled:e.isEnabled,isHidden:!(e.userInvocable??!0),progressMessage:`running`,getPromptForCommand:r};h6.push(i)}function P1t(){return[...h6]}function F1t(e){return Y(R6t(),e)}async function I1t(e,t){let n=F1t(e);try{return await L1t(n,t),n}catch(t){return U(`Failed to extract bundled skill '${e}' to ${n}: ${t instanceof Error?t.message:String(t)}`),null}}async function L1t(e,t){let n=new Map;for(let[r,i]of Object.entries(t)){let t=z1t(e,r),a=Eu(t),o=[t,i],s=n.get(a);s?s.push(o):n.set(a,[o])}await Promise.all([...n].map(async([e,t])=>{await pd(e,{recursive:!0,mode:448}),await Promise.all(t.map(([e,t])=>R1t(e,t)))}))}async function R1t(e,t){let n=await md(e,H1t,384);try{await n.writeFile(t,`utf8`)}finally{await n.close()}}function z1t(e,t){let n=ku(t);if(Ou(n)||n.split(Pu).includes(`..`)||n.split(`/`).includes(`..`))throw Error(`bundled skill file path escapes skill dir: ${t}`);return Y(e,n)}function B1t(e,t){let n=`Base directory for this skill: ${t}\n\n`;return e.length>0&&e[0].type===`text`?[{type:`text`,text:n+e[0].text},...e.slice(1)]:[{type:`text`,text:n},...e]}var h6,V1t,H1t,U1t=n((()=>{W(),N5(),h6=[],V1t=Vu.O_NOFOLLOW??0,H1t=process.platform===`win32`?`wx`:Vu.O_WRONLY|Vu.O_CREAT|Vu.O_EXCL|V1t}));function W1t(e){return Y1t.some(t=>t.test(e))}function G1t(e){return e.length<=8?`***`:`${e.slice(0,4)}…${e.slice(-2)} (${e.length} chars)`}function K1t(e){return X1t.some(t=>e.startsWith(t))}function q1t(){let e=Object.entries(process.env).filter(([e])=>K1t(e)).map(([e,t])=>[e,W1t(e)&&t?G1t(t):t??``]).sort(([e],[t])=>e.localeCompare(t));return e.length===0?` (no recognized env vars set)`:e.map(([e,t])=>` ${e}=${t}`).join(`
|
|
4342
4342
|
`)}function J1t(){return[` platform: ${process.platform} ${process.arch}`,` cwd: ${process.cwd()}`,` pid: ${process.pid}`,` bun: ${typeof Bun<`u`?Bun.version:`n/a`}`,` node: ${process.version}`,` session: ${Ft()}`].join(`
|
|
4343
4343
|
`)}var Y1t,X1t,Z1t,Q1t=n((()=>{tn(),Y1t=[/token/i,/secret/i,/password/i,/api[_-]?key/i,/auth/i,/private/i,/credential/i,/jwt/i,/session[_-]?id$/i],X1t=[`CLAUDE_`,`FEATURE_`,`ANTHROPIC_`,`BUN_`,`NODE_`,`GEMINI_`,`OPENAI_`,`GROK_`,`CCR_`,`KAIROS_`,`BUGHUNTER_`],Z1t={type:`local`,name:`env`,description:`Show current environment, runtime, and feature flags`,isHidden:!1,isEnabled:()=>!0,supportsNonInteractive:!0,load:async()=>({call:async()=>({type:`text`,value:[`## Runtime`,J1t(),``,`## Environment Variables (allowlisted prefixes)`,q1t(),``,"_Secrets matching token/password/auth/api_key are masked. Set additional `CLAUDE_*` / `FEATURE_*` env vars to see them here._"].join(`
|
|
4344
|
-
`)})})}})),g6,$1t=n((()=>{g6={type:`local-jsx`,name:`exit`,aliases:[`quit`],description:`Exit the REPL`,immediate:!0,load:()=>import(`./exit-
|
|
4344
|
+
`)})})}})),g6,$1t=n((()=>{g6={type:`local-jsx`,name:`exit`,aliases:[`quit`],description:`Exit the REPL`,immediate:!0,load:()=>import(`./exit-BsNW67F9.js`)}})),e0t,t0t=n((()=>{e0t={type:`local-jsx`,name:`export`,description:`Export the current conversation to a file or clipboard`,argumentHint:`[filename]`,load:()=>import(`./export-C9A9nOA1.js`)}})),n0t,r0t=n((()=>{Q3(),hr(),n0t={type:`local-jsx`,name:`model`,get description(){return`Set the AI model for Claude Code (currently ${Vn(An())})`},argumentHint:`[model]`,get immediate(){return Z3()},load:()=>import(`./model-CrAPXYZA.js`)}})),i0t,a0t=n((()=>{i0t={type:`local-jsx`,name:`tag`,description:`Toggle a searchable tag on the current session`,isEnabled:()=>process.env.USER_TYPE===`ant`,argumentHint:`<tag-name>`,load:()=>import(`./tag-B5b-waIf.js`)}})),o0t,s0t=n((()=>{o0t={type:`local-jsx`,name:`output-style`,description:`Deprecated: use /config to change output style`,isHidden:!0,load:()=>import(`./output-style-XDb9-2Kk.js`)}})),c0t,l0t=n((()=>{M3(),Wi(),c0t={type:`local-jsx`,name:`remote-env`,description:`Configure the default remote environment for teleport sessions`,isEnabled:()=>di()&&C3(`allow_remote_sessions`),get isHidden(){return!di()||!C3(`allow_remote_sessions`)},load:()=>import(`./remote-env-ChQuV3rO.js`)}})),_6,u0t=n((()=>{Wi(),y(),_6={type:`local-jsx`,name:`upgrade`,description:`Upgrade to Max for higher rate limits and more Opus`,availability:[`claude-ai`],isEnabled:()=>!x(process.env.DISABLE_UPGRADE_COMMAND)&&ra()!==`enterprise`,load:()=>import(`./upgrade-BkHztwGA.js`)}})),d0t,f0t=n((()=>{Wi(),d0t={type:`local-jsx`,name:`rate-limit-options`,description:`Show options when rate limit is reached`,isEnabled:()=>!!di(),isHidden:!0,load:()=>import(`./rate-limit-options-P7oQuwrl.js`)}})),v6,p0t=n((()=>{Qi(),v6={type:`prompt`,description:`Set up Claude Code's status line UI`,contentLength:0,aliases:[],name:`statusline`,progressMessage:`setting up statusLine`,allowedTools:[bn,`Read(~/**)`,`Edit(~/.claude/settings.json)`],source:`builtin`,disableNonInteractive:!0,async getPromptForCommand(e){return[{type:`text`,text:`Create an ${bn} with subagent_type "statusline-setup" and the prompt "${e.trim()||`Configure my statusLine from my shell PS1 configuration`}"`}]}}})),m0t,h0t=n((()=>{Q3(),m0t={type:`local-jsx`,name:`effort`,description:`Set effort level for model usage`,argumentHint:`[low|medium|high|xhigh|max|auto]`,get immediate(){return Z3()},load:()=>import(`./effort-DbryQCua.js`)}})),g0t,_0t=n((()=>{g0t={isEnabled:()=>!1,isHidden:!0,name:`stub`}}));function v0t(){let e=Ft(),t=Gt();return t?Ru(t,`${e}.jsonl`):Ru(_(),`projects`,Wo(fn()),`${e}.jsonl`)}function y0t(e,t){return e.length>t?`${e.slice(0,t)}…`:e}function b0t(e){if(typeof e==`string`)return y0t(e,b6);try{return y0t(JSON.stringify(e,null,2),b6)}catch{return String(e).slice(0,b6)}}function x0t(e){if(!Array.isArray(e))return[];let t=[];for(let n of e)n.type===`tool_use`&&typeof n.id==`string`?t.push({type:`tool_use`,id:n.id,name:typeof n.name==`string`?n.name:`unknown`,input:n.input}):n.type===`tool_result`&&typeof n.tool_use_id==`string`&&t.push({type:`tool_result`,tool_use_id:n.tool_use_id,content:n.content});return t}function S0t(e){let t=Yu(e,`utf8`).trim().split(`
|
|
4345
4345
|
`).filter(Boolean),n=new Map,r=[];for(let e of t)try{let t=JSON.parse(e);if(!t.content)continue;let i=x0t(t.content);for(let e of i)if(e.type===`tool_use`)n.set(e.id,e);else if(e.type===`tool_result`){let t=n.get(e.tool_use_id);t&&r.push({name:t.name,input:b0t(t.input),output:b0t(e.content)})}}catch{}return r}var y6,b6,C0t,w0t=n((()=>{tn(),y(),Jo(),y6=5,b6=200,C0t={type:`local`,name:`debug-tool-call`,description:`Show the last N tool call pairs (use/result) from the session log`,isHidden:!1,isEnabled:()=>!0,supportsNonInteractive:!0,bridgeSafe:!0,load:async()=>({call:async e=>{let t=e.trim()?parseInt(e.trim(),10):y6,n=Number.isFinite(t)&&t>0?t:y6,r=v0t();if(!qu(r))return{type:`text`,value:[`## Debug Tool Calls`,``,`Log file not found: \`${r}\``,``,`No tool calls to show — the session log has not been created yet.`].join(`
|
|
4346
4346
|
`)};let i=S0t(r),a=i.slice(-n);if(a.length===0)return{type:`text`,value:[`## Debug Tool Calls`,``,`No tool call pairs found in session log: \`${r}\``,``,`Tool calls appear after the model invokes a tool and receives a result.`].join(`
|
|
4347
4347
|
`)};let o=[`## Last ${a.length} Tool Call${a.length===1?``:`s`} (of ${i.length} total)`,``];for(let e=0;e<a.length;e++){let t=a[e];o.push(`### [${i.length-a.length+e+1}] ${t.name}`),o.push(`**Input:**`),o.push("```"),o.push(t.input),o.push("```"),o.push(`**Output:**`),o.push("```"),o.push(t.output),o.push("```"),o.push(``)}return{type:`text`,value:o.join(`
|
|
4348
4348
|
`)}}})}}));function x6(e){return(e.userFacingName?.()??e.name)||``}function S6(e){return e.isEnabled?.()??!0}var T0t=n((()=>{})),E0t=i({default:()=>D0t}),D0t,O0t=n((()=>{D0t={bridgeSafe:!0,type:`local-jsx`,name:`proactive`,description:`Toggle proactive (autonomous) mode`,isEnabled:()=>!0,immediate:!0,load:()=>Promise.resolve({async call(t,n){let r=(El(),e(gl));return r.isProactiveActive()?(r.deactivateProactive(),t(`Proactive mode disabled`,{display:`system`})):(r.activateProactive(`slash_command`),t(`Proactive mode enabled — model will work autonomously between ticks`,{display:`system`,metaMessages:[`<system-reminder>
|
|
4349
4349
|
Proactive mode is now enabled. You will receive periodic <tick> prompts. Do useful work on each tick, or call Sleep if there is nothing to do. Do not output "still waiting" — either act or sleep.
|
|
4350
|
-
</system-reminder>`]})),null}})}})),k0t=i({default:()=>M0t});function A0t(){let e=Jr(`tengu_kairos_brief_config`,C6),t=j0t().safeParse(e);return t.success?t.data:C6}var j0t,C6,M0t,N0t=n((()=>{it(),tn(),wr(),Ua(),Oq(),er(),Fs(),j0t=J(()=>L({enable_slash_command:We()})),C6={enable_slash_command:!1},M0t={type:`local-jsx`,name:`brief`,description:`Toggle brief-only mode`,isEnabled:()=>A0t().enable_slash_command,immediate:!0,load:()=>Promise.resolve({async call(e,t){let n=!t.getAppState().isBriefOnly;if(n&&!Eq())return G(`tengu_brief_mode_toggled`,{enabled:!1,gated:!0,source:`slash_command`}),e(`Brief tool is not enabled for your account`,{display:`system`}),null;_ne(n),t.setAppState(e=>e.isBriefOnly===n?e:{...e,isBriefOnly:n}),G(`tengu_brief_mode_toggled`,{enabled:n,gated:!1,source:`slash_command`});let r=Bt()?void 0:[`<system-reminder>\n${n?`Brief mode is now enabled. Use the ${Bn} tool for all user-facing output — plain text outside it is hidden from the user's view.`:`Brief mode is now disabled. The ${Bn} tool is no longer available — reply with plain text.`}\n</system-reminder>`];return e(n?`Brief-only mode enabled`:`Brief-only mode disabled`,{display:`system`,metaMessages:r}),null}})}}));function P0t(){return!!Jr(`tengu_kairos_assistant`,!1)}var F0t=n((()=>{wr()})),I0t=i({default:()=>L0t}),L0t,R0t=n((()=>{F0t(),L0t={type:`local-jsx`,name:`assistant`,description:`Open the Kairos assistant panel`,isEnabled:P0t,get isHidden(){return!P0t()},immediate:!0,load:()=>import(`./assistant-
|
|
4350
|
+
</system-reminder>`]})),null}})}})),k0t=i({default:()=>M0t});function A0t(){let e=Jr(`tengu_kairos_brief_config`,C6),t=j0t().safeParse(e);return t.success?t.data:C6}var j0t,C6,M0t,N0t=n((()=>{it(),tn(),wr(),Ua(),Oq(),er(),Fs(),j0t=J(()=>L({enable_slash_command:We()})),C6={enable_slash_command:!1},M0t={type:`local-jsx`,name:`brief`,description:`Toggle brief-only mode`,isEnabled:()=>A0t().enable_slash_command,immediate:!0,load:()=>Promise.resolve({async call(e,t){let n=!t.getAppState().isBriefOnly;if(n&&!Eq())return G(`tengu_brief_mode_toggled`,{enabled:!1,gated:!0,source:`slash_command`}),e(`Brief tool is not enabled for your account`,{display:`system`}),null;_ne(n),t.setAppState(e=>e.isBriefOnly===n?e:{...e,isBriefOnly:n}),G(`tengu_brief_mode_toggled`,{enabled:n,gated:!1,source:`slash_command`});let r=Bt()?void 0:[`<system-reminder>\n${n?`Brief mode is now enabled. Use the ${Bn} tool for all user-facing output — plain text outside it is hidden from the user's view.`:`Brief mode is now disabled. The ${Bn} tool is no longer available — reply with plain text.`}\n</system-reminder>`];return e(n?`Brief-only mode enabled`:`Brief-only mode disabled`,{display:`system`,metaMessages:r}),null}})}}));function P0t(){return!!Jr(`tengu_kairos_assistant`,!1)}var F0t=n((()=>{wr()})),I0t=i({default:()=>L0t}),L0t,R0t=n((()=>{F0t(),L0t={type:`local-jsx`,name:`assistant`,description:`Open the Kairos assistant panel`,isEnabled:P0t,get isHidden(){return!P0t()},immediate:!0,load:()=>import(`./assistant-DO7RAhd3.js`)}})),z0t=i({default:()=>V0t});function B0t(){return uu()}var V0t,H0t=n((()=>{du(),V0t={type:`local-jsx`,name:`remote-control`,aliases:[`rc`],description:`Connect this terminal for remote-control sessions`,argumentHint:`[name]`,isEnabled:B0t,get isHidden(){return!B0t()},immediate:!0,load:()=>import(`./bridge-DcOGvDbb.js`)}})),U0t=i({default:()=>G0t});function W0t(){return uu()}var G0t,K0t=n((()=>{du(),G0t={type:`local-jsx`,name:`remote-control-server`,aliases:[`rcs`],description:`Start a persistent Remote Control server (daemon) that accepts multiple sessions`,isEnabled:W0t,get isHidden(){return!W0t()},immediate:!0,load:()=>import(`./remoteControlServer-sqW_JLwC.js`)}})),q0t=i({default:()=>J0t}),J0t,Y0t=n((()=>{Zfe(),J0t={type:`local`,name:`voice`,description:`Toggle voice mode. Use /voice doubao for Doubao ASR backend`,isEnabled:()=>Qfe(),get isHidden(){return!Qfe()},supportsNonInteractive:!1,load:()=>import(`./voice-BLVF7E3Q.js`)}})),X0t=i({default:()=>Z0t}),Z0t,Q0t=n((()=>{Z0t={type:`local-jsx`,name:`monitor`,description:`Start a background shell monitor (Shift+Down to view)`,isEnabled:()=>!0,immediate:!1,userFacingName:()=>`monitor`,load:()=>Promise.resolve({async call(t,n,r){let i=r.trim();if(!i)return t(process.platform===`win32`?`Usage: /monitor <command>
|
|
4351
4351
|
Example: /monitor powershell -c "while(1){git status; Start-Sleep 5}"`:`Usage: /monitor <command>
|
|
4352
4352
|
Example: /monitor watch -n 5 git status`,{display:`system`}),null;if(process.platform===`win32`){let e=i.match(/^watch\s+-n\s+(\d+)\s+(.+)$/);if(e){let t=e[1];i=`powershell -c "while(1){${e[2]}; Start-Sleep ${t}}"`}}let{spawnShellTask:a}=(RZ(),e(kIt)),{exec:o}=(rU(),e(Oht)),{getTaskOutputPath:s}=(e7(),e(B6t));try{let e=await o(i,n.abortController.signal,`bash`),r=await a({command:i,description:i,shellCommand:e,toolUseId:n.toolUseId??`monitor-${Date.now()}`,agentId:void 0,kind:`monitor`},{abortController:n.abortController,getAppState:n.getAppState,setAppState:n.setAppState}),c=s(r.taskId);t(`Monitor started (${r.taskId}). Press Shift+Down to view.\nOutput: ${c}`,{display:`system`})}catch(e){t(`Monitor failed: ${e instanceof Error?e.message:String(e)}`,{display:`system`})}return null}})}})),$0t=i({default:()=>e2t}),e2t,t2t=n((()=>{e2t={type:`local-jsx`,name:`coordinator`,description:`Toggle coordinator (multi-worker) mode`,isEnabled:()=>!0,immediate:!0,load:()=>Promise.resolve({async call(t,n){return(Zx(),e(Yx)).isCoordinatorMode()?(delete process.env.CLAUDE_CODE_COORDINATOR_MODE,t(`Coordinator mode disabled — back to normal mode`,{display:`system`,metaMessages:[`<system-reminder>
|
|
4353
4353
|
Coordinator mode is now disabled. You have access to all standard tools again. Work directly instead of dispatching to workers.
|
|
@@ -4360,14 +4360,14 @@ Coordinator mode is now enabled. You are an orchestrator. Use Agent({ subagent_t
|
|
|
4360
4360
|
`)}function F2t(e,t,n,r,i){let a=Date.now(),o=!1;(async()=>{try{let{plan:o,rejectCount:s,executionTarget:c}=await l2t(t,M2t(),t=>{t===`needs_input`&&G(`tengu_ultraplan_awaiting_input`,{}),Ix(e,i,e=>{if(e.status!==`running`)return e;let n=t===`running`?void 0:t;return e.ultraplanPhase===n?e:{...e,ultraplanPhase:n}})},()=>r().tasks?.[e]?.status!==`running`);if(G(`tengu_ultraplan_approved`,{duration_ms:Date.now()-a,plan_length:o.length,reject_count:s,execution_target:c}),c===`remote`){if(r().tasks?.[e]?.status!==`running`)return;Ix(e,i,e=>e.status===`running`?{...e,status:`completed`,endTime:Date.now()}:e),i(e=>e.ultraplanSessionUrl===n?{...e,ultraplanSessionUrl:void 0}:e),mv({value:[`Ultraplan approved — executing in Claude Code on the web. Follow along at: ${n}`,``,`Results will land as a pull request when the remote session finishes. There is nothing to do here.`].join(`
|
|
4361
4361
|
`),mode:`task-notification`})}else i(n=>{let r=n.tasks?.[e];return!r||r.status!==`running`?n:{...n,ultraplanPendingChoice:{plan:o,sessionId:t,taskId:e}}})}catch(s){if(r().tasks?.[e]?.status!==`running`)return;o=!0,G(`tengu_ultraplan_failed`,{duration_ms:Date.now()-a,reason:s instanceof T6?s.reason:`network_or_unknown`,reject_count:s instanceof T6?s.rejectCount:void 0}),mv({value:`Ultraplan failed: ${H(s)}\n\nSession: ${n}`,mode:`task-notification`}),eP(t).catch(e=>U(`ultraplan archive failed: ${String(e)}`)),i(e=>e.ultraplanSessionUrl===n?{...e,ultraplanSessionUrl:void 0}:e)}finally{o&&Ix(e,i,e=>e.status===`running`?{...e,status:`failed`,endTime:Date.now()}:e)}})()}function I2t(e){return`◇ ultraplan\n${e?`${ype} `:``}Starting Claude Code on the web…`}function L2t(e){return`◇ ultraplan · Monitor progress in Claude Code on the web ${e}\nYou can continue working — when the ◇ fills, press ↓ to view results`}function R2t(e){return e?`ultraplan: already polling. Open ${e} to check status, or wait for the plan to land here.`:`ultraplan: already launching. Please wait for the session to start.`}async function z2t(e,t,n){await hP.kill(e,n),n(e=>e.ultraplanSessionUrl||e.ultraplanPendingChoice||e.ultraplanLaunching?{...e,ultraplanSessionUrl:void 0,ultraplanPendingChoice:void 0,ultraplanLaunching:void 0}:e),mv({value:`Ultraplan stopped.\n\nSession: ${iS(t,process.env.SESSION_INGRESS_URL)}`,mode:`task-notification`}),mv({value:`The user stopped the ultraplan session above. Do not respond to the stop notification — wait for their next message.`,mode:`task-notification`,isMeta:!0})}async function A6(e){let{blurb:t,seedPlan:n,promptIdentifier:r,getAppState:i,setAppState:a,signal:o,disconnectedBridge:s,onSessionReady:c}=e,{ultraplanSessionUrl:l,ultraplanLaunching:u}=i();return l||u?(G(`tengu_ultraplan_create_failed`,{reason:l?`already_polling`:`already_launching`}),R2t(l)):!t&&!n?[`Usage: /ultraplan \\<prompt\\>, or include "ultraplan" anywhere`,`in your prompt`,``,...T2t().usageBlurb,``,`Terms: ${j6}`].join(`
|
|
4362
4362
|
`):(a(e=>e.ultraplanLaunching?e:{...e,ultraplanLaunching:!0}),B2t({blurb:t,seedPlan:n,promptIdentifier:r,getAppState:i,setAppState:a,signal:o,onSessionReady:c}),I2t(s))}async function B2t(e){let{blurb:t,seedPlan:n,promptIdentifier:r=E6(),getAppState:i,setAppState:a,signal:o,onSessionReady:s}=e,c;try{let e=await oP();if(!e.eligible){G(`tengu_ultraplan_create_failed`,{reason:`precondition`,precondition_errors:e.errors.map(e=>e.type).join(`,`)}),mv({value:`ultraplan: cannot launch remote session —\n${e.errors.map(sP).join(`
|
|
4363
|
-
`)}`,mode:`task-notification`});return}let l=P2t(t,n,r),u,d,f=await $N({initialMessage:l,description:t||`Refine local plan`,permissionMode:`plan`,ultraplan:!0,signal:o,useDefaultEnvironment:!0,onBundleFail:e=>{u=e},onCreateFail:e=>{d=e}});if(!f){let e=u??d;G(`tengu_ultraplan_create_failed`,{reason:u?`bundle_fail`:d?`create_api_fail`:`teleport_null`}),mv({value:`ultraplan: session creation failed${e?` — ${e}`:``}. See --debug for details.`,mode:`task-notification`});return}c=f.id;let p=iS(f.id,process.env.SESSION_INGRESS_URL);a(e=>({...e,ultraplanSessionUrl:p,ultraplanLaunching:void 0})),s?.(L2t(p)),G(`tengu_ultraplan_launched`,{has_seed_plan:!!n,prompt_identifier:r});let{taskId:m}=dP({remoteTaskType:`ultraplan`,session:{id:f.id,title:t||`Ultraplan`},command:t,context:{abortController:new AbortController,getAppState:i,setAppState:a},isUltraplan:!0});F2t(m,f.id,p,i,a),ja(async()=>{i().ultraplanSessionUrl===p&&await eP(f.id,1500)})}catch(e){q(e),G(`tengu_ultraplan_create_failed`,{reason:`unexpected_error`}),mv({value:`ultraplan: unexpected error — ${H(e)}`,mode:`task-notification`}),mv({value:`Ultraplan hit an unexpected error during launch. Wait for the user's next instructions.`,mode:`task-notification`,isMeta:!0}),c&&(eP(c).catch(e=>U(`ultraplan: failed to archive orphaned session`,e)),a(e=>e.ultraplanSessionUrl?{...e,ultraplanSessionUrl:void 0}:e))}finally{a(e=>e.ultraplanLaunching?{...e,ultraplanLaunching:void 0}:e)}}var j6,M6,V2t,H2t,U2t=n((()=>{vpe(),Rn(),oS(),wr(),Ua(),gP(),W(),ka(),Ao(),xv(),Bx(),nP(),g2t(),D2t(),Ma(),j6=`https://code.claude.com/docs/en/claude-code-on-the-web`,M6=(A2t(),e(O2t)),(typeof M6==`string`?M6:M6.default).trimEnd(),V2t=async(e,t,n)=>{let r=n.trim();if(!r)return e(await A6({blurb:r,getAppState:t.getAppState,setAppState:t.setAppState,signal:t.abortController.signal}),{display:`system`}),null;let{ultraplanSessionUrl:i,ultraplanLaunching:a}=t.getAppState();return i||a?(G(`tengu_ultraplan_create_failed`,{reason:i?`already_polling`:`already_launching`}),e(R2t(i),{display:`system`}),null):(t.setAppState(e=>({...e,ultraplanLaunchPending:{blurb:r}})),e(void 0,{display:`skip`}),null)},H2t={type:`local-jsx`,name:`ultraplan`,description:`~10–30 min · Claude Code on the web drafts an advanced plan you can edit and approve. See ${j6}`,argumentHint:`<prompt>`,isEnabled:()=>N2t(),load:()=>Promise.resolve({call:V2t})}})),W2t=i({default:()=>G2t}),G2t,K2t=n((()=>{G2t={type:`local-jsx`,name:`daemon`,description:`Manage background sessions and daemon`,argumentHint:`[status|start|stop|bg|attach|logs|kill]`,isEnabled:()=>!0,load:()=>import(`./daemon-VYRit6Aq.js`)}})),q2t=i({default:()=>J2t}),J2t,Y2t=n((()=>{J2t={type:`local-jsx`,name:`job`,description:`Manage template jobs`,argumentHint:`[list|new|reply|status]`,isEnabled:()=>!0,load:()=>import(`./job-D_DoFtev.js`)}}));function X2t(){if(process.env.USER_TYPE===`ant`)return!0;let e=new Date;return e.getFullYear()===2026&&e.getMonth()===3&&e.getDate()<=7}function Z2t(){if(process.env.USER_TYPE===`ant`)return!0;let e=new Date;return e.getFullYear()>2026||e.getFullYear()===2026&&e.getMonth()>=3}function Q2t({text:e}){return(0,N6.jsx)(N6.Fragment,{children:[...e].map((e,t)=>(0,N6.jsx)(z,{color:Id(t),children:e},t))})}function $2t(){let{addNotification:e,removeNotification:t}=WO();(0,t4t.useEffect)(()=>{if(!(Tr().companion||!X2t()))return e({key:`buddy-teaser`,jsx:(0,N6.jsx)(Q2t,{text:`/buddy`}),priority:`immediate`,timeoutMs:15e3}),()=>t(`buddy-teaser`)},[e,t])}function e4t(e){let t=[],n=/\/buddy\b/g,r;for(;(r=n.exec(e))!==null;)t.push({start:r.index,end:r.index+r[0].length});return t}var t4t,N6,n4t=n((()=>{t4t=r(R(),1),YO(),Tt(),xn(),Ld(),N6=jt()})),r4t=i({default:()=>i4t}),i4t,a4t=n((()=>{n4t(),i4t={type:`local-jsx`,name:`buddy`,description:`Hatch a coding companion · pet, off`,argumentHint:`[pet|off]`,immediate:!0,get isHidden(){return!Z2t()},load:()=>import(`./buddy-v00QHFZ6.js`)}})),o4t=i({default:()=>s4t}),s4t,c4t=n((()=>{s4t={type:`local`,name:`poor`,description:`Toggle poor mode — disable extract_memories and prompt_suggestion to save tokens`,supportsNonInteractive:!1,load:()=>import(`./poor-Bcu8JaV5.js`)}}));async function l4t(e){try{let[t,n]=await Promise.all([tG(e).catch(e=>(q(xa(e)),U(`Skill directory commands failed to load, continuing without them`),[])),N0().catch(e=>(q(xa(e)),U(`Plugin skills failed to load, continuing without them`),[]))]),r=P1t(),i=aue();return U(`getSkills returning: ${t.length} skill dir commands, ${n.length} plugin skills, ${r.length} bundled skills, ${i.length} builtin plugin skills`),{skillDirCommands:t,pluginSkills:n,bundledSkills:r,builtinPluginSkills:i}}catch(e){return q(xa(e)),U(`Unexpected error in getSkills, returning empty`),{skillDirCommands:[],pluginSkills:[],bundledSkills:[],builtinPluginSkills:[]}}}function P6(e){if(!e.availability||e.availability.length===0)return!0;for(let t of e.availability)switch(t){case`claude-ai`:if(di())return!0;break;case`console`:if(!di()&&!Er()&&Wn())return!0;break;default:break}return!1}async function F6(e){let t=await n8(e),n=Oyt(),r=t.filter(e=>P6(e)&&S6(e));if(n.length===0)return r;let i=new Set(r.map(e=>e.name)),a=n.filter(e=>!i.has(e.name)&&P6(e)&&S6(e));if(a.length===0)return r;let o=new Set($6().map(e=>e.name)),s=r.findIndex(e=>o.has(e.name));return s===-1?[...r,...a]:[...r.slice(0,s),...a,...r.slice(s)]}function u4t(){n8.cache?.clear?.(),r8.cache?.clear?.(),i8.cache?.clear?.(),v4t?.()}function d4t(){u4t(),MGt(),PGt(),Eyt()}function f4t(e){return[]}function p4t(e){return e.type===`local-jsx`?e.bridgeSafe===!0:e.type===`prompt`?!0:e.bridgeSafe===!0||o8.has(e)}function m4t(e,t){if(!p4t(e))return{ok:!1};let n=e.getBridgeInvocationError?.(t);return n?{ok:!1,reason:n}:{ok:!0}}function h4t(e){return e.filter(e=>a8.has(e))}function I6(e,t){return t.find(t=>t.name===e||x6(t)===e||t.aliases?.includes(e))}function L6(e,t){return I6(e,t)!==void 0}function g4t(e,t){let n=I6(e,t);if(!n)throw ReferenceError(`Command ${e} not found. Available commands: ${t.map(e=>{let t=x6(e);return e.aliases?`${t} (aliases: ${e.aliases.join(`, `)})`:t}).sort((e,t)=>e.localeCompare(t)).join(`, `)}`);return n}function _4t(e){if(e.type!==`prompt`)return e.description;if(e.kind===`workflow`)return`${e.description} (workflow)`;if(e.source===`plugin`){let t=e.pluginInfo?.pluginManifest.name;return t?`(${t}) ${e.description}`:`${e.description} (plugin)`}return e.source===`builtin`||e.source===`mcp`?e.description:e.source===`bundled`?`${e.description} (bundled)`:`${e.description} (${lae(e.source)})`}var R6,z6,B6,V6,H6,U6,W6,G6,K6,v4t,q6,J6,Y6,X6,Z6,y4t,Q6,$6,e8,t8,n8,r8,i8,a8,o8,s8=n((()=>{nge(),age(),sge(),cge(),uge(),xge(),zXt(),BXt(),VXt(),WXt(),GXt(),JXt(),ZXt(),QXt(),eZt(),rZt(),aZt(),sZt(),lZt(),uZt(),fZt(),hZt(),_Zt(),vZt(),bZt(),SZt(),wZt(),EZt(),OZt(),gpe(),AZt(),jZt(),NZt(),LZt(),RZt(),BZt(),HZt(),JZt(),YZt(),oQt(),cQt(),uQt(),fQt(),mQt(),gQt(),vQt(),bQt(),SQt(),wQt(),EQt(),OQt(),jQt(),NQt(),FQt(),IQt(),LQt(),RQt(),BQt(),HQt(),WQt(),GQt(),qQt(),YQt(),ZQt(),$Qt(),e$t(),n$t(),i$t(),o$t(),c$t(),u$t(),f$t(),m$t(),A$t(),N$t(),I$t(),z$t(),V$t(),U$t(),K$t(),J$t(),c1t(),u1t(),Spe(),f1t(),p1t(),g1t(),v1t(),M1t(),Ao(),ka(),W(),sG(),U1t(),cue(),P0(),l(),Wi(),Pn(),Q1t(),$1t(),t0t(),r0t(),a0t(),s0t(),l0t(),u0t(),Uot(),f0t(),p0t(),h0t(),_0t(),w0t(),Li(),T0t(),R6=(O0t(),e(E0t)).default,z6=(N0t(),e(k0t)).default,B6=(R0t(),e(I0t)).default,V6=(H0t(),e(z0t)).default,H6=(K0t(),e(U0t)).default,U6=(Y0t(),e(q0t)).default,W6=(Q0t(),e(X0t)).default,G6=(t2t(),e($0t)).default,K6=(c2t(),e(a2t)).default,v4t=(ml(),e(Oue)).clearSkillIndexCache,q6=(U2t(),e(j2t)).default,J6=(K2t(),e(W2t)).default,Y6=(Y2t(),e(q2t)).default,X6=(a4t(),e(r4t)).default,Z6=(c4t(),e(o4t)).default,y4t={type:`prompt`,name:`insights`,description:`Generate a report analyzing your Claude Code sessions`,contentLength:0,progressMessage:`analyzing your sessions`,source:`builtin`,async getPromptForCommand(e,t){let n=(await import(`./insights-B6ogyLuv.js`)).default;if(n.type!==`prompt`)throw Error(`unreachable`);return n.getPromptForCommand(e,t)}},Q6=[oge,MQt,lge,p$t,W$t,G$t,q$t,g0t].filter(Boolean),$6=c(()=>[tge,h1t,hQt,_Qt,yQt,xQt,CQt,TQt,DQt,_1t,j1t,r$t,t$t,Vf,d1t,P3,F3,z3,$Xt,L3,qXt,tZt,nZt,iZt,oZt,m0t,g6,KQt,$3,d$t,B3,dZt,mZt,V3,yZt,TZt,DZt,kZt,cZt,H3,n0t,o0t,c0t,a$t,IZt,U3,s$t,zZt,VZt,G3,sQt,lQt,v6,l6,i0t,J3,N3,W3,qZt,l$t,AQt,PQt,_6,mz,Hot,d0t,q3,y4t,Y3,...[],...[],...X6?[X6]:[],...Z6?[Z6]:[],...R6?[R6]:[],...W6?[W6]:[],...G6?[G6]:[],...z6?[z6]:[],...B6?[B6]:[],...V6?[V6]:[],...H6?[H6]:[],...U6?[U6]:[],zQt,VQt,UQt,X3,XQt,QQt,e0t,l1t,...Er()?[]:[CZt,xZt()],JQt,...[],...[],...[],...[],...[],...[],...[],...[],dQt,...K6?[K6]:[],...q6?[q6]:[],...[],...J6?[J6]:[],...Y6?[Y6]:[],...[],o6,R$t,B$t,H$t,ige,UXt,XXt,k$t,M$t,...[],gZt,Z1t,C0t,s1t,_pe,hpe,bge,aQt,pQt,Cpe,xpe,MZt,...process.env.USER_TYPE===`ant`&&!process.env.IS_DEMO?Q6:[]]),e8=c(()=>new Set($6().flatMap(e=>[e.name,...e.aliases??[]]))),t8=(i2t(),e(n2t)).getWorkflowCommands,n8=c(async e=>{let[{skillDirCommands:t,pluginSkills:n,bundledSkills:r,builtinPluginSkills:i},a,o]=await Promise.all([l4t(e),M0(),t8?t8(e):Promise.resolve([])]);return[...r,...i,...t,...o,...a,...n,...$6()]}),r8=c(async e=>(await F6(e)).filter(e=>e.type===`prompt`&&!e.disableModelInvocation&&e.source!==`builtin`&&(e.loadedFrom===`bundled`||e.loadedFrom===`skills`||e.loadedFrom===`commands_DEPRECATED`||e.hasUserSpecifiedDescription||e.whenToUse))),i8=c(async e=>{try{return(await F6(e)).filter(e=>e.type===`prompt`&&e.source!==`builtin`&&(e.hasUserSpecifiedDescription||e.whenToUse)&&(e.loadedFrom===`skills`||e.loadedFrom===`plugin`||e.loadedFrom===`bundled`||e.disableModelInvocation))}catch(e){return q(xa(e)),U(`Returning empty skills array due to load failure`),[]}}),a8=new Set([G3,g6,P3,B3,J3,F3,Y3,q3,L3,Vf,N3,X3,R6,V3,v6,l6,H3]),o8=new Set([z3,P3,q3,o6,U3,$3].filter(e=>e!==null))}));async function b4t(e){let t=Date.now(),{stdout:n,code:r}=await $o(Xa(),[`worktree`,`list`,`--porcelain`],{cwd:e,preserveOutputOnError:!1}),i=Date.now()-t;if(r!==0)return G(`tengu_worktree_detection`,{duration_ms:i,worktree_count:0,success:!1}),[];let a=n.split(`
|
|
4363
|
+
`)}`,mode:`task-notification`});return}let l=P2t(t,n,r),u,d,f=await $N({initialMessage:l,description:t||`Refine local plan`,permissionMode:`plan`,ultraplan:!0,signal:o,useDefaultEnvironment:!0,onBundleFail:e=>{u=e},onCreateFail:e=>{d=e}});if(!f){let e=u??d;G(`tengu_ultraplan_create_failed`,{reason:u?`bundle_fail`:d?`create_api_fail`:`teleport_null`}),mv({value:`ultraplan: session creation failed${e?` — ${e}`:``}. See --debug for details.`,mode:`task-notification`});return}c=f.id;let p=iS(f.id,process.env.SESSION_INGRESS_URL);a(e=>({...e,ultraplanSessionUrl:p,ultraplanLaunching:void 0})),s?.(L2t(p)),G(`tengu_ultraplan_launched`,{has_seed_plan:!!n,prompt_identifier:r});let{taskId:m}=dP({remoteTaskType:`ultraplan`,session:{id:f.id,title:t||`Ultraplan`},command:t,context:{abortController:new AbortController,getAppState:i,setAppState:a},isUltraplan:!0});F2t(m,f.id,p,i,a),ja(async()=>{i().ultraplanSessionUrl===p&&await eP(f.id,1500)})}catch(e){q(e),G(`tengu_ultraplan_create_failed`,{reason:`unexpected_error`}),mv({value:`ultraplan: unexpected error — ${H(e)}`,mode:`task-notification`}),mv({value:`Ultraplan hit an unexpected error during launch. Wait for the user's next instructions.`,mode:`task-notification`,isMeta:!0}),c&&(eP(c).catch(e=>U(`ultraplan: failed to archive orphaned session`,e)),a(e=>e.ultraplanSessionUrl?{...e,ultraplanSessionUrl:void 0}:e))}finally{a(e=>e.ultraplanLaunching?{...e,ultraplanLaunching:void 0}:e)}}var j6,M6,V2t,H2t,U2t=n((()=>{vpe(),Rn(),oS(),wr(),Ua(),gP(),W(),ka(),Ao(),xv(),Bx(),nP(),g2t(),D2t(),Ma(),j6=`https://code.claude.com/docs/en/claude-code-on-the-web`,M6=(A2t(),e(O2t)),(typeof M6==`string`?M6:M6.default).trimEnd(),V2t=async(e,t,n)=>{let r=n.trim();if(!r)return e(await A6({blurb:r,getAppState:t.getAppState,setAppState:t.setAppState,signal:t.abortController.signal}),{display:`system`}),null;let{ultraplanSessionUrl:i,ultraplanLaunching:a}=t.getAppState();return i||a?(G(`tengu_ultraplan_create_failed`,{reason:i?`already_polling`:`already_launching`}),e(R2t(i),{display:`system`}),null):(t.setAppState(e=>({...e,ultraplanLaunchPending:{blurb:r}})),e(void 0,{display:`skip`}),null)},H2t={type:`local-jsx`,name:`ultraplan`,description:`~10–30 min · Claude Code on the web drafts an advanced plan you can edit and approve. See ${j6}`,argumentHint:`<prompt>`,isEnabled:()=>N2t(),load:()=>Promise.resolve({call:V2t})}})),W2t=i({default:()=>G2t}),G2t,K2t=n((()=>{G2t={type:`local-jsx`,name:`daemon`,description:`Manage background sessions and daemon`,argumentHint:`[status|start|stop|bg|attach|logs|kill]`,isEnabled:()=>!0,load:()=>import(`./daemon-VYRit6Aq.js`)}})),q2t=i({default:()=>J2t}),J2t,Y2t=n((()=>{J2t={type:`local-jsx`,name:`job`,description:`Manage template jobs`,argumentHint:`[list|new|reply|status]`,isEnabled:()=>!0,load:()=>import(`./job-CnlMlm3t.js`)}}));function X2t(){if(process.env.USER_TYPE===`ant`)return!0;let e=new Date;return e.getFullYear()===2026&&e.getMonth()===3&&e.getDate()<=7}function Z2t(){if(process.env.USER_TYPE===`ant`)return!0;let e=new Date;return e.getFullYear()>2026||e.getFullYear()===2026&&e.getMonth()>=3}function Q2t({text:e}){return(0,N6.jsx)(N6.Fragment,{children:[...e].map((e,t)=>(0,N6.jsx)(z,{color:Id(t),children:e},t))})}function $2t(){let{addNotification:e,removeNotification:t}=WO();(0,t4t.useEffect)(()=>{if(!(Tr().companion||!X2t()))return e({key:`buddy-teaser`,jsx:(0,N6.jsx)(Q2t,{text:`/buddy`}),priority:`immediate`,timeoutMs:15e3}),()=>t(`buddy-teaser`)},[e,t])}function e4t(e){let t=[],n=/\/buddy\b/g,r;for(;(r=n.exec(e))!==null;)t.push({start:r.index,end:r.index+r[0].length});return t}var t4t,N6,n4t=n((()=>{t4t=r(R(),1),YO(),Tt(),xn(),Ld(),N6=jt()})),r4t=i({default:()=>i4t}),i4t,a4t=n((()=>{n4t(),i4t={type:`local-jsx`,name:`buddy`,description:`Hatch a coding companion · pet, off`,argumentHint:`[pet|off]`,immediate:!0,get isHidden(){return!Z2t()},load:()=>import(`./buddy-DkB1xU1o.js`)}})),o4t=i({default:()=>s4t}),s4t,c4t=n((()=>{s4t={type:`local`,name:`poor`,description:`Toggle poor mode — disable extract_memories and prompt_suggestion to save tokens`,supportsNonInteractive:!1,load:()=>import(`./poor-C0KwfFF0.js`)}}));async function l4t(e){try{let[t,n]=await Promise.all([tG(e).catch(e=>(q(xa(e)),U(`Skill directory commands failed to load, continuing without them`),[])),N0().catch(e=>(q(xa(e)),U(`Plugin skills failed to load, continuing without them`),[]))]),r=P1t(),i=aue();return U(`getSkills returning: ${t.length} skill dir commands, ${n.length} plugin skills, ${r.length} bundled skills, ${i.length} builtin plugin skills`),{skillDirCommands:t,pluginSkills:n,bundledSkills:r,builtinPluginSkills:i}}catch(e){return q(xa(e)),U(`Unexpected error in getSkills, returning empty`),{skillDirCommands:[],pluginSkills:[],bundledSkills:[],builtinPluginSkills:[]}}}function P6(e){if(!e.availability||e.availability.length===0)return!0;for(let t of e.availability)switch(t){case`claude-ai`:if(di())return!0;break;case`console`:if(!di()&&!Er()&&Wn())return!0;break;default:break}return!1}async function F6(e){let t=await n8(e),n=Oyt(),r=t.filter(e=>P6(e)&&S6(e));if(n.length===0)return r;let i=new Set(r.map(e=>e.name)),a=n.filter(e=>!i.has(e.name)&&P6(e)&&S6(e));if(a.length===0)return r;let o=new Set($6().map(e=>e.name)),s=r.findIndex(e=>o.has(e.name));return s===-1?[...r,...a]:[...r.slice(0,s),...a,...r.slice(s)]}function u4t(){n8.cache?.clear?.(),r8.cache?.clear?.(),i8.cache?.clear?.(),v4t?.()}function d4t(){u4t(),MGt(),PGt(),Eyt()}function f4t(e){return[]}function p4t(e){return e.type===`local-jsx`?e.bridgeSafe===!0:e.type===`prompt`?!0:e.bridgeSafe===!0||o8.has(e)}function m4t(e,t){if(!p4t(e))return{ok:!1};let n=e.getBridgeInvocationError?.(t);return n?{ok:!1,reason:n}:{ok:!0}}function h4t(e){return e.filter(e=>a8.has(e))}function I6(e,t){return t.find(t=>t.name===e||x6(t)===e||t.aliases?.includes(e))}function L6(e,t){return I6(e,t)!==void 0}function g4t(e,t){let n=I6(e,t);if(!n)throw ReferenceError(`Command ${e} not found. Available commands: ${t.map(e=>{let t=x6(e);return e.aliases?`${t} (aliases: ${e.aliases.join(`, `)})`:t}).sort((e,t)=>e.localeCompare(t)).join(`, `)}`);return n}function _4t(e){if(e.type!==`prompt`)return e.description;if(e.kind===`workflow`)return`${e.description} (workflow)`;if(e.source===`plugin`){let t=e.pluginInfo?.pluginManifest.name;return t?`(${t}) ${e.description}`:`${e.description} (plugin)`}return e.source===`builtin`||e.source===`mcp`?e.description:e.source===`bundled`?`${e.description} (bundled)`:`${e.description} (${lae(e.source)})`}var R6,z6,B6,V6,H6,U6,W6,G6,K6,v4t,q6,J6,Y6,X6,Z6,y4t,Q6,$6,e8,t8,n8,r8,i8,a8,o8,s8=n((()=>{nge(),age(),sge(),cge(),uge(),xge(),zXt(),BXt(),VXt(),WXt(),GXt(),JXt(),ZXt(),QXt(),eZt(),rZt(),aZt(),sZt(),lZt(),uZt(),fZt(),hZt(),_Zt(),vZt(),bZt(),SZt(),wZt(),EZt(),OZt(),gpe(),AZt(),jZt(),NZt(),LZt(),RZt(),BZt(),HZt(),JZt(),YZt(),oQt(),cQt(),uQt(),fQt(),mQt(),gQt(),vQt(),bQt(),SQt(),wQt(),EQt(),OQt(),jQt(),NQt(),FQt(),IQt(),LQt(),RQt(),BQt(),HQt(),WQt(),GQt(),qQt(),YQt(),ZQt(),$Qt(),e$t(),n$t(),i$t(),o$t(),c$t(),u$t(),f$t(),m$t(),A$t(),N$t(),I$t(),z$t(),V$t(),U$t(),K$t(),J$t(),c1t(),u1t(),Spe(),f1t(),p1t(),g1t(),v1t(),M1t(),Ao(),ka(),W(),sG(),U1t(),cue(),P0(),l(),Wi(),Pn(),Q1t(),$1t(),t0t(),r0t(),a0t(),s0t(),l0t(),u0t(),Uot(),f0t(),p0t(),h0t(),_0t(),w0t(),Li(),T0t(),R6=(O0t(),e(E0t)).default,z6=(N0t(),e(k0t)).default,B6=(R0t(),e(I0t)).default,V6=(H0t(),e(z0t)).default,H6=(K0t(),e(U0t)).default,U6=(Y0t(),e(q0t)).default,W6=(Q0t(),e(X0t)).default,G6=(t2t(),e($0t)).default,K6=(c2t(),e(a2t)).default,v4t=(ml(),e(Oue)).clearSkillIndexCache,q6=(U2t(),e(j2t)).default,J6=(K2t(),e(W2t)).default,Y6=(Y2t(),e(q2t)).default,X6=(a4t(),e(r4t)).default,Z6=(c4t(),e(o4t)).default,y4t={type:`prompt`,name:`insights`,description:`Generate a report analyzing your Claude Code sessions`,contentLength:0,progressMessage:`analyzing your sessions`,source:`builtin`,async getPromptForCommand(e,t){let n=(await import(`./insights-NOl_PxhN.js`)).default;if(n.type!==`prompt`)throw Error(`unreachable`);return n.getPromptForCommand(e,t)}},Q6=[oge,MQt,lge,p$t,W$t,G$t,q$t,g0t].filter(Boolean),$6=c(()=>[tge,h1t,hQt,_Qt,yQt,xQt,CQt,TQt,DQt,_1t,j1t,r$t,t$t,Vf,d1t,P3,F3,z3,$Xt,L3,qXt,tZt,nZt,iZt,oZt,m0t,g6,KQt,$3,d$t,B3,dZt,mZt,V3,yZt,TZt,DZt,kZt,cZt,H3,n0t,o0t,c0t,a$t,IZt,U3,s$t,zZt,VZt,G3,sQt,lQt,v6,l6,i0t,J3,N3,W3,qZt,l$t,AQt,PQt,_6,mz,Hot,d0t,q3,y4t,Y3,...[],...[],...X6?[X6]:[],...Z6?[Z6]:[],...R6?[R6]:[],...W6?[W6]:[],...G6?[G6]:[],...z6?[z6]:[],...B6?[B6]:[],...V6?[V6]:[],...H6?[H6]:[],...U6?[U6]:[],zQt,VQt,UQt,X3,XQt,QQt,e0t,l1t,...Er()?[]:[CZt,xZt()],JQt,...[],...[],...[],...[],...[],...[],...[],...[],dQt,...K6?[K6]:[],...q6?[q6]:[],...[],...J6?[J6]:[],...Y6?[Y6]:[],...[],o6,R$t,B$t,H$t,ige,UXt,XXt,k$t,M$t,...[],gZt,Z1t,C0t,s1t,_pe,hpe,bge,aQt,pQt,Cpe,xpe,MZt,...process.env.USER_TYPE===`ant`&&!process.env.IS_DEMO?Q6:[]]),e8=c(()=>new Set($6().flatMap(e=>[e.name,...e.aliases??[]]))),t8=(i2t(),e(n2t)).getWorkflowCommands,n8=c(async e=>{let[{skillDirCommands:t,pluginSkills:n,bundledSkills:r,builtinPluginSkills:i},a,o]=await Promise.all([l4t(e),M0(),t8?t8(e):Promise.resolve([])]);return[...r,...i,...t,...o,...a,...n,...$6()]}),r8=c(async e=>(await F6(e)).filter(e=>e.type===`prompt`&&!e.disableModelInvocation&&e.source!==`builtin`&&(e.loadedFrom===`bundled`||e.loadedFrom===`skills`||e.loadedFrom===`commands_DEPRECATED`||e.hasUserSpecifiedDescription||e.whenToUse))),i8=c(async e=>{try{return(await F6(e)).filter(e=>e.type===`prompt`&&e.source!==`builtin`&&(e.hasUserSpecifiedDescription||e.whenToUse)&&(e.loadedFrom===`skills`||e.loadedFrom===`plugin`||e.loadedFrom===`bundled`||e.disableModelInvocation))}catch(e){return q(xa(e)),U(`Returning empty skills array due to load failure`),[]}}),a8=new Set([G3,g6,P3,B3,J3,F3,Y3,q3,L3,Vf,N3,X3,R6,V3,v6,l6,H3]),o8=new Set([z3,P3,q3,o6,U3,$3].filter(e=>e!==null))}));async function b4t(e){let t=Date.now(),{stdout:n,code:r}=await $o(Xa(),[`worktree`,`list`,`--porcelain`],{cwd:e,preserveOutputOnError:!1}),i=Date.now()-t;if(r!==0)return G(`tengu_worktree_detection`,{duration_ms:i,worktree_count:0,success:!1}),[];let a=n.split(`
|
|
4364
4364
|
`).filter(e=>e.startsWith(`worktree `)).map(e=>e.slice(9).normalize(`NFC`));G(`tengu_worktree_detection`,{duration_ms:i,worktree_count:a.length,success:!0});let o=a.find(t=>e===t||e.startsWith(t+Pu)),s=a.filter(e=>e!==o).sort((e,t)=>e.localeCompare(t));return o?[o,...s]:s}var x4t=n((()=>{Ua(),es(),no()})),S4t=i({MAX_TRANSCRIPT_READ_BYTES:()=>V3t,adoptResumedSessionFile:()=>z4t,buildConversationChain:()=>F8,cacheSessionTitle:()=>d3t,checkResumeConsistency:()=>I8,cleanMessagesForLogging:()=>i5,clearAgentTranscriptSubdir:()=>m8,clearSessionMessagesCache:()=>X8,clearSessionMetadata:()=>s3t,deleteRemoteAgentMetadata:()=>b8,doesMessageExistInSession:()=>y3t,enrichLogs:()=>c5,extractAgentIdsFromMessages:()=>w3t,extractTeammateTranscriptsFromTasks:()=>T3t,fetchLogs:()=>V8,findUnresolvedToolUse:()=>A3t,flushSessionStorage:()=>H4t,getAgentTranscript:()=>t5,getAgentTranscriptPath:()=>h8,getCurrentSessionAgentColor:()=>a3t,getCurrentSessionTag:()=>i3t,getCurrentSessionTitle:()=>U8,getFirstMeaningfulUserMessageTextContent:()=>M8,getLastSessionLog:()=>Z8,getLogByIndex:()=>k3t,getNodeEnv:()=>C8,getProjectDir:()=>u5,getProjectsDir:()=>u8,getSessionFilesLite:()=>s5,getSessionFilesWithMtime:()=>a5,getSessionIdFromLog:()=>K8,getTranscriptPath:()=>d8,getTranscriptPathForSession:()=>f8,getUserType:()=>w8,hydrateFromCCRv2InternalEvents:()=>W4t,hydrateRemoteSession:()=>U4t,isChainParticipant:()=>l8,isCustomTitleEnabled:()=>k4t,isEphemeralToolProgress:()=>w4t,isLiteLog:()=>q8,isLoggableMessage:()=>r5,isTranscriptMessage:()=>c8,linkSessionToPR:()=>r3t,listRemoteAgentMetadata:()=>x8,loadAllLogsFromSessionFile:()=>o5,loadAllProjectsMessageLogs:()=>b3t,loadAllProjectsMessageLogsProgressive:()=>$8,loadAllSubagentTranscriptsFromDisk:()=>E3t,loadFullLog:()=>J8,loadMessageLogs:()=>Q8,loadSameRepoMessageLogs:()=>S3t,loadSameRepoMessageLogsProgressive:()=>e5,loadSubagentTranscripts:()=>n5,loadTranscriptFile:()=>Y8,loadTranscriptFromFile:()=>J4t,reAppendSessionMetadata:()=>W8,readAgentMetadata:()=>_8,readRemoteAgentMetadata:()=>D4t,recordAttributionSnapshot:()=>L4t,recordContentReplacement:()=>A8,recordContextCollapseCommit:()=>B4t,recordContextCollapseSnapshot:()=>V4t,recordFileHistorySnapshot:()=>k8,recordQueueOperation:()=>O8,recordSidechainTranscript:()=>D8,recordTranscript:()=>E8,removeExtraFields:()=>N8,removeTranscriptMessage:()=>I4t,resetProjectFlushStateForTesting:()=>A4t,resetProjectForTesting:()=>j4t,resetSessionFilePointer:()=>R4t,restoreSessionMetadata:()=>o3t,saveAgentColor:()=>l3t,saveAgentName:()=>c3t,saveAgentSetting:()=>u3t,saveAiGeneratedTitle:()=>e3t,saveCustomTitle:()=>$4t,saveMode:()=>f3t,saveTag:()=>n3t,saveTaskSummary:()=>t3t,saveWorktreeState:()=>G8,searchSessionsByCustomTitle:()=>p3t,sessionIdExists:()=>S8,setAgentTranscriptSubdir:()=>p8,setInternalEventReader:()=>P4t,setInternalEventWriter:()=>N4t,setRemoteIngressUrlForTesting:()=>F4t,setSessionFileForTesting:()=>M4t,writeAgentMetadata:()=>g8,writeRemoteAgentMetadata:()=>y8});function c8(e){return e.type===`user`||e.type===`assistant`||e.type===`attachment`||e.type===`system`}function l8(e){return e.type!==`progress`}function C4t(e){return typeof e==`object`&&!!e&&`type`in e&&e.type===`progress`&&`uuid`in e&&typeof e.uuid==`string`}function w4t(e){return typeof e==`string`&&B3t.has(e)}function u8(){return Y(_(),`projects`)}function d8(){return Y(Gt()??u5(fn()),`${Ft()}.jsonl`)}function f8(e){return e===Ft()?d8():Y(u5(fn()),`${e}.jsonl`)}function p8(e,t){l5.set(e,t)}function m8(e){l5.delete(e)}function h8(e){let t=Gt()??u5(fn()),n=Ft(),r=l5.get(e);return Y(r?Y(t,n,`subagents`,r):Y(t,n,`subagents`),`agent-${e}.jsonl`)}function T4t(e){return h8(e).replace(/\.jsonl$/,`.meta.json`)}async function g8(e,t){let n=T4t(e);await pd(Eu(n),{recursive:!0}),await wd(n,JSON.stringify(t))}async function _8(e){let t=T4t(e);try{let e=await hd(t,`utf-8`);return JSON.parse(e)}catch(e){if(Aa(e))return null;throw e}}function E4t(){return Y(Gt()??u5(fn()),Ft(),`remote-agents`)}function v8(e){return Y(E4t(),`remote-agent-${e}.meta.json`)}async function y8(e,t){let n=v8(e);await pd(Eu(n),{recursive:!0}),await wd(n,JSON.stringify(t))}async function D4t(e){let t=v8(e);try{let e=await hd(t,`utf-8`);return JSON.parse(e)}catch(e){if(Aa(e))return null;throw e}}async function b8(e){let t=v8(e);try{await Cd(t)}catch(e){if(Aa(e))return;throw e}}async function x8(){let e=E4t(),t;try{t=await gd(e,{withFileTypes:!0})}catch(e){if(Aa(e))return[];throw e}let n=[];for(let r of t)if(!(!r.isFile()||!r.name.endsWith(`.meta.json`)))try{let t=await hd(Y(e,r.name),`utf-8`);n.push(JSON.parse(t))}catch(e){U(`listRemoteAgentMetadata: skipping ${r.name}: ${String(e)}`)}return n}function S8(e){let t=Y(u5(fn()),`${e}.jsonl`),n=za();try{return n.statSync(t),!0}catch{return!1}}function C8(){return`production`}function w8(){return process.env.USER_TYPE||`external`}function O4t(){return process.env.CLAUDE_CODE_ENTRYPOINT}function k4t(){return!0}function T8(){return d5||(d5=new G3t,H3t||(ja(async()=>{await d5?.flush();try{d5?.reAppendSessionMetadata()}catch{}}),H3t=!0)),d5}function A4t(){d5?._resetFlushState()}function j4t(){d5=null}function M4t(e){T8().sessionFile=e}function N4t(e){T8().setInternalEventWriter(e)}function P4t(e,t){T8().setInternalEventReader(e),T8().setInternalSubagentEventReader(t)}function F4t(e){T8().setRemoteIngressUrl(e)}async function E8(e,t,n,r){let i=i5(e,r),a=await p5(Ft()),o=[],s=n,c=!1;for(let e of i)a.has(e.uuid)?!c&&l8(e)&&(s=e.uuid):(o.push(e),c=!0);return o.length>0&&await T8().insertMessageChain(o,!1,void 0,s,t),o.findLast(l8)?.uuid??s??null}async function D8(e,t,n){await T8().insertMessageChain(i5(e),!0,t,n)}async function O8(e){await T8().insertQueueOperation(e)}async function I4t(e){await T8().removeMessageByUuid(e)}async function k8(e,t,n){await T8().insertFileHistorySnapshot(e,t,n)}async function L4t(e){await T8().insertAttributionSnapshot(e)}async function A8(e,t){await T8().insertContentReplacement(e,t)}async function R4t(){T8().resetSessionFile()}function z4t(){let e=T8();e.sessionFile=d8(),e.reAppendSessionMetadata(!0)}async function B4t(e){let t=Ft();t&&await T8().appendEntry({type:`marble-origami-commit`,sessionId:t,...e})}async function V4t(e){let t=Ft();t&&await T8().appendEntry({type:`marble-origami-snapshot`,sessionId:t,...e})}async function H4t(){await T8().flush()}async function U4t(e,t){mne(Vx(e));let n=T8();try{let n=await z8e(e,t)||[];return await pd(u5(fn()),{recursive:!0,mode:448}),await wd(f8(e),n.map(e=>V(e)+`
|
|
4365
4365
|
`).join(``),{encoding:`utf8`,mode:384}),U(`Hydrated ${n.length} entries from remote`),n.length>0}catch(e){return U(`Error hydrating session from remote: ${e}`),Ja(`error`,`hydrate_remote_session_fail`),!1}finally{n.setRemoteIngressUrl(t)}}async function W4t(e){let t=Date.now();mne(Vx(e));let n=T8(),r=n.getInternalEventReader();if(!r)return U(`No internal event reader registered for CCR v2 resume`),!1;try{let i=await r();if(!i)return U(`Failed to read internal events for resume`),Ja(`error`,`hydrate_ccr_v2_read_fail`),!1;await pd(u5(fn()),{recursive:!0,mode:448}),await wd(f8(e),i.map(e=>V(e.payload)+`
|
|
4366
4366
|
`).join(``),{encoding:`utf8`,mode:384}),U(`Hydrated ${i.length} foreground entries from CCR v2 internal events`);let a=0,o=n.getInternalSubagentEventReader();if(o){let e=await o();if(e&&e.length>0){a=e.length;let t=new Map;for(let n of e){let e=n.agent_id||``;if(!e)continue;let r=t.get(e);r||(r=[],t.set(e,r)),r.push(n.payload)}for(let[e,n]of t){let t=h8(Hx(e));await pd(Eu(t),{recursive:!0,mode:448}),await wd(t,n.map(e=>V(e)+`
|
|
4367
4367
|
`).join(``),{encoding:`utf8`,mode:384})}U(`Hydrated ${e.length} subagent entries across ${t.size} agents`)}}return Ja(`info`,`hydrate_ccr_v2_completed`,{duration_ms:Date.now()-t,event_count:i.length,subagent_event_count:a}),i.length>0}catch(e){if(e instanceof Error&&e.message===`CCRClient: Epoch mismatch (409)`)throw e;return U(`Error hydrating session from CCR v2: ${e}`),Ja(`error`,`hydrate_ccr_v2_fail`),!1}}function j8(e){let t=M8(e);if(t){let e=t.replace(/\n/g,` `).trim();return e.length>200&&(e=e.slice(0,200).trim()+`…`),e}return`No prompt`}function M8(e){for(let t of e){if(t.type!==`user`||t.isMeta||`isCompactSummary`in t&&t.isCompactSummary)continue;let e=t.message?.content;if(!e)continue;let n=[];if(typeof e==`string`)n.push(e);else if(Array.isArray(e))for(let t of e)t.type===`text`&&t.text&&n.push(t.text);for(let e of n){if(!e)continue;let t=p4(e,Oo);if(t){let n=t.replace(/^\//,``);if(e8().has(n))continue;{let n=p4(e,`command-args`)?.trim();if(!n)continue;return`${t} ${n}`}}let n=p4(e,`bash-input`);if(n)return`! ${n}`;if(!z3t.test(e))return e}}}function N8(e){return e.map(e=>{let{isSidechain:t,parentUuid:n,...r}=e;return r})}function G4t(e){let t,n=-1,r=-1,i=new Map,a=0;for(let o of e.values()){if(i.set(o.uuid,a),z4(o)){r=a;let e=o.compactMetadata?.preservedSegment;e&&(t=e,n=a)}a++}if(!t)return;let o=n===r,s=new Set;if(o){let n=new Set,r=e.get(t.tailUuid),i=!1;for(;r&&!n.has(r.uuid);){if(n.add(r.uuid),s.add(r.uuid),r.uuid===t.headUuid){i=!0;break}r=r.parentUuid?e.get(r.parentUuid):void 0}if(!i){G(`tengu_relink_walk_broken`,{tailInTranscript:e.has(t.tailUuid),headInTranscript:e.has(t.headUuid),anchorInTranscript:e.has(t.anchorUuid),walkSteps:n.size,transcriptSize:e.size});return}}if(o){let n=e.get(t.headUuid);n&&e.set(t.headUuid,{...n,parentUuid:t.anchorUuid});for(let[n,r]of e)r.parentUuid===t.anchorUuid&&n!==t.headUuid&&e.set(n,{...r,parentUuid:t.tailUuid});for(let t of s){let n=e.get(t);n?.type===`assistant`&&e.set(t,{...n,message:{...n.message,usage:{...n.message.usage,input_tokens:0,output_tokens:0,cache_creation_input_tokens:0,cache_read_input_tokens:0}}})}}let c=[];for(let[t]of e){let e=i.get(t);e!==void 0&&e<r&&!s.has(t)&&c.push(t)}for(let t of c)e.delete(t)}function K4t(e){let t=new Set;for(let n of e.values()){let e=n.snipMetadata?.removedUuids;if(e)for(let n of e)t.add(n)}if(t.size===0)return;let n=new Map,r=0;for(let i of t){let t=e.get(i);t&&(n.set(i,t.parentUuid),e.delete(i),r++)}let i=e=>{let r=[],i=e;for(;i&&t.has(i);)if(r.push(i),i=n.get(i),i===void 0){i=null;break}for(let e of r)n.set(e,i);return i},a=0;for(let[n,r]of e)!r.parentUuid||!t.has(r.parentUuid)||(e.set(n,{...r,parentUuid:i(r.parentUuid)}),a++);G(`tengu_snip_resume_filtered`,{removed_count:r,relinked_count:a})}function P8(e,t){let n,r=-1/0;for(let i of e){if(!t(i))continue;let e=Date.parse(i.timestamp);e>r&&(r=e,n=i)}return n}function F8(e,t){let n=[],r=new Set,i=t;for(;i;){if(r.has(i.uuid)){q(Error(`Cycle detected in parentUuid chain at message ${i.uuid}. Returning partial transcript.`)),G(`tengu_chain_parent_cycle`,{});break}r.add(i.uuid),n.push(i),i=i.parentUuid?e.get(i.parentUuid):void 0}return n.reverse(),q4t(e,n,r)}function q4t(e,t,n){let r=t.filter(e=>e.type===`assistant`);if(r.length===0)return t;let i=new Map;for(let e of r)e.message.id&&i.set(e.message.id,e);let a=new Map,o=new Map;for(let t of e.values())if(t.type===`assistant`&&t.message.id){let e=a.get(t.message.id);e?e.push(t):a.set(t.message.id,[t])}else if(t.type===`user`&&t.parentUuid&&Array.isArray(t.message.content)&&t.message.content.some(e=>e.type===`tool_result`)){let e=o.get(t.parentUuid);e?e.push(t):o.set(t.parentUuid,[t])}let s=new Set,c=new Map,l=0;for(let e of r){let t=e.message.id;if(!t||s.has(t))continue;s.add(t);let r=a.get(t)??[e],u=r.filter(e=>!n.has(e.uuid)),d=[];for(let e of r){let t=o.get(e.uuid);if(t)for(let e of t)n.has(e.uuid)||d.push(e)}if(u.length===0&&d.length===0)continue;u.sort((e,t)=>e.timestamp.localeCompare(t.timestamp)),d.sort((e,t)=>e.timestamp.localeCompare(t.timestamp));let f=i.get(t),p=[...u,...d];for(let e of p)n.add(e.uuid);l+=p.length,c.set(f.uuid,p)}if(l===0)return t;G(`tengu_chain_parallel_tr_recovered`,{recovered_count:l});let u=[];for(let e of t){u.push(e);let t=c.get(e.uuid);t&&u.push(...t)}return u}function I8(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n.type!==`system`||n.subtype!==`turn_duration`)continue;let r=n.messageCount;if(r===void 0)return;let i=t;G(`tengu_resume_consistency_delta`,{expected:r,actual:i,delta:i-r,chain_length:e.length,checkpoint_age_entries:e.length-1-t});return}}function L8(e,t){let n=[],r=new Map;for(let i of t){let t=e.get(i.uuid);if(!t)continue;let{snapshot:a,isSnapshotUpdate:o}=t,s=o?r.get(a.messageId):void 0;s===void 0?(r.set(a.messageId,n.length),n.push(a)):n[s]=a}return n}function R8(e,t){return Array.from(e.values())}async function J4t(e){if(e.endsWith(`.jsonl`)){let{messages:t,summaries:n,customTitles:r,tags:i,fileHistorySnapshots:a,attributionSnapshots:o,contextCollapseCommits:s,contextCollapseSnapshot:c,leafUuids:l,contentReplacements:u,worktreeStates:d}=await Y8(e);if(t.size===0)throw Error(`No messages found in JSONL file`);let f=P8(t.values(),e=>l.has(e.uuid));if(!f)throw Error(`No valid conversation chain found in JSONL file`);let p=F8(t,f),m=n.get(f.uuid),h=r.get(f.sessionId),g=i.get(f.sessionId),_=f.sessionId;return{...B8(p,0,m,h,L8(a,p),g,e,R8(o,p),void 0,u.get(_)??[]),contextCollapseCommits:s.filter(e=>e.sessionId===_),contextCollapseSnapshot:c?.sessionId===_?c:void 0,worktreeSession:d.has(_)?d.get(_):void 0}}let t=await hd(e,{encoding:`utf-8`}),n;try{n=Da(t)}catch(e){throw Error(`Invalid JSON in transcript file: ${e}`)}let r;if(Array.isArray(n))r=n;else if(n&&typeof n==`object`&&`messages`in n){if(!Array.isArray(n.messages))throw Error(`Transcript messages must be an array`);r=n.messages}else throw Error(`Transcript must be an array of messages or an object with a messages array`);return B8(r,0,void 0,void 0,void 0,void 0,e)}function Y4t(e){if(e.type!==`user`||e.isMeta)return!1;let t=e.message?.content;return t?typeof t==`string`?t.trim().length>0:Array.isArray(t)?t.some(e=>e.type===`text`||e.type===`image`||e.type===`document`):!1:!1}function X4t(e){if(e.type!==`assistant`)return!1;let t=e.message?.content;return!t||!Array.isArray(t)?!1:t.some(e=>e.type===`text`&&typeof e.text==`string`&&e.text.trim().length>0)}function z8(e){let t=0;for(let n of e)switch(n.type){case`user`:Y4t(n)&&t++;break;case`assistant`:X4t(n)&&t++;break;case`attachment`:case`system`:case`progress`:break}return t}function B8(e,t=0,n,r,i,a,o,s,c,l){let u=e.at(-1),d=e[0],f=j8(e),p=new Date(d.timestamp),m=new Date(u.timestamp);return{date:u.timestamp,messages:N8(e),fullPath:o,value:t,created:p,modified:m,firstPrompt:f,messageCount:z8(e),isSidechain:d.isSidechain,teamName:d.teamName,agentName:d.agentName,agentSetting:c,leafUuid:u.uuid,summary:n,customTitle:r,tag:a,fileHistorySnapshots:i,attributionSnapshots:s,contentReplacements:l,gitBranch:u.gitBranch,projectPath:d.cwd}}async function Z4t(e){let t=new Map,n=0;for(let r of e){let e=K8(r);if(e){let r=(t.get(e)||0)+1;t.set(e,r),n=Math.max(r,n)}}if(n<=1)return;let r=Array.from(t.values()).filter(e=>e>1),i=r.length,a=r.reduce((e,t)=>e+t,0);G(`tengu_session_forked_branches_fetched`,{total_sessions:t.size,sessions_with_branches:i,max_branches_per_session:Math.max(...r),avg_branches_per_session:Math.round(a/i),total_transcript_count:e.length})}async function V8(e){let t=await s5(u5(fn()),e,fn());return await Z4t(t),t}function H8(e,t){let n=za(),r=V(t)+`
|
|
4368
4368
|
`;try{n.appendFileSync(e,r,{mode:384})}catch{n.mkdirSync(Eu(e),{mode:448}),n.appendFileSync(e,r,{mode:384})}}function Q4t(e){let t;try{t=Bpe(e,`r`);let n=Rpe(t),r=Math.max(0,n.size-qo),i=Buffer.allocUnsafe(Math.min(qo,n.size-r)),a=Vpe(t,i,0,i.length,r);return i.toString(`utf8`,0,a)}catch{return``}finally{if(t!==void 0)try{Fpe(t)}catch{}}}async function $4t(e,t,n,r=`user`){H8(n??f8(e),{type:`custom-title`,customTitle:t,sessionId:e}),e===Ft()&&(T8().currentSessionTitle=t),G(`tengu_session_renamed`,{source:r})}function e3t(e,t){H8(f8(e),{type:`ai-title`,aiTitle:t,sessionId:e})}function t3t(e,t){H8(f8(e),{type:`task-summary`,summary:t,sessionId:e,timestamp:new Date().toISOString()})}async function n3t(e,t,n){H8(n??f8(e),{type:`tag`,tag:t,sessionId:e}),e===Ft()&&(T8().currentSessionTag=t),G(`tengu_session_tagged`,{})}async function r3t(e,t,n,r,i){if(H8(i??f8(e),{type:`pr-link`,sessionId:e,prNumber:t,prUrl:n,prRepository:r,timestamp:new Date().toISOString()}),e===Ft()){let e=T8();e.currentSessionPrNumber=t,e.currentSessionPrUrl=n,e.currentSessionPrRepository=r}G(`tengu_session_linked_to_pr`,{prNumber:t})}function i3t(e){if(e===Ft())return T8().currentSessionTag}function U8(e){if(e===Ft())return T8().currentSessionTitle}function a3t(){return T8().currentSessionAgentColor}function o3t(e){let t=T8();e.customTitle&&(t.currentSessionTitle??(t.currentSessionTitle=e.customTitle)),e.tag!==void 0&&(t.currentSessionTag=e.tag||void 0),e.agentName&&(t.currentSessionAgentName=e.agentName),e.agentColor&&(t.currentSessionAgentColor=e.agentColor),e.agentSetting&&(t.currentSessionAgentSetting=e.agentSetting),e.mode&&(t.currentSessionMode=e.mode),e.worktreeSession!==void 0&&(t.currentSessionWorktree=e.worktreeSession),e.prNumber!==void 0&&(t.currentSessionPrNumber=e.prNumber),e.prUrl&&(t.currentSessionPrUrl=e.prUrl),e.prRepository&&(t.currentSessionPrRepository=e.prRepository)}function s3t(){let e=T8();e.currentSessionTitle=void 0,e.currentSessionTag=void 0,e.currentSessionAgentName=void 0,e.currentSessionAgentColor=void 0,e.currentSessionLastPrompt=void 0,e.currentSessionAgentSetting=void 0,e.currentSessionMode=void 0,e.currentSessionWorktree=void 0,e.currentSessionPrNumber=void 0,e.currentSessionPrUrl=void 0,e.currentSessionPrRepository=void 0}function W8(){T8().reAppendSessionMetadata()}async function c3t(e,t,n,r=`user`){H8(n??f8(e),{type:`agent-name`,agentName:t,sessionId:e}),e===Ft()&&(T8().currentSessionAgentName=t,RNt(t)),G(`tengu_agent_name_set`,{source:r})}async function l3t(e,t,n){H8(n??f8(e),{type:`agent-color`,agentColor:t,sessionId:e}),e===Ft()&&(T8().currentSessionAgentColor=t),G(`tengu_agent_color_set`,{})}function u3t(e){T8().currentSessionAgentSetting=e}function d3t(e){T8().currentSessionTitle=e}function f3t(e){T8().currentSessionMode=e}function G8(e){let t=e?{originalCwd:e.originalCwd,worktreePath:e.worktreePath,worktreeName:e.worktreeName,worktreeBranch:e.worktreeBranch,originalBranch:e.originalBranch,originalHeadCommit:e.originalHeadCommit,sessionId:e.sessionId,tmuxSessionName:e.tmuxSessionName,hookBased:e.hookBased}:null,n=T8();n.currentSessionWorktree=t,n.sessionFile&&H8(n.sessionFile,{type:`worktree-state`,worktreeSession:t,sessionId:Ft()})}function K8(e){return e.sessionId?e.sessionId:e.messages[0]?.sessionId}function q8(e){return e.messages.length===0&&e.sessionId!==void 0}async function J8(e){if(!q8(e))return e;let t=e.fullPath;if(!t)return e;try{let{messages:n,summaries:r,customTitles:i,tags:a,agentNames:o,agentColors:s,agentSettings:c,prNumbers:l,prUrls:u,prRepositories:d,modes:f,worktreeStates:p,fileHistorySnapshots:m,attributionSnapshots:h,contentReplacements:g,contextCollapseCommits:_,contextCollapseSnapshot:v,leafUuids:y}=await Y8(t);if(n.size===0)return e;let b=P8(n.values(),e=>y.has(e.uuid)&&(e.type===`user`||e.type===`assistant`));if(!b)return e;let x=F8(n,b),S=b.sessionId;return{...e,messages:N8(x),firstPrompt:j8(x),messageCount:z8(x),summary:b?r.get(b.uuid):e.summary,customTitle:S?i.get(S):e.customTitle,tag:S?a.get(S):e.tag,agentName:S?o.get(S):e.agentName,agentColor:S?s.get(S):e.agentColor,agentSetting:S?c.get(S):e.agentSetting,mode:S?f.get(S):e.mode,worktreeSession:S&&p.has(S)?p.get(S):e.worktreeSession,prNumber:S?l.get(S):e.prNumber,prUrl:S?u.get(S):e.prUrl,prRepository:S?d.get(S):e.prRepository,gitBranch:b?.gitBranch??e.gitBranch,isSidechain:x[0]?.isSidechain??e.isSidechain,teamName:x[0]?.teamName??e.teamName,leafUuid:b?.uuid??e.leafUuid,fileHistorySnapshots:L8(m,x),attributionSnapshots:R8(h,x),contentReplacements:S?g.get(S)??[]:e.contentReplacements,contextCollapseCommits:S?_.filter(e=>e.sessionId===S):void 0,contextCollapseSnapshot:S&&v?.sessionId===S?v:void 0}}catch{return e}}async function p3t(e,t){let{limit:n,exact:r}=t||{},i=await C3t(await b4t(fn())),{logs:a}=await c5(i,0,i.length),o=e.toLowerCase().trim(),s=a.filter(e=>{let t=e.customTitle?.toLowerCase().trim();return t?r?t===o:t.includes(o):!1}),c=new Map;for(let e of s){let t=K8(e);if(t){let n=c.get(t);(!n||e.modified>n.modified)&&c.set(t,e)}}let l=Array.from(c.values());return l.sort((e,t)=>t.modified.getTime()-e.modified.getTime()),n?l.slice(0,n):l}function m3t(e,t){if(e===null||e.length===0)return t;if(e.length<K3t)return Buffer.concat([e,t]);if(e[0]===123){for(let n of f5)if(e.compare(n,0,n.length,1,1+n.length)===0)return Buffer.concat([e,t])}let n=t.indexOf(10);return n===-1?null:t.subarray(n+1)}async function h3t(e,t){let{createReadStream:n}=await import(`fs`),r=n(e,{end:t-1}),i=[],a=null;for await(let e of r){let t=m3t(a,e);if(t===null){a=null;continue}let n=!1;for(let e of f5)if(t.includes(e)){n=!0;break}if(n){let e=0,n=t.indexOf(10);for(;n!==-1;){for(let r of f5){let a=t.indexOf(r,e);if(a!==-1&&a<n){i.push(t.toString(`utf-8`,e,n));break}}e=n+1,n=t.indexOf(10,e)}a=t.subarray(e)}else{let e=t.lastIndexOf(10);a=e>=0?t.subarray(e+1):t}a.length>64*1024&&(a=null)}if(a!==null&&a.length>0){for(let e of f5)if(a.includes(e)){i.push(a.toString(`utf-8`));break}}return i}function g3t(e,t,n){let r=0,i=!1,a=!1,o=0;for(let s=t;o<n.length;s++){if(s===n[o]){if(r===1&&!i)return n[o];o++}let t=e[s];a?a=!1:i?t===92?a=!0:t===34&&(i=!1):t===34?i=!0:t===123?r++:t===125&&r--}return n.at(-1)}function _3t(e){let t=Buffer.from(`{"parentUuid":`),n=Buffer.from(`"uuid":"`),r=Buffer.from(`"isSidechain":true`),i=Buffer.from(`","timestamp":"`),a=i.length,o=t.length,s=n.length,c=[],l=[],u=new Map,d=0,f=e.length;for(;d<f;){let r=e.indexOf(10,d),p=r===-1?f:r+1;if(p-d>o&&e[d]===123&&e.compare(t,0,o,d,d+o)===0){let t=e[d+o]===34?d+o+1:-1,r=-1,f=-1,m,h=d;for(;;){let t=e.indexOf(n,h);if(t<0||t>=p)break;r<0&&(r=t);let o=t+s+36;o+a<=p&&e.compare(i,0,a,o,o+a)===0&&(f<0?f=t:(m??(m=[f])).push(t)),h=t+s}let g=m?g3t(e,d,m):f>=0?f:r;if(g>=0){let n=g+s,r=e.toString(`latin1`,n,n+36);u.set(r,c.length),c.push(d,p,t)}else l.push(d,p)}else l.push(d,p);d=p}let p=-1;for(let t=c.length-3;t>=0;t-=3){let n=e.indexOf(r,c[t]);if(n===-1||n>=c[t+1]){p=t;break}}if(p<0)return e;let m=new Set,h=new Set,g=0,_=p;for(;_!==void 0&&!m.has(_);){m.add(_),h.add(c[_]),g+=c[_+1]-c[_];let t=c[_+2];if(t<0)break;let n=e.toString(`latin1`,t,t+36);_=u.get(n)}if(f-g<f>>1)return e;let v=[],y=0;for(let t=0;t<c.length;t+=3){let n=c[t];for(;y<l.length&&l[y]<n;)v.push(e.subarray(l[y],l[y+1])),y+=2;h.has(n)&&v.push(e.subarray(n,c[t+1]))}for(;y<l.length;)v.push(e.subarray(l[y],l[y+1])),y+=2;return Buffer.concat(v)}async function Y8(e,t){let n=new Map,r=new Map,i=new Map,a=new Map,o=new Map,s=new Map,c=new Map,l=new Map,u=new Map,d=new Map,f=new Map,p=new Map,m=new Map,h=new Map,g=new Map,_=new Map,v=[],y;try{let b=null,S=null,C=!1;if(!x(process.env.CLAUDE_CODE_DISABLE_PRECOMPACT_SKIP)){let{size:t}=await xd(e);if(t>5242880){let n=await ece(e,t);b=n.postBoundaryBuf,C=n.hasPreservedSegment,n.boundaryStartOffset>0&&(S=await h3t(e,n.boundaryStartOffset))}}if(b??(b=await hd(e)),!t?.keepAllLeaves&&!C&&!x(process.env.CLAUDE_CODE_DISABLE_PRECOMPACT_SKIP)&&b.length>5242880&&(b=_3t(b)),S&&S.length>0){let e=rs(Buffer.from(S.join(`
|
|
4369
4369
|
`)));for(let t of e)t.type===`summary`&&t.leafUuid?r.set(t.leafUuid,t.summary):t.type===`custom-title`&&t.sessionId?i.set(t.sessionId,t.customTitle):t.type===`tag`&&t.sessionId?a.set(t.sessionId,t.tag):t.type===`agent-name`&&t.sessionId?o.set(t.sessionId,t.agentName):t.type===`agent-color`&&t.sessionId?s.set(t.sessionId,t.agentColor):t.type===`agent-setting`&&t.sessionId?c.set(t.sessionId,t.agentSetting):t.type===`mode`&&t.sessionId?f.set(t.sessionId,t.mode):t.type===`worktree-state`&&t.sessionId?p.set(t.sessionId,t.worktreeSession):t.type===`pr-link`&&t.sessionId&&(l.set(t.sessionId,t.prNumber),u.set(t.sessionId,t.prUrl),d.set(t.sessionId,t.prRepository))}let w=rs(b),T=new Map;for(let e of w){if(C4t(e)){let t=e.parentUuid;T.set(e.uuid,t&&T.has(t)?T.get(t)??null:t);continue}if(c8(e))e.parentUuid&&T.has(e.parentUuid)&&(e.parentUuid=T.get(e.parentUuid)??null),n.set(e.uuid,e),z4(e)&&(v.length=0,y=void 0);else if(e.type===`summary`&&e.leafUuid)r.set(e.leafUuid,e.summary);else if(e.type===`custom-title`&&e.sessionId)i.set(e.sessionId,e.customTitle);else if(e.type===`tag`&&e.sessionId)a.set(e.sessionId,e.tag);else if(e.type===`agent-name`&&e.sessionId)o.set(e.sessionId,e.agentName);else if(e.type===`agent-color`&&e.sessionId)s.set(e.sessionId,e.agentColor);else if(e.type===`agent-setting`&&e.sessionId)c.set(e.sessionId,e.agentSetting);else if(e.type===`mode`&&e.sessionId)f.set(e.sessionId,e.mode);else if(e.type===`worktree-state`&&e.sessionId)p.set(e.sessionId,e.worktreeSession);else if(e.type===`pr-link`&&e.sessionId)l.set(e.sessionId,e.prNumber),u.set(e.sessionId,e.prUrl),d.set(e.sessionId,e.prRepository);else if(e.type===`file-history-snapshot`)m.set(e.messageId,e);else if(e.type===`attribution-snapshot`)h.set(e.messageId,e);else if(e.type===`content-replacement`)if(e.agentId){let t=_.get(e.agentId)??[];_.set(e.agentId,t),t.push(...e.replacements)}else{let t=g.get(e.sessionId)??[];g.set(e.sessionId,t),t.push(...e.replacements)}else e.type===`marble-origami-commit`?v.push(e):e.type===`marble-origami-snapshot`&&(y=e)}}catch{}G4t(n),K4t(n);let b=[...n.values()],S=new Set(b.map(e=>e.parentUuid).filter(e=>e!==null)),C=b.filter(e=>!S.has(e.uuid)),w=new Set,T=!1;if(Jr(`tengu_pebble_leaf_prune`,!1)){let e=new Set;for(let t of b)t.parentUuid&&(t.type===`user`||t.type===`assistant`)&&e.add(t.parentUuid);for(let t of C){let r=new Set,i=t;for(;i;){if(r.has(i.uuid)){T=!0;break}if(r.add(i.uuid),i.type===`user`||i.type===`assistant`){e.has(i.uuid)||w.add(i.uuid);break}i=i.parentUuid?n.get(i.parentUuid):void 0}}}else for(let e of C){let t=new Set,r=e;for(;r;){if(t.has(r.uuid)){T=!0;break}if(t.add(r.uuid),r.type===`user`||r.type===`assistant`){w.add(r.uuid);break}r=r.parentUuid?n.get(r.parentUuid):void 0}}return T&&G(`tengu_transcript_parent_cycle`,{}),{messages:n,summaries:r,customTitles:i,tags:a,agentNames:o,agentColors:s,agentSettings:c,prNumbers:l,prUrls:u,prRepositories:d,modes:f,worktreeStates:p,fileHistorySnapshots:m,attributionSnapshots:h,contentReplacements:g,agentContentReplacements:_,contextCollapseCommits:v,contextCollapseSnapshot:y,leafUuids:w}}async function v3t(e){return Y8(Y(Gt()??u5(fn()),`${e}.jsonl`))}function X8(){p5.cache.clear?.()}async function y3t(e,t){return(await p5(e)).has(t)}async function Z8(e){let{messages:t,summaries:n,customTitles:r,tags:i,agentSettings:a,worktreeStates:o,fileHistorySnapshots:s,attributionSnapshots:c,contentReplacements:l,contextCollapseCommits:u,contextCollapseSnapshot:d}=await v3t(e);if(t.size===0)return null;p5.cache.has(e)||p5.cache.set(e,Promise.resolve(new Set(t.keys())));let f=P8(t.values(),e=>!e.isSidechain);if(!f)return null;let p=F8(t,f),m=n.get(f.uuid),h=r.get(f.sessionId),g=i.get(f.sessionId),_=a.get(e);return{...B8(p,0,m,h,L8(s,p),g,f8(e),R8(c,p),_,l.get(e)??[]),worktreeSession:o.get(e),contextCollapseCommits:u.filter(t=>t.sessionId===e),contextCollapseSnapshot:d?.sessionId===e?d:void 0}}async function Q8(e){let t=await V8(e),{logs:n}=await c5(t,0,t.length),r=jo(n);return r.forEach((e,t)=>{e.value=t}),r}async function b3t(e,t){return t?.skipIndex?x3t(e):(await $8(e,t?.initialEnrichCount??m5)).logs}async function x3t(e){let t=u8(),n;try{n=await gd(t,{withFileTypes:!0})}catch{return[]}let r=n.filter(e=>e.isDirectory()).map(e=>Y(t,e.name)),i=(await Promise.all(r.map(t=>j3t(t,e)))).flat(),a=new Map;for(let e of i){let t=`${e.sessionId??``}:${e.leafUuid??``}`,n=a.get(t);(!n||e.modified.getTime()>n.modified.getTime())&&a.set(t,e)}let o=jo([...a.values()]);return o.forEach((e,t)=>{e.value=t}),o}async function $8(e,t=m5){let n=u8(),r;try{r=await gd(n,{withFileTypes:!0})}catch{return{logs:[],allStatLogs:[],nextIndex:0}}let i=r.filter(e=>e.isDirectory()).map(e=>Y(n,e.name)),a=[];for(let t of i)a.push(...await s5(t,e));let o=F3t(a),{logs:s,nextIndex:c}=await c5(o,0,t);return s.forEach((e,t)=>{e.value=t}),{logs:s,allStatLogs:o,nextIndex:c}}async function S3t(e,t,n=m5){return(await e5(e,t,n)).logs}async function e5(e,t,n=m5){U(`/resume: loading sessions for cwd=${fn()}, worktrees=[${e.join(`, `)}]`);let r=await C3t(e,t);U(`/resume: found ${r.length} session files on disk`);let{logs:i,nextIndex:a}=await c5(r,0,n);return i.forEach((e,t)=>{e.value=t}),{logs:i,allStatLogs:r,nextIndex:a}}async function C3t(e,t){let n=u8();if(e.length<=1){let e=fn();return s5(u5(e),void 0,e)}let r=process.platform===`win32`,i=e.map(e=>{let t=Wo(e);return{path:e,prefix:r?t.toLowerCase():t}});i.sort((e,t)=>t.prefix.length-e.prefix.length);let a=[],o=new Set,s;try{s=await gd(n,{withFileTypes:!0})}catch(e){return U(`Failed to read projects dir ${n}, falling back to current project: ${e}`),s5(u5(fn()),t,fn())}for(let e of s){if(!e.isDirectory())continue;let t=r?e.name.toLowerCase():e.name;if(!o.has(t)){for(let{path:r,prefix:s}of i)if(t===s||t.startsWith(s+`-`)){o.add(t),a.push(...await s5(Y(n,e.name),void 0,r));break}}}return F3t(a)}async function t5(e){let t=h8(e);try{let{messages:n,agentContentReplacements:r}=await Y8(t),i=Array.from(n.values()).filter(t=>t.agentId===e&&t.isSidechain);if(i.length===0)return null;let a=new Set(i.map(e=>e.parentUuid)),o=P8(i,e=>!a.has(e.uuid));return o?{messages:F8(n,o).filter(t=>t.agentId===e).map(({isSidechain:e,parentUuid:t,...n})=>n),contentReplacements:r.get(e)??[]}:null}catch{return null}}function w3t(e){let t=[];for(let n of e)n.type===`progress`&&n.data&&typeof n.data==`object`&&`type`in n.data&&(n.data.type===`agent_progress`||n.data.type===`skill_progress`)&&`agentId`in n.data&&typeof n.data.agentId==`string`&&t.push(n.data.agentId);return ss(t)}function T3t(e){let t={};for(let n of Object.values(e))n.type===`in_process_teammate`&&n.identity?.agentId&&n.messages&&n.messages.length>0&&(t[n.identity.agentId]=n.messages);return t}async function n5(e){let t=await Promise.all(e.map(async e=>{try{let t=await t5(Hx(e));return t&&t.messages.length>0?{agentId:e,transcript:t.messages}:null}catch{return null}})),n={};for(let e of t)e&&(n[e.agentId]=e.transcript);return n}async function E3t(){let e=Y(Gt()??u5(fn()),Ft(),`subagents`),t;try{t=await gd(e,{withFileTypes:!0})}catch{return{}}return n5(t.filter(e=>e.isFile()&&e.name.startsWith(`agent-`)&&e.name.endsWith(`.jsonl`)).map(e=>e.name.slice(6,-6)))}function r5(e){return e.type===`progress`?!1:e.type===`attachment`&&w8()!==`ant`?!!(e.attachment.type===`hook_additional_context`&&x(process.env.CLAUDE_CODE_SAVE_HOOK_ADDITIONAL_CONTEXT)):!0}function D3t(e){let t=new Set;for(let n of e)if(n.type===`assistant`&&Array.isArray(n.message.content))for(let e of n.message.content)e.type===`tool_use`&&e.name===`REPL`&&t.add(e.id);return t}function O3t(e,t){return e.flatMap(e=>{if(e.type===`assistant`&&Array.isArray(e.message.content)){let t=e.message.content,n=t.some(e=>e.type===`tool_use`&&e.name===`REPL`)?t.filter(e=>!(e.type===`tool_use`&&e.name===`REPL`)):t;if(n.length===0)return[];if(e.isVirtual){let{isVirtual:t,...r}=e;return[{...r,message:{...e.message,content:n}}]}return n===t?[e]:[{...e,message:{...e.message,content:n}}]}if(e.type===`user`&&Array.isArray(e.message.content)){let n=e.message.content,r=n.some(e=>e.type===`tool_result`&&t.has(e.tool_use_id))?n.filter(e=>!(e.type===`tool_result`&&t.has(e.tool_use_id))):n;if(r.length===0)return[];if(e.isVirtual){let{isVirtual:t,...n}=e;return[{...n,message:{...e.message,content:r}}]}return r===n?[e]:[{...e,message:{...e.message,content:r}}]}if(`isVirtual`in e&&e.isVirtual){let{isVirtual:t,...n}=e;return[n]}return[e]})}function i5(e,t=e){let n=e.filter(r5);return w8()===`ant`?n:O3t(n,D3t(t))}async function k3t(e){return(await Q8())[e]||null}async function A3t(e){try{let{messages:t}=await Y8(d8()),n=null;for(let r of t.values())if(r.type===`assistant`){let t=r.message.content;if(Array.isArray(t)){for(let i of t)if(i.type===`tool_use`&&i.id===e){n=r;break}}}else if(r.type===`user`){let t=r.message.content;if(Array.isArray(t)){for(let n of t)if(n.type===`tool_result`&&n.tool_use_id===e)return null}}return n}catch{return null}}async function a5(e){let t=new Map,n;try{n=await gd(e,{withFileTypes:!0})}catch{return t}let r=[];for(let t of n){if(!t.isFile()||!t.name.endsWith(`.jsonl`))continue;let n=r9e(Tu(t.name,`.jsonl`));n&&r.push({sessionId:n,filePath:Y(e,t.name)})}return await Promise.all(r.map(async({sessionId:e,filePath:n})=>{try{let r=await xd(n);t.set(e,{path:n,mtime:r.mtime.getTime(),ctime:r.birthtime.getTime(),size:r.size})}catch{U(`Failed to stat session file: ${n}`)}})),t}async function o5(e,t){let{messages:n,summaries:r,customTitles:i,tags:a,agentNames:o,agentColors:s,agentSettings:c,prNumbers:l,prUrls:u,prRepositories:d,modes:f,fileHistorySnapshots:p,attributionSnapshots:m,contentReplacements:h,leafUuids:g}=await Y8(e,{keepAllLeaves:!0});if(n.size===0)return[];let _=[],v=new Map;for(let e of n.values())if(g.has(e.uuid))_.push(e);else if(e.parentUuid){let t=v.get(e.parentUuid);t?t.push(e):v.set(e.parentUuid,[e])}let y=[];for(let g of _){let _=F8(n,g);if(_.length===0)continue;let b=v.get(g.uuid);b&&(b.sort((e,t)=>e.timestamp<t.timestamp?-1:+(e.timestamp>t.timestamp)),_.push(...b));let x=_[0],S=g.sessionId;y.push({date:g.timestamp,messages:N8(_),fullPath:e,value:0,created:new Date(x.timestamp),modified:new Date(g.timestamp),firstPrompt:j8(_),messageCount:z8(_),isSidechain:x.isSidechain??!1,sessionId:S,leafUuid:g.uuid,summary:r.get(g.uuid),customTitle:i.get(S),tag:a.get(S),agentName:o.get(S),agentColor:s.get(S),agentSetting:c.get(S),mode:f.get(S),prNumber:l.get(S),prUrl:u.get(S),prRepository:d.get(S),gitBranch:g.gitBranch,projectPath:t??x.cwd,fileHistorySnapshots:L8(p,_),attributionSnapshots:R8(m,_),contentReplacements:h.get(S)??[]})}return y}async function j3t(e,t){let n=await a5(e);if(n.size===0)return[];let r;r=t&&n.size>t?[...n.values()].sort((e,t)=>t.mtime-e.mtime).slice(0,t):[...n.values()];let i=[];for(let e of r)try{let t=await o5(e.path);i.push(...t)}catch{U(`Failed to load session file: ${e.path}`)}return i}async function M3t(e,t,n){let{head:r,tail:i}=await ace(e,t,n);if(!r)return{firstPrompt:``,isSidechain:!1};let a=r.includes(`"isSidechain":true`)||r.includes(`"isSidechain": true`),o=Ho(r,`cwd`),s=Ho(r,`teamName`),c=Ho(r,`agentSetting`),l=Go(i,`lastPrompt`)||N3t(r)||P3t(r,`content`,200)||P3t(r,`text`,200)||``,u=Go(i,`customTitle`)??Go(r,`customTitle`)??Go(i,`aiTitle`)??Go(r,`aiTitle`),d=Go(i,`summary`),f=Go(i,`tag`),p=Go(i,`gitBranch`)??Ho(r,`gitBranch`),m=Go(i,`prUrl`),h=Go(i,`prRepository`),g,_=Go(i,`prNumber`);if(_&&(g=parseInt(_,10)||void 0),!g){let e=i.lastIndexOf(`"prNumber":`);if(e>=0){let t=i.slice(e+11,e+25),n=parseInt(t.trim(),10);n>0&&(g=n)}}return{firstPrompt:l,gitBranch:p,isSidechain:a,projectPath:o,teamName:s,customTitle:u,summary:d,tag:f,agentSetting:c,prNumber:g,prUrl:m,prRepository:h}}function N3t(e){let t=0,n=!1,r=``;for(;t<e.length;){let i=e.indexOf(`
|
|
4370
|
-
`,t),a=i>=0?e.slice(t,i):e.slice(t);if(t=i>=0?i+1:e.length,!(!a.includes(`"type":"user"`)&&!a.includes(`"type": "user"`))&&!a.includes(`"tool_result"`)&&!(a.includes(`"isMeta":true`)||a.includes(`"isMeta": true`)))try{let e=Da(a);if(e.type!==`user`)continue;let t=e.message;if(!t)continue;let i=t.content,o=[];if(typeof i==`string`)o.push(i);else if(Array.isArray(i))for(let e of i){let t=e;t.type===`text`&&typeof t.text==`string`&&o.push(t.text)}for(let e of o){if(!e)continue;let t=e.replace(/\n/g,` `).trim(),i=p4(t,Oo);if(i){let e=i.replace(/^\//,``),n=p4(t,`command-args`)?.trim()||``;if(e8().has(e)||!n){r||(r=i);continue}return n?`${i} ${n}`:i}let a=p4(t,`bash-input`);if(a)return`! ${a}`;if(z3t.test(t)){t.startsWith(`<tick>`)&&(n=!0);continue}return t.length>200&&(t=t.slice(0,200).trim()+`…`),t}}catch{}}return r||(n?`Proactive session`:``)}function P3t(e,t,n){let r=[`"${t}":"`,`"${t}": "`];for(let t of r){let r=e.indexOf(t);if(r<0)continue;let i=r+t.length,a=i,o=0;for(;a<e.length&&o<n;){if(e[a]===`\\`){a+=2,o++;continue}if(e[a]===`"`)break;a++,o++}return e.slice(i,a).replace(/\\n/g,` `).replace(/\\t/g,` `).trim()}return``}function F3t(e){let t=new Map;for(let n of e){if(!n.sessionId)continue;let e=t.get(n.sessionId);(!e||n.modified.getTime()>e.modified.getTime())&&t.set(n.sessionId,n)}return jo([...t.values()]).map((e,t)=>({...e,value:t}))}async function s5(e,t,n){let r=[...(await a5(e)).entries()].sort((e,t)=>t[1].mtime-e[1].mtime);t&&r.length>t&&(r=r.slice(0,t));let i=[];for(let[e,t]of r)i.push({date:new Date(t.mtime).toISOString(),messages:[],isLite:!0,fullPath:t.path,value:0,created:new Date(t.ctime),modified:new Date(t.mtime),firstPrompt:``,messageCount:0,fileSize:t.size,isSidechain:!1,sessionId:e,projectPath:n});let a=jo(i);return a.forEach((e,t)=>{e.value=t}),a}async function I3t(e,t){if(!e.isLite||!e.fullPath)return e;let n=await M3t(e.fullPath,e.fileSize??0,t),r={...e,isLite:!1,firstPrompt:n.firstPrompt,gitBranch:n.gitBranch,isSidechain:n.isSidechain,teamName:n.teamName,customTitle:n.customTitle,summary:n.summary,tag:n.tag,agentSetting:n.agentSetting,prNumber:n.prNumber,prUrl:n.prUrl,prRepository:n.prRepository,projectPath:n.projectPath??e.projectPath};return!r.firstPrompt&&!r.customTitle&&(r.firstPrompt=`(session)`),r.isSidechain?(U(`Session ${e.sessionId} filtered from /resume: isSidechain=true`),null):r.teamName?(U(`Session ${e.sessionId} filtered from /resume: teamName=${r.teamName}`),null):r}async function c5(e,t,n){let r=[],i=Buffer.alloc(qo),a=t;for(;a<e.length&&r.length<n;){let t=e[a];a++;let n=await I3t(t,i);n&&r.push(n)}let o=a-t,s=o-r.length;return s>0&&U(`/resume: enriched ${o} sessions, ${s} filtered out, ${r.length} visible (${e.length-a} remaining on disk)`),{logs:r,nextIndex:a}}var L3t,R3t,z3t,B3t,V3t,l5,u5,d5,H3t,U3t,W3t,G3t,f5,K3t,p5,m5,h5=n((()=>{l(),Ua(),tn(),s8(),Eo(),wr(),$M(),Rf(),Ux(),Hse(),Ss(),Ma(),rX(),Wa(),W(),Ya(),y(),ka(),Ns(),Fa(),x4t(),no(),CS(),as(),Ao(),i3(),Jo(),Uo(),Gi(),Va(),CP(),O(),L3t=typeof MACRO<`u`?`2.6.
|
|
4370
|
+
`,t),a=i>=0?e.slice(t,i):e.slice(t);if(t=i>=0?i+1:e.length,!(!a.includes(`"type":"user"`)&&!a.includes(`"type": "user"`))&&!a.includes(`"tool_result"`)&&!(a.includes(`"isMeta":true`)||a.includes(`"isMeta": true`)))try{let e=Da(a);if(e.type!==`user`)continue;let t=e.message;if(!t)continue;let i=t.content,o=[];if(typeof i==`string`)o.push(i);else if(Array.isArray(i))for(let e of i){let t=e;t.type===`text`&&typeof t.text==`string`&&o.push(t.text)}for(let e of o){if(!e)continue;let t=e.replace(/\n/g,` `).trim(),i=p4(t,Oo);if(i){let e=i.replace(/^\//,``),n=p4(t,`command-args`)?.trim()||``;if(e8().has(e)||!n){r||(r=i);continue}return n?`${i} ${n}`:i}let a=p4(t,`bash-input`);if(a)return`! ${a}`;if(z3t.test(t)){t.startsWith(`<tick>`)&&(n=!0);continue}return t.length>200&&(t=t.slice(0,200).trim()+`…`),t}}catch{}}return r||(n?`Proactive session`:``)}function P3t(e,t,n){let r=[`"${t}":"`,`"${t}": "`];for(let t of r){let r=e.indexOf(t);if(r<0)continue;let i=r+t.length,a=i,o=0;for(;a<e.length&&o<n;){if(e[a]===`\\`){a+=2,o++;continue}if(e[a]===`"`)break;a++,o++}return e.slice(i,a).replace(/\\n/g,` `).replace(/\\t/g,` `).trim()}return``}function F3t(e){let t=new Map;for(let n of e){if(!n.sessionId)continue;let e=t.get(n.sessionId);(!e||n.modified.getTime()>e.modified.getTime())&&t.set(n.sessionId,n)}return jo([...t.values()]).map((e,t)=>({...e,value:t}))}async function s5(e,t,n){let r=[...(await a5(e)).entries()].sort((e,t)=>t[1].mtime-e[1].mtime);t&&r.length>t&&(r=r.slice(0,t));let i=[];for(let[e,t]of r)i.push({date:new Date(t.mtime).toISOString(),messages:[],isLite:!0,fullPath:t.path,value:0,created:new Date(t.ctime),modified:new Date(t.mtime),firstPrompt:``,messageCount:0,fileSize:t.size,isSidechain:!1,sessionId:e,projectPath:n});let a=jo(i);return a.forEach((e,t)=>{e.value=t}),a}async function I3t(e,t){if(!e.isLite||!e.fullPath)return e;let n=await M3t(e.fullPath,e.fileSize??0,t),r={...e,isLite:!1,firstPrompt:n.firstPrompt,gitBranch:n.gitBranch,isSidechain:n.isSidechain,teamName:n.teamName,customTitle:n.customTitle,summary:n.summary,tag:n.tag,agentSetting:n.agentSetting,prNumber:n.prNumber,prUrl:n.prUrl,prRepository:n.prRepository,projectPath:n.projectPath??e.projectPath};return!r.firstPrompt&&!r.customTitle&&(r.firstPrompt=`(session)`),r.isSidechain?(U(`Session ${e.sessionId} filtered from /resume: isSidechain=true`),null):r.teamName?(U(`Session ${e.sessionId} filtered from /resume: teamName=${r.teamName}`),null):r}async function c5(e,t,n){let r=[],i=Buffer.alloc(qo),a=t;for(;a<e.length&&r.length<n;){let t=e[a];a++;let n=await I3t(t,i);n&&r.push(n)}let o=a-t,s=o-r.length;return s>0&&U(`/resume: enriched ${o} sessions, ${s} filtered out, ${r.length} visible (${e.length-a} remaining on disk)`),{logs:r,nextIndex:a}}var L3t,R3t,z3t,B3t,V3t,l5,u5,d5,H3t,U3t,W3t,G3t,f5,K3t,p5,m5,h5=n((()=>{l(),Ua(),tn(),s8(),Eo(),wr(),$M(),Rf(),Ux(),Hse(),Ss(),Ma(),rX(),Wa(),W(),Ya(),y(),ka(),Ns(),Fa(),x4t(),no(),CS(),as(),Ao(),i3(),Jo(),Uo(),Gi(),Va(),CP(),O(),L3t=typeof MACRO<`u`?`2.6.11`:`unknown`,R3t=50*1024*1024,z3t=/^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/,B3t=new Set([`bash_progress`,`powershell_progress`,`mcp_progress`,...[`sleep_progress`]]),V3t=50*1024*1024,l5=new Map,u5=c(e=>Y(u8(),Wo(e))),d5=null,H3t=!1,U3t=10,W3t=200,G3t=class{constructor(){k(this,`currentSessionTag`,void 0),k(this,`currentSessionTitle`,void 0),k(this,`currentSessionAgentName`,void 0),k(this,`currentSessionAgentColor`,void 0),k(this,`currentSessionLastPrompt`,void 0),k(this,`currentSessionAgentSetting`,void 0),k(this,`currentSessionMode`,void 0),k(this,`currentSessionWorktree`,void 0),k(this,`currentSessionPrNumber`,void 0),k(this,`currentSessionPrUrl`,void 0),k(this,`currentSessionPrRepository`,void 0),k(this,`sessionFile`,null),k(this,`pendingEntries`,[]),k(this,`remoteIngressUrl`,null),k(this,`internalEventWriter`,null),k(this,`internalEventReader`,null),k(this,`internalSubagentEventReader`,null),k(this,`pendingWriteCount`,0),k(this,`flushResolvers`,[]),k(this,`writeQueues`,new Map),k(this,`flushTimer`,null),k(this,`activeDrain`,null),k(this,`FLUSH_INTERVAL_MS`,100),k(this,`MAX_CHUNK_BYTES`,100*1024*1024),k(this,`existingSessionFiles`,new Map)}_resetFlushState(){this.pendingWriteCount=0,this.flushResolvers=[],this.flushTimer&&clearTimeout(this.flushTimer),this.flushTimer=null,this.activeDrain=null,this.writeQueues=new Map,this.existingSessionFiles=new Map}incrementPendingWrites(){this.pendingWriteCount++}decrementPendingWrites(){if(this.pendingWriteCount--,this.pendingWriteCount===0){for(let e of this.flushResolvers)e();this.flushResolvers=[]}}async trackWrite(e){this.incrementPendingWrites();try{return await e()}finally{this.decrementPendingWrites()}}enqueueWrite(e,t){return new Promise(n=>{let r=this.writeQueues.get(e);if(r||(r=[],this.writeQueues.set(e,r)),r.length>=1e3){let e=r.splice(0,r.length-999);for(let t of e)t.resolve()}r.push({entry:t,resolve:n}),this.scheduleDrain()})}scheduleDrain(){this.flushTimer||(this.flushTimer=setTimeout(async()=>{this.flushTimer=null,this.activeDrain=this.drainWriteQueue(),await this.activeDrain,this.activeDrain=null,this.writeQueues.size>0&&this.scheduleDrain()},this.FLUSH_INTERVAL_MS))}async appendToFile(e,t){try{await ld(e,t,{mode:384})}catch{await pd(Eu(e),{recursive:!0,mode:448}),await ld(e,t,{mode:384})}}async drainWriteQueue(){for(let[e,t]of this.writeQueues){if(t.length===0)continue;let n=t.splice(0),r=``,i=[];for(let{entry:t,resolve:a}of n){let n=V(t)+`
|
|
4371
4371
|
`;if(r.length+n.length>=this.MAX_CHUNK_BYTES){await this.appendToFile(e,r);for(let e of i)e();i.length=0,r=``}r+=n,i.push(a)}if(r.length>0){await this.appendToFile(e,r);for(let e of i)e()}}for(let[e,t]of this.writeQueues)t.length===0&&this.writeQueues.delete(e)}resetSessionFile(){this.sessionFile=null,this.pendingEntries=[]}reAppendSessionMetadata(e=!1){if(!this.sessionFile)return;let t=Ft();if(!t)return;let n=Q4t(this.sessionFile).split(`
|
|
4372
4372
|
`);if(!e){let e=n.findLast(e=>e.startsWith(`{"type":"custom-title"`));if(e){let t=Go(e,`customTitle`);t!==void 0&&(this.currentSessionTitle=t||void 0)}}let r=n.findLast(e=>e.startsWith(`{"type":"tag"`));if(r){let e=Go(r,`tag`);e!==void 0&&(this.currentSessionTag=e||void 0)}this.currentSessionLastPrompt&&H8(this.sessionFile,{type:`last-prompt`,lastPrompt:this.currentSessionLastPrompt,sessionId:t}),this.currentSessionTitle&&H8(this.sessionFile,{type:`custom-title`,customTitle:this.currentSessionTitle,sessionId:t}),this.currentSessionTag&&H8(this.sessionFile,{type:`tag`,tag:this.currentSessionTag,sessionId:t}),this.currentSessionAgentName&&H8(this.sessionFile,{type:`agent-name`,agentName:this.currentSessionAgentName,sessionId:t}),this.currentSessionAgentColor&&H8(this.sessionFile,{type:`agent-color`,agentColor:this.currentSessionAgentColor,sessionId:t}),this.currentSessionAgentSetting&&H8(this.sessionFile,{type:`agent-setting`,agentSetting:this.currentSessionAgentSetting,sessionId:t}),this.currentSessionMode&&H8(this.sessionFile,{type:`mode`,mode:this.currentSessionMode,sessionId:t}),this.currentSessionWorktree!==void 0&&H8(this.sessionFile,{type:`worktree-state`,worktreeSession:this.currentSessionWorktree,sessionId:t}),this.currentSessionPrNumber!==void 0&&this.currentSessionPrUrl&&this.currentSessionPrRepository&&H8(this.sessionFile,{type:`pr-link`,sessionId:t,prNumber:this.currentSessionPrNumber,prUrl:this.currentSessionPrUrl,prRepository:this.currentSessionPrRepository,timestamp:new Date().toISOString()})}async flush(){if(this.flushTimer&&(clearTimeout(this.flushTimer),this.flushTimer=null),this.activeDrain&&await this.activeDrain,await this.drainWriteQueue(),this.pendingWriteCount!==0)return new Promise(e=>{this.flushResolvers.push(e)})}async removeMessageByUuid(e){return this.trackWrite(async()=>{if(this.sessionFile!==null)try{let t=0,n=await md(this.sessionFile,`r+`);try{let{size:r}=await n.stat();if(t=r,r===0)return;let i=Math.min(r,qo),a=r-i,o=Buffer.allocUnsafe(i),{bytesRead:s}=await n.read(o,0,i,a),c=o.subarray(0,s),l=`"uuid":"${e}"`,u=c.lastIndexOf(l);if(u>=0){let e=c.lastIndexOf(10,u);if(e>=0||a===0){let t=e+1,r=c.indexOf(10,u+l.length),i=r>=0?r+1:s,o=a+t,d=s-i;await n.truncate(o),d>0&&await n.write(c,i,d,o);return}}}finally{await n.close()}if(t>R3t){U(`Skipping tombstone removal: session file too large (${Os(t)})`,{level:`warn`});return}let r=(await hd(this.sessionFile,{encoding:`utf-8`})).split(`
|
|
4373
4373
|
`).filter(t=>{if(!t.trim())return!0;try{return Da(t).uuid!==e}catch{return!0}});await wd(this.sessionFile,r.join(`
|
|
@@ -4377,7 +4377,7 @@ Coordinator mode is now enabled. You are an orchestrator. Use Agent({ subagent_t
|
|
|
4377
4377
|
`,_5);s=s.slice(0,e>0?e:_5)}let c=o&&!a?`${Os(i)} (limit: ${Os(_5)}) — index entries are too long`:a&&!o?`${r} lines (limit: 200)`:`${r} lines and ${Os(i)}`;return{content:s+`\n\n> WARNING: ${g5} is ${c}. Only part of it was loaded. Keep index entries to one line under ~200 chars; move detail into topic files.`,lineCount:r,byteCount:i,wasLineTruncated:a,wasByteTruncated:o}}async function J3t(e){let t=za();try{await t.mkdir(e)}catch(t){U(`ensureMemoryDirExists failed for ${e}: ${(t instanceof Error&&`code`in t&&typeof t.code==`string`?t.code:void 0)??String(t)}`,{level:`debug`})}}function Y3t(e,t){za().readdir(e).then(e=>{let n=0,r=0;for(let t of e)t.isFile()?n++:t.isDirectory()&&r++;G(`tengu_memdir_loaded`,{...t,total_file_count:n,total_subdir_count:r})},()=>{G(`tengu_memdir_loaded`,t)})}function X3t(e,t,n,r=!1){let i=r?[`## How to save memories`,``,"Write each memory to its own file (e.g., `user_role.md`, `feedback_testing.md`) using this frontmatter format:",``,...VQ,``,`- Keep the name, description, and type fields in memory files up-to-date with the content`,`- Organize memory semantically by topic, not chronologically`,`- Update or remove memories that turn out to be wrong or outdated`,`- Do not write duplicate memories. First check if there is an existing memory you can update before writing a new one.`]:[`## How to save memories`,``,`Saving a memory is a two-step process:`,``,"**Step 1** — write the memory to its own file (e.g., `user_role.md`, `feedback_testing.md`) using this frontmatter format:",``,...VQ,``,`**Step 2** — add a pointer to that file in \`${g5}\`. \`${g5}\` is an index, not a memory — each entry should be one line, under ~150 characters: \`- [Title](file.md) — one-line hook\`. It has no frontmatter. Never write memory content directly into \`${g5}\`.`,``,`- \`${g5}\` is always loaded into your conversation context — lines after 200 will be truncated, so keep the index concise`,`- Keep the name, description, and type fields in memory files up-to-date with the content`,`- Organize memory semantically by topic, not chronologically`,`- Update or remove memories that turn out to be wrong or outdated`,`- Do not write duplicate memories. First check if there is an existing memory you can update before writing a new one.`],a=[`# ${e}`,``,`You have a persistent, file-based memory system at \`${t}\`. ${n6t}`,``,`You should build up this memory system over time so that future conversations can have a complete picture of who the user is, how they'd like to collaborate with you, what behaviors to avoid or repeat, and the context behind the work the user gives you.`,``,`If the user explicitly asks you to remember something, save it immediately as whichever type fits best. If they ask you to forget something, find and remove the relevant entry.`,``,...zQ,...BQ,``,...i,``,...VRt,``,...HRt,``,`## Memory and other forms of persistence`,`Memory is one of several persistence mechanisms available to you as you assist the user in a given conversation. The distinction is often that memory can be recalled in future conversations and should not be used for persisting information that is only useful within the scope of the current conversation.`,`- When to use or update a plan instead of memory: If you are about to start a non-trivial implementation task and would like to reach alignment with the user on your approach you should use a Plan rather than saving this information to memory. Similarly, if you already have a plan within the conversation and you have changed your approach persist that change by updating the plan rather than saving a memory.`,`- When to use or update tasks instead of memory: When you need to break your work in current conversation into discrete steps or keep track of your progress use tasks instead of saving to memory. Tasks are great for persisting information about the work that needs to be done in the current conversation, but memory should be reserved for information that will be useful in future conversations.`,``,...n??[],``];return a.push(...$3t(t)),a}function Z3t(e){let{displayName:t,memoryDir:n,extraGuidelines:r}=e,i=za(),a=n+g5,o=``;try{o=i.readFileSync(a,{encoding:`utf-8`})}catch{}let s=X3t(t,n,r);if(o.trim()){let e=q3t(o),r=t===t6t?`auto`:`agent`;Y3t(n,{content_length:e.byteCount,line_count:e.lineCount,was_truncated:e.wasLineTruncated,was_byte_truncated:e.wasByteTruncated,memory_type:r}),s.push(`## ${g5}`,``,e.content)}else s.push(`## ${g5}`,``,`Your ${g5} is currently empty. When you save new memories, they will appear here.`);return s.join(`
|
|
4378
4378
|
`)}function Q3t(e=!1){let t=Ii(),n=Y(t,`logs`,`YYYY`,`MM`,`YYYY-MM-DD.md`);return[`# auto memory`,``,`You have a persistent, file-based memory system found at: \`${t}\``,``,`This session is long-lived. As you work, record anything worth remembering by **appending** to today's daily log file:`,``,`\`${n}\``,``,"Substitute today's date (from `currentDate` in your context) for `YYYY-MM-DD`. When the date rolls over mid-session, start appending to the new day's file.",``,"Write each entry as a short timestamped bullet. Create the file (and parent directories) on first write if it does not exist. Do not rewrite or reorganize the log — it is append-only. A separate nightly process distills these logs into `MEMORY.md` and topic files.",``,`## What to log`,`- User corrections and preferences ("use bun, not npm"; "stop summarizing diffs")`,`- Facts about the user, their role, or their goals`,`- Project context that is not derivable from the code (deadlines, incidents, decisions and their rationale)`,`- Pointers to external systems (dashboards, Linear projects, Slack channels)`,`- Anything the user explicitly asks you to remember`,``,...BQ,``,...e?[]:[`## ${g5}`,`\`${g5}\` is the distilled index (maintained nightly from your logs) and is loaded into your context automatically. Read it for orientation, but do not edit it directly — record new information in today's log instead.`,``],...$3t(t)].join(`
|
|
4379
4379
|
`)}function $3t(e){if(!Jr(`tengu_coral_fern`,!1))return[];let t=u5(fn()),n=zf()||If();return[`## Searching past context`,``,`When looking for past context:`,`1. Search topic files in your memory directory:`,"```",n?`grep -rn "<search term>" ${e} --include="*.md"`:`${lc} with pattern="<search term>" path="${e}" glob="*.md"`,"```",`2. Session transcript logs (last resort — large files, slow):`,"```",n?`grep -rn "<search term>" ${t}/ --include="*.jsonl"`:`${lc} with pattern="<search term>" path="${t}/" glob="*.jsonl"`,"```",`Use narrow search terms (error messages, file paths, function names) rather than broad keywords.`,``]}async function e6t(){let e=ea(),t=Jr(`tengu_moth_copse`,!1);if(e&&Bt())return Y3t(Ii(),{memory_type:`auto`}),Q3t(t);let n=process.env.CLAUDE_COWORK_MEMORY_EXTRA_GUIDELINES,r=n&&n.trim().length>0?[n]:void 0;if(e){let e=Ii();return await J3t(e),Y3t(e,{memory_type:`auto`}),X3t(`auto memory`,e,r,t).join(`
|
|
4380
|
-
`)}return G(`tengu_memdir_disabled`,{disabled_by_env_var:x(process.env.CLAUDE_CODE_DISABLE_AUTO_MEMORY),disabled_by_setting:!x(process.env.CLAUDE_CODE_DISABLE_AUTO_MEMORY)&&Qn().autoMemoryEnabled===!1}),Jr(`tengu_herring_clock`,!1)&&G(`tengu_team_memdir_disabled`,{}),null}var g5,_5,t6t,n6t,v5=n((()=>{Fa(),Xr(),tn(),wr(),Ua(),mc(),Rf(),W(),Bf(),y(),Ns(),h5(),Gi(),HQ(),g5=`MEMORY.md`,_5=25e3,t6t=`auto memory`,n6t=`This directory already exists — write to it directly with the Write tool (do not run mkdir or check for its existence).`}));function r6t(e){return e.replace(/:/g,`-`)}function i6t(e){return process.env.CLAUDE_CODE_REMOTE_MEMORY_DIR?Y(process.env.CLAUDE_CODE_REMOTE_MEMORY_DIR,`projects`,Wo(eo(hn())??hn()),`agent-memory-local`,e)+Pu:Y(Ga(),`.claude`,`agent-memory-local`,e)+Pu}function a6t(e,t){let n=r6t(e);switch(t){case`project`:return Y(Ga(),`.claude`,`agent-memory`,n)+Pu;case`local`:return i6t(n);case`user`:return Y(Xi(),`agent-memory`,n)+Pu}}function o6t(e){let t=ku(e),n=Xi();if(t.startsWith(Y(n,`agent-memory`)+Pu)||t.startsWith(Y(Ga(),`.claude`,`agent-memory`)+Pu))return!0;if(process.env.CLAUDE_CODE_REMOTE_MEMORY_DIR){if(t.includes(Pu+`agent-memory-local`+Pu)&&t.startsWith(Y(process.env.CLAUDE_CODE_REMOTE_MEMORY_DIR,`projects`)+Pu))return!0}else if(t.startsWith(Y(Ga(),`.claude`,`agent-memory-local`)+Pu))return!0;return!1}function s6t(e){switch(e){case`user`:return`User (${Y(Xi(),`agent-memory`)}/)`;case`project`:return`Project (.claude/agent-memory/)`;case`local`:return`Local (${i6t(`...`)})`;default:return`None`}}function y5(e,t){let n;switch(t){case`user`:n=`- Since this memory is user-scope, keep learnings general since they apply across all projects`;break;case`project`:n=`- Since this memory is project-scope and shared with your team via version control, tailor your memories to this project`;break;case`local`:n=`- Since this memory is local-scope (not checked into version control), tailor your memories to this project and machine`;break}let r=a6t(e,t);J3t(r);let i=process.env.CLAUDE_COWORK_MEMORY_EXTRA_GUIDELINES;return Z3t({displayName:`Persistent Agent Memory`,memoryDir:r,extraGuidelines:i&&i.trim().length>0?[n,i]:[n]})}var b5=n((()=>{tn(),v5(),Xr(),Wa(),no(),Jo()}));function x5(e){return e.toLowerCase()}function c6t(e){let t=Yo(e),n=x5(t),r=[{dir:Yo(Y(fn(),`.claude`,`skills`)),prefix:`/.claude/skills/`},{dir:Yo(Y(Su(),`.claude`,`skills`)),prefix:`~/.claude/skills/`}];for(let{dir:e,prefix:i}of r){let r=x5(e);for(let a of[Pu,`/`])if(n.startsWith(r+a.toLowerCase())){let n=t.slice(e.length+a.length),r=n.indexOf(`/`),o=Pu===`\\`?n.indexOf(`\\`):-1,s=r===-1?o:o===-1?r:Math.min(r,o);if(s<=0)return null;let c=n.slice(0,s);return!c||c===`.`||c.includes(`..`)||/[*?[\]]/.test(c)?null:{skillName:c,pattern:i+c+`/**`}}}return null}function l6t(e,t){if(No()===`windows`){let n=zo(e),r=zo(t);return ju.relative(n,r)}return ju.relative(e,t)}function u6t(e){return No()===`windows`?zo(e):e}function d6t(){return Vr.map(e=>Ur(e)).filter(e=>e!==void 0)}function f6t(e){let t=x5(Yo(e));return t.endsWith(`${Pu}.claude${Pu}settings.json`)||t.endsWith(`${Pu}.claude${Pu}settings.local.json`)?!0:d6t().some(e=>x5(e)===t)}function p6t(e){if(f6t(e))return!0;let t=Y(fn(),`.claude`,`commands`),n=Y(fn(),`.claude`,`agents`),r=Y(fn(),`.claude`,`skills`);return E5(e,t)||E5(e,n)||E5(e,r)}function m6t(e){let t=Y(gN(),pN()),n=ku(e);return n.startsWith(t)&&n.endsWith(`.md`)}function h6t(){return Y(u5(Ga()),Ft(),`session-memory`)+Pu}function g6t(){return Y(h6t(),`summary.md`)}function _6t(e){return ku(e).startsWith(h6t())}function v6t(e){let t=u5(Ga()),n=ku(e);return n===t||n.startsWith(t+Pu)}function S5(){return ci(`tengu_scratch`)}function y6t(){return No()===`windows`?`claude`:`claude-${process.getuid?.()??0}`}function b6t(){return Y(M5(),Wo(fn()))+Pu}function C5(){return Y(b6t(),Ft(),`scratchpad`)}async function x6t(){if(!S5())throw Error(`Scratchpad directory feature is not enabled`);let e=za(),t=C5();return await e.mkdir(t,{mode:448}),t}function S6t(e){if(!S5())return!1;let t=C5(),n=ku(e);return n===t||n.startsWith(t+Pu)}function C6t(e){let t=Yo(e).split(Pu),n=t.at(-1);if(e.startsWith(`\\\\`)||e.startsWith(`//`))return!0;for(let e=0;e<t.length;e++){let n=t[e],r=x5(n);for(let n of L6t)if(r===x5(n)){if(n===`.claude`){let n=t[e+1];if(n&&x5(n)===`worktrees`)break}return!0}}if(n){let e=x5(n);if(I6t.some(t=>x5(t)===e))return!0}return!1}function w6t(e){return!!((No()===`windows`||No()===`wsl`)&&e.indexOf(`:`,2)!==-1||/~\d/.test(e)||e.startsWith(`\\\\?\\`)||e.startsWith(`\\\\.\\`)||e.startsWith(`//?/`)||e.startsWith(`//./`)||/[.\s]+$/.test(e)||/\.(CON|PRN|AUX|NUL|COM[1-9]|LPT[1-9])$/i.test(e)||/(^|\/|\\)\.{3,}(\/|\\|$)/.test(e)||Im(e))}function T6t(e,t){let n=t??Ra(e);for(let t of n)if(w6t(t))return{safe:!1,message:`Claude requested permissions to write to ${e}, which contains a suspicious Windows path pattern that requires manual approval.`,classifierApprovable:!1};for(let t of n)if(p6t(t))return{safe:!1,message:`Claude requested permissions to write to ${e}, but you haven't granted it yet.`,classifierApprovable:!0};for(let t of n)if(C6t(t))return{safe:!1,message:`Claude requested permissions to edit ${e} which is a sensitive file.`,classifierApprovable:!0};return{safe:!0}}function w5(e){return new Set([fn(),...e.additionalWorkingDirectories.keys()])}function T5(e,t,n){let r=n??Ra(e),i=Array.from(w5(t)).flatMap(e=>z6t(e));return r.every(e=>i.some(t=>E5(e,t)))}function E5(e,t){let n=Yo(e),r=Yo(t),i=n.replace(/^\/private\/var\//,`/var/`).replace(/^\/private\/tmp(\/|$)/,`/tmp$1`),a=r.replace(/^\/private\/var\//,`/var/`).replace(/^\/private\/tmp(\/|$)/,`/tmp$1`),o=x5(i),s=l6t(x5(a),o);return s===``?!0:Qo(s)?!1:!ju.isAbsolute(s)}function E6t(e){switch(e){case`cliArg`:case`command`:case`session`:return Yo(fn());case`userSettings`:case`policySettings`:case`projectSettings`:case`localSettings`:case`flagSettings`:return Wne(e)}}function D6t(e){return ju.join(j5,e)}function O6t({patternRoot:e,pattern:t,rootPath:n}){let r=ju.join(e,t);if(e===n)return D6t(t);if(r.startsWith(`${n}${j5}`))return D6t(r.slice(n.length));{let r=ju.relative(n,e);return!r||r.startsWith(`..${j5}`)||r===`..`?null:D6t(ju.join(r,t))}}function k6t(e,t){let n=new Set(e.get(null)??[]);for(let[r,i]of e.entries())if(r!==null)for(let e of i){let i=O6t({patternRoot:r,pattern:e,rootPath:t});i&&n.add(i)}return Array.from(n)}function A6t(e){let t=M6t(e,`read`,`deny`),n=new Map;for(let[e,r]of t.entries())n.set(e,Array.from(r.keys()));return n}function j6t(e,t){if(e.startsWith(`${j5}${j5}`)){let t=e.slice(1);if(No()===`windows`&&t.match(/^\/[a-z]\//i)){let e=t[1]?.toUpperCase()??`C`,n=t.slice(2),r=`${e}:\\`;return{relativePattern:n.startsWith(`/`)?n.slice(1):n,root:r}}return{relativePattern:t,root:j5}}else if(e.startsWith(`~${j5}`))return{relativePattern:e.slice(1),root:Su().normalize(`NFC`)};else if(e.startsWith(j5))return{relativePattern:e,root:E6t(t)};let n=e;return e.startsWith(`.${j5}`)&&(n=e.slice(2)),{relativePattern:n,root:null}}function M6t(e,t,n){let r=A9(e,(()=>{switch(t){case`edit`:return fc;case`read`:return Mc}})(),n),i=new Map;for(let[e,t]of r.entries()){let{relativePattern:n,root:r}=j6t(e,t.source),a=i.get(r);a===void 0&&(a=new Map,i.set(r,a)),a.set(n,t)}return i}function D5(e,t,n,r){let i=Yo(e);No()===`windows`&&i.includes(`\\`)&&(i=zo(i));let a=M6t(t,n,r);for(let[e,t]of a.entries()){let n=Array.from(t.keys()).map(e=>{let t=e;return t.endsWith(`/**`)&&(t=t.slice(0,-3)),t}),r=(0,F6t.default)().add(n),a=l6t(e??Ga(),i??Ga());if(a.startsWith(`..${j5}`)||!a)continue;let o=r.test(a);if(o.ignored&&o.rule){let e=o.rule.pattern,n=e+`/**`;return t.has(n)?t.get(n)??null:t.get(e)??null}}return null}function O5(e,t,n){if(typeof e.getPath!=`function`)return{behavior:`ask`,message:`Claude requested permissions to use ${e.name}, but you haven't granted it yet.`};let r=e.getPath(t),i=Ra(r);for(let e of i)if(e.startsWith(`\\\\`)||e.startsWith(`//`))return{behavior:`ask`,message:`Claude requested permissions to read from ${r}, which appears to be a UNC path that could access network resources.`,decisionReason:{type:`other`,reason:`UNC path detected (defense-in-depth check)`}};for(let e of i)if(w6t(e))return{behavior:`ask`,message:`Claude requested permissions to read from ${r}, which contains a suspicious Windows path pattern that requires manual approval.`,decisionReason:{type:`other`,reason:`Path contains suspicious Windows-specific patterns (alternate data streams, short names, long path prefixes, or three or more consecutive dots) that require manual verification`}};for(let e of i){let t=D5(e,n,`read`,`deny`);if(t)return{behavior:`deny`,message:`Permission to read ${r} has been denied.`,decisionReason:{type:`rule`,rule:t}}}for(let e of i){let t=D5(e,n,`read`,`ask`);if(t)return{behavior:`ask`,message:`Claude requested permissions to read from ${r}, but you haven't granted it yet.`,decisionReason:{type:`rule`,rule:t}}}let a=k5(e,t,n,i);if(a.behavior===`allow`)return a;if(T5(r,n,i))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`mode`,mode:`default`}};let o=P6t(Yo(r),t);if(o.behavior!==`passthrough`)return o;let s=D5(r,n,`read`,`allow`);return s?{behavior:`allow`,updatedInput:t,decisionReason:{type:`rule`,rule:s}}:{behavior:`ask`,message:`Claude requested permissions to read from ${r}, but you haven't granted it yet.`,suggestions:A5(r,`read`,n,i),decisionReason:{type:`workingDir`,reason:`Path is outside allowed working directories`}}}function k5(e,t,n,r){if(typeof e.getPath!=`function`)return{behavior:`ask`,message:`Claude requested permissions to use ${e.name}, but you haven't granted it yet.`};let i=e.getPath(t),a=r??Ra(i);for(let e of a){let t=D5(e,n,`edit`,`deny`);if(t)return{behavior:`deny`,message:`Permission to edit ${i} has been denied.`,decisionReason:{type:`rule`,rule:t}}}let o=N6t(Yo(i),t);if(o.behavior!==`passthrough`)return o;let s=D5(i,{...n,alwaysAllowRules:{session:n.alwaysAllowRules.session??[]}},`edit`,`allow`);if(s){let e=s.ruleValue.ruleContent;if(e&&(e.startsWith(`/.claude/**`.slice(0,-2))||e.startsWith(`~/.claude/**`.slice(0,-2)))&&!e.includes(`..`)&&e.endsWith(`/**`))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`rule`,rule:s}}}let c=T6t(i,a);if(!c.safe){let e=c6t(i),t=e?[{type:`addRules`,rules:[{toolName:fc,ruleContent:e.pattern}],behavior:`allow`,destination:`session`}]:A5(i,`write`,n,a),r=c;return{behavior:`ask`,message:r.message,suggestions:t,decisionReason:{type:`safetyCheck`,reason:r.message,classifierApprovable:r.classifierApprovable}}}for(let e of a){let t=D5(e,n,`edit`,`ask`);if(t)return{behavior:`ask`,message:`Claude requested permissions to write to ${i}, but you haven't granted it yet.`,decisionReason:{type:`rule`,rule:t}}}let l=T5(i,n,a);if(n.mode===`acceptEdits`&&l)return{behavior:`allow`,updatedInput:t,decisionReason:{type:`mode`,mode:n.mode}};let u=D5(i,n,`edit`,`allow`);return u?{behavior:`allow`,updatedInput:t,decisionReason:{type:`rule`,rule:u}}:{behavior:`ask`,message:`Claude requested permissions to write to ${i}, but you haven't granted it yet.`,suggestions:A5(i,`write`,n,a),decisionReason:l?void 0:{type:`workingDir`,reason:`Path is outside allowed working directories`}}}function A5(e,t,n,r){let i=!T5(e,n,r);if(t===`read`&&i)return Ra(Zo(e)).map(e=>zy(e,`session`)).filter(e=>e!==void 0);let a=n.mode===`default`||n.mode===`plan`;if(t===`write`||t===`create`){let t=a?[{type:`setMode`,mode:`acceptEdits`,destination:`session`}]:[];if(i){let n=Ra(Zo(e));t.push({type:`addDirectories`,directories:n,destination:`session`})}return t}return a?[{type:`setMode`,mode:`acceptEdits`,destination:`session`}]:[]}function N6t(e,t){let n=ku(e);if(m6t(n))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Plan files for current session are allowed for writing`}};if(S6t(n))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Scratchpad files for current session are allowed for writing`}};{let n=process.env.CLAUDE_JOB_DIR;if(n){let r=Y(_(),`jobs`),i=Ra(n).map(ku),a=Ra(r).map(ku);if(i.every(e=>a.some(t=>e.startsWith(t+Pu)))&&Ra(e).every(e=>{let t=ku(e);return i.some(e=>t===e||t.startsWith(e+Pu))}))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Job directory files for current job are allowed for writing`}}}}return o6t(n)?{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Agent memory files are allowed for writing`}}:!Tae()&&Hi(n)?{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`auto memory files are allowed for writing`}}:x5(n)===x5(Y(fn(),`.claude`,`launch.json`))?{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Preview launch config is allowed for writing`}}:{behavior:`passthrough`,message:``}}function P6t(e,t){let n=ku(e);if(_6t(n))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Session memory files are allowed for reading`}};if(v6t(n))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Project directory files are allowed for reading`}};if(m6t(n))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Plan files for current session are allowed for reading`}};let r=wE(),i=r.endsWith(Pu)?r:r+Pu;if(n===r||n.startsWith(i))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Tool result files are allowed for reading`}};if(S6t(n))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Scratchpad files for current session are allowed for reading`}};let a=b6t();if(n.startsWith(a))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Project temp directory files are allowed for reading`}};if(o6t(n))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Agent memory files are allowed for reading`}};if(Hi(n))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`auto memory files are allowed for reading`}};let o=Y(_(),`tasks`)+Pu;if(n===o.slice(0,-1)||n.startsWith(o))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Task files are allowed for reading`}};let s=Y(_(),`teams`)+Pu;if(n===s.slice(0,-1)||n.startsWith(s))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Team files are allowed for reading`}};let c=R6t()+Pu;return n.startsWith(c)?{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Bundled skill reference files are allowed for reading`}}:{behavior:`passthrough`,message:``}}var F6t,I6t,L6t,j5,M5,R6t,z6t,N5=n((()=>{F6t=r(he(),1),l(),Xr(),b5(),Ic(),tn(),wr(),tl(),Wa(),y(),Fa(),Jo(),_N(),Po(),h5(),Li(),Gi(),Zm(),IE(),Bo(),By(),P9(),I6t=[`.gitconfig`,`.gitmodules`,`.bashrc`,`.bash_profile`,`.zshrc`,`.zprofile`,`.profile`,`.ripgreprc`,`.mcp.json`,`.claude.json`],L6t=[`.git`,`.vscode`,`.idea`,`.claude`],j5=ju.sep,M5=c(function(){let e=process.env.CLAUDE_CODE_TMPDIR||(No()===`windows`?Cu():`/tmp`),t=za(),n=e;try{n=t.realpathSync(e)}catch{}return Y(n,y6t())+Pu}),R6t=c(function(){let e=ad(16).toString(`hex`);return Y(M5(),`bundled-skills`,`2.6.10`,e)}),z6t=c(Ra)})),B6t=i({DiskTaskOutput:()=>Q5,MAX_TASK_OUTPUT_BYTES:()=>V5,MAX_TASK_OUTPUT_BYTES_DISPLAY:()=>`5GB`,_clearOutputsForTest:()=>q6t,_resetTaskOutputDirForTest:()=>V6t,appendTaskOutput:()=>Y6t,cleanupTaskOutput:()=>$6t,evictTaskOutput:()=>L5,flushTaskOutput:()=>X6t,getTaskOutput:()=>R5,getTaskOutputDelta:()=>Z6t,getTaskOutputDir:()=>P5,getTaskOutputPath:()=>F5,getTaskOutputSize:()=>Q6t,initTaskOutput:()=>z5,initTaskOutputAsSymlink:()=>B5});function P5(){return H5===void 0&&(H5=Y(b6t(),Ft(),`tasks`)),H5}function V6t(){H5=void 0}async function H6t(){await pd(P5(),{recursive:!0})}function F5(e){return Y(P5(),`${e}.output`)}function I5(e){return U5.add(e),e.finally(()=>U5.delete(e)).catch(()=>{}),e}async function U6t(){for(;;){try{for(A(G5,this)||(await H6t(),j(G5,this,await md(A(W5,this),process.platform===`win32`?`a`:Vu.O_WRONLY|Vu.O_APPEND|Vu.O_CREAT|e8t)));await te(Z5,this,W6t).call(this),A(K5,this).length!==0;);}finally{if(A(G5,this)){let e=A(G5,this);j(G5,this,null),await e.close()}}if(!A(K5,this).length)break}}function W6t(){return A(G5,this).appendFile(te(Z5,this,G6t).call(this))}function G6t(){let e=A(K5,this).splice(0,A(K5,this).length),t=0;for(let n of e)t+=Buffer.byteLength(n,`utf8`);let n=Buffer.allocUnsafe(t),r=0;for(let t of e)r+=n.write(t,r,`utf8`);return n}async function K6t(){try{await te(Z5,this,U6t).call(this)}catch(e){if(q(e),A(K5,this).length>0)try{await te(Z5,this,U6t).call(this)}catch(e){q(e)}}finally{let e=A(X5,this);j(Y5,this,null),j(X5,this,null),e()}}async function q6t(){for(let e of $5.values())e.cancel();for(;U5.size>0;)await Promise.allSettled([...U5]);$5.clear()}function J6t(e){let t=$5.get(e);return t||(t=new Q5(e),$5.set(e,t)),t}function Y6t(e,t){J6t(e).append(t)}async function X6t(e){let t=$5.get(e);t&&await t.flush()}function L5(e){return I5((async()=>{let t=$5.get(e);t&&(await t.flush(),$5.delete(e))})())}async function Z6t(e,t,n=t8t){try{let r=await tse(F5(e),t,n);return r?{content:r.content,newOffset:t+r.bytesRead}:{content:``,newOffset:t}}catch(e){return Ea(e)===`ENOENT`||q(e),{content:``,newOffset:t}}}async function R5(e,t=t8t){try{let{content:n,bytesTotal:r,bytesRead:i}=await Na(F5(e),t);return r>i?`[${Math.round((r-i)/1024)}KB of earlier output omitted]\n${n}`:n}catch(e){return Ea(e)===`ENOENT`||q(e),``}}async function Q6t(e){try{return(await xd(F5(e))).size}catch(e){return Ea(e)===`ENOENT`||q(e),0}}async function $6t(e){let t=$5.get(e);t&&(t.cancel(),$5.delete(e));try{await Cd(F5(e))}catch(e){if(Ea(e)===`ENOENT`)return;q(e)}}function z5(e){return I5((async()=>{await H6t();let t=F5(e);return await(await md(t,process.platform===`win32`?`wx`:Vu.O_WRONLY|Vu.O_CREAT|Vu.O_EXCL|e8t)).close(),t})())}function B5(e,t){return I5((async()=>{try{await H6t();let n=F5(e);try{await Sd(t,n)}catch{await Cd(n),await Sd(t,n)}return n}catch(t){return q(t),z5(e)}})())}var e8t,t8t,V5,H5,U5,W5,G5,K5,q5,J5,Y5,X5,Z5,Q5,$5,e7=n((()=>{tn(),ka(),Fa(),Ao(),N5(),ce(),ne(),ae(),re(),oe(),e8t=Vu.O_NOFOLLOW??0,t8t=8*1024*1024,V5=5*1024*1024*1024,U5=new Set,W5=new WeakMap,G5=new WeakMap,K5=new WeakMap,q5=new WeakMap,J5=new WeakMap,Y5=new WeakMap,X5=new WeakMap,Z5=new WeakSet,Q5=class{constructor(e){ie(this,Z5),se(this,W5,void 0),se(this,G5,null),se(this,K5,[]),se(this,q5,0),se(this,J5,!1),se(this,Y5,null),se(this,X5,null),j(W5,this,F5(e))}append(e){A(J5,this)||(j(q5,this,A(q5,this)+e.length),A(q5,this)>5368709120?(j(J5,this,!0),A(K5,this).push(`
|
|
4380
|
+
`)}return G(`tengu_memdir_disabled`,{disabled_by_env_var:x(process.env.CLAUDE_CODE_DISABLE_AUTO_MEMORY),disabled_by_setting:!x(process.env.CLAUDE_CODE_DISABLE_AUTO_MEMORY)&&Qn().autoMemoryEnabled===!1}),Jr(`tengu_herring_clock`,!1)&&G(`tengu_team_memdir_disabled`,{}),null}var g5,_5,t6t,n6t,v5=n((()=>{Fa(),Xr(),tn(),wr(),Ua(),mc(),Rf(),W(),Bf(),y(),Ns(),h5(),Gi(),HQ(),g5=`MEMORY.md`,_5=25e3,t6t=`auto memory`,n6t=`This directory already exists — write to it directly with the Write tool (do not run mkdir or check for its existence).`}));function r6t(e){return e.replace(/:/g,`-`)}function i6t(e){return process.env.CLAUDE_CODE_REMOTE_MEMORY_DIR?Y(process.env.CLAUDE_CODE_REMOTE_MEMORY_DIR,`projects`,Wo(eo(hn())??hn()),`agent-memory-local`,e)+Pu:Y(Ga(),`.claude`,`agent-memory-local`,e)+Pu}function a6t(e,t){let n=r6t(e);switch(t){case`project`:return Y(Ga(),`.claude`,`agent-memory`,n)+Pu;case`local`:return i6t(n);case`user`:return Y(Xi(),`agent-memory`,n)+Pu}}function o6t(e){let t=ku(e),n=Xi();if(t.startsWith(Y(n,`agent-memory`)+Pu)||t.startsWith(Y(Ga(),`.claude`,`agent-memory`)+Pu))return!0;if(process.env.CLAUDE_CODE_REMOTE_MEMORY_DIR){if(t.includes(Pu+`agent-memory-local`+Pu)&&t.startsWith(Y(process.env.CLAUDE_CODE_REMOTE_MEMORY_DIR,`projects`)+Pu))return!0}else if(t.startsWith(Y(Ga(),`.claude`,`agent-memory-local`)+Pu))return!0;return!1}function s6t(e){switch(e){case`user`:return`User (${Y(Xi(),`agent-memory`)}/)`;case`project`:return`Project (.claude/agent-memory/)`;case`local`:return`Local (${i6t(`...`)})`;default:return`None`}}function y5(e,t){let n;switch(t){case`user`:n=`- Since this memory is user-scope, keep learnings general since they apply across all projects`;break;case`project`:n=`- Since this memory is project-scope and shared with your team via version control, tailor your memories to this project`;break;case`local`:n=`- Since this memory is local-scope (not checked into version control), tailor your memories to this project and machine`;break}let r=a6t(e,t);J3t(r);let i=process.env.CLAUDE_COWORK_MEMORY_EXTRA_GUIDELINES;return Z3t({displayName:`Persistent Agent Memory`,memoryDir:r,extraGuidelines:i&&i.trim().length>0?[n,i]:[n]})}var b5=n((()=>{tn(),v5(),Xr(),Wa(),no(),Jo()}));function x5(e){return e.toLowerCase()}function c6t(e){let t=Yo(e),n=x5(t),r=[{dir:Yo(Y(fn(),`.claude`,`skills`)),prefix:`/.claude/skills/`},{dir:Yo(Y(Su(),`.claude`,`skills`)),prefix:`~/.claude/skills/`}];for(let{dir:e,prefix:i}of r){let r=x5(e);for(let a of[Pu,`/`])if(n.startsWith(r+a.toLowerCase())){let n=t.slice(e.length+a.length),r=n.indexOf(`/`),o=Pu===`\\`?n.indexOf(`\\`):-1,s=r===-1?o:o===-1?r:Math.min(r,o);if(s<=0)return null;let c=n.slice(0,s);return!c||c===`.`||c.includes(`..`)||/[*?[\]]/.test(c)?null:{skillName:c,pattern:i+c+`/**`}}}return null}function l6t(e,t){if(No()===`windows`){let n=zo(e),r=zo(t);return ju.relative(n,r)}return ju.relative(e,t)}function u6t(e){return No()===`windows`?zo(e):e}function d6t(){return Vr.map(e=>Ur(e)).filter(e=>e!==void 0)}function f6t(e){let t=x5(Yo(e));return t.endsWith(`${Pu}.claude${Pu}settings.json`)||t.endsWith(`${Pu}.claude${Pu}settings.local.json`)?!0:d6t().some(e=>x5(e)===t)}function p6t(e){if(f6t(e))return!0;let t=Y(fn(),`.claude`,`commands`),n=Y(fn(),`.claude`,`agents`),r=Y(fn(),`.claude`,`skills`);return E5(e,t)||E5(e,n)||E5(e,r)}function m6t(e){let t=Y(gN(),pN()),n=ku(e);return n.startsWith(t)&&n.endsWith(`.md`)}function h6t(){return Y(u5(Ga()),Ft(),`session-memory`)+Pu}function g6t(){return Y(h6t(),`summary.md`)}function _6t(e){return ku(e).startsWith(h6t())}function v6t(e){let t=u5(Ga()),n=ku(e);return n===t||n.startsWith(t+Pu)}function S5(){return ci(`tengu_scratch`)}function y6t(){return No()===`windows`?`claude`:`claude-${process.getuid?.()??0}`}function b6t(){return Y(M5(),Wo(fn()))+Pu}function C5(){return Y(b6t(),Ft(),`scratchpad`)}async function x6t(){if(!S5())throw Error(`Scratchpad directory feature is not enabled`);let e=za(),t=C5();return await e.mkdir(t,{mode:448}),t}function S6t(e){if(!S5())return!1;let t=C5(),n=ku(e);return n===t||n.startsWith(t+Pu)}function C6t(e){let t=Yo(e).split(Pu),n=t.at(-1);if(e.startsWith(`\\\\`)||e.startsWith(`//`))return!0;for(let e=0;e<t.length;e++){let n=t[e],r=x5(n);for(let n of L6t)if(r===x5(n)){if(n===`.claude`){let n=t[e+1];if(n&&x5(n)===`worktrees`)break}return!0}}if(n){let e=x5(n);if(I6t.some(t=>x5(t)===e))return!0}return!1}function w6t(e){return!!((No()===`windows`||No()===`wsl`)&&e.indexOf(`:`,2)!==-1||/~\d/.test(e)||e.startsWith(`\\\\?\\`)||e.startsWith(`\\\\.\\`)||e.startsWith(`//?/`)||e.startsWith(`//./`)||/[.\s]+$/.test(e)||/\.(CON|PRN|AUX|NUL|COM[1-9]|LPT[1-9])$/i.test(e)||/(^|\/|\\)\.{3,}(\/|\\|$)/.test(e)||Im(e))}function T6t(e,t){let n=t??Ra(e);for(let t of n)if(w6t(t))return{safe:!1,message:`Claude requested permissions to write to ${e}, which contains a suspicious Windows path pattern that requires manual approval.`,classifierApprovable:!1};for(let t of n)if(p6t(t))return{safe:!1,message:`Claude requested permissions to write to ${e}, but you haven't granted it yet.`,classifierApprovable:!0};for(let t of n)if(C6t(t))return{safe:!1,message:`Claude requested permissions to edit ${e} which is a sensitive file.`,classifierApprovable:!0};return{safe:!0}}function w5(e){return new Set([fn(),...e.additionalWorkingDirectories.keys()])}function T5(e,t,n){let r=n??Ra(e),i=Array.from(w5(t)).flatMap(e=>z6t(e));return r.every(e=>i.some(t=>E5(e,t)))}function E5(e,t){let n=Yo(e),r=Yo(t),i=n.replace(/^\/private\/var\//,`/var/`).replace(/^\/private\/tmp(\/|$)/,`/tmp$1`),a=r.replace(/^\/private\/var\//,`/var/`).replace(/^\/private\/tmp(\/|$)/,`/tmp$1`),o=x5(i),s=l6t(x5(a),o);return s===``?!0:Qo(s)?!1:!ju.isAbsolute(s)}function E6t(e){switch(e){case`cliArg`:case`command`:case`session`:return Yo(fn());case`userSettings`:case`policySettings`:case`projectSettings`:case`localSettings`:case`flagSettings`:return Wne(e)}}function D6t(e){return ju.join(j5,e)}function O6t({patternRoot:e,pattern:t,rootPath:n}){let r=ju.join(e,t);if(e===n)return D6t(t);if(r.startsWith(`${n}${j5}`))return D6t(r.slice(n.length));{let r=ju.relative(n,e);return!r||r.startsWith(`..${j5}`)||r===`..`?null:D6t(ju.join(r,t))}}function k6t(e,t){let n=new Set(e.get(null)??[]);for(let[r,i]of e.entries())if(r!==null)for(let e of i){let i=O6t({patternRoot:r,pattern:e,rootPath:t});i&&n.add(i)}return Array.from(n)}function A6t(e){let t=M6t(e,`read`,`deny`),n=new Map;for(let[e,r]of t.entries())n.set(e,Array.from(r.keys()));return n}function j6t(e,t){if(e.startsWith(`${j5}${j5}`)){let t=e.slice(1);if(No()===`windows`&&t.match(/^\/[a-z]\//i)){let e=t[1]?.toUpperCase()??`C`,n=t.slice(2),r=`${e}:\\`;return{relativePattern:n.startsWith(`/`)?n.slice(1):n,root:r}}return{relativePattern:t,root:j5}}else if(e.startsWith(`~${j5}`))return{relativePattern:e.slice(1),root:Su().normalize(`NFC`)};else if(e.startsWith(j5))return{relativePattern:e,root:E6t(t)};let n=e;return e.startsWith(`.${j5}`)&&(n=e.slice(2)),{relativePattern:n,root:null}}function M6t(e,t,n){let r=A9(e,(()=>{switch(t){case`edit`:return fc;case`read`:return Mc}})(),n),i=new Map;for(let[e,t]of r.entries()){let{relativePattern:n,root:r}=j6t(e,t.source),a=i.get(r);a===void 0&&(a=new Map,i.set(r,a)),a.set(n,t)}return i}function D5(e,t,n,r){let i=Yo(e);No()===`windows`&&i.includes(`\\`)&&(i=zo(i));let a=M6t(t,n,r);for(let[e,t]of a.entries()){let n=Array.from(t.keys()).map(e=>{let t=e;return t.endsWith(`/**`)&&(t=t.slice(0,-3)),t}),r=(0,F6t.default)().add(n),a=l6t(e??Ga(),i??Ga());if(a.startsWith(`..${j5}`)||!a)continue;let o=r.test(a);if(o.ignored&&o.rule){let e=o.rule.pattern,n=e+`/**`;return t.has(n)?t.get(n)??null:t.get(e)??null}}return null}function O5(e,t,n){if(typeof e.getPath!=`function`)return{behavior:`ask`,message:`Claude requested permissions to use ${e.name}, but you haven't granted it yet.`};let r=e.getPath(t),i=Ra(r);for(let e of i)if(e.startsWith(`\\\\`)||e.startsWith(`//`))return{behavior:`ask`,message:`Claude requested permissions to read from ${r}, which appears to be a UNC path that could access network resources.`,decisionReason:{type:`other`,reason:`UNC path detected (defense-in-depth check)`}};for(let e of i)if(w6t(e))return{behavior:`ask`,message:`Claude requested permissions to read from ${r}, which contains a suspicious Windows path pattern that requires manual approval.`,decisionReason:{type:`other`,reason:`Path contains suspicious Windows-specific patterns (alternate data streams, short names, long path prefixes, or three or more consecutive dots) that require manual verification`}};for(let e of i){let t=D5(e,n,`read`,`deny`);if(t)return{behavior:`deny`,message:`Permission to read ${r} has been denied.`,decisionReason:{type:`rule`,rule:t}}}for(let e of i){let t=D5(e,n,`read`,`ask`);if(t)return{behavior:`ask`,message:`Claude requested permissions to read from ${r}, but you haven't granted it yet.`,decisionReason:{type:`rule`,rule:t}}}let a=k5(e,t,n,i);if(a.behavior===`allow`)return a;if(T5(r,n,i))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`mode`,mode:`default`}};let o=P6t(Yo(r),t);if(o.behavior!==`passthrough`)return o;let s=D5(r,n,`read`,`allow`);return s?{behavior:`allow`,updatedInput:t,decisionReason:{type:`rule`,rule:s}}:{behavior:`ask`,message:`Claude requested permissions to read from ${r}, but you haven't granted it yet.`,suggestions:A5(r,`read`,n,i),decisionReason:{type:`workingDir`,reason:`Path is outside allowed working directories`}}}function k5(e,t,n,r){if(typeof e.getPath!=`function`)return{behavior:`ask`,message:`Claude requested permissions to use ${e.name}, but you haven't granted it yet.`};let i=e.getPath(t),a=r??Ra(i);for(let e of a){let t=D5(e,n,`edit`,`deny`);if(t)return{behavior:`deny`,message:`Permission to edit ${i} has been denied.`,decisionReason:{type:`rule`,rule:t}}}let o=N6t(Yo(i),t);if(o.behavior!==`passthrough`)return o;let s=D5(i,{...n,alwaysAllowRules:{session:n.alwaysAllowRules.session??[]}},`edit`,`allow`);if(s){let e=s.ruleValue.ruleContent;if(e&&(e.startsWith(`/.claude/**`.slice(0,-2))||e.startsWith(`~/.claude/**`.slice(0,-2)))&&!e.includes(`..`)&&e.endsWith(`/**`))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`rule`,rule:s}}}let c=T6t(i,a);if(!c.safe){let e=c6t(i),t=e?[{type:`addRules`,rules:[{toolName:fc,ruleContent:e.pattern}],behavior:`allow`,destination:`session`}]:A5(i,`write`,n,a),r=c;return{behavior:`ask`,message:r.message,suggestions:t,decisionReason:{type:`safetyCheck`,reason:r.message,classifierApprovable:r.classifierApprovable}}}for(let e of a){let t=D5(e,n,`edit`,`ask`);if(t)return{behavior:`ask`,message:`Claude requested permissions to write to ${i}, but you haven't granted it yet.`,decisionReason:{type:`rule`,rule:t}}}let l=T5(i,n,a);if(n.mode===`acceptEdits`&&l)return{behavior:`allow`,updatedInput:t,decisionReason:{type:`mode`,mode:n.mode}};let u=D5(i,n,`edit`,`allow`);return u?{behavior:`allow`,updatedInput:t,decisionReason:{type:`rule`,rule:u}}:{behavior:`ask`,message:`Claude requested permissions to write to ${i}, but you haven't granted it yet.`,suggestions:A5(i,`write`,n,a),decisionReason:l?void 0:{type:`workingDir`,reason:`Path is outside allowed working directories`}}}function A5(e,t,n,r){let i=!T5(e,n,r);if(t===`read`&&i)return Ra(Zo(e)).map(e=>zy(e,`session`)).filter(e=>e!==void 0);let a=n.mode===`default`||n.mode===`plan`;if(t===`write`||t===`create`){let t=a?[{type:`setMode`,mode:`acceptEdits`,destination:`session`}]:[];if(i){let n=Ra(Zo(e));t.push({type:`addDirectories`,directories:n,destination:`session`})}return t}return a?[{type:`setMode`,mode:`acceptEdits`,destination:`session`}]:[]}function N6t(e,t){let n=ku(e);if(m6t(n))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Plan files for current session are allowed for writing`}};if(S6t(n))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Scratchpad files for current session are allowed for writing`}};{let n=process.env.CLAUDE_JOB_DIR;if(n){let r=Y(_(),`jobs`),i=Ra(n).map(ku),a=Ra(r).map(ku);if(i.every(e=>a.some(t=>e.startsWith(t+Pu)))&&Ra(e).every(e=>{let t=ku(e);return i.some(e=>t===e||t.startsWith(e+Pu))}))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Job directory files for current job are allowed for writing`}}}}return o6t(n)?{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Agent memory files are allowed for writing`}}:!Tae()&&Hi(n)?{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`auto memory files are allowed for writing`}}:x5(n)===x5(Y(fn(),`.claude`,`launch.json`))?{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Preview launch config is allowed for writing`}}:{behavior:`passthrough`,message:``}}function P6t(e,t){let n=ku(e);if(_6t(n))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Session memory files are allowed for reading`}};if(v6t(n))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Project directory files are allowed for reading`}};if(m6t(n))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Plan files for current session are allowed for reading`}};let r=wE(),i=r.endsWith(Pu)?r:r+Pu;if(n===r||n.startsWith(i))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Tool result files are allowed for reading`}};if(S6t(n))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Scratchpad files for current session are allowed for reading`}};let a=b6t();if(n.startsWith(a))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Project temp directory files are allowed for reading`}};if(o6t(n))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Agent memory files are allowed for reading`}};if(Hi(n))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`auto memory files are allowed for reading`}};let o=Y(_(),`tasks`)+Pu;if(n===o.slice(0,-1)||n.startsWith(o))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Task files are allowed for reading`}};let s=Y(_(),`teams`)+Pu;if(n===s.slice(0,-1)||n.startsWith(s))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Team files are allowed for reading`}};let c=R6t()+Pu;return n.startsWith(c)?{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Bundled skill reference files are allowed for reading`}}:{behavior:`passthrough`,message:``}}var F6t,I6t,L6t,j5,M5,R6t,z6t,N5=n((()=>{F6t=r(he(),1),l(),Xr(),b5(),Ic(),tn(),wr(),tl(),Wa(),y(),Fa(),Jo(),_N(),Po(),h5(),Li(),Gi(),Zm(),IE(),Bo(),By(),P9(),I6t=[`.gitconfig`,`.gitmodules`,`.bashrc`,`.bash_profile`,`.zshrc`,`.zprofile`,`.profile`,`.ripgreprc`,`.mcp.json`,`.claude.json`],L6t=[`.git`,`.vscode`,`.idea`,`.claude`],j5=ju.sep,M5=c(function(){let e=process.env.CLAUDE_CODE_TMPDIR||(No()===`windows`?Cu():`/tmp`),t=za(),n=e;try{n=t.realpathSync(e)}catch{}return Y(n,y6t())+Pu}),R6t=c(function(){let e=ad(16).toString(`hex`);return Y(M5(),`bundled-skills`,`2.6.11`,e)}),z6t=c(Ra)})),B6t=i({DiskTaskOutput:()=>Q5,MAX_TASK_OUTPUT_BYTES:()=>V5,MAX_TASK_OUTPUT_BYTES_DISPLAY:()=>`5GB`,_clearOutputsForTest:()=>q6t,_resetTaskOutputDirForTest:()=>V6t,appendTaskOutput:()=>Y6t,cleanupTaskOutput:()=>$6t,evictTaskOutput:()=>L5,flushTaskOutput:()=>X6t,getTaskOutput:()=>R5,getTaskOutputDelta:()=>Z6t,getTaskOutputDir:()=>P5,getTaskOutputPath:()=>F5,getTaskOutputSize:()=>Q6t,initTaskOutput:()=>z5,initTaskOutputAsSymlink:()=>B5});function P5(){return H5===void 0&&(H5=Y(b6t(),Ft(),`tasks`)),H5}function V6t(){H5=void 0}async function H6t(){await pd(P5(),{recursive:!0})}function F5(e){return Y(P5(),`${e}.output`)}function I5(e){return U5.add(e),e.finally(()=>U5.delete(e)).catch(()=>{}),e}async function U6t(){for(;;){try{for(A(G5,this)||(await H6t(),j(G5,this,await md(A(W5,this),process.platform===`win32`?`a`:Vu.O_WRONLY|Vu.O_APPEND|Vu.O_CREAT|e8t)));await te(Z5,this,W6t).call(this),A(K5,this).length!==0;);}finally{if(A(G5,this)){let e=A(G5,this);j(G5,this,null),await e.close()}}if(!A(K5,this).length)break}}function W6t(){return A(G5,this).appendFile(te(Z5,this,G6t).call(this))}function G6t(){let e=A(K5,this).splice(0,A(K5,this).length),t=0;for(let n of e)t+=Buffer.byteLength(n,`utf8`);let n=Buffer.allocUnsafe(t),r=0;for(let t of e)r+=n.write(t,r,`utf8`);return n}async function K6t(){try{await te(Z5,this,U6t).call(this)}catch(e){if(q(e),A(K5,this).length>0)try{await te(Z5,this,U6t).call(this)}catch(e){q(e)}}finally{let e=A(X5,this);j(Y5,this,null),j(X5,this,null),e()}}async function q6t(){for(let e of $5.values())e.cancel();for(;U5.size>0;)await Promise.allSettled([...U5]);$5.clear()}function J6t(e){let t=$5.get(e);return t||(t=new Q5(e),$5.set(e,t)),t}function Y6t(e,t){J6t(e).append(t)}async function X6t(e){let t=$5.get(e);t&&await t.flush()}function L5(e){return I5((async()=>{let t=$5.get(e);t&&(await t.flush(),$5.delete(e))})())}async function Z6t(e,t,n=t8t){try{let r=await tse(F5(e),t,n);return r?{content:r.content,newOffset:t+r.bytesRead}:{content:``,newOffset:t}}catch(e){return Ea(e)===`ENOENT`||q(e),{content:``,newOffset:t}}}async function R5(e,t=t8t){try{let{content:n,bytesTotal:r,bytesRead:i}=await Na(F5(e),t);return r>i?`[${Math.round((r-i)/1024)}KB of earlier output omitted]\n${n}`:n}catch(e){return Ea(e)===`ENOENT`||q(e),``}}async function Q6t(e){try{return(await xd(F5(e))).size}catch(e){return Ea(e)===`ENOENT`||q(e),0}}async function $6t(e){let t=$5.get(e);t&&(t.cancel(),$5.delete(e));try{await Cd(F5(e))}catch(e){if(Ea(e)===`ENOENT`)return;q(e)}}function z5(e){return I5((async()=>{await H6t();let t=F5(e);return await(await md(t,process.platform===`win32`?`wx`:Vu.O_WRONLY|Vu.O_CREAT|Vu.O_EXCL|e8t)).close(),t})())}function B5(e,t){return I5((async()=>{try{await H6t();let n=F5(e);try{await Sd(t,n)}catch{await Cd(n),await Sd(t,n)}return n}catch(t){return q(t),z5(e)}})())}var e8t,t8t,V5,H5,U5,W5,G5,K5,q5,J5,Y5,X5,Z5,Q5,$5,e7=n((()=>{tn(),ka(),Fa(),Ao(),N5(),ce(),ne(),ae(),re(),oe(),e8t=Vu.O_NOFOLLOW??0,t8t=8*1024*1024,V5=5*1024*1024*1024,U5=new Set,W5=new WeakMap,G5=new WeakMap,K5=new WeakMap,q5=new WeakMap,J5=new WeakMap,Y5=new WeakMap,X5=new WeakMap,Z5=new WeakSet,Q5=class{constructor(e){ie(this,Z5),se(this,W5,void 0),se(this,G5,null),se(this,K5,[]),se(this,q5,0),se(this,J5,!1),se(this,Y5,null),se(this,X5,null),j(W5,this,F5(e))}append(e){A(J5,this)||(j(q5,this,A(q5,this)+e.length),A(q5,this)>5368709120?(j(J5,this,!0),A(K5,this).push(`
|
|
4381
4381
|
[output truncated: exceeded 5GB disk cap]
|
|
4382
4382
|
`)):A(K5,this).push(e),A(Y5,this)||(j(Y5,this,new Promise(e=>{j(X5,this,e)})),I5(te(Z5,this,K6t).call(this))))}flush(){return A(Y5,this)??Promise.resolve()}cancel(){A(K5,this).length=0}},$5=new Map}));function t7(e){return e===`completed`||e===`failed`||e===`killed`}function n8t(e){return r8t[e]??`x`}function n7(e){let t=n8t(e),n=ad(8),r=t;for(let e=0;e<8;e++)r+=i8t[n[e]%36];return r}function r7(e,t,n,r){return{id:e,type:t,status:`pending`,description:n,toolUseId:r,startTime:Date.now(),outputFile:F5(e),outputOffset:0,notified:!1}}var r8t,i8t,i7=n((()=>{e7(),r8t={local_bash:`b`,local_agent:`a`,remote_agent:`r`,in_process_teammate:`t`,local_workflow:`w`,monitor_mcp:`m`,dream:`d`},i8t=`0123456789abcdefghijklmnopqrstuvwxyz`}));function a8t(e,t){return t?`${e} ${t}`:e}function o8t(e){let t=typeof e==`string`?e:e.toString();A(l7,this)?A(c7,this).writeStderr(t):A(c7,this).writeStdout(t)}function s8t(e){A(C7,e)&&A(x7,e)?A(x7,e).call(e,e.background.bind(e)):te(D7,e,_8t).call(e,S8t)}function c8t(){A(b7,this).reason!==`interrupt`&&this.kill()}function l8t(e,t){let n=e??(t===`SIGTERM`?144:1);te(D7,this,d8t).call(this,n)}function u8t(){te(D7,this,d8t).call(this,1)}function d8t(e){A(T7,this)&&(A(T7,this).call(this,e),j(T7,this,null))}function f8t(){te(D7,this,p8t).call(this);let e=A(g7,this);e&&(clearTimeout(e),j(g7,this,null));let t=A(E7,this);t&&(A(b7,this).removeEventListener(`abort`,t),j(E7,this,null))}function p8t(){A(_7,this)&&(clearInterval(A(_7,this)),j(_7,this,null))}function m8t(){j(_7,this,setInterval(()=>{xd(this.taskOutput.path).then(e=>{e.size>A(y7,this)&&A(d7,this)===`backgrounded`&&A(_7,this)!==null&&(j(v7,this,!0),te(D7,this,p8t).call(this),te(D7,this,_8t).call(this,a7))},()=>{})},C8t)),A(_7,this).unref()}function h8t(){j(E7,this,te(D7,this,c8t).bind(this)),A(b7,this).addEventListener(`abort`,A(E7,this),{once:!0}),A(h7,this).once(`exit`,te(D7,this,l8t).bind(this)),A(h7,this).once(`error`,te(D7,this,u8t).bind(this)),j(g7,this,setTimeout(s8t,A(S7,this),this));let e=new Promise(e=>{j(T7,this,e)});return new Promise(t=>{j(w7,this,t),e.then(te(D7,this,g8t).bind(this))})}async function g8t(e){te(D7,this,f8t).call(this),(A(d7,this)===`running`||A(d7,this)===`backgrounded`)&&j(d7,this,`completed`);let t={code:e,stdout:await this.taskOutput.getStdout(),stderr:this.taskOutput.getStderr(),interrupted:e===a7,backgroundTaskId:A(f7,this)};this.taskOutput.stdoutToFile&&!A(f7,this)&&(this.taskOutput.outputFileRedundant?this.taskOutput.deleteOutputFile():(t.outputFilePath=this.taskOutput.path,t.outputFileSize=this.taskOutput.outputFileSize,t.outputTaskId=this.taskOutput.taskId)),A(v7,this)?t.stderr=a8t(`Background command killed: output file exceeded 5GB`,t.stderr):e===S8t&&(t.stderr=a8t(`Command timed out after ${Ds(A(S7,this))}`,t.stderr));let n=A(w7,this);n&&(j(w7,this,null),n(t))}function _8t(e){j(d7,this,`killed`),A(h7,this).pid&&(0,x8t.default)(A(h7,this).pid,`SIGKILL`),te(D7,this,d8t).call(this,e??a7)}function v8t(e,t,n,r,i=!1,a=V5){return new E8t(e,t,n,r,i,a)}function y8t(e,t){return new D8t({backgroundTaskId:e,...t})}function b8t(e){let t=new EH(n7(`local_bash`),null);return{status:`completed`,result:Promise.resolve({code:1,stdout:``,stderr:e,interrupted:!1,preSpawnError:e}),taskOutput:t,background(){return!1},kill(){},cleanup(){}}}var x8t,a7,S8t,C8t,o7,s7,c7,l7,u7,w8t,T8t,d7,f7,p7,m7,h7,g7,_7,v7,y7,b7,x7,S7,C7,w7,T7,E7,D7,E8t,D8t,O8t=n((()=>{x8t=r(Qhe(),1),i7(),Ns(),e7(),AH(),ce(),ne(),oe(),ae(),re(),O(),a7=137,S8t=143,C8t=5e3,o7=new WeakMap,s7=new WeakMap,c7=new WeakMap,l7=new WeakMap,u7=new WeakMap,w8t=new WeakSet,T8t=class{constructor(e,t,n){ie(this,w8t),se(this,o7,void 0),se(this,s7,!1),se(this,c7,void 0),se(this,l7,void 0),se(this,u7,te(w8t,this,o8t).bind(this)),j(o7,this,e),j(c7,this,t),j(l7,this,n),e.setEncoding(`utf-8`),e.on(`data`,A(u7,this))}cleanup(){A(s7,this)||(j(s7,this,!0),A(o7,this).removeListener(`data`,A(u7,this)),j(o7,this,null),j(c7,this,null),j(u7,this,()=>{}))}},d7=new WeakMap,f7=new WeakMap,p7=new WeakMap,m7=new WeakMap,h7=new WeakMap,g7=new WeakMap,_7=new WeakMap,v7=new WeakMap,y7=new WeakMap,b7=new WeakMap,x7=new WeakMap,S7=new WeakMap,C7=new WeakMap,w7=new WeakMap,T7=new WeakMap,E7=new WeakMap,D7=new WeakSet,E8t=class{constructor(e,t,n,r,i=!1,a=V5){ie(this,D7),se(this,d7,`running`),se(this,f7,void 0),se(this,p7,void 0),se(this,m7,void 0),se(this,h7,void 0),se(this,g7,null),se(this,_7,null),se(this,v7,!1),se(this,y7,void 0),se(this,b7,void 0),se(this,x7,void 0),se(this,S7,void 0),se(this,C7,void 0),se(this,w7,null),se(this,T7,null),se(this,E7,null),k(this,`taskOutput`,void 0),k(this,`result`,void 0),k(this,`onTimeout`,void 0),j(h7,this,e),j(b7,this,t),j(S7,this,n),j(C7,this,i),j(y7,this,a),this.taskOutput=r,j(m7,this,e.stderr?new T8t(e.stderr,r,!0):null),j(p7,this,e.stdout?new T8t(e.stdout,r,!1):null),i&&(this.onTimeout=e=>{j(x7,this,e)}),this.result=te(D7,this,h8t).call(this)}get status(){return A(d7,this)}kill(){te(D7,this,_8t).call(this)}background(e){return A(d7,this)===`running`?(j(f7,this,e),j(d7,this,`backgrounded`),te(D7,this,f8t).call(this),this.taskOutput.stdoutToFile?te(D7,this,m8t).call(this):this.taskOutput.spillToDisk(),!0):!1}cleanup(){A(p7,this)?.cleanup(),A(m7,this)?.cleanup(),this.taskOutput.clear(),te(D7,this,f8t).call(this),j(h7,this,null),j(b7,this,null),j(x7,this,void 0)}},D8t=class{constructor(e){k(this,`status`,`killed`),k(this,`result`,void 0),k(this,`taskOutput`,void 0),this.taskOutput=new EH(n7(`local_bash`),null),this.result=Promise.resolve({code:e?.code??145,stdout:``,stderr:e?.stderr??`Command aborted before execution`,interrupted:!0,backgroundTaskId:e?.backgroundTaskId})}background(){return!1}kill(){}cleanup(){}}}));function O7(e){return!(`async`in e&&e.async===!0)}function k7(e){return`async`in e&&e.async===!0}var k8t,A8t,A7,j8t=n((()=>{it(),Fs(),qjt(),wY(),k8t=J(()=>L({prompt:F(),message:F(),options:Re(L({key:F(),label:F(),description:F().optional()}))})),A8t=J(()=>L({continue:We().describe(`Whether Claude should continue after hook (default: true)`).optional(),suppressOutput:We().describe(`Hide stdout from transcript (default: false)`).optional(),stopReason:F().describe(`Message shown when continue is false`).optional(),decision:Ge([`approve`,`block`]).optional(),reason:F().describe(`Explanation for the decision`).optional(),systemMessage:F().describe(`Warning message shown to the user`).optional(),hookSpecificOutput:Be([L({hookEventName:I(`PreToolUse`),permissionDecision:bY().optional(),permissionDecisionReason:F().optional(),updatedInput:Fe(F(),ze()).optional(),additionalContext:F().optional()}),L({hookEventName:I(`UserPromptSubmit`),additionalContext:F().optional()}),L({hookEventName:I(`SessionStart`),additionalContext:F().optional(),initialUserMessage:F().optional(),watchPaths:Re(F()).describe(`Absolute paths to watch for FileChanged hooks`).optional()}),L({hookEventName:I(`Setup`),additionalContext:F().optional()}),L({hookEventName:I(`SubagentStart`),additionalContext:F().optional()}),L({hookEventName:I(`PostToolUse`),additionalContext:F().optional(),updatedMCPToolOutput:ze().describe(`Updates the output for MCP tools`).optional()}),L({hookEventName:I(`PostToolUseFailure`),additionalContext:F().optional()}),L({hookEventName:I(`PermissionDenied`),retry:We().optional()}),L({hookEventName:I(`Notification`),additionalContext:F().optional()}),L({hookEventName:I(`PermissionRequest`),decision:Be([L({behavior:I(`allow`),updatedInput:Fe(F(),ze()).optional(),updatedPermissions:Re(CY()).optional()}),L({behavior:I(`deny`),message:F().optional(),interrupt:We().optional()})])}),L({hookEventName:I(`Elicitation`),action:Ge([`accept`,`decline`,`cancel`]).optional(),content:Fe(F(),ze()).optional()}),L({hookEventName:I(`ElicitationResult`),action:Ge([`accept`,`decline`,`cancel`]).optional(),content:Fe(F(),ze()).optional()}),L({hookEventName:I(`CwdChanged`),watchPaths:Re(F()).describe(`Absolute paths to watch for FileChanged hooks`).optional()}),L({hookEventName:I(`FileChanged`),watchPaths:Re(F()).describe(`Absolute paths to watch for FileChanged hooks`).optional()}),L({hookEventName:I(`WorktreeCreate`),worktreePath:F()})]).optional()})),A7=J(()=>Be([L({async:I(!0),asyncTimeout:P().optional()}),A8t()]))}));function j7(e,t){let{signalB:n,timeoutMs:r}=t??{},i=iy();if(e?.aborted||n?.aborted)return i.abort(),{signal:i.signal,cleanup:()=>{}};let a,o=()=>{a!==void 0&&clearTimeout(a),i.abort()};return r!==void 0&&(a=setTimeout(o,r),a.unref?.()),e?.addEventListener(`abort`,o),n?.addEventListener(`abort`,o),{signal:i.signal,cleanup:()=>{a!==void 0&&clearTimeout(a),e?.removeEventListener(`abort`,o),n?.removeEventListener(`abort`,o)}}}var M7=n((()=>{oy()}));function M8t(e,t){return YV(e,t)}function N8t(){return{...kle,inputSchema:N7(),inputJSONSchema:{type:`object`,properties:{ok:{type:`boolean`,description:`Whether the condition was met`},reason:{type:`string`,description:`Reason, if the condition was not met`}},required:[`ok`],additionalProperties:!1},async prompt(){return`Use this tool to return your verification result. You MUST call this tool exactly once at the end of your response.`}}}function P8t(e,t){m9e(e,t,`Stop`,``,e=>MYt(e,Nc),`You MUST call the ${Nc} tool to complete this request. Call this tool now.`,{timeout:5e3})}var N7,F8t=n((()=>{it(),Qc(),XV(),Fs(),i3(),AP(),N7=J(()=>L({ok:We().describe(`Whether the condition was met`),reason:F().describe(`Reason, if the condition was not met`).optional()}))}));async function I8t(e,t,n,r,i,a,o,s){let c=s||`hook-${od()}`;try{let s=M8t(e.prompt,r);U(`Hooks: Processing prompt hook with prompt: ${s}`);let l=d4({content:s}),u=o&&o.length>0?[...o,l]:[l];U(`Hooks: Querying model with ${u.length} messages`);let{signal:d,cleanup:f}=j7(i,{timeoutMs:e.timeout?e.timeout*1e3:3e4});try{let r=await c9({messages:u,systemPrompt:Sl([`You are evaluating a hook in Claude Code.
|
|
4383
4383
|
|
|
@@ -4390,7 +4390,7 @@ Use as few steps as possible - be efficient and direct.
|
|
|
4390
4390
|
|
|
4391
4391
|
When done, return your result using the ${Nc} tool with:
|
|
4392
4392
|
- ok: true if the condition is met
|
|
4393
|
-
- ok: false with reason if the condition is not met`]),f=e.model??rr(),_=Hx(`hook-agent-${od()}`),v={...a,agentId:_,abortController:p,options:{...a.options,tools:i,mainLoopModel:f,isNonInteractiveSession:!0,thinkingConfig:{type:`disabled`}},setInProgressToolUseIDs:()=>{},getAppState(){let e=a.getAppState(),t=e.toolPermissionContext.alwaysAllowRules.session??[];return{...e,toolPermissionContext:{...e.toolPermissionContext,mode:`dontAsk`,alwaysAllowRules:{...e.toolPermissionContext.alwaysAllowRules,session:[...t,`Read(/${u})`]}}}}};P8t(a.setAppState,_);let y=null,b=0,x=!1;for await(let e of m$({messages:s,systemPrompt:o,userContext:{},systemContext:{},canUseTool:N9,toolUseContext:v,querySource:`hook_agent`}))if(oYt(e,()=>{},e=>a.setResponseLength(t=>t+e.length),a.setStreamMode??(()=>{}),()=>{}),!(e.type===`stream_event`||e.type===`stream_request_start`)){if(e.type===`assistant`&&(b++,b>=50)){x=!0,U(`Hooks: Agent turn ${b} hit max turns, aborting`),p.abort();break}if(e.type===`attachment`&&e.attachment.type===`structured_output`){let t=N7().safeParse(e.attachment.data);if(t.success){y=t.data,U(`Hooks: Got structured output: ${V(y)}`),p.abort();break}}}return m.removeEventListener(`abort`,g),h(),kP(a.setAppState,_),y?y.ok?(U(`Hooks: Agent hook condition was met`),G(`tengu_agent_stop_hook_success`,{durationMs:Date.now()-d,turnCount:b,agentName:c}),{hook:e,outcome:`success`,message:u0({type:`hook_success`,hookName:t,toolUseID:l,hookEvent:n,content:``})}):(U(`Hooks: Agent hook condition was not met: ${y.reason}`),{hook:e,outcome:`blocking`,blockingError:{blockingError:`Agent hook condition was not met: ${y.reason}`,command:e.prompt}}):x?(U(`Hooks: Agent hook did not complete within 50 turns`),G(`tengu_agent_stop_hook_max_turns`,{durationMs:Date.now()-d,turnCount:b,agentName:c}),{hook:e,outcome:`cancelled`}):(U(`Hooks: Agent hook did not return structured output`),G(`tengu_agent_stop_hook_error`,{durationMs:Date.now()-d,turnCount:b,errorType:1,agentName:c}),{hook:e,outcome:`cancelled`})}catch(t){if(m.removeEventListener(`abort`,g),h(),_.aborted)return{hook:e,outcome:`cancelled`};throw t}}catch(r){let i=H(r);return U(`Hooks: Agent hook error: ${i}`),G(`tengu_agent_stop_hook_error`,{durationMs:Date.now()-d,errorType:2,agentName:c}),{hook:e,outcome:`non_blocking_error`,message:u0({type:`hook_non_blocking_error`,hookName:t,toolUseID:l,hookEvent:n,stderr:`Error executing agent hook: ${i}`,stdout:``,exitCode:1})}}}var z8t=n((()=>{y$(),Ua(),Sc(),Qc(),VX(),Ux(),oy(),w0(),M7(),W(),ka(),i3(),hr(),P9(),h5(),Va(),z_(),F8t(),AP()}));function B8t(e){let t=yme(e);return t===4?V8t(e):t===6?H8t(e):!1}function V8t(e){let t=e.split(`.`).map(Number),[n,r]=t;return t.length!==4||n===void 0||r===void 0||t.some(e=>Number.isNaN(e))||n===127?!1:n===0||n===10||n===169&&r===254||n===172&&r>=16&&r<=31||n===100&&r>=64&&r<=127||n===192&&r===168}function H8t(e){let t=e.toLowerCase();if(t===`::1`)return!1;if(t===`::`)return!0;let n=W8t(t);if(n!==null)return V8t(n);if(t.startsWith(`fc`)||t.startsWith(`fd`))return!0;let r=t.split(`:`)[0];return!!(r&&r.length===4&&r>=`fe80`&&r<=`febf`)}function U8t(e){let t=[];if(e.includes(`.`)){let n=e.lastIndexOf(`:`),r=e.slice(n+1);e=e.slice(0,n);let i=r.split(`.`).map(Number);if(i.length!==4||i.some(e=>!Number.isInteger(e)||e<0||e>255))return null;t=[i[0]<<8|i[1],i[2]<<8|i[3]]}let n=e.indexOf(`::`),r,i;if(n===-1)r=e.split(`:`),i=[];else{let t=e.slice(0,n),a=e.slice(n+2);r=t===``?[]:t.split(`:`),i=a===``?[]:a.split(`:`)}let a=8-t.length-r.length-i.length;if(a<0)return null;let o=[...r,...Array(a).fill(`0`),...i].map(e=>parseInt(e,16));return o.some(e=>Number.isNaN(e)||e<0||e>65535)?null:(o.push(...t),o.length===8?o:null)}function W8t(e){let t=U8t(e);if(!t)return null;if(t[0]===0&&t[1]===0&&t[2]===0&&t[3]===0&&t[4]===0&&t[5]===65535){let e=t[6],n=t[7];return`${e>>8}.${e&255}.${n>>8}.${n&255}`}return null}function G8t(e,t,n){let r=`all`in t&&t.all===!0,i=yme(e);if(i!==0){if(B8t(e)){n(K8t(e,e),``);return}let t=i===6?6:4;r?n(null,[{address:e,family:t}]):n(null,e,t);return}Dme(e,{all:!0},(t,i)=>{if(t){n(t,``);return}for(let{address:t}of i)if(B8t(t)){n(K8t(e,t),``);return}let a=i[0];if(!a){n(Object.assign(Error(`ENOTFOUND ${e}`),{code:`ENOTFOUND`,hostname:e}),``);return}let o=a.family===6?6:4;r?n(null,i.map(e=>({address:e.address,family:e.family===6?6:4}))):n(null,a.address,o)})}function K8t(e,t){let n=Error(`HTTP hook blocked: ${e} resolves to ${t} (private/link-local address). Loopback (127.0.0.1, ::1) is allowed for local dev.`);return Object.assign(n,{code:`ERR_HTTP_HOOK_BLOCKED_ADDRESS`,hostname:e,address:t})}var q8t=n((()=>{}));async function J8t(){let{SandboxManager:e}=await import(`./sandbox-adapter-
|
|
4393
|
+
- ok: false with reason if the condition is not met`]),f=e.model??rr(),_=Hx(`hook-agent-${od()}`),v={...a,agentId:_,abortController:p,options:{...a.options,tools:i,mainLoopModel:f,isNonInteractiveSession:!0,thinkingConfig:{type:`disabled`}},setInProgressToolUseIDs:()=>{},getAppState(){let e=a.getAppState(),t=e.toolPermissionContext.alwaysAllowRules.session??[];return{...e,toolPermissionContext:{...e.toolPermissionContext,mode:`dontAsk`,alwaysAllowRules:{...e.toolPermissionContext.alwaysAllowRules,session:[...t,`Read(/${u})`]}}}}};P8t(a.setAppState,_);let y=null,b=0,x=!1;for await(let e of m$({messages:s,systemPrompt:o,userContext:{},systemContext:{},canUseTool:N9,toolUseContext:v,querySource:`hook_agent`}))if(oYt(e,()=>{},e=>a.setResponseLength(t=>t+e.length),a.setStreamMode??(()=>{}),()=>{}),!(e.type===`stream_event`||e.type===`stream_request_start`)){if(e.type===`assistant`&&(b++,b>=50)){x=!0,U(`Hooks: Agent turn ${b} hit max turns, aborting`),p.abort();break}if(e.type===`attachment`&&e.attachment.type===`structured_output`){let t=N7().safeParse(e.attachment.data);if(t.success){y=t.data,U(`Hooks: Got structured output: ${V(y)}`),p.abort();break}}}return m.removeEventListener(`abort`,g),h(),kP(a.setAppState,_),y?y.ok?(U(`Hooks: Agent hook condition was met`),G(`tengu_agent_stop_hook_success`,{durationMs:Date.now()-d,turnCount:b,agentName:c}),{hook:e,outcome:`success`,message:u0({type:`hook_success`,hookName:t,toolUseID:l,hookEvent:n,content:``})}):(U(`Hooks: Agent hook condition was not met: ${y.reason}`),{hook:e,outcome:`blocking`,blockingError:{blockingError:`Agent hook condition was not met: ${y.reason}`,command:e.prompt}}):x?(U(`Hooks: Agent hook did not complete within 50 turns`),G(`tengu_agent_stop_hook_max_turns`,{durationMs:Date.now()-d,turnCount:b,agentName:c}),{hook:e,outcome:`cancelled`}):(U(`Hooks: Agent hook did not return structured output`),G(`tengu_agent_stop_hook_error`,{durationMs:Date.now()-d,turnCount:b,errorType:1,agentName:c}),{hook:e,outcome:`cancelled`})}catch(t){if(m.removeEventListener(`abort`,g),h(),_.aborted)return{hook:e,outcome:`cancelled`};throw t}}catch(r){let i=H(r);return U(`Hooks: Agent hook error: ${i}`),G(`tengu_agent_stop_hook_error`,{durationMs:Date.now()-d,errorType:2,agentName:c}),{hook:e,outcome:`non_blocking_error`,message:u0({type:`hook_non_blocking_error`,hookName:t,toolUseID:l,hookEvent:n,stderr:`Error executing agent hook: ${i}`,stdout:``,exitCode:1})}}}var z8t=n((()=>{y$(),Ua(),Sc(),Qc(),VX(),Ux(),oy(),w0(),M7(),W(),ka(),i3(),hr(),P9(),h5(),Va(),z_(),F8t(),AP()}));function B8t(e){let t=yme(e);return t===4?V8t(e):t===6?H8t(e):!1}function V8t(e){let t=e.split(`.`).map(Number),[n,r]=t;return t.length!==4||n===void 0||r===void 0||t.some(e=>Number.isNaN(e))||n===127?!1:n===0||n===10||n===169&&r===254||n===172&&r>=16&&r<=31||n===100&&r>=64&&r<=127||n===192&&r===168}function H8t(e){let t=e.toLowerCase();if(t===`::1`)return!1;if(t===`::`)return!0;let n=W8t(t);if(n!==null)return V8t(n);if(t.startsWith(`fc`)||t.startsWith(`fd`))return!0;let r=t.split(`:`)[0];return!!(r&&r.length===4&&r>=`fe80`&&r<=`febf`)}function U8t(e){let t=[];if(e.includes(`.`)){let n=e.lastIndexOf(`:`),r=e.slice(n+1);e=e.slice(0,n);let i=r.split(`.`).map(Number);if(i.length!==4||i.some(e=>!Number.isInteger(e)||e<0||e>255))return null;t=[i[0]<<8|i[1],i[2]<<8|i[3]]}let n=e.indexOf(`::`),r,i;if(n===-1)r=e.split(`:`),i=[];else{let t=e.slice(0,n),a=e.slice(n+2);r=t===``?[]:t.split(`:`),i=a===``?[]:a.split(`:`)}let a=8-t.length-r.length-i.length;if(a<0)return null;let o=[...r,...Array(a).fill(`0`),...i].map(e=>parseInt(e,16));return o.some(e=>Number.isNaN(e)||e<0||e>65535)?null:(o.push(...t),o.length===8?o:null)}function W8t(e){let t=U8t(e);if(!t)return null;if(t[0]===0&&t[1]===0&&t[2]===0&&t[3]===0&&t[4]===0&&t[5]===65535){let e=t[6],n=t[7];return`${e>>8}.${e&255}.${n>>8}.${n&255}`}return null}function G8t(e,t,n){let r=`all`in t&&t.all===!0,i=yme(e);if(i!==0){if(B8t(e)){n(K8t(e,e),``);return}let t=i===6?6:4;r?n(null,[{address:e,family:t}]):n(null,e,t);return}Dme(e,{all:!0},(t,i)=>{if(t){n(t,``);return}for(let{address:t}of i)if(B8t(t)){n(K8t(e,t),``);return}let a=i[0];if(!a){n(Object.assign(Error(`ENOTFOUND ${e}`),{code:`ENOTFOUND`,hostname:e}),``);return}let o=a.family===6?6:4;r?n(null,i.map(e=>({address:e.address,family:e.family===6?6:4}))):n(null,a.address,o)})}function K8t(e,t){let n=Error(`HTTP hook blocked: ${e} resolves to ${t} (private/link-local address). Loopback (127.0.0.1, ::1) is allowed for local dev.`);return Object.assign(n,{code:`ERR_HTTP_HOOK_BLOCKED_ADDRESS`,hostname:e,address:t})}var q8t=n((()=>{}));async function J8t(){let{SandboxManager:e}=await import(`./sandbox-adapter-BbrJOJNZ.js`);if(!e.isSandboxingEnabled())return;await e.waitForNetworkInitialization();let t=e.getProxyPort();if(t)return{host:`127.0.0.1`,port:t,protocol:`http`}}function Y8t(){let e=Qn();return{allowedUrls:e.allowedHttpHookUrls,allowedEnvVars:e.httpHookAllowedEnvVars}}function X8t(e,t){let n=t.replace(/[.+?^${}()|[\]\\]/g,`\\$&`).replace(/\*/g,`.*`);return RegExp(`^${n}$`).test(e)}function Z8t(e){return e.replace(/[\r\n\x00]/g,``)}function Q8t(e,t){return Z8t(e.replace(/\$\{([A-Z_][A-Z0-9_]*)\}|\$([A-Z_][A-Z0-9_]*)/g,(e,n,r)=>{let i=n??r;return t.has(i)?process.env[i]??``:(U(`Hooks: env var $${i} not in allowedEnvVars, skipping interpolation`,{level:`warn`}),``)}))}async function $8t(e,t,n,r){let i=Y8t();if(i.allowedUrls!==void 0&&!i.allowedUrls.some(t=>X8t(e.url,t))){let t=`HTTP hook blocked: ${e.url} does not match any pattern in allowedHttpHookUrls`;return U(t,{level:`warn`}),{ok:!1,body:``,error:t}}let{signal:a,cleanup:o}=j7(r,{timeoutMs:e.timeout?e.timeout*1e3:e5t});try{let t={"Content-Type":`application/json`};if(e.headers){let n=e.allowedEnvVars??[],r=i.allowedEnvVars===void 0?n:n.filter(e=>i.allowedEnvVars.includes(e)),a=new Set(r);for(let[n,r]of Object.entries(e.headers))t[n]=Q8t(r,a)}let r=await J8t(),s=!r&&Nce()!==void 0&&!Ece(e.url);U(r?`Hooks: HTTP hook POST to ${e.url} (via sandbox proxy :${r.port})`:s?`Hooks: HTTP hook POST to ${e.url} (via env-var proxy)`:`Hooks: HTTP hook POST to ${e.url}`);let c=await Oe.post(e.url,n,{headers:t,signal:a,responseType:`text`,validateStatus:()=>!0,maxRedirects:0,proxy:r??!1,lookup:r||s?void 0:G8t});o();let l=c.data??``;return U(`Hooks: HTTP hook response status ${c.status}, body length ${l.length}`),{ok:c.status>=200&&c.status<300,statusCode:c.status,body:l}}catch(e){if(o(),a.aborted)return{ok:!1,body:``,aborted:!0};let t=H(e);return U(`Hooks: HTTP hook error: ${t}`,{level:`error`}),{ok:!1,body:``,error:t}}}var e5t,t5t=n((()=>{ke(),M7(),W(),ka(),Vs(),Gi(),q8t(),e5t=600*1e3}));function n5t(){let e=process.env.CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS,t=e?parseInt(e,10):NaN;return Number.isFinite(t)&&t>0?t:e7t}function r5t({processId:e,hookId:t,shellCommand:n,asyncResponse:r,hookEvent:i,hookName:a,command:o,asyncRewake:s,pluginId:c}){return s?(n.result.then(async e=>{await new Promise(e=>setImmediate(e));let r=await n.taskOutput.getStdout(),o=n.taskOutput.getStderr();n.cleanup(),Y1({hookId:t,hookName:a,hookEvent:i,output:r+o,stdout:r,stderr:o,exitCode:e.code,outcome:e.code===0?`success`:`error`}),e.code===2&&mv({value:M4(`Stop hook blocking error from command "${a}": ${o||r}`),mode:`task-notification`})}),!0):n.background(e)?(nWt({processId:e,hookId:t,asyncResponse:r,hookEvent:i,hookName:a,command:o,shellCommand:n,pluginId:c}),!0):!1}function P7(){return Kt()?!1:!yae()}function F7(e,t,n){let r=t??Ft(),i=n?.agentType??Pne();return{session_id:r,transcript_path:f8(r),cwd:Ga(),permission_mode:e,agent_id:n?.agentId,agent_type:i}}function i5t(e){let t=Da(e),n=A7().safeParse(t);return n.success?(U(`Successfully parsed and validated hook JSON output`),{json:n.data}):{validationError:`Hook JSON output validation failed:\n${n.error.issues.map(e=>` - ${e.path.join(`.`)}: ${e.message}`).join(`
|
|
4394
4394
|
`)}\n\nThe hook's output was: ${V(t,null,2)}`}}function a5t(e){let t=e.trim();if(!t.startsWith(`{`))return U(`Hook output does not start with {, treating as plain text`),{plainText:e};try{let n=i5t(t);if(`json`in n)return n;let r=`${n.validationError}\n\nExpected schema:\n${V({continue:`boolean (optional)`,suppressOutput:`boolean (optional)`,stopReason:`string (optional)`,decision:`"approve" | "block" (optional)`,reason:`string (optional)`,systemMessage:`string (optional)`,permissionDecision:`"allow" | "deny" | "ask" (optional)`,hookSpecificOutput:{"for PreToolUse":{hookEventName:`"PreToolUse"`,permissionDecision:`"allow" | "deny" | "ask" (optional)`,permissionDecisionReason:`string (optional)`,updatedInput:`object (optional) - Modified tool input to use`},"for UserPromptSubmit":{hookEventName:`"UserPromptSubmit"`,additionalContext:`string (required)`},"for PostToolUse":{hookEventName:`"PostToolUse"`,additionalContext:`string (optional)`}}},null,2)}`;return U(r),{plainText:e,validationError:r}}catch(t){return U(`Failed to parse hook output as JSON: ${t}`),{plainText:e}}}function o5t(e){let t=e.trim();if(t===``){let e=A7().safeParse({});if(e.success)return U(`HTTP hook returned empty body, treating as empty JSON object`),{json:e.data}}if(!t.startsWith(`{`)){let e=`HTTP hook must return JSON, but got non-JSON response body: ${t.length>200?t.slice(0,200)+`…`:t}`;return U(e),{validationError:e}}try{let e=i5t(t);return`json`in e||U(e.validationError),e}catch(e){let t=`HTTP hook must return valid JSON, but parsing failed: ${e}`;return U(t),{validationError:t}}}function s5t({json:e,command:t,hookName:n,toolUseID:r,hookEvent:i,expectedHookEvent:a,stdout:o,stderr:s,exitCode:c,durationMs:l}){let u={},d=e,f=d;if(f.continue===!1&&(u.preventContinuation=!0,f.stopReason&&(u.stopReason=f.stopReason)),d.decision)switch(d.decision){case`approve`:u.permissionBehavior=`allow`;break;case`block`:u.permissionBehavior=`deny`,u.blockingError={blockingError:d.reason||`Blocked by hook`,command:t};break;default:throw Error(`Unknown hook decision type: ${d.decision}. Valid types are: approve, block`)}if(d.systemMessage&&(u.systemMessage=d.systemMessage),d.hookSpecificOutput?.hookEventName===`PreToolUse`&&d.hookSpecificOutput.permissionDecision)switch(d.hookSpecificOutput.permissionDecision){case`allow`:u.permissionBehavior=`allow`;break;case`deny`:u.permissionBehavior=`deny`,u.blockingError={blockingError:d.reason||`Blocked by hook`,command:t};break;case`ask`:u.permissionBehavior=`ask`;break;default:throw Error(`Unknown hook permissionDecision type: ${d.hookSpecificOutput.permissionDecision}. Valid types are: allow, deny, ask`)}if(u.permissionBehavior!==void 0&&d.reason!==void 0&&(u.hookPermissionDecisionReason=d.reason),d.hookSpecificOutput){if(a&&d.hookSpecificOutput.hookEventName!==a)throw Error(`Hook returned incorrect event name: expected '${a}' but got '${d.hookSpecificOutput.hookEventName}'. Full stdout: ${V(d,null,2)}`);switch(d.hookSpecificOutput.hookEventName){case`PreToolUse`:if(d.hookSpecificOutput.permissionDecision)switch(d.hookSpecificOutput.permissionDecision){case`allow`:u.permissionBehavior=`allow`;break;case`deny`:u.permissionBehavior=`deny`,u.blockingError={blockingError:d.hookSpecificOutput.permissionDecisionReason||d.reason||`Blocked by hook`,command:t};break;case`ask`:u.permissionBehavior=`ask`;break}u.hookPermissionDecisionReason=d.hookSpecificOutput.permissionDecisionReason,d.hookSpecificOutput.updatedInput&&(u.updatedInput=d.hookSpecificOutput.updatedInput),u.additionalContext=d.hookSpecificOutput.additionalContext;break;case`UserPromptSubmit`:u.additionalContext=d.hookSpecificOutput.additionalContext;break;case`SessionStart`:u.additionalContext=d.hookSpecificOutput.additionalContext,u.initialUserMessage=d.hookSpecificOutput.initialUserMessage,`watchPaths`in d.hookSpecificOutput&&d.hookSpecificOutput.watchPaths&&(u.watchPaths=d.hookSpecificOutput.watchPaths);break;case`Setup`:u.additionalContext=d.hookSpecificOutput.additionalContext;break;case`SubagentStart`:u.additionalContext=d.hookSpecificOutput.additionalContext;break;case`PostToolUse`:u.additionalContext=d.hookSpecificOutput.additionalContext,d.hookSpecificOutput.updatedMCPToolOutput&&(u.updatedMCPToolOutput=d.hookSpecificOutput.updatedMCPToolOutput);break;case`PostToolUseFailure`:u.additionalContext=d.hookSpecificOutput.additionalContext;break;case`PermissionDenied`:u.retry=d.hookSpecificOutput.retry;break;case`PermissionRequest`:d.hookSpecificOutput.decision&&(u.permissionRequestResult=d.hookSpecificOutput.decision,u.permissionBehavior=d.hookSpecificOutput.decision.behavior===`allow`?`allow`:`deny`,d.hookSpecificOutput.decision.behavior===`allow`&&d.hookSpecificOutput.decision.updatedInput&&(u.updatedInput=d.hookSpecificOutput.decision.updatedInput));break;case`Elicitation`:d.hookSpecificOutput.action&&(u.elicitationResponse={action:d.hookSpecificOutput.action,content:d.hookSpecificOutput.content},d.hookSpecificOutput.action===`decline`&&(u.blockingError={blockingError:d.reason||`Elicitation denied by hook`,command:t}));break;case`ElicitationResult`:d.hookSpecificOutput.action&&(u.elicitationResultResponse={action:d.hookSpecificOutput.action,content:d.hookSpecificOutput.content},d.hookSpecificOutput.action===`decline`&&(u.blockingError={blockingError:d.reason||`Elicitation result blocked by hook`,command:t}));break}}return{...u,message:u.blockingError?u0({type:`hook_blocking_error`,hookName:n,toolUseID:r,hookEvent:i,blockingError:u.blockingError}):u0({type:`hook_success`,hookName:n,toolUseID:r,hookEvent:i,content:``,stdout:o,stderr:s,exitCode:c,command:t,durationMs:l})}}async function I7(e,t,n,r,i,a,o,s,c,l,u,d){let f=t===`SessionStart`||t===`Setup`||t===`SessionEnd`,p=Date.now(),m,h=!1,g=No()===`windows`,_=e.shell??`bash`,v=_===`powershell`,y=g&&!v?e=>zo(e):e=>e,b=hn(),x=e.command,S;if(s){if(!await Qr(s))throw Error(`Plugin directory does not exist: ${s}`+(c?` (${c} — run /plugin to reinstall)`:``));let e=y(s);if(x=x.replace(/\$\{CLAUDE_PLUGIN_ROOT\}/g,()=>e),c){let e=y(ch(c));x=x.replace(/\$\{CLAUDE_PLUGIN_DATA\}/g,()=>e)}c&&(S=WT(c),x=iGe(x,S))}g&&!v&&x.trim().match(/\.sh(\s|$|")/)&&(x.trim().startsWith(`bash `)||(x=`bash ${x}`));let C=!v&&process.env.CLAUDE_CODE_SHELL_PREFIX?Ymt(process.env.CLAUDE_CODE_SHELL_PREFIX,x):x,w=e.timeout?e.timeout*1e3:W7,T={...ou(),CLAUDE_PROJECT_DIR:y(b)};if(s&&(T.CLAUDE_PLUGIN_ROOT=y(s),c&&(T.CLAUDE_PLUGIN_DATA=y(ch(c)))),S)for(let[e,t]of Object.entries(S)){let n=e.replace(/[^A-Za-z0-9_]/g,`_`).toUpperCase();T[`CLAUDE_PLUGIN_OPTION_${n}`]=String(t)}l&&(T.CLAUDE_PLUGIN_ROOT=y(l)),!v&&(t===`SessionStart`||t===`Setup`||t===`CwdChanged`||t===`FileChanged`)&&o!==void 0&&(T.CLAUDE_ENV_FILE=await S5e(t,o));let E=Ga(),D=await Qr(E)?E:fn();D!==E&&U(`Hooks: cwd ${E} not found, falling back to original cwd`,{level:`warn`});let ee=C;if(!v&&Nm.isSandboxingEnabled())try{ee=await Nm.wrapWithSandbox(C,void 0,{network:{allowedDomains:[],deniedDomains:[]},filesystem:{allowWrite:[`/`],denyWrite:[],allowRead:[],denyRead:[]}},i),U(`Hook command sandboxed (network-only): ${e.command}`,{level:`verbose`})}catch(e){U(`Failed to sandbox hook command, running unsandboxed: ${H(e)}`,{level:`warn`})}let O;if(_===`powershell`){let t=await YH();if(!t)throw Error(`Hook "${e.command}" has shell: 'powershell' but no PowerShell executable (pwsh or powershell) was found on PATH. Install PowerShell, or remove "shell": "powershell" to use bash.`);O=Ed(t,wht(C),{env:T,cwd:D,windowsHide:!0})}else{let e=g?Xse():!0;O=Ed(ee,[],{env:T,cwd:D,shell:e,windowsHide:!0})}let k=new EH(`hook_${O.pid}`,null),te=v8t(O,i,w,k),ne=!1,re=!1;if((e.async||e.asyncRewake)&&!u){let i=`async_hook_${O.pid}`;if(U(`Hooks: Config-based async hook, backgrounding process ${i}`),O.stdin.write(r+`
|
|
4395
4395
|
`,`utf8`),O.stdin.end(),re=!0,r5t({processId:i,hookId:a,shellCommand:te,asyncResponse:{async:!0,asyncTimeout:w},hookEvent:t,hookName:n,command:e.command,asyncRewake:e.asyncRewake,pluginId:c}))return{stdout:``,stderr:``,output:``,status:0,backgrounded:!0}}let ie=``,ae=``,oe=``;O.stdout.setEncoding(`utf8`),O.stderr.setEncoding(`utf8`);let A=!1,se=null,j=new Promise(e=>{se=e}),ce=new Set,M=Promise.resolve(),N=``;O.stdout.on(`data`,r=>{if(ie+=r,oe+=r,d){N+=r;let e=N.split(`
|
|
4396
4396
|
`);N=e.pop()??``;for(let t of e){let e=t.trim();if(e)try{let t=Da(e),n=k8t().safeParse(t);if(n.success){ce.add(e),U(`Hooks: Detected prompt request from hook: ${e}`);let t=n.data,r=d;M=M.then(async()=>{try{let e=await r(t);O.stdin.write(V(e)+`
|
|
@@ -4549,9 +4549,9 @@ The user context may include a \`terminalFocus\` field indicating whether the us
|
|
|
4549
4549
|
`)].filter(Boolean)}function h9t(e,t){if(Object.entries(t).length===0)return e;let{claudeMd:n,...r}=t,i=[];n&&i.push(d4({content:`<project-instructions>\n${n}\n</project-instructions>\n`,isMeta:!0}));let a=Object.entries(r);return a.length>0&&i.push(d4({content:`<system-reminder>\nAs you answer the user's questions, you can use the following context:\n${a.map(([e,t])=>`# ${e}\n${t}`).join(`
|
|
4550
4550
|
`)}
|
|
4551
4551
|
|
|
4552
|
-
IMPORTANT: this context may or may not be relevant to your tasks. You should not respond to this context unless it is highly relevant to your task.\n</system-reminder>\n`,isMeta:!0})),[...i,...e]}async function g9t(e,t){if(Vae())return;let[{tools:n},r,i,a]=await Promise.all([x2e(e),BX(t),t_(),e_()]),o=a.gitStatus?.length??0,s=i.claudeMd?.length??0,c=o+s,l=Ga(),u=k6t(A6t(t),l),d=await hm(l,AbortSignal.timeout(1e3),u),f=0,p=0,m=0,h=0,g=0,_=r.filter(e=>!e.isMcp);f=n.length,h=_.length;let v=new Set;for(let e of n){let t=e.name.split(`__`);t.length>=3&&t[1]&&v.add(t[1])}p=v.size;for(let e of n){let t=`inputJSONSchema`in e&&e.inputJSONSchema?e.inputJSONSchema:c1(e.inputSchema);m+=D1(V(t))}for(let e of _){let t=`inputJSONSchema`in e&&e.inputJSONSchema?e.inputJSONSchema:c1(e.inputSchema);g+=D1(V(t))}G(`tengu_context_size`,{git_status_size:o,claude_md_size:s,total_context_size:c,project_file_count_rounded:d,mcp_tools_count:f,mcp_servers_count:p,mcp_tools_tokens:m,non_mcp_tools_count:h,non_mcp_tools_tokens:g})}function _9t(e,t,n){switch(e.name){case kc:{let e=hN(n),r=mN(n);return b5e(),e===null?t:{...t,plan:e,planFilePath:r}}case QZ.name:{let e=QZ.inputSchema.parse(t),{command:n,timeout:r,description:i}=e,a=Ga(),o=n.replace(`cd ${a} && `,``);No()===`windows`&&(o=o.replace(`cd ${zo(a)} && `,``)),o=o.replace(/\\\\;/g,`\\;`),/^echo\s+["']?[^|&;><]*["']?$/i.test(o.trim())&&G(`tengu_bash_tool_simple_echo`,{});let s=`run_in_background`in e?e.run_in_background:void 0;return{command:o,description:i,...r!==void 0&&{timeout:r},...i!==void 0&&{description:i},...s!==void 0&&{run_in_background:s},...`dangerouslyDisableSandbox`in e&&e.dangerouslyDisableSandbox!==void 0&&{dangerouslyDisableSandbox:e.dangerouslyDisableSandbox}}}case DK.name:{let e=DK.inputSchema.parse(t),{file_path:n,edits:r}=Axt({file_path:e.file_path,edits:[{old_string:e.old_string,new_string:e.new_string,replace_all:e.replace_all}]});return{replace_all:r[0].replace_all,file_path:n,old_string:r[0].old_string,new_string:r[0].new_string}}case NK.name:{let e=NK.inputSchema.parse(t),n=/\.(md|mdx)$/i.test(e.file_path);return{file_path:e.file_path,content:n?e.content:Txt(e.content)}}case Kr:{let e=t,n=e.task_id??e.agentId??e.bash_id,r=e.timeout??(typeof e.wait_up_to==`number`?e.wait_up_to*1e3:void 0);return{task_id:n??``,block:e.block??!0,timeout:r??3e4}}default:return t}}function v9t(e,t){switch(e.name){case kc:if(t&&typeof t==`object`&&(`plan`in t||`planFilePath`in t)){let{plan:e,planFilePath:n,...r}=t;return r}return t;case DK.name:if(t&&typeof t==`object`&&`edits`in t){let{old_string:e,new_string:n,replace_all:r,...i}=t;return i}return t;default:return t}}var y9t,b9t,i9=n((()=>{r9(),n_(),oae(),wr(),Ua(),jA(),$Z(),OK(),CK(),PK(),VX(),Nf(),M1(),Qi(),Jc(),xr(),$i(),zr(),Wa(),W(),y(),i3(),Pn(),N5(),_N(),Po(),vm(),Va(),Ore(),Bo(),u1(),y9t={[kc]:[`launchSwarm`,`teammateCount`],[bn]:[`name`,`team_name`,`mode`]},b9t=!1}));function x9t(e){let{hasThinking:t=!1,isRedactThinkingActive:n=!1,clearAllThinking:r=!1}=e??{},i=[];t&&!n&&i.push({type:`clear_thinking_20251015`,keep:r?{type:`thinking_turns`,value:1}:`all`});let a=process.env.USE_API_CLEAR_TOOL_RESULTS===void 0?!0:x(process.env.USE_API_CLEAR_TOOL_RESULTS),o=x(process.env.USE_API_CLEAR_TOOL_USES);if(!a&&!o)return i.length>0?{edits:i}:void 0;if(a){let e=process.env.API_MAX_INPUT_TOKENS?parseInt(process.env.API_MAX_INPUT_TOKENS,10):S9t,t=process.env.API_TARGET_INPUT_TOKENS?parseInt(process.env.API_TARGET_INPUT_TOKENS,10):C9t,n={type:`clear_tool_uses_20250919`,trigger:{type:`input_tokens`,value:e},clear_at_least:{type:`input_tokens`,value:e-t},clear_tool_inputs:w9t};i.push(n)}if(o){let e=process.env.API_MAX_INPUT_TOKENS?parseInt(process.env.API_MAX_INPUT_TOKENS,10):S9t,t=process.env.API_TARGET_INPUT_TOKENS?parseInt(process.env.API_TARGET_INPUT_TOKENS,10):C9t,n={type:`clear_tool_uses_20250919`,trigger:{type:`input_tokens`,value:e},clear_at_least:{type:`input_tokens`,value:e-t},exclude_tools:T9t};i.push(n)}return i.length>0?{edits:i}:void 0}var S9t,C9t,w9t,T9t,E9t=n((()=>{Ic(),tl(),Wc(),Xc(),mc(),qc(),Fc(),rc(),hc(),y(),S9t=18e4,C9t=4e4,w9t=[...$ce,zc,lc,Mc,Kc,Xs],T9t=[fc,Oc,Hc]})),D9t,O9t=n((()=>{D9t={providerId:`bedrock`,parseHeaders(e){let t=[],n=e.get(`x-amzn-bedrock-quota-remaining`),r=e.get(`x-amzn-bedrock-quota-reset`);if(n!==null){let e=Number(n);if(Number.isFinite(e)&&e>=0&&e<=1){let n=r===null?0:Number(r);t.push({kind:`throttle`,label:`Throttle`,utilization:1-e,...Number.isFinite(n)&&n>0?{resetsAt:n}:{}})}}return t}}}));function k9t(e,t){let n=-1;for(let t=0;t<e.length;t++){let r=e[t];r&&typeof r==`object`&&`type`in r&&r.type===`tool_result`&&(n=t)}if(n>=0){let r=n+1;e.splice(r,0,t),r===e.length-1&&e.push({type:`text`,text:`.`})}else{let n=Math.max(0,e.length-1);e.splice(n,0,t)}}var A9t=n((()=>{})),j9t=n((()=>{bl()}));function M9t(e){if(e instanceof C){let t=e.error;if(t?.error?.message)return t.error.message}return e instanceof Error?e.message:String(e)}function N9t({headers:e,baseUrl:t}){if(e){let t=[];e.forEach((e,n)=>t.push(n));for(let[e,{prefixes:n}]of Object.entries(B9t))if(n.some(e=>t.some(t=>t.startsWith(e))))return e}if(t)try{let e=new URL(t).hostname.toLowerCase();for(let[t,n]of Object.entries(V9t))if(n.some(t=>e.endsWith(t)))return t}catch{}}function P9t(){return{...process.env.ANTHROPIC_BASE_URL?{baseUrl:process.env.ANTHROPIC_BASE_URL}:{},...process.env.ANTHROPIC_MODEL?{envModel:process.env.ANTHROPIC_MODEL}:{},...process.env.ANTHROPIC_SMALL_FAST_MODEL?{envSmallFastModel:process.env.ANTHROPIC_SMALL_FAST_MODEL}:{}}}function F9t(){let e=new Date(`2026-06-04T16:04:58.907Z`).getTime();if(!isNaN(e))return Math.floor((Date.now()-e)/6e4)}function I9t({model:e,messagesLength:t,temperature:n,betas:r,permissionMode:i,querySource:a,queryTracking:o,thinkingConfig:s,effortValue:c,fastMode:l,previousRequestId:u}){let d=s?.type??`disabled`,f=s?.type===`enabled`?s.budgetTokens:void 0;G(`tengu_api_query`,{model:e,messagesLength:t,temperature:n,provider:dr(),buildAgeMins:F9t(),...r?.length?{betas:r.join(`,`)}:{},permissionMode:i,querySource:a,...o?{queryChainId:o.chainId,queryDepth:o.depth}:{},thinkingType:d,...f!==void 0&&{thinkingBudgetTokens:f},effortValue:c,fastMode:l,...u?{previousRequestId:u}:{},...P9t()})}function L9t({error:e,model:t,messageCount:n,messageTokens:r,durationMs:i,durationMsIncludingRetries:a,attempt:o,requestId:s,clientRequestId:c,didFallBackToNonStreaming:l,promptCategory:u,headers:d,queryTracking:f,querySource:p,llmSpan:m,fastMode:h,previousRequestId:g}){let _=N9t({headers:e instanceof C&&e.headers?e.headers:d,baseUrl:process.env.ANTHROPIC_BASE_URL}),v=M9t(e),y=e instanceof C?String(e.status):void 0,b=Owe(e),x=Dl(e);if(x){let e=x.isSSLError?` (SSL error)`:``;U(`Connection error details: code=${x.code}${e}, message=${x.message}`,{level:`error`})}let S=rie();c&&U(`API error x-client-request-id=${c} (give this to the API team for server-log lookup)`,{level:`error`}),q(e),G(`tengu_api_error`,{model:t,error:v,status:y,errorType:b,messageCount:n,messageTokens:r,durationMs:i,durationMsIncludingRetries:a,attempt:o,provider:dr(),requestId:s||void 0,...S?{invokingRequestId:S.invokingRequestId,invocationKind:S.invocationKind}:{},clientRequestId:c||void 0,didFallBackToNonStreaming:l,...u?{promptCategory:u}:{},..._?{gateway:_}:{},...f?{queryChainId:f.chainId,queryDepth:f.depth}:{},...p?{querySource:p}:{},fastMode:h,...g?{previousRequestId:g}:{},...P9t()}),jl(`api_error`,{model:t,error:v,status_code:String(y),duration_ms:String(i),attempt:String(o),speed:h?`fast`:`normal`}),Que(m,{success:!1,statusCode:y?parseInt(y,10):void 0,error:v,attempt:o});let w=hne();w?.isTeleported&&!w.hasLoggedFirstMessage&&(G(`tengu_teleport_first_message_error`,{session_id:w.sessionId,error_type:b}),Fne())}function R9t({model:e,preNormalizedModel:t,messageCount:n,messageTokens:r,usage:i,durationMs:a,durationMsIncludingRetries:o,attempt:s,ttftMs:c,requestId:l,stopReason:u,costUSD:d,didFallBackToNonStreaming:f,querySource:p,gateway:m,queryTracking:h,permissionMode:g,globalCacheStrategy:_,textContentLength:v,thinkingContentLength:y,toolUseContentLengths:b,connectorTextBlockCount:x,fastMode:S,previousRequestId:C,betas:w}){let T=Kt(),E=bne(),D=process.argv.includes(`-p`)||process.argv.includes(`--print`),ee=Date.now(),O=zt(),k=O===null?void 0:ee-O,te=rie();G(`tengu_api_success`,{model:e,...t===e?{}:{preNormalizedModel:t},...w?.length?{betas:w.join(`,`)}:{},messageCount:n,messageTokens:r,inputTokens:i.input_tokens,outputTokens:i.output_tokens,cachedInputTokens:i.cache_read_input_tokens??0,uncachedInputTokens:i.cache_creation_input_tokens??0,durationMs:a,durationMsIncludingRetries:o,attempt:s,ttftMs:c??void 0,buildAgeMins:F9t(),provider:dr(),requestId:l??void 0,...te?{invokingRequestId:te.invokingRequestId,invocationKind:te.invocationKind}:{},stop_reason:u??void 0,costUSD:d,didFallBackToNonStreaming:f,isNonInteractiveSession:T,print:D,isTTY:process.stdout.isTTY??!1,querySource:p,...m?{gateway:m}:{},...h?{queryChainId:h.chainId,queryDepth:h.depth}:{},permissionMode:g,..._?{globalCacheStrategy:_}:{},...v===void 0?{}:{textContentLength:v},...y===void 0?{}:{thinkingContentLength:y},...b===void 0?{}:{toolUseContentLengths:V(b)},...x===void 0?{}:{connectorTextBlockCount:x},fastMode:S,...C?{previousRequestId:C}:{},...E?{isPostCompaction:E}:{},...P9t(),timeSinceLastApiCallMs:k}),Qt(ee)}function z9t({model:e,preNormalizedModel:t,start:n,startIncludingRetries:r,ttftMs:i,usage:a,attempt:o,messageCount:s,messageTokens:c,requestId:l,stopReason:u,didFallBackToNonStreaming:d,querySource:f,headers:p,costUSD:m,queryTracking:h,permissionMode:g,newMessages:_,llmSpan:v,globalCacheStrategy:y,requestSetupMs:b,attemptStartTimes:x,fastMode:S,previousRequestId:C,betas:w}){let T=N9t({headers:p,baseUrl:process.env.ANTHROPIC_BASE_URL}),E,D,ee,O;if(_){let e=0,t=0,n=!1,r={},i=0;for(let a of _){let o=Array.isArray(a.message.content)?a.message.content:[];for(let a of o)if(typeof a!=`string`){if(a.type===`text`)e+=a.text.length;else if(Pf(a))i++;else if(a.type===`thinking`)t+=a.thinking.length;else if(a.type===`tool_use`||a.type===`server_tool_use`||a.type===`mcp_tool_use`){let e=V(a.input).length,t=Hr(a.name);r[t]=(r[t]??0)+e,n=!0}}}E=e,D=t>0?t:void 0,ee=n?r:void 0,O=i>0?i:void 0}let k=Date.now()-n,te=Date.now()-r;Qte(te,k),R9t({model:e,preNormalizedModel:t,messageCount:s,messageTokens:c,usage:a,durationMs:k,durationMsIncludingRetries:te,attempt:o,ttftMs:i,requestId:l,stopReason:u,costUSD:m,didFallBackToNonStreaming:d,querySource:f,gateway:T,queryTracking:h,permissionMode:g,globalCacheStrategy:y,textContentLength:E,thinkingContentLength:D,toolUseContentLengths:ee,connectorTextBlockCount:O,fastMode:S,previousRequestId:C,betas:w}),jl(`api_request`,{model:e,input_tokens:String(a.input_tokens),output_tokens:String(a.output_tokens),cache_read_tokens:String(a.cache_read_input_tokens),cache_creation_tokens:String(a.cache_creation_input_tokens),cost_usd:String(m),duration_ms:String(k),speed:S?`fast`:`normal`});let ne,re,ie;Pl()&&_&&(ne=_.flatMap(e=>{let t=e.message.content;return Array.isArray(t)?t.filter(e=>typeof e!=`string`&&e.type===`text`).map(e=>e.text):[]}).join(`
|
|
4552
|
+
IMPORTANT: this context may or may not be relevant to your tasks. You should not respond to this context unless it is highly relevant to your task.\n</system-reminder>\n`,isMeta:!0})),[...i,...e]}async function g9t(e,t){if(Vae())return;let[{tools:n},r,i,a]=await Promise.all([x2e(e),BX(t),t_(),e_()]),o=a.gitStatus?.length??0,s=i.claudeMd?.length??0,c=o+s,l=Ga(),u=k6t(A6t(t),l),d=await hm(l,AbortSignal.timeout(1e3),u),f=0,p=0,m=0,h=0,g=0,_=r.filter(e=>!e.isMcp);f=n.length,h=_.length;let v=new Set;for(let e of n){let t=e.name.split(`__`);t.length>=3&&t[1]&&v.add(t[1])}p=v.size;for(let e of n){let t=`inputJSONSchema`in e&&e.inputJSONSchema?e.inputJSONSchema:c1(e.inputSchema);m+=D1(V(t))}for(let e of _){let t=`inputJSONSchema`in e&&e.inputJSONSchema?e.inputJSONSchema:c1(e.inputSchema);g+=D1(V(t))}G(`tengu_context_size`,{git_status_size:o,claude_md_size:s,total_context_size:c,project_file_count_rounded:d,mcp_tools_count:f,mcp_servers_count:p,mcp_tools_tokens:m,non_mcp_tools_count:h,non_mcp_tools_tokens:g})}function _9t(e,t,n){switch(e.name){case kc:{let e=hN(n),r=mN(n);return b5e(),e===null?t:{...t,plan:e,planFilePath:r}}case QZ.name:{let e=QZ.inputSchema.parse(t),{command:n,timeout:r,description:i}=e,a=Ga(),o=n.replace(`cd ${a} && `,``);No()===`windows`&&(o=o.replace(`cd ${zo(a)} && `,``)),o=o.replace(/\\\\;/g,`\\;`),/^echo\s+["']?[^|&;><]*["']?$/i.test(o.trim())&&G(`tengu_bash_tool_simple_echo`,{});let s=`run_in_background`in e?e.run_in_background:void 0;return{command:o,description:i,...r!==void 0&&{timeout:r},...i!==void 0&&{description:i},...s!==void 0&&{run_in_background:s},...`dangerouslyDisableSandbox`in e&&e.dangerouslyDisableSandbox!==void 0&&{dangerouslyDisableSandbox:e.dangerouslyDisableSandbox}}}case DK.name:{let e=DK.inputSchema.parse(t),{file_path:n,edits:r}=Axt({file_path:e.file_path,edits:[{old_string:e.old_string,new_string:e.new_string,replace_all:e.replace_all}]});return{replace_all:r[0].replace_all,file_path:n,old_string:r[0].old_string,new_string:r[0].new_string}}case NK.name:{let e=NK.inputSchema.parse(t),n=/\.(md|mdx)$/i.test(e.file_path);return{file_path:e.file_path,content:n?e.content:Txt(e.content)}}case Kr:{let e=t,n=e.task_id??e.agentId??e.bash_id,r=e.timeout??(typeof e.wait_up_to==`number`?e.wait_up_to*1e3:void 0);return{task_id:n??``,block:e.block??!0,timeout:r??3e4}}default:return t}}function v9t(e,t){switch(e.name){case kc:if(t&&typeof t==`object`&&(`plan`in t||`planFilePath`in t)){let{plan:e,planFilePath:n,...r}=t;return r}return t;case DK.name:if(t&&typeof t==`object`&&`edits`in t){let{old_string:e,new_string:n,replace_all:r,...i}=t;return i}return t;default:return t}}var y9t,b9t,i9=n((()=>{r9(),n_(),oae(),wr(),Ua(),jA(),$Z(),OK(),CK(),PK(),VX(),Nf(),M1(),Qi(),Jc(),xr(),$i(),zr(),Wa(),W(),y(),i3(),Pn(),N5(),_N(),Po(),vm(),Va(),Ore(),Bo(),u1(),y9t={[kc]:[`launchSwarm`,`teammateCount`],[bn]:[`name`,`team_name`,`mode`]},b9t=!1}));function x9t(e){let{hasThinking:t=!1,isRedactThinkingActive:n=!1,clearAllThinking:r=!1}=e??{},i=[];t&&!n&&i.push({type:`clear_thinking_20251015`,keep:r?{type:`thinking_turns`,value:1}:`all`});let a=process.env.USE_API_CLEAR_TOOL_RESULTS===void 0?!0:x(process.env.USE_API_CLEAR_TOOL_RESULTS),o=x(process.env.USE_API_CLEAR_TOOL_USES);if(!a&&!o)return i.length>0?{edits:i}:void 0;if(a){let e=process.env.API_MAX_INPUT_TOKENS?parseInt(process.env.API_MAX_INPUT_TOKENS,10):S9t,t=process.env.API_TARGET_INPUT_TOKENS?parseInt(process.env.API_TARGET_INPUT_TOKENS,10):C9t,n={type:`clear_tool_uses_20250919`,trigger:{type:`input_tokens`,value:e},clear_at_least:{type:`input_tokens`,value:e-t},clear_tool_inputs:w9t};i.push(n)}if(o){let e=process.env.API_MAX_INPUT_TOKENS?parseInt(process.env.API_MAX_INPUT_TOKENS,10):S9t,t=process.env.API_TARGET_INPUT_TOKENS?parseInt(process.env.API_TARGET_INPUT_TOKENS,10):C9t,n={type:`clear_tool_uses_20250919`,trigger:{type:`input_tokens`,value:e},clear_at_least:{type:`input_tokens`,value:e-t},exclude_tools:T9t};i.push(n)}return i.length>0?{edits:i}:void 0}var S9t,C9t,w9t,T9t,E9t=n((()=>{Ic(),tl(),Wc(),Xc(),mc(),qc(),Fc(),rc(),hc(),y(),S9t=18e4,C9t=4e4,w9t=[...$ce,zc,lc,Mc,Kc,Xs],T9t=[fc,Oc,Hc]})),D9t,O9t=n((()=>{D9t={providerId:`bedrock`,parseHeaders(e){let t=[],n=e.get(`x-amzn-bedrock-quota-remaining`),r=e.get(`x-amzn-bedrock-quota-reset`);if(n!==null){let e=Number(n);if(Number.isFinite(e)&&e>=0&&e<=1){let n=r===null?0:Number(r);t.push({kind:`throttle`,label:`Throttle`,utilization:1-e,...Number.isFinite(n)&&n>0?{resetsAt:n}:{}})}}return t}}}));function k9t(e,t){let n=-1;for(let t=0;t<e.length;t++){let r=e[t];r&&typeof r==`object`&&`type`in r&&r.type===`tool_result`&&(n=t)}if(n>=0){let r=n+1;e.splice(r,0,t),r===e.length-1&&e.push({type:`text`,text:`.`})}else{let n=Math.max(0,e.length-1);e.splice(n,0,t)}}var A9t=n((()=>{})),j9t=n((()=>{bl()}));function M9t(e){if(e instanceof C){let t=e.error;if(t?.error?.message)return t.error.message}return e instanceof Error?e.message:String(e)}function N9t({headers:e,baseUrl:t}){if(e){let t=[];e.forEach((e,n)=>t.push(n));for(let[e,{prefixes:n}]of Object.entries(B9t))if(n.some(e=>t.some(t=>t.startsWith(e))))return e}if(t)try{let e=new URL(t).hostname.toLowerCase();for(let[t,n]of Object.entries(V9t))if(n.some(t=>e.endsWith(t)))return t}catch{}}function P9t(){return{...process.env.ANTHROPIC_BASE_URL?{baseUrl:process.env.ANTHROPIC_BASE_URL}:{},...process.env.ANTHROPIC_MODEL?{envModel:process.env.ANTHROPIC_MODEL}:{},...process.env.ANTHROPIC_SMALL_FAST_MODEL?{envSmallFastModel:process.env.ANTHROPIC_SMALL_FAST_MODEL}:{}}}function F9t(){let e=new Date(`2026-06-05T02:52:17.586Z`).getTime();if(!isNaN(e))return Math.floor((Date.now()-e)/6e4)}function I9t({model:e,messagesLength:t,temperature:n,betas:r,permissionMode:i,querySource:a,queryTracking:o,thinkingConfig:s,effortValue:c,fastMode:l,previousRequestId:u}){let d=s?.type??`disabled`,f=s?.type===`enabled`?s.budgetTokens:void 0;G(`tengu_api_query`,{model:e,messagesLength:t,temperature:n,provider:dr(),buildAgeMins:F9t(),...r?.length?{betas:r.join(`,`)}:{},permissionMode:i,querySource:a,...o?{queryChainId:o.chainId,queryDepth:o.depth}:{},thinkingType:d,...f!==void 0&&{thinkingBudgetTokens:f},effortValue:c,fastMode:l,...u?{previousRequestId:u}:{},...P9t()})}function L9t({error:e,model:t,messageCount:n,messageTokens:r,durationMs:i,durationMsIncludingRetries:a,attempt:o,requestId:s,clientRequestId:c,didFallBackToNonStreaming:l,promptCategory:u,headers:d,queryTracking:f,querySource:p,llmSpan:m,fastMode:h,previousRequestId:g}){let _=N9t({headers:e instanceof C&&e.headers?e.headers:d,baseUrl:process.env.ANTHROPIC_BASE_URL}),v=M9t(e),y=e instanceof C?String(e.status):void 0,b=Owe(e),x=Dl(e);if(x){let e=x.isSSLError?` (SSL error)`:``;U(`Connection error details: code=${x.code}${e}, message=${x.message}`,{level:`error`})}let S=rie();c&&U(`API error x-client-request-id=${c} (give this to the API team for server-log lookup)`,{level:`error`}),q(e),G(`tengu_api_error`,{model:t,error:v,status:y,errorType:b,messageCount:n,messageTokens:r,durationMs:i,durationMsIncludingRetries:a,attempt:o,provider:dr(),requestId:s||void 0,...S?{invokingRequestId:S.invokingRequestId,invocationKind:S.invocationKind}:{},clientRequestId:c||void 0,didFallBackToNonStreaming:l,...u?{promptCategory:u}:{},..._?{gateway:_}:{},...f?{queryChainId:f.chainId,queryDepth:f.depth}:{},...p?{querySource:p}:{},fastMode:h,...g?{previousRequestId:g}:{},...P9t()}),jl(`api_error`,{model:t,error:v,status_code:String(y),duration_ms:String(i),attempt:String(o),speed:h?`fast`:`normal`}),Que(m,{success:!1,statusCode:y?parseInt(y,10):void 0,error:v,attempt:o});let w=hne();w?.isTeleported&&!w.hasLoggedFirstMessage&&(G(`tengu_teleport_first_message_error`,{session_id:w.sessionId,error_type:b}),Fne())}function R9t({model:e,preNormalizedModel:t,messageCount:n,messageTokens:r,usage:i,durationMs:a,durationMsIncludingRetries:o,attempt:s,ttftMs:c,requestId:l,stopReason:u,costUSD:d,didFallBackToNonStreaming:f,querySource:p,gateway:m,queryTracking:h,permissionMode:g,globalCacheStrategy:_,textContentLength:v,thinkingContentLength:y,toolUseContentLengths:b,connectorTextBlockCount:x,fastMode:S,previousRequestId:C,betas:w}){let T=Kt(),E=bne(),D=process.argv.includes(`-p`)||process.argv.includes(`--print`),ee=Date.now(),O=zt(),k=O===null?void 0:ee-O,te=rie();G(`tengu_api_success`,{model:e,...t===e?{}:{preNormalizedModel:t},...w?.length?{betas:w.join(`,`)}:{},messageCount:n,messageTokens:r,inputTokens:i.input_tokens,outputTokens:i.output_tokens,cachedInputTokens:i.cache_read_input_tokens??0,uncachedInputTokens:i.cache_creation_input_tokens??0,durationMs:a,durationMsIncludingRetries:o,attempt:s,ttftMs:c??void 0,buildAgeMins:F9t(),provider:dr(),requestId:l??void 0,...te?{invokingRequestId:te.invokingRequestId,invocationKind:te.invocationKind}:{},stop_reason:u??void 0,costUSD:d,didFallBackToNonStreaming:f,isNonInteractiveSession:T,print:D,isTTY:process.stdout.isTTY??!1,querySource:p,...m?{gateway:m}:{},...h?{queryChainId:h.chainId,queryDepth:h.depth}:{},permissionMode:g,..._?{globalCacheStrategy:_}:{},...v===void 0?{}:{textContentLength:v},...y===void 0?{}:{thinkingContentLength:y},...b===void 0?{}:{toolUseContentLengths:V(b)},...x===void 0?{}:{connectorTextBlockCount:x},fastMode:S,...C?{previousRequestId:C}:{},...E?{isPostCompaction:E}:{},...P9t(),timeSinceLastApiCallMs:k}),Qt(ee)}function z9t({model:e,preNormalizedModel:t,start:n,startIncludingRetries:r,ttftMs:i,usage:a,attempt:o,messageCount:s,messageTokens:c,requestId:l,stopReason:u,didFallBackToNonStreaming:d,querySource:f,headers:p,costUSD:m,queryTracking:h,permissionMode:g,newMessages:_,llmSpan:v,globalCacheStrategy:y,requestSetupMs:b,attemptStartTimes:x,fastMode:S,previousRequestId:C,betas:w}){let T=N9t({headers:p,baseUrl:process.env.ANTHROPIC_BASE_URL}),E,D,ee,O;if(_){let e=0,t=0,n=!1,r={},i=0;for(let a of _){let o=Array.isArray(a.message.content)?a.message.content:[];for(let a of o)if(typeof a!=`string`){if(a.type===`text`)e+=a.text.length;else if(Pf(a))i++;else if(a.type===`thinking`)t+=a.thinking.length;else if(a.type===`tool_use`||a.type===`server_tool_use`||a.type===`mcp_tool_use`){let e=V(a.input).length,t=Hr(a.name);r[t]=(r[t]??0)+e,n=!0}}}E=e,D=t>0?t:void 0,ee=n?r:void 0,O=i>0?i:void 0}let k=Date.now()-n,te=Date.now()-r;Qte(te,k),R9t({model:e,preNormalizedModel:t,messageCount:s,messageTokens:c,usage:a,durationMs:k,durationMsIncludingRetries:te,attempt:o,ttftMs:i,requestId:l,stopReason:u,costUSD:m,didFallBackToNonStreaming:d,querySource:f,gateway:T,queryTracking:h,permissionMode:g,globalCacheStrategy:y,textContentLength:E,thinkingContentLength:D,toolUseContentLengths:ee,connectorTextBlockCount:O,fastMode:S,previousRequestId:C,betas:w}),jl(`api_request`,{model:e,input_tokens:String(a.input_tokens),output_tokens:String(a.output_tokens),cache_read_tokens:String(a.cache_read_input_tokens),cache_creation_tokens:String(a.cache_creation_input_tokens),cost_usd:String(m),duration_ms:String(k),speed:S?`fast`:`normal`});let ne,re,ie;Pl()&&_&&(ne=_.flatMap(e=>{let t=e.message.content;return Array.isArray(t)?t.filter(e=>typeof e!=`string`&&e.type===`text`).map(e=>e.text):[]}).join(`
|
|
4553
4553
|
`)||void 0,process.env.USER_TYPE===`ant`&&(re=_.flatMap(e=>{let t=e.message.content;return Array.isArray(t)?t.filter(e=>typeof e!=`string`&&e.type===`thinking`).map(e=>e.thinking):[]}).join(`
|
|
4554
|
-
`)||void 0),ie=_.some(e=>{let t=e.message.content;return Array.isArray(t)?t.some(e=>typeof e!=`string`&&e.type===`tool_use`):!1})),Que(v,{success:!0,inputTokens:a.input_tokens,outputTokens:a.output_tokens,cacheReadTokens:a.cache_read_input_tokens,cacheCreationTokens:a.cache_creation_input_tokens,attempt:o,modelOutput:ne,thinkingOutput:re,hasToolCall:ie,ttftMs:i??void 0,requestSetupMs:b,attemptStartTimes:x});let ae=hne();ae?.isTeleported&&!ae.hasLoggedFirstMessage&&(G(`tengu_teleport_first_message_success`,{session_id:ae.sessionId}),Fne())}var B9t,V9t,H9t=n((()=>{Ka(),tn(),Ff(),W(),Ao(),Pn(),Va(),Fl(),Ml(),ia(),Ua(),qn(),j9t(),dv(),X_(),B9t={litellm:{prefixes:[`x-litellm-`]},helicone:{prefixes:[`helicone-`]},portkey:{prefixes:[`x-portkey-`]},"cloudflare-ai-gateway":{prefixes:[`cf-aig-`]},kong:{prefixes:[`x-kong-`]},braintrust:{prefixes:[`x-bt-`]}},V9t={databricks:[`.cloud.databricks.com`,`.azuredatabricks.net`,`.gcp.databricks.com`]}}));function a9(e){let t=process.env.CLAUDE_CODE_EXTRA_BODY,n={};if(t)try{let e=os(t);e&&typeof e==`object`&&!Array.isArray(e)?n={...e}:U(`CLAUDE_CODE_EXTRA_BODY env var must be a JSON object, but was given ${t}`,{level:`error`})}catch(e){U(`Error parsing CLAUDE_CODE_EXTRA_BODY: ${H(e)}`,{level:`error`})}if(e&&e.length>0)if(n.anthropic_beta&&Array.isArray(n.anthropic_beta)){let t=n.anthropic_beta,r=e.filter(e=>!t.includes(e));n.anthropic_beta=[...t,...r]}else n.anthropic_beta=e;return n}function U9t(e){return!(x(process.env.DISABLE_PROMPT_CACHING)||x(process.env.DISABLE_PROMPT_CACHING_HAIKU)&&e===rr()||x(process.env.DISABLE_PROMPT_CACHING_SONNET)&&e===Mn()||x(process.env.DISABLE_PROMPT_CACHING_OPUS)&&e===vie())}function o9({scope:e,querySource:t}={}){return{type:`ephemeral`,...W9t(t)&&{ttl:`1h`},...e===`global`&&{scope:e}}}function W9t(e){if(ar()===`bedrock`&&x(process.env.ENABLE_PROMPT_CACHING_1H_BEDROCK))return!0;let t=sne();if(t===null&&(t=process.env.USER_TYPE===`ant`||di()&&!K_.isUsingOverage,Dne(t)),!t)return!1;let n=tne();return n===null&&(n=Jr(`tengu_prompt_cache_1h_config`,{}).allowlist??[],one(n)),e!==void 0&&n.some(t=>t.endsWith(`*`)?e.startsWith(t.slice(0,-1)):e===t)}function G9t(e,t,n,r,i){!Rd(i)||`effort`in t||(e===void 0?r.push(cie):typeof e==`string`?(t.effort=e,r.push(cie)):process.env.USER_TYPE===`ant`&&(n.anthropic_internal={...n.anthropic_internal||{},effort_override:e}))}function K9t(e,t,n){!e||`task_budget`in t||!br()||(t.task_budget={type:`tokens`,total:e.total,...e.remaining!==void 0&&{remaining:e.remaining}},n.includes(`task-budgets-2026-03-13`)||n.push(xie))}function s9(){let e={},t=process.env.CLAUDE_CODE_EXTRA_METADATA;if(t){let n=os(t,!1);n&&typeof n==`object`&&!Array.isArray(n)?e=n:U(`CLAUDE_CODE_EXTRA_METADATA env var must be a JSON object, but was given ${t}`,{level:`error`})}return{user_id:V({...e,device_id:fre(),account_uuid:qr()?.accountUuid??``,session_id:Ft()})}}async function q9t(e,t){if(t)return!0;try{let t=rr(),n=Jn(t);return await VPe(o3(()=>vi({apiKey:e,maxRetries:3,model:t,source:`verify_api_key`}),async e=>(await e.beta.messages.create({model:t,max_tokens:1,messages:[{role:`user`,content:`test`}],temperature:1,...n.length>0&&{betas:n.filter(Boolean)},metadata:s9(),...a9()}),!0),{maxRetries:2,model:t,thinkingConfig:{type:`disabled`}}))}catch(e){let t=e;if(e instanceof h3&&(t=e.originalError),q(t),t instanceof Error&&t.message.includes(`{"type":"error","error":{"type":"authentication_error","message":"invalid x-api-key"}}`))return!1;throw t}}function J9t(e,t=!1,n,r){return t?typeof e.message.content==`string`?{role:`user`,content:[{type:`text`,text:e.message.content,...n&&{cache_control:o9({querySource:r})}}]}:{role:`user`,content:e.message.content.map((t,i)=>({...t,...i===e.message.content.length-1&&n?{cache_control:o9({querySource:r})}:{}}))}:{role:`user`,content:Array.isArray(e.message.content)?[...e.message.content]:e.message.content}}function Y9t(e,t=!1,n,r){return t?typeof e.message.content==`string`?{role:`assistant`,content:[{type:`text`,text:e.message.content,...n&&{cache_control:o9({querySource:r})}}]}:{role:`assistant`,content:e.message.content.map((t,i)=>{let a=X9t(t);return{...a,...i===e.message.content.length-1&&a.type!==`thinking`&&a.type!==`redacted_thinking`&&!Pf(a)&&n?{cache_control:o9({querySource:r})}:{}}})}:{role:`assistant`,content:typeof e.message.content==`string`?e.message.content:e.message.content.map(X9t)}}function X9t(e){if(typeof e==`string`||!(`_geminiThoughtSignature`in e))return e;let{_geminiThoughtSignature:t,...n}=e;return n}async function c9({messages:e,systemPrompt:t,thinkingConfig:n,tools:r,signal:i,options:a}){let o;for await(let s of $Ht(e,async function*(){yield*ren(e,t,n,r,i,a)}))s.type===`assistant`&&(o=s);if(!o)throw i.aborted?new S:Error(`No assistant message found`);return o}async function*Z9t({messages:e,systemPrompt:t,thinkingConfig:n,tools:r,signal:i,options:a}){return yield*$Ht(e,async function*(){yield*ren(e,t,n,r,i,a)})}function Q9t(){return parseInt(process.env.API_TIMEOUT_MS||``,10)||(x(process.env.CLAUDE_CODE_REMOTE)?12e4:3e5)}async function*$9t(e,t,n,r,i,a){let o=Q9t(),s=o3(()=>vi({maxRetries:0,model:e.model,fetchOverride:e.fetchOverride,source:e.source}),async(s,c,l)=>{let u=Date.now(),d=n(l);i(d),r(c,u,d.max_tokens);let f=uen(d,pen);try{return await s.beta.messages.create({...f,model:va(f.model)},{signal:t.signal,timeout:o})}catch(t){throw t instanceof S?t:(Ja(`error`,`cli_nonstreaming_fallback_error`),G(`tengu_nonstreaming_fallback_error`,{model:e.model,error:t instanceof Error?t.name:`unknown`,attempt:c,timeout_ms:o,request_id:a??`unknown`}),t)}},{model:t.model,fallbackModel:t.fallbackModel,thinkingConfig:t.thinkingConfig,...pa()&&{fastMode:t.fastMode},signal:t.signal,initialConsecutive529Errors:t.initialConsecutive529Errors,querySource:t.querySource}),c;do c=await s.next(),!c.done&&c.value.type===`system`&&(yield c.value);while(!c.done);return c.value}function een(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n.type===`assistant`&&n.requestId)return n.requestId}}function l9(e){return e.type===`image`||e.type===`document`}function ten(e){return e.type===`tool_result`}function nen(e,t){let n=0;for(let t of e)if(Array.isArray(t.message.content)){for(let e of t.message.content)if(l9(e)&&n++,ten(e)&&Array.isArray(e.content))for(let t of e.content)l9(t)&&n++}return n-=t,n<=0?e:e.map(e=>{if(n<=0)return e;let t=e.message.content;if(!Array.isArray(t))return e;let r=n,i=t.map(e=>{if(n<=0||!ten(e)||!Array.isArray(e.content))return e;let t=e.content.filter(e=>n>0&&l9(e)?(n--,!1):!0);return t.length===e.content.length?e:{...e,content:t}}).filter(e=>n>0&&l9(e)?(n--,!1):!0);return r===n?e:{...e,message:{...e.message,content:i}}})}async function*ren(e,t,n,r,i,a){if(!di()&&Kn(a.model)&&(await yi(`tengu-off-switch`,{activated:!1})).activated){G(`tengu_off_switch_query`,{}),yield $_(Error(lv),a.model);return}let o=een(e),s=ar()===`bedrock`&&a.model.includes(`application-inference-profile`)?await Sre(a.model)??a.model:a.model;OQ(`query_tool_schema_build_start`);let c=a.querySource.startsWith(`repl_main_thread`)||a.querySource.startsWith(`agent:`)||a.querySource===`sdk`||a.querySource===`hook_agent`||a.querySource===`verification_agent`,l=roe(a.model,{isAgenticQuery:c});XR()&&l.push(tie);let u;if(c&&XR()){let e=a.advisorModel,t=Jat();if(t!==void 0&&va(t.baseModel)===va(a.model)&&(e=t.advisorModel),e){let t=va(Dn(e));QR(a.model)?Yat(t)?(u=t,U(`[AdvisorTool] Server-side tool enabled with ${u} as the advisor model`)):U(`[AdvisorTool] Skipping advisor - ${t} is not a valid advisor model`):U(`[AdvisorTool] Skipping advisor - base model ${a.model} does not support advisor`)}}let d=await h1(a.model,r,a.getToolPermissionContext,a.agents,`query`),f=new Set;if(d)for(let e of r)Pc(e)&&f.add(e.name);d&&f.size===0&&!a.hasPendingMcpServers&&(U(`Tool search disabled: no deferred tools available to search`),d=!1);let p;p=d?r.filter(e=>!!(!f.has(e.name)||nc(e,`SearchExtraTools`))):r.filter(e=>!nc(e,Dc));let m=qne(),h=m&&p.some(e=>e.isMcp===!0);m&&!l.includes(`prompt-caching-scope-2026-01-05`)&&l.push(tre);let g=m?h?`none`:`system_prompt`:`none`,_=await Promise.all(p.map(e=>u9t(e,{getToolPermissionContext:a.getToolPermissionContext,tools:r,agents:a.agents,allowedAgentTypes:a.allowedAgentTypes,model:a.model})));d&&U(`Dynamic tool loading: 0/${f.size} deferred tools in API tools array (all via ExecuteExtraTool)`),OQ(`query_tool_schema_build_end`),G(`tengu_api_before_normalize`,{preNormalizedMessageCount:e.length}),OQ(`query_message_normalization_start`);let v=b4(e,p);if(OQ(`query_message_normalization_end`),d||(v=v.map(e=>{switch(e.type){case`user`:return KJt(e);case`assistant`:return qJt(e);default:return e}})),v=RYt(v),l.includes(`advisor-tool-2026-03-01`)||(v=zYt(v)),v=nen(v,100),ar()===`openai`){let{queryModelOpenAI:e}=await import(`./openai-
|
|
4554
|
+
`)||void 0),ie=_.some(e=>{let t=e.message.content;return Array.isArray(t)?t.some(e=>typeof e!=`string`&&e.type===`tool_use`):!1})),Que(v,{success:!0,inputTokens:a.input_tokens,outputTokens:a.output_tokens,cacheReadTokens:a.cache_read_input_tokens,cacheCreationTokens:a.cache_creation_input_tokens,attempt:o,modelOutput:ne,thinkingOutput:re,hasToolCall:ie,ttftMs:i??void 0,requestSetupMs:b,attemptStartTimes:x});let ae=hne();ae?.isTeleported&&!ae.hasLoggedFirstMessage&&(G(`tengu_teleport_first_message_success`,{session_id:ae.sessionId}),Fne())}var B9t,V9t,H9t=n((()=>{Ka(),tn(),Ff(),W(),Ao(),Pn(),Va(),Fl(),Ml(),ia(),Ua(),qn(),j9t(),dv(),X_(),B9t={litellm:{prefixes:[`x-litellm-`]},helicone:{prefixes:[`helicone-`]},portkey:{prefixes:[`x-portkey-`]},"cloudflare-ai-gateway":{prefixes:[`cf-aig-`]},kong:{prefixes:[`x-kong-`]},braintrust:{prefixes:[`x-bt-`]}},V9t={databricks:[`.cloud.databricks.com`,`.azuredatabricks.net`,`.gcp.databricks.com`]}}));function a9(e){let t=process.env.CLAUDE_CODE_EXTRA_BODY,n={};if(t)try{let e=os(t);e&&typeof e==`object`&&!Array.isArray(e)?n={...e}:U(`CLAUDE_CODE_EXTRA_BODY env var must be a JSON object, but was given ${t}`,{level:`error`})}catch(e){U(`Error parsing CLAUDE_CODE_EXTRA_BODY: ${H(e)}`,{level:`error`})}if(e&&e.length>0)if(n.anthropic_beta&&Array.isArray(n.anthropic_beta)){let t=n.anthropic_beta,r=e.filter(e=>!t.includes(e));n.anthropic_beta=[...t,...r]}else n.anthropic_beta=e;return n}function U9t(e){return!(x(process.env.DISABLE_PROMPT_CACHING)||x(process.env.DISABLE_PROMPT_CACHING_HAIKU)&&e===rr()||x(process.env.DISABLE_PROMPT_CACHING_SONNET)&&e===Mn()||x(process.env.DISABLE_PROMPT_CACHING_OPUS)&&e===vie())}function o9({scope:e,querySource:t}={}){return{type:`ephemeral`,...W9t(t)&&{ttl:`1h`},...e===`global`&&{scope:e}}}function W9t(e){if(ar()===`bedrock`&&x(process.env.ENABLE_PROMPT_CACHING_1H_BEDROCK))return!0;let t=sne();if(t===null&&(t=process.env.USER_TYPE===`ant`||di()&&!K_.isUsingOverage,Dne(t)),!t)return!1;let n=tne();return n===null&&(n=Jr(`tengu_prompt_cache_1h_config`,{}).allowlist??[],one(n)),e!==void 0&&n.some(t=>t.endsWith(`*`)?e.startsWith(t.slice(0,-1)):e===t)}function G9t(e,t,n,r,i){!Rd(i)||`effort`in t||(e===void 0?r.push(cie):typeof e==`string`?(t.effort=e,r.push(cie)):process.env.USER_TYPE===`ant`&&(n.anthropic_internal={...n.anthropic_internal||{},effort_override:e}))}function K9t(e,t,n){!e||`task_budget`in t||!br()||(t.task_budget={type:`tokens`,total:e.total,...e.remaining!==void 0&&{remaining:e.remaining}},n.includes(`task-budgets-2026-03-13`)||n.push(xie))}function s9(){let e={},t=process.env.CLAUDE_CODE_EXTRA_METADATA;if(t){let n=os(t,!1);n&&typeof n==`object`&&!Array.isArray(n)?e=n:U(`CLAUDE_CODE_EXTRA_METADATA env var must be a JSON object, but was given ${t}`,{level:`error`})}return{user_id:V({...e,device_id:fre(),account_uuid:qr()?.accountUuid??``,session_id:Ft()})}}async function q9t(e,t){if(t)return!0;try{let t=rr(),n=Jn(t);return await VPe(o3(()=>vi({apiKey:e,maxRetries:3,model:t,source:`verify_api_key`}),async e=>(await e.beta.messages.create({model:t,max_tokens:1,messages:[{role:`user`,content:`test`}],temperature:1,...n.length>0&&{betas:n.filter(Boolean)},metadata:s9(),...a9()}),!0),{maxRetries:2,model:t,thinkingConfig:{type:`disabled`}}))}catch(e){let t=e;if(e instanceof h3&&(t=e.originalError),q(t),t instanceof Error&&t.message.includes(`{"type":"error","error":{"type":"authentication_error","message":"invalid x-api-key"}}`))return!1;throw t}}function J9t(e,t=!1,n,r){return t?typeof e.message.content==`string`?{role:`user`,content:[{type:`text`,text:e.message.content,...n&&{cache_control:o9({querySource:r})}}]}:{role:`user`,content:e.message.content.map((t,i)=>({...t,...i===e.message.content.length-1&&n?{cache_control:o9({querySource:r})}:{}}))}:{role:`user`,content:Array.isArray(e.message.content)?[...e.message.content]:e.message.content}}function Y9t(e,t=!1,n,r){return t?typeof e.message.content==`string`?{role:`assistant`,content:[{type:`text`,text:e.message.content,...n&&{cache_control:o9({querySource:r})}}]}:{role:`assistant`,content:e.message.content.map((t,i)=>{let a=X9t(t);return{...a,...i===e.message.content.length-1&&a.type!==`thinking`&&a.type!==`redacted_thinking`&&!Pf(a)&&n?{cache_control:o9({querySource:r})}:{}}})}:{role:`assistant`,content:typeof e.message.content==`string`?e.message.content:e.message.content.map(X9t)}}function X9t(e){if(typeof e==`string`||!(`_geminiThoughtSignature`in e))return e;let{_geminiThoughtSignature:t,...n}=e;return n}async function c9({messages:e,systemPrompt:t,thinkingConfig:n,tools:r,signal:i,options:a}){let o;for await(let s of $Ht(e,async function*(){yield*ren(e,t,n,r,i,a)}))s.type===`assistant`&&(o=s);if(!o)throw i.aborted?new S:Error(`No assistant message found`);return o}async function*Z9t({messages:e,systemPrompt:t,thinkingConfig:n,tools:r,signal:i,options:a}){return yield*$Ht(e,async function*(){yield*ren(e,t,n,r,i,a)})}function Q9t(){return parseInt(process.env.API_TIMEOUT_MS||``,10)||(x(process.env.CLAUDE_CODE_REMOTE)?12e4:3e5)}async function*$9t(e,t,n,r,i,a){let o=Q9t(),s=o3(()=>vi({maxRetries:0,model:e.model,fetchOverride:e.fetchOverride,source:e.source}),async(s,c,l)=>{let u=Date.now(),d=n(l);i(d),r(c,u,d.max_tokens);let f=uen(d,pen);try{return await s.beta.messages.create({...f,model:va(f.model)},{signal:t.signal,timeout:o})}catch(t){throw t instanceof S?t:(Ja(`error`,`cli_nonstreaming_fallback_error`),G(`tengu_nonstreaming_fallback_error`,{model:e.model,error:t instanceof Error?t.name:`unknown`,attempt:c,timeout_ms:o,request_id:a??`unknown`}),t)}},{model:t.model,fallbackModel:t.fallbackModel,thinkingConfig:t.thinkingConfig,...pa()&&{fastMode:t.fastMode},signal:t.signal,initialConsecutive529Errors:t.initialConsecutive529Errors,querySource:t.querySource}),c;do c=await s.next(),!c.done&&c.value.type===`system`&&(yield c.value);while(!c.done);return c.value}function een(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n.type===`assistant`&&n.requestId)return n.requestId}}function l9(e){return e.type===`image`||e.type===`document`}function ten(e){return e.type===`tool_result`}function nen(e,t){let n=0;for(let t of e)if(Array.isArray(t.message.content)){for(let e of t.message.content)if(l9(e)&&n++,ten(e)&&Array.isArray(e.content))for(let t of e.content)l9(t)&&n++}return n-=t,n<=0?e:e.map(e=>{if(n<=0)return e;let t=e.message.content;if(!Array.isArray(t))return e;let r=n,i=t.map(e=>{if(n<=0||!ten(e)||!Array.isArray(e.content))return e;let t=e.content.filter(e=>n>0&&l9(e)?(n--,!1):!0);return t.length===e.content.length?e:{...e,content:t}}).filter(e=>n>0&&l9(e)?(n--,!1):!0);return r===n?e:{...e,message:{...e.message,content:i}}})}async function*ren(e,t,n,r,i,a){if(!di()&&Kn(a.model)&&(await yi(`tengu-off-switch`,{activated:!1})).activated){G(`tengu_off_switch_query`,{}),yield $_(Error(lv),a.model);return}let o=een(e),s=ar()===`bedrock`&&a.model.includes(`application-inference-profile`)?await Sre(a.model)??a.model:a.model;OQ(`query_tool_schema_build_start`);let c=a.querySource.startsWith(`repl_main_thread`)||a.querySource.startsWith(`agent:`)||a.querySource===`sdk`||a.querySource===`hook_agent`||a.querySource===`verification_agent`,l=roe(a.model,{isAgenticQuery:c});XR()&&l.push(tie);let u;if(c&&XR()){let e=a.advisorModel,t=Jat();if(t!==void 0&&va(t.baseModel)===va(a.model)&&(e=t.advisorModel),e){let t=va(Dn(e));QR(a.model)?Yat(t)?(u=t,U(`[AdvisorTool] Server-side tool enabled with ${u} as the advisor model`)):U(`[AdvisorTool] Skipping advisor - ${t} is not a valid advisor model`):U(`[AdvisorTool] Skipping advisor - base model ${a.model} does not support advisor`)}}let d=await h1(a.model,r,a.getToolPermissionContext,a.agents,`query`),f=new Set;if(d)for(let e of r)Pc(e)&&f.add(e.name);d&&f.size===0&&!a.hasPendingMcpServers&&(U(`Tool search disabled: no deferred tools available to search`),d=!1);let p;p=d?r.filter(e=>!!(!f.has(e.name)||nc(e,`SearchExtraTools`))):r.filter(e=>!nc(e,Dc));let m=qne(),h=m&&p.some(e=>e.isMcp===!0);m&&!l.includes(`prompt-caching-scope-2026-01-05`)&&l.push(tre);let g=m?h?`none`:`system_prompt`:`none`,_=await Promise.all(p.map(e=>u9t(e,{getToolPermissionContext:a.getToolPermissionContext,tools:r,agents:a.agents,allowedAgentTypes:a.allowedAgentTypes,model:a.model})));d&&U(`Dynamic tool loading: 0/${f.size} deferred tools in API tools array (all via ExecuteExtraTool)`),OQ(`query_tool_schema_build_end`),G(`tengu_api_before_normalize`,{preNormalizedMessageCount:e.length}),OQ(`query_message_normalization_start`);let v=b4(e,p);if(OQ(`query_message_normalization_end`),d||(v=v.map(e=>{switch(e.type){case`user`:return KJt(e);case`assistant`:return qJt(e);default:return e}})),v=RYt(v),l.includes(`advisor-tool-2026-03-01`)||(v=zYt(v)),v=nen(v,100),ar()===`openai`){let{queryModelOpenAI:e}=await import(`./openai-Cm4gozk8.js`);yield*e(v,t,r,i,a);return}if(ar()===`gemini`){let{queryModelGemini:e}=await import(`./gemini-BEmbnRQR.js`);yield*e(v,t,p,i,a,n);return}if(ar()===`grok`){let{queryModelGrok:e}=await import(`./grok-BM6ZJ4w2.js`);yield*e(v,t,p,i,a);return}G(`tengu_api_after_normalize`,{postNormalizedMessageCount:v.length});let y=I9e(v);if(d&&!v1()){let e=r.filter(e=>f.has(e.name)).map(qle).sort().join(`
|
|
4555
4555
|
`);e&&(v=[...v,d4({content:`<system-reminder>\n<available-deferred-tools>\n${e}\n</available-deferred-tools>\nIMPORTANT: The tools listed above are deferred-loading — they are NOT in your tool list. To use them, you MUST first discover a tool via SearchExtraTools, then invoke it with ExecuteExtraTool.\n\nSearchExtraTools and ExecuteExtraTool are core tools already in your tool list right now — call them directly, do NOT use Bash/Glob to find them.\n\nSteps:\n1. SearchExtraTools({"query": "select:<tool_name>"}) — discover the tool and its schema\n2. ExecuteExtraTool({"tool_name": "<name>", "params": {...}}) — invoke it with correct parameters\n</system-reminder>`,isMeta:!0})])}let b=p.some(e=>oKe(e.name,mfe)),w=d&&b&&!G1();t=Sl([Xhe(y),Jhe({isNonInteractive:a.isNonInteractiveSession,hasAppendSystemPrompt:a.hasAppendSystemPrompt}),...t,...u?[Qat]:[],...w?[fpe]:[]].filter(Boolean));{let e=ppe(),n=mpe();if(qu(e)||qu(n)){let n=od();if(t=Sl([...t,`<!-- cache-break nonce: ${n} -->`]),qu(e))try{rme(e)}catch{}}}f9t(t);let E=a.enablePromptCaching??U9t(a.model),D=cen(t,E,{skipGlobalCacheForSystemPrompt:h,querySource:a.querySource}),ee=l.length>0,O=[...a.extraToolSchemas??[]];u&&O.push({type:`advisor_20260301`,name:`advisor`,model:u});let k=[..._,...O],te=pa()&&zoe()&&!$ie()&&fie(a.model)&&!!a.fastMode,ne=Zte()===!0;!ne&&c&&br()&&(fen?.isAutoModeActive()??!1)&&(ne=!0,zne(!0));let re=zte()===!0;!re&&te&&(re=!0,Ete(!0));let ie=Cte()===!0,ae=Vd(a.model,a.effortValue);Bbe({system:D,toolSchemas:k.filter(e=>!(`defer_loading`in e&&e.defer_loading)),querySource:a.querySource,model:a.model,agentId:a.agentId,fastMode:re,globalCacheStrategy:g,betas:l,autoModeActive:ne,isUsingOverage:K_.isUsingOverage??!1,cachedMCEnabled:ie,effortValue:ae,extraBodyParams:a9()});let oe=Pl()?{systemPrompt:t.join(`
|
|
4556
4556
|
|
|
4557
4557
|
`),querySource:a.querySource,tools:V(k)}:void 0,A=Yue(a.model,oe,v,te),se=Date.now(),j=Date.now(),ce=0,M=[],N,le,ue,de;function fe(){ien(N),N=void 0,de&&(de.body?.cancel().catch(()=>{}),de=void 0)}let pe=[],me,he=e=>{let t=[...l];!t.includes(`context-1m-2025-08-07`)&&Bae(e.model)&&t.push(Dre);let r=a9(ar()===`bedrock`?[...Fre(e.model)]:[]),i={...r.output_config??{}};G9t(ae,i,r,t,a.model),K9t(a.taskBudget,i,t),a.outputFormat&&!(`format`in i)&&(i.format=a.outputFormat,Gr(a.model)&&!t.includes(`structured-outputs-2025-12-15`)&&t.push(Cre));let o=e?.maxTokensOverride||a.maxOutputTokensOverride||f9(a.model),s=n.type!==`disabled`&&!x(process.env.CLAUDE_CODE_DISABLE_THINKING),u;if(s&&Pme(a.model))if(!x(process.env.CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING)&&Fme(a.model))u={type:`adaptive`};else{let e=poe(a.model);n.type===`enabled`&&n.budgetTokens!==void 0&&(e=n.budgetTokens),e=Math.min(o-1,e),u={budget_tokens:e,type:`enabled`}}let d=x9t({hasThinking:s,isRedactThinkingActive:t.includes(Tie),clearAllThinking:!1}),f=a.enablePromptCaching??U9t(e.model),p;pa()&&zoe()&&!$ie()&&fie(a.model)&&e.fastMode&&(p=`fast`),re&&!t.includes(`fast-mode-2026-02-01`)&&t.push(Koe),ne&&br()&&c&&!t.includes(`afk-mode-2026-01-31`)&&t.push(hre);let m=s?void 0:a.temperatureOverride??1,h=t.filter(Boolean);return me=h,{model:va(a.model),messages:sen(v,f,a.querySource,!1,null,pe,a.skipCacheWrite),system:D,tools:k,tool_choice:a.toolChoice,...ee&&{betas:h},metadata:s9(),max_tokens:o,thinking:u,...m!==void 0&&{temperature:m},...d&&ee&&t.includes(`context-management-2025-06-27`)&&{context_management:d},...r,...Object.keys(i).length>0&&{output_config:i},...p!==void 0&&{speed:p}}},ge;{let e=he({model:a.model,thinkingConfig:n}),t=e.messages.length,r=ee?e.betas??[]:[],i=e.output_config?.effort;e.thinking&&e.thinking.type!==`disabled`&&(ge=e.thinking),a.getToolPermissionContext().then(e=>{I9t({model:a.model,messagesLength:t,temperature:a.temperatureOverride??1,betas:r,permissionMode:e.mode,querySource:a.querySource,queryTracking:a.queryTracking,thinkingConfig:n,effortValue:i,fastMode:te,previousRequestId:o})})}let _e=[],ve=0,ye,be=[],xe=new Map,Se=Cl,Ce=0,we=null,Te=!1,Ee,De=0,Oe,ke,Ae=te,je=!1;try{OQ(`query_client_creation_start`);let t=o3(()=>vi({maxRetries:0,model:a.model,fetchOverride:a.fetchOverride,source:a.querySource}),async(e,t,n)=>{ce=t,Ae=n.fastMode??!1,j=Date.now(),M.push(j),OQ(`query_client_creation_end`);let r=he(n);Wse(r,a.querySource),De=r.max_tokens,OQ(`query_api_request_sent`),a.agentId||Gv(`api_request_sent`),ue=ar()===`firstParty`&&Wn()?od():void 0;let o=await e.beta.messages.create({...r,stream:!0},{signal:i,...ue&&{headers:{"x-client-request-id":ue}}}).withResponse();return OQ(`query_response_headers_received`),le=o.request_id,de=o.response,o.data},{model:a.model,fallbackModel:a.fallbackModel,thinkingConfig:n,...pa()?{fastMode:te}:!1,signal:i,querySource:a.querySource}),o;do o=await t.next(),`controller`in o.value||(yield o.value);while(!o.done);N=o.value,_e.length=0,ve=0,ye=void 0,be.length=0,xe.clear(),Se=Cl,we=null,je=!1;let c=x(process.env.CLAUDE_ENABLE_STREAM_WATCHDOG),l=parseInt(process.env.CLAUDE_STREAM_IDLE_TIMEOUT_MS||``,10)||9e4,d=l/2,f=!1,p=null,m=null,h=null;function g(){m!==null&&(clearTimeout(m),m=null),h!==null&&(clearTimeout(h),h=null)}function _(){g(),c&&(m=setTimeout(e=>{U(`Streaming idle warning: no chunks received for ${e/1e3}s`,{level:`warn`}),Ja(`warn`,`cli_streaming_idle_warning`)},d,d),h=setTimeout(()=>{f=!0,p=performance.now(),U(`Streaming idle timeout: no chunks received for ${l/1e3}s, aborting stream`,{level:`error`}),Ja(`error`,`cli_streaming_idle_timeout`),G(`tengu_streaming_idle_timeout`,{model:a.model,request_id:le??`unknown`,timeout_ms:l}),fe()},l))}_(),Wue(`api_call`);try{let t=!0,n=null,i=0,o=0;for await(let e of N){_();let c=Date.now();if(n!==null){let t=c-n;t>3e4&&(o++,i+=t,U(`Streaming stall detected: ${(t/1e3).toFixed(1)}s gap between events (stall #${o})`,{level:`warn`}),G(`tengu_streaming_stall`,{stall_duration_ms:t,stall_count:o,total_stall_time_ms:i,event_type:e.type,model:a.model,request_id:le??`unknown`}))}switch(n=c,t&&(U(`Stream started - received first chunk`),OQ(`query_first_chunk_received`),a.agentId||Gv(`first_chunk`),DRt(),t=!1),e.type){case`message_start`:ye=e.message,ve=Date.now()-j,Se=u9(Se,e.message?.usage),process.env.USER_TYPE===`ant`&&`research`in e.message&&(ke=e.message.research);break;case`content_block_start`:switch(e.content_block.type){case`tool_use`:be[e.index]={...e.content_block,input:``};break;case`server_tool_use`:be[e.index]={...e.content_block,input:``},e.content_block.name===`advisor`&&(je=!0,U(`[AdvisorTool] Advisor tool called`),G(`tengu_advisor_tool_call`,{model:a.model,advisor_model:u??`unknown`}));break;case`text`:xe.set(e.index,[]),be[e.index]={...e.content_block,text:``};break;case`thinking`:be[e.index]={...e.content_block,thinking:``,signature:``};break;default:be[e.index]={...e.content_block},e.content_block.type===`advisor_tool_result`&&(je=!1,U(`[AdvisorTool] Advisor tool result received`));break}break;case`content_block_delta`:{let t=be[e.index],n=e.delta;if(!t)throw G(`tengu_streaming_error`,{error_type:`content_block_not_found_delta`,part_type:e.type,part_index:e.index}),RangeError(`Content block not found`);if(n.type===`connector_text_delta`){if(t.type!==`connector_text`)throw G(`tengu_streaming_error`,{error_type:`content_block_type_mismatch_connector_text`,expected_type:`connector_text`,actual_type:t.type}),Error(`Content block is not a connector_text block`);t.connector_text+=n.connector_text}else switch(n.type){case`citations_delta`:break;case`input_json_delta`:if(t.type!==`tool_use`&&t.type!==`server_tool_use`)throw G(`tengu_streaming_error`,{error_type:`content_block_type_mismatch_input_json`,expected_type:`tool_use`,actual_type:t.type}),Error(`Content block is not a input_json block`);if(typeof t.input!=`string`)throw G(`tengu_streaming_error`,{error_type:`content_block_input_not_string`,input_type:typeof t.input}),Error(`Content block input is not a string`);t.input+=n.partial_json;break;case`text_delta`:if(t.type!==`text`)throw G(`tengu_streaming_error`,{error_type:`content_block_type_mismatch_text`,expected_type:`text`,actual_type:t.type}),Error(`Content block is not a text block`);xe.get(e.index)?.push(n.text);break;case`signature_delta`:if(t.type===`connector_text`){t.signature=n.signature;break}if(t.type!==`thinking`)throw G(`tengu_streaming_error`,{error_type:`content_block_type_mismatch_thinking_signature`,expected_type:`thinking`,actual_type:t.type}),Error(`Content block is not a thinking block`);t.signature=n.signature;break;case`thinking_delta`:if(t.type!==`thinking`)throw G(`tengu_streaming_error`,{error_type:`content_block_type_mismatch_thinking_delta`,expected_type:`thinking`,actual_type:t.type}),Error(`Content block is not a thinking block`);t.thinking+=n.thinking;break}process.env.USER_TYPE===`ant`&&`research`in e&&(ke=e.research);break}case`content_block_stop`:{let t=be[e.index];if(!t)throw G(`tengu_streaming_error`,{error_type:`content_block_not_found_stop`,part_type:e.type,part_index:e.index}),RangeError(`Content block not found`);if(!ye)throw G(`tengu_streaming_error`,{error_type:`partial_message_not_found`,part_type:e.type}),Error(`Message not found`);let n=xe.get(e.index);n&&(t.text=n.join(``),xe.delete(e.index));let i={message:{...ye,usage:ye.usage??{...Cl},content:w4([t],r,a.agentId)},requestId:le??void 0,type:`assistant`,uuid:od(),timestamp:new Date().toISOString(),...process.env.USER_TYPE===`ant`&&ke!==void 0&&{research:ke},...u&&{advisorModel:u}};_e.push(i),yield i;break}case`message_delta`:{if(Se=u9(Se,e.usage),process.env.USER_TYPE===`ant`&&`research`in e){ke=e.research;for(let e of _e)e.research=ke}we=e.delta.stop_reason;let t=_e.at(-1);t&&(t.message.usage=Se,t.message.stop_reason=we);let n=Zr(s,Se);Ce+=lG(n,Se,a.model);let r=Awe(e.delta.stop_reason,a.model);r&&(yield r),we===`max_tokens`&&(G(`tengu_max_tokens_reached`,{max_tokens:De}),yield u4({content:`${ev}: Claude's response exceeded the ${De} output token maximum. To configure this behavior, set the CLAUDE_CODE_MAX_OUTPUT_TOKENS environment variable.`,apiError:`max_output_tokens`,error:`max_output_tokens`})),we===`model_context_window_exceeded`&&(G(`tengu_context_window_exceeded`,{max_tokens:De,output_tokens:Se.output_tokens}),yield u4({content:`${ev}: The model has reached its context window limit.`,apiError:`max_output_tokens`,error:`max_output_tokens`}));break}case`message_stop`:break}yield{type:`stream_event`,event:e,...e.type===`message_start`?{ttftMs:ve}:void 0}}if(g(),f){let e=p===null?-1:Math.round(performance.now()-p);throw Ja(`info`,`cli_stream_loop_exited_after_watchdog_clean`),G(`tengu_stream_loop_exited_after_watchdog`,{request_id:le??`unknown`,exit_delay_ms:e,exit_path:`clean`,model:a.model}),p=null,Error(`Stream idle timeout - no chunks received`)}if(!ye||_e.length===0&&!we)throw U(ye?`Stream completed with message_start but no content blocks completed - triggering non-streaming fallback`:`Stream completed without receiving message_start event - triggering non-streaming fallback`,{level:`error`}),G(`tengu_stream_no_events`,{model:a.model,request_id:le??`unknown`}),Error(`Stream ended without receiving any events`);o>0&&(U(`Streaming completed with ${o} stall(s), total stall time: ${(i/1e3).toFixed(1)}s`,{level:`warn`}),G(`tengu_streaming_stall_summary`,{stall_count:o,total_stall_time_ms:i,model:a.model,request_id:le??`unknown`})),Vbe(a.querySource,Se.cache_read_input_tokens,Se.cache_creation_input_tokens,e,a.agentId,le);let c=de;c&&(pwe(c.headers),ar()===`bedrock`&&Ol(`bedrock`,D9t.parseHeaders(c.headers)),Oe=c.headers)}catch(e){if(g(),f&&p!==null){let t=Math.round(performance.now()-p);Ja(`info`,`cli_stream_loop_exited_after_watchdog_error`),G(`tengu_stream_loop_exited_after_watchdog`,{request_id:le??`unknown`,exit_delay_ms:t,exit_path:`error`,error_name:e instanceof Error?e.name:`unknown`,model:a.model})}if(e instanceof S)throw i.aborted?(U(`Streaming aborted by user: ${H(e)}`),je&&G(`tengu_advisor_tool_interrupted`,{model:a.model,advisor_model:u??`unknown`}),e):(U(`Streaming timeout (SDK abort): ${e.message}`,{level:`error`}),new T({message:`Request timed out`}));if(x(process.env.CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK)||Jr(`tengu_disable_streaming_to_non_streaming_fallback`,!1))throw U(`Error streaming (non-streaming fallback disabled): ${H(e)}`,{level:`error`}),G(`tengu_streaming_fallback_to_non_streaming`,{model:a.model,error:e instanceof Error?e.name:String(e),attemptNumber:ce,maxOutputTokens:De,thinkingType:n.type,...n.type===`enabled`&&{thinkingBudgetTokens:n.budgetTokens},fallback_disabled:!0,request_id:le??`unknown`,fallback_cause:f?`watchdog`:`other`}),e;U(`Error streaming, falling back to non-streaming mode: ${H(e)}`,{level:`error`}),Te=!0,a.onStreamingFallback&&a.onStreamingFallback(),G(`tengu_streaming_fallback_to_non_streaming`,{model:a.model,error:e instanceof Error?e.name:String(e),attemptNumber:ce,maxOutputTokens:De,thinkingType:n.type,...n.type===`enabled`&&{thinkingBudgetTokens:n.budgetTokens},fallback_disabled:!1,request_id:le??`unknown`,fallback_cause:f?`watchdog`:`other`}),Ja(`info`,`cli_nonstreaming_fallback_started`),G(`tengu_nonstreaming_fallback_started`,{request_id:le??`unknown`,model:a.model,fallback_cause:f?`watchdog`:`other`});let t=yield*$9t({model:a.model,source:a.querySource},{model:a.model,fallbackModel:a.fallbackModel,thinkingConfig:n,...pa()&&{fastMode:te},signal:i,initialConsecutive529Errors:+!!c3(e),querySource:a.querySource},he,(e,t,n)=>{ce=e,De=n},e=>Wse(e,a.querySource),le),o={message:{...t,content:w4(t.content,r,a.agentId)},requestId:le??void 0,type:`assistant`,uuid:od(),timestamp:new Date().toISOString(),...process.env.USER_TYPE===`ant`&&ke!==void 0&&{research:ke},...u&&{advisorModel:u}};_e.push(o),Ee=o,yield o}finally{g()}}catch(t){if(t instanceof g3)throw t;if(!Te&&t instanceof h3&&t.originalError instanceof C&&t.originalError.status===404){let s=t.originalError.requestID??`unknown`;U(`Streaming endpoint returned 404, falling back to non-streaming mode`,{level:`warn`}),Te=!0,a.onStreamingFallback&&a.onStreamingFallback(),G(`tengu_streaming_fallback_to_non_streaming`,{model:a.model,error:`404_stream_creation`,attemptNumber:ce,maxOutputTokens:De,thinkingType:n.type,...n.type===`enabled`&&{thinkingBudgetTokens:n.budgetTokens},request_id:s,fallback_cause:`404_stream_creation`});try{let e=yield*$9t({model:a.model,source:a.querySource},{model:a.model,fallbackModel:a.fallbackModel,thinkingConfig:n,...pa()&&{fastMode:te},signal:i},he,(e,t,n)=>{ce=e,De=n},e=>Wse(e,a.querySource),s),t={message:{...e,content:w4(e.content,r,a.agentId)},requestId:le??void 0,type:`assistant`,uuid:od(),timestamp:new Date().toISOString(),...process.env.USER_TYPE===`ant`&&ke!==void 0&&{research:ke},...u&&{advisorModel:u}};_e.push(t),Ee=t,yield t}catch(t){if(t instanceof g3)throw t;U(`Non-streaming fallback also failed: ${H(t)}`,{level:`error`});let n=t,r=a.model;t instanceof h3&&(n=t.originalError,r=t.retryContext.model),n instanceof C&&G_(n);let i=le||(n instanceof C?n.requestID:void 0)||(n instanceof C?n.error?.request_id:void 0);if(L9t({error:n,model:r,messageCount:v.length,messageTokens:a_(v),durationMs:Date.now()-j,durationMsIncludingRetries:Date.now()-se,attempt:ce,requestId:i,clientRequestId:ue,didFallBackToNonStreaming:Te,queryTracking:a.queryTracking,querySource:a.querySource,llmSpan:A,fastMode:Ae,previousRequestId:o}),n instanceof S){fe();return}yield $_(n,r,{messages:e,messagesForAPI:v}),fe();return}}else{U(`Error in API request: ${H(t)}`,{level:`error`});let n=t,r=a.model;t instanceof h3&&(n=t.originalError,r=t.retryContext.model),n instanceof C&&G_(n);let i=le||(n instanceof C?n.requestID:void 0)||(n instanceof C?n.error?.request_id:void 0);if(L9t({error:n,model:r,messageCount:v.length,messageTokens:a_(v),durationMs:Date.now()-j,durationMsIncludingRetries:Date.now()-se,attempt:ce,requestId:i,clientRequestId:ue,didFallBackToNonStreaming:Te,queryTracking:a.queryTracking,querySource:a.querySource,llmSpan:A,fastMode:Ae,previousRequestId:o}),n instanceof S){fe();return}yield $_(n,r,{messages:e,messagesForAPI:v}),fe();return}}finally{if(Lue(`api_call`),fe(),Ee){let e=Ee.message.usage;Se=u9(Cl,e),we=Ee.message.stop_reason;let t=Zr(s,e);Ce+=lG(t,e,a.model)}}le&&!yn()&&(a.querySource.startsWith(`repl_main_thread`)||a.querySource===`sdk`)&&Hte(le);let Me=v.length,Ne=a_(v);xx(a.langfuseTrace??null,{model:s,provider:ar(),input:LP(v,t),output:zP(_e),usage:{input_tokens:Se.input_tokens,output_tokens:Se.output_tokens,cache_creation_input_tokens:Se.cache_creation_input_tokens,cache_read_input_tokens:Se.cache_read_input_tokens},startTime:new Date(se),endTime:new Date,completionStartTime:ve>0?new Date(j+ve):void 0,tools:RP(_),thinking:ge}),a.getToolPermissionContext().then(e=>{z9t({model:_e[0]?.message.model??ye?.model??a.model,preNormalizedModel:a.model,usage:Se,start:j,startIncludingRetries:se,attempt:ce,messageCount:Me,messageTokens:Ne,requestId:le??null,stopReason:we,ttftMs:ve,didFallBackToNonStreaming:Te,querySource:a.querySource,headers:Oe,costUSD:Ce,queryTracking:a.queryTracking,permissionMode:e.mode,newMessages:_e,llmSpan:A,globalCacheStrategy:g,requestSetupMs:j-se,attemptStartTimes:M,fastMode:Ae,previousRequestId:o,betas:me})}),fe()}function ien(e){if(e)try{e.controller.signal.aborted||e.controller.abort()}catch{}}function u9(e,t){return t?{input_tokens:t.input_tokens!==null&&t.input_tokens>0?t.input_tokens:e.input_tokens,cache_creation_input_tokens:t.cache_creation_input_tokens!==null&&t.cache_creation_input_tokens>0?t.cache_creation_input_tokens:e.cache_creation_input_tokens,cache_read_input_tokens:t.cache_read_input_tokens!==null&&t.cache_read_input_tokens>0?t.cache_read_input_tokens:e.cache_read_input_tokens,output_tokens:t.output_tokens??e.output_tokens,server_tool_use:{web_search_requests:t.server_tool_use?.web_search_requests??e.server_tool_use.web_search_requests,web_fetch_requests:t.server_tool_use?.web_fetch_requests??e.server_tool_use.web_fetch_requests},service_tier:e.service_tier,cache_creation:{ephemeral_1h_input_tokens:t.cache_creation?.ephemeral_1h_input_tokens??e.cache_creation.ephemeral_1h_input_tokens,ephemeral_5m_input_tokens:t.cache_creation?.ephemeral_5m_input_tokens??e.cache_creation.ephemeral_5m_input_tokens},inference_geo:e.inference_geo,iterations:t.iterations??e.iterations,speed:t.speed??e.speed}:{...e}}function aen(e,t){return{input_tokens:e.input_tokens+t.input_tokens,cache_creation_input_tokens:e.cache_creation_input_tokens+t.cache_creation_input_tokens,cache_read_input_tokens:e.cache_read_input_tokens+t.cache_read_input_tokens,output_tokens:e.output_tokens+t.output_tokens,server_tool_use:{web_search_requests:e.server_tool_use.web_search_requests+t.server_tool_use.web_search_requests,web_fetch_requests:e.server_tool_use.web_fetch_requests+t.server_tool_use.web_fetch_requests},service_tier:t.service_tier,cache_creation:{ephemeral_1h_input_tokens:e.cache_creation.ephemeral_1h_input_tokens+t.cache_creation.ephemeral_1h_input_tokens,ephemeral_5m_input_tokens:e.cache_creation.ephemeral_5m_input_tokens+t.cache_creation.ephemeral_5m_input_tokens},inference_geo:t.inference_geo,iterations:t.iterations,speed:t.speed}}function oen(e){return typeof e==`object`&&!!e&&`type`in e&&e.type===`tool_result`&&`tool_use_id`in e}function sen(e,t,n,r=!1,i,a,o=!1){G(`tengu_api_cache_breakpoints`,{totalMessageCount:e.length,cachingEnabled:t,skipCacheWrite:o});let s=o?e.length-2:e.length-1,c=e.map((e,r)=>{let i=r===s;return e.type===`user`?J9t(e,i,t,n):Y9t(e,i,t,n)});if(!r)return c;let l=new Set,u=e=>{let t=e.edits.filter(e=>l.has(e.cache_reference)?!1:(l.add(e.cache_reference),!0));return{...e,edits:t}};for(let e of a??[]){let t=c[e.userMessageIndex];if(t&&t.role===`user`){Array.isArray(t.content)||(t.content=[{type:`text`,text:t.content}]);let n=u(e.block);n.edits.length>0&&k9t(t.content,n)}}if(i&&c.length>0){let e=u(i);if(e.edits.length>0)for(let t=c.length-1;t>=0;t--){let n=c[t];if(n&&n.role===`user`){Array.isArray(n.content)||(n.content=[{type:`text`,text:n.content}]),k9t(n.content,e),U(`Added cache_edits block with ${e.edits.length} deletion(s) to message[${t}]: ${e.edits.map(e=>e.cache_reference).join(`, `)}`);break}}}if(t){let e=-1;for(let t=0;t<c.length;t++){let n=c[t];if(Array.isArray(n.content))for(let r of n.content)r&&typeof r==`object`&&`cache_control`in r&&(e=t)}if(e>=0)for(let t=0;t<e;t++){let e=c[t];if(e.role!==`user`||!Array.isArray(e.content))continue;let n=!1;for(let t=0;t<e.content.length;t++){let r=e.content[t];r&&oen(r)&&(n||(e.content=[...e.content],n=!0),e.content[t]=Object.assign({},r,{cache_reference:r.tool_use_id}))}}}return c}function cen(e,t,n){return p9t(e,{skipGlobalCacheForSystemPrompt:n?.skipGlobalCacheForSystemPrompt}).map(e=>({type:`text`,text:e.text,...t&&e.cacheScope!==null&&{cache_control:o9({scope:e.cacheScope,querySource:n?.querySource})}}))}async function d9({systemPrompt:e=Sl([]),userPrompt:t,outputFormat:n,signal:r,options:i}){return(await C1([d4({content:e.map(e=>({type:`text`,text:e}))}),d4({content:t})],async()=>[await c9({messages:[d4({content:t})],systemPrompt:e,thinkingConfig:{type:`disabled`},tools:[],signal:r,options:{...i,model:rr(),enablePromptCaching:i.enablePromptCaching??!1,outputFormat:n,async getToolPermissionContext(){return Ys()}}})]))[0]}async function len({systemPrompt:e=Sl([]),userPrompt:t,outputFormat:n,signal:r,options:i}){return(await C1([d4({content:e.map(e=>({type:`text`,text:e}))}),d4({content:t})],async()=>[await c9({messages:[d4({content:t})],systemPrompt:e,thinkingConfig:{type:`disabled`},tools:[],signal:r,options:{...i,enablePromptCaching:i.enablePromptCaching??!1,outputFormat:n,async getToolPermissionContext(){return Ys()}}})]))[0]}function uen(e,t){let n=Math.min(e.max_tokens,t),r={...e};return r.thinking?.type===`enabled`&&r.thinking.budget_tokens&&(r.thinking={...r.thinking,budget_tokens:Math.min(r.thinking.budget_tokens,n-1)}),{...r,max_tokens:n}}function den(){return Jr(`tengu_otk_slot_v1`,!1)}function f9(e){let t=si(e),n=den()?Math.min(t.default,Jae):t.default;return lH(`CLAUDE_CODE_MAX_OUTPUT_TOKENS`,process.env.CLAUDE_CODE_MAX_OUTPUT_TOKENS,n,t.upperLimit).effective}var fen,pen,p9=n((()=>{Pn(),Nf(),Sc(),Ff(),i9(),Wi(),zr(),xn(),fi(),Gd(),y(),ka(),R9e(),Ao(),i3(),hr(),z_(),gpe(),s_(),wr(),Y_(),E9t(),O9t(),kl(),w(),tn(),Ln(),uG(),$R(),ia(),iu(),dpe(),W(),Ya(),ca(),Eb(),Zv(),K1(),oi(),NQ(),Ld(),x1(),yh(),Gc(),A9t(),uH(),as(),Mr(),Tl(),Va(),Ml(),Ua(),Yh(),JV(),oE(),wx(),BP(),tUt(),Yr(),dv(),H9t(),Vh(),_3(),fen=(tJ(),e(Zq)),pen=64e3}));function men(e){let{toolName:t,policySpec:n,eventName:r,querySource:i,preCheck:a}=e,o=Lo((e,s,c)=>{let l=gen(e,s,c,t,n,r,i,a);return l.catch(()=>{o.cache.get(e)===l&&o.cache.delete(e)}),l},e=>e,200);return o}function hen(e,t){let n=Lo((r,i,a)=>{let o=_en(r,i,a,e,t);return o.catch(()=>{n.cache.get(r)===o&&n.cache.delete(r)}),o},e=>e,200);return n}async function gen(e,t,n,r,i,a,o,s){if(s){let t=s(e);if(t!==null)return t}let c,l=Date.now(),u=null;try{c=setTimeout((e,t)=>{let n=`[${e}Tool] Pre-flight check is taking longer than expected. Run with ANTHROPIC_LOG=debug to check for failed or slow API requests.`;t?process.stderr.write(V({level:`warn`,message:n})+`
|