@readmagic/workmate 0.0.28 → 0.0.29
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-Bmgh8VS3.js → AddWorkspaceDirectory-C0lrhffT.js} +1 -1
- package/dist/chunks/AgentsMdExternalIncludesDialog-DIahWLha.js +1 -0
- package/dist/chunks/{AgentsMdExternalIncludesDialog-BJfHqScU.js → AgentsMdExternalIncludesDialog-Dmjjx4ql.js} +1 -1
- package/dist/chunks/App-COz7knHS.js +1 -0
- package/dist/chunks/{BackgroundTasksDialog-WkoL4g5Q.js → BackgroundTasksDialog-5IkCQ8lN.js} +2 -2
- package/dist/chunks/{BypassPermissionsModeDialog-BT9yl0Qt.js → BypassPermissionsModeDialog-g1FMGfQF.js} +1 -1
- package/dist/chunks/{CustomSelect-t4wXuXWH.js → CustomSelect-BsEd2To5.js} +1 -1
- package/dist/chunks/{DiffDialog-CXZxnb7Y.js → DiffDialog-Cwf8CdxZ.js} +5 -5
- package/dist/chunks/Doctor-CcLoI7tF.js +1 -0
- package/dist/chunks/Doctor-GmT5aeAc.js +3 -0
- package/dist/chunks/ExitFlow-DPgUFqeC.js +2 -0
- package/dist/chunks/{InvalidConfigDialog-riLYEaUP.js → InvalidConfigDialog-Di6HZYDV.js} +1 -1
- package/dist/chunks/{InvalidSettingsDialog-BGXl3V1A.js → InvalidSettingsDialog-BHL-MERJ.js} +1 -1
- package/dist/chunks/{KeybindingProviderSetup-syiDgtpB.js → KeybindingProviderSetup-eE3o0bfp.js} +1 -1
- package/dist/chunks/MCPConnectionManager-D-qpUJLV.js +1 -0
- package/dist/chunks/MCPToolListView-DtHRw4jQ.js +1 -0
- package/dist/chunks/{McpParsingWarnings-Czze2JPd.js → McpParsingWarnings-ByyErvR3.js} +1 -1
- package/dist/chunks/MessageSelector-CFz30wBL.js +3 -0
- package/dist/chunks/Messages-CfY-Oj3M.js +10 -0
- package/dist/chunks/{Onboarding-CD_Uv5h9.js → Onboarding-BfWLRx3n.js} +1 -1
- package/dist/chunks/{PromptInputFooterSuggestions-CHXJsTtQ.js → PromptInputFooterSuggestions-BRyJj7XR.js} +1 -1
- package/dist/chunks/{PromptInputHelpMenu-BZIVCV7V.js → PromptInputHelpMenu-DLuRCXVS.js} +1 -1
- package/dist/chunks/{ProviderSetup-CwMvjmjh.js → ProviderSetup-CKZGG2B9.js} +1 -1
- package/dist/chunks/QueryEngine-B27MOtBA.js +1 -0
- package/dist/chunks/{REPL-CtFtb35A.js → REPL-DMRD5wSN.js} +23 -23
- package/dist/chunks/REPL-gzolQvzu.js +1 -0
- package/dist/chunks/ResumeConversation-7eURPHmQ.js +1 -0
- package/dist/chunks/SearchExtraToolsTool-BINZTstr.js +1 -0
- package/dist/chunks/Settings-4TNYpfUs.js +2 -0
- package/dist/chunks/Spinner-BgjmQLjw.js +1 -0
- package/dist/chunks/{TextInput-ou7ZhpVY.js → TextInput-BVEWdRz9.js} +5 -5
- package/dist/chunks/{ThemePicker-CVFWqSc7.js → ThemePicker-th2jdUjh.js} +1 -1
- package/dist/chunks/{TrustDialog-CGXv_LF4.js → TrustDialog-YsYqHyRR.js} +1 -1
- package/dist/chunks/{_baseEach-BYhqv77g.js → _baseEach-Bz5fQbIq.js} +1 -1
- package/dist/chunks/{add-dir-BSizpuef.js → add-dir-BsO6l8Ue.js} +1 -1
- package/dist/chunks/{agentDisplay-JKfYFD1m.js → agentDisplay-ChkgiTIH.js} +1 -1
- package/dist/chunks/{agents-MEaV8P2G.js → agents-BV1nan6b.js} +6 -6
- package/dist/chunks/{agents-BDTCH6YB.js → agents-DqEB6iwV.js} +1 -1
- package/dist/chunks/allErrors-CkdguCDv.js +1 -0
- package/dist/chunks/{backgroundHousekeeping-CsXlkIg3.js → backgroundHousekeeping-1VsWy8xd.js} +1 -1
- package/dist/chunks/backgroundHousekeeping-pMtrl4K2.js +1 -0
- package/dist/chunks/{branch-BllXcYwS.js → branch-CTIHtpwz.js} +2 -2
- package/dist/chunks/{bridgeControl-aDnUrYZR.js → bridgeControl-C8xaGuwO.js} +1 -1
- package/dist/chunks/{btw-DzaRBa6o.js → btw-BA39Zrhm.js} +1 -1
- package/dist/chunks/caches-DHZHqVhf.js +1 -0
- package/dist/chunks/caches-fqs-Y-kW.js +1 -0
- package/dist/chunks/channel-B5FkNSZ3.js +1 -0
- package/dist/chunks/{channel-Gw6skpUh.js → channel-C5yKM1wf.js} +1 -1
- package/dist/chunks/{clear-CDQs9_5P.js → clear-BmlaYYrD.js} +1 -1
- package/dist/chunks/commands-EUcHifS4.js +1 -0
- package/dist/chunks/compact-D3uePeI7.js +2 -0
- package/dist/chunks/config-GgGdlJ9h.js +1 -0
- package/dist/chunks/{context-TkdzCK3Y.js → context-CBEWyVpE.js} +1 -1
- package/dist/chunks/{context-noninteractive-BcBo64vo.js → context-noninteractive-B03nuxfN.js} +2 -2
- package/dist/chunks/context-noninteractive-BLCyyyGL.js +1 -0
- package/dist/chunks/conversation-BFL0rEIx.js +1 -0
- package/dist/chunks/conversation-D-ker4RO.js +1 -0
- package/dist/chunks/{conversationRecovery-_hWC7JBO.js → conversationRecovery-Bt84CYO6.js} +1 -1
- package/dist/chunks/crossProjectResume-DwlYY6lV.js +40 -0
- package/dist/chunks/{diff-BzVUPO4Z.js → diff-CewYzu3Y.js} +1 -1
- package/dist/chunks/doctor-CrQ0UfG2.js +1 -0
- package/dist/chunks/{entry-333L52Lo.js → entry-DdVUdGWV.js} +3 -3
- package/dist/chunks/exit-QwCo2aJo.js +1 -0
- package/dist/chunks/{extraUsage-CmgRR-zH.js → extraUsage-Cu0aV35i.js} +1 -1
- package/dist/chunks/extractMemories-DHlbRc5g.js +1 -0
- package/dist/chunks/{fast-D7oNjaZ3.js → fast-BlhpCQ2f.js} +1 -1
- package/dist/chunks/fast-C3JeBy3A.js +1 -0
- package/dist/chunks/{fetchModelList-Cv1vWIpC.js → fetchModelList-DjFCMjVN.js} +1 -1
- package/dist/chunks/fetchModelList-L2XarfAj.js +1 -0
- package/dist/chunks/{fileSuggestions-DF3HTRKr.js → fileSuggestions-BRwKV_KA.js} +2 -2
- package/dist/chunks/{gemini-ou7_YyXc.js → gemini-I-M5_sUA.js} +2 -2
- package/dist/chunks/{generateSessionName-CeN9EZNY.js → generateSessionName-CJ0sh6HD.js} +1 -1
- package/dist/chunks/{goal-CCxo4Wyf.js → goal-DIrBBT5J.js} +3 -3
- package/dist/chunks/{grok-BMmUcNbI.js → grok-ZLjJN6b9.js} +1 -1
- package/dist/chunks/{help-CYtogTZk.js → help-CDMjVOl6.js} +1 -1
- package/dist/chunks/{hooks-ByVkvodY.js → hooks-BNKCE023.js} +2 -2
- package/dist/chunks/hooks-ERYtmuNW.js +1 -0
- package/dist/chunks/{install-DIxyfdXG.js → install-xlfTw1j6.js} +1 -1
- package/dist/chunks/{instrumentation-BmHivmxs.js → instrumentation-DSt0UvGn.js} +3 -3
- package/dist/chunks/{job-D534P26R.js → job-BVElGsu0.js} +1 -1
- package/dist/chunks/{launchLocalMemory-CWXLb3KF.js → launchLocalMemory-DUkJCKmd.js} +2 -2
- package/dist/chunks/{launchOnboarding-CocPmwzz.js → launchOnboarding-BvD-E_jC.js} +1 -1
- package/dist/chunks/loadAgentsDir-BImZsKrh.js +1 -0
- package/dist/chunks/{loadAgentsDir-bmpKLPdG.js → loadAgentsDir-BfLCckVj.js} +22 -22
- package/dist/chunks/loadPluginHooks-BPwWtBzO.js +1 -0
- package/dist/chunks/{localSearch-Da8cVYoI.js → localSearch-BHG8sp8p.js} +1 -1
- package/dist/chunks/localSearch-D3rvcRRC.js +1 -0
- package/dist/chunks/{logoUtils-qNuBc2nI.js → logoUtils-BsNLv-qi.js} +1 -1
- package/dist/chunks/{magicDocs-BsEiBLQl.js → magicDocs-Bue9vxzY.js} +2 -2
- package/dist/chunks/{main-B31aPMPP.js → main-U71X4Thd.js} +22 -22
- package/dist/chunks/{mcp-Dd8TBfQQ.js → mcp-C4CxCMwJ.js} +3 -3
- package/dist/chunks/mcp-D9HFARDy.js +1 -0
- package/dist/chunks/mcp-De3QGKvT.js +2 -0
- package/dist/chunks/memory-DVRdJFfI.js +1 -0
- package/dist/chunks/{mode-SM8doWgC.js → mode-Bd5w-RBX.js} +2 -2
- package/dist/chunks/{model-C2r-PaR4.js → model-BCIcUhrc.js} +1 -1
- package/dist/chunks/{model-Dd3x121y.js → model-BIf2i1is.js} +1 -1
- package/dist/chunks/{modelOptions-BQL4gbNk.js → modelOptions-COIU5U3w.js} +1 -1
- package/dist/chunks/{nativeInstaller-DMkZdsof.js → nativeInstaller-CGSNzGNn.js} +1 -1
- package/dist/chunks/{notifications-BwS1XsnZ.js → notifications-B5gzCmPC.js} +1 -1
- package/dist/chunks/{onChangeAppState-C9cYQJPF.js → onChangeAppState-NWwSE-I4.js} +1 -1
- package/dist/chunks/{openai-Bea4I2Od.js → openai-CyJ3m4dI.js} +2 -2
- package/dist/chunks/{overlayContext-C5WPACKC.js → overlayContext-DYrGDe63.js} +1 -1
- package/dist/chunks/{partition-CKgWl7p4.js → partition-BavNaw1S.js} +1 -1
- package/dist/chunks/permissions-CLYcBXIu.js +3 -0
- package/dist/chunks/{pidLock-CqkC3-nD.js → pidLock-Bao7SU6Z.js} +2 -2
- package/dist/chunks/{plan-Ce6wfjjI.js → plan-Dwj_ZX8G.js} +1 -1
- package/dist/chunks/plugin-Cscvf8st.js +17 -0
- package/dist/chunks/{pluginAutoupdate-ByokIVEs.js → pluginAutoupdate-D5XyiZrP.js} +1 -1
- package/dist/chunks/pluginBlocklist-CpkjXXKQ.js +1 -0
- package/dist/chunks/pluginCliCommands-DmLsxs1M.js +1 -0
- package/dist/chunks/{pluginFlagging-B2ZX5_oB.js → pluginFlagging-CRuX6sHR.js} +1 -1
- package/dist/chunks/pluginOperations-orq3bOCp.js +2 -0
- package/dist/chunks/{pluginStartupCheck-QG0d95dE.js → pluginStartupCheck-DGDl1WOZ.js} +1 -1
- package/dist/chunks/pluginStartupCheck-GHO77nmg.js +1 -0
- package/dist/chunks/plugins-Cq5c-Qs1.js +4 -0
- package/dist/chunks/{print-dUT7E1g9.js → print-zo7Z--Ll.js} +9 -9
- package/dist/chunks/processBashCommand-C7oVqf0B.js +1 -0
- package/dist/chunks/processSlashCommand-CPQB5_0w.js +5 -0
- package/dist/chunks/prompt-CAzFDybL.js +1 -0
- package/dist/chunks/prompt-Cm8SKZXY.js +1 -0
- package/dist/chunks/{prompt-BnDapYGL.js → prompt-DaYH88Oe.js} +1 -1
- package/dist/chunks/{reconciler-C_HKsocm.js → reconciler-B5Kr4do0.js} +1 -1
- package/dist/chunks/refresh-DurNMJeS.js +1 -0
- package/dist/chunks/{reject-Tug1RmkE.js → reject-CzjtO3fU.js} +1 -1
- package/dist/chunks/{reload-plugins-CL9LWzpq.js → reload-plugins-C38i_Eb3.js} +1 -1
- package/dist/chunks/rename-BV-3ZpFx.js +1 -0
- package/dist/chunks/{resume-BZ42SpS2.js → resume-CUzQIor4.js} +2 -2
- package/dist/chunks/{runtimeObserver-DT5P2_XL.js → runtimeObserver-BKoQ5IEO.js} +4 -4
- package/dist/chunks/{runtimeObserver-BLq2guVy.js → runtimeObserver-Ess1Cn8Y.js} +1 -1
- package/dist/chunks/sandbox-adapter-ClRO21Ci.js +1 -0
- package/dist/chunks/{sandbox-toggle-DghmaJhK.js → sandbox-toggle-Bp6Xpjh3.js} +1 -1
- package/dist/chunks/searchExtraTools-CV_fkuD6.js +1 -0
- package/dist/chunks/{select-CaxQ-BVq.js → select-Bm29ymsI.js} +1 -1
- package/dist/chunks/sessionFileAccessHooks-B5kAD4ol.js +1 -0
- package/dist/chunks/{sessionObserver-DBoZUvWL.js → sessionObserver-CBlzrJt1.js} +1 -1
- package/dist/chunks/sessionObserver-CayxkuxO.js +1 -0
- package/dist/chunks/sessionStorage-vLxCo1Mh.js +1 -0
- package/dist/chunks/{sessionTracing-5a7HDF4e.js → sessionTracing-TDsq54Uc.js} +1 -1
- package/dist/chunks/setup-BbyfyeQk.js +3 -0
- package/dist/chunks/{shadowedRuleDetection-L3tnySui.js → shadowedRuleDetection-BG3jtA9Y.js} +1 -1
- package/dist/chunks/{sideQuestion-BJTVma-5.js → sideQuestion-C8GNVo4R.js} +3 -3
- package/dist/chunks/{sinks-CV0SWuZW.js → sinks-BafJR6Fw.js} +1 -1
- package/dist/chunks/sinks-CHtjg7sn.js +1 -0
- package/dist/chunks/skillChangeDetector-CY17weG4.js +1 -0
- package/dist/chunks/{skillGapStore-Cposc03e.js → skillGapStore-Cl4J1WoZ.js} +2 -2
- package/dist/chunks/{skillLifecycle-RXQp0JU7.js → skillLifecycle-DdfeUHBf.js} +2 -2
- package/dist/chunks/{skillSearchPanel-B2pjskqk.js → skillSearchPanel-DtQYF9gN.js} +4 -4
- package/dist/chunks/{skills-D2ZjMtv4.js → skills-Fd12LJal.js} +1 -1
- package/dist/chunks/status-CGEMRiPI.js +1 -0
- package/dist/chunks/statusNoticeHelpers-D0tonVy0.js +1 -0
- package/dist/chunks/{switcher-rep86o4_.js → switcher-BCq9Az_q.js} +1 -1
- package/dist/chunks/switcher-DQMr6Anx.js +1 -0
- package/dist/chunks/{tasks-B4coTfrq.js → tasks-DQmkY_xD.js} +1 -1
- package/dist/chunks/{templateJobs-C5ukh6H3.js → templateJobs-CEDUbFAY.js} +1 -1
- package/dist/chunks/{theme-7RmvErYJ.js → theme-DQjJ4R0o.js} +1 -1
- package/dist/chunks/tipRegistry-BwxZ_G0j.js +2 -0
- package/dist/chunks/{toolEventObserver-Dzwzi5Vi.js → toolEventObserver-DdZ30on9.js} +1 -1
- package/dist/chunks/toolPool-CWIXwdX7.js +1 -0
- package/dist/chunks/{useExitOnCtrlCDWithKeybindings-BT0nexZw.js → useExitOnCtrlCDWithKeybindings-ClrtNKJ6.js} +1 -1
- package/dist/chunks/useMainLoopModel-CULw8pB_.js +1 -0
- package/dist/chunks/{useManagePlugins-pGaGzsEg.js → useManagePlugins-CmsPSHor.js} +1 -1
- package/dist/chunks/useMergedTools-C8PxReh0.js +1 -0
- package/dist/chunks/{useSearchInput-j12K4wEo.js → useSearchInput-BZhTzjgN.js} +1 -1
- package/dist/chunks/useSettingsErrors-GWIxCYyd.js +1 -0
- package/dist/chunks/{util-CCEK8oze.js → util-Bih2g-pV.js} +1 -1
- package/dist/chunks/validatePlugin-BwcC_Wbr.js +1 -0
- package/dist/chunks/worktree-BB9lFWBB.js +1 -0
- package/dist/cli.js +1 -1
- package/package.json +1 -1
- package/dist/chunks/AgentsMdExternalIncludesDialog-BjbUilCE.js +0 -1
- package/dist/chunks/App-COdpsR2w.js +0 -1
- package/dist/chunks/Doctor-B6isid5K.js +0 -1
- package/dist/chunks/Doctor-COj-tZBc.js +0 -3
- package/dist/chunks/ExitFlow-CcMYH5iI.js +0 -2
- package/dist/chunks/MCPConnectionManager-C7RmKzJh.js +0 -1
- package/dist/chunks/MCPToolListView-CewNLJus.js +0 -1
- package/dist/chunks/MessageSelector-Kc6JlnDX.js +0 -3
- package/dist/chunks/Messages-BvFYO4Zn.js +0 -10
- package/dist/chunks/QueryEngine-DAwfp_ht.js +0 -1
- package/dist/chunks/REPL-tFT1FGQF.js +0 -1
- package/dist/chunks/ResumeConversation-CERzSBvg.js +0 -1
- package/dist/chunks/SearchExtraToolsTool-ndh4aEwQ.js +0 -1
- package/dist/chunks/Settings-CPaqWNdP.js +0 -2
- package/dist/chunks/Spinner-C0qHjfIY.js +0 -1
- package/dist/chunks/allErrors-Dhnf6rqg.js +0 -1
- package/dist/chunks/backgroundHousekeeping-Bu-zRFCx.js +0 -1
- package/dist/chunks/caches-CMF-MmR-.js +0 -1
- package/dist/chunks/caches-CW5YnYNS.js +0 -1
- package/dist/chunks/channel-DVx21qde.js +0 -1
- package/dist/chunks/commands-CfYMwgP7.js +0 -1
- package/dist/chunks/compact-6F2tuItE.js +0 -2
- package/dist/chunks/config-BDkzWBnL.js +0 -1
- package/dist/chunks/context-noninteractive-oFcnY1Er.js +0 -1
- package/dist/chunks/conversation-CYZyg1U1.js +0 -1
- package/dist/chunks/conversation-DXzlRhNw.js +0 -1
- package/dist/chunks/crossProjectResume-CCo3iZrB.js +0 -40
- package/dist/chunks/doctor-B4jQbGQr.js +0 -1
- package/dist/chunks/exit-D5DYnRvR.js +0 -1
- package/dist/chunks/extractMemories-CVUrBFMj.js +0 -1
- package/dist/chunks/fast-CRhW9zha.js +0 -1
- package/dist/chunks/fetchModelList-DIa1HwAJ.js +0 -1
- package/dist/chunks/hooks-CBGUcyCs.js +0 -1
- package/dist/chunks/loadAgentsDir-Zw648oQO.js +0 -1
- package/dist/chunks/loadPluginHooks-BIfM53-_.js +0 -1
- package/dist/chunks/localSearch-Dbj8cXyO.js +0 -1
- package/dist/chunks/mcp-BMeWtYCx.js +0 -2
- package/dist/chunks/mcp-CYbesbfl.js +0 -1
- package/dist/chunks/memory-DtQQGyPS.js +0 -1
- package/dist/chunks/permissions-Dv_PCfY0.js +0 -3
- package/dist/chunks/plugin-aK4tDrVg.js +0 -17
- package/dist/chunks/pluginBlocklist-ByRQaVPu.js +0 -1
- package/dist/chunks/pluginCliCommands-Dyk4HYHs.js +0 -1
- package/dist/chunks/pluginOperations-BCvJvfOC.js +0 -2
- package/dist/chunks/pluginStartupCheck-o_TC7wIt.js +0 -1
- package/dist/chunks/plugins-DzsTDNWJ.js +0 -4
- package/dist/chunks/processBashCommand-DtGCgTkF.js +0 -1
- package/dist/chunks/processSlashCommand-wXblpK2C.js +0 -5
- package/dist/chunks/prompt-BdH2zk0S.js +0 -1
- package/dist/chunks/prompt-D0TFER0A.js +0 -1
- package/dist/chunks/refresh-Cm4jZzLa.js +0 -1
- package/dist/chunks/rename-OfKJSazJ.js +0 -1
- package/dist/chunks/sandbox-adapter-982rx2cm.js +0 -1
- package/dist/chunks/searchExtraTools-B4N1bpy0.js +0 -1
- package/dist/chunks/sessionFileAccessHooks-BqQ58T7e.js +0 -1
- package/dist/chunks/sessionObserver-qYpA90El.js +0 -1
- package/dist/chunks/sessionStorage-CC0v4zMs.js +0 -1
- package/dist/chunks/setup-DVLnIlse.js +0 -3
- package/dist/chunks/sinks-C9NdbjLo.js +0 -1
- package/dist/chunks/skillChangeDetector-DlodgOyC.js +0 -1
- package/dist/chunks/status-BcSkj9nE.js +0 -1
- package/dist/chunks/statusNoticeHelpers-DsrqBOQt.js +0 -1
- package/dist/chunks/switcher-BietN6il.js +0 -1
- package/dist/chunks/tipRegistry-BYpJZIjR.js +0 -2
- package/dist/chunks/toolPool-BGfiNj6h.js +0 -1
- package/dist/chunks/useMainLoopModel-QuE7VkgX.js +0 -1
- package/dist/chunks/useMergedTools-BLsIT3R_.js +0 -1
- package/dist/chunks/useSettingsErrors-C8VIzdws.js +0 -1
- package/dist/chunks/validatePlugin-CTVnWx9H.js +0 -1
- package/dist/chunks/worktree-BWL0vR4o.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"./rolldown-runtime-DaDcL9Zw.js";import{a as o,n as s,o as c,t as l}from"./isObject-C6qM3WEW.js";import{n as u,t as d}from"./memoize-BK3gG5ob.js";import{c as f,f as p,i as m,l as h,o as g,r as _,s as v,u as y}from"./envUtils-QyzA_cFM.js";import{n as b,t as x}from"./defineProperty-C-QyHrDq.js";import{a as S,c as C,i as w,n as T,o as E,r as D,s as O,t as k}from"./classPrivateFieldSet2-D4U5K-I3.js";import{n as A,t as ee}from"./classPrivateMethodInitSpec-BXQD0Vh4.js";import{i as te,n as ne,r as re,t as ie}from"./figures-5ThXQEtq.js";import{c as ae,f as j,i as oe,l as se,m as ce,r as M,t as N,u as le}from"./zod-CuNujUwx.js";import{n as ue,t as de}from"./axios-DaWTGg7G.js";import{$r as fe,Bt as pe,Ct as me,D as he,Fr as ge,Ft as _e,Gr as ve,H as ye,Hr as be,I as P,Kr as xe,Lr as Se,Lt as Ce,Mr as we,P as F,Pr as Te,Pt as Ee,Qr as De,Rn as Oe,T as ke,Tt as Ae,Vr as je,Wt as Me,Xn as Ne,Yt as Pe,Zt as Fe,ai as Ie,bn as Le,cr as Re,d as ze,di as Be,fi as Ve,fr as He,gr as Ue,gt as We,hr as Ge,j as Ke,l as qe,mi as Je,mr as eee,mt as tee,nt as nee,or as ree,ot as Ye,pi as iee,pr as aee,qr as Xe,sr as oee,t as Ze,vn as see,xr as cee,yr as lee,zr as uee}from"./src-BX54x08P.js";import{i as Qe,r as $e}from"./isSymbol-BO6cdPI7.js";import{t as et}from"./jsx-runtime-Bb4Xn-E0.js";import{$n as tt,$r as nt,$t as rt,Ai as it,An as dee,Ar as fee,At as at,B as ot,Bn as st,Br as ct,Bt as pee,C as mee,Ci as hee,Cr as gee,Ct as lt,Di as ut,Dn as _ee,Dr as vee,Ei as yee,En as dt,Er as bee,F as ft,Fn as pt,Fr as mt,G as ht,Gi as gt,Gn as _t,Gt as vt,H as yt,Hi as xee,Ht as bt,I as See,In as xt,J as Cee,Jr as St,K as Ct,Ki as wee,Kr as wt,L as Tt,Ln as Tee,Lr as Et,Lt as Eee,M as Dt,Mi as Dee,Mn as Ot,Mr as Oee,Mt as kee,N as kt,Ni as At,Nn as jt,Nr as Aee,Nt as Mt,O as jee,Oi as Nt,On as Mee,Ot as Nee,P as Pt,Pi as Ft,Pn as It,Pr as Lt,Pt as Rt,Qi as zt,Qn as Bt,Qr as Vt,Qt as Pee,R as Ht,Ri as Fee,Rr as Ut,S as Iee,Si as Lee,Sr as Wt,St as Ree,T as zee,Ti as Gt,Tn as Bee,Tr as Vee,Tt as Kt,U as qt,Ui as Jt,Un as Yt,Ur as Xt,V as Hee,Vi as Zt,Vn as Qt,Vr as $t,W as en,Wi as I,Wn as Uee,Wt as tn,X as nn,Xn as Wee,Xr as rn,Xt as an,Y as on,Yi as sn,Yn as cn,Yr as ln,Yt as un,Z as Gee,Zi as L,Zn as dn,Zt as Kee,_i as fn,_t as pn,a as qee,aa as mn,ai as Jee,an as Yee,at as hn,bn as gn,br as _n,bt as Xee,c as vn,ca as yn,ci as Zee,cn as Qee,cr as $ee,ct as bn,d as xn,di as Sn,dn as ete,dr as Cn,dt as tte,ea as R,en as z,er as nte,f as rte,fa as ite,fi as ate,fn as ote,fr as wn,ft as ste,g as cte,ga as lte,gi as ute,gr as Tn,gt as En,hi as dte,hn as Dn,hr as On,ht as kn,ia as An,ii as jn,in as fte,it as Mn,j as pte,ji as mte,jn as hte,jr as gte,jt as _te,k as vte,ki as yte,kn as Nn,kr as Pn,kt as Fn,l as bte,la as xte,li as Ste,ln as Cte,lr as wte,lt as In,m as Ln,ma as Tte,mi as Ete,mn as Rn,mr as Dte,na as zn,ni as Bn,nn as Vn,nt as Hn,o as Un,oa as B,oi as Wn,on as Ote,or as kte,ot as Gn,p as Ate,pi as jte,pr as Kn,pt as qn,q as Mte,qi as Jn,qn as Yn,qr as Xn,qt as Zn,ra as Qn,ri as Nte,rn as $n,rt as er,s as tr,sa as nr,si as Pte,sn as rr,sr as Fte,st as ir,t as ar,ta as V,ti as Ite,tn as or,tr as sr,tt as cr,ui as lr,ur,ut as dr,va as Lte,vi as fr,vn as pr,vr as Rte,vt as mr,w as zte,wi as Bte,wn as Vte,wr as hr,wt as gr,x as Hte,xi as Ute,xr as _r,xt as vr,y as yr,ya as Wte,yn as br,yr as Gte,z as xr,zi as Kte,zn as qte,zr as Sr}from"./settings-D4M13toi.js";import{$ as Jte,$n as Cr,$t as wr,At as Tr,B as Yte,Br as Er,Bt as Xte,C as Zte,Cn as Dr,Cr as Qte,Ct as $te,D as ene,Dn as tne,Dr as Or,Dt as nne,En as kr,Er as Ar,Et as rne,F as jr,Ft as Mr,Gn as Nr,Gr as ine,Hn as ane,Ht as Pr,I as one,It as Fr,J as Ir,Jr as sne,Jt as cne,K as Lr,Kn as Rr,L as zr,Lt as lne,M as Br,Mt as une,N as dne,Nt as fne,On as pne,Ot as mne,P as hne,Pt as H,Q as gne,Qn as Vr,Qt as _ne,R as vne,Rn as yne,Rr as bne,Rt as xne,S as Sne,Sr as Hr,St as Cne,T as Ur,Tn as wne,Tr as Tne,Tt as Ene,V as Dne,Vr as One,W as kne,Wn as Ane,Wr as jne,X as Wr,Xn as Mne,Xt as Nne,Y as Gr,Yr as Pne,Z as Fne,_ as Ine,_r as Lne,_t as Rne,a as zne,an as Bne,ar as Vne,at as Kr,b as Hne,br as qr,bt as Jr,c as Une,ct as Yr,d as Wne,di as Gne,dt as Xr,et as Kne,f as qne,fi as Jne,fn as Zr,ft as Yne,g as Xne,gr as Zne,gt as Qr,h as $r,hi as Qne,hn as $ne,ht as ere,i as tre,in as ei,ir as nre,kn as rre,kt as ire,lt as are,mi as ore,mn as sre,mt as cre,n as lre,ni as ure,nr as dre,nt as ti,o as fre,oi as pre,ot as ni,p as mre,pi as hre,pt as gre,q as ri,qn as _re,r as vre,ri as yre,rt as ii,s as bre,si as xre,tn as Sre,tt as ai,u as oi,ui as Cre,ut as wre,vt as Tre,w as Ere,wn as si,wr as Dre,x as Ore,xr as ci,xt as li,yt as ui,zr as di,zt as kre}from"./state-CXY-q5gr.js";import{i as Are,n as fi,r as jre,t as U}from"./cwd-DrEEb4f5.js";import{$ as pi,A as mi,C as W,E as hi,F as gi,G as Mre,H as _i,I as vi,J as yi,K as bi,L as Nre,M as G,N as xi,O as Si,P as Pre,R as Ci,S as wi,T as Ti,V as Ei,X as Fre,Y as Di,Z as Ire,_ as Oi,c as K,d as ki,et as Ai,f as ji,g as Mi,i as q,j as Ni,k as Pi,m as Fi,p as Ii,q as Li,s as Ri,t as Lre,tt as Rre,u as J,v as zre,x as zi,y as Bre,z as Bi}from"./debug-2pVES-2G.js";import{A as Vre,C as Vi,D as Hre,E as Ure,O as Wre,S as Gre,T as Hi,a as Ui,b as Wi,c as Gi,d as Ki,h as qi,k as Kre,l as qre,m as Ji,o as Yi,s as Xi,t as Zi,u as Qi,w as $i,x as ea,y as Jre}from"./config-Bio2EjUK.js";import{i as Yre,n as ta,r as na,t as ra}from"./execa-CBhG1doD.js";import{B as ia,D as aa,E as oa,F as sa,G as ca,H as la,I as ua,K as da,L as fa,M as pa,N as ma,O as ha,R as ga,S as _a,U as va,V as ya,W as ba,b as Xre,c as xa,d as Zre,g as Qre,j as Sa,l as Ca,m as $re,n as wa,o as Ta,p as eie,q as Ea,s as Y,x as tie,y as nie,z as Da}from"./log-L1kqxa_P.js";import{i as Oa,n as ka,r as Aa,t as ja}from"./execFileNoThrow-DXSEj8ZO.js";import{c as Ma,i as Na,n as Pa,o as Fa,s as Ia,t as La}from"./bundledMode-D9omqD3L.js";import{n as Ra}from"./analytics-COpjZpvd.js";import{C as rie,_ as za,a as Ba,c as Va,f as Ha,h as Ua,i as iie,l as Wa,m as Ga,n as aie,o as oie,s as Ka,u as qa,y as Ja}from"./startupProfiler-B9Qv2QGH.js";import{a as Ya,i as Xa,l as Za,n as sie,o as Qa,r as $a,t as eo,u as to}from"./stringUtils-Cs6E5f-B.js";import{A as cie,At as lie,B as uie,C as die,Ct as no,Dt as ro,E as io,Et as ao,F as fie,Ft as oo,G as so,H as pie,I as co,J as mie,K as lo,L as hie,M as gie,Mt as uo,N as _ie,Nt as fo,O as po,Ot as mo,P as vie,Pt as ho,Q as yie,R as bie,S as xie,St as go,T as _o,Tt as Sie,U as Cie,V as wie,X as Tie,Y as Eie,Z as Die,_ as vo,_t as yo,a as Oie,at as bo,b as xo,bt as kie,c as So,d as Aie,dt as Co,et as wo,f as To,ft as Eo,gt as jie,h as Mie,ht as Do,i as Oo,it as Nie,j as Pie,k as ko,kt as Fie,l as Ao,m as jo,mt as Mo,n as No,nt as Po,o as Fo,ot as Io,pt as Iie,q as Lo,rt as Lie,s as Ro,t as zo,tt as Rie,u as Bo,ut as Vo,v as Ho,vt as Uo,w as zie,wt as Wo,xt as Bie,yt as Vie,z as Hie}from"./model-Dd3x121y.js";import{$ as Go,$t as Uie,A as Wie,At as Ko,B as Gie,Bt as qo,Ct as Jo,Dt as Yo,Et as Xo,Ft as Zo,G as Kie,Gt as Qo,H as qie,Ht as $o,I as Jie,It as es,J as Yie,Jt as Xie,K as Zie,Kt as ts,Lt as ns,Mt as Qie,N as $ie,Nt as eae,O as tae,Ot as rs,P as nae,Pt as rae,Q as iae,Qt as aae,R as oae,Rt as is,S as sae,St as cae,T as lae,Tt as uae,U as dae,Ut as as,Vt as os,W as fae,Wt as ss,X as pae,Xt as mae,Y as hae,Yt as cs,Z as gae,Zt as _ae,_ as vae,_n as yae,_t as ls,a as us,an as bae,at as ds,b as xae,bn as fs,bt as Sae,c as ps,cn as Cae,ct as wae,d as Tae,dt as Eae,en as Dae,et as Oae,f as ms,ft as kae,g as hs,gn as gs,gt as _s,h as Aae,hn as vs,ht as ys,i as bs,in as xs,jt as Ss,k as jae,kt as Mae,l as Nae,ln as Cs,lt as ws,m as Pae,mn as Ts,mt as Fae,n as Iae,nn as Lae,nt as Es,o as Rae,on as Ds,p as zae,pn as Os,pt as Bae,q as Vae,qt as ks,r as As,rn as js,rt as Hae,s as Uae,sn as Wae,st as Gae,t as Kae,tn as Ms,tt as Ns,u as qae,un as Jae,vn as Ps,vt as Yae,w as Xae,wt as Fs,xt as Is,yn as Ls,yt as Rs,z as Zae,zt as zs}from"./prompt-BnDapYGL.js";import{n as Qae,r as Bs}from"./lockfile-D_9vif6E.js";import{a as $ae,c as Vs,i as Hs,l as eoe,m as toe,o as noe,p as roe,s as ioe}from"./proxy--_NfbJhm.js";import{i as aoe,r as ooe}from"./projectOnboardingState-D-_ijZnG.js";import{S as soe,a as coe,c as loe,n as Us,s as uoe,t as Ws,x as doe}from"./sleep-xKMbXTJe.js";import{a as foe,i as poe,n as moe,o as hoe,t as goe}from"./break-cache-B1nuWtD_.js";import{a as _oe,i as voe,l as Gs,n as yoe,o as Ks,r as boe,s as xoe,t as Soe}from"./localSearch-Da8cVYoI.js";import{a as qs,c as Js,n as Coe,s as Ys}from"./ripgrep-67m14ImZ.js";import{n as woe,r as Toe}from"./client-2w-g5kMx.js";import{r as Eoe,t as Doe}from"./store-Z8rTjDHe.js";import{n as Ooe,t as koe}from"./client-pA7fKk0-.js";import{i as Aoe,n as joe,r as Xs}from"./loader-BMAtuwRa.js";import{n as Moe,r as Noe,t as Poe}from"./switcher-rep86o4_.js";import{B as Zs,C as Qs,F as $s,I as Foe,L as ec,M as Ioe,N as Loe,P as Roe,R as zoe,S as Boe,T as tc,a as Voe,c as nc,f as Hoe,g as Uoe,h as Woe,i as Goe,m as Koe,n as qoe,o as Joe,p as Yoe,s as rc,t as Xoe,u as Zoe,v as Qoe,w as ic,x as $oe,z as ac}from"./sessionTracing-5a7HDF4e.js";import{a as ese,o as tse,r as oc,s as nse,t as rse}from"./parser-CTnaXFVJ.js";import{i as sc,r as cc}from"./genericProcessUtils-GqURdVAv.js";import{n as ise,r as ase,t as lc}from"./poorMode-CG2JNTD0.js";import{r as ose,t as sse}from"./sanitization-DV-94a9Z.js";import{n as cse,t as lse}from"./worktreeModeEnabled-BFOYTTTr.js";import{n as use,t as dse}from"./featureCheck-D6FjD-nt.js";import{r as fse,t as pse}from"./firstPartyEventLogger-RR5rvDtk.js";import*as mse from"os";import{homedir as uc,release as hse,tmpdir as dc,type as gse,userInfo as _se,version as vse}from"os";import*as fc from"path";import{basename as pc,delimiter as yse,dirname as mc,extname as hc,isAbsolute as gc,join as X,normalize as _c,parse as vc,posix as yc,relative as bc,resolve as xc,sep as Sc,win32 as Cc}from"path";import wc from"node:process";import Tc,{basename as bse,dirname as xse,isAbsolute as Sse,join as Ec,relative as Cse,resolve as Dc}from"node:path";import*as Oc from"fs";import{accessSync as wse,chmodSync as Tse,closeSync as Ese,constants as kc,createReadStream as Dse,existsSync as Ose,fstat as kse,fstatSync as Ase,mkdirSync as jse,openSync as Mse,readFileSync as Ac,readSync as Nse,readdirSync as Pse,rm as Fse,rmSync as Ise,statSync as Lse,unlinkSync as Rse,writeFileSync as zse,writeSync as jc}from"fs";import{execSync as Bse,spawn as Vse,spawnSync as Hse}from"node:child_process";import*as Mc from"node:fs";import{closeSync as Use,existsSync as Nc,mkdirSync as Wse,openSync as Gse,readFileSync as Kse,readSync as qse,readdirSync as Pc,renameSync as Jse,rmSync as Yse,statSync as Xse,unlinkSync as Zse,writeFileSync as Qse}from"node:fs";import{EOL as Fc,homedir as $se,tmpdir as Ic}from"node:os";import{createHash as ece,randomBytes as tce,randomUUID as nce}from"node:crypto";import{createHash as Lc,randomBytes as Rc,randomUUID as zc}from"crypto";import{access as rce,appendFile as Bc,chmod as Vc,copyFile as Hc,link as Uc,lstat as ice,mkdir as Wc,open as Gc,readFile as Kc,readdir as qc,readlink as ace,realpath as Jc,rename as Yc,rm as Xc,rmdir as oce,stat as Zc,symlink as Qc,truncate as sce,unlink as $c,utimes as cce,writeFile as el}from"fs/promises";import"util";import{execFile as lce,execFileSync as uce,spawn as tl,spawnSync as nl}from"child_process";import{fileURLToPath as dce,pathToFileURL as rl}from"url";import fce,{isIP as pce}from"net";import{setMaxListeners as mce}from"events";import{PassThrough as hce}from"node:stream";import{mkdir as gce,readFile as il,readdir as _ce,rename as vce,rm as yce,writeFile as bce}from"node:fs/promises";import{request as xce}from"node:https";import{Agent as Sce,createServer as Cce,request as al}from"node:http";import{URL as ol,fileURLToPath as wce}from"node:url";import{BlockList as Tce,connect as sl,isIP as cl}from"node:net";import{AsyncLocalStorage as Ece}from"async_hooks";import{connect as Dce}from"node:tls";import{text as Oce}from"node:stream/consumers";import{join as ll}from"path/posix";import{lookup as kce}from"dns";function Ace(e){let t=e.slice(e.lastIndexOf(`.`)).toLowerCase();return jce.has(t)}var jce,Mce=n((()=>{jce=new Set(`.png,.jpg,.jpeg,.gif,.bmp,.ico,.webp,.tiff,.tif,.mp4,.mov,.avi,.mkv,.webm,.wmv,.flv,.m4v,.mpeg,.mpg,.mp3,.wav,.ogg,.flac,.aac,.m4a,.wma,.aiff,.opus,.zip,.tar,.gz,.bz2,.7z,.rar,.xz,.z,.tgz,.iso,.exe,.dll,.so,.dylib,.bin,.o,.a,.obj,.lib,.app,.msi,.deb,.rpm,.pdf,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.odt,.ods,.odp,.ttf,.otf,.woff,.woff2,.eot,.pyc,.pyo,.class,.jar,.war,.ear,.node,.wasm,.rlib,.sqlite,.sqlite3,.db,.mdb,.idx,.psd,.ai,.eps,.sketch,.fig,.xd,.blend,.3ds,.max,.swf,.fla,.lockb,.dat,.data`.split(`,`))}));function Nce(e,t){for(var n=-1,r=e==null?0:e.length;++n<r&&t(e[n],n,e)!==!1;);return e}var Pce=n((()=>{}));function Fce(e,t){return e&&ut(t,Or(t),e)}var Ice=n((()=>{Nt(),Ar()}));function Lce(e,t){return e&&ut(t,yee(t),e)}var Rce=n((()=>{Nt(),Gt()}));function zce(e,t){return ut(e,sne(e),t)}var Bce=n((()=>{Nt(),Pne()}));function Vce(e,t){return ut(e,Kre(e),t)}var Hce=n((()=>{Nt(),Vre()}));function Uce(e){var t=e.length,n=new e.constructor(t);return t&&typeof e[0]==`string`&&Wce.call(e,`index`)&&(n.index=e.index,n.input=e.input),n}var Wce,Gce=n((()=>{Wce=Object.prototype.hasOwnProperty}));function Kce(e,t){var n=t?fn(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}var qce=n((()=>{fr()}));function Jce(e){var t=new e.constructor(e.source,Yce.exec(e));return t.lastIndex=e.lastIndex,t}var Yce,Xce=n((()=>{Yce=/\w*$/}));function Zce(e){return dl?Object(dl.call(e)):{}}var ul,dl,Qce=n((()=>{c(),ul=o?o.prototype:void 0,dl=ul?ul.valueOf:void 0}));function $ce(e,t,n){var r=e.constructor;switch(t){case cle:return fn(e);case ele:case tle:return new r(+e);case lle:return Kce(e,n);case ule:case dle:case fle:case ple:case mle:case hle:case gle:case _le:case vle:return dte(e,n);case nle:return new r;case rle:case ole:return new r(e);case ile:return Jce(e);case ale:return new r;case sle:return Zce(e)}}var ele,tle,nle,rle,ile,ale,ole,sle,cle,lle,ule,dle,fle,ple,mle,hle,gle,_le,vle,yle=n((()=>{fr(),qce(),Xce(),Qce(),ute(),ele=`[object Boolean]`,tle=`[object Date]`,nle=`[object Map]`,rle=`[object Number]`,ile=`[object RegExp]`,ale=`[object Set]`,ole=`[object String]`,sle=`[object Symbol]`,cle=`[object ArrayBuffer]`,lle=`[object DataView]`,ule=`[object Float32Array]`,dle=`[object Float64Array]`,fle=`[object Int8Array]`,ple=`[object Int16Array]`,mle=`[object Int32Array]`,hle=`[object Uint8Array]`,gle=`[object Uint8ClampedArray]`,_le=`[object Uint16Array]`,vle=`[object Uint32Array]`}));function ble(e){return Qe(e)&&qr(e)==xle}var xle,Sle=n((()=>{ci(),$e(),xle=`[object Map]`})),fl,Cle,wle=n((()=>{Sle(),One(),bne(),fl=di&&di.isMap,Cle=fl?Er(fl):ble}));function Tle(e){return Qe(e)&&qr(e)==Ele}var Ele,Dle=n((()=>{ci(),$e(),Ele=`[object Set]`})),pl,Ole,kle=n((()=>{Dle(),One(),bne(),pl=di&&di.isSet,Ole=pl?Er(pl):Tle}));function ml(e,t,n,r,i,a){var o,c=t&Ale,l=t&jle,u=t&Mle;if(n&&(o=i?n(e,r,i,a):n(e)),o!==void 0)return o;if(!s(e))return e;var d=yre(e);if(d){if(o=Uce(e),!c)return Ute(e,o)}else{var f=qr(e),p=f==gl||f==Lle;if(ine(e))return hee(e,c);if(f==_l||f==hl||p&&!i){if(o=l||p?{}:jte(e),!c)return l?Vce(e,Lce(o,e)):zce(e,Fce(o,e))}else{if(!Dl[f])return i?e:{};o=$ce(e,f,c)}}a||(a=new ore);var m=a.get(e);if(m)return m;a.set(e,o),Ole(e)?e.forEach(function(r){o.add(ml(r,t,n,r,e,a))}):Cle(e)&&e.forEach(function(r,i){o.set(i,ml(r,t,n,i,e,a))});var h=d?void 0:(u?l?Hre:Dre:l?yee:Or)(e);return Nce(h||e,function(r,i){h&&(i=r,r=e[i]),yte(o,i,ml(r,t,n,i,e,a))}),o}var Ale,jle,Mle,hl,Nle,Ple,Fle,Ile,gl,Lle,Rle,zle,_l,Ble,Vle,Hle,Ule,Wle,Gle,Kle,vl,yl,bl,xl,Sl,Cl,wl,Tl,El,Dl,Ol=n((()=>{Qne(),Pce(),it(),Ice(),Rce(),Bte(),Lee(),Bce(),Hce(),Tne(),Wre(),ci(),Gce(),yle(),Ete(),ure(),jne(),wle(),l(),kle(),Ar(),Gt(),Ale=1,jle=2,Mle=4,hl=`[object Arguments]`,Nle=`[object Array]`,Ple=`[object Boolean]`,Fle=`[object Date]`,Ile=`[object Error]`,gl=`[object Function]`,Lle=`[object GeneratorFunction]`,Rle=`[object Map]`,zle=`[object Number]`,_l=`[object Object]`,Ble=`[object RegExp]`,Vle=`[object Set]`,Hle=`[object String]`,Ule=`[object Symbol]`,Wle=`[object WeakMap]`,Gle=`[object ArrayBuffer]`,Kle=`[object DataView]`,vl=`[object Float32Array]`,yl=`[object Float64Array]`,bl=`[object Int8Array]`,xl=`[object Int16Array]`,Sl=`[object Int32Array]`,Cl=`[object Uint8Array]`,wl=`[object Uint8ClampedArray]`,Tl=`[object Uint16Array]`,El=`[object Uint32Array]`,Dl={},Dl[hl]=Dl[Nle]=Dl[Gle]=Dl[Kle]=Dl[Ple]=Dl[Fle]=Dl[vl]=Dl[yl]=Dl[bl]=Dl[xl]=Dl[Sl]=Dl[Rle]=Dl[zle]=Dl[_l]=Dl[Ble]=Dl[Vle]=Dl[Hle]=Dl[Ule]=Dl[Cl]=Dl[wl]=Dl[Tl]=Dl[El]=!0,Dl[Ile]=Dl[gl]=Dl[Wle]=!1}));function qle(e){return ml(e,kl|Al)}var kl,Al,Jle=n((()=>{Ol(),kl=1,Al=4}));function jl(e){return e.sort((e,t)=>{let n=t.modified.getTime()-e.modified.getTime();return n===0?t.created.getTime()-e.created.getTime():n})}var Yle=n((()=>{})),Ml=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})),Nl=a((e=>{var t=Ml(),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})),Pl=a((e=>{var t=Ml(),n=Nl(),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"./rolldown-runtime-DaDcL9Zw.js";import{a as o,n as s,o as c,t as l}from"./isObject-C6qM3WEW.js";import{n as u,t as d}from"./memoize-BK3gG5ob.js";import{c as f,f as p,i as m,l as h,o as g,r as _,s as v,u as y}from"./envUtils-QyzA_cFM.js";import{n as b,t as x}from"./defineProperty-C-QyHrDq.js";import{a as S,c as C,i as w,n as T,o as E,r as D,s as O,t as k}from"./classPrivateFieldSet2-D4U5K-I3.js";import{n as A,t as ee}from"./classPrivateMethodInitSpec-BXQD0Vh4.js";import{i as te,n as ne,r as re,t as ie}from"./figures-5ThXQEtq.js";import{c as ae,f as j,i as oe,l as se,m as ce,r as M,t as N,u as le}from"./zod-CuNujUwx.js";import{n as ue,t as de}from"./axios-DaWTGg7G.js";import{$r as fe,Bt as pe,Ct as me,D as he,Fr as ge,Ft as _e,Gr as ve,H as ye,Hr as be,I as P,Kr as xe,Lr as Se,Lt as Ce,Mr as we,P as F,Pr as Te,Pt as Ee,Qr as De,Rn as Oe,T as ke,Tt as Ae,Vr as je,Wt as Me,Xn as Ne,Yt as Pe,Zt as Fe,ai as Ie,bn as Le,cr as Re,d as ze,di as Be,fi as Ve,fr as He,gr as Ue,gt as We,hr as Ge,j as Ke,l as qe,mi as Je,mr as eee,mt as tee,nt as nee,or as ree,ot as Ye,pi as iee,pr as aee,qr as Xe,sr as oee,t as Ze,vn as see,xr as cee,yr as lee,zr as uee}from"./src-BX54x08P.js";import{i as Qe,r as $e}from"./isSymbol-BO6cdPI7.js";import{t as et}from"./jsx-runtime-Bb4Xn-E0.js";import{$n as tt,$r as nt,$t as rt,Ai as it,An as dee,Ar as fee,At as at,B as ot,Bn as st,Br as ct,Bt as pee,C as mee,Ci as hee,Cr as gee,Ct as lt,Di as ut,Dn as _ee,Dr as vee,Ei as yee,En as dt,Er as bee,F as ft,Fn as pt,Fr as mt,G as ht,Gi as gt,Gn as _t,Gt as vt,H as yt,Hi as xee,Ht as bt,I as See,In as xt,J as Cee,Jr as St,K as Ct,Ki as wee,Kr as wt,L as Tt,Ln as Tee,Lr as Et,Lt as Eee,M as Dt,Mi as Dee,Mn as Ot,Mr as Oee,Mt as kee,N as kt,Ni as At,Nn as jt,Nr as Aee,Nt as Mt,O as jee,Oi as Nt,On as Mee,Ot as Nee,P as Pt,Pi as Ft,Pn as It,Pr as Lt,Pt as Rt,Qi as zt,Qn as Bt,Qr as Vt,Qt as Pee,R as Ht,Ri as Fee,Rr as Ut,S as Iee,Si as Lee,Sr as Wt,St as Ree,T as zee,Ti as Gt,Tn as Bee,Tr as Vee,Tt as Kt,U as qt,Ui as Jt,Un as Yt,Ur as Xt,V as Hee,Vi as Zt,Vn as Qt,Vr as $t,W as en,Wi as I,Wn as Uee,Wt as tn,X as nn,Xn as Wee,Xr as rn,Xt as an,Y as on,Yi as sn,Yn as cn,Yr as ln,Yt as un,Z as Gee,Zi as L,Zn as dn,Zt as Kee,_i as fn,_t as pn,a as qee,aa as mn,ai as Jee,an as Yee,at as hn,bn as gn,br as _n,bt as Xee,c as vn,ca as yn,ci as Zee,cn as Qee,cr as $ee,ct as bn,d as xn,di as Sn,dn as ete,dr as Cn,dt as tte,ea as R,en as z,er as nte,f as rte,fa as ite,fi as ate,fn as ote,fr as wn,ft as ste,g as cte,ga as lte,gi as ute,gr as Tn,gt as En,hi as dte,hn as Dn,hr as On,ht as kn,ia as An,ii as jn,in as fte,it as Mn,j as pte,ji as mte,jn as hte,jr as gte,jt as _te,k as vte,ki as yte,kn as Nn,kr as Pn,kt as Fn,l as bte,la as xte,li as Ste,ln as Cte,lr as wte,lt as In,m as Ln,ma as Tte,mi as Ete,mn as Rn,mr as Dte,na as zn,ni as Bn,nn as Vn,nt as Hn,o as Un,oa as B,oi as Wn,on as Ote,or as kte,ot as Gn,p as Ate,pi as jte,pr as Kn,pt as qn,q as Mte,qi as Jn,qn as Yn,qr as Xn,qt as Zn,ra as Qn,ri as Nte,rn as $n,rt as er,s as tr,sa as nr,si as Pte,sn as rr,sr as Fte,st as ir,t as ar,ta as V,ti as Ite,tn as or,tr as sr,tt as cr,ui as lr,ur,ut as dr,va as Lte,vi as fr,vn as pr,vr as Rte,vt as mr,w as zte,wi as Bte,wn as Vte,wr as hr,wt as gr,x as Hte,xi as Ute,xr as _r,xt as vr,y as yr,ya as Wte,yn as br,yr as Gte,z as xr,zi as Kte,zn as qte,zr as Sr}from"./settings-D4M13toi.js";import{$ as Jte,$n as Cr,$t as wr,At as Tr,B as Yte,Br as Er,Bt as Xte,C as Zte,Cn as Dr,Cr as Qte,Ct as $te,D as ene,Dn as tne,Dr as Or,Dt as nne,En as kr,Er as Ar,Et as rne,F as jr,Ft as Mr,Gn as Nr,Gr as ine,Hn as ane,Ht as Pr,I as one,It as Fr,J as Ir,Jr as sne,Jt as cne,K as Lr,Kn as Rr,L as zr,Lt as lne,M as Br,Mt as une,N as dne,Nt as fne,On as pne,Ot as mne,P as hne,Pt as H,Q as gne,Qn as Vr,Qt as _ne,R as vne,Rn as yne,Rr as bne,Rt as xne,S as Sne,Sr as Hr,St as Cne,T as Ur,Tn as wne,Tr as Tne,Tt as Ene,V as Dne,Vr as One,W as kne,Wn as Ane,Wr as jne,X as Wr,Xn as Mne,Xt as Nne,Y as Gr,Yr as Pne,Z as Fne,_ as Ine,_r as Lne,_t as Rne,a as zne,an as Bne,ar as Vne,at as Kr,b as Hne,br as qr,bt as Jr,c as Une,ct as Yr,d as Wne,di as Gne,dt as Xr,et as Kne,f as qne,fi as Jne,fn as Zr,ft as Yne,g as Xne,gr as Zne,gt as Qr,h as $r,hi as Qne,hn as $ne,ht as ere,i as tre,in as ei,ir as nre,kn as rre,kt as ire,lt as are,mi as ore,mn as sre,mt as cre,n as lre,ni as ure,nr as dre,nt as ti,o as fre,oi as pre,ot as ni,p as mre,pi as hre,pt as gre,q as ri,qn as _re,r as vre,ri as yre,rt as ii,s as bre,si as xre,tn as Sre,tt as ai,u as oi,ui as Cre,ut as wre,vt as Tre,w as Ere,wn as si,wr as Dre,x as Ore,xr as ci,xt as li,yt as ui,zr as di,zt as kre}from"./state-CXY-q5gr.js";import{i as Are,n as fi,r as jre,t as U}from"./cwd-DrEEb4f5.js";import{$ as pi,A as mi,C as W,E as hi,F as gi,G as Mre,H as _i,I as vi,J as yi,K as bi,L as Nre,M as G,N as xi,O as Si,P as Pre,R as Ci,S as wi,T as Ti,V as Ei,X as Fre,Y as Di,Z as Ire,_ as Oi,c as K,d as ki,et as Ai,f as ji,g as Mi,i as q,j as Ni,k as Pi,m as Fi,p as Ii,q as Li,s as Ri,t as Lre,tt as Rre,u as J,v as zre,x as zi,y as Bre,z as Bi}from"./debug-2pVES-2G.js";import{A as Vre,C as Vi,D as Hre,E as Ure,O as Wre,S as Gre,T as Hi,a as Ui,b as Wi,c as Gi,d as Ki,h as qi,k as Kre,l as qre,m as Ji,o as Yi,s as Xi,t as Zi,u as Qi,w as $i,x as ea,y as Jre}from"./config-Bio2EjUK.js";import{i as Yre,n as ta,r as na,t as ra}from"./execa-CBhG1doD.js";import{B as ia,D as aa,E as oa,F as sa,G as ca,H as la,I as ua,K as da,L as fa,M as pa,N as ma,O as ha,R as ga,S as _a,U as va,V as ya,W as ba,b as Xre,c as xa,d as Zre,g as Qre,j as Sa,l as Ca,m as $re,n as wa,o as Ta,p as eie,q as Ea,s as Y,x as tie,y as nie,z as Da}from"./log-L1kqxa_P.js";import{i as Oa,n as ka,r as Aa,t as ja}from"./execFileNoThrow-DXSEj8ZO.js";import{c as Ma,i as Na,n as Pa,o as Fa,s as Ia,t as La}from"./bundledMode-D9omqD3L.js";import{n as Ra}from"./analytics-COpjZpvd.js";import{C as rie,_ as za,a as Ba,c as Va,f as Ha,h as Ua,i as iie,l as Wa,m as Ga,n as aie,o as oie,s as Ka,u as qa,y as Ja}from"./startupProfiler-B9Qv2QGH.js";import{a as Ya,i as Xa,l as Za,n as sie,o as Qa,r as $a,t as eo,u as to}from"./stringUtils-Cs6E5f-B.js";import{A as cie,At as lie,B as uie,C as die,Ct as no,Dt as ro,E as io,Et as ao,F as fie,Ft as oo,G as so,H as pie,I as co,J as mie,K as lo,L as hie,M as gie,Mt as uo,N as _ie,Nt as fo,O as po,Ot as mo,P as vie,Pt as ho,Q as yie,R as bie,S as xie,St as go,T as _o,Tt as Sie,U as Cie,V as wie,X as Tie,Y as Eie,Z as Die,_ as vo,_t as yo,a as Oie,at as bo,b as xo,bt as kie,c as So,d as Aie,dt as Co,et as wo,f as To,ft as Eo,gt as jie,h as Mie,ht as Do,i as Oo,it as Nie,j as Pie,k as ko,kt as Fie,l as Ao,m as jo,mt as Mo,n as No,nt as Po,o as Fo,ot as Io,pt as Iie,q as Lo,rt as Lie,s as Ro,t as zo,tt as Rie,u as Bo,ut as Vo,v as Ho,vt as Uo,w as zie,wt as Wo,xt as Bie,yt as Vie,z as Hie}from"./model-BIf2i1is.js";import{$ as Go,$t as Uie,A as Wie,At as Ko,B as Gie,Bt as qo,Ct as Jo,Dt as Yo,Et as Xo,Ft as Zo,G as Kie,Gt as Qo,H as qie,Ht as $o,I as Jie,It as es,J as Yie,Jt as Xie,K as Zie,Kt as ts,Lt as ns,Mt as Qie,N as $ie,Nt as eae,O as tae,Ot as rs,P as nae,Pt as rae,Q as iae,Qt as aae,R as oae,Rt as is,S as sae,St as cae,T as lae,Tt as uae,U as dae,Ut as as,Vt as os,W as fae,Wt as ss,X as pae,Xt as mae,Y as hae,Yt as cs,Z as gae,Zt as _ae,_ as vae,_n as yae,_t as ls,a as us,an as bae,at as ds,b as xae,bn as fs,bt as Sae,c as ps,cn as Cae,ct as wae,d as Tae,dt as Eae,en as Dae,et as Oae,f as ms,ft as kae,g as hs,gn as gs,gt as _s,h as Aae,hn as vs,ht as ys,i as bs,in as xs,jt as Ss,k as jae,kt as Mae,l as Nae,ln as Cs,lt as ws,m as Pae,mn as Ts,mt as Fae,n as Iae,nn as Lae,nt as Es,o as Rae,on as Ds,p as zae,pn as Os,pt as Bae,q as Vae,qt as ks,r as As,rn as js,rt as Hae,s as Uae,sn as Wae,st as Gae,t as Kae,tn as Ms,tt as Ns,u as qae,un as Jae,vn as Ps,vt as Yae,w as Xae,wt as Fs,xt as Is,yn as Ls,yt as Rs,z as Zae,zt as zs}from"./prompt-DaYH88Oe.js";import{n as Qae,r as Bs}from"./lockfile-D_9vif6E.js";import{a as $ae,c as Vs,i as Hs,l as eoe,m as toe,o as noe,p as roe,s as ioe}from"./proxy--_NfbJhm.js";import{i as aoe,r as ooe}from"./projectOnboardingState-D-_ijZnG.js";import{S as soe,a as coe,c as loe,n as Us,s as uoe,t as Ws,x as doe}from"./sleep-xKMbXTJe.js";import{a as foe,i as poe,n as moe,o as hoe,t as goe}from"./break-cache-B1nuWtD_.js";import{a as _oe,i as voe,l as Gs,n as yoe,o as Ks,r as boe,s as xoe,t as Soe}from"./localSearch-BHG8sp8p.js";import{a as qs,c as Js,n as Coe,s as Ys}from"./ripgrep-67m14ImZ.js";import{n as woe,r as Toe}from"./client-2w-g5kMx.js";import{r as Eoe,t as Doe}from"./store-Z8rTjDHe.js";import{n as Ooe,t as koe}from"./client-pA7fKk0-.js";import{i as Aoe,n as joe,r as Xs}from"./loader-BMAtuwRa.js";import{n as Moe,r as Noe,t as Poe}from"./switcher-BCq9Az_q.js";import{B as Zs,C as Qs,F as $s,I as Foe,L as ec,M as Ioe,N as Loe,P as Roe,R as zoe,S as Boe,T as tc,a as Voe,c as nc,f as Hoe,g as Uoe,h as Woe,i as Goe,m as Koe,n as qoe,o as Joe,p as Yoe,s as rc,t as Xoe,u as Zoe,v as Qoe,w as ic,x as $oe,z as ac}from"./sessionTracing-TDsq54Uc.js";import{a as ese,o as tse,r as oc,s as nse,t as rse}from"./parser-CTnaXFVJ.js";import{i as sc,r as cc}from"./genericProcessUtils-GqURdVAv.js";import{n as ise,r as ase,t as lc}from"./poorMode-CG2JNTD0.js";import{r as ose,t as sse}from"./sanitization-DV-94a9Z.js";import{n as cse,t as lse}from"./worktreeModeEnabled-BFOYTTTr.js";import{n as use,t as dse}from"./featureCheck-D6FjD-nt.js";import{r as fse,t as pse}from"./firstPartyEventLogger-RR5rvDtk.js";import*as mse from"os";import{homedir as uc,release as hse,tmpdir as dc,type as gse,userInfo as _se,version as vse}from"os";import*as fc from"path";import{basename as pc,delimiter as yse,dirname as mc,extname as hc,isAbsolute as gc,join as X,normalize as _c,parse as vc,posix as yc,relative as bc,resolve as xc,sep as Sc,win32 as Cc}from"path";import wc from"node:process";import Tc,{basename as bse,dirname as xse,isAbsolute as Sse,join as Ec,relative as Cse,resolve as Dc}from"node:path";import*as Oc from"fs";import{accessSync as wse,chmodSync as Tse,closeSync as Ese,constants as kc,createReadStream as Dse,existsSync as Ose,fstat as kse,fstatSync as Ase,mkdirSync as jse,openSync as Mse,readFileSync as Ac,readSync as Nse,readdirSync as Pse,rm as Fse,rmSync as Ise,statSync as Lse,unlinkSync as Rse,writeFileSync as zse,writeSync as jc}from"fs";import{execSync as Bse,spawn as Vse,spawnSync as Hse}from"node:child_process";import*as Mc from"node:fs";import{closeSync as Use,existsSync as Nc,mkdirSync as Wse,openSync as Gse,readFileSync as Kse,readSync as qse,readdirSync as Pc,renameSync as Jse,rmSync as Yse,statSync as Xse,unlinkSync as Zse,writeFileSync as Qse}from"node:fs";import{EOL as Fc,homedir as $se,tmpdir as Ic}from"node:os";import{createHash as ece,randomBytes as tce,randomUUID as nce}from"node:crypto";import{createHash as Lc,randomBytes as Rc,randomUUID as zc}from"crypto";import{access as rce,appendFile as Bc,chmod as Vc,copyFile as Hc,link as Uc,lstat as ice,mkdir as Wc,open as Gc,readFile as Kc,readdir as qc,readlink as ace,realpath as Jc,rename as Yc,rm as Xc,rmdir as oce,stat as Zc,symlink as Qc,truncate as sce,unlink as $c,utimes as cce,writeFile as el}from"fs/promises";import"util";import{execFile as lce,execFileSync as uce,spawn as tl,spawnSync as nl}from"child_process";import{fileURLToPath as dce,pathToFileURL as rl}from"url";import fce,{isIP as pce}from"net";import{setMaxListeners as mce}from"events";import{PassThrough as hce}from"node:stream";import{mkdir as gce,readFile as il,readdir as _ce,rename as vce,rm as yce,writeFile as bce}from"node:fs/promises";import{request as xce}from"node:https";import{Agent as Sce,createServer as Cce,request as al}from"node:http";import{URL as ol,fileURLToPath as wce}from"node:url";import{BlockList as Tce,connect as sl,isIP as cl}from"node:net";import{AsyncLocalStorage as Ece}from"async_hooks";import{connect as Dce}from"node:tls";import{text as Oce}from"node:stream/consumers";import{join as ll}from"path/posix";import{lookup as kce}from"dns";function Ace(e){let t=e.slice(e.lastIndexOf(`.`)).toLowerCase();return jce.has(t)}var jce,Mce=n((()=>{jce=new Set(`.png,.jpg,.jpeg,.gif,.bmp,.ico,.webp,.tiff,.tif,.mp4,.mov,.avi,.mkv,.webm,.wmv,.flv,.m4v,.mpeg,.mpg,.mp3,.wav,.ogg,.flac,.aac,.m4a,.wma,.aiff,.opus,.zip,.tar,.gz,.bz2,.7z,.rar,.xz,.z,.tgz,.iso,.exe,.dll,.so,.dylib,.bin,.o,.a,.obj,.lib,.app,.msi,.deb,.rpm,.pdf,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.odt,.ods,.odp,.ttf,.otf,.woff,.woff2,.eot,.pyc,.pyo,.class,.jar,.war,.ear,.node,.wasm,.rlib,.sqlite,.sqlite3,.db,.mdb,.idx,.psd,.ai,.eps,.sketch,.fig,.xd,.blend,.3ds,.max,.swf,.fla,.lockb,.dat,.data`.split(`,`))}));function Nce(e,t){for(var n=-1,r=e==null?0:e.length;++n<r&&t(e[n],n,e)!==!1;);return e}var Pce=n((()=>{}));function Fce(e,t){return e&&ut(t,Or(t),e)}var Ice=n((()=>{Nt(),Ar()}));function Lce(e,t){return e&&ut(t,yee(t),e)}var Rce=n((()=>{Nt(),Gt()}));function zce(e,t){return ut(e,sne(e),t)}var Bce=n((()=>{Nt(),Pne()}));function Vce(e,t){return ut(e,Kre(e),t)}var Hce=n((()=>{Nt(),Vre()}));function Uce(e){var t=e.length,n=new e.constructor(t);return t&&typeof e[0]==`string`&&Wce.call(e,`index`)&&(n.index=e.index,n.input=e.input),n}var Wce,Gce=n((()=>{Wce=Object.prototype.hasOwnProperty}));function Kce(e,t){var n=t?fn(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}var qce=n((()=>{fr()}));function Jce(e){var t=new e.constructor(e.source,Yce.exec(e));return t.lastIndex=e.lastIndex,t}var Yce,Xce=n((()=>{Yce=/\w*$/}));function Zce(e){return dl?Object(dl.call(e)):{}}var ul,dl,Qce=n((()=>{c(),ul=o?o.prototype:void 0,dl=ul?ul.valueOf:void 0}));function $ce(e,t,n){var r=e.constructor;switch(t){case cle:return fn(e);case ele:case tle:return new r(+e);case lle:return Kce(e,n);case ule:case dle:case fle:case ple:case mle:case hle:case gle:case _le:case vle:return dte(e,n);case nle:return new r;case rle:case ole:return new r(e);case ile:return Jce(e);case ale:return new r;case sle:return Zce(e)}}var ele,tle,nle,rle,ile,ale,ole,sle,cle,lle,ule,dle,fle,ple,mle,hle,gle,_le,vle,yle=n((()=>{fr(),qce(),Xce(),Qce(),ute(),ele=`[object Boolean]`,tle=`[object Date]`,nle=`[object Map]`,rle=`[object Number]`,ile=`[object RegExp]`,ale=`[object Set]`,ole=`[object String]`,sle=`[object Symbol]`,cle=`[object ArrayBuffer]`,lle=`[object DataView]`,ule=`[object Float32Array]`,dle=`[object Float64Array]`,fle=`[object Int8Array]`,ple=`[object Int16Array]`,mle=`[object Int32Array]`,hle=`[object Uint8Array]`,gle=`[object Uint8ClampedArray]`,_le=`[object Uint16Array]`,vle=`[object Uint32Array]`}));function ble(e){return Qe(e)&&qr(e)==xle}var xle,Sle=n((()=>{ci(),$e(),xle=`[object Map]`})),fl,Cle,wle=n((()=>{Sle(),One(),bne(),fl=di&&di.isMap,Cle=fl?Er(fl):ble}));function Tle(e){return Qe(e)&&qr(e)==Ele}var Ele,Dle=n((()=>{ci(),$e(),Ele=`[object Set]`})),pl,Ole,kle=n((()=>{Dle(),One(),bne(),pl=di&&di.isSet,Ole=pl?Er(pl):Tle}));function ml(e,t,n,r,i,a){var o,c=t&Ale,l=t&jle,u=t&Mle;if(n&&(o=i?n(e,r,i,a):n(e)),o!==void 0)return o;if(!s(e))return e;var d=yre(e);if(d){if(o=Uce(e),!c)return Ute(e,o)}else{var f=qr(e),p=f==gl||f==Lle;if(ine(e))return hee(e,c);if(f==_l||f==hl||p&&!i){if(o=l||p?{}:jte(e),!c)return l?Vce(e,Lce(o,e)):zce(e,Fce(o,e))}else{if(!Dl[f])return i?e:{};o=$ce(e,f,c)}}a||(a=new ore);var m=a.get(e);if(m)return m;a.set(e,o),Ole(e)?e.forEach(function(r){o.add(ml(r,t,n,r,e,a))}):Cle(e)&&e.forEach(function(r,i){o.set(i,ml(r,t,n,i,e,a))});var h=d?void 0:(u?l?Hre:Dre:l?yee:Or)(e);return Nce(h||e,function(r,i){h&&(i=r,r=e[i]),yte(o,i,ml(r,t,n,i,e,a))}),o}var Ale,jle,Mle,hl,Nle,Ple,Fle,Ile,gl,Lle,Rle,zle,_l,Ble,Vle,Hle,Ule,Wle,Gle,Kle,vl,yl,bl,xl,Sl,Cl,wl,Tl,El,Dl,Ol=n((()=>{Qne(),Pce(),it(),Ice(),Rce(),Bte(),Lee(),Bce(),Hce(),Tne(),Wre(),ci(),Gce(),yle(),Ete(),ure(),jne(),wle(),l(),kle(),Ar(),Gt(),Ale=1,jle=2,Mle=4,hl=`[object Arguments]`,Nle=`[object Array]`,Ple=`[object Boolean]`,Fle=`[object Date]`,Ile=`[object Error]`,gl=`[object Function]`,Lle=`[object GeneratorFunction]`,Rle=`[object Map]`,zle=`[object Number]`,_l=`[object Object]`,Ble=`[object RegExp]`,Vle=`[object Set]`,Hle=`[object String]`,Ule=`[object Symbol]`,Wle=`[object WeakMap]`,Gle=`[object ArrayBuffer]`,Kle=`[object DataView]`,vl=`[object Float32Array]`,yl=`[object Float64Array]`,bl=`[object Int8Array]`,xl=`[object Int16Array]`,Sl=`[object Int32Array]`,Cl=`[object Uint8Array]`,wl=`[object Uint8ClampedArray]`,Tl=`[object Uint16Array]`,El=`[object Uint32Array]`,Dl={},Dl[hl]=Dl[Nle]=Dl[Gle]=Dl[Kle]=Dl[Ple]=Dl[Fle]=Dl[vl]=Dl[yl]=Dl[bl]=Dl[xl]=Dl[Sl]=Dl[Rle]=Dl[zle]=Dl[_l]=Dl[Ble]=Dl[Vle]=Dl[Hle]=Dl[Ule]=Dl[Cl]=Dl[wl]=Dl[Tl]=Dl[El]=!0,Dl[Ile]=Dl[gl]=Dl[Wle]=!1}));function qle(e){return ml(e,kl|Al)}var kl,Al,Jle=n((()=>{Ol(),kl=1,Al=4}));function jl(e){return e.sort((e,t)=>{let n=t.modified.getTime()-e.modified.getTime();return n===0?t.created.getTime()-e.created.getTime():n})}var Yle=n((()=>{})),Ml=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})),Nl=a((e=>{var t=Ml(),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})),Pl=a((e=>{var t=Ml(),n=Nl(),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})),Fl=a((e=>{var t=Ml(),n=Nl();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})),Il=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})),Ll=a((e=>{var t=Ml();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})),Rl=a((e=>{var t=Il(),n=Ml(),r=Ll();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}}})),zl=a((e=>{var t=Fl(),n=Nl(),r=Ml(),i=Rl(),a=Ll(),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){if(t?.maxAliasCount===0)throw ReferenceError(`Alias resolution is disabled`);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})),Bl=a((e=>{var t=Ml(),n=Rl(),r=Ll(),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})),Vl=a((e=>{var t=zl(),n=Ml(),r=Bl(),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})),Hl=a((e=>{var t=Vl(),n=Ml(),r=Rl();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})),Ul=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,12 +114,12 @@ $&`).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())}}}})),_ue=a((e=>{var t=Su(),n=pu(),r=mu(),i=Kl(),a=Ml(),o=Tu(),s=Eu();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})),Du=a((e=>{var t=Su(),n=pu(),r=fu(),i=mu(),a=zl(),o=Ml(),s=Yl(),c=Bl(),l=Zl(),u=$l(),d=Cu(),f=wu(),p=Tu(),m=Eu(),h=_ue(),g=Nl();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 Ou(e){return typeof Bun<`u`?Bun.YAML.parse(e):Du().parse(e)}var ku=n((()=>{}));function vue(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(Lu.test(i)){let e=i.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`);n.push(`${r}: "${e}"`);continue}}n.push(e)}return n.join(`
|
|
117
|
-
`)}function Au(e,t){let n=e.match(Ru);if(!n)return{frontmatter:{},content:e};let r=n[1]||``,i=e.slice(n[0].length),a={};try{let e=Ou(r);e&&typeof e==`object`&&!Array.isArray(e)&&(a=e)}catch{try{let e=Ou(vue(r));e&&typeof e==`object`&&!Array.isArray(e)&&(a=e)}catch(e){K(`Failed to parse YAML frontmatter${t?` in ${t}`:``}: ${e instanceof Error?e.message:e}`,{level:`warn`})}}return{frontmatter:a,content:i}}function ju(e){if(Array.isArray(e))return e.flatMap(ju);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=>Mu(e))}function Mu(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=Mu(n+e+i);o.push(...t)}return o}function Nu(e){if(e==null)return;let t=typeof e==`number`?e:parseInt(String(e),10);if(Number.isInteger(t)&&t>0)return t}function Pu(e,t,n){return e==null?null:typeof e==`string`?e.trim()||null:typeof e==`number`||typeof e==`boolean`?String(e):(K(`Description invalid for ${n?`${n}:${t}`:t??`unknown`} - omitting`,{level:`warn`}),null)}function Fu(e){return e===!0||e===`true`}function Iu(e,t){if(e==null)return;let n=String(e).trim().toLowerCase();if(n!==``){if(zu.includes(n))return n;K(`Frontmatter 'shell: ${e}' in ${t} is not recognized. Valid values: ${zu.join(`, `)}. Falling back to bash.`,{level:`warn`})}}var Lu,Ru,zu,Bu=n((()=>{q(),ku(),Lu=/[{}[\]*&#!|>%@`]|: /,Ru=/^---\s*\n([\s\S]*?)---\s*\n?/,zu=[`bash`,`powershell`]}));function Vu(e){return uo()===`vertex`?Uu:e?.isNonInteractive?e.hasAppendSystemPrompt?Wu:Gu:Uu}function yue(){return!f(process.env.WORKMATE_ATTRIBUTION_HEADER)}function Hu(){if(!yue())return``;let e=process.env.WORKMATE_ENTRYPOINT??`unknown`,t=Fie(),n=`x-anthropic-billing-header: cc_version=0.0.
|
|
117
|
+
`)}function Au(e,t){let n=e.match(Ru);if(!n)return{frontmatter:{},content:e};let r=n[1]||``,i=e.slice(n[0].length),a={};try{let e=Ou(r);e&&typeof e==`object`&&!Array.isArray(e)&&(a=e)}catch{try{let e=Ou(vue(r));e&&typeof e==`object`&&!Array.isArray(e)&&(a=e)}catch(e){K(`Failed to parse YAML frontmatter${t?` in ${t}`:``}: ${e instanceof Error?e.message:e}`,{level:`warn`})}}return{frontmatter:a,content:i}}function ju(e){if(Array.isArray(e))return e.flatMap(ju);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=>Mu(e))}function Mu(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=Mu(n+e+i);o.push(...t)}return o}function Nu(e){if(e==null)return;let t=typeof e==`number`?e:parseInt(String(e),10);if(Number.isInteger(t)&&t>0)return t}function Pu(e,t,n){return e==null?null:typeof e==`string`?e.trim()||null:typeof e==`number`||typeof e==`boolean`?String(e):(K(`Description invalid for ${n?`${n}:${t}`:t??`unknown`} - omitting`,{level:`warn`}),null)}function Fu(e){return e===!0||e===`true`}function Iu(e,t){if(e==null)return;let n=String(e).trim().toLowerCase();if(n!==``){if(zu.includes(n))return n;K(`Frontmatter 'shell: ${e}' in ${t} is not recognized. Valid values: ${zu.join(`, `)}. Falling back to bash.`,{level:`warn`})}}var Lu,Ru,zu,Bu=n((()=>{q(),ku(),Lu=/[{}[\]*&#!|>%@`]|: /,Ru=/^---\s*\n([\s\S]*?)---\s*\n?/,zu=[`bash`,`powershell`]}));function Vu(e){return uo()===`vertex`?Uu:e?.isNonInteractive?e.hasAppendSystemPrompt?Wu:Gu:Uu}function yue(){return!f(process.env.WORKMATE_ATTRIBUTION_HEADER)}function Hu(){if(!yue())return``;let e=process.env.WORKMATE_ENTRYPOINT??`unknown`,t=Fie(),n=`x-anthropic-billing-header: cc_version=0.0.29; cc_entrypoint=${e};${t?` cc_workload=${t};`:``}`;return K(`attribution header ${n}`),n}var Uu,Wu,Gu,Ku,qu,Ju=n((()=>{q(),g(),ho(),lie(),Uu=`You are Work Mate, a CLI for Work Mate.`,Wu=`You are Work Mate, a CLI for Work Mate, running within the Work Mate Agent SDK.`,Gu=`You are a Work Mate agent, built on the Work Mate Agent SDK.`,Ku=[Uu,Wu,Gu],qu=new Set(Ku)})),Yu,bue=n((()=>{Yu=e=>!1})),xue=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 Sue(e){if(typeof e==`string`)return Xu.find(t=>t===e)}var Xu,Zu,Qu,$u,ed,td,nd,rd=n((()=>{Xu=[`user`,`feedback`,`project`,`reference`],Zu=[`## Types of memory`,``,`<types>`,`<type>`,` <name>user</name>`,` <description>The user's role, goals, preferences, responsibilities, and knowledge. Use these to tailor your behavior to the user.</description>`,`</type>`,`<type>`,` <name>feedback</name>`,` <description>Guidance from the user about how to approach work — what to avoid and what to keep doing. Record from failure AND success. Include *why* so you can judge edge cases later. Structure content as: rule/fact, then **Why:** and **How to apply:** lines.</description>`,`</type>`,`<type>`,` <name>project</name>`,` <description>Information about ongoing work, goals, initiatives, bugs, or incidents not derivable from code or git history. Convert relative dates to absolute dates when saving (e.g., "Thursday" → "2026-03-05").</description>`,`</type>`,`<type>`,` <name>reference</name>`,` <description>Pointers to external systems where information can be found (e.g., Linear projects, Slack channels, Grafana dashboards).</description>`,`</type>`,`</types>`,``],Qu=[`## What NOT to save in memory`,``,`- Code patterns, conventions, architecture, file paths, or project structure — these can be derived by reading the current project state.`,"- Git history, recent changes, or who-changed-what — `git log` / `git blame` are authoritative.",`- Debugging solutions or fix recipes — the fix is in the code; the commit message has the context.`,`- Anything already documented in AGENTS.md files.`,`- Ephemeral task details: in-progress work, temporary state, current conversation context.`,``,`These exclusions apply even when the user explicitly asks you to save. If they ask you to save a PR list or activity summary, ask what was *surprising* or *non-obvious* about it — that is the part worth keeping.`],$u=`- Memory records can become stale over time. Use memory as context for what was true at a given point in time. Before answering the user or building assumptions based solely on information in memory records, verify that the memory is still correct and up-to-date by reading the current state of the files or resources. If a recalled memory conflicts with current information, trust what you observe now — and update or remove the stale memory rather than acting on it.`,ed=[`## When to access memories`,`- When memories seem relevant, or the user references prior-conversation work.`,`- You MUST access memory when the user explicitly asks you to check, recall, or remember.`,`- If the user says to *ignore* or *not use* memory: proceed as if MEMORY.md were empty. Do not apply remembered facts, cite, compare against, or mention memory content.`,$u],td=[`## Before recommending from memory`,``,`A memory that names a specific function, file, or flag is a claim that it existed *when the memory was written*. It may have been renamed, removed, or never merged. Before recommending it:`,``,`- If the memory names a file path: check the file exists.`,`- If the memory names a function or flag: grep for it.`,`- If the user is about to act on your recommendation (not just asking about history), verify first.`,``,`"The memory says X exists" is not the same as "X exists now."`,``,"A memory that summarizes repo state (activity logs, architecture snapshots) is frozen in time. If the user asks about *recent* or *current* state, prefer `git log` or reading the code over recalling the snapshot."],nd=["```markdown",`---`,`name: {{memory name}}`,`description: {{one-line description — used to decide relevance in future conversations, so be specific}}`,`type: {{${Xu.join(`, `)}}}`,`---`,``,`{{memory content — for feedback/project types, structure as: rule/fact, then **Why:** and **How to apply:** lines}}`,"```"]}));function id(e){let t=e.trim(),n=t.split(`
|
|
118
118
|
`),r=n.length,i=t.length,a=r>200,o=i>ud;if(!a&&!o)return{content:t,lineCount:r,byteCount:i,wasLineTruncated:a,wasByteTruncated:o};let s=a?n.slice(0,200).join(`
|
|
119
119
|
`):t;if(s.length>25e3){let e=s.lastIndexOf(`
|
|
120
120
|
`,ud);s=s.slice(0,e>0?e:ud)}let c=o&&!a?`${qa(i)} (limit: ${qa(ud)}) — index entries are too long`:a&&!o?`${r} lines (limit: 200)`:`${r} lines and ${qa(i)}`;return{content:s+`\n\n> WARNING: ${ld} 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 ad(e){let t=J();try{await t.mkdir(e)}catch(t){K(`ensureMemoryDirExists failed for ${e}: ${(t instanceof Error&&`code`in t&&typeof t.code==`string`?t.code:void 0)??String(t)}`,{level:`debug`})}}function od(e,t){J().readdir(e).then(e=>{let n=0,r=0;for(let t of e)t.isFile()?n++:t.isDirectory()&&r++;({...t})},()=>{})}function sd(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:",``,...nd,``,`- 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:",``,...nd,``,`**Step 2** — add a pointer to that file in \`${ld}\`. \`${ld}\` 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 \`${ld}\`.`,``,`- \`${ld}\` 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.`];return[`# ${e}`,``,`You have a persistent, file-based memory system at \`${t}\`. ${fd}`,``,`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.`,``,...Zu,...Qu,``,...i,``,...ed,``,...td,``,`## 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??[],``]}function Cue(e){let{displayName:t,memoryDir:n,extraGuidelines:r}=e,i=J(),a=n+ld,o=``;try{o=i.readFileSync(a,{encoding:`utf-8`})}catch{}let s=sd(t,n,r);if(o.trim()){let e=id(o),r=t===dd?`auto`:`agent`;od(n,{content_length:e.byteCount,line_count:e.lineCount,was_truncated:e.wasLineTruncated,was_byte_truncated:e.wasByteTruncated,memory_type:r}),s.push(`## ${ld}`,``,e.content)}else s.push(`## ${ld}`,``,`Your ${ld} is currently empty. When you save new memories, they will appear here.`);return s.join(`
|
|
121
121
|
`)}async function cd(){let e=Hi(),t=process.env.WORKMATE_COWORK_MEMORY_EXTRA_GUIDELINES,n=t&&t.trim().length>0?[t]:void 0;if(e){let e=Wi();return await ad(e),od(e,{memory_type:`auto`}),sd(`auto memory`,e,n,!1).join(`
|
|
122
|
-
`)}return h(process.env.WORKMATE_DISABLE_AUTO_MEMORY),!h(process.env.WORKMATE_DISABLE_AUTO_MEMORY)&&ar().autoMemoryEnabled,null}var ld,ud,dd,fd,pd=n((()=>{ji(),Vi(),Ra(),q(),g(),za(),Ln(),rd(),ld=`MEMORY.md`,ud=25e3,dd=`auto memory`,fd=`This directory already exists — write to it directly with the Write tool (do not run mkdir or check for its existence).`}));function wue(e){return e.replace(/:/g,`-`)}function md(e){return process.env.WORKMATE_REMOTE_MEMORY_DIR?X(process.env.WORKMATE_REMOTE_MEMORY_DIR,`projects`,Pn(Ut(Wr())??Wr()),`agent-memory-local`,e)+Sc:X(U(),`.workmate`,`agent-memory-local`,e)+Sc}function hd(e,t){let n=wue(e);switch(t){case`project`:return X(U(),`.workmate`,`agent-memory`,n)+Sc;case`local`:return md(n);case`user`:return X(ea(),`agent-memory`,n)+Sc}}function gd(e){let t=_c(e),n=ea();if(t.startsWith(X(n,`agent-memory`)+Sc)||t.startsWith(X(U(),`.workmate`,`agent-memory`)+Sc))return!0;if(process.env.WORKMATE_REMOTE_MEMORY_DIR){if(t.includes(`${Sc}agent-memory-local${Sc}`)&&t.startsWith(X(process.env.WORKMATE_REMOTE_MEMORY_DIR,`projects`)+Sc))return!0}else if(t.startsWith(X(U(),`.workmate`,`agent-memory-local`)+Sc))return!0;return!1}function Tue(e){switch(e){case`user`:return`User (${X(ea(),`agent-memory`)}/)`;case`project`:return`Project (.workmate/agent-memory/)`;case`local`:return`Local (${md(`...`)})`;default:return`None`}}function _d(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=hd(e,t);ad(r);let i=process.env.WORKMATE_COWORK_MEMORY_EXTRA_GUIDELINES;return Cue({displayName:`Persistent Agent Memory`,memoryDir:r,extraGuidelines:i&&i.trim().length>0?[n,i]:[n]})}var vd=n((()=>{H(),pd(),Vi(),fi(),Xn(),Kn()}));function yd(){let e=process.env.WORKMATE_ENVIRONMENT_KIND;return e===`byoc`||e===`anthropic_cloud`?e:null}var bd=n((()=>{q()}));function Eue(e){return Rc(4).readUInt32BE(0)%e}function xd(e){return e[Eue(e.length)]}function Due(){return`${xd(Sd)}-${xd(wd)}-${xd(Cd)}`}var Sd,Cd,wd,Oue=n((()=>{Sd=`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(`.`),Cd=`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(`.`),wd=`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 Td(e){let t=e??Kr(),n=Ir().get(t);if(!n){let e=Md();for(let t=0;t<jd;t++){n=Due();let t=X(e,`${n}.md`);if(!J().existsSync(t))break}kr(t,n)}return n}function Ed(e,t){kr(e,t)}function kue(){Ir().clear()}function Dd(e){let t=Td(Kr());return e?X(Md(),`${t}-agent-${e}.md`):X(Md(),`${t}.md`)}function Od(e){let t=Dd(e);try{return J().readFileSync(t,{encoding:`utf-8`})}catch(e){return Ci(e)||Y(e),null}}function kd(e){return e.messages.find(e=>e.slug)?.slug}async function Aue(e,t){let n=kd(e);if(!n)return!1;Ed(t??Kr(),n);let r=X(Md(),`${n}.md`);try{return await J().readFile(r,{encoding:`utf-8`}),!0}catch(t){if(!Ci(t))return Y(t),!1;if(yd()===null)return!1;K(`Plan file missing during resume: ${r}. Attempting recovery.`);let n=Nue(e.messages,`plan`),i=null;if(n&&n.content.length>0?(i=n.content,K(`Plan recovered from file snapshot, ${i.length} chars`,{level:`info`})):(i=Mue(e),i&&K(`Plan recovered from message history, ${i.length} chars`,{level:`info`})),i)try{return await el(r,i,{encoding:`utf-8`}),!0}catch(e){return Y(e),!1}return K(`Plan file recovery failed: no file snapshot or plan content found in message history`),!1}}async function jue(e,t){let n=kd(e);if(!n)return!1;let r=Md(),i=X(r,`${n}.md`),a=X(r,`${Td(t)}.md`);try{return await Hc(i,a),!0}catch(e){return Ci(e)||Y(e),!1}}function Mue(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 Nue(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 Ad(){if(yd()!==null)try{let e=[],t=Od();if(t&&e.push({key:`plan`,path:Dd(),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:zc(),snapshotFiles:e},{recordTranscript:r}=await import(`./sessionStorage-CC0v4zMs.js`);await r([n])}catch(e){Y(e)}}var jd,Md,Nd=n((()=>{d(),H(),ks(),fi(),q(),g(),vi(),bd(),ji(),Ta(),Ln(),Oue(),jd=10,Md=u(function(){let e=ar().plansDirectory,t;if(e){let n=U(),r=xc(n,e);!r.startsWith(n+Sc)&&r!==n?(Y(Error(`plansDirectory must be within project root: ${e}`)),t=X(m(),`plans`)):t=r}else t=X(m(),`plans`);try{J().mkdirSync(t)}catch(e){Y(e)}return t})})),Pd,Pue=n((()=>{Pd={type:`local-jsx`,name:`add-dir`,description:`添加新的工作目录`,argumentHint:`<path>`,load:()=>import(`./add-dir-BSizpuef.js`)}})),Fd,Fue=n((()=>{Fd={type:`local-jsx`,name:`btw`,description:`快速问一个旁路问题,不打断主对话`,immediate:!0,argumentHint:`<question>`,load:()=>import(`./btw-DzaRBa6o.js`)}})),Id,Iue=n((()=>{Id={aliases:[`channels`],type:`local-jsx`,name:`channel`,description:`配置远程对话渠道(钉钉)`,load:()=>import(`./channel-Gw6skpUh.js`)}})),Ld,Lue=n((()=>{Ld={type:`local`,name:`clear`,description:`清空对话历史并释放上下文`,aliases:[`reset`,`new`],supportsNonInteractive:!1,load:()=>import(`./clear-CDQs9_5P.js`)}})),Rd,Rue=n((()=>{g(),Rd={type:`local`,name:`compact`,description:`清空对话历史但保留摘要在上下文中。可选:/compact [摘要生成的指示]`,isEnabled:()=>!h(process.env.DISABLE_COMPACT),supportsNonInteractive:!0,argumentHint:`<optional custom summarization instructions>`,load:()=>import(`./compact-6F2tuItE.js`)}})),zd,zue=n((()=>{zd={aliases:[`settings`],type:`local-jsx`,name:`config`,description:`打开配置面板`,load:()=>import(`./config-BDkzWBnL.js`)}})),Bd,Vd,Bue=n((()=>{H(),Bd={name:`context`,description:`以彩色网格可视化当前上下文占用`,isEnabled:()=>!jr(),type:`local-jsx`,load:()=>import(`./context-TkdzCK3Y.js`)},Vd={type:`local`,name:`context`,supportsNonInteractive:!0,description:`显示当前上下文占用`,get isHidden(){return!jr()},isEnabled(){return jr()},load:()=>import(`./context-noninteractive-oFcnY1Er.js`)}})),Hd,Vue=n((()=>{Hd={type:`local-jsx`,name:`diff`,description:`查看未提交的改动以及每一轮的 diff`,load:()=>import(`./diff-BzVUPO4Z.js`)}})),Ud,Hue=n((()=>{g(),Ud={name:`doctor`,description:`诊断并校验 Work Mate 的安装与设置`,isEnabled:()=>!h(process.env.DISABLE_DOCTOR_COMMAND),type:`local-jsx`,load:()=>import(`./doctor-B4jQbGQr.js`)}})),Wd,Uue=n((()=>{Wd={type:`local-jsx`,name:`memory`,description:`编辑 Work Mate 记忆文件`,load:()=>import(`./memory-DtQQGyPS.js`)}})),Gd,Wue=n((()=>{Gd={type:`local-jsx`,name:`mode`,description:`切换交互模式(default、gentle、sharp、workhorse、token-saver、super-ai)`,isEnabled:()=>!0,argumentHint:`<mode-slug>`,load:()=>import(`./mode-SM8doWgC.js`)}})),Kd,Gue=n((()=>{Kd={type:`local-jsx`,name:`help`,description:`显示帮助与可用命令`,load:()=>import(`./help-CYtogTZk.js`)}}));function Kue(e,t){let n=Cse(e,t);return n===``||!n.startsWith(`..`)&&!Sse(n)}function que(e,t){let n=Dc(e),r=Dc(t);if(!Kue(n,r))return[n];let i=[],a=r;for(;i.push(a),a!==n;){let e=xse(a);if(e===a)break;a=e}return i.reverse()}async function qd(e,t){try{let n=(await J().readFile(e,{encoding:`utf-8`})).trim();return n?{path:e,relativePath:Dte(Cse(t,e))||bse(e),content:n}:null}catch{return null}}function Jue(e){return e.length===0?null:e.map(e=>`## ${e.relativePath}\n${e.content}`).join(`
|
|
122
|
+
`)}return h(process.env.WORKMATE_DISABLE_AUTO_MEMORY),!h(process.env.WORKMATE_DISABLE_AUTO_MEMORY)&&ar().autoMemoryEnabled,null}var ld,ud,dd,fd,pd=n((()=>{ji(),Vi(),Ra(),q(),g(),za(),Ln(),rd(),ld=`MEMORY.md`,ud=25e3,dd=`auto memory`,fd=`This directory already exists — write to it directly with the Write tool (do not run mkdir or check for its existence).`}));function wue(e){return e.replace(/:/g,`-`)}function md(e){return process.env.WORKMATE_REMOTE_MEMORY_DIR?X(process.env.WORKMATE_REMOTE_MEMORY_DIR,`projects`,Pn(Ut(Wr())??Wr()),`agent-memory-local`,e)+Sc:X(U(),`.workmate`,`agent-memory-local`,e)+Sc}function hd(e,t){let n=wue(e);switch(t){case`project`:return X(U(),`.workmate`,`agent-memory`,n)+Sc;case`local`:return md(n);case`user`:return X(ea(),`agent-memory`,n)+Sc}}function gd(e){let t=_c(e),n=ea();if(t.startsWith(X(n,`agent-memory`)+Sc)||t.startsWith(X(U(),`.workmate`,`agent-memory`)+Sc))return!0;if(process.env.WORKMATE_REMOTE_MEMORY_DIR){if(t.includes(`${Sc}agent-memory-local${Sc}`)&&t.startsWith(X(process.env.WORKMATE_REMOTE_MEMORY_DIR,`projects`)+Sc))return!0}else if(t.startsWith(X(U(),`.workmate`,`agent-memory-local`)+Sc))return!0;return!1}function Tue(e){switch(e){case`user`:return`User (${X(ea(),`agent-memory`)}/)`;case`project`:return`Project (.workmate/agent-memory/)`;case`local`:return`Local (${md(`...`)})`;default:return`None`}}function _d(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=hd(e,t);ad(r);let i=process.env.WORKMATE_COWORK_MEMORY_EXTRA_GUIDELINES;return Cue({displayName:`Persistent Agent Memory`,memoryDir:r,extraGuidelines:i&&i.trim().length>0?[n,i]:[n]})}var vd=n((()=>{H(),pd(),Vi(),fi(),Xn(),Kn()}));function yd(){let e=process.env.WORKMATE_ENVIRONMENT_KIND;return e===`byoc`||e===`anthropic_cloud`?e:null}var bd=n((()=>{q()}));function Eue(e){return Rc(4).readUInt32BE(0)%e}function xd(e){return e[Eue(e.length)]}function Due(){return`${xd(Sd)}-${xd(wd)}-${xd(Cd)}`}var Sd,Cd,wd,Oue=n((()=>{Sd=`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(`.`),Cd=`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(`.`),wd=`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 Td(e){let t=e??Kr(),n=Ir().get(t);if(!n){let e=Md();for(let t=0;t<jd;t++){n=Due();let t=X(e,`${n}.md`);if(!J().existsSync(t))break}kr(t,n)}return n}function Ed(e,t){kr(e,t)}function kue(){Ir().clear()}function Dd(e){let t=Td(Kr());return e?X(Md(),`${t}-agent-${e}.md`):X(Md(),`${t}.md`)}function Od(e){let t=Dd(e);try{return J().readFileSync(t,{encoding:`utf-8`})}catch(e){return Ci(e)||Y(e),null}}function kd(e){return e.messages.find(e=>e.slug)?.slug}async function Aue(e,t){let n=kd(e);if(!n)return!1;Ed(t??Kr(),n);let r=X(Md(),`${n}.md`);try{return await J().readFile(r,{encoding:`utf-8`}),!0}catch(t){if(!Ci(t))return Y(t),!1;if(yd()===null)return!1;K(`Plan file missing during resume: ${r}. Attempting recovery.`);let n=Nue(e.messages,`plan`),i=null;if(n&&n.content.length>0?(i=n.content,K(`Plan recovered from file snapshot, ${i.length} chars`,{level:`info`})):(i=Mue(e),i&&K(`Plan recovered from message history, ${i.length} chars`,{level:`info`})),i)try{return await el(r,i,{encoding:`utf-8`}),!0}catch(e){return Y(e),!1}return K(`Plan file recovery failed: no file snapshot or plan content found in message history`),!1}}async function jue(e,t){let n=kd(e);if(!n)return!1;let r=Md(),i=X(r,`${n}.md`),a=X(r,`${Td(t)}.md`);try{return await Hc(i,a),!0}catch(e){return Ci(e)||Y(e),!1}}function Mue(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 Nue(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 Ad(){if(yd()!==null)try{let e=[],t=Od();if(t&&e.push({key:`plan`,path:Dd(),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:zc(),snapshotFiles:e},{recordTranscript:r}=await import(`./sessionStorage-vLxCo1Mh.js`);await r([n])}catch(e){Y(e)}}var jd,Md,Nd=n((()=>{d(),H(),ks(),fi(),q(),g(),vi(),bd(),ji(),Ta(),Ln(),Oue(),jd=10,Md=u(function(){let e=ar().plansDirectory,t;if(e){let n=U(),r=xc(n,e);!r.startsWith(n+Sc)&&r!==n?(Y(Error(`plansDirectory must be within project root: ${e}`)),t=X(m(),`plans`)):t=r}else t=X(m(),`plans`);try{J().mkdirSync(t)}catch(e){Y(e)}return t})})),Pd,Pue=n((()=>{Pd={type:`local-jsx`,name:`add-dir`,description:`添加新的工作目录`,argumentHint:`<path>`,load:()=>import(`./add-dir-BsO6l8Ue.js`)}})),Fd,Fue=n((()=>{Fd={type:`local-jsx`,name:`btw`,description:`快速问一个旁路问题,不打断主对话`,immediate:!0,argumentHint:`<question>`,load:()=>import(`./btw-BA39Zrhm.js`)}})),Id,Iue=n((()=>{Id={aliases:[`channels`],type:`local-jsx`,name:`channel`,description:`配置远程对话渠道(钉钉)`,load:()=>import(`./channel-C5yKM1wf.js`)}})),Ld,Lue=n((()=>{Ld={type:`local`,name:`clear`,description:`清空对话历史并释放上下文`,aliases:[`reset`,`new`],supportsNonInteractive:!1,load:()=>import(`./clear-BmlaYYrD.js`)}})),Rd,Rue=n((()=>{g(),Rd={type:`local`,name:`compact`,description:`清空对话历史但保留摘要在上下文中。可选:/compact [摘要生成的指示]`,isEnabled:()=>!h(process.env.DISABLE_COMPACT),supportsNonInteractive:!0,argumentHint:`<optional custom summarization instructions>`,load:()=>import(`./compact-D3uePeI7.js`)}})),zd,zue=n((()=>{zd={aliases:[`settings`],type:`local-jsx`,name:`config`,description:`打开配置面板`,load:()=>import(`./config-GgGdlJ9h.js`)}})),Bd,Vd,Bue=n((()=>{H(),Bd={name:`context`,description:`以彩色网格可视化当前上下文占用`,isEnabled:()=>!jr(),type:`local-jsx`,load:()=>import(`./context-CBEWyVpE.js`)},Vd={type:`local`,name:`context`,supportsNonInteractive:!0,description:`显示当前上下文占用`,get isHidden(){return!jr()},isEnabled(){return jr()},load:()=>import(`./context-noninteractive-BLCyyyGL.js`)}})),Hd,Vue=n((()=>{Hd={type:`local-jsx`,name:`diff`,description:`查看未提交的改动以及每一轮的 diff`,load:()=>import(`./diff-CewYzu3Y.js`)}})),Ud,Hue=n((()=>{g(),Ud={name:`doctor`,description:`诊断并校验 Work Mate 的安装与设置`,isEnabled:()=>!h(process.env.DISABLE_DOCTOR_COMMAND),type:`local-jsx`,load:()=>import(`./doctor-CrQ0UfG2.js`)}})),Wd,Uue=n((()=>{Wd={type:`local-jsx`,name:`memory`,description:`编辑 Work Mate 记忆文件`,load:()=>import(`./memory-DVRdJFfI.js`)}})),Gd,Wue=n((()=>{Gd={type:`local-jsx`,name:`mode`,description:`切换交互模式(default、gentle、sharp、workhorse、token-saver、super-ai)`,isEnabled:()=>!0,argumentHint:`<mode-slug>`,load:()=>import(`./mode-Bd5w-RBX.js`)}})),Kd,Gue=n((()=>{Kd={type:`local-jsx`,name:`help`,description:`显示帮助与可用命令`,load:()=>import(`./help-CDMjVOl6.js`)}}));function Kue(e,t){let n=Cse(e,t);return n===``||!n.startsWith(`..`)&&!Sse(n)}function que(e,t){let n=Dc(e),r=Dc(t);if(!Kue(n,r))return[n];let i=[],a=r;for(;i.push(a),a!==n;){let e=xse(a);if(e===a)break;a=e}return i.reverse()}async function qd(e,t){try{let n=(await J().readFile(e,{encoding:`utf-8`})).trim();return n?{path:e,relativePath:Dte(Cse(t,e))||bse(e),content:n}:null}catch{return null}}function Jue(e){return e.length===0?null:e.map(e=>`## ${e.relativePath}\n${e.content}`).join(`
|
|
123
123
|
|
|
124
124
|
`)}function Yue(e){let t=e.slice(),n=null,r=0;for(let e=0;e<t.length;e++){let i=t[e].trim(),a=i.match(/^([`~])\1{2,}/);if(a){let o=a[1],s=a[0].length,c=i.slice(s);n===null?(n=o,r=s):n===o&&s>=r&&c.trim()===``&&(n=null,r=0),t[e]=``;continue}n!==null&&(t[e]=``)}return t}function Xue(e){let t=[],n=Yue(e.split(`
|
|
125
125
|
`)),r=e=>e.length-e.trimStart().length,i=(e,t)=>e.replace(t,``).trim().replace(/^["']|["']$/g,``);function a(e,t){let a=[],o=e;for(;o<n.length;){let e=n[o],s=e.trim(),c=r(e);if(!s){o+=1;continue}if(c<=t)break;if(!s.startsWith(`- name:`)){o+=1;continue}let l=c,u=i(s,`- name:`),d=``,f;for(o+=1;o<n.length;){let e=n[o],t=e.trim(),a=r(e);if(!t){o+=1;continue}if(a<=l)break;t.startsWith(`prompt:`)?d=i(t,`prompt:`):t.startsWith(`wait_for:`)&&(f=i(t,`wait_for:`)),o+=1}u&&d&&a.push({name:u,prompt:d,...f?{waitFor:f}:{}})}return{steps:a,nextIndex:o}}let o=n.findIndex(e=>e.trim()===`tasks:`);if(o===-1)return t;let s=r(n[o]),c=o+1;for(;c<n.length;){let e=n[c],o=e.trim(),l=r(e);if(!o){c+=1;continue}if(l<=s)break;if(!o.startsWith(`- name:`)){c+=1;continue}let u=l,d=i(o,`- name:`),f=``,p=``,m=[];for(c+=1;c<n.length;){let e=n[c],t=e.trim(),o=r(e);if(!t){c+=1;continue}if(o<=s||o===u&&t.startsWith(`- name:`)||o<=u)break;if(t.startsWith(`interval:`)){f=i(t,`interval:`),c+=1;continue}if(t.startsWith(`prompt:`)){p=i(t,`prompt:`),c+=1;continue}if(t===`steps:`){let e=a(c+1,o);m=e.steps,c=e.nextIndex;continue}c+=1}d&&f&&p&&t.push({name:d,interval:f,prompt:p,steps:m})}return t}function Zue(e){let t=e.trim().match(/^(\d+)\s*(ms|s|m|h|d)?$/i);if(!t)return null;let n=Number.parseInt(t[1],10);switch((t[2]??`m`).toLowerCase()){case`ms`:return n;case`s`:return n*1e3;case`m`:return n*6e4;case`h`:return n*60*6e4;case`d`:return n*24*60*6e4;default:return null}}function Jd(e,t){return`${e}::${t.name}::${t.interval}::${t.prompt}`}function Que(e,t){let n=[];for(let r of e.heartbeatTasks){let i=Zue(r.interval);if(i==null)continue;let a=Jd(e.rootDir,r),o=nf.get(a);o!==void 0&&t-o<i||n.push(r)}return n}function $ue(e,t,n){for(let r of t)nf.set(Jd(e.rootDir,r),n)}async function ede(e={}){let t=Dc(e.rootDir??Wr()),n=Dc(e.currentDir??U()),r=que(t,n),[i,a]=await Promise.all([Promise.all(r.map(async e=>qd(Ec(e,Zd,$d),t))),qd(Ec(t,Zd,ef),t)]),o=i.filter(e=>e!==null);return{rootDir:t,currentDir:n,agentsFiles:o,agentsContent:Jue(o),heartbeatFile:a,heartbeatContent:a?.content??null,heartbeatTasks:a?Xue(a.content):[]}}async function tde(e){let t=await Yd(e);return Xd(t),t.prompt}async function Yd(e){let t=await ede({rootDir:e.rootDir,currentDir:e.currentDir}),n=e.nowMs??Date.now(),r=e.trigger===`proactive-tick`?Que(t,n):[],i=r.filter(e=>e.steps.length===0),a=[];if(t.agentsContent&&a.push(`Workspace authority from ${$d}:\n${t.agentsContent}`),t.heartbeatContent&&a.push(`Workspace heartbeat guidance from ${ef}:\n${t.heartbeatContent}`),i.length>0&&a.push([`Due ${ef} tasks:`,...i.map(e=>`- ${e.name} (${e.interval}): ${e.prompt}`)].join(`
|
|
@@ -386,9 +386,9 @@ After writing the skill file(s), inform the user:
|
|
|
386
386
|
3. That they can edit the skills to customize them
|
|
387
387
|
4. That they can run /init-verifiers again to add more verifiers for other areas
|
|
388
388
|
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.)
|
|
389
|
-
`}]}}})),cf,ide=n((()=>{coe(),cf={name:`keybindings`,description:`打开或创建你的 keybindings 配置文件`,isEnabled:()=>uoe(),supportsNonInteractive:!1,type:`local`,load:()=>import(`./keybindings-CxgQqQJe.js`)}})),lf,ade=n((()=>{lf={type:`local-jsx`,name:`mcp`,description:`管理 MCP 服务器`,immediate:!0,argumentHint:`[enable|disable [server-name]]`,load:()=>import(`./mcp-
|
|
389
|
+
`}]}}})),cf,ide=n((()=>{coe(),cf={name:`keybindings`,description:`打开或创建你的 keybindings 配置文件`,isEnabled:()=>uoe(),supportsNonInteractive:!1,type:`local`,load:()=>import(`./keybindings-CxgQqQJe.js`)}})),lf,ade=n((()=>{lf={type:`local-jsx`,name:`mcp`,description:`管理 MCP 服务器`,immediate:!0,argumentHint:`[enable|disable [server-name]]`,load:()=>import(`./mcp-D9HFARDy.js`)}})),uf,ode=n((()=>{uf={type:`local-jsx`,name:`onboarding`,description:`重新运行首次启动的初始化(主题、信任、模型、MCP)`,argumentHint:`[full|theme|trust|model|mcp|status]`,isEnabled:()=>!0,isHidden:!1,load:async()=>({call:(await import(`./launchOnboarding-BvD-E_jC.js`)).callOnboarding})}})),df,sde=n((()=>{df={type:`local-jsx`,name:`rename`,description:`重命名当前会话`,immediate:!0,argumentHint:`[name]`,load:()=>import(`./rename-BV-3ZpFx.js`)}})),ff,cde=n((()=>{ff={type:`local-jsx`,name:`resume`,description:`恢复之前的会话`,aliases:[`continue`],argumentHint:`[conversation id or search term]`,load:()=>import(`./resume-CUzQIor4.js`)}})),pf,lde=n((()=>{pf={type:`local-jsx`,name:`skills`,description:`列出可用的 skill`,load:()=>import(`./skills-Fd12LJal.js`)}})),mf,ude=n((()=>{mf={type:`local-jsx`,name:`status`,description:`显示 Work Mate 的状态,包括版本、模型、账号、API 连通性与工具状态`,immediate:!0,load:()=>import(`./status-CGEMRiPI.js`)}})),hf,dde=n((()=>{hf={type:`local-jsx`,name:`tasks`,aliases:[`bashes`],description:`列出并管理后台任务`,load:()=>import(`./tasks-DQmkY_xD.js`)}})),gf,fde=n((()=>{gf={type:`local-jsx`,name:`local-memory`,aliases:[`lm`],description:`管理本地记忆存储,用于笔记和上下文。存放在 ~/.workmate/local-memory/——无需 API key`,argumentHint:`list | create STORE | store STORE KEY VALUE | fetch STORE KEY | entries STORE | archive STORE`,isHidden:!1,isEnabled:()=>!0,load:async()=>({call:(await import(`./launchLocalMemory-DUkJCKmd.js`)).callLocalMemory})}})),_f,pde=n((()=>{an(),_f={type:`local-jsx`,name:`terminal-setup`,description:Zn.terminal===`Apple_Terminal`?`启用 Option+Enter 换行键绑定和视觉响铃`:`安装 Shift+Enter 换行键绑定`,isHidden:Zn.terminal!==null&&Zn.terminal in{ghostty:`Ghostty`,kitty:`Kitty`,"iTerm.app":`iTerm2`,WezTerm:`WezTerm`},load:()=>import(`./terminalSetup-CaGbEVjB.js`)}})),vf,mde=n((()=>{vf={type:`local-jsx`,name:`theme`,description:`切换主题`,load:()=>import(`./theme-DQjJ4R0o.js`)}})),yf,hde=n((()=>{yf={name:`vim`,description:`在 Vim 与普通编辑模式之间切换`,supportsNonInteractive:!1,type:`local`,load:()=>import(`./vim-BlO9V5_5.js`)}})),bf=i({activateProactive:()=>Cf,deactivateProactive:()=>wf,getActivationSource:()=>gde,getNextTickAt:()=>jf,isContextBlocked:()=>kf,isProactiveActive:()=>Sf,isProactivePaused:()=>Tf,pauseProactive:()=>Ef,resumeProactive:()=>Df,setContextBlocked:()=>Of,setNextTickAt:()=>Af,shouldTick:()=>Nf,subscribeToProactiveChanges:()=>Mf});function xf(){for(let e of zf)try{e()}catch{}}function Sf(){return Pf}function Cf(e){Pf||(Pf=!0,Ff=!1,If=!1,Rf=e,xf())}function wf(){Pf&&(Pf=!1,Ff=!1,If=!1,Lf=null,Rf=void 0,xf())}function Tf(){return Ff}function Ef(){!Pf||Ff||(Ff=!0,Lf=null,xf())}function Df(){!Pf||!Ff||(Ff=!1,xf())}function Of(e){If!==e&&(If=e,e&&(Lf=null),xf())}function kf(){return If}function Af(e){Lf=e,xf()}function jf(){return!Pf||Ff||If?null:Lf}function gde(){return Rf}function Mf(e){return zf.add(e),()=>{zf.delete(e)}}function Nf(){return Pf&&!Ff&&!If}var Pf,Ff,If,Lf,Rf,zf,Bf=n((()=>{Pf=!1,Ff=!1,If=!1,Lf=null,zf=new Set})),Vf,_de=n((()=>{Vf={type:`local-jsx`,name:`proactive`,description:`切换主动(autonomous)模式`,isEnabled:()=>!0,immediate:!0,load:()=>Promise.resolve({async call(t,n){let r=(Bf(),e(bf));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>
|
|
390
390
|
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.
|
|
391
|
-
</system-reminder>`]})),null}})}})),Hf,vde=n((()=>{Hf={type:`local-jsx`,name:`job`,description:`管理模板作业(job)`,argumentHint:`[list|new|reply|status]`,isEnabled:()=>!0,load:()=>import(`./job-
|
|
391
|
+
</system-reminder>`]})),null}})}})),Hf,vde=n((()=>{Hf={type:`local-jsx`,name:`job`,description:`管理模板作业(job)`,argumentHint:`[list|new|reply|status]`,isEnabled:()=>!0,load:()=>import(`./job-BVElGsu0.js`)}})),Uf,yde=n((()=>{Uf={type:`local-jsx`,name:`goal`,description:`设置或查看一个持久化 goal,用于驱动跨轮次的自动续作`,argumentHint:`[<objective> | status | clear | pause | resume | complete]`,load:()=>import(`./goal-DIrBBT5J.js`)}})),Wf,bde=n((()=>{Wf={type:`local-jsx`,name:`permissions`,aliases:[`allowed-tools`],description:`管理允许 / 拒绝的工具权限规则`,load:()=>import(`./permissions-CLYcBXIu.js`)}})),Gf,xde=n((()=>{Gf={type:`local-jsx`,name:`plan`,description:`启用 plan 模式或查看当前会话的 plan`,argumentHint:`[open|<description>]`,load:()=>import(`./plan-Dwj_ZX8G.js`)}}));function Kf(){return!h(process.env.WORKMATE_DISABLE_FAST_MODE)}function qf(){return Kf()?Jf()===null:!1}function Jf(){if(!Kf())return`Fast mode is not available`;if(Pa(),jr()&&Xte()&&!tr(`flagSettings`)?.fastMode){let e=`Fast mode is not available in the Agent SDK`;return K(`Fast mode unavailable: ${e}`),e}if(uo()!==`firstParty`){let e=`Fast mode is not available on Bedrock, Vertex, or Foundry`;return K(`Fast mode unavailable: ${e}`),e}return null}function Sde(){return`opus${Mie()?`[1m]`:``}`}function Cde(e){if(!Kf()||!qf()||!Yf(e))return!1;let t=ar();return!t.fastModePerSessionOptIn&&t.fastMode===!0}function Yf(e){if(!Kf())return!1;let t=Ho(e??Oo());return t.toLowerCase().includes(`opus-4-7`)||t.toLowerCase().includes(`opus-4-6`)}function Xf(){return $f.status===`cooldown`&&Date.now()>=$f.resetAt&&(Kf()&&!ep&&(K(`Fast mode cooldown expired, re-enabling fast mode`),ep=!0,np.emit()),$f={status:`active`}),$f}function wde(e,t){if(!Kf())return;$f={status:`cooldown`,resetAt:e,reason:t},ep=!1;let n=e-Date.now();K(`Fast mode cooldown triggered (${t}), duration ${Math.round(n/1e3)}s`),tp.emit(e,t)}function Tde(){$f={status:`active`}}function Ede(e){switch(e){case`out_of_credits`:return`Fast mode disabled · extra usage credits exhausted`;case`org_level_disabled`:case`org_service_level_disabled`:return`Fast mode disabled · extra usage disabled by your organization`;case`org_level_disabled_until`:return`Fast mode disabled · extra usage spending cap reached`;case`member_level_disabled`:return`Fast mode disabled · extra usage disabled for your account`;case`seat_tier_level_disabled`:case`seat_tier_zero_credit_limit`:case`member_zero_credit_limit`:return`Fast mode disabled · extra usage not available for your plan`;case`overage_not_provisioned`:case`no_limits_configured`:return`Fast mode requires extra usage billing · check your API plan`;default:return`Fast mode disabled · extra usage not available`}}function Dde(){K(`Fast mode rejected by API, disabling`)}function Ode(e){let t=Ede(e);K(`Fast mode overage rejection: ${e??`unknown`} — ${t}`),ap.emit(t)}function Zf(){return Xf().status===`cooldown`}function kde(e,t){let n=Kf()&&qf()&&!!t&&Yf(e);return n&&Zf()?`cooldown`:n?`on`:`off`}function Ade(){}async function jde(){}var Qf,$f,ep,tp,np,rp,ip,ap,op,sp,cp,lp=n((()=>{Ra(),H(),La(),q(),g(),To(),ho(),Ln(),Rr(),Qf=`Opus 4.7`,$f={status:`active`},ep=!1,tp=Nr(),np=Nr(),rp=tp.subscribe,ip=np.subscribe,ap=Nr(),op=ap.subscribe,sp=Nr(),cp=sp.subscribe}));function up(){return!1}var dp=n((()=>{})),fp,Mde=n((()=>{lp(),dp(),fp={type:`local-jsx`,name:`fast`,get description(){return`Toggle fast mode (${Qf} only)`},availability:[`claude-ai`,`console`],isEnabled:()=>Kf(),get isHidden(){return!Kf()},argumentHint:`[on|off]`,get immediate(){return up()},load:()=>import(`./fast-C3JeBy3A.js`)}})),pp,Nde=n((()=>{pp={type:`local-jsx`,name:`hooks`,description:`查看工具事件的 hook 配置`,immediate:!0,load:()=>import(`./hooks-BNKCE023.js`)}})),mp,Pde=n((()=>{mp={type:`local-jsx`,name:`branch`,aliases:[`fork`],description:`从当前时间点为当前会话创建一个分支`,argumentHint:`[name]`,load:()=>import(`./branch-CTIHtpwz.js`)}})),hp,Fde=n((()=>{hp={type:`local-jsx`,name:`agents`,description:`管理智能体(agent)配置`,load:()=>import(`./agents-BV1nan6b.js`)}})),gp,Ide=n((()=>{gp={type:`local-jsx`,name:`plugin`,aliases:[`plugins`,`marketplace`],description:`管理 Work Mate 插件`,immediate:!0,load:()=>import(`./plugin-Cscvf8st.js`)}})),_p,Lde=n((()=>{_p={type:`local`,name:`reload-plugins`,description:`在当前会话激活待生效的插件改动`,supportsNonInteractive:!1,load:()=>import(`./reload-plugins-C38i_Eb3.js`)}})),vp,Rde=n((()=>{vp={description:`把代码和/或对话恢复到之前的某个时间点`,name:`rewind`,aliases:[`checkpoint`],argumentHint:``,type:`local`,supportsNonInteractive:!1,load:()=>import(`./rewind-D12hCfZD.js`)}})),yp,bp,zde=n((()=>{yp=async()=>({type:`text`,value:`0.0.29 (built 2026-08-30T09:21:59.826Z)`}),bp={type:`local`,name:`version`,description:`打印当前会话运行的版本(不是 autoupdate 下载的版本)`,isEnabled:()=>!0,supportsNonInteractive:!0,load:()=>Promise.resolve({call:yp})}})),xp=i({isSkillSearchCompiledIn:()=>Sp,isSkillSearchEnabled:()=>Cp});function Sp(){return!1}function Cp(){return process.env.SKILL_SEARCH_ENABLED===`1`}var wp=n((()=>{})),Tp,Bde=n((()=>{wp(),Tp={type:`local-jsx`,name:`skill-search`,description:`控制对话过程中自动进行的 skill 匹配`,argumentHint:`[start|stop|about|status]`,isEnabled:()=>Sp(),isHidden:!1,load:()=>import(`./skillSearchPanel-DtQYF9gN.js`)}}));function Z(e,t){if(!process.env.SRT_DEBUG)return;let n=t?.level||`info`,r=`[SandboxDebug]`;switch(n){case`error`:console.error(`${r} ${e}`);break;case`warn`:console.warn(`${r} ${e}`);break;default:console.error(`${r} ${e}`)}}var Ep=n((()=>{}));function Dp(e){let t=e?.http??process.env.HTTP_PROXY??process.env.http_proxy??void 0,n=e?.https??process.env.HTTPS_PROXY??process.env.https_proxy??t,r=e?.noProxy??process.env.NO_PROXY??process.env.no_proxy??``;if(!t&&!n)return;let i=e=>{if(!e)return;let t=/^[a-z][a-z0-9+.-]*:\/\//i.test(e)?e:`http://${e}`;try{let e=new ol(t);if(e.protocol!==`http:`&&e.protocol!==`https:`||!e.hostname)throw Error(`unsupported scheme or empty host`);return e}catch{Z(`Invalid parent proxy URL, ignoring: ${Hde(e)}`,{level:`error`});return}},a=i(t),o=i(n);if(!(!a&&!o))return{httpUrl:a,httpsUrl:o,noProxy:Vde(r)}}function Vde(e){let t={all:!1,suffixes:[],cidr:new Tce};for(let n of e.split(`,`)){if(n=n.trim(),!n)continue;if(n===`*`){t.all=!0;continue}let e=n.indexOf(`/`);if(e!==-1){let r=n.slice(0,e),i=n.slice(e+1),a=cl(r);if(a&&i!==``&&/^\d+$/.test(i)){let e=Number(i);if(e>=0&&e<=(a===6?128:32)){try{t.cidr.addSubnet(r,e,a===6?`ipv6`:`ipv4`)}catch{}continue}}continue}let r=n.toLowerCase(),i=/^\[([^\]]+)\](?::\d+)?$/.exec(r);i&&(r=i[1]),r.startsWith(`*.`)&&(r=r.slice(1));let a=cl(r);if(a)try{t.cidr.addAddress(r,a===6?`ipv6`:`ipv4`);continue}catch{}else{let e=r.lastIndexOf(`:`);e!==-1&&/^\d+$/.test(r.slice(e+1))&&(r=r.slice(0,e))}t.suffixes.push(r)}return t}function Op(e,t){let n=Pp(t.toLowerCase().replace(/\.$/,``));if(n===`localhost`)return!0;let r=cl(n);if(r&&Bp.check(n,r===6?`ipv6`:`ipv4`)||e.noProxy.all||r&&e.noProxy.cidr.check(n,r===6?`ipv6`:`ipv4`))return!0;for(let t of e.noProxy.suffixes)if(t.startsWith(`.`)){if(n===t.slice(1)||n.endsWith(t))return!0}else if(n===t||n.endsWith(`.`+t))return!0;return!1}function kp(e,t){return t.isHttps?e.httpsUrl??e.httpUrl:e.httpUrl}function Ap(e){let{destHost:t,destPort:n}=e,r=Pp(t);if(!Ip(r))return Promise.reject(Error(`Invalid destination host for CONNECT: ${JSON.stringify(t)}`));if(!Number.isInteger(n)||n<1||n>65535)return Promise.reject(Error(`Invalid destination port: ${n}`));let i=cl(r)===6?`[${r}]:${n}`:`${r}:${n}`;return new Promise((t,n)=>{let r=e.dial(),a=!1,o=e=>{a||(a=!0,r.destroy(),n(e))},s=()=>o(Error(`Proxy closed during CONNECT handshake`));r.setTimeout(e.timeoutMs??Rp,()=>o(Error(`CONNECT handshake timed out`))),r.once(`error`,o),r.once(`close`,s),r.once(e.readyEvent,()=>{r.write(`CONNECT ${i} HTTP/1.1\r\nHost: ${i}\r\n`+(e.authHeader?`Proxy-Authorization: ${e.authHeader}\r\n`:``)+`\r
|
|
392
392
|
`);let n=``,c=e=>{n+=e.toString(`latin1`);let i=n.indexOf(`\r
|
|
393
393
|
\r
|
|
394
394
|
`);if(i===-1){n.length>16*1024&&o(Error(`CONNECT response header too large`));return}r.pause(),r.removeListener(`data`,c);let l=n.slice(0,n.indexOf(`\r
|
|
@@ -412,7 +412,7 @@ Connection blocked by network allowlist`);return}let c=e.getMitmSocketPath?.(o),
|
|
|
412
412
|
`);return`${o} -c ${Xm.quote([i])}`}else{let e=[...s,`eval ${Xm.quote([n])}`].join(`
|
|
413
413
|
`);return`${o} -c ${Xm.quote([e])}`}}async function Afe(e,t,n={command:`rg`},r=Zm,i=!1,a){let o=[],s=[],c=[];if(t){o.push(`--ro-bind`,`/`,`/`);for(let e of t.allowOnly||[]){let t=jm(e);if(Z(`[Sandbox Linux] Processing write path: ${e} -> ${t}`),t.startsWith(`/dev/`)){Z(`[Sandbox Linux] Skipping /dev path: ${t}`);continue}if(!Oc.existsSync(t)){Z(`[Sandbox Linux] Skipping non-existent write path: ${t}`);continue}try{let n=Oc.realpathSync(t);if(n!==t.replace(/\/+$/,``)&&Am(t,n)){Z(`[Sandbox Linux] Skipping symlink write path pointing outside expected location: ${e} -> ${n}`);continue}}catch{Z(`[Sandbox Linux] Skipping write path that could not be resolved: ${t}`);continue}o.push(`--bind`,t,t),s.push(t)}let e=[...t.denyWithinAllow||[],...await Efe(n,r,i,a)],l=new Set;for(let t of e){let e=jm(t);if(l.has(e)||(l.add(e),e.startsWith(`/dev/`)))continue;let n=Cfe(e,s);if(n){c.push(`--ro-bind`,`/dev/null`,n),Z(`[Sandbox Linux] Mounted /dev/null at symlink ${n} to prevent symlink replacement attack`);continue}if(!Oc.existsSync(e)){if(wfe(e)){Z(`[Sandbox Linux] Skipping deny path with file ancestor (cannot create paths under a file): ${e}`);continue}let t=Tc.dirname(e);for(;t!==`/`&&!Oc.existsSync(t);)t=Tc.dirname(t);if(s.some(n=>t.startsWith(n+`/`)||t===n||e.startsWith(n+`/`))){let t=Tfe(e);if(t!==e){let n=Oc.mkdtempSync(Tc.join(Ic(),`claude-empty-`));c.push(`--ro-bind`,n,t),$m.add(t),Jm(),Z(`[Sandbox Linux] Mounted empty dir at ${t} to block creation of ${e}`)}else c.push(`--ro-bind`,`/dev/null`,t),$m.add(t),Jm(),Z(`[Sandbox Linux] Mounted /dev/null at ${t} to block creation of ${e}`)}else Z(`[Sandbox Linux] Skipping non-existent deny path not within allowed paths: ${e}`);continue}s.some(t=>e.startsWith(t+`/`)||e===t)?c.push(`--ro-bind`,e,e):Z(`[Sandbox Linux] Skipping deny path not within allowed paths: ${e}`)}}else o.push(`--bind`,`/`,`/`);let l=[],u=(e?.allowWithinDeny||[]).map(e=>jm(e)),d=new Set([`proc`,`dev`,`sys`]);for(let t of e?.denyOnly||[])if(jm(t)===`/`)for(let e of Oc.readdirSync(`/`))d.has(e)||l.push(`/`+e);else l.push(t);Oc.existsSync(`/etc/ssh/ssh_config.d`)&&l.push(`/etc/ssh/ssh_config.d`);for(let e of l){let t=jm(e);if(!Oc.existsSync(t)){Z(`[Sandbox Linux] Skipping non-existent read deny path: ${t}`);continue}let n=t===`/`?`/`:t+`/`;if(Oc.statSync(t).isDirectory()){o.push(`--tmpfs`,t);for(let e of s)(e.startsWith(n)||e===t)&&(o.push(`--bind`,e,e),Z(`[Sandbox Linux] Re-bound write path wiped by denyRead tmpfs: ${e}`));for(let e of u)if(e.startsWith(n)||e===t){if(!Oc.existsSync(e)){Z(`[Sandbox Linux] Skipping non-existent read allow path: ${e}`);continue}if(s.some(r=>(r.startsWith(n)||r===t)&&(e===r||e.startsWith(r+`/`))))continue;o.push(`--ro-bind`,e,e),Z(`[Sandbox Linux] Re-allowed read access within denied region: ${e}`)}}else{if(u.some(e=>t===e||t.startsWith(e+`/`))){Z(`[Sandbox Linux] Skipping read deny for re-allowed path: ${t}`);continue}o.push(`--ro-bind`,`/dev/null`,t)}}return o.push(...c),o}async function jfe(e){let{command:t,needsNetworkRestriction:n,httpSocketPath:r,socksSocketPath:i,httpProxyPort:a,socksProxyPort:o,readConfig:s,writeConfig:c,enableWeakerNestedSandbox:l,allowAllUnixSockets:u,binShell:d,ripgrepConfig:f={command:`rg`},mandatoryDenySearchDepth:p=Zm,allowGitConfig:m=!1,seccompConfig:h,abortSignal:g}=e,_=s&&s.denyOnly.length>0,v=c!==void 0;if(!n&&!_&&!v)return t;let y=[`--new-session`,`--die-with-parent`],b;try{if(u)Z(`[Sandbox Linux] Skipping seccomp filter - allowAllUnixSockets is enabled`);else{b=xfe(h?.bpfPath)??void 0;let e=Wm(h?.applyPath);!b||!e?(Z(`[Sandbox Linux] Seccomp binaries not available - unix socket blocking disabled. Install @anthropic-ai/sandbox-runtime globally for full protection.`,{level:`warn`}),b=void 0):(b.includes(`/vendor/seccomp/`)||(Qm.add(b),Jm()),Z(`[Sandbox Linux] Generated seccomp BPF filter for Unix socket blocking`))}if(n&&(y.push(`--unshare-net`),r&&i)){if(!Oc.existsSync(r))throw Error(`Linux HTTP bridge socket does not exist: ${r}. The bridge process may have died. Try reinitializing the sandbox.`);if(!Oc.existsSync(i))throw Error(`Linux SOCKS bridge socket does not exist: ${i}. The bridge process may have died. Try reinitializing the sandbox.`);y.push(`--bind`,r,r),y.push(`--bind`,i,i);let e=Nm(3128,1080);y.push(...e.flatMap(e=>{let t=e.indexOf(`=`);return[`--setenv`,e.slice(0,t),e.slice(t+1)]})),a!==void 0&&y.push(`--setenv`,`CLAUDE_CODE_HOST_HTTP_PROXY_PORT`,String(a)),o!==void 0&&y.push(`--setenv`,`CLAUDE_CODE_HOST_SOCKS_PROXY_PORT`,String(o))}let e=await Afe(s,c,f,p,m,g);y.push(...e),y.push(`--dev`,`/dev`),y.push(`--unshare-pid`),l||y.push(`--proc`,`/proc`);let x=d||`bash`,S=qp(x);if(!S)throw Error(`Shell '${x}' not found in PATH`);if(y.push(`--`,S,`-c`),n&&r&&i){let e=kfe(r,i,t,b,S,h?.applyPath);y.push(e)}else if(b){let e=Wm(h?.applyPath);if(!e)throw Error(`apply-seccomp binary not found. This should have been caught earlier. Ensure vendor/seccomp/{x64,arm64}/apply-seccomp binaries are included in the package.`);let n=Xm.quote([e,b,S,`-c`,t]);y.push(n)}else y.push(t);let C=Xm.quote([`bwrap`,...y]),w=[];return n&&w.push(`network`),(_||v)&&w.push(`filesystem`),b&&w.push(`seccomp(unix-block)`),Z(`[Sandbox Linux] Wrapped command with bwrap (${w.join(`, `)} restrictions)`),C}catch(e){throw b&&!b.includes(`/vendor/seccomp/`)&&Qm.delete(b),e}}var Xm,Zm,Qm,$m,eh,Mfe=n((()=>{Xm=r(Tm(),1),Ep(),Jp(),_fe(),zm(),Sfe(),Zm=3,Qm=new Set,$m=new Set,eh=!1}));function Nfe(e=!1){let t=process.cwd(),n=[];for(let e of Lm)n.push(fc.resolve(t,e)),n.push(`**/${e}`);for(let e of Em())n.push(fc.resolve(t,e)),n.push(`**/${e}/**`);return n.push(fc.resolve(t,`.git/hooks`)),n.push(`**/.git/hooks/**`),e||(n.push(fc.resolve(t,`.git/config`)),n.push(`**/.git/config`)),[...new Set(n)]}function Pfe(e){return`CMD64_${Pm(e)}_END_${ah}`}function th(e){let t=[],n=fc.dirname(e);for(;n!==`/`&&n!==`.`;){t.push(n);let e=fc.dirname(n);if(e===n)break;n=e}return t}function nh(e,t){let n=[];for(let r of e){let e=jm(r);if(Om(e)){let r=Fm(e);n.push(`(deny file-write-unlink`,` (regex ${rh(r)})`,` (with message "${t}"))`);let i=e.split(/[*?[\]]/)[0];if(i&&i!==`/`){let e=i.endsWith(`/`)?i.slice(0,-1):fc.dirname(i);n.push(`(deny file-write-unlink`,` (literal ${rh(e)})`,` (with message "${t}"))`);for(let r of th(e))n.push(`(deny file-write-unlink`,` (literal ${rh(r)})`,` (with message "${t}"))`)}}else{n.push(`(deny file-write-unlink`,` (subpath ${rh(e)})`,` (with message "${t}"))`);for(let r of th(e))n.push(`(deny file-write-unlink`,` (literal ${rh(r)})`,` (with message "${t}"))`)}}return n}function Ffe(e,t){if(!e)return[`(allow file-read*)`];let n=[],r=!1;n.push(`(allow file-read*)`);for(let i of e.denyOnly||[]){let e=jm(i);if(e===`/`&&(r=!0),Om(e)){let r=Fm(e);n.push(`(deny file-read*`,` (regex ${rh(r)})`,` (with message "${t}"))`)}else n.push(`(deny file-read*`,` (subpath ${rh(e)})`,` (with message "${t}"))`)}r&&n.push(`(allow file-read* (literal "/"))`);for(let r of e.allowWithinDeny||[]){let e=jm(r);if(Om(e)){let r=Fm(e);n.push(`(allow file-read*`,` (regex ${rh(r)})`,` (with message "${t}"))`)}else n.push(`(allow file-read*`,` (subpath ${rh(e)})`,` (with message "${t}"))`)}return e.denyOnly.length>0&&n.push(`(allow file-read-metadata`,` (vnode-type DIRECTORY))`),n.push(...nh(e.denyOnly||[],t)),n}function Ife(e,t,n=!1){if(!e)return[`(allow file-write*)`];let r=[];for(let n of e.allowOnly||[]){let e=jm(n);if(Om(e)){let n=Fm(e);r.push(`(allow file-write*`,` (regex ${rh(n)})`,` (with message "${t}"))`)}else r.push(`(allow file-write*`,` (subpath ${rh(e)})`,` (with message "${t}"))`)}let i=[...e.denyWithinAllow||[],...Nfe(n)];for(let e of i){let n=jm(e);if(Om(n)){let e=Fm(n);r.push(`(deny file-write*`,` (regex ${rh(e)})`,` (with message "${t}"))`)}else r.push(`(deny file-write*`,` (subpath ${rh(n)})`,` (with message "${t}"))`)}return r.push(...nh(i,t)),r}function Lfe({readConfig:e,writeConfig:t,httpProxyPort:n,socksProxyPort:r,needsNetworkRestriction:i,allowUnixSockets:a,allowAllUnixSockets:o,allowLocalBinding:s,allowPty:c,allowGitConfig:l=!1,enableWeakerNetworkIsolation:u=!1,logTag:d}){let f=[`(version 1)`,`(deny default (with message "${d}"))`,``,`; LogTag: ${d}`,``,`; Essential permissions - based on Chrome sandbox policy`,`; Process permissions`,`(allow process-exec)`,`(allow process-fork)`,`(allow process-info* (target same-sandbox))`,`(allow signal (target same-sandbox))`,`(allow mach-priv-task-port (target same-sandbox))`,``,`; User preferences`,`(allow user-preference-read)`,``,`; Mach IPC - specific services only (no wildcard)`,`(allow mach-lookup`,` (global-name "com.apple.audio.systemsoundserver")`,` (global-name "com.apple.distributed_notifications@Uv3")`,` (global-name "com.apple.FontObjectsServer")`,` (global-name "com.apple.fonts")`,` (global-name "com.apple.logd")`,` (global-name "com.apple.lsd.mapdb")`,` (global-name "com.apple.PowerManagement.control")`,` (global-name "com.apple.system.logger")`,` (global-name "com.apple.system.notification_center")`,` (global-name "com.apple.system.opendirectoryd.libinfo")`,` (global-name "com.apple.system.opendirectoryd.membership")`,` (global-name "com.apple.bsd.dirhelper")`,` (global-name "com.apple.securityd.xpc")`,` (global-name "com.apple.coreservices.launchservicesd")`,`)`,``,...u?[`; trustd.agent - needed for Go TLS certificate verification (weaker network isolation)`,`(allow mach-lookup (global-name "com.apple.trustd.agent"))`]:[],``,`; POSIX IPC - shared memory`,`(allow ipc-posix-shm)`,``,`; POSIX IPC - semaphores for Python multiprocessing`,`(allow ipc-posix-sem)`,``,`; IOKit - specific operations only`,`(allow iokit-open`,` (iokit-registry-entry-class "IOSurfaceRootUserClient")`,` (iokit-registry-entry-class "RootDomainUserClient")`,` (iokit-user-client-class "IOSurfaceSendRight")`,`)`,``,`; IOKit properties`,`(allow iokit-get-properties)`,``,`; Specific safe system-sockets, doesn't allow network access`,`(allow system-socket (require-all (socket-domain AF_SYSTEM) (socket-protocol 2)))`,``,`; sysctl - specific sysctls only`,`(allow sysctl-read`,` (sysctl-name "hw.activecpu")`,` (sysctl-name "hw.busfrequency_compat")`,` (sysctl-name "hw.byteorder")`,` (sysctl-name "hw.cacheconfig")`,` (sysctl-name "hw.cachelinesize_compat")`,` (sysctl-name "hw.cpufamily")`,` (sysctl-name "hw.cpufrequency")`,` (sysctl-name "hw.cpufrequency_compat")`,` (sysctl-name "hw.cputype")`,` (sysctl-name "hw.l1dcachesize_compat")`,` (sysctl-name "hw.l1icachesize_compat")`,` (sysctl-name "hw.l2cachesize_compat")`,` (sysctl-name "hw.l3cachesize_compat")`,` (sysctl-name "hw.logicalcpu")`,` (sysctl-name "hw.logicalcpu_max")`,` (sysctl-name "hw.machine")`,` (sysctl-name "hw.memsize")`,` (sysctl-name "hw.ncpu")`,` (sysctl-name "hw.nperflevels")`,` (sysctl-name "hw.packages")`,` (sysctl-name "hw.pagesize_compat")`,` (sysctl-name "hw.pagesize")`,` (sysctl-name "hw.physicalcpu")`,` (sysctl-name "hw.physicalcpu_max")`,` (sysctl-name "hw.tbfrequency_compat")`,` (sysctl-name "hw.vectorunit")`,` (sysctl-name "kern.argmax")`,` (sysctl-name "kern.bootargs")`,` (sysctl-name "kern.hostname")`,` (sysctl-name "kern.maxfiles")`,` (sysctl-name "kern.maxfilesperproc")`,` (sysctl-name "kern.maxproc")`,` (sysctl-name "kern.ngroups")`,` (sysctl-name "kern.osproductversion")`,` (sysctl-name "kern.osrelease")`,` (sysctl-name "kern.ostype")`,` (sysctl-name "kern.osvariant_status")`,` (sysctl-name "kern.osversion")`,` (sysctl-name "kern.secure_kernel")`,` (sysctl-name "kern.tcsm_available")`,` (sysctl-name "kern.tcsm_enable")`,` (sysctl-name "kern.usrstack64")`,` (sysctl-name "kern.version")`,` (sysctl-name "kern.willshutdown")`,` (sysctl-name "machdep.cpu.brand_string")`,` (sysctl-name "machdep.ptrauth_enabled")`,` (sysctl-name "security.mac.lockdown_mode_state")`,` (sysctl-name "sysctl.proc_cputype")`,` (sysctl-name "vm.loadavg")`,` (sysctl-name-prefix "hw.optional.arm")`,` (sysctl-name-prefix "hw.optional.arm.")`,` (sysctl-name-prefix "hw.optional.armv8_")`,` (sysctl-name-prefix "hw.perflevel")`,` (sysctl-name-prefix "kern.proc.all")`,` (sysctl-name-prefix "kern.proc.pgrp.")`,` (sysctl-name-prefix "kern.proc.pid.")`,` (sysctl-name-prefix "machdep.cpu.")`,` (sysctl-name-prefix "net.routetable.")`,`)`,``,`; V8 thread calculations`,`(allow sysctl-write`,` (sysctl-name "kern.tcsm_enable")`,`)`,``,`; Distributed notifications`,`(allow distributed-notification-post)`,``,`; Specific mach-lookup permissions for security operations`,`(allow mach-lookup (global-name "com.apple.SecurityServer"))`,``,`; File I/O on device files`,`(allow file-ioctl (literal "/dev/null"))`,`(allow file-ioctl (literal "/dev/zero"))`,`(allow file-ioctl (literal "/dev/random"))`,`(allow file-ioctl (literal "/dev/urandom"))`,`(allow file-ioctl (literal "/dev/dtracehelper"))`,`(allow file-ioctl (literal "/dev/tty"))`,``,`(allow file-ioctl file-read-data file-write-data`,` (require-all`,` (literal "/dev/null")`,` (vnode-type CHARACTER-DEVICE)`,` )`,`)`,``];if(f.push(`; Network`),!i)f.push(`(allow network*)`);else{if(s&&(f.push(`(allow network-bind (local ip "*:*"))`),f.push(`(allow network-inbound (local ip "*:*"))`),f.push(`(allow network-outbound (local ip "*:*"))`)),o)f.push(`(allow system-socket (socket-domain AF_UNIX))`),f.push(`(allow network-bind (local unix-socket (path-regex #"^/")))`),f.push(`(allow network-outbound (remote unix-socket (path-regex #"^/")))`);else if(a&&a.length>0){f.push(`(allow system-socket (socket-domain AF_UNIX))`);for(let e of a){let t=jm(e);f.push(`(allow network-bind (local unix-socket (subpath ${rh(t)})))`),f.push(`(allow network-outbound (remote unix-socket (subpath ${rh(t)})))`)}}n!==void 0&&(f.push(`(allow network-bind (local ip "localhost:${n}"))`),f.push(`(allow network-inbound (local ip "localhost:${n}"))`),f.push(`(allow network-outbound (remote ip "localhost:${n}"))`)),r!==void 0&&(f.push(`(allow network-bind (local ip "localhost:${r}"))`),f.push(`(allow network-inbound (local ip "localhost:${r}"))`),f.push(`(allow network-outbound (remote ip "localhost:${r}"))`))}return f.push(``),f.push(`; File read`),f.push(...Ffe(e,d)),f.push(``),f.push(`; File write`),f.push(...Ife(t,d,l)),c&&(f.push(``),f.push(`; Pseudo-terminal (pty) support`),f.push(`(allow pseudo-tty)`),f.push(`(allow file-ioctl`),f.push(` (literal "/dev/ptmx")`),f.push(` (regex #"^/dev/ttys")`),f.push(`)`),f.push(`(allow file-read* file-write*`),f.push(` (literal "/dev/ptmx")`),f.push(` (regex #"^/dev/ttys")`),f.push(`)`)),f.join(`
|
|
414
414
|
`)}function rh(e){return JSON.stringify(e)}function Rfe(e){let{command:t,needsNetworkRestriction:n,httpProxyPort:r,socksProxyPort:i,allowUnixSockets:a,allowAllUnixSockets:o,allowLocalBinding:s,readConfig:c,writeConfig:l,allowPty:u,allowGitConfig:d=!1,enableWeakerNetworkIsolation:f=!1,binShell:p}=e,m=c&&c.denyOnly.length>0;if(!n&&!m&&l===void 0)return t;let h=Lfe({readConfig:c,writeConfig:l,httpProxyPort:r,socksProxyPort:i,needsNetworkRestriction:n,allowUnixSockets:a,allowAllUnixSockets:o,allowLocalBinding:s,allowPty:u,allowGitConfig:d,enableWeakerNetworkIsolation:f,logTag:Pfe(t)}),g=Nm(r,i),_=p||`bash`,v=qp(_);if(!v)throw Error(`Shell '${_}' not found in PATH`);let y=ih.quote([`env`,...g,`sandbox-exec`,`-p`,h,v,`-c`,t]);return Z(`[Sandbox macOS] Applied restrictions - network: ${!!(r||i)}, read: ${c?`allowAllExcept`in c?`allowAllExcept`:`denyAllExcept`:`none`}, write: ${l?`allowAllExcept`in l?`allowAllExcept`:`denyAllExcept`:`none`}`),y}function zfe(e,t){let n=/CMD64_(.+?)_END/,r=/Sandbox:\s+(.+)$/,i=t?.[`*`]||[],a=t?Object.entries(t).filter(([e])=>e!==`*`):[],o=tl(`log`,[`stream`,`--predicate`,`(eventMessage ENDSWITH "${ah}")`,`--style`,`compact`]);return o.stdout?.on(`data`,o=>{let s=o.toString().split(`
|
|
415
|
-
`),c=s.find(e=>e.includes(`Sandbox:`)&&e.includes(`deny`)),l=s.find(e=>e.startsWith(`CMD64_`));if(!c)return;let u=c.match(r);if(!u?.[1])return;let d=u[1],f,p;if(l&&(p=l.match(n)?.[1],p))try{f=vfe(p)}catch{}if(!(d.includes(`mDNSResponder`)||d.includes(`mach-lookup com.apple.diagnosticd`)||d.includes(`mach-lookup com.apple.analyticsd`))){if(t&&f){if(i.length>0&&i.some(e=>d.includes(e)))return;for(let[e,t]of a)if(f.includes(e)&&t.some(e=>d.includes(e)))return}e({line:d,command:f,encodedCommand:p,timestamp:new Date})}}),o.stderr?.on(`data`,e=>{Z(`[Sandbox Monitor] Log stream stderr: ${e.toString()}`)}),o.on(`error`,e=>{Z(`[Sandbox Monitor] Failed to start log stream: ${e.message}`)}),o.on(`exit`,e=>{Z(`[Sandbox Monitor] Log stream exited with code: ${e}`)}),()=>{Z(`[Sandbox Monitor] Stopping log monitor`),o.kill(`SIGTERM`)}}var ih,ah,Bfe=n((()=>{ih=r(Tm(),1),Ep(),Jp(),zm(),ah=`_${Math.random().toString(36).slice(2,11)}_SBX`})),oh,sh=n((()=>{zm(),oh=class{constructor(){this.violations=[],this.totalCount=0,this.maxSize=100,this.listeners=new Set}addViolation(e){this.violations.push(e),this.totalCount++,this.violations.length>this.maxSize&&(this.violations=this.violations.slice(-this.maxSize)),this.notifyListeners()}getViolations(e){return e===void 0?[...this.violations]:this.violations.slice(-e)}getCount(){return this.violations.length}getTotalCount(){return this.totalCount}getViolationsForCommand(e){let t=Pm(e);return this.violations.filter(e=>e.encodedCommand===t)}clear(){this.violations=[],this.notifyListeners()}subscribe(e){return this.listeners.add(e),e(this.getViolations()),()=>{this.listeners.delete(e)}}notifyListeners(){let e=this.getViolations();this.listeners.forEach(t=>t(e))}}}));function Vfe(){if(Ah)return;let e=()=>wh().catch(e=>{Z(`Cleanup failed in registerCleanup ${e}`,{level:`error`})});process.once(`exit`,e),process.once(`SIGINT`,e),process.once(`SIGTERM`,e),Ah=!0}function ch(e,t){let n=e.toLowerCase();if(t.startsWith(`*.`)){if(cl(Pp(n)))return!1;let e=t.substring(2).toLowerCase();return n.endsWith(`.`+e)}return n===t.toLowerCase()}async function lh(e,t,n){if(!Th)return Z(`No config available, denying network request`),!1;if(!Ip(t))return Z(`Denying malformed host: ${JSON.stringify(t)}:${e}`,{level:`error`}),!1;let r=Ude(t)??t;for(let n of Th.network.deniedDomains)if(ch(r,n))return Z(`Denied by config rule: ${t}:${e}`),!1;for(let n of Th.network.allowedDomains)if(ch(r,n))return Z(`Allowed by config rule: ${t}:${e}`),!0;if(!n)return Z(`No matching config rule, denying: ${t}:${e}`),!1;Z(`No matching config rule, asking user: ${t}:${e}`);try{return await n({host:t,port:e})?(Z(`User allowed: ${t}:${e}`),!0):(Z(`User denied: ${t}:${e}`),!1)}catch(e){return Z(`Error in permission callback: ${e}`,{level:`error`}),!1}}function Hfe(e){if(!Th?.network.mitmProxy)return;let{socketPath:t,domains:n}=Th.network.mitmProxy;for(let r of n)if(ch(e,r))return Z(`Host ${e} matches MITM pattern ${r}`),t}async function Ufe(e){return Eh=Wde({filter:(t,n)=>lh(t,n,e),getMitmSocketPath:Hfe,parentProxy:Mh}),new Promise((e,t)=>{if(!Eh){t(Error(`HTTP proxy server undefined before listen`));return}let n=Eh;n.once(`error`,t),n.once(`listening`,()=>{let r=n.address();r&&typeof r==`object`?(n.unref(),Z(`HTTP proxy listening on localhost:${r.port}`),e(r.port)):t(Error(`Failed to get proxy server address`))}),n.listen(0,`127.0.0.1`)})}async function Wfe(e){return Dh=Yde({filter:(t,n)=>lh(t,n,e),parentProxy:Mh}),new Promise((e,t)=>{if(!Dh){t(Error(`SOCKS proxy server undefined before listen`));return}Dh.listen(0,`127.0.0.1`).then(t=>{Dh?.unref(),e(t)}).catch(t)})}async function Gfe(e,t,n=!1){if(kh){await kh;return}Th=e,Mh=Dp(e.network.parentProxy),Mh&&Z(`Parent proxy configured: http=${Fp(Mh.httpUrl)} https=${Fp(Mh.httpsUrl)}`);let r=dh();if(r.errors.length>0)throw Error(`Sandbox dependencies not available: ${r.errors.join(`, `)}`);n&&Cm()===`macos`&&(jh=zfe(Nh.addViolation.bind(Nh),Th.ignoreViolations),Z(`Started macOS sandbox log monitor`)),Vfe(),kh=(async()=>{try{let e;Th.network.httpProxyPort===void 0?e=await Ufe(t):(e=Th.network.httpProxyPort,Z(`Using external HTTP proxy on port ${e}`));let n;Th.network.socksProxyPort===void 0?n=await Wfe(t):(n=Th.network.socksProxyPort,Z(`Using external SOCKS proxy on port ${n}`));let r;Cm()===`linux`&&(r=await Ofe(e,n));let i={httpProxyPort:e,socksProxyPort:n,linuxBridge:r};return Oh=i,Z(`Network infrastructure initialized`),i}catch(e){throw kh=void 0,Oh=void 0,wh().catch(e=>{Z(`Cleanup failed in initializationPromise ${e}`,{level:`error`})}),e}})(),await kh}function uh(){let e=Cm();return e===`linux`?pfe()!==`1`:e===`macos`}function Kfe(){return Th!==void 0}function dh(e){if(!uh())return{errors:[`Unsupported platform`],warnings:[]};let t=[],n=[],r=e??Th?.ripgrep??{command:`rg`};if(qp(r.command)===null&&t.push(`ripgrep (${r.command}) not found`),Cm()===`linux`){let e=Dfe(Th?.seccomp);t.push(...e.errors),n.push(...e.warnings)}return{errors:t,warnings:n}}function qfe(){if(!Th)return{denyOnly:[],allowWithinDeny:[]};let e=[];for(let t of Th.filesystem.denyRead){let n=km(t);if(Cm()===`linux`&&Om(n)){let n=Im(t);Z(`[Sandbox] Expanded glob pattern "${t}" to ${n.length} paths on Linux`),e.push(...n)}else e.push(n)}let t=[];for(let e of Th.filesystem.allowRead??[]){let n=km(e);if(Cm()===`linux`&&Om(n)){let n=Im(e);Z(`[Sandbox] Expanded allowRead glob pattern "${e}" to ${n.length} paths on Linux`),t.push(...n)}else t.push(n)}return{denyOnly:e,allowWithinDeny:t}}function Jfe(){if(!Th)return{allowOnly:Mm(),denyWithinAllow:[]};let e=Th.filesystem.allowWrite.map(e=>km(e)).filter(e=>Cm()===`linux`&&Om(e)?(Z(`Skipping glob pattern on Linux/WSL: ${e}`),!1):!0),t=Th.filesystem.denyWrite.map(e=>km(e)).filter(e=>Cm()===`linux`&&Om(e)?(Z(`Skipping glob pattern on Linux/WSL: ${e}`),!1):!0);return{allowOnly:[...Mm(),...e],denyWithinAllow:t}}function Yfe(){if(!Th)return{};let e=Th.network.allowedDomains,t=Th.network.deniedDomains;return{...e.length>0&&{allowedHosts:e},...t.length>0&&{deniedHosts:t}}}function fh(){return Th?.network?.allowUnixSockets}function ph(){return Th?.network?.allowAllUnixSockets}function mh(){return Th?.network?.allowLocalBinding}function hh(){return Th?.ignoreViolations}function gh(){return Th?.enableWeakerNestedSandbox}function Xfe(){return Th?.enableWeakerNetworkIsolation}function Zfe(){return Th?.ripgrep??{command:`rg`}}function Qfe(){return Th?.mandatoryDenySearchDepth??3}function _h(){return Th?.filesystem?.allowGitConfig??!1}function $fe(){return Th?.seccomp}function vh(){return Oh?.httpProxyPort}function yh(){return Oh?.socksProxyPort}function bh(){return Oh?.linuxBridge?.httpSocketPath}function xh(){return Oh?.linuxBridge?.socksSocketPath}async function Sh(){if(!Th)return!1;if(kh)try{return await kh,!0}catch{return!1}return Oh!==void 0}async function epe(e,t,n,r){let i=Cm(),a=e=>e.map(e=>km(e)).filter(e=>Cm()===`linux`&&Om(e)?(Z(`[Sandbox] Skipping glob write pattern on Linux: ${e}`),!1):!0),o=a(n?.filesystem?.allowWrite??Th?.filesystem.allowWrite??[]),s={allowOnly:[...Mm(),...o],denyWithinAllow:a(n?.filesystem?.denyWrite??Th?.filesystem.denyWrite??[])},c=n?.filesystem?.denyRead??Th?.filesystem.denyRead??[],l=[];for(let e of c){let t=km(e);Cm()===`linux`&&Om(t)?l.push(...Im(e)):l.push(t)}let u=n?.filesystem?.allowRead??Th?.filesystem.allowRead??[],d=[];for(let e of u){let t=km(e);Cm()===`linux`&&Om(t)?d.push(...Im(e)):d.push(t)}let f={denyOnly:l,allowWithinDeny:d},p=n?.network?.allowedDomains!==void 0||Th?.network?.allowedDomains!==void 0,m=p,h=p;h&&await Sh();let g=n?.allowPty??Th?.allowPty;switch(i){case`macos`:return Rfe({command:e,needsNetworkRestriction:m,httpProxyPort:h?vh():void 0,socksProxyPort:h?yh():void 0,readConfig:f,writeConfig:s,allowUnixSockets:fh(),allowAllUnixSockets:ph(),allowLocalBinding:mh(),ignoreViolations:hh(),allowPty:g,allowGitConfig:_h(),enableWeakerNetworkIsolation:Xfe(),binShell:t});case`linux`:return jfe({command:e,needsNetworkRestriction:m,httpSocketPath:h?bh():void 0,socksSocketPath:h?xh():void 0,httpProxyPort:h?Oh?.httpProxyPort:void 0,socksProxyPort:h?Oh?.socksProxyPort:void 0,readConfig:f,writeConfig:s,enableWeakerNestedSandbox:gh(),allowAllUnixSockets:ph(),binShell:t,ripgrepConfig:Zfe(),mandatoryDenySearchDepth:Qfe(),allowGitConfig:_h(),seccompConfig:$fe(),abortSignal:r});default:throw Error(`Sandbox configuration is not supported on platform: ${i}`)}}function tpe(){return Th}function npe(e){Th=qle(e),Mh=Dp(e.network.parentProxy),Z(`Sandbox configuration updated`)}function Ch(){Ym()}async function wh(){if(Ch(),jh&&(jh(),jh=void 0),Oh?.linuxBridge){let{httpSocketPath:e,socksSocketPath:t,httpBridgeProcess:n,socksBridgeProcess:r}=Oh.linuxBridge,i=[];if(n.pid&&!n.killed)try{process.kill(n.pid,`SIGTERM`),Z(`Sent SIGTERM to HTTP bridge process`),i.push(new Promise(e=>{n.once(`exit`,()=>{Z(`HTTP bridge process exited`),e()}),setTimeout(()=>{if(!n.killed){Z(`HTTP bridge did not exit, forcing SIGKILL`,{level:`warn`});try{n.pid&&process.kill(n.pid,`SIGKILL`)}catch{}}e()},5e3)}))}catch(e){e.code!==`ESRCH`&&Z(`Error killing HTTP bridge: ${e}`,{level:`error`})}if(r.pid&&!r.killed)try{process.kill(r.pid,`SIGTERM`),Z(`Sent SIGTERM to SOCKS bridge process`),i.push(new Promise(e=>{r.once(`exit`,()=>{Z(`SOCKS bridge process exited`),e()}),setTimeout(()=>{if(!r.killed){Z(`SOCKS bridge did not exit, forcing SIGKILL`,{level:`warn`});try{r.pid&&process.kill(r.pid,`SIGKILL`)}catch{}}e()},5e3)}))}catch(e){e.code!==`ESRCH`&&Z(`Error killing SOCKS bridge: ${e}`,{level:`error`})}if(await Promise.all(i),e)try{Oc.rmSync(e,{force:!0}),Z(`Cleaned up HTTP socket`)}catch(e){Z(`HTTP socket cleanup error: ${e}`,{level:`error`})}if(t)try{Oc.rmSync(t,{force:!0}),Z(`Cleaned up SOCKS socket`)}catch(e){Z(`SOCKS socket cleanup error: ${e}`,{level:`error`})}}let e=[];if(Eh){let t=Eh,n=new Promise(e=>{t.close(t=>{t&&t.message!==`Server is not running.`&&Z(`Error closing HTTP proxy server: ${t.message}`,{level:`error`}),e()})});e.push(n)}if(Dh){let t=Dh.close().catch(e=>{Z(`Error closing SOCKS proxy server: ${e.message}`,{level:`error`})});e.push(t)}await Promise.all(e),Eh=void 0,Dh=void 0,Oh=void 0,kh=void 0,Mh=void 0}function rpe(){return Nh}function ipe(e,t){if(!Th)return t;let n=Nh.getViolationsForCommand(e);if(n.length===0)return t;let r=t;r+=Fc+`<sandbox_violations>`+Fc;for(let e of n)r+=e.line+Fc;return r+=`</sandbox_violations>`,r}function ape(){if(Cm()!==`linux`||!Th)return[];let e=[],t=[...Th.filesystem.allowWrite,...Th.filesystem.denyWrite];for(let n of t)Om(km(n))&&e.push(n);return e}var Th,Eh,Dh,Oh,kh,Ah,jh,Mh,Nh,Ph,ope=n((()=>{Kde(),Xde(),Ep(),Jp(),Sm(),wm(),Mfe(),Bfe(),zm(),sh(),Vp(),Ah=!1,Nh=new oh,Ph={initialize:Gfe,isSupportedPlatform:uh,isSandboxingEnabled:Kfe,checkDependencies:dh,getFsReadConfig:qfe,getFsWriteConfig:Jfe,getNetworkRestrictionConfig:Yfe,getAllowUnixSockets:fh,getAllowLocalBinding:mh,getIgnoreViolations:hh,getEnableWeakerNestedSandbox:gh,getProxyPort:vh,getSocksProxyPort:yh,getLinuxHttpSocketPath:bh,getLinuxSocksSocketPath:xh,waitForNetworkInitialization:Sh,wrapWithSandbox:epe,cleanupAfterCommand:Ch,reset:wh,getSandboxViolationStore:rpe,annotateStderrWithSandboxFailures:ipe,getLinuxGlobPatternWarnings:ape,getConfig:tpe,updateConfig:npe}})),Fh,Ih,Lh,Rh,zh,Bh,Vh,Hh,Uh,spe=n((()=>{N(),Fh=j().refine(e=>{if(e.includes(`://`)||e.includes(`/`)||e.includes(`:`))return!1;if(e===`localhost`)return!0;if(e.startsWith(`*.`)){let t=e.slice(2);if(!t.includes(`.`)||t.startsWith(`.`)||t.endsWith(`.`))return!1;let n=t.split(`.`);return n.length>=2&&n.every(e=>e.length>0)}return!e.includes(`*`)&&e.includes(`.`)&&!e.startsWith(`.`)&&!e.endsWith(`.`)},{message:`Invalid domain pattern. Must be a valid domain (e.g., "example.com") or wildcard (e.g., "*.example.com"). Overly broad patterns like "*.com" or "*" are not allowed for security reasons.`}),Ih=j().min(1,`Path cannot be empty`),Lh=se({socketPath:j().min(1).describe(`Unix socket path to the MITM proxy`),domains:M(Fh).min(1).describe(`Domains to route through the MITM proxy (e.g., ["api.example.com", "*.internal.org"])`)}),Rh=se({http:j().url().optional().describe(`Upstream proxy URL for plain HTTP traffic`),https:j().url().optional().describe(`Upstream proxy URL for HTTPS/CONNECT traffic (falls back to http if unset)`),noProxy:j().optional().describe(`Comma-separated NO_PROXY list (hostname suffixes and CIDR ranges). Matching destinations connect directly instead of via the parent proxy.`)}),zh=se({allowedDomains:M(Fh).describe(`List of allowed domains (e.g., ["github.com", "*.npmjs.org"])`),deniedDomains:M(Fh).describe(`List of denied domains`),allowUnixSockets:M(j()).optional().describe(`macOS only: Unix socket paths to allow. Ignored on Linux (seccomp cannot filter by path).`),allowAllUnixSockets:oe().optional().describe(`If true, allow all Unix sockets (disables blocking on both platforms).`),allowLocalBinding:oe().optional().describe(`Whether to allow binding to local ports (default: false)`),httpProxyPort:ae().int().min(1).max(65535).optional().describe(`Port of an external HTTP proxy to use instead of starting a local one. When provided, the library will skip starting its own HTTP proxy and use this port. The external proxy must handle domain filtering.`),socksProxyPort:ae().int().min(1).max(65535).optional().describe(`Port of an external SOCKS proxy to use instead of starting a local one. When provided, the library will skip starting its own SOCKS proxy and use this port. The external proxy must handle domain filtering.`),mitmProxy:Lh.optional().describe(`Optional MITM proxy configuration. Routes matching domains through an upstream proxy via Unix socket while SRT still handles allow/deny filtering.`),parentProxy:Rh.optional().describe(`Upstream HTTP proxy for outbound connections. When set, SRT's proxy tunnels non-mitmProxy traffic through this parent instead of connecting directly. Falls back to HTTP_PROXY/HTTPS_PROXY/NO_PROXY env vars if unset.`)}),Bh=se({denyRead:M(Ih).describe(`Paths denied for reading`),allowRead:M(Ih).optional().describe(`Paths to re-allow reading within denied regions (takes precedence over denyRead). Use with denyRead to deny a broad region then allow back specific subdirectories.`),allowWrite:M(Ih).describe(`Paths allowed for writing`),denyWrite:M(Ih).describe(`Paths denied for writing (takes precedence over allowWrite)`),allowGitConfig:oe().optional().describe(`Allow writes to .git/config files (default: false). Enables git remote URL updates while keeping .git/hooks protected.`)}),Vh=le(j(),M(j())).describe(`Map of command patterns to filesystem paths to ignore violations for. Use "*" to match all commands`),Hh=se({command:j().describe(`The ripgrep command to execute`),args:M(j()).optional().describe(`Additional arguments to pass before ripgrep args`),argv0:j().optional().describe(`Override argv[0] when spawning (for multicall binaries that dispatch on argv[0])`)}),Uh=se({bpfPath:j().optional().describe(`Path to the unix-block.bpf filter file`),applyPath:j().optional().describe(`Path to the apply-seccomp binary`)}),se({network:zh.describe(`Network restrictions configuration`),filesystem:Bh.describe(`Filesystem restrictions configuration`),ignoreViolations:Vh.optional().describe(`Optional configuration for ignoring specific violations`),enableWeakerNestedSandbox:oe().optional().describe(`Enable weaker nested sandbox mode (for Docker environments)`),enableWeakerNetworkIsolation:oe().optional().describe(`Enable weaker network isolation to allow access to com.apple.trustd.agent (macOS only). This is needed for Go programs (gh, gcloud, terraform, kubectl, etc.) to verify TLS certificates when using httpProxyPort with a MITM proxy and custom CA. Enabling this opens a potential data exfiltration vector through the trustd service. Only enable if you need Go TLS verification.`),ripgrep:Hh.optional().describe(`Custom ripgrep configuration (default: { command: "rg" })`),mandatoryDenySearchDepth:ae().int().min(1).max(10).optional().describe(`Maximum directory depth to search for dangerous files on Linux (default: 3). Higher values provide more protection but slower performance.`),allowPty:oe().optional().describe(`Allow pseudo-terminal (pty) operations (macOS only)`),seccomp:Uh.optional().describe(`Custom seccomp binary paths (Linux only).`)})})),cpe=n((()=>{ope(),sh(),spe(),zm(),wm()}));async function lpe(){if(rg||ig)return;rg=!0,ppe(),Ai(Wh);let{dirs:e,settingsFiles:t,dropInDir:n}=await upe();ig||e.length!==0&&(K(`Watching for changes in setting files ${[...t].join(`, `)}...${n?` and drop-in directory ${n}`:``}`),eg=doe.watch(e,{persistent:!0,ignoreInitial:!0,depth:0,awaitWriteFinish:{stabilityThreshold:Yh,pollInterval:Xh},ignored:(e,r)=>{if(r&&!r.isFile()&&!r.isDirectory()||e.split(fc.sep).some(e=>e===`.git`))return!0;if(!r||r.isDirectory())return!1;let i=fc.normalize(e);return!(t.has(i)||n&&i.startsWith(n+fc.sep)&&i.endsWith(`.json`))},ignorePermissionErrors:!0,usePolling:!1,atomic:!0}),eg.on(`change`,Kh),eg.on(`unlink`,fpe),eg.on(`add`,dpe))}function Wh(){ig=!0,tg&&(clearInterval(tg),tg=null);for(let e of ag.values())clearTimeout(e);ag.clear(),ng=null,fte(),og.clear();let e=eg;return eg=null,e?e.close():Promise.resolve()}async function upe(){let e=new Map,t=new Set;for(let n of rr){if(n===`flagSettings`)continue;let r=Un(n);if(!r)continue;let i=fc.dirname(r);e.has(i)||e.set(i,new Set),e.get(i).add(r);try{(await Zc(r)).isFile()&&t.add(i)}catch{}}let n=new Set;for(let r of t){let t=e.get(r);if(t)for(let e of t)n.add(e)}let r=null,i=Vn();try{(await Zc(i)).isDirectory()&&(t.add(i),r=i)}catch{}return{dirs:[...t],settingsFiles:n,dropInDir:r}}function Gh(e){switch(e){case`userSettings`:return`user_settings`;case`projectSettings`:return`project_settings`;case`localSettings`:return`local_settings`;case`flagSettings`:case`policySettings`:return`policy_settings`}}function Kh(e){let t=qh(e);if(!t)return;let n=ag.get(e);n&&(clearTimeout(n),ag.delete(e),K(`Cancelled pending deletion of ${e} — file was recreated`)),!Yee(e,Zh)&&(K(`Detected change to ${e}`),u7(Gh(t),e).then(n=>{if(i7(n)){K(`ConfigChange hook blocked change to ${e}`);return}Jh(t)}))}function dpe(e){if(!qh(e))return;let t=ag.get(e);t&&(clearTimeout(t),ag.delete(e),K(`Cancelled pending deletion of ${e} — file was re-added`)),Kh(e)}function fpe(e){let t=qh(e);if(!t||(K(`Detected deletion of ${e}`),ag.has(e)))return;let n=setTimeout((e,t)=>{ag.delete(e),u7(Gh(t),e).then(n=>{if(i7(n)){K(`ConfigChange hook blocked deletion of ${e}`);return}Jh(t)})},$h,e,t);ag.set(e,n)}function qh(e){let t=fc.normalize(e),n=Vn();return t.startsWith(n+fc.sep)?`policySettings`:rr.find(e=>Un(e)===t)}function ppe(){let e=Iee(),t=Hte();ng=W({mdm:e.settings,hkcu:t.settings}),tg=setInterval(()=>{ig||(async()=>{try{let{mdm:e,hkcu:t}=await zte();if(ig)return;let n=W({mdm:e.settings,hkcu:t.settings});n!==ng&&(ng=n,zee(e,t),K(`Detected MDM settings change via poll`),Jh(`policySettings`))}catch(e){K(`MDM poll error: ${G(e)}`)}})()},Qh),tg.unref()}function Jh(e){Cr(),og.emit(e)}function mpe(e){K(`Programmatic settings change notification for ${e}`),Jh(e)}var Yh,Xh,Zh,Qh,$h,eg,tg,ng,rg,ig,ag,og,sg,cg,lg=n((()=>{soe(),pi(),q(),vi(),_7(),Rr(),zi(),Rn(),Ote(),$n(),mee(),Ln(),Vr(),Yh=1e3,Xh=500,Zh=5e3,Qh=1800*1e3,$h=1700,eg=null,tg=null,ng=null,rg=!1,ig=!1,ag=new Map,og=Nr(),sg=og.subscribe,cg={initialize:lpe,dispose:Wh,subscribe:sg,notifyChange:mpe}}));function ug(e){let t=e.match(/^([^(]+)\(([^)]+)\)$/);if(!t)return{toolName:e};let n=t[1],r=t[2];return!n||!r?{toolName:e}:{toolName:n,ruleContent:r}}function hpe(e){return e.match(/^(.+):\*$/)?.[1]??null}function dg(e,t){return e.startsWith(`//`)?e.slice(1):e.startsWith(`/`)&&!e.startsWith(`//`)?xc(vn(t),e.slice(1)):e}function fg(e,t){return e.startsWith(`//`)?e.slice(1):Cn(e,vn(t))}function pg(){return tr(`policySettings`)?.sandbox?.network?.allowManagedDomainsOnly===!0}function gpe(){return tr(`policySettings`)?.sandbox?.filesystem?.allowManagedReadPathsOnly===!0}function mg(e){let t=e.permissions||{},n=[],r=[];if(pg()){let e=tr(`policySettings`);for(let t of e?.sandbox?.network?.allowedDomains||[])n.push(t)}else for(let t of e.sandbox?.network?.allowedDomains||[])n.push(t);for(let e of t.deny||[]){let t=ug(e);t.ruleContent?.startsWith(`domain:`)&&r.push(t.ruleContent.substring(7))}let i=[`.`,R8()],a=[],o=[],s=[],c=rr.map(e=>Un(e)).filter(e=>e!==void 0);a.push(...c),a.push(Vn());let l=Ur(),u=ri();l!==u&&(a.push(xc(l,`.workmate`,`settings.json`)),a.push(xc(l,`.workmate`,`settings.local.json`))),a.push(xc(u,`.workmate`,`skills`)),l!==u&&a.push(xc(l,`.workmate`,`skills`)),xg.length=0;let d=[`HEAD`,`objects`,`refs`,`hooks`,`config`];for(let e of l===u?[u]:[u,l])for(let t of d){let n=xc(e,t);try{Lse(n),a.push(n)}catch{xg.push(n)}}bg&&bg!==l&&i.push(bg);let f=new Set([...e.permissions?.additionalDirectories||[],...$r()]);i.push(...f);for(let e of rr){let t=tr(e);if(t?.permissions){for(let n of t.permissions.allow||[]){let t=ug(n);t.toolName===`Edit`&&t.ruleContent&&i.push(dg(t.ruleContent,e))}for(let n of t.permissions.deny||[]){let t=ug(n);t.toolName===`Edit`&&t.ruleContent&&a.push(dg(t.ruleContent,e)),t.toolName===`Read`&&t.ruleContent&&o.push(dg(t.ruleContent,e))}}let n=t?.sandbox?.filesystem;if(n){for(let t of n.allowWrite||[])i.push(fg(t,e));for(let t of n.denyWrite||[])a.push(fg(t,e));for(let t of n.denyRead||[])o.push(fg(t,e));if(!gpe()||e===`policySettings`)for(let t of n.allowRead||[])s.push(fg(t,e))}}let{rgPath:p,rgArgs:m,argv0:h}=Js(),g=e.sandbox?.ripgrep??{command:p,args:m,argv0:h};return{network:{allowedDomains:n,deniedDomains:r,allowUnixSockets:e.sandbox?.network?.allowUnixSockets,allowAllUnixSockets:e.sandbox?.network?.allowAllUnixSockets,allowLocalBinding:e.sandbox?.network?.allowLocalBinding,httpProxyPort:e.sandbox?.network?.httpProxyPort,socksProxyPort:e.sandbox?.network?.socksProxyPort},filesystem:{denyRead:o,allowRead:s,allowWrite:i,denyWrite:a},ignoreViolations:e.sandbox?.ignoreViolations,enableWeakerNestedSandbox:e.sandbox?.enableWeakerNestedSandbox,enableWeakerNetworkIsolation:e.sandbox?.enableWeakerNetworkIsolation,ripgrep:g}}function _pe(){for(let e of xg)try{Ise(e,{recursive:!0}),K(`[Sandbox] scrubbed planted bare-repo file: ${e}`)}catch{}}async function vpe(e){let t=X(e,`.git`);try{let n=(await Kc(t,{encoding:`utf8`})).match(/^gitdir:\s*(.+)$/m);if(!n?.[1])return null;let r=xc(e,n[1].trim()),i=`${Sc}.git${Sc}worktrees${Sc}`,a=r.lastIndexOf(i);return a>0?r.substring(0,a):null}catch{return null}}function hg(){try{return xn()?.sandbox?.enabled??!1}catch(e){return K(`Failed to get settings for sandbox check: ${e}`),!1}}function ype(){return xn()?.sandbox?.autoAllowBashIfSandboxed??!0}function bpe(){return xn()?.sandbox?.allowUnsandboxedCommands??!0}function xpe(){let e=xn();return hg()&&(e?.sandbox?.failIfUnavailable??!1)}function gg(){try{let e=ar()?.sandbox?.enabledPlatforms;if(e===void 0)return!0;if(e.length===0)return!1;let t=Na();return e.includes(t)}catch(e){return K(`Failed to check enabledPlatforms: ${e}`),!0}}function _g(){return!Cg()||Sg().errors.length>0||!gg()?!1:hg()}function Spe(){if(!hg())return;if(!Cg()){let e=Na();return e===`wsl`?`sandbox.enabled is set but WSL1 is not supported (requires WSL2)`:`sandbox.enabled is set but ${e} is not supported (requires macOS, Linux, or WSL2)`}if(!gg())return`sandbox.enabled is set but ${Na()} is not in sandbox.enabledPlatforms`;let e=Sg();if(e.errors.length>0){let t=Na()===`macos`?`run /sandbox or /doctor for details`:`install missing tools (e.g. apt install bubblewrap socat) or run /sandbox for details`;return`sandbox.enabled is set but dependencies are missing: ${e.errors.join(`, `)} · ${t}`}}function Cpe(){let e=Na();if(e!==`linux`&&e!==`wsl`)return[];try{let e=xn();if(!e?.sandbox?.enabled)return[];let t=e?.permissions||{},n=[],r=e=>{let t=e.replace(/\/\*\*$/,``);return/[*?[\]]/.test(t)};for(let e of[...t.allow||[],...t.deny||[]]){let t=ug(e);(t.toolName===`Edit`||t.toolName===`Read`)&&t.ruleContent&&r(t.ruleContent)&&n.push(e)}return n}catch(e){return K(`Failed to get Linux glob pattern warnings: ${e}`),[]}}function wpe(){for(let e of[`flagSettings`,`policySettings`]){let t=tr(e);if(t?.sandbox?.enabled!==void 0||t?.sandbox?.autoAllowBashIfSandboxed!==void 0||t?.sandbox?.allowUnsandboxedCommands!==void 0)return!0}return!1}async function Tpe(e){yr(`localSettings`,{sandbox:{...tr(`localSettings`)?.sandbox,...e.enabled!==void 0&&{enabled:e.enabled},...e.autoAllowBashIfSandboxed!==void 0&&{autoAllowBashIfSandboxed:e.autoAllowBashIfSandboxed},...e.allowUnsandboxedCommands!==void 0&&{allowUnsandboxedCommands:e.allowUnsandboxedCommands}}})}function Epe(){return xn()?.sandbox?.excludedCommands??[]}async function Dpe(e,t,n,r){if(_g())if(vg)await vg;else throw Error(`Sandbox failed to initialize. `);return Ph.wrapWithSandbox(e,t,n,r)}async function Ope(e){if(vg)return vg;if(!_g())return;let t=e?async t=>pg()?(K(`[sandbox] Blocked network request to ${t.host} (allowManagedDomainsOnly)`),!1):e(t):void 0;return vg=(async()=>{try{bg===void 0&&(bg=await vpe(Ur()));let e=mg(xn());await Ph.initialize(e,t),yg=cg.subscribe(()=>{let e=mg(xn());Ph.updateConfig(e),K(`Sandbox configuration updated from settings change`)})}catch(e){vg=void 0,K(`Failed to initialize sandbox: ${G(e)}`)}})(),vg}function kpe(){if(!_g())return;let e=mg(xn());Ph.updateConfig(e)}async function Ape(){return yg?.(),yg=void 0,bg=void 0,xg.length=0,Sg.cache.clear?.(),Cg.cache.clear?.(),vg=void 0,Ph.reset()}function jpe(e,t){let n=tr(`localSettings`),r=n?.sandbox?.excludedCommands||[],i=e;if(t){let e=t.filter(e=>e.type===`addRules`&&e.rules.some(e=>e.toolName===`Bash`));if(e.length>0&&e[0].type===`addRules`){let t=e[0].rules.find(e=>e.toolName===js);t?.ruleContent&&(i=hpe(t.ruleContent)||t.ruleContent)}}return r.includes(i)||yr(`localSettings`,{sandbox:{...n?.sandbox,excludedCommands:[...r,i]}}),i}var vg,yg,bg,xg,Sg,Cg,wg,Tg=n((()=>{cpe(),Sm(),H(),q(),Kn(),Fa(),lg(),Rn(),$n(),Ln(),xs(),Os(),Ms(),vi(),B8(),qs(),xg=[],Sg=u(()=>{let{rgPath:e,rgArgs:t}=Js();return Ph.checkDependencies({command:e,args:t})}),Cg=u(()=>Ph.isSupportedPlatform()),wg={initialize:Ope,isSandboxingEnabled:_g,isSandboxEnabledInSettings:hg,isPlatformInEnabledList:gg,getSandboxUnavailableReason:Spe,isAutoAllowBashIfSandboxedEnabled:ype,areUnsandboxedCommandsAllowed:bpe,isSandboxRequired:xpe,areSandboxSettingsLockedByPolicy:wpe,setSandboxSettings:Tpe,getExcludedCommands:Epe,wrapWithSandbox:Dpe,refreshConfig:kpe,reset:Ape,checkDependencies:Sg,getFsReadConfig:Ph.getFsReadConfig,getFsWriteConfig:Ph.getFsWriteConfig,getNetworkRestrictionConfig:Ph.getNetworkRestrictionConfig,getIgnoreViolations:Ph.getIgnoreViolations,getLinuxGlobPatternWarnings:Cpe,isSupportedPlatform:Cg,getAllowUnixSockets:Ph.getAllowUnixSockets,getAllowLocalBinding:Ph.getAllowLocalBinding,getEnableWeakerNestedSandbox:Ph.getEnableWeakerNestedSandbox,getProxyPort:Ph.getProxyPort,getSocksProxyPort:Ph.getSocksProxyPort,getLinuxHttpSocketPath:Ph.getLinuxHttpSocketPath,getLinuxSocksSocketPath:Ph.getLinuxSocksSocketPath,waitForNetworkInitialization:Ph.waitForNetworkInitialization,getSandboxViolationStore:Ph.getSandboxViolationStore,annotateStderrWithSandboxFailures:Ph.annotateStderrWithSandboxFailures,cleanupAfterCommand:()=>{Ph.cleanupAfterCommand(),_pe()}}})),Eg,Mpe=n((()=>{ne(),Tg(),Eg={name:`sandbox`,get description(){let e=wg.isSandboxingEnabled(),t=wg.isAutoAllowBashIfSandboxedEnabled(),n=wg.areUnsandboxedCommandsAllowed(),r=wg.areSandboxSettingsLockedByPolicy(),i=wg.checkDependencies().errors.length===0,a;a=i?e?ie.tick:ie.circle:ie.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!wg.isSupportedPlatform()||!wg.isPlatformInEnabledList()},immediate:!0,type:`local-jsx`,load:()=>import(`./sandbox-toggle-DghmaJhK.js`)}})),Dg,Og,kg,Ag=n((()=>{d(),ho(),Dg=[{modelEnvVar:`ANTHROPIC_DEFAULT_OPUS_MODEL`,capabilitiesEnvVar:`ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES`},{modelEnvVar:`ANTHROPIC_DEFAULT_SONNET_MODEL`,capabilitiesEnvVar:`ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES`},{modelEnvVar:`ANTHROPIC_DEFAULT_HAIKU_MODEL`,capabilitiesEnvVar:`ANTHROPIC_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES`}],Og=[{modelEnvVar:`OPENAI_DEFAULT_OPUS_MODEL`,capabilitiesEnvVar:`OPENAI_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES`},{modelEnvVar:`OPENAI_DEFAULT_SONNET_MODEL`,capabilitiesEnvVar:`OPENAI_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES`},{modelEnvVar:`OPENAI_DEFAULT_HAIKU_MODEL`,capabilitiesEnvVar:`OPENAI_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES`}],kg=u((e,t)=>{if(uo()===`firstParty`)return;let n=e.toLowerCase(),r=uo()===`openai`?Og:Dg;for(let e of r){let r=process.env[e.modelEnvVar],i=process.env[e.capabilitiesEnvVar];if(!(!r||i===void 0)&&n===r.toLowerCase())return i.toLowerCase().split(`,`).map(e=>e.trim()).includes(t)}},(e,t)=>`${e.toLowerCase()}:${t}`)}));function Npe(e){let t=[],n=[];for(let r of e)Rg.includes(r)?t.push(r):n.push(r);return{allowed:t,disallowed:n}}function Ppe(e){if(!e||e.length===0)return;let{allowed:t,disallowed:n}=Npe(e);for(let e of n)console.warn(`Warning: Beta header '${e}' is not allowed. Only the following betas are supported: ${Rg.join(`, `)}`);return t.length>0?t:void 0}function jg(e){let t=kg(e,`interleaved_thinking`);if(t!==void 0)return t;let n=No(e),r=uo();return r===`foundry`?!0:r===`firstParty`?!n.includes(`claude-3-`):n.includes(`claude-opus-4`)||n.includes(`claude-sonnet-4`)}function Mg(e){let t=No(e),n=uo();return n===`foundry`?!0:n===`firstParty`?!t.includes(`claude-3-`):t.includes(`claude-opus-4`)||t.includes(`claude-sonnet-4`)||t.includes(`claude-haiku-4`)}function Ng(e){let t=No(e),n=uo();return n!==`firstParty`&&n!==`foundry`?!1:t.includes(`claude-sonnet-4-6`)||t.includes(`claude-sonnet-4-5`)||t.includes(`claude-opus-4-1`)||t.includes(`claude-opus-4-5`)||t.includes(`claude-opus-4-6`)||t.includes(`claude-opus-4-7`)||t.includes(`claude-haiku-4-5`)}function Pg(e){return!0}function Fg(){return(uo()===`firstParty`||uo()===`foundry`)&&!h(process.env.WORKMATE_DISABLE_EXPERIMENTAL_BETAS)&&oo()}function Ig(){return uo()===`firstParty`&&!h(process.env.WORKMATE_DISABLE_EXPERIMENTAL_BETAS)}function Lg(e,t){let n=[...Bg(e)];t?.isAgenticQuery&&(n.includes(`workmate-20250219`)||n.push(ro));let r=ii();return!r||r.length===0?n:[...n,...r.filter(e=>!n.includes(e))]}var Rg,zg,Bg,Vg,Hg=n((()=>{d(),H(),mo(),bo(),g(),To(),Ag(),ho(),Ln(),Rg=[Uo],zg=u(e=>{let t=[],n=No(e).includes(`haiku`);uo();let r=Fg();n||t.push(ro),Nie(e)&&t.push(Uo),!h(process.env.DISABLE_INTERLEAVED_THINKING)&&jg(e)&&t.push(Bie),r&&jg(e)&&!jr()&&ar().showThinkingSummaries!==!0&&t.push(no);let i=h(process.env.USE_API_CONTEXT_MANAGEMENT)||Mg(e),a=Mg(e);return Fg()&&(i||a)&&t.push(Vie),r&&Ng(e),r&&t.push(go),process.env.ANTHROPIC_BETAS&&t.push(...process.env.ANTHROPIC_BETAS.split(`,`).map(e=>e.trim()).filter(Boolean)),t}),Bg=u(e=>{let t=zg(e);return uo()===`bedrock`?t.filter(e=>!yo.has(e)):t}),Vg=u(e=>zg(e).filter(e=>yo.has(e)))}));function Ug(e){return e.type===`advisor_tool_result`||e.type===`server_tool_use`&&e.name===`advisor`}function Wg(){return{}}function Gg(){return h(process.env.WORKMATE_DISABLE_ADVISOR_TOOL)||!Fg()?!1:Wg().enabled??!1}function Kg(){return Gg()&&(Wg().canUserConfigure??!1)}function Fpe(){let e=Wg();return Gg()&&!Kg()&&e.baseModel&&e.advisorModel?{baseModel:e.baseModel,advisorModel:e.advisorModel}:void 0}function qg(e){let t=e.toLowerCase();return t.includes(`opus-4-7`)||t.includes(`opus-4-6`)||t.includes(`sonnet-4-6`)}function Jg(e){let t=e.toLowerCase();return t.includes(`opus-4-7`)||t.includes(`opus-4-6`)||t.includes(`sonnet-4-6`)}function Ipe(){if(Gg())return ar().advisorModel}function Lpe(e){let t=e.iterations;return t?t.filter(e=>e.type===`advisor_message`):[]}var Yg,Xg=n((()=>{Hg(),g(),Ln(),Yg=`# Advisor Tool
|
|
415
|
+
`),c=s.find(e=>e.includes(`Sandbox:`)&&e.includes(`deny`)),l=s.find(e=>e.startsWith(`CMD64_`));if(!c)return;let u=c.match(r);if(!u?.[1])return;let d=u[1],f,p;if(l&&(p=l.match(n)?.[1],p))try{f=vfe(p)}catch{}if(!(d.includes(`mDNSResponder`)||d.includes(`mach-lookup com.apple.diagnosticd`)||d.includes(`mach-lookup com.apple.analyticsd`))){if(t&&f){if(i.length>0&&i.some(e=>d.includes(e)))return;for(let[e,t]of a)if(f.includes(e)&&t.some(e=>d.includes(e)))return}e({line:d,command:f,encodedCommand:p,timestamp:new Date})}}),o.stderr?.on(`data`,e=>{Z(`[Sandbox Monitor] Log stream stderr: ${e.toString()}`)}),o.on(`error`,e=>{Z(`[Sandbox Monitor] Failed to start log stream: ${e.message}`)}),o.on(`exit`,e=>{Z(`[Sandbox Monitor] Log stream exited with code: ${e}`)}),()=>{Z(`[Sandbox Monitor] Stopping log monitor`),o.kill(`SIGTERM`)}}var ih,ah,Bfe=n((()=>{ih=r(Tm(),1),Ep(),Jp(),zm(),ah=`_${Math.random().toString(36).slice(2,11)}_SBX`})),oh,sh=n((()=>{zm(),oh=class{constructor(){this.violations=[],this.totalCount=0,this.maxSize=100,this.listeners=new Set}addViolation(e){this.violations.push(e),this.totalCount++,this.violations.length>this.maxSize&&(this.violations=this.violations.slice(-this.maxSize)),this.notifyListeners()}getViolations(e){return e===void 0?[...this.violations]:this.violations.slice(-e)}getCount(){return this.violations.length}getTotalCount(){return this.totalCount}getViolationsForCommand(e){let t=Pm(e);return this.violations.filter(e=>e.encodedCommand===t)}clear(){this.violations=[],this.notifyListeners()}subscribe(e){return this.listeners.add(e),e(this.getViolations()),()=>{this.listeners.delete(e)}}notifyListeners(){let e=this.getViolations();this.listeners.forEach(t=>t(e))}}}));function Vfe(){if(Ah)return;let e=()=>wh().catch(e=>{Z(`Cleanup failed in registerCleanup ${e}`,{level:`error`})});process.once(`exit`,e),process.once(`SIGINT`,e),process.once(`SIGTERM`,e),Ah=!0}function ch(e,t){let n=e.toLowerCase();if(t.startsWith(`*.`)){if(cl(Pp(n)))return!1;let e=t.substring(2).toLowerCase();return n.endsWith(`.`+e)}return n===t.toLowerCase()}async function lh(e,t,n){if(!Th)return Z(`No config available, denying network request`),!1;if(!Ip(t))return Z(`Denying malformed host: ${JSON.stringify(t)}:${e}`,{level:`error`}),!1;let r=Ude(t)??t;for(let n of Th.network.deniedDomains)if(ch(r,n))return Z(`Denied by config rule: ${t}:${e}`),!1;for(let n of Th.network.allowedDomains)if(ch(r,n))return Z(`Allowed by config rule: ${t}:${e}`),!0;if(!n)return Z(`No matching config rule, denying: ${t}:${e}`),!1;Z(`No matching config rule, asking user: ${t}:${e}`);try{return await n({host:t,port:e})?(Z(`User allowed: ${t}:${e}`),!0):(Z(`User denied: ${t}:${e}`),!1)}catch(e){return Z(`Error in permission callback: ${e}`,{level:`error`}),!1}}function Hfe(e){if(!Th?.network.mitmProxy)return;let{socketPath:t,domains:n}=Th.network.mitmProxy;for(let r of n)if(ch(e,r))return Z(`Host ${e} matches MITM pattern ${r}`),t}async function Ufe(e){return Eh=Wde({filter:(t,n)=>lh(t,n,e),getMitmSocketPath:Hfe,parentProxy:Mh}),new Promise((e,t)=>{if(!Eh){t(Error(`HTTP proxy server undefined before listen`));return}let n=Eh;n.once(`error`,t),n.once(`listening`,()=>{let r=n.address();r&&typeof r==`object`?(n.unref(),Z(`HTTP proxy listening on localhost:${r.port}`),e(r.port)):t(Error(`Failed to get proxy server address`))}),n.listen(0,`127.0.0.1`)})}async function Wfe(e){return Dh=Yde({filter:(t,n)=>lh(t,n,e),parentProxy:Mh}),new Promise((e,t)=>{if(!Dh){t(Error(`SOCKS proxy server undefined before listen`));return}Dh.listen(0,`127.0.0.1`).then(t=>{Dh?.unref(),e(t)}).catch(t)})}async function Gfe(e,t,n=!1){if(kh){await kh;return}Th=e,Mh=Dp(e.network.parentProxy),Mh&&Z(`Parent proxy configured: http=${Fp(Mh.httpUrl)} https=${Fp(Mh.httpsUrl)}`);let r=dh();if(r.errors.length>0)throw Error(`Sandbox dependencies not available: ${r.errors.join(`, `)}`);n&&Cm()===`macos`&&(jh=zfe(Nh.addViolation.bind(Nh),Th.ignoreViolations),Z(`Started macOS sandbox log monitor`)),Vfe(),kh=(async()=>{try{let e;Th.network.httpProxyPort===void 0?e=await Ufe(t):(e=Th.network.httpProxyPort,Z(`Using external HTTP proxy on port ${e}`));let n;Th.network.socksProxyPort===void 0?n=await Wfe(t):(n=Th.network.socksProxyPort,Z(`Using external SOCKS proxy on port ${n}`));let r;Cm()===`linux`&&(r=await Ofe(e,n));let i={httpProxyPort:e,socksProxyPort:n,linuxBridge:r};return Oh=i,Z(`Network infrastructure initialized`),i}catch(e){throw kh=void 0,Oh=void 0,wh().catch(e=>{Z(`Cleanup failed in initializationPromise ${e}`,{level:`error`})}),e}})(),await kh}function uh(){let e=Cm();return e===`linux`?pfe()!==`1`:e===`macos`}function Kfe(){return Th!==void 0}function dh(e){if(!uh())return{errors:[`Unsupported platform`],warnings:[]};let t=[],n=[],r=e??Th?.ripgrep??{command:`rg`};if(qp(r.command)===null&&t.push(`ripgrep (${r.command}) not found`),Cm()===`linux`){let e=Dfe(Th?.seccomp);t.push(...e.errors),n.push(...e.warnings)}return{errors:t,warnings:n}}function qfe(){if(!Th)return{denyOnly:[],allowWithinDeny:[]};let e=[];for(let t of Th.filesystem.denyRead){let n=km(t);if(Cm()===`linux`&&Om(n)){let n=Im(t);Z(`[Sandbox] Expanded glob pattern "${t}" to ${n.length} paths on Linux`),e.push(...n)}else e.push(n)}let t=[];for(let e of Th.filesystem.allowRead??[]){let n=km(e);if(Cm()===`linux`&&Om(n)){let n=Im(e);Z(`[Sandbox] Expanded allowRead glob pattern "${e}" to ${n.length} paths on Linux`),t.push(...n)}else t.push(n)}return{denyOnly:e,allowWithinDeny:t}}function Jfe(){if(!Th)return{allowOnly:Mm(),denyWithinAllow:[]};let e=Th.filesystem.allowWrite.map(e=>km(e)).filter(e=>Cm()===`linux`&&Om(e)?(Z(`Skipping glob pattern on Linux/WSL: ${e}`),!1):!0),t=Th.filesystem.denyWrite.map(e=>km(e)).filter(e=>Cm()===`linux`&&Om(e)?(Z(`Skipping glob pattern on Linux/WSL: ${e}`),!1):!0);return{allowOnly:[...Mm(),...e],denyWithinAllow:t}}function Yfe(){if(!Th)return{};let e=Th.network.allowedDomains,t=Th.network.deniedDomains;return{...e.length>0&&{allowedHosts:e},...t.length>0&&{deniedHosts:t}}}function fh(){return Th?.network?.allowUnixSockets}function ph(){return Th?.network?.allowAllUnixSockets}function mh(){return Th?.network?.allowLocalBinding}function hh(){return Th?.ignoreViolations}function gh(){return Th?.enableWeakerNestedSandbox}function Xfe(){return Th?.enableWeakerNetworkIsolation}function Zfe(){return Th?.ripgrep??{command:`rg`}}function Qfe(){return Th?.mandatoryDenySearchDepth??3}function _h(){return Th?.filesystem?.allowGitConfig??!1}function $fe(){return Th?.seccomp}function vh(){return Oh?.httpProxyPort}function yh(){return Oh?.socksProxyPort}function bh(){return Oh?.linuxBridge?.httpSocketPath}function xh(){return Oh?.linuxBridge?.socksSocketPath}async function Sh(){if(!Th)return!1;if(kh)try{return await kh,!0}catch{return!1}return Oh!==void 0}async function epe(e,t,n,r){let i=Cm(),a=e=>e.map(e=>km(e)).filter(e=>Cm()===`linux`&&Om(e)?(Z(`[Sandbox] Skipping glob write pattern on Linux: ${e}`),!1):!0),o=a(n?.filesystem?.allowWrite??Th?.filesystem.allowWrite??[]),s={allowOnly:[...Mm(),...o],denyWithinAllow:a(n?.filesystem?.denyWrite??Th?.filesystem.denyWrite??[])},c=n?.filesystem?.denyRead??Th?.filesystem.denyRead??[],l=[];for(let e of c){let t=km(e);Cm()===`linux`&&Om(t)?l.push(...Im(e)):l.push(t)}let u=n?.filesystem?.allowRead??Th?.filesystem.allowRead??[],d=[];for(let e of u){let t=km(e);Cm()===`linux`&&Om(t)?d.push(...Im(e)):d.push(t)}let f={denyOnly:l,allowWithinDeny:d},p=n?.network?.allowedDomains!==void 0||Th?.network?.allowedDomains!==void 0,m=p,h=p;h&&await Sh();let g=n?.allowPty??Th?.allowPty;switch(i){case`macos`:return Rfe({command:e,needsNetworkRestriction:m,httpProxyPort:h?vh():void 0,socksProxyPort:h?yh():void 0,readConfig:f,writeConfig:s,allowUnixSockets:fh(),allowAllUnixSockets:ph(),allowLocalBinding:mh(),ignoreViolations:hh(),allowPty:g,allowGitConfig:_h(),enableWeakerNetworkIsolation:Xfe(),binShell:t});case`linux`:return jfe({command:e,needsNetworkRestriction:m,httpSocketPath:h?bh():void 0,socksSocketPath:h?xh():void 0,httpProxyPort:h?Oh?.httpProxyPort:void 0,socksProxyPort:h?Oh?.socksProxyPort:void 0,readConfig:f,writeConfig:s,enableWeakerNestedSandbox:gh(),allowAllUnixSockets:ph(),binShell:t,ripgrepConfig:Zfe(),mandatoryDenySearchDepth:Qfe(),allowGitConfig:_h(),seccompConfig:$fe(),abortSignal:r});default:throw Error(`Sandbox configuration is not supported on platform: ${i}`)}}function tpe(){return Th}function npe(e){Th=qle(e),Mh=Dp(e.network.parentProxy),Z(`Sandbox configuration updated`)}function Ch(){Ym()}async function wh(){if(Ch(),jh&&(jh(),jh=void 0),Oh?.linuxBridge){let{httpSocketPath:e,socksSocketPath:t,httpBridgeProcess:n,socksBridgeProcess:r}=Oh.linuxBridge,i=[];if(n.pid&&!n.killed)try{process.kill(n.pid,`SIGTERM`),Z(`Sent SIGTERM to HTTP bridge process`),i.push(new Promise(e=>{n.once(`exit`,()=>{Z(`HTTP bridge process exited`),e()}),setTimeout(()=>{if(!n.killed){Z(`HTTP bridge did not exit, forcing SIGKILL`,{level:`warn`});try{n.pid&&process.kill(n.pid,`SIGKILL`)}catch{}}e()},5e3)}))}catch(e){e.code!==`ESRCH`&&Z(`Error killing HTTP bridge: ${e}`,{level:`error`})}if(r.pid&&!r.killed)try{process.kill(r.pid,`SIGTERM`),Z(`Sent SIGTERM to SOCKS bridge process`),i.push(new Promise(e=>{r.once(`exit`,()=>{Z(`SOCKS bridge process exited`),e()}),setTimeout(()=>{if(!r.killed){Z(`SOCKS bridge did not exit, forcing SIGKILL`,{level:`warn`});try{r.pid&&process.kill(r.pid,`SIGKILL`)}catch{}}e()},5e3)}))}catch(e){e.code!==`ESRCH`&&Z(`Error killing SOCKS bridge: ${e}`,{level:`error`})}if(await Promise.all(i),e)try{Oc.rmSync(e,{force:!0}),Z(`Cleaned up HTTP socket`)}catch(e){Z(`HTTP socket cleanup error: ${e}`,{level:`error`})}if(t)try{Oc.rmSync(t,{force:!0}),Z(`Cleaned up SOCKS socket`)}catch(e){Z(`SOCKS socket cleanup error: ${e}`,{level:`error`})}}let e=[];if(Eh){let t=Eh,n=new Promise(e=>{t.close(t=>{t&&t.message!==`Server is not running.`&&Z(`Error closing HTTP proxy server: ${t.message}`,{level:`error`}),e()})});e.push(n)}if(Dh){let t=Dh.close().catch(e=>{Z(`Error closing SOCKS proxy server: ${e.message}`,{level:`error`})});e.push(t)}await Promise.all(e),Eh=void 0,Dh=void 0,Oh=void 0,kh=void 0,Mh=void 0}function rpe(){return Nh}function ipe(e,t){if(!Th)return t;let n=Nh.getViolationsForCommand(e);if(n.length===0)return t;let r=t;r+=Fc+`<sandbox_violations>`+Fc;for(let e of n)r+=e.line+Fc;return r+=`</sandbox_violations>`,r}function ape(){if(Cm()!==`linux`||!Th)return[];let e=[],t=[...Th.filesystem.allowWrite,...Th.filesystem.denyWrite];for(let n of t)Om(km(n))&&e.push(n);return e}var Th,Eh,Dh,Oh,kh,Ah,jh,Mh,Nh,Ph,ope=n((()=>{Kde(),Xde(),Ep(),Jp(),Sm(),wm(),Mfe(),Bfe(),zm(),sh(),Vp(),Ah=!1,Nh=new oh,Ph={initialize:Gfe,isSupportedPlatform:uh,isSandboxingEnabled:Kfe,checkDependencies:dh,getFsReadConfig:qfe,getFsWriteConfig:Jfe,getNetworkRestrictionConfig:Yfe,getAllowUnixSockets:fh,getAllowLocalBinding:mh,getIgnoreViolations:hh,getEnableWeakerNestedSandbox:gh,getProxyPort:vh,getSocksProxyPort:yh,getLinuxHttpSocketPath:bh,getLinuxSocksSocketPath:xh,waitForNetworkInitialization:Sh,wrapWithSandbox:epe,cleanupAfterCommand:Ch,reset:wh,getSandboxViolationStore:rpe,annotateStderrWithSandboxFailures:ipe,getLinuxGlobPatternWarnings:ape,getConfig:tpe,updateConfig:npe}})),Fh,Ih,Lh,Rh,zh,Bh,Vh,Hh,Uh,spe=n((()=>{N(),Fh=j().refine(e=>{if(e.includes(`://`)||e.includes(`/`)||e.includes(`:`))return!1;if(e===`localhost`)return!0;if(e.startsWith(`*.`)){let t=e.slice(2);if(!t.includes(`.`)||t.startsWith(`.`)||t.endsWith(`.`))return!1;let n=t.split(`.`);return n.length>=2&&n.every(e=>e.length>0)}return!e.includes(`*`)&&e.includes(`.`)&&!e.startsWith(`.`)&&!e.endsWith(`.`)},{message:`Invalid domain pattern. Must be a valid domain (e.g., "example.com") or wildcard (e.g., "*.example.com"). Overly broad patterns like "*.com" or "*" are not allowed for security reasons.`}),Ih=j().min(1,`Path cannot be empty`),Lh=se({socketPath:j().min(1).describe(`Unix socket path to the MITM proxy`),domains:M(Fh).min(1).describe(`Domains to route through the MITM proxy (e.g., ["api.example.com", "*.internal.org"])`)}),Rh=se({http:j().url().optional().describe(`Upstream proxy URL for plain HTTP traffic`),https:j().url().optional().describe(`Upstream proxy URL for HTTPS/CONNECT traffic (falls back to http if unset)`),noProxy:j().optional().describe(`Comma-separated NO_PROXY list (hostname suffixes and CIDR ranges). Matching destinations connect directly instead of via the parent proxy.`)}),zh=se({allowedDomains:M(Fh).describe(`List of allowed domains (e.g., ["github.com", "*.npmjs.org"])`),deniedDomains:M(Fh).describe(`List of denied domains`),allowUnixSockets:M(j()).optional().describe(`macOS only: Unix socket paths to allow. Ignored on Linux (seccomp cannot filter by path).`),allowAllUnixSockets:oe().optional().describe(`If true, allow all Unix sockets (disables blocking on both platforms).`),allowLocalBinding:oe().optional().describe(`Whether to allow binding to local ports (default: false)`),httpProxyPort:ae().int().min(1).max(65535).optional().describe(`Port of an external HTTP proxy to use instead of starting a local one. When provided, the library will skip starting its own HTTP proxy and use this port. The external proxy must handle domain filtering.`),socksProxyPort:ae().int().min(1).max(65535).optional().describe(`Port of an external SOCKS proxy to use instead of starting a local one. When provided, the library will skip starting its own SOCKS proxy and use this port. The external proxy must handle domain filtering.`),mitmProxy:Lh.optional().describe(`Optional MITM proxy configuration. Routes matching domains through an upstream proxy via Unix socket while SRT still handles allow/deny filtering.`),parentProxy:Rh.optional().describe(`Upstream HTTP proxy for outbound connections. When set, SRT's proxy tunnels non-mitmProxy traffic through this parent instead of connecting directly. Falls back to HTTP_PROXY/HTTPS_PROXY/NO_PROXY env vars if unset.`)}),Bh=se({denyRead:M(Ih).describe(`Paths denied for reading`),allowRead:M(Ih).optional().describe(`Paths to re-allow reading within denied regions (takes precedence over denyRead). Use with denyRead to deny a broad region then allow back specific subdirectories.`),allowWrite:M(Ih).describe(`Paths allowed for writing`),denyWrite:M(Ih).describe(`Paths denied for writing (takes precedence over allowWrite)`),allowGitConfig:oe().optional().describe(`Allow writes to .git/config files (default: false). Enables git remote URL updates while keeping .git/hooks protected.`)}),Vh=le(j(),M(j())).describe(`Map of command patterns to filesystem paths to ignore violations for. Use "*" to match all commands`),Hh=se({command:j().describe(`The ripgrep command to execute`),args:M(j()).optional().describe(`Additional arguments to pass before ripgrep args`),argv0:j().optional().describe(`Override argv[0] when spawning (for multicall binaries that dispatch on argv[0])`)}),Uh=se({bpfPath:j().optional().describe(`Path to the unix-block.bpf filter file`),applyPath:j().optional().describe(`Path to the apply-seccomp binary`)}),se({network:zh.describe(`Network restrictions configuration`),filesystem:Bh.describe(`Filesystem restrictions configuration`),ignoreViolations:Vh.optional().describe(`Optional configuration for ignoring specific violations`),enableWeakerNestedSandbox:oe().optional().describe(`Enable weaker nested sandbox mode (for Docker environments)`),enableWeakerNetworkIsolation:oe().optional().describe(`Enable weaker network isolation to allow access to com.apple.trustd.agent (macOS only). This is needed for Go programs (gh, gcloud, terraform, kubectl, etc.) to verify TLS certificates when using httpProxyPort with a MITM proxy and custom CA. Enabling this opens a potential data exfiltration vector through the trustd service. Only enable if you need Go TLS verification.`),ripgrep:Hh.optional().describe(`Custom ripgrep configuration (default: { command: "rg" })`),mandatoryDenySearchDepth:ae().int().min(1).max(10).optional().describe(`Maximum directory depth to search for dangerous files on Linux (default: 3). Higher values provide more protection but slower performance.`),allowPty:oe().optional().describe(`Allow pseudo-terminal (pty) operations (macOS only)`),seccomp:Uh.optional().describe(`Custom seccomp binary paths (Linux only).`)})})),cpe=n((()=>{ope(),sh(),spe(),zm(),wm()}));async function lpe(){if(rg||ig)return;rg=!0,ppe(),Ai(Wh);let{dirs:e,settingsFiles:t,dropInDir:n}=await upe();ig||e.length!==0&&(K(`Watching for changes in setting files ${[...t].join(`, `)}...${n?` and drop-in directory ${n}`:``}`),eg=doe.watch(e,{persistent:!0,ignoreInitial:!0,depth:0,awaitWriteFinish:{stabilityThreshold:Yh,pollInterval:Xh},ignored:(e,r)=>{if(r&&!r.isFile()&&!r.isDirectory()||e.split(fc.sep).some(e=>e===`.git`))return!0;if(!r||r.isDirectory())return!1;let i=fc.normalize(e);return!(t.has(i)||n&&i.startsWith(n+fc.sep)&&i.endsWith(`.json`))},ignorePermissionErrors:!0,usePolling:!1,atomic:!0}),eg.on(`change`,Kh),eg.on(`unlink`,fpe),eg.on(`add`,dpe))}function Wh(){ig=!0,tg&&(clearInterval(tg),tg=null);for(let e of ag.values())clearTimeout(e);ag.clear(),ng=null,fte(),og.clear();let e=eg;return eg=null,e?e.close():Promise.resolve()}async function upe(){let e=new Map,t=new Set;for(let n of rr){if(n===`flagSettings`)continue;let r=Un(n);if(!r)continue;let i=fc.dirname(r);e.has(i)||e.set(i,new Set),e.get(i).add(r);try{(await Zc(r)).isFile()&&t.add(i)}catch{}}let n=new Set;for(let r of t){let t=e.get(r);if(t)for(let e of t)n.add(e)}let r=null,i=Vn();try{(await Zc(i)).isDirectory()&&(t.add(i),r=i)}catch{}return{dirs:[...t],settingsFiles:n,dropInDir:r}}function Gh(e){switch(e){case`userSettings`:return`user_settings`;case`projectSettings`:return`project_settings`;case`localSettings`:return`local_settings`;case`flagSettings`:case`policySettings`:return`policy_settings`}}function Kh(e){let t=qh(e);if(!t)return;let n=ag.get(e);n&&(clearTimeout(n),ag.delete(e),K(`Cancelled pending deletion of ${e} — file was recreated`)),!Yee(e,Zh)&&(K(`Detected change to ${e}`),u7(Gh(t),e).then(n=>{if(i7(n)){K(`ConfigChange hook blocked change to ${e}`);return}Jh(t)}))}function dpe(e){if(!qh(e))return;let t=ag.get(e);t&&(clearTimeout(t),ag.delete(e),K(`Cancelled pending deletion of ${e} — file was re-added`)),Kh(e)}function fpe(e){let t=qh(e);if(!t||(K(`Detected deletion of ${e}`),ag.has(e)))return;let n=setTimeout((e,t)=>{ag.delete(e),u7(Gh(t),e).then(n=>{if(i7(n)){K(`ConfigChange hook blocked deletion of ${e}`);return}Jh(t)})},$h,e,t);ag.set(e,n)}function qh(e){let t=fc.normalize(e),n=Vn();return t.startsWith(n+fc.sep)?`policySettings`:rr.find(e=>Un(e)===t)}function ppe(){let e=Iee(),t=Hte();ng=W({mdm:e.settings,hkcu:t.settings}),tg=setInterval(()=>{ig||(async()=>{try{let{mdm:e,hkcu:t}=await zte();if(ig)return;let n=W({mdm:e.settings,hkcu:t.settings});n!==ng&&(ng=n,zee(e,t),K(`Detected MDM settings change via poll`),Jh(`policySettings`))}catch(e){K(`MDM poll error: ${G(e)}`)}})()},Qh),tg.unref()}function Jh(e){Cr(),og.emit(e)}function mpe(e){K(`Programmatic settings change notification for ${e}`),Jh(e)}var Yh,Xh,Zh,Qh,$h,eg,tg,ng,rg,ig,ag,og,sg,cg,lg=n((()=>{soe(),pi(),q(),vi(),_7(),Rr(),zi(),Rn(),Ote(),$n(),mee(),Ln(),Vr(),Yh=1e3,Xh=500,Zh=5e3,Qh=1800*1e3,$h=1700,eg=null,tg=null,ng=null,rg=!1,ig=!1,ag=new Map,og=Nr(),sg=og.subscribe,cg={initialize:lpe,dispose:Wh,subscribe:sg,notifyChange:mpe}}));function ug(e){let t=e.match(/^([^(]+)\(([^)]+)\)$/);if(!t)return{toolName:e};let n=t[1],r=t[2];return!n||!r?{toolName:e}:{toolName:n,ruleContent:r}}function hpe(e){return e.match(/^(.+):\*$/)?.[1]??null}function dg(e,t){return e.startsWith(`//`)?e.slice(1):e.startsWith(`/`)&&!e.startsWith(`//`)?xc(vn(t),e.slice(1)):e}function fg(e,t){return e.startsWith(`//`)?e.slice(1):Cn(e,vn(t))}function pg(){return tr(`policySettings`)?.sandbox?.network?.allowManagedDomainsOnly===!0}function gpe(){return tr(`policySettings`)?.sandbox?.filesystem?.allowManagedReadPathsOnly===!0}function mg(e){let t=e.permissions||{},n=[],r=[];if(pg()){let e=tr(`policySettings`);for(let t of e?.sandbox?.network?.allowedDomains||[])n.push(t)}else for(let t of e.sandbox?.network?.allowedDomains||[])n.push(t);for(let e of t.deny||[]){let t=ug(e);t.ruleContent?.startsWith(`domain:`)&&r.push(t.ruleContent.substring(7))}let i=[`.`,R8()],a=[],o=[],s=[],c=rr.map(e=>Un(e)).filter(e=>e!==void 0);a.push(...c),a.push(Vn());let l=Ur(),u=ri();l!==u&&(a.push(xc(l,`.workmate`,`settings.json`)),a.push(xc(l,`.workmate`,`settings.local.json`))),a.push(xc(u,`.workmate`,`skills`)),l!==u&&a.push(xc(l,`.workmate`,`skills`)),xg.length=0;let d=[`HEAD`,`objects`,`refs`,`hooks`,`config`];for(let e of l===u?[u]:[u,l])for(let t of d){let n=xc(e,t);try{Lse(n),a.push(n)}catch{xg.push(n)}}bg&&bg!==l&&i.push(bg);let f=new Set([...e.permissions?.additionalDirectories||[],...$r()]);i.push(...f);for(let e of rr){let t=tr(e);if(t?.permissions){for(let n of t.permissions.allow||[]){let t=ug(n);t.toolName===`Edit`&&t.ruleContent&&i.push(dg(t.ruleContent,e))}for(let n of t.permissions.deny||[]){let t=ug(n);t.toolName===`Edit`&&t.ruleContent&&a.push(dg(t.ruleContent,e)),t.toolName===`Read`&&t.ruleContent&&o.push(dg(t.ruleContent,e))}}let n=t?.sandbox?.filesystem;if(n){for(let t of n.allowWrite||[])i.push(fg(t,e));for(let t of n.denyWrite||[])a.push(fg(t,e));for(let t of n.denyRead||[])o.push(fg(t,e));if(!gpe()||e===`policySettings`)for(let t of n.allowRead||[])s.push(fg(t,e))}}let{rgPath:p,rgArgs:m,argv0:h}=Js(),g=e.sandbox?.ripgrep??{command:p,args:m,argv0:h};return{network:{allowedDomains:n,deniedDomains:r,allowUnixSockets:e.sandbox?.network?.allowUnixSockets,allowAllUnixSockets:e.sandbox?.network?.allowAllUnixSockets,allowLocalBinding:e.sandbox?.network?.allowLocalBinding,httpProxyPort:e.sandbox?.network?.httpProxyPort,socksProxyPort:e.sandbox?.network?.socksProxyPort},filesystem:{denyRead:o,allowRead:s,allowWrite:i,denyWrite:a},ignoreViolations:e.sandbox?.ignoreViolations,enableWeakerNestedSandbox:e.sandbox?.enableWeakerNestedSandbox,enableWeakerNetworkIsolation:e.sandbox?.enableWeakerNetworkIsolation,ripgrep:g}}function _pe(){for(let e of xg)try{Ise(e,{recursive:!0}),K(`[Sandbox] scrubbed planted bare-repo file: ${e}`)}catch{}}async function vpe(e){let t=X(e,`.git`);try{let n=(await Kc(t,{encoding:`utf8`})).match(/^gitdir:\s*(.+)$/m);if(!n?.[1])return null;let r=xc(e,n[1].trim()),i=`${Sc}.git${Sc}worktrees${Sc}`,a=r.lastIndexOf(i);return a>0?r.substring(0,a):null}catch{return null}}function hg(){try{return xn()?.sandbox?.enabled??!1}catch(e){return K(`Failed to get settings for sandbox check: ${e}`),!1}}function ype(){return xn()?.sandbox?.autoAllowBashIfSandboxed??!0}function bpe(){return xn()?.sandbox?.allowUnsandboxedCommands??!0}function xpe(){let e=xn();return hg()&&(e?.sandbox?.failIfUnavailable??!1)}function gg(){try{let e=ar()?.sandbox?.enabledPlatforms;if(e===void 0)return!0;if(e.length===0)return!1;let t=Na();return e.includes(t)}catch(e){return K(`Failed to check enabledPlatforms: ${e}`),!0}}function _g(){return!Cg()||Sg().errors.length>0||!gg()?!1:hg()}function Spe(){if(!hg())return;if(!Cg()){let e=Na();return e===`wsl`?`sandbox.enabled is set but WSL1 is not supported (requires WSL2)`:`sandbox.enabled is set but ${e} is not supported (requires macOS, Linux, or WSL2)`}if(!gg())return`sandbox.enabled is set but ${Na()} is not in sandbox.enabledPlatforms`;let e=Sg();if(e.errors.length>0){let t=Na()===`macos`?`run /sandbox or /doctor for details`:`install missing tools (e.g. apt install bubblewrap socat) or run /sandbox for details`;return`sandbox.enabled is set but dependencies are missing: ${e.errors.join(`, `)} · ${t}`}}function Cpe(){let e=Na();if(e!==`linux`&&e!==`wsl`)return[];try{let e=xn();if(!e?.sandbox?.enabled)return[];let t=e?.permissions||{},n=[],r=e=>{let t=e.replace(/\/\*\*$/,``);return/[*?[\]]/.test(t)};for(let e of[...t.allow||[],...t.deny||[]]){let t=ug(e);(t.toolName===`Edit`||t.toolName===`Read`)&&t.ruleContent&&r(t.ruleContent)&&n.push(e)}return n}catch(e){return K(`Failed to get Linux glob pattern warnings: ${e}`),[]}}function wpe(){for(let e of[`flagSettings`,`policySettings`]){let t=tr(e);if(t?.sandbox?.enabled!==void 0||t?.sandbox?.autoAllowBashIfSandboxed!==void 0||t?.sandbox?.allowUnsandboxedCommands!==void 0)return!0}return!1}async function Tpe(e){yr(`localSettings`,{sandbox:{...tr(`localSettings`)?.sandbox,...e.enabled!==void 0&&{enabled:e.enabled},...e.autoAllowBashIfSandboxed!==void 0&&{autoAllowBashIfSandboxed:e.autoAllowBashIfSandboxed},...e.allowUnsandboxedCommands!==void 0&&{allowUnsandboxedCommands:e.allowUnsandboxedCommands}}})}function Epe(){return xn()?.sandbox?.excludedCommands??[]}async function Dpe(e,t,n,r){if(_g())if(vg)await vg;else throw Error(`Sandbox failed to initialize. `);return Ph.wrapWithSandbox(e,t,n,r)}async function Ope(e){if(vg)return vg;if(!_g())return;let t=e?async t=>pg()?(K(`[sandbox] Blocked network request to ${t.host} (allowManagedDomainsOnly)`),!1):e(t):void 0;return vg=(async()=>{try{bg===void 0&&(bg=await vpe(Ur()));let e=mg(xn());await Ph.initialize(e,t),yg=cg.subscribe(()=>{let e=mg(xn());Ph.updateConfig(e),K(`Sandbox configuration updated from settings change`)})}catch(e){vg=void 0,K(`Failed to initialize sandbox: ${G(e)}`)}})(),vg}function kpe(){if(!_g())return;let e=mg(xn());Ph.updateConfig(e)}async function Ape(){return yg?.(),yg=void 0,bg=void 0,xg.length=0,Sg.cache.clear?.(),Cg.cache.clear?.(),vg=void 0,Ph.reset()}function jpe(e,t){let n=tr(`localSettings`),r=n?.sandbox?.excludedCommands||[],i=e;if(t){let e=t.filter(e=>e.type===`addRules`&&e.rules.some(e=>e.toolName===`Bash`));if(e.length>0&&e[0].type===`addRules`){let t=e[0].rules.find(e=>e.toolName===js);t?.ruleContent&&(i=hpe(t.ruleContent)||t.ruleContent)}}return r.includes(i)||yr(`localSettings`,{sandbox:{...n?.sandbox,excludedCommands:[...r,i]}}),i}var vg,yg,bg,xg,Sg,Cg,wg,Tg=n((()=>{cpe(),Sm(),H(),q(),Kn(),Fa(),lg(),Rn(),$n(),Ln(),xs(),Os(),Ms(),vi(),B8(),qs(),xg=[],Sg=u(()=>{let{rgPath:e,rgArgs:t}=Js();return Ph.checkDependencies({command:e,args:t})}),Cg=u(()=>Ph.isSupportedPlatform()),wg={initialize:Ope,isSandboxingEnabled:_g,isSandboxEnabledInSettings:hg,isPlatformInEnabledList:gg,getSandboxUnavailableReason:Spe,isAutoAllowBashIfSandboxedEnabled:ype,areUnsandboxedCommandsAllowed:bpe,isSandboxRequired:xpe,areSandboxSettingsLockedByPolicy:wpe,setSandboxSettings:Tpe,getExcludedCommands:Epe,wrapWithSandbox:Dpe,refreshConfig:kpe,reset:Ape,checkDependencies:Sg,getFsReadConfig:Ph.getFsReadConfig,getFsWriteConfig:Ph.getFsWriteConfig,getNetworkRestrictionConfig:Ph.getNetworkRestrictionConfig,getIgnoreViolations:Ph.getIgnoreViolations,getLinuxGlobPatternWarnings:Cpe,isSupportedPlatform:Cg,getAllowUnixSockets:Ph.getAllowUnixSockets,getAllowLocalBinding:Ph.getAllowLocalBinding,getEnableWeakerNestedSandbox:Ph.getEnableWeakerNestedSandbox,getProxyPort:Ph.getProxyPort,getSocksProxyPort:Ph.getSocksProxyPort,getLinuxHttpSocketPath:Ph.getLinuxHttpSocketPath,getLinuxSocksSocketPath:Ph.getLinuxSocksSocketPath,waitForNetworkInitialization:Ph.waitForNetworkInitialization,getSandboxViolationStore:Ph.getSandboxViolationStore,annotateStderrWithSandboxFailures:Ph.annotateStderrWithSandboxFailures,cleanupAfterCommand:()=>{Ph.cleanupAfterCommand(),_pe()}}})),Eg,Mpe=n((()=>{ne(),Tg(),Eg={name:`sandbox`,get description(){let e=wg.isSandboxingEnabled(),t=wg.isAutoAllowBashIfSandboxedEnabled(),n=wg.areUnsandboxedCommandsAllowed(),r=wg.areSandboxSettingsLockedByPolicy(),i=wg.checkDependencies().errors.length===0,a;a=i?e?ie.tick:ie.circle:ie.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!wg.isSupportedPlatform()||!wg.isPlatformInEnabledList()},immediate:!0,type:`local-jsx`,load:()=>import(`./sandbox-toggle-Bp6Xpjh3.js`)}})),Dg,Og,kg,Ag=n((()=>{d(),ho(),Dg=[{modelEnvVar:`ANTHROPIC_DEFAULT_OPUS_MODEL`,capabilitiesEnvVar:`ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES`},{modelEnvVar:`ANTHROPIC_DEFAULT_SONNET_MODEL`,capabilitiesEnvVar:`ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES`},{modelEnvVar:`ANTHROPIC_DEFAULT_HAIKU_MODEL`,capabilitiesEnvVar:`ANTHROPIC_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES`}],Og=[{modelEnvVar:`OPENAI_DEFAULT_OPUS_MODEL`,capabilitiesEnvVar:`OPENAI_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES`},{modelEnvVar:`OPENAI_DEFAULT_SONNET_MODEL`,capabilitiesEnvVar:`OPENAI_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES`},{modelEnvVar:`OPENAI_DEFAULT_HAIKU_MODEL`,capabilitiesEnvVar:`OPENAI_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES`}],kg=u((e,t)=>{if(uo()===`firstParty`)return;let n=e.toLowerCase(),r=uo()===`openai`?Og:Dg;for(let e of r){let r=process.env[e.modelEnvVar],i=process.env[e.capabilitiesEnvVar];if(!(!r||i===void 0)&&n===r.toLowerCase())return i.toLowerCase().split(`,`).map(e=>e.trim()).includes(t)}},(e,t)=>`${e.toLowerCase()}:${t}`)}));function Npe(e){let t=[],n=[];for(let r of e)Rg.includes(r)?t.push(r):n.push(r);return{allowed:t,disallowed:n}}function Ppe(e){if(!e||e.length===0)return;let{allowed:t,disallowed:n}=Npe(e);for(let e of n)console.warn(`Warning: Beta header '${e}' is not allowed. Only the following betas are supported: ${Rg.join(`, `)}`);return t.length>0?t:void 0}function jg(e){let t=kg(e,`interleaved_thinking`);if(t!==void 0)return t;let n=No(e),r=uo();return r===`foundry`?!0:r===`firstParty`?!n.includes(`claude-3-`):n.includes(`claude-opus-4`)||n.includes(`claude-sonnet-4`)}function Mg(e){let t=No(e),n=uo();return n===`foundry`?!0:n===`firstParty`?!t.includes(`claude-3-`):t.includes(`claude-opus-4`)||t.includes(`claude-sonnet-4`)||t.includes(`claude-haiku-4`)}function Ng(e){let t=No(e),n=uo();return n!==`firstParty`&&n!==`foundry`?!1:t.includes(`claude-sonnet-4-6`)||t.includes(`claude-sonnet-4-5`)||t.includes(`claude-opus-4-1`)||t.includes(`claude-opus-4-5`)||t.includes(`claude-opus-4-6`)||t.includes(`claude-opus-4-7`)||t.includes(`claude-haiku-4-5`)}function Pg(e){return!0}function Fg(){return(uo()===`firstParty`||uo()===`foundry`)&&!h(process.env.WORKMATE_DISABLE_EXPERIMENTAL_BETAS)&&oo()}function Ig(){return uo()===`firstParty`&&!h(process.env.WORKMATE_DISABLE_EXPERIMENTAL_BETAS)}function Lg(e,t){let n=[...Bg(e)];t?.isAgenticQuery&&(n.includes(`workmate-20250219`)||n.push(ro));let r=ii();return!r||r.length===0?n:[...n,...r.filter(e=>!n.includes(e))]}var Rg,zg,Bg,Vg,Hg=n((()=>{d(),H(),mo(),bo(),g(),To(),Ag(),ho(),Ln(),Rg=[Uo],zg=u(e=>{let t=[],n=No(e).includes(`haiku`);uo();let r=Fg();n||t.push(ro),Nie(e)&&t.push(Uo),!h(process.env.DISABLE_INTERLEAVED_THINKING)&&jg(e)&&t.push(Bie),r&&jg(e)&&!jr()&&ar().showThinkingSummaries!==!0&&t.push(no);let i=h(process.env.USE_API_CONTEXT_MANAGEMENT)||Mg(e),a=Mg(e);return Fg()&&(i||a)&&t.push(Vie),r&&Ng(e),r&&t.push(go),process.env.ANTHROPIC_BETAS&&t.push(...process.env.ANTHROPIC_BETAS.split(`,`).map(e=>e.trim()).filter(Boolean)),t}),Bg=u(e=>{let t=zg(e);return uo()===`bedrock`?t.filter(e=>!yo.has(e)):t}),Vg=u(e=>zg(e).filter(e=>yo.has(e)))}));function Ug(e){return e.type===`advisor_tool_result`||e.type===`server_tool_use`&&e.name===`advisor`}function Wg(){return{}}function Gg(){return h(process.env.WORKMATE_DISABLE_ADVISOR_TOOL)||!Fg()?!1:Wg().enabled??!1}function Kg(){return Gg()&&(Wg().canUserConfigure??!1)}function Fpe(){let e=Wg();return Gg()&&!Kg()&&e.baseModel&&e.advisorModel?{baseModel:e.baseModel,advisorModel:e.advisorModel}:void 0}function qg(e){let t=e.toLowerCase();return t.includes(`opus-4-7`)||t.includes(`opus-4-6`)||t.includes(`sonnet-4-6`)}function Jg(e){let t=e.toLowerCase();return t.includes(`opus-4-7`)||t.includes(`opus-4-6`)||t.includes(`sonnet-4-6`)}function Ipe(){if(Gg())return ar().advisorModel}function Lpe(e){let t=e.iterations;return t?t.filter(e=>e.type===`advisor_message`):[]}var Yg,Xg=n((()=>{Hg(),g(),Ln(),Yg=`# Advisor Tool
|
|
416
416
|
|
|
417
417
|
You have access to an \`advisor\` tool backed by a stronger reviewer model. It takes NO parameters -- when you call it, your entire conversation history is automatically forwarded. The advisor sees the task, every tool call you've made, every result you've seen.
|
|
418
418
|
|
|
@@ -729,7 +729,7 @@ Examples:
|
|
|
729
729
|
- "重构这个模块的代码" -> refactor code modularize
|
|
730
730
|
- "帮我写个 Go 单元测试" -> write test golang unit
|
|
731
731
|
|
|
732
|
-
Output ONLY keywords. Nothing else.`,Iw=6e3,Lw=500,Rw=120,zw=200,Bw=150,Vw=new Map})),Hw=i({collectSkillDiscoveryPrefetch:()=>Jw,extractQueryFromMessages:()=>Ww,getTurnZeroSkillDiscovery:()=>DCe,startSkillDiscoveryPrefetch:()=>qw});function Uw(e,t){if(e.add(t),e.size>Yw){let t=e.size-Xw,n=e.values();for(let r=0;r<t;r++){let t=n.next();if(t.done)break;e.delete(t.value)}}}function Ww(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 Gw(e,t,n){return{type:`skill_discovery`,skills:e,signal:t,source:`native`,gap:n}}async function Kw(e,t){let n=0,r=[];for(let i of e){let e={name:i.name,description:i.description,score:i.score};if(n>=eT||i.score<$w){r.push(e);continue}let a=await wCe(i);if(!a){r.push(e);continue}n++,await TCe(i.name,a.path,a.content,t),r.push({...e,autoLoaded:!0,content:a.content,path:a.path})}return r}async function wCe(e){if(!e.skillRoot)return null;let t=[Ec(e.skillRoot,`SKILL.md`),Ec(e.skillRoot,`skill.md`)];for(let e of t)try{return{path:e,content:Au(await il(e,`utf8`)).content.slice(0,tT)}}catch{}return null}async function TCe(e,t,n,r){try{let{addInvokedSkill:i}=await import(`./state-DXt6rahM.js`);i(e,t,n,r.agentId??null)}catch{}}async function ECe(e,t,n,r){if(r!==`user_input`||!e.trim())return;let i=`${r}:${e.trim().toLowerCase()}`;if(!Qw.has(i)){Uw(Qw,i);try{let[{isSkillLearningEnabled:r},{recordSkillGap:i}]=await Promise.all([import(`./featureCheck-JOur3pHb.js`),import(`./skillGapStore-
|
|
732
|
+
Output ONLY keywords. Nothing else.`,Iw=6e3,Lw=500,Rw=120,zw=200,Bw=150,Vw=new Map})),Hw=i({collectSkillDiscoveryPrefetch:()=>Jw,extractQueryFromMessages:()=>Ww,getTurnZeroSkillDiscovery:()=>DCe,startSkillDiscoveryPrefetch:()=>qw});function Uw(e,t){if(e.add(t),e.size>Yw){let t=e.size-Xw,n=e.values();for(let r=0;r<t;r++){let t=n.next();if(t.done)break;e.delete(t.value)}}}function Ww(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 Gw(e,t,n){return{type:`skill_discovery`,skills:e,signal:t,source:`native`,gap:n}}async function Kw(e,t){let n=0,r=[];for(let i of e){let e={name:i.name,description:i.description,score:i.score};if(n>=eT||i.score<$w){r.push(e);continue}let a=await wCe(i);if(!a){r.push(e);continue}n++,await TCe(i.name,a.path,a.content,t),r.push({...e,autoLoaded:!0,content:a.content,path:a.path})}return r}async function wCe(e){if(!e.skillRoot)return null;let t=[Ec(e.skillRoot,`SKILL.md`),Ec(e.skillRoot,`skill.md`)];for(let e of t)try{return{path:e,content:Au(await il(e,`utf8`)).content.slice(0,tT)}}catch{}return null}async function TCe(e,t,n,r){try{let{addInvokedSkill:i}=await import(`./state-DXt6rahM.js`);i(e,t,n,r.agentId??null)}catch{}}async function ECe(e,t,n,r){if(r!==`user_input`||!e.trim())return;let i=`${r}:${e.trim().toLowerCase()}`;if(!Qw.has(i)){Uw(Qw,i);try{let[{isSkillLearningEnabled:r},{recordSkillGap:i}]=await Promise.all([import(`./featureCheck-JOur3pHb.js`),import(`./skillGapStore-Cl4J1WoZ.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){K(`[skill-search] skill gap learning error: ${e}`);return}}}async function qw(e,t,n){if(!Cp())return[];let r=Date.now(),i=Ww(e,t);if(!i.trim())return[];try{let e=await _oe(n.cwd??process.cwd()),t=xoe(i,e).filter(e=>!Zw.has(e.name));if(t.length===0)return[];for(let e of t)Uw(Zw,e.name);let a={trigger:`assistant_turn`,queryText:i.slice(0,200),startedAt:r,durationMs:Date.now()-r,indexSize:e.length,method:`tfidf`};return K(`[skill-search] prefetch found ${t.length} skills in ${a.durationMs}ms`),[Gw(await Kw(t,n),a)]}catch(e){return K(`[skill-search] prefetch error: ${e}`),[]}}async function Jw(e){try{return await e}catch{return[]}}async function DCe(e,t,n){if(!Cp()||!e.trim())return null;let r=Date.now();try{let t=await _oe(n.cwd??process.cwd()),i=xoe(await vCe(e),t),a=await Kw(i,n),o=a.some(e=>e.autoLoaded)?void 0:await ECe(e,i,n,`user_input`);if(i.length===0&&!o)return null;for(let e of i)Uw(Zw,e.name);let s={trigger:`user_input`,queryText:e.slice(0,200),startedAt:r,durationMs:Date.now()-r,indexSize:t.length,method:`tfidf`};return K(`[skill-search] turn-zero found ${i.length} skills in ${s.durationMs}ms`),Gw(a,s,o)}catch(e){return K(`[skill-search] turn-zero error: ${e}`),null}}var Yw,Xw,Zw,Qw,$w,eT,tT,nT=n((()=>{wp(),Ks(),CCe(),q(),Bu(),Yw=1e3,Xw=750,Zw=new Set,Qw=new Set,$w=Number(process.env.SKILL_SEARCH_AUTOLOAD_MIN_SCORE??`0.30`),eT=Number(process.env.SKILL_SEARCH_AUTOLOAD_LIMIT??`2`),tT=Number(process.env.SKILL_SEARCH_AUTOLOAD_MAX_CHARS??`12000`)}));function rT(e){return lT.test(e)}function OCe(e){if(e.startsWith(`mcp__`)){let t=e.replace(/^mcp__/,``).toLowerCase();return{parts:t.split(`__`).flatMap(e=>e.split(`_`)).filter(Boolean),full:t.replace(/__/g,` `).replace(/_/g,` `),isMcp:!0}}let t=e.replace(/([a-z])([A-Z])/g,`$1 $2`).replace(/_/g,` `).toLowerCase().split(/\s+/).filter(Boolean);return{parts:t,full:t.join(` `),isMcp:!1}}async function kCe(e){let t=e.filter(e=>bs(e)),n=[];for(let r of t){let t=``;try{t=await r.prompt({getToolPermissionContext:async()=>({mode:`default`,additionalWorkingDirectories:new Map,alwaysAllowRules:{},alwaysDenyRules:{},alwaysAskRules:{},isBypassPermissionsModeAvailable:!1}),tools:e,agents:[]})}catch{t=``}let{parts:i,full:a}=OCe(r.name),o=r.searchHint??``,s=Gs(i.join(` `)),c=Gs(o),l=Gs(t),u=[...new Set([...s,...c,...l])],d=boe([{tokens:s,weight:oT.name},{tokens:c,weight:oT.searchHint},{tokens:l,weight:oT.description}]),f;r.inputJSONSchema&&(f=r.inputJSONSchema),n.push({name:r.name,normalizedName:a,description:t,searchHint:r.searchHint,isMcp:r.isMcp===!0,isDeferred:!0,inputSchema:f,tokens:u,tfVector:d})}let r=yoe(n);for(let e of n)for(let[t,n]of e.tfVector)e.tfVector.set(t,n*(r.get(t)??0));return K(`[search-extra-tools] indexed ${n.length} deferred tools from ${e.length} total tools`),n}function iT(e,t,n=5){if(t.length===0||!e.trim())return[];let r=Gs(e);if(r.length===0)return[];let i=new Map,a=new Map;for(let e of r)a.set(e,(a.get(e)??0)+1);let o=1;for(let e of a.values())e>o&&(o=e);for(let[e,t]of a)i.set(e,t/o);let s=yoe(t),c=new Map;for(let[e,t]of i)c.set(e,t*(s.get(e)??0));let l=r.filter(e=>rT(e[0]??``)),u=r.filter(e=>!rT(e[0]??``)),d=e.toLowerCase().replace(/[-_]/g,` `),f=[];for(let e of t){let t=voe(c,e.tfVector);l.length>0&&t>0&&l.filter(t=>e.tfVector.has(t)).length<cT&&(u.some(t=>e.tfVector.has(t))||(t=0)),d.includes(e.normalizedName)&&(t=Math.max(t,.75)),t>=sT&&f.push({name:e.name,description:e.description,searchHint:e.searchHint,score:t,isMcp:e.isMcp,isDeferred:e.isDeferred,inputSchema:e.inputSchema})}return f.sort((e,t)=>t.score-e.score),f.slice(0,n)}async function aT(e){let t=e.map(e=>e.name).sort().join(`,`);return uT&&dT===t?uT:(uT=await kCe(e),dT=t,uT)}var oT,sT,cT,lT,uT,dT,fT=n((()=>{q(),Ks(),As(),oT={name:3,searchHint:2.5,description:1},sT=Number(process.env.SEARCH_EXTRA_TOOLS_DISPLAY_MIN_SCORE??`0.10`),cT=2,lT=/[\u4e00-\u9fff\u3400-\u4dbf]/,uT=null,dT=null})),pT=i({buildToolDiscoveryAttachment:()=>vT,clearSearchExtraToolsPrefetchResults:()=>_T,collectSearchExtraToolsPrefetch:()=>bT,getSearchExtraToolsPrefetchSnapshot:()=>gT,getTurnZeroSearchExtraToolsPrefetch:()=>MCe,startSearchExtraToolsPrefetch:()=>yT,subscribeToSearchExtraToolsPrefetch:()=>hT});function mT(){for(let e of TT)e()}function hT(e){return TT.add(e),()=>{TT.delete(e)}}function gT(){return wT}function _T(){wT=[],mT()}function ACe(e,t){if(e.add(t),e.size>xT){let t=e.size-ST,n=e.values();for(let r=0;r<t;r++){let t=n.next();if(t.done)break;e.delete(t.value)}}}function jCe(e){return{name:e.name,description:e.description,searchHint:e.searchHint,score:e.score,isMcp:e.isMcp,isDeferred:e.isDeferred,inputSchema:e.inputSchema}}function vT(e,t,n,r,i){return{type:`tool_discovery`,tools:e,trigger:t,queryText:n.slice(0,200),durationMs:r,indexSize:i}}async function yT(e,t){let n=Date.now(),r=Ww(null,t);if(!r.trim())return[];try{let t=await aT(e),i=iT(r,t,3).filter(e=>!CT.has(e.name));if(i.length===0)return[];for(let e of i)ACe(CT,e.name);let a=Date.now()-n;K(`[search-extra-tools] prefetch found ${i.length} tools in ${a}ms`);let o=i.map(jCe);return wT=o,mT(),[vT(o,`assistant_turn`,r,a,t.length)]}catch(e){return K(`[search-extra-tools] prefetch error: ${e}`),[]}}async function MCe(e,t){return null}async function bT(e){try{return await e}catch{return[]}}var xT,ST,CT,wT,TT,ET=n((()=>{fT(),q(),nT(),xT=500,ST=400,CT=new Set,wT=[],TT=new Set}));function DT(e){kT=e}function OT(){return kT}function NCe(e){AT=e}function PCe(){return AT}function FCe(e){jT=e}function ICe(){return jT}var kT,AT,jT,MT=n((()=>{kT=!1,AT=!1,jT=!1}));function NT(e,t=RT){return new zT(e,t)}function PT(e){return Object.fromEntries(e.entries())}function FT(e){return Array.from(e.keys())}function IT(e){let t=NT(e.max,e.maxSize);return t.load(e.dump()),t}function LT(e,t){let n=IT(e);for(let[e,r]of t.entries()){let t=n.get(e);(!t||r.timestamp>t.timestamp)&&n.set(e,r)}return n}var RT,zT,BT=n((()=>{nt(),b(),RT=25*1024*1024,zT=class{constructor(e,t){x(this,`cache`,void 0),this.cache=new Vt({max:e,maxSize:t,sizeCalculation:e=>{let t=e.content,n=typeof t==`string`?t:t==null?``:typeof t==`object`?JSON.stringify(t):String(t);return Math.max(1,Buffer.byteLength(n,`utf8`))}})}get(e){return this.cache.get(_c(e))}set(e,t){return this.cache.set(_c(e),t),this}has(e){return this.cache.has(_c(e))}delete(e){return this.cache.delete(_c(e))}clear(){this.cache.clear()}get size(){return this.cache.size}get max(){return this.cache.max}get maxSize(){return this.cache.maxSize}get calculatedSize(){return this.cache.calculatedSize}keys(){return this.cache.keys()}entries(){return this.cache.entries()}dump(){return this.cache.dump()}load(e){this.cache.load(e)}}}));function VT(e=UT){let t=new AbortController;return mce(e,t.signal),t}function LCe(e){let t=this.deref();e.deref()?.abort(t?.signal.reason)}function RCe(e){let t=this.deref(),n=e.deref();t&&n&&t.signal.removeEventListener(`abort`,n)}function HT(e,t){let n=VT(t);if(e.signal.aborted)return n.abort(e.signal.reason),n;let r=new WeakRef(n),i=new WeakRef(e),a=LCe.bind(i,r);return e.signal.addEventListener(`abort`,a,{once:!0}),n.signal.addEventListener(`abort`,RCe.bind(i,new WeakRef(a)),{once:!0}),n}var UT,WT=n((()=>{UT=50}));function GT(){return!1}function zCe(e){return e.some(e=>{if(e.type!==`user`)return!1;let t=e.message.content;return Array.isArray(t)?t.some(e=>e.type===`text`&&e.text.includes(`<fork-boilerplate>`)):!1})}function BCe(e,t){let n={...t,uuid:zc(),message:{...t.message,content:[...Array.isArray(t.message.content)?t.message.content:[]]}},r=(Array.isArray(t.message.content)?t.message.content:[]).filter(e=>e.type===`tool_use`);return r.length===0?(K(`No tool_use blocks found in assistant message for fork directive: ${e.slice(0,50)}...`,{level:`error`}),[Q({content:[{type:`text`,text:KT(e)}]})]):[n,Q({content:[...r.map(e=>({type:`tool_result`,tool_use_id:e.id,content:[{type:`text`,text:YT}]})),{type:`text`,text:KT(e)}]})]}function KT(e){return`<${Sa}>
|
|
733
733
|
STOP. READ THIS FIRST.
|
|
734
734
|
|
|
735
735
|
You are a forked worker process. You are NOT the main agent.
|
|
@@ -811,7 +811,7 @@ Usage notes:
|
|
|
811
811
|
... (truncated because it exceeds 2k characters. If you need more information, run "git status" using BashTool)`:i;return Sn(`info`,`git_status_completed`,{duration_ms:Date.now()-e,truncated:i.length>lO}),[`This is the git status at the start of the conversation. Note that this status is a snapshot in time, and will not update during the conversation.`,`Current branch: ${n}`,`Main branch (you will usually use this for PRs): ${r}`,...o?[`Git user: ${o}`]:[],`Status:\n${s||`(clean)`}`,`Recent commits:\n${a}`].join(`
|
|
812
812
|
|
|
813
813
|
`)}catch(t){return Sn(`error`,`git_status_failed`,{duration_ms:Date.now()-e}),Y(t),null}}),dO=u(async()=>{let e=Date.now();Sn(`info`,`system_context_started`);let t=h(process.env.WORKMATE_REMOTE)||!sO()?null:await uO();return Sn(`info`,`system_context_completed`,{duration_ms:Date.now()-e,has_git_status:t!==null,has_injection:!1}),{...t&&{gitStatus:t}}}),fO=u(async()=>{let e=Date.now();Sn(`info`,`user_context_started`);let t=h(process.env.WORKMATE_DISABLE_AGENTS_MDS)||v()&&$r().length===0,n=t?null:oSe(Jxe(await BC()));return Nne(n||null),Sn(`info`,`user_context_completed`,{duration_ms:Date.now()-e,agentsmd_length:n?.length??0,agentsmd_disabled:!!t}),{...n&&{agentsMd:n},currentDate:`Today's date is ${iO()}.`}})}));function Gwe(){return Sf()}function mO({mainThreadAgentDefinition:e,toolUseContext:t,customSystemPrompt:n,defaultSystemPrompt:r,appendSystemPrompt:i,overrideSystemPrompt:a}){if(a)return $g([a]);let o=e?q9(e)?e.getSystemPrompt({toolUseContext:{options:t.options}}):e.getSystemPrompt():void 0;return e?.memory&&e.memory,o&&Gwe()?$g([...r,`\n# Custom Agent Instructions\n${o}`,...i?[i]:[]]):$g([...o?[o]:n?[n]:r,...i?[i]:[]])}var hO=n((()=>{Ra(),$9(),Pw(),Bf()})),Kwe=i({_resetCacheWarningStateForTest:()=>qwe,calculateCacheHitRate:()=>vO,createCacheWarningMessage:()=>bO,getCacheThreshold:()=>gO,isCacheWarningEnabled:()=>_O,shouldShowCacheWarning:()=>yO});function gO(){return ar().cacheThreshold??CO}function _O(){return ar().cacheWarningEnabled??!0}function vO(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 yO(e,t,n){let r=vO(e);if(r===null)return null;let i=xO.get(t);if(!i){if(i={lastHitRate:null,lastTimestamp:null},xO.size>=SO){let e=xO.keys().next().value;e!==void 0&&xO.delete(e)}xO.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 bO(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:zc(),isMeta:!1}}function qwe(){xO.clear()}var xO,SO,CO,wO=n((()=>{Ln(),xO=new Map,SO=50,CO=80}));async function TO(e,t){try{let n=await S3(e,t);if(n!==null)return n;K(`countTokensWithFallback: API returned null, trying haiku fallback (${t.length} tools)`)}catch(e){K(`countTokensWithFallback: API failed: ${G(e)}`),Y(e)}try{let n=await Zet(e,t);return n===null&&K(`countTokensWithFallback: haiku fallback also returned null (${t.length} tools)`),n}catch(e){return K(`countTokensWithFallback: haiku fallback failed: ${G(e)}`),Y(e),null}}async function EO(e,t,n,r){let i=await TO([],await Promise.all(e.map(i=>H7(i,{getToolPermissionContext:t,tools:e,agents:n?.activeAgents??[],model:r}))));if(i===null||i===0){let t=e.map(e=>e.name).join(`, `);K(`countToolDefinitionTokens returned ${i} for ${e.length} tools: ${t.slice(0,100)}${t.length>100?`...`:``}`)}return i??0}function Jwe(e){let t=e.match(/^#+\s+(.+)$/m);if(t)return t[1].trim();let n=e.split(`
|
|
814
|
-
`).find(e=>e.trim().length>0)??``;return n.length>40?`${n.slice(0,40)}…`:n}async function Ywe(e){let t=await dO(),n=[...e.filter(e=>e.length>0&&e!==`__SYSTEM_PROMPT_DYNAMIC_BOUNDARY__`).map(e=>({name:Jwe(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})=>TO([{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 Xwe(){if(h(process.env.WORKMATE_SIMPLE))return{memoryFileDetails:[],agentsMdTokens:0};let e=Jxe(await BC()),t=[],n=0;if(e.length<1)return{memoryFileDetails:[],agentsMdTokens:0};let r=await Promise.all(e.map(async e=>({file:e,tokens:await TO([{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{agentsMdTokens:n,memoryFileDetails:t}}async function Zwe(e,t,n,r,i){let a=e.filter(e=>!e.isMcp);if(a.length<1)return{builtInToolTokens:0,deferredBuiltinDetails:[],deferredBuiltinTokens:0,systemToolDetails:[]};let o=[],{isSearchExtraToolsEnabled:s}=await import(`./searchExtraTools-B4N1bpy0.js`),{isDeferredTool:c}=await import(`./prompt-D0TFER0A.js`),l=await s(r??``,e,t,n?.activeAgents??[],`analyzeBuiltIn`),u=a.filter(e=>!c(e)),d=a.filter(e=>c(e)),f=u.length>0?await EO(u,t,n,r):0,p=[],m=0,h=0;if(d.length>0&&l){let e=new Set;if(i){let t=new Set(d.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(d.map(e=>EO([e],t,n,r)));for(let[t,n]of d.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(d.length>0)return{builtInToolTokens:f+await EO(d,t,n,r),deferredBuiltinDetails:[],deferredBuiltinTokens:0,systemToolDetails:o};return{builtInToolTokens:f+m,deferredBuiltinDetails:p,deferredBuiltinTokens:h-m,systemToolDetails:o}}function DO(e){return gs(e,is)}async function Qwe(e,t,n){let r=await dge(U()),i=DO(e);return i?{slashCommandTokens:await EO([i],t,n),commandInfo:{totalCommands:r.totalCommands,includedCommands:r.includedCommands}}:{slashCommandTokens:0,commandInfo:{totalCommands:0,includedCommands:0}}}async function $we(e,t,n){try{let r=await fge(U()),i=DO(e);if(!i)return{skillTokens:0,skillInfo:{totalSkills:0,includedSkills:0,skillFrontmatter:[]}};let a=await EO([i],t,n),o=r.map(e=>({name:G3(e),source:e.type===`prompt`?e.source:`plugin`,tokens:ott(e)}));return{skillTokens:a,skillInfo:{totalSkills:r.length,includedSkills:r.length,skillFrontmatter:o}}}catch(e){return Y(Ei(e)),{skillTokens:0,skillInfo:{totalSkills:0,includedSkills:0,skillFrontmatter:[]}}}}async function OO(e,t,n,r,i){let a=e.filter(e=>e.isMcp),o=[],s=await EO(a,t,n,r),c=Math.max(0,(s||0)-500),l=await Promise.all(a.map(async r=>C3(W({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-B4N1bpy0.js`),{isDeferredTool:p}=await import(`./prompt-D0TFER0A.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 eTe(e){let t=e.activeAgents.filter(e=>e.source!==`built-in`),n=[],r=0,i=await Promise.all(t.map(e=>TO([{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 tTe(e,t){let n=Array.isArray(e.message.content)?e.message.content:[];for(let e of n){let n=C3(W(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 nTe(e,t,n){if(typeof e.message.content==`string`){let n=C3(e.message.content);t.userMessageTokens+=n;return}for(let r of e.message.content??[]){let e=C3(W(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 rTe(e,t){let n=C3(W(e.attachment));t.attachmentTokens+=n;let r=e.attachment.type||`unknown`;t.attachmentsByType.set(r,(t.attachmentsByType.get(r)||0)+n)}async function iTe(e){let t=await $D(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`?tTe(e,n):e.type===`user`?nTe(e,n,r):e.type===`attachment`&&rTe(e,n);return n.totalTokens=await TO(d3(t.messages).map(e=>e.type===`assistant`?{role:`assistant`,content:e.message.content}:e.message),[])??0,n}async function aTe(t,n,r,i,a,o,s,c,l){let u=Ao({permissionMode:(await r()).mode,mainLoopModel:n}),d=wo(u,ii()),f=await I7(i,u),p=mO({mainThreadAgentDefinition:c,toolUseContext:s??{options:{}},customSystemPrompt:s?.options.customSystemPrompt,defaultSystemPrompt:f,appendSystemPrompt:s?.options.appendSystemPrompt}),[{systemPromptTokens:m,systemPromptSections:h},{agentsMdTokens:g,memoryFileDetails:_},{builtInToolTokens:v,deferredBuiltinDetails:y,deferredBuiltinTokens:b,systemToolDetails:x},{mcpToolTokens:S,mcpToolDetails:C,deferredToolTokens:w},{agentTokens:T,agentDetails:E},{slashCommandTokens:D,commandInfo:O},k]=await Promise.all([Ywe(p),Xwe(),Zwe(i,r,a,u,t),OO(i,r,a,u,t),eTe(a),Qwe(i,r,a),iTe(t)]),A=(await $we(i,r,a)).skillInfo,ee=A.skillFrontmatter.reduce((e,t)=>e+t.tokens,0),te=k.totalTokens,ne=dV(),re=ne?cV(n)-pV:void 0,ie=[];m>0&&ie.push({name:`System prompt`,tokens:m,color:`promptBorder`});let ae=v-ee;ae>0&&ie.push({name:`System tools`,tokens:ae,color:`inactive`}),S>0&&ie.push({name:`MCP tools`,tokens:S,color:`cyan_FOR_SUBAGENTS_ONLY`}),w>0&&ie.push({name:`MCP tools (deferred)`,tokens:w,color:`inactive`,isDeferred:!0}),b>0&&ie.push({name:`System tools (deferred)`,tokens:b,color:`inactive`,isDeferred:!0}),T>0&&ie.push({name:`Custom agents`,tokens:T,color:`permission`}),g>0&&ie.push({name:`Memory files`,tokens:g,color:`claude`}),ee>0&&ie.push({name:`Skills`,tokens:ee,color:`warning`}),te!==null&&te>0&&ie.push({name:`Messages`,tokens:te,color:`purple_FOR_SUBAGENTS_ONLY`});let j=ie.reduce((e,t)=>e+(t.isDeferred?0:t.tokens),0),oe=0;ne&&re!==void 0?(oe=d-re,ie.push({name:kO,tokens:oe,color:`inactive`})):ne||(oe=gV,ie.push({name:AO,tokens:oe,color:`inactive`}));let se=Math.max(0,d-j-oe);ie.push({name:`Free space`,tokens:se,color:`promptBorder`});let ce=j,M=kD(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=ie.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===kO||e.name===AO),_e=pe.filter(e=>e.name!==kO&&e.name!==AO&&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=ie.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 P=[];for(let e=0;e<de;e++)P.push(he.slice(e*ue,(e+1)*ue));let xe=new Map;for(let[e,t]of k.toolCallsByType.entries()){let n=xe.get(e)||{callTokens:0,resultTokens:0};xe.set(e,{...n,callTokens:t})}for(let[e,t]of k.toolResultsByType.entries()){let n=xe.get(e)||{callTokens:0,resultTokens:0};xe.set(e,{...n,resultTokens:t})}let Se=Array.from(xe.entries()).map(([e,{callTokens:t,resultTokens:n}])=>({name:e,callTokens:t,resultTokens:n})).sort((e,t)=>t.callTokens+t.resultTokens-(e.callTokens+e.resultTokens)),Ce=Array.from(k.attachmentsByType.entries()).map(([e,t])=>({name:e,tokens:t})).sort((e,t)=>t.tokens-e.tokens),we={toolCallTokens:k.toolCallTokens,toolResultTokens:k.toolResultTokens,attachmentTokens:k.attachmentTokens,assistantMessageTokens:k.assistantMessageTokens,userMessageTokens:k.userMessageTokens,toolCallsByType:Se,attachmentsByType:Ce};return{categories:ie,totalTokens:N,maxTokens:d,rawMaxTokens:d,percentage:Math.round(N/d*100),gridRows:P,model:u,memoryFiles:_,mcpTools:C,deferredBuiltinTools:void 0,systemTools:void 0,systemPromptSections:void 0,agents:E,slashCommands:D>0?{totalCommands:O.totalCommands,includedCommands:O.includedCommands,tokens:D}:void 0,skills:ee>0?{totalSkills:A.totalSkills,includedSkills:A.includedSkills,tokens:ee,skillFrontmatter:A.skillFrontmatter}:void 0,autoCompactThreshold:re,isAutoCompactEnabled:ne,messageBreakdown:we,apiUsage:M,...(()=>{if(!M)return{};let{calculateCacheHitRate:t,getCacheThreshold:n}=(wO(),e(Kwe)),r=t(M);return r===null?{}:{cacheHitRate:r,cacheThreshold:n()}})()}}var kO,AO,jO=n((()=>{V7(),rO(),H(),t6(),pO(),yV(),O3(),H3(),Ps(),zs(),sy(),W7(),UC(),bo(),fi(),q(),g(),vi(),Ta(),v3(),To(),zi(),hO(),ND(),kO=`Autocompact buffer`,AO=`Compact buffer`}));function MO(e){let t=NO.get(e);if(t)return t;let n=lte(e);return NO.set(e,n),n}var NO,PO=n((()=>{At(),NO=new WeakMap}));function FO(e){if(!e.startsWith(`auto:`))return null;let t=e.slice(5),n=parseInt(t,10);return isNaN(n)?(K(`Invalid ENABLE_SEARCH_EXTRA_TOOLS value "${e}": expected auto:N where N is a number.`),null):Math.max(0,Math.min(100,n))}function oTe(e){return e?e===`auto`||e.startsWith(`auto:`):!1}function IO(){let e=process.env.ENABLE_SEARCH_EXTRA_TOOLS;if(!e||e===`auto`)return qO;let t=FO(e);return t===null?qO:t}function LO(e){let t=wo(e,Lg(e)),n=IO()/100;return Math.floor(t*n)}function RO(e){return Math.floor(LO(e)*JO)}function zO(){if(h(process.env.WORKMATE_DISABLE_EXPERIMENTAL_BETAS))return`standard`;let e=process.env.ENABLE_SEARCH_EXTRA_TOOLS,t=e?FO(e):null;return t===0?`tst`:t===100?`standard`:oTe(e)?`tst-auto`:h(e)?`tst`:f(process.env.ENABLE_SEARCH_EXTRA_TOOLS)?`standard`:`tst`}function BO(){let e=zO();return e===`standard`?(XO||(XO=!0,K(`[SearchExtraTools:optimistic] mode=${e}, ENABLE_SEARCH_EXTRA_TOOLS=${process.env.ENABLE_SEARCH_EXTRA_TOOLS}, result=false`)),!1):(XO||(XO=!0,K(`[SearchExtraTools:optimistic] mode=${e}, ENABLE_SEARCH_EXTRA_TOOLS=${process.env.ENABLE_SEARCH_EXTRA_TOOLS}, result=true`)),!0)}function VO(e){return e.some(e=>fs(e,ws))}async function sTe(e,t,n){let r=e.filter(e=>bs(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?W(r.inputJSONSchema):r.inputSchema?W(MO(r.inputSchema)):``;return r.name.length+i.length+a.length}))).reduce((e,t)=>e+t,0)}async function HO(e,t,n,r,i){Bt(t,e=>e.isMcp);function a(e,t,n,r){process.env.USER_TYPE,{...r}}if(!VO(t))return K(`Tool search disabled: SearchExtraToolsTool is not available (may have been disallowed via disallowedTools).`),a(!1,`standard`,`mcp_search_unavailable`),!1;let o=zO();switch(o){case`tst`:return a(!0,o,`tst_enabled`),!0;case`tst-auto`:{let{enabled:s,debugDescription:c,metrics:l}=await fTe(t,n,r,e);return s?(K(`Auto tool search enabled: ${c}`+(i?` [source: ${i}]`:``)),a(!0,o,`auto_above_threshold`,l),!0):(K(`Auto tool search disabled: ${c}`+(i?` [source: ${i}]`:``)),a(!1,o,`auto_below_threshold`,l),!1)}case`standard`:return a(!1,o,`standard_mode`),!1}}function UO(e){return typeof e==`object`&&!!e&&`type`in e&&e.type===`tool_reference`}function cTe(e){return UO(e)&&`tool_name`in e&&typeof e.tool_name==`string`}function lTe(e){return typeof e==`object`&&!!e&&`type`in e&&e.type===`tool_result`&&`content`in e&&Array.isArray(e.content)}function uTe(e){return typeof e==`object`&&!!e&&`type`in e&&e.type===`tool_result`&&`content`in e&&typeof e.content==`string`}function dTe(e){let t=ZO.exec(e);return t?.[1]?t[1].split(`,`).map(e=>e.trim()).filter(Boolean):[]}function WO(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(lTe(n))for(let e of n.content)cTe(e)&&t.add(e.tool_name);if(uTe(n)){let e=dTe(n.content);for(let n of e)t.add(n)}}}return t.size>0&&K(`Dynamic tool loading: found ${t.size} discovered tools in message history`+(n>0?` (${n} carried from compact boundary)`:``)),t}function GO(){return!1}function KO(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(bs),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:(u.length,d.length,r.size,t.length,n?.callSite,n?.querySource,[...o].sort().join(`,`),{addedNames:u.map(e=>e.name).sort(),addedLines:u.map(Kae).sort(),removedNames:d.sort()})}async function fTe(e,t,n,r){let i=await YO(e,t,n,r);if(i!==null){let e=LO(r);return{enabled:i>=e,debugDescription:`${i} tokens (threshold: ${e}, ${IO()}% of context)`,metrics:{deferredToolTokens:i,threshold:e}}}let a=await sTe(e,t,n),o=RO(r);return{enabled:a>=o,debugDescription:`${a} chars (threshold: ${o}, ${IO()}% of context) (char fallback)`,metrics:{deferredToolDescriptionChars:a,charThreshold:o}}}var qO,JO,YO,XO,ZO,QO=n((()=>{d(),Ra(),Ps(),As(),jO(),tt(),Hg(),bo(),q(),g(),zi(),PO(),qO=10,JO=2.5,YO=u(async(e,t,n,r)=>{let i=e.filter(e=>bs(e));if(i.length===0)return 0;try{let e=await EO(i,t,{activeAgents:n,allAgents:n},r);return e===0?null:Math.max(0,e-500)}catch{return null}},e=>e.filter(e=>bs(e)).map(e=>e.name).join(`,`)),XO=!1,ZO=/^Found \d+ deferred tool\(s\): (.+)\.$/m}));function pTe(e){return e.map(e=>e.name).sort().join(`,`)}function mTe(e){let t=pTe(e);ak!==t&&(K(`SearchExtraToolsTool: cache invalidated - deferred tools changed`),ok.cache.clear?.(),ak=t)}function hTe(){ok.cache.clear?.(),ak=null}function $O(e,t,n,r,i){return{data:{matches:e,query:t,total_deferred_tools:n,...r&&r.length>0?{pending_mcp_servers:r}:{},...i&&i.length>0?{already_loaded:i}:{}}}}function ek(e){if(e.startsWith(`mcp__`)){let t=e.replace(/^mcp__/,``).toLowerCase();return{parts:t.split(`__`).flatMap(e=>e.split(`_`)).filter(Boolean),full:t.replace(/__/g,` `).replace(/_/g,` `),isMcp:!0}}let t=e.replace(/([a-z])([A-Z])/g,`$1 $2`).replace(/_/g,` `).toLowerCase().split(/\s+/).filter(Boolean);return{parts:t,full:t.join(` `),isMcp:!1}}function gTe(e){let t=new Map;for(let n of e)t.has(n)||t.set(n,RegExp(`\\b${Xa(n)}\\b`));return t}async function _Te(e,t,n,r){let i=e.toLowerCase().trim(),a=t.find(e=>e.name.toLowerCase()===i)??n.find(e=>e.name.toLowerCase()===i);if(a)return[a.name];if(i.startsWith(`mcp__`)&&i.length>5){let e=t.filter(e=>e.name.toLowerCase().startsWith(i)).slice(0,r).map(e=>e.name);if(e.length>0)return e}let o=i.split(/\s+/).filter(e=>e.length>0),s=[],c=[];for(let e of o)e.startsWith(`+`)&&e.length>1?s.push(e.slice(1)):c.push(e);let l=s.length>0?[...s,...c]:o,u=gTe(l),d=t;return s.length>0&&(d=(await Promise.all(t.map(async e=>{let t=ek(e.name),r=(await ok(e.name,n)).toLowerCase(),i=e.searchHint?.toLowerCase()??``;return s.every(e=>{let n=u.get(e);return t.parts.includes(e)||t.parts.some(t=>t.includes(e))||n.test(r)||i&&n.test(i)})?e:null}))).filter(e=>e!==null)),(await Promise.all(d.map(async e=>{let t=ek(e.name),r=(await ok(e.name,n)).toLowerCase(),i=e.searchHint?.toLowerCase()??``,a=0;for(let e of l){let n=u.get(e);t.parts.includes(e)?a+=t.isMcp?12:10:t.parts.some(t=>t.includes(e))&&(a+=t.isMcp?6:5),t.full.includes(e)&&a===0&&(a+=3),i&&n.test(i)&&(a+=4),n.test(r)&&(a+=2)}return{name:e.name,score:a}}))).filter(e=>e.score>0).sort((e,t)=>t.score-e.score).slice(0,r).map(e=>e.name)}var tk,nk,rk,ik,ak,ok,sk,ck=n((()=>{d(),At(),Ra(),Ps(),q(),rt(),Qa(),QO(),As(),fT(),tk=Number(process.env.SEARCH_EXTRA_TOOLS_WEIGHT_KEYWORD??`0.4`),nk=Number(process.env.SEARCH_EXTRA_TOOLS_WEIGHT_TFIDF??`0.6`),rk=z(()=>V({query:B().describe(`Query to find deferred tools. Use "select:<tool_name>" for direct selection, or keywords to search.`),max_results:R().optional().default(5).describe(`Maximum number of results to return (default: 5)`)})),ik=z(()=>V({matches:I(B()),query:B(),total_deferred_tools:R(),pending_mcp_servers:I(B()).optional(),already_loaded:I(B()).optional()})),ak=null,ok=u(async(e,t)=>{let n=gs(t,e);return n?n.prompt({getToolPermissionContext:async()=>({mode:`default`,additionalWorkingDirectories:new Map,alwaysAllowRules:{},alwaysDenyRules:{},alwaysAskRules:{},isBypassPermissionsModeAvailable:!1}),tools:t,agents:[]}):``},e=>e),sk=Ts({isEnabled(){return BO()},isConcurrencySafe(){return!0},isReadOnly(){return!0},name:ws,maxResultSizeChars:1e5,async description(){return Iae()},async prompt(){return Iae()},get inputSchema(){return rk()},get outputSchema(){return ik()},async call(e,{options:{tools:t},getAppState:n}){let{query:r,max_results:i=5}=e,a=t.filter(bs);mTe(a);function o(){let e=n().mcp.clients.filter(e=>e.type===`pending`);return e.length>0?e.map(e=>e.name):void 0}function s(e,t){e.length,a.length,e.length}let c=r.match(/^select:(.+)$/i);if(c){let e=c[1].split(`,`).map(e=>e.trim()).filter(Boolean),n=[],i=[],l=[];for(let r of e){let e=gs(a,r),o=e??gs(t,r);o?n.includes(o.name)||(n.push(o.name),e||i.push(o.name)):l.push(r)}if(n.length===0){K(`SearchExtraToolsTool: select failed — none found: ${l.join(`, `)}`),s([],`select`);let e=o();return $O([],r,a.length,e)}return l.length>0?K(`SearchExtraToolsTool: partial select — found: ${n.join(`, `)}, missing: ${l.join(`, `)}`):K(`SearchExtraToolsTool: selected ${n.join(`, `)}`),s(n,`select`),$O(n,r,a.length,void 0,i.length>0?i:void 0)}let l=r.match(/^discover:(.+)$/i);if(l){let e=iT(l[1].trim(),await aT(a),i),t=e.map(e=>{let t=`**${e.name}** (score: ${e.score.toFixed(2)})\n${e.description}`;return e.inputSchema&&(t+=`\nSchema: ${JSON.stringify(e.inputSchema)}`),t});return t.length>0&&`${t.length}${t.join(`
|
|
814
|
+
`).find(e=>e.trim().length>0)??``;return n.length>40?`${n.slice(0,40)}…`:n}async function Ywe(e){let t=await dO(),n=[...e.filter(e=>e.length>0&&e!==`__SYSTEM_PROMPT_DYNAMIC_BOUNDARY__`).map(e=>({name:Jwe(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})=>TO([{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 Xwe(){if(h(process.env.WORKMATE_SIMPLE))return{memoryFileDetails:[],agentsMdTokens:0};let e=Jxe(await BC()),t=[],n=0;if(e.length<1)return{memoryFileDetails:[],agentsMdTokens:0};let r=await Promise.all(e.map(async e=>({file:e,tokens:await TO([{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{agentsMdTokens:n,memoryFileDetails:t}}async function Zwe(e,t,n,r,i){let a=e.filter(e=>!e.isMcp);if(a.length<1)return{builtInToolTokens:0,deferredBuiltinDetails:[],deferredBuiltinTokens:0,systemToolDetails:[]};let o=[],{isSearchExtraToolsEnabled:s}=await import(`./searchExtraTools-CV_fkuD6.js`),{isDeferredTool:c}=await import(`./prompt-Cm8SKZXY.js`),l=await s(r??``,e,t,n?.activeAgents??[],`analyzeBuiltIn`),u=a.filter(e=>!c(e)),d=a.filter(e=>c(e)),f=u.length>0?await EO(u,t,n,r):0,p=[],m=0,h=0;if(d.length>0&&l){let e=new Set;if(i){let t=new Set(d.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(d.map(e=>EO([e],t,n,r)));for(let[t,n]of d.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(d.length>0)return{builtInToolTokens:f+await EO(d,t,n,r),deferredBuiltinDetails:[],deferredBuiltinTokens:0,systemToolDetails:o};return{builtInToolTokens:f+m,deferredBuiltinDetails:p,deferredBuiltinTokens:h-m,systemToolDetails:o}}function DO(e){return gs(e,is)}async function Qwe(e,t,n){let r=await dge(U()),i=DO(e);return i?{slashCommandTokens:await EO([i],t,n),commandInfo:{totalCommands:r.totalCommands,includedCommands:r.includedCommands}}:{slashCommandTokens:0,commandInfo:{totalCommands:0,includedCommands:0}}}async function $we(e,t,n){try{let r=await fge(U()),i=DO(e);if(!i)return{skillTokens:0,skillInfo:{totalSkills:0,includedSkills:0,skillFrontmatter:[]}};let a=await EO([i],t,n),o=r.map(e=>({name:G3(e),source:e.type===`prompt`?e.source:`plugin`,tokens:ott(e)}));return{skillTokens:a,skillInfo:{totalSkills:r.length,includedSkills:r.length,skillFrontmatter:o}}}catch(e){return Y(Ei(e)),{skillTokens:0,skillInfo:{totalSkills:0,includedSkills:0,skillFrontmatter:[]}}}}async function OO(e,t,n,r,i){let a=e.filter(e=>e.isMcp),o=[],s=await EO(a,t,n,r),c=Math.max(0,(s||0)-500),l=await Promise.all(a.map(async r=>C3(W({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-CV_fkuD6.js`),{isDeferredTool:p}=await import(`./prompt-Cm8SKZXY.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 eTe(e){let t=e.activeAgents.filter(e=>e.source!==`built-in`),n=[],r=0,i=await Promise.all(t.map(e=>TO([{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 tTe(e,t){let n=Array.isArray(e.message.content)?e.message.content:[];for(let e of n){let n=C3(W(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 nTe(e,t,n){if(typeof e.message.content==`string`){let n=C3(e.message.content);t.userMessageTokens+=n;return}for(let r of e.message.content??[]){let e=C3(W(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 rTe(e,t){let n=C3(W(e.attachment));t.attachmentTokens+=n;let r=e.attachment.type||`unknown`;t.attachmentsByType.set(r,(t.attachmentsByType.get(r)||0)+n)}async function iTe(e){let t=await $D(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`?tTe(e,n):e.type===`user`?nTe(e,n,r):e.type===`attachment`&&rTe(e,n);return n.totalTokens=await TO(d3(t.messages).map(e=>e.type===`assistant`?{role:`assistant`,content:e.message.content}:e.message),[])??0,n}async function aTe(t,n,r,i,a,o,s,c,l){let u=Ao({permissionMode:(await r()).mode,mainLoopModel:n}),d=wo(u,ii()),f=await I7(i,u),p=mO({mainThreadAgentDefinition:c,toolUseContext:s??{options:{}},customSystemPrompt:s?.options.customSystemPrompt,defaultSystemPrompt:f,appendSystemPrompt:s?.options.appendSystemPrompt}),[{systemPromptTokens:m,systemPromptSections:h},{agentsMdTokens:g,memoryFileDetails:_},{builtInToolTokens:v,deferredBuiltinDetails:y,deferredBuiltinTokens:b,systemToolDetails:x},{mcpToolTokens:S,mcpToolDetails:C,deferredToolTokens:w},{agentTokens:T,agentDetails:E},{slashCommandTokens:D,commandInfo:O},k]=await Promise.all([Ywe(p),Xwe(),Zwe(i,r,a,u,t),OO(i,r,a,u,t),eTe(a),Qwe(i,r,a),iTe(t)]),A=(await $we(i,r,a)).skillInfo,ee=A.skillFrontmatter.reduce((e,t)=>e+t.tokens,0),te=k.totalTokens,ne=dV(),re=ne?cV(n)-pV:void 0,ie=[];m>0&&ie.push({name:`System prompt`,tokens:m,color:`promptBorder`});let ae=v-ee;ae>0&&ie.push({name:`System tools`,tokens:ae,color:`inactive`}),S>0&&ie.push({name:`MCP tools`,tokens:S,color:`cyan_FOR_SUBAGENTS_ONLY`}),w>0&&ie.push({name:`MCP tools (deferred)`,tokens:w,color:`inactive`,isDeferred:!0}),b>0&&ie.push({name:`System tools (deferred)`,tokens:b,color:`inactive`,isDeferred:!0}),T>0&&ie.push({name:`Custom agents`,tokens:T,color:`permission`}),g>0&&ie.push({name:`Memory files`,tokens:g,color:`claude`}),ee>0&&ie.push({name:`Skills`,tokens:ee,color:`warning`}),te!==null&&te>0&&ie.push({name:`Messages`,tokens:te,color:`purple_FOR_SUBAGENTS_ONLY`});let j=ie.reduce((e,t)=>e+(t.isDeferred?0:t.tokens),0),oe=0;ne&&re!==void 0?(oe=d-re,ie.push({name:kO,tokens:oe,color:`inactive`})):ne||(oe=gV,ie.push({name:AO,tokens:oe,color:`inactive`}));let se=Math.max(0,d-j-oe);ie.push({name:`Free space`,tokens:se,color:`promptBorder`});let ce=j,M=kD(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=ie.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===kO||e.name===AO),_e=pe.filter(e=>e.name!==kO&&e.name!==AO&&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=ie.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 P=[];for(let e=0;e<de;e++)P.push(he.slice(e*ue,(e+1)*ue));let xe=new Map;for(let[e,t]of k.toolCallsByType.entries()){let n=xe.get(e)||{callTokens:0,resultTokens:0};xe.set(e,{...n,callTokens:t})}for(let[e,t]of k.toolResultsByType.entries()){let n=xe.get(e)||{callTokens:0,resultTokens:0};xe.set(e,{...n,resultTokens:t})}let Se=Array.from(xe.entries()).map(([e,{callTokens:t,resultTokens:n}])=>({name:e,callTokens:t,resultTokens:n})).sort((e,t)=>t.callTokens+t.resultTokens-(e.callTokens+e.resultTokens)),Ce=Array.from(k.attachmentsByType.entries()).map(([e,t])=>({name:e,tokens:t})).sort((e,t)=>t.tokens-e.tokens),we={toolCallTokens:k.toolCallTokens,toolResultTokens:k.toolResultTokens,attachmentTokens:k.attachmentTokens,assistantMessageTokens:k.assistantMessageTokens,userMessageTokens:k.userMessageTokens,toolCallsByType:Se,attachmentsByType:Ce};return{categories:ie,totalTokens:N,maxTokens:d,rawMaxTokens:d,percentage:Math.round(N/d*100),gridRows:P,model:u,memoryFiles:_,mcpTools:C,deferredBuiltinTools:void 0,systemTools:void 0,systemPromptSections:void 0,agents:E,slashCommands:D>0?{totalCommands:O.totalCommands,includedCommands:O.includedCommands,tokens:D}:void 0,skills:ee>0?{totalSkills:A.totalSkills,includedSkills:A.includedSkills,tokens:ee,skillFrontmatter:A.skillFrontmatter}:void 0,autoCompactThreshold:re,isAutoCompactEnabled:ne,messageBreakdown:we,apiUsage:M,...(()=>{if(!M)return{};let{calculateCacheHitRate:t,getCacheThreshold:n}=(wO(),e(Kwe)),r=t(M);return r===null?{}:{cacheHitRate:r,cacheThreshold:n()}})()}}var kO,AO,jO=n((()=>{V7(),rO(),H(),t6(),pO(),yV(),O3(),H3(),Ps(),zs(),sy(),W7(),UC(),bo(),fi(),q(),g(),vi(),Ta(),v3(),To(),zi(),hO(),ND(),kO=`Autocompact buffer`,AO=`Compact buffer`}));function MO(e){let t=NO.get(e);if(t)return t;let n=lte(e);return NO.set(e,n),n}var NO,PO=n((()=>{At(),NO=new WeakMap}));function FO(e){if(!e.startsWith(`auto:`))return null;let t=e.slice(5),n=parseInt(t,10);return isNaN(n)?(K(`Invalid ENABLE_SEARCH_EXTRA_TOOLS value "${e}": expected auto:N where N is a number.`),null):Math.max(0,Math.min(100,n))}function oTe(e){return e?e===`auto`||e.startsWith(`auto:`):!1}function IO(){let e=process.env.ENABLE_SEARCH_EXTRA_TOOLS;if(!e||e===`auto`)return qO;let t=FO(e);return t===null?qO:t}function LO(e){let t=wo(e,Lg(e)),n=IO()/100;return Math.floor(t*n)}function RO(e){return Math.floor(LO(e)*JO)}function zO(){if(h(process.env.WORKMATE_DISABLE_EXPERIMENTAL_BETAS))return`standard`;let e=process.env.ENABLE_SEARCH_EXTRA_TOOLS,t=e?FO(e):null;return t===0?`tst`:t===100?`standard`:oTe(e)?`tst-auto`:h(e)?`tst`:f(process.env.ENABLE_SEARCH_EXTRA_TOOLS)?`standard`:`tst`}function BO(){let e=zO();return e===`standard`?(XO||(XO=!0,K(`[SearchExtraTools:optimistic] mode=${e}, ENABLE_SEARCH_EXTRA_TOOLS=${process.env.ENABLE_SEARCH_EXTRA_TOOLS}, result=false`)),!1):(XO||(XO=!0,K(`[SearchExtraTools:optimistic] mode=${e}, ENABLE_SEARCH_EXTRA_TOOLS=${process.env.ENABLE_SEARCH_EXTRA_TOOLS}, result=true`)),!0)}function VO(e){return e.some(e=>fs(e,ws))}async function sTe(e,t,n){let r=e.filter(e=>bs(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?W(r.inputJSONSchema):r.inputSchema?W(MO(r.inputSchema)):``;return r.name.length+i.length+a.length}))).reduce((e,t)=>e+t,0)}async function HO(e,t,n,r,i){Bt(t,e=>e.isMcp);function a(e,t,n,r){process.env.USER_TYPE,{...r}}if(!VO(t))return K(`Tool search disabled: SearchExtraToolsTool is not available (may have been disallowed via disallowedTools).`),a(!1,`standard`,`mcp_search_unavailable`),!1;let o=zO();switch(o){case`tst`:return a(!0,o,`tst_enabled`),!0;case`tst-auto`:{let{enabled:s,debugDescription:c,metrics:l}=await fTe(t,n,r,e);return s?(K(`Auto tool search enabled: ${c}`+(i?` [source: ${i}]`:``)),a(!0,o,`auto_above_threshold`,l),!0):(K(`Auto tool search disabled: ${c}`+(i?` [source: ${i}]`:``)),a(!1,o,`auto_below_threshold`,l),!1)}case`standard`:return a(!1,o,`standard_mode`),!1}}function UO(e){return typeof e==`object`&&!!e&&`type`in e&&e.type===`tool_reference`}function cTe(e){return UO(e)&&`tool_name`in e&&typeof e.tool_name==`string`}function lTe(e){return typeof e==`object`&&!!e&&`type`in e&&e.type===`tool_result`&&`content`in e&&Array.isArray(e.content)}function uTe(e){return typeof e==`object`&&!!e&&`type`in e&&e.type===`tool_result`&&`content`in e&&typeof e.content==`string`}function dTe(e){let t=ZO.exec(e);return t?.[1]?t[1].split(`,`).map(e=>e.trim()).filter(Boolean):[]}function WO(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(lTe(n))for(let e of n.content)cTe(e)&&t.add(e.tool_name);if(uTe(n)){let e=dTe(n.content);for(let n of e)t.add(n)}}}return t.size>0&&K(`Dynamic tool loading: found ${t.size} discovered tools in message history`+(n>0?` (${n} carried from compact boundary)`:``)),t}function GO(){return!1}function KO(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(bs),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:(u.length,d.length,r.size,t.length,n?.callSite,n?.querySource,[...o].sort().join(`,`),{addedNames:u.map(e=>e.name).sort(),addedLines:u.map(Kae).sort(),removedNames:d.sort()})}async function fTe(e,t,n,r){let i=await YO(e,t,n,r);if(i!==null){let e=LO(r);return{enabled:i>=e,debugDescription:`${i} tokens (threshold: ${e}, ${IO()}% of context)`,metrics:{deferredToolTokens:i,threshold:e}}}let a=await sTe(e,t,n),o=RO(r);return{enabled:a>=o,debugDescription:`${a} chars (threshold: ${o}, ${IO()}% of context) (char fallback)`,metrics:{deferredToolDescriptionChars:a,charThreshold:o}}}var qO,JO,YO,XO,ZO,QO=n((()=>{d(),Ra(),Ps(),As(),jO(),tt(),Hg(),bo(),q(),g(),zi(),PO(),qO=10,JO=2.5,YO=u(async(e,t,n,r)=>{let i=e.filter(e=>bs(e));if(i.length===0)return 0;try{let e=await EO(i,t,{activeAgents:n,allAgents:n},r);return e===0?null:Math.max(0,e-500)}catch{return null}},e=>e.filter(e=>bs(e)).map(e=>e.name).join(`,`)),XO=!1,ZO=/^Found \d+ deferred tool\(s\): (.+)\.$/m}));function pTe(e){return e.map(e=>e.name).sort().join(`,`)}function mTe(e){let t=pTe(e);ak!==t&&(K(`SearchExtraToolsTool: cache invalidated - deferred tools changed`),ok.cache.clear?.(),ak=t)}function hTe(){ok.cache.clear?.(),ak=null}function $O(e,t,n,r,i){return{data:{matches:e,query:t,total_deferred_tools:n,...r&&r.length>0?{pending_mcp_servers:r}:{},...i&&i.length>0?{already_loaded:i}:{}}}}function ek(e){if(e.startsWith(`mcp__`)){let t=e.replace(/^mcp__/,``).toLowerCase();return{parts:t.split(`__`).flatMap(e=>e.split(`_`)).filter(Boolean),full:t.replace(/__/g,` `).replace(/_/g,` `),isMcp:!0}}let t=e.replace(/([a-z])([A-Z])/g,`$1 $2`).replace(/_/g,` `).toLowerCase().split(/\s+/).filter(Boolean);return{parts:t,full:t.join(` `),isMcp:!1}}function gTe(e){let t=new Map;for(let n of e)t.has(n)||t.set(n,RegExp(`\\b${Xa(n)}\\b`));return t}async function _Te(e,t,n,r){let i=e.toLowerCase().trim(),a=t.find(e=>e.name.toLowerCase()===i)??n.find(e=>e.name.toLowerCase()===i);if(a)return[a.name];if(i.startsWith(`mcp__`)&&i.length>5){let e=t.filter(e=>e.name.toLowerCase().startsWith(i)).slice(0,r).map(e=>e.name);if(e.length>0)return e}let o=i.split(/\s+/).filter(e=>e.length>0),s=[],c=[];for(let e of o)e.startsWith(`+`)&&e.length>1?s.push(e.slice(1)):c.push(e);let l=s.length>0?[...s,...c]:o,u=gTe(l),d=t;return s.length>0&&(d=(await Promise.all(t.map(async e=>{let t=ek(e.name),r=(await ok(e.name,n)).toLowerCase(),i=e.searchHint?.toLowerCase()??``;return s.every(e=>{let n=u.get(e);return t.parts.includes(e)||t.parts.some(t=>t.includes(e))||n.test(r)||i&&n.test(i)})?e:null}))).filter(e=>e!==null)),(await Promise.all(d.map(async e=>{let t=ek(e.name),r=(await ok(e.name,n)).toLowerCase(),i=e.searchHint?.toLowerCase()??``,a=0;for(let e of l){let n=u.get(e);t.parts.includes(e)?a+=t.isMcp?12:10:t.parts.some(t=>t.includes(e))&&(a+=t.isMcp?6:5),t.full.includes(e)&&a===0&&(a+=3),i&&n.test(i)&&(a+=4),n.test(r)&&(a+=2)}return{name:e.name,score:a}}))).filter(e=>e.score>0).sort((e,t)=>t.score-e.score).slice(0,r).map(e=>e.name)}var tk,nk,rk,ik,ak,ok,sk,ck=n((()=>{d(),At(),Ra(),Ps(),q(),rt(),Qa(),QO(),As(),fT(),tk=Number(process.env.SEARCH_EXTRA_TOOLS_WEIGHT_KEYWORD??`0.4`),nk=Number(process.env.SEARCH_EXTRA_TOOLS_WEIGHT_TFIDF??`0.6`),rk=z(()=>V({query:B().describe(`Query to find deferred tools. Use "select:<tool_name>" for direct selection, or keywords to search.`),max_results:R().optional().default(5).describe(`Maximum number of results to return (default: 5)`)})),ik=z(()=>V({matches:I(B()),query:B(),total_deferred_tools:R(),pending_mcp_servers:I(B()).optional(),already_loaded:I(B()).optional()})),ak=null,ok=u(async(e,t)=>{let n=gs(t,e);return n?n.prompt({getToolPermissionContext:async()=>({mode:`default`,additionalWorkingDirectories:new Map,alwaysAllowRules:{},alwaysDenyRules:{},alwaysAskRules:{},isBypassPermissionsModeAvailable:!1}),tools:t,agents:[]}):``},e=>e),sk=Ts({isEnabled(){return BO()},isConcurrencySafe(){return!0},isReadOnly(){return!0},name:ws,maxResultSizeChars:1e5,async description(){return Iae()},async prompt(){return Iae()},get inputSchema(){return rk()},get outputSchema(){return ik()},async call(e,{options:{tools:t},getAppState:n}){let{query:r,max_results:i=5}=e,a=t.filter(bs);mTe(a);function o(){let e=n().mcp.clients.filter(e=>e.type===`pending`);return e.length>0?e.map(e=>e.name):void 0}function s(e,t){e.length,a.length,e.length}let c=r.match(/^select:(.+)$/i);if(c){let e=c[1].split(`,`).map(e=>e.trim()).filter(Boolean),n=[],i=[],l=[];for(let r of e){let e=gs(a,r),o=e??gs(t,r);o?n.includes(o.name)||(n.push(o.name),e||i.push(o.name)):l.push(r)}if(n.length===0){K(`SearchExtraToolsTool: select failed — none found: ${l.join(`, `)}`),s([],`select`);let e=o();return $O([],r,a.length,e)}return l.length>0?K(`SearchExtraToolsTool: partial select — found: ${n.join(`, `)}, missing: ${l.join(`, `)}`):K(`SearchExtraToolsTool: selected ${n.join(`, `)}`),s(n,`select`),$O(n,r,a.length,void 0,i.length>0?i:void 0)}let l=r.match(/^discover:(.+)$/i);if(l){let e=iT(l[1].trim(),await aT(a),i),t=e.map(e=>{let t=`**${e.name}** (score: ${e.score.toFixed(2)})\n${e.description}`;return e.inputSchema&&(t+=`\nSchema: ${JSON.stringify(e.inputSchema)}`),t});return t.length>0&&`${t.length}${t.join(`
|
|
815
815
|
|
|
816
816
|
`)}`,s(e.map(e=>e.name),`keyword`),$O(e.map(e=>e.name),r,a.length)}let u=new Set(a.map(e=>e.name)),[d,f]=await Promise.all([_Te(r,a,t,i),aT(a)]),p=iT(r,f,i),m=new Map;d.forEach((e,t)=>{let n=(d.length-t)/d.length;m.set(e,(m.get(e)??0)+n*tk)}),p.forEach(e=>{m.set(e.name,(m.get(e.name)??0)+e.score*nk)});let h=[...m.entries()].sort((e,t)=>t[1]-e[1]).slice(0,i).map(([e])=>e),g=h.filter(e=>!u.has(e));if(K(`SearchExtraToolsTool: keyword search for "${r}", found ${h.length} matches`),s(h,`keyword`),h.length===0){let e=o();return $O(h,r,a.length,e)}return $O(h,r,a.length,void 0,g.length>0?g:void 0)},renderToolUseMessage(e){return e.query?`"${e.query}"`:null},userFacingName(){return`SearchExtraTools`},mapToolResultToToolResultBlockParam(e,t,n){if(e.matches.length===0){let n=`No matching deferred tools found`;return e.pending_mcp_servers&&e.pending_mcp_servers.length>0&&(n+=`. Some MCP servers are still connecting: ${e.pending_mcp_servers.join(`, `)}. Their tools will become available shortly — try searching again.`),{type:`tool_result`,tool_use_id:t,content:n}}let r=e.already_loaded??[],i=e.matches.filter(e=>!r.includes(e));if(i.length===0&&r.length>0)return{type:`tool_result`,tool_use_id:t,content:`No deferred tools found. ${r.join(`, `)} ${r.length===1?`is`:`are`} already loaded as core tool(s) — call directly, do NOT search for or wrap in ExecuteExtraTool. SearchExtraTools is only for discovering tools NOT already in your tool list.`};let a=[];return r.length>0&&a.push(`Already loaded as core tool(s): ${r.join(`, `)}. Call these directly using your normal tool interface — do NOT use ExecuteExtraTool for them.`),i.length>0&&a.push(`Found ${i.length} deferred tool(s): ${i.join(`, `)}.\nUse ExecuteExtraTool with {"tool_name": "<name>", "params": {...}} to invoke any of these deferred tools.`),{type:`tool_result`,tool_use_id:t,content:a.join(`
|
|
817
817
|
`)}}})}));function vTe(e){let t={toolRequests:new Map,toolResults:new Map,humanMessages:0,assistantMessages:0,localCommandOutputs:0,other:0,attachments:new Map,duplicateFileReads:new Map,total:0},n=new Map,r=new Map,i=new Map;return e.forEach(e=>{if(e.type===`attachment`){let n=e.attachment.type||`unknown`;t.attachments.set(n,(t.attachments.get(n)||0)+1)}}),d3(e).forEach(e=>{let{content:a}=e.message;if(typeof a==`string`){let n=C3(a);t.total+=n,e.type===`user`&&a.includes(`local-command-stdout`)?t.localCommandOutputs+=n:t[e.type===`user`?`humanMessages`:`assistantMessages`]+=n}else a.forEach(a=>yTe(a,e,t,n,r,i))}),i.forEach((e,n)=>{if(e.count>1){let r=Math.floor(e.totalTokens/e.count)*(e.count-1);t.duplicateFileReads.set(n,{count:e.count,tokens:r})}}),t}function yTe(e,t,n,r,i,a){let o=C3(W(e));switch(n.total+=o,e.type){case`text`:t.type===`user`&&`text`in e&&e.text.includes(`local-command-stdout`)?n.localCommandOutputs+=o:n[t.type===`user`?`humanMessages`:`assistantMessages`]+=o;break;case`tool_use`:if(`name`in e&&`id`in e){let t=e.name||`unknown`;if(lk(n.toolRequests,t,o),r.set(e.id,t),t===`Read`&&`input`in e&&e.input&&typeof e.input==`object`&&`file_path`in e.input){let t=String(e.input.file_path);i.set(e.id,t)}}break;case`tool_result`:if(`tool_use_id`in e){let t=r.get(e.tool_use_id)||`unknown`;if(lk(n.toolResults,t,o),t===`Read`){let t=i.get(e.tool_use_id);if(t){let e=a.get(t)||{count:0,totalTokens:0};a.set(t,{count:e.count+1,totalTokens:e.totalTokens+o})}}}break;case`image`:case`server_tool_use`:case`web_search_tool_result`:case`search_result`:case`document`:case`thinking`:case`redacted_thinking`:case`code_execution_tool_result`:case`mcp_tool_use`:case`mcp_tool_result`:case`container_upload`:case`web_fetch_tool_result`:case`bash_code_execution_tool_result`:case`text_editor_code_execution_tool_result`:case`tool_search_tool_result`:case`compaction`:n.other+=o;break}}function lk(e,t,n){e.set(t,(e.get(t)||0)+n)}function bTe(e){let t={total_tokens:e.total,human_message_tokens:e.humanMessages,assistant_message_tokens:e.assistantMessages,local_command_output_tokens:e.localCommandOutputs,other_tokens:e.other};e.attachments.forEach((e,n)=>{t[`attachment_${n}_count`]=e}),e.toolRequests.forEach((e,n)=>{t[`tool_request_${n}_tokens`]=e}),e.toolResults.forEach((e,n)=>{t[`tool_result_${n}_tokens`]=e});let n=[...e.duplicateFileReads.values()].reduce((e,t)=>e+t.tokens,0);if(t.duplicate_read_tokens=n,t.duplicate_read_file_count=e.duplicateFileReads.size,e.total>0){t.human_message_percent=Math.round(e.humanMessages/e.total*100),t.assistant_message_percent=Math.round(e.assistantMessages/e.total*100),t.local_command_output_percent=Math.round(e.localCommandOutputs/e.total*100),t.duplicate_read_percent=Math.round(n/e.total*100);let r=[...e.toolRequests.values()].reduce((e,t)=>e+t,0),i=[...e.toolResults.values()].reduce((e,t)=>e+t,0);t.tool_request_percent=Math.round(r/e.total*100),t.tool_result_percent=Math.round(i/e.total*100),e.toolRequests.forEach((n,r)=>{t[`tool_request_${r}_percent`]=Math.round(n/e.total*100)}),e.toolResults.forEach((n,r)=>{t[`tool_result_${r}_percent`]=Math.round(n/e.total*100)})}return t}var xTe=n((()=>{O3(),v3(),zi()})),uk,STe=n((()=>{uk=[`User`,`Project`,`Local`,`Managed`,`AutoMem`]}));function CTe(){dk(),yk=setInterval(()=>{Sn(`debug`,`session_keepalive_heartbeat`,{refcount:gk}),h(process.env.WORKMATE_REMOTE_SEND_KEEPALIVES)&&hk?.()},mk)}function wTe(){dk(),hk!==null&&(bk=setTimeout(()=>{Sn(`info`,`session_idle_30s`),bk=null},mk))}function dk(){bk!==null&&(clearTimeout(bk),bk=null)}function TTe(){h(process.env.WORKMATE_REMOTE_SEND_KEEPALIVES)&&hk?.()}function ETe(){return hk!==null}function fk(e){gk++,_k.set(e,(_k.get(e)??0)+1),gk===1&&(vk=Date.now(),hk!==null&&yk===null&&CTe()),xk||(xk=!0,Ai(async()=>{Sn(`info`,`session_activity_at_shutdown`,{refcount:gk,active:Object.fromEntries(_k),oldest_activity_ms:gk>0&&vk!==null?Date.now()-vk:null})}))}function pk(e){gk>0&&gk--;let t=(_k.get(e)??0)-1;t>0?_k.set(e,t):_k.delete(e),gk===0&&yk!==null&&(clearInterval(yk),yk=null,wTe())}var mk,hk,gk,_k,vk,yk,bk,xk,Sk=n((()=>{pi(),lr(),g(),mk=3e4,hk=null,gk=0,_k=new Map,vk=null,yk=null,bk=null,xk=!1}));function DTe(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 Ck(){Ok.cache?.clear?.()}async function wk(){if(!ai())return;let{enabled:e}=await R4(),t=new Set(e.map(e=>e.path)),n=ai();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)}Wne(),Pr(r)}function Tk(){let e=xn(),t=tr(`policySettings`),n=e=>e?Object.fromEntries(Object.entries(e).sort()):{};return W({enabledPlugins:n(e.enabledPlugins),extraKnownMarketplaces:n(e.extraKnownMarketplaces),strictKnownMarketplaces:t?.strictKnownMarketplaces??[],blockedMarketplaces:t?.blockedMarketplaces??[]})}function OTe(){Ek||(Ek=!0,Dk=Tk(),cg.subscribe(e=>{if(e===`policySettings`){let e=Tk();if(e===Dk){K(`Plugin hooks: skipping reload, plugin-affecting settings unchanged`);return}Dk=e,K(`Plugin hooks: reloading due to plugin-affecting settings change`),I4(`loadPluginHooks: plugin-affecting settings changed`),Ck(),Ok()}}))}var Ek,Dk,Ok,kk=n((()=>{d(),H(),q(),lg(),Ln(),zi(),z4(),Ek=!1,Ok=u(async()=>{let{enabled:e}=await R4(),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;K(`Loading hooks from plugin: ${n.name}`);let e=DTe(n);for(let n of Object.keys(e))t[n].push(...e[n])}Wne(),Pr(t),K(`Registered ${Object.values(t).reduce((e,t)=>e+t.reduce((e,t)=>e+t.hooks.length,0),0)} hooks from ${e.length} plugins`)})}));function kTe(){let e=jk;return jk=void 0,e}async function Ak(e,{sessionId:t,agentType:n,model:r,forceSyncExecution:i}={}){if(v())return[];let a=[],o=[],s=[];if(sb())K(`Skipping plugin hooks - allowManagedHooksOnly is enabled`);else try{await ate(`load_plugin_hooks`,()=>Ok())}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),Y(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 ~/.workmate/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 .workmate/settings.json`:`Please fix the plugin configuration or remove problematic plugins from your settings.`,K(`Warning: Failed to load plugin hooks. SessionStart hooks from plugins will not execute. Error: ${r}. ${i}`,{level:`warn`})}let c=n??kne();for await(let n of Tat(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&&(jk=n.initialUserMessage),n.watchPaths&&n.watchPaths.length>0&&s.push(...n.watchPaths);if(s.length>0&&__e(s),o.length>0){let e=a2({type:`hook_additional_context`,content:o,hookName:`SessionStart`,toolUseID:`SessionStart`,hookEvent:`SessionStart`});a.push(e)}return a}async function ATe(e,{forceSyncExecution:t}={}){if(v())return[];let n=[],r=[];if(sb())K(`Skipping plugin hooks - allowManagedHooksOnly is enabled`);else try{await Ok()}catch(e){K(`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 Eat(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=a2({type:`hook_additional_context`,content:r,hookName:`Setup`,toolUseID:`Setup`,hookEvent:`Setup`});n.push(e)}return n}var jk,Mk=n((()=>{H(),g2(),q(),lr(),g(),xb(),fb(),_7(),Ta(),kk()}));async function jTe(e,t){}var Nk=n((()=>{}));function MTe(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 NTe=n((()=>{}));function PTe(e,t=`from`){let n=Fk+(t===`up_to`?Bk:zk);return e&&e.trim()!==``&&(n+=`\n\nAdditional Instructions:\n${e}`),n+=Vk,n}function FTe(e){let t=Fk+Rk;return e&&e.trim()!==``&&(t+=`\n\nAdditional Instructions:\n${e}`),t+=Vk,t}function ITe(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,`
|
|
@@ -1110,7 +1110,7 @@ https://github.com/highlightjs/highlight.js/issues/2277`),i=e,r=t),n===void 0&&(
|
|
|
1110
1110
|
`),`utf8`)),p=AP(s,a,f),m=a.length),p!==-1)return await vje(e,s,c-u+p,m,n,l+jP(s,0,p));c+=d;let h=Math.min(o,f);l+=jP(s,0,f-h),u=h,s.copyWithin(0,f-u,f)}return{content:``,lineOffset:1,truncated:c>=PP}}async function kP(e){let t=Buffer.allocUnsafe(NP),n=0;for(;;){if(n===t.length){let e=Buffer.allocUnsafe(Math.min(t.length*2,10493952));t.copy(e,0,0,n),t=e}let{bytesRead:r}=await e.read(t,n,t.length-n,n);if(r===0)break;if(n+=r,n>10485760)return null}return MP(t,n)}function AP(e,t,n){let r=e.indexOf(t);return r===-1||r+t.length>n?-1:r}function jP(e,t,n){let r=0;for(let i=t;i<n;i++)e[i]===FP&&r++;return r}function MP(e,t){let n=e.toString(`utf8`,0,t);return n.includes(`\r`)?n.replaceAll(`\r
|
|
1111
1111
|
`,`
|
|
1112
1112
|
`):n}async function vje(e,t,n,r,i,a){let o=Math.min(n,NP),{bytesRead:s}=await e.read(t,0,o,n-o),c=n,l=0;for(let e=s-1;e>=0&&l<=i&&!(t[e]===FP&&(l++,l>i));e--)c--;let u=a-jP(t,s-(n-c),s)+1,d=n+r,{bytesRead:f}=await e.read(t,0,NP,d),p=d;l=0;for(let e=0;e<f&&(p++,!(t[e]===FP&&(l++,l>=i+1)));e++);let m=p-c,h=m<=t.length?t:Buffer.allocUnsafe(m),{bytesRead:g}=await e.read(h,0,m,c);return{content:MP(h,g),lineOffset:u,truncated:!1}}var NP,PP,FP,IP=n((()=>{vi(),NP=8*1024,PP=10*1024*1024,FP=10}));function LP(e){return e?e.file_path?.startsWith(Md())?`Updated plan`:e.edits==null&&e.old_string===``?`Create`:`Update`:`Update`}function RP(e){return e?.file_path?jt(e.file_path):null}function yje({file_path:e},{verbose:t}){return e?e.startsWith(Md())?``:(0,BP.jsx)(yS,{filePath:e,children:t?e:jt(e)}):null}function bje({filePath:e,structuredPatch:t,originalFile:n},r,{style:i,verbose:a}){let o=e.startsWith(Md());return(0,BP.jsx)(wP,{filePath:e,structuredPatch:t,firstLine:n.split(`
|
|
1113
|
-
`)[0]??null,fileContent:n,style:i,verbose:a,previewHint:o?`/plan to preview`:void 0})}function xje(e,t){let{style:n,verbose:r}=t,i=e.file_path,a=e.old_string??``,o=e.new_string??``,s=e.replace_all??!1;return`edits`in e&&e.edits!=null?(0,BP.jsx)(bP,{file_path:i,operation:`update`,firstLine:null,verbose:r}):a===``?(0,BP.jsx)(bP,{file_path:i,operation:`write`,content:o,firstLine:Ya(o),verbose:r}):(0,BP.jsx)(Cje,{filePath:i,oldString:a,newString:o,replaceAll:s,style:n,verbose:r})}function Sje(e,t){let{verbose:n}=t;return!n&&typeof e==`string`&&$_(e,`tool_use_error`)?$_(e,`tool_use_error`)?.includes(`Note: your current working directory is`)?(0,BP.jsx)($,{children:(0,BP.jsx)(F,{color:`error`,children:`File not found`})}):(0,BP.jsx)($,{children:(0,BP.jsx)(F,{color:`error`,children:`Error editing file`})}):(0,BP.jsx)(hS,{result:e,verbose:n})}function Cje({filePath:e,oldString:t,newString:n,replaceAll:r,style:i,verbose:a}){let[o]=(0,zP.useState)(()=>Tje(e,t,n,r));return(0,BP.jsx)(zP.Suspense,{fallback:(0,BP.jsx)(bP,{file_path:e,operation:`update`,firstLine:null,verbose:a}),children:(0,BP.jsx)(wje,{promise:o,filePath:e,style:i,verbose:a})})}function wje({promise:e,filePath:t,style:n,verbose:r}){let{patch:i,firstLine:a,fileContent:o}=(0,zP.use)(e);return(0,BP.jsx)(bP,{file_path:t,operation:`update`,patch:i,firstLine:a,fileContent:o,style:n,verbose:r})}async function Tje(e,t,n,r){try{let i=await _je(e,t,3);if(i===null||i.truncated||i.content===``){let{patch:r}=kw({filePath:e,fileContents:t,oldString:t,newString:n});return{patch:r,firstLine:null,fileContent:void 0}}let a=Ow(i.content,t)||t,{patch:o}=kw({filePath:e,fileContents:i.content,oldString:a,newString:n,replaceAll:r});return{patch:oCe(o,i.lineOffset-1),firstLine:i.lineOffset===1?Ya(i.content):null,fileContent:i.content}}catch(e){return Y(e),{patch:[],firstLine:null,fileContent:void 0}}}var zP,BP,VP=n((()=>{zP=r(Ie(),1),CP(),uS(),v3(),vS(),EP(),Ze(),bS(),Dw(),xt(),Ta(),Nd(),IP(),Qa(),Nw(),BP=et()}));function HP(e,t=``){return RegExp(`\\bgit(?:\\s+-[cC]\\s+\\S+|\\s+--\\S+=\\S+)*\\s+${e}\\b${t}`)}function Eje(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 UP(e){let t=e.match(/https:\/\/github\.com\/[^/\s]+\/[^/\s]+\/pull\/\d+/);return t?Eje(t[0]):null}function WP(e){return e.match(/\[[\w./-]+(?: \(root-commit\))? ([0-9a-f]+)\]/)?.[1]}function Dje(e){return e.match(/^\s*[+\-*!= ]?\s*(?:\[new branch\]|\S+\.\.+\S+)\s+\S+\s*->\s*(\S+)/m)?.[1]}function Oje(e){let t=e.match(/[Pp]ull request (?:\S+#)?#?(\d+)/);return t?.[1]?parseInt(t[1],10):void 0}function GP(e,t){let n=e.split(HP(t))[1];if(n)for(let e of n.trim().split(/\s+/)){if(/^[&|;><]/.test(e))break;if(!e.startsWith(`-`))return e}}function kje(e,t){let n={},r=YP.test(e);if(qP.test(e)||r){let i=WP(t);i&&(n.commit={sha:i.slice(0,6),kind:r?`cherry-picked`:/--amend\b/.test(e)?`amended`:`committed`})}if(JP.test(e)){let e=Dje(t);e&&(n.push={branch:e})}if(XP.test(e)&&/(Fast-forward|Merge made by)/.test(t)){let t=GP(e,`merge`);t&&(n.branch={ref:t,action:`merged`})}if(ZP.test(e)&&/Successfully rebased/.test(t)){let t=GP(e,`rebase`);t&&(n.branch={ref:t,action:`rebased`})}let i=QP.find(t=>t.re.test(e))?.action;if(i){let e=UP(t);if(e)n.pr={number:e.prNumber,url:e.prUrl,action:i};else{let e=Oje(t);e&&(n.pr={number:e,action:i})}}return n}function KP(e,t,n){if(t!==0)return;qP.test(e)&&(e.match(/--amend\b/),Sne()?.add(1)),JP.test(e);let r=QP.find(t=>t.re.test(e));if(r&&r.op,r?.action===`created`&&(Gr()?.add(1),n)){let e=UP(n);e&&import(`./sessionStorage-CC0v4zMs.js`).then(({linkSessionToPR:t})=>{import(`./state-DXt6rahM.js`).then(({getSessionId:n})=>{let r=n();r&&t(r,e.prNumber,e.prUrl,e.prRepository)})})}e.match(/\bglab\s+mr\s+create\b/)&&Gr()?.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&&Gr()?.add(1)}var qP,JP,YP,XP,ZP,QP,$P=n((()=>{H(),Ra(),qP=HP(`commit`),JP=HP(`push`),YP=HP(`cherry-pick`),XP=HP(`merge`,`(?!-)`),ZP=HP(`rebase`),QP=[{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 Aje(e){let t=Mje(e),n=tF.get(t);return n===void 0?eF:n}function jje(e){return e.trim().split(/\s+/)[0]||``}function Mje(e){let t=a9(e);return jje(t[t.length-1]||e)}function Nje(e,t,n,r){let i=Aje(e)(t,n,r);return{isError:i.isError,message:i.message}}var eF,tF,Pje=n((()=>{g9(),eF=(e,t,n)=>({isError:e!==0,message:e===0?void 0:`Command failed with exit code ${e}`}),tF=new Map([[`grep`,(e,t,n)=>({isError:e>=2,message:e===1?`No matches found`:void 0})],[`rg`,(e,t,n)=>({isError:e>=2,message:e===1?`No matches found`:void 0})],[`find`,(e,t,n)=>({isError:e>=2,message:e===1?`Some directories were inaccessible`:void 0})],[`diff`,(e,t,n)=>({isError:e>=2,message:e===1?`Files differ`:void 0})],[`test`,(e,t,n)=>({isError:e>=2,message:e===1?`Condition is false`:void 0})],[`[`,(e,t,n)=>({isError:e>=2,message:e===1?`Condition is false`:void 0})]])})),nF,rF=n((()=>{nF=`https://github.com/readmagic/workMate`}));function Fje(){return Sr(U())??ri()}function Ije(){return process.env.WORKMATE_ENTRYPOINT??`cli`}function iF(){return{fileStates:new Map,sessionBaselines:new Map,surface:Ije(),startingHeadSha:null,promptCount:0,promptCountAtLastCommit:0,permissionPromptCount:0,permissionPromptCountAtLastCommit:0,escapeCount:0,escapeCountAtLastCommit:0}}function Lje(e,t){let n={};for(let[t,r]of e.fileStates)n[t]=r;return{type:`attribution-snapshot`,messageId:t,surface:e.surface,fileStates:n,promptCount:e.promptCount,promptCountAtLastCommit:e.promptCountAtLastCommit,permissionPromptCount:e.permissionPromptCount,permissionPromptCountAtLastCommit:e.permissionPromptCountAtLastCommit,escapeCount:e.escapeCount,escapeCountAtLastCommit:e.escapeCountAtLastCommit}}function Rje(e,t){let n={...e,promptCount:e.promptCount+1};return t(Lje(n,zc())),n}var aF,oF,sF=n((()=>{H(),fi(),q(),Oa(),ji(),jn(),Xn(),Ta(),Eie(),aF=`github.com:anthropics/claude-cli-internal,github.com/anthropics/claude-cli-internal,github.com:anthropics/anthropic,github.com/anthropics/anthropic,github.com:anthropics/apps,github.com/anthropics/apps,github.com:anthropics/casino,github.com/anthropics/casino,github.com:anthropics/dbt,github.com/anthropics/dbt,github.com:anthropics/dotfiles,github.com/anthropics/dotfiles,github.com:anthropics/terraform-config,github.com/anthropics/terraform-config,github.com:anthropics/hex-export,github.com/anthropics/hex-export,github.com:anthropics/feedback-v2,github.com/anthropics/feedback-v2,github.com:anthropics/labs,github.com/anthropics/labs,github.com:anthropics/argo-rollouts,github.com/anthropics/argo-rollouts,github.com:anthropics/starling-configs,github.com/anthropics/starling-configs,github.com:anthropics/ts-tools,github.com/anthropics/ts-tools,github.com:anthropics/ts-capsules,github.com/anthropics/ts-capsules,github.com:anthropics/feldspar-testing,github.com/anthropics/feldspar-testing,github.com:anthropics/trellis,github.com/anthropics/trellis,github.com:anthropics/claude-for-hiring,github.com/anthropics/claude-for-hiring,github.com:anthropics/forge-web,github.com/anthropics/forge-web,github.com:anthropics/infra-manifests,github.com/anthropics/infra-manifests,github.com:anthropics/mycro_manifests,github.com/anthropics/mycro_manifests,github.com:anthropics/mycro_configs,github.com/anthropics/mycro_configs,github.com:anthropics/mobile-apps,github.com/anthropics/mobile-apps`.split(`,`),oF=null,Tie(async()=>{if(oF!==null)return oF===`internal`;let e=await Nte(Fje());if(!e)return oF=`none`,!1;let t=aF.some(t=>e.includes(t));return oF=t?`internal`:`external`,t})}));function zje(e){let t=e.toLowerCase();for(let{keywords:e,email:n}of cF)if(e.some(e=>t.includes(e)))return n;return`noreply@anthropic.com`}var cF,Bje=n((()=>{cF=[{keywords:[`claude`],email:`noreply@anthropic.com`},{keywords:[`gpt`,`dall-e`,`o1-`,`o3-`,`o4-`],email:`openai@readmagic.workmate.win`},{keywords:[`gemini`],email:`google-gemini@readmagic.workmate.win`},{keywords:[`grok`],email:`xai-org@readmagic.workmate.win`},{keywords:[`glm`],email:`zai-org@readmagic.workmate.win`},{keywords:[`deepseek`],email:`deepseek-ai@readmagic.workmate.win`},{keywords:[`qwen`],email:`QwenLM@readmagic.workmate.win`},{keywords:[`minimax`],email:`MiniMax-AI@readmagic.workmate.win`},{keywords:[`mimo`],email:`XiaomiMiMo@readmagic.workmate.win`},{keywords:[`kimi`],email:`MoonshotAI@readmagic.workmate.win`}]}));function Vje(e){switch(uo()){case`openai`:return t_(e);case`gemini`:return c_(e);case`grok`:return i_(e);default:return e}}function Hje(){return Vje(Ro())}var Uje=n((()=>{T_(),To(),ho()})),lF,uF,dF,fF,pF=n((()=>{At(),rt(),RM(),lF=z(()=>mn({file_path:B().describe(`The absolute path to the file to modify`),old_string:B().describe(`The text to replace`),new_string:B().describe(`The text to replace it with (must be different from old_string)`),replace_all:LM(gt().default(!1).optional()).describe(`Replace all occurrences of old_string (default false)`)})),uF=z(()=>V({oldStart:R(),oldLines:R(),newStart:R(),newLines:R(),lines:I(B())})),dF=z(()=>V({filename:B(),status:Zt([`modified`,`added`]),additions:R(),deletions:R(),changes:R(),patch:B(),repository:B().nullable().optional().describe(`GitHub owner/repo when available`)})),fF=z(()=>V({filePath:B().describe(`The file path that was edited`),oldString:B().describe(`The original string that was replaced`),newString:B().describe(`The new string that replaced it`),originalFile:B().describe(`The original file contents before editing`),structuredPatch:I(uF()).describe(`Diff patch showing the changes`),userModified:gt().describe(`Whether the user modified the proposed changes`),replaceAll:gt().describe(`Whether all occurrences were replaced`),gitDiff:dF().optional()}))}));function Wje({serverName:e,files:t}){let n=zc();K(`LSP Diagnostics: Registering ${t.length} diagnostic file(s) from ${e} (ID: ${n})`),bF.set(n,{serverName:e,files:t,timestamp:Date.now(),attachmentSent:!1})}function mF(e){switch(e){case`Error`:return 1;case`Warning`:return 2;case`Info`:return 3;case`Hint`:return 4;default:return 4}}function hF(e){return W({message:e.message,severity:e.severity,range:e.range,source:e.source||null,code:e.code||null})}function Gje(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=xF.get(r.uri)||new Set;for(let t of r.diagnostics)try{let n=hF(t);if(e.has(n)||a.has(n))continue;e.add(n),i.diagnostics.push(t)}catch(e){let n=Ei(e),a=t.message?.substring(0,100)||`<no message>`;Y(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 Kje(){K(`LSP Diagnostics: Checking registry - ${bF.size} pending`);let e=[],t=new Set,n=[];for(let r of bF.values())r.attachmentSent||(e.push(...r.files),t.add(r.serverName),n.push(r));if(e.length===0)return[];let r;try{r=Gje(e)}catch(t){let n=Ei(t);Y(Error(`Failed to deduplicate LSP diagnostics: ${n.message}`)),r=e}for(let e of n)e.attachmentSent=!0;for(let[e,t]of bF)t.attachmentSent&&bF.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&&K(`LSP Diagnostics: Deduplication removed ${i-a} duplicate diagnostic(s)`);let o=0,s=0;for(let e of r){e.diagnostics.sort((e,t)=>mF(e.severity)-mF(t.severity)),e.diagnostics.length>_F&&(s+=e.diagnostics.length-_F,e.diagnostics=e.diagnostics.slice(0,_F));let t=vF-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&&K(`LSP Diagnostics: Volume limiting removed ${s} diagnostic(s) (max ${_F}/file, ${vF} total)`);for(let e of r){xF.has(e.uri)||xF.set(e.uri,new Set);let t=xF.get(e.uri);for(let n of e.diagnostics)try{t.add(hF(n))}catch(t){let r=Ei(t),i=n.message?.substring(0,100)||`<no message>`;Y(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?(K(`LSP Diagnostics: No new diagnostics to deliver (all filtered by deduplication)`),[]):(K(`LSP Diagnostics: Delivering ${r.length} file(s) with ${c} diagnostic(s) from ${t.size} server(s)`),[{serverName:Array.from(t).join(`, `),files:r}])}function qje(){K(`LSP Diagnostics: Clearing ${bF.size} pending diagnostic(s)`),bF.clear()}function Jje(){K(`LSP Diagnostics: Resetting all state (${bF.size} pending, ${xF.size} files tracked)`),bF.clear(),xF.clear()}function gF(e){xF.has(e)&&(K(`LSP Diagnostics: Clearing delivered diagnostics for ${e}`),xF.delete(e))}var _F,vF,yF,bF,xF,SF=n((()=>{nt(),q(),vi(),Ta(),zi(),_F=10,vF=30,yF=500,bF=new Map,xF=new Vt({max:yF})}));function CF(e){let t=[];return{expanded:e.replace(/\$\{([^}]+)\}/g,(e,n)=>{let[r,i]=n.split(`:-`,2),a=process.env[r];return a===void 0?i===void 0?(t.push(r),e):i:a}),missingVars:t}}var wF=n((()=>{}));function Yje(e,t){return{name:`${e.name}-with-${t.name}-fallback`,read(){return e.read()??(t.read()||{})},async readAsync(){return await e.readAsync()??(await t.readAsync()||{})},update(n){let r=e.read(),i=e.update(n);if(i.success)return r===null&&t.delete(),i;let a=t.update(n);return a.success?(r!==null&&e.delete(),{success:!0,warning:a.warning}):{success:!1}},delete(){let n=e.delete(),r=t.delete();return n||r}}}var Xje=n((()=>{}));function TF(e=``){let t=m(),n=process.env.WORKMATE_CONFIG_DIR?`-${Lc(`sha256`).update(t).digest(`hex`).substring(0,8)}`:``;return`Work Mate${Kee().OAUTH_FILE_SUFFIX}${e}${n}`}function EF(){try{return process.env.USER||_se().username}catch{return`workmate-user`}}function DF(){kF.cache={data:null,cachedAt:0},kF.generation++,kF.readInFlight=null}function Zje(e){if(kF.cache.cachedAt!==0)return;let t=null;if(e)try{t=JSON.parse(e)}catch{return}kF.cache={data:t,cachedAt:Date.now()}}var OF,kF,AF=n((()=>{Pee(),g(),OF=`-credentials`,kF={cache:{data:null,cachedAt:0},generation:0,readInFlight:null}}));async function Qje(){try{let e=TF(OF),{stdout:t,code:n}=await ja(`security`,[`find-generic-password`,`-a`,EF(),`-w`,`-s`,e],{useCwd:!1,preserveOutputOnError:!1});if(n===0&&t)return wi(t.trim())}catch{}return null}function $je(){if(NF!==void 0)return NF;if(process.platform!==`darwin`)return NF=!1,!1;try{NF=ta(`security`,[`show-keychain-info`],{reject:!1,stdio:[`ignore`,`pipe`,`pipe`]}).exitCode===36}catch{NF=!1}return NF}var jF,MF,NF,PF=n((()=>{na(),q(),Oa(),zi(),AF(),jF=4032,MF={name:`keychain`,read(){let e=kF.cache;if(Date.now()-e.cachedAt<3e4)return e.data;try{let e=TF(OF),t=Aa(`security find-generic-password -a "${EF()}" -w -s "${e}"`);if(t){let e=wi(t);return kF.cache={data:e,cachedAt:Date.now()},e}}catch{}return e.data===null?(kF.cache={data:null,cachedAt:Date.now()},null):(K(`[keychain] read failed; serving stale cache`,{level:`warn`}),kF.cache={data:e.data,cachedAt:Date.now()},e.data)},async readAsync(){let e=kF.cache;if(Date.now()-e.cachedAt<3e4)return e.data;if(kF.readInFlight)return kF.readInFlight;let t=kF.generation,n=Qje().then(n=>{if(t===kF.generation){n===null&&e.data!==null&&K(`[keychain] readAsync failed; serving stale cache`,{level:`warn`});let t=n??e.data;return kF.cache={data:t,cachedAt:Date.now()},kF.readInFlight=null,t}return n});return kF.readInFlight=n,n},update(e){DF();try{let t=TF(OF),n=EF(),r=W(e),i=Buffer.from(r,`utf-8`).toString(`hex`),a=`add-generic-password -U -a "${n}" -s "${t}" -X "${i}"\n`,o;return a.length<=jF?o=ta(`security`,[`-i`],{input:a,stdio:[`pipe`,`pipe`,`pipe`],reject:!1}):(K(`Keychain payload (${r.length}B JSON) exceeds security -i stdin limit; using argv`,{level:`warn`}),o=ta(`security`,[`add-generic-password`,`-U`,`-a`,n,`-s`,t,`-X`,i],{stdio:[`ignore`,`pipe`,`pipe`],reject:!1})),o.exitCode===0?(kF.cache={data:e,cachedAt:Date.now()},{success:!0}):{success:!1}}catch{return{success:!1}}},delete(){DF();try{let e=TF(OF);return Aa(`security delete-generic-password -a "${EF()}" -s "${e}"`),!0}catch{return!1}}}}));function FF(){let e=m();return{storageDir:e,storagePath:X(e,`.credentials.json`)}}var IF,eMe=n((()=>{g(),vi(),ji(),zi(),IF={name:`plaintext`,read(){let{storagePath:e}=FF();try{return wi(J().readFileSync(e,{encoding:`utf8`}))}catch{return null}},async readAsync(){let{storagePath:e}=FF();try{return wi(await J().readFile(e,{encoding:`utf8`}))}catch{return null}},update(e){try{let{storageDir:t,storagePath:n}=FF();try{J().mkdirSync(t)}catch(e){if(xi(e)!==`EEXIST`)throw e}return Ti(n,W(e),{encoding:`utf8`,flush:!1}),Tse(n,384),{success:!0,warning:`Warning: Storing credentials in plaintext.`}}catch{return{success:!1}}},delete(){let{storagePath:e}=FF();try{return J().unlinkSync(e),!0}catch(e){return xi(e)===`ENOENT`}}}}));function LF(){return process.platform===`darwin`?Yje(MF,IF):IF}var RF=n((()=>{Xje(),PF(),eMe()}));async function tMe(e){let{vAny:t}=await import(`./dist-DIee4wq1.js`),n=t.McpbManifestSchema.safeParse(e);if(!n.success){let e=n.error.flatten(),t=[...Object.entries(e.fieldErrors).map(([e,t])=>`${e}: ${t?.join(`, `)}`),...e.formErrors||[]].filter(Boolean).join(`; `);throw Error(`Invalid manifest: ${t}`)}return n.data}async function nMe(e){let t;try{t=wi(e)}catch(e){throw Error(`Invalid JSON in manifest.json: ${G(e)}`)}return tMe(t)}async function zF(e){return nMe(new TextDecoder().decode(e))}var rMe=n((()=>{vi(),zi()}));function iMe(e){return!(ur(e)||gc(_c(e)))}function aMe(e,t){t.fileCount++;let n;t.fileCount>HF.MAX_FILE_COUNT&&(n=`Archive contains too many files: ${t.fileCount} (max: ${HF.MAX_FILE_COUNT})`),iMe(e.name)||(n=`Unsafe file path detected: "${e.name}". Path traversal or absolute paths are not allowed.`);let r=e.originalSize||0;r>HF.MAX_FILE_SIZE&&(n=`File "${e.name}" is too large: ${Math.round(r/1024/1024)}MB (max: ${Math.round(HF.MAX_FILE_SIZE/1024/1024)}MB)`),t.totalUncompressedSize+=r,t.totalUncompressedSize>HF.MAX_TOTAL_SIZE&&(n=`Archive total size is too large: ${Math.round(t.totalUncompressedSize/1024/1024)}MB (max: ${Math.round(HF.MAX_TOTAL_SIZE/1024/1024)}MB)`);let i=t.totalUncompressedSize/t.compressedSize;return i>HF.MAX_COMPRESSION_RATIO&&(n=`Suspicious compression ratio detected: ${i.toFixed(1)}:1 (max: ${HF.MAX_COMPRESSION_RATIO}:1). This may be a zip bomb.`),n?{isValid:!1,error:n}:{isValid:!0}}async function BF(e){let{unzipSync:t}=await import(`./esm-wGnzjq4Z.js`),n={fileCount:0,totalUncompressedSize:0,compressedSize:e.length,errors:[]},r=t(new Uint8Array(e),{filter:e=>{let t=aMe(e,n);if(!t.isValid)throw Error(t.error);return!0}});return K(`Zip extraction completed: ${n.fileCount} files, ${Math.round(n.totalUncompressedSize/1024)}KB uncompressed`),r}function VF(e){let t=Buffer.from(e.buffer,e.byteOffset,e.byteLength),n={},r=Math.max(0,t.length-22-65535),i=-1;for(let e=t.length-22;e>=r;e--)if(t.readUInt32LE(e)===101010256){i=e;break}if(i<0)return n;let a=t.readUInt16LE(i+10),o=t.readUInt32LE(i+16);for(let e=0;e<a&&!(o+46>t.length||t.readUInt32LE(o)!==33639248);e++){let e=t.readUInt16LE(o+4),r=t.readUInt16LE(o+28),i=t.readUInt16LE(o+30),a=t.readUInt16LE(o+32),s=t.readUInt32LE(o+38),c=t.toString(`utf8`,o+46,o+46+r);if(e>>8==3){let e=s>>>16&65535;e&&(n[c]=e)}o+=46+r+i+a}return n}var HF,UF=n((()=>{q(),vi(),ji(),Kn(),HF={MAX_FILE_SIZE:512*1024*1024,MAX_TOTAL_SIZE:1024*1024*1024,MAX_FILE_COUNT:1e5,MAX_COMPRESSION_RATIO:50,MIN_COMPRESSION_RATIO:.5}}));function oMe(e){let t=e?.platform??Na(),n=e?.homedir??uc(),r=e?.env??process.env,i={HOME:n,DESKTOP:X(n,`Desktop`),DOCUMENTS:X(n,`Documents`),DOWNLOADS:X(n,`Downloads`)};switch(t){case`windows`:{let e=r.USERPROFILE||n;return{HOME:n,DESKTOP:X(e,`Desktop`),DOCUMENTS:X(e,`Documents`),DOWNLOADS:X(e,`Downloads`)}}case`linux`:case`wsl`:return{HOME:n,DESKTOP:r.XDG_DESKTOP_DIR||i.DESKTOP,DOCUMENTS:r.XDG_DOCUMENTS_DIR||i.DOCUMENTS,DOWNLOADS:r.XDG_DOWNLOAD_DIR||i.DOWNLOADS};default:return t===`unknown`&&K(`Unknown platform detected, using default paths`),i}}var sMe=n((()=>{q(),Fa()}));function WF(e){return e.endsWith(`.mcpb`)||e.endsWith(`.dxt`)}function GF(e){return e.startsWith(`http://`)||e.startsWith(`https://`)}function cMe(e){return Lc(`sha256`).update(e).digest(`hex`).substring(0,16)}function KF(e){return X(e,`.mcpb-cache`)}function qF(e,t){return X(e,`${Lc(`md5`).update(t).digest(`hex`).substring(0,8)}.metadata.json`)}function JF(e,t){return`${e}/${t}`}function YF(e,t){try{let n=xn().pluginConfigs?.[e]?.mcpServers?.[t],r=LF().read()?.pluginSecrets?.[JF(e,t)];return!n&&!r?null:(K(`Loaded user config for ${e}/${t} (settings + secureStorage)`),{...n,...r})}catch(n){return Y(Ei(n)),K(`Failed to load user config for ${e}/${t}: ${n}`,{level:`error`}),null}}function XF(e,t,n,r){try{let i={},a={};for(let[e,t]of Object.entries(n))r[e]?.sensitive===!0?a[e]=String(t):i[e]=t;let o=new Set(Object.keys(a)),s=new Set(Object.keys(i)),c=LF(),l=JF(e,t),u=c.read()?.pluginSecrets?.[l]??void 0,d=u?Object.fromEntries(Object.entries(u).filter(([e])=>!s.has(e))):void 0,f=d&&u&&Object.keys(d).length!==Object.keys(u).length;if(Object.keys(a).length>0||f){let e=c.read()??{};e.pluginSecrets||(e.pluginSecrets={}),e.pluginSecrets[l]={...d,...a};let t=c.update(e);if(!t.success)throw Error(`Failed to save sensitive config to secure storage for ${l}`);t.warning&&K(`Server secrets save warning: ${t.warning}`,{level:`warn`}),f&&K(`saveMcpServerUserConfig: scrubbed ${Object.keys(u).length-Object.keys(d).length} stale non-sensitive key(s) from secureStorage for ${l}`)}let p=xn(),m=p.pluginConfigs?.[e]?.mcpServers?.[t]??{},h=Object.keys(m).filter(e=>o.has(e));if(Object.keys(i).length>0||h.length>0){p.pluginConfigs||(p.pluginConfigs={}),p.pluginConfigs[e]||(p.pluginConfigs[e]={}),p.pluginConfigs[e].mcpServers||(p.pluginConfigs[e].mcpServers={});let n=Object.fromEntries(h.map(e=>[e,void 0]));p.pluginConfigs[e].mcpServers[t]={...i,...n};let r=yr(`userSettings`,p);if(r.error)throw r.error;h.length>0&&K(`saveMcpServerUserConfig: scrubbed ${h.length} plaintext sensitive key(s) from settings.json for ${e}/${t}`)}K(`Saved user config for ${e}/${t} (${Object.keys(i).length} non-sensitive, ${Object.keys(a).length} sensitive)`)}catch(n){let r=Ei(n);throw Y(r),Error(`Failed to save user configuration for ${e}/${t}: ${r.message}`)}}function ZF(e,t){let n=[];for(let[r,i]of Object.entries(t)){let t=e[r];if(i.required&&(t===void 0||t===``)){n.push(`${i.title||r} is required but not provided`);continue}t===void 0||t===``||(i.type===`string`?Array.isArray(t)?i.multiple?t.every(e=>typeof e==`string`)||n.push(`${i.title||r} must be an array of strings`):n.push(`${i.title||r} must be a string, not an array`):typeof t!=`string`&&n.push(`${i.title||r} must be a string`):i.type===`number`&&typeof t!=`number`?n.push(`${i.title||r} must be a number`):i.type===`boolean`&&typeof t!=`boolean`?n.push(`${i.title||r} must be a boolean`):(i.type===`file`||i.type===`directory`)&&typeof t!=`string`&&n.push(`${i.title||r} must be a path string`),i.type===`number`&&typeof t==`number`&&(i.min!==void 0&&t<i.min&&n.push(`${i.title||r} must be at least ${i.min}`),i.max!==void 0&&t>i.max&&n.push(`${i.title||r} must be at most ${i.max}`)))}return{valid:n.length===0,errors:n}}async function QF(e,t,n={}){let{getMcpConfigForManifest:r}=await import(`./dist-DIee4wq1.js`),i=await r({manifest:e,extensionPath:t,systemDirs:oMe(),userConfig:n,pathSeparator:`/`});if(!i){let t=Error(`Failed to generate MCP server configuration from manifest "${e.name}"`);throw Y(t),t}return i}async function $F(e,t){let n=J(),r=qF(e,t);try{return wi(await n.readFile(r,{encoding:`utf-8`}))}catch(e){return xi(e)===`ENOENT`?null:(Y(Ei(e)),K(`Failed to load MCPB cache metadata: ${e}`,{level:`error`}),null)}}async function eI(e,t,n){let r=qF(e,t);await J().mkdir(e),await el(r,W(n,null,2),`utf-8`)}async function lMe(e,t,n){K(`Downloading MCPB from ${e}`),n&&n(`Downloading ${e}...`);let r=performance.now(),i=!1;try{let a=await ue.get(e,{timeout:12e4,responseType:`arraybuffer`,maxRedirects:5,onDownloadProgress:e=>{e.total&&n&&n(`Downloading... ${Math.round(e.loaded/e.total*100)}%`)}}),o=new Uint8Array(a.data);return Tv(`mcpb`,e,`success`,performance.now()-r),i=!0,await el(t,Buffer.from(o)),K(`Downloaded ${o.length} bytes to ${t}`),n&&n(`Download complete`),o}catch(t){i||Tv(`mcpb`,e,`failure`,performance.now()-r,Ev(t));let n=G(t),a=Error(`Failed to download MCPB file from ${e}: ${n}`);throw Y(a),a}}async function uMe(e,t,n,r){r&&r(`Extracting files...`),await J().mkdir(t);let i=0,a=Object.entries(e).filter(([e])=>!e.endsWith(`/`)),o=a.length;for(let[e,s]of a){let a=X(t,e),c=mc(a);c!==t&&await J().mkdir(c),e.endsWith(`.json`)||e.endsWith(`.js`)||e.endsWith(`.ts`)||e.endsWith(`.txt`)||e.endsWith(`.md`)||e.endsWith(`.yml`)||e.endsWith(`.yaml`)?await el(a,new TextDecoder().decode(s),`utf-8`):await el(a,Buffer.from(s));let l=n[e];l&&l&73&&await Vc(a,l&511).catch(()=>{}),i++,r&&i%10==0&&r(`Extracted ${i}/${o} files`)}K(`Extracted ${i} files to ${t}`),r&&r(`Extraction complete (${i} files)`)}async function dMe(e,t){let n=J(),r=await $F(KF(t),e);if(!r)return!0;try{await n.stat(r.extractedPath)}catch(e){return xi(e)===`ENOENT`?K(`MCPB extraction path missing: ${r.extractedPath}`):K(`MCPB extraction path inaccessible: ${r.extractedPath}: ${e}`,{level:`error`}),!0}if(!GF(e)){let i=X(t,e),a;try{a=await n.stat(i)}catch(e){return xi(e)===`ENOENT`?K(`MCPB source file missing: ${i}`):K(`MCPB source file inaccessible: ${i}: ${e}`,{level:`error`}),!0}let o=new Date(r.cachedAt).getTime(),s=Math.floor(a.mtimeMs);if(s>o)return K(`MCPB file modified: ${new Date(s)} > ${new Date(o)}`),!0}return!1}async function tI(e,t,n,r,i,a){let o=J(),s=KF(t);await o.mkdir(s),K(`Loading MCPB from source: ${e}`);let c=await $F(s,e);if(c&&!await dMe(e,t)){K(`Using cached MCPB from ${c.extractedPath} (hash: ${c.contentHash})`);let e=X(c.extractedPath,`manifest.json`),t;try{t=await o.readFile(e,{encoding:`utf-8`})}catch(t){if(Ci(t)){let t=Error(`Cached manifest not found: ${e}`);throw Y(t),t}throw t}let r=await zF(new TextEncoder().encode(t));if(r.user_config&&Object.keys(r.user_config).length>0){let e=r.name,t=YF(n,e),o=i||t||{},s=ZF(o,r.user_config);return a||!s.valid?{status:`needs-config`,manifest:r,extractedPath:c.extractedPath,contentHash:c.contentHash,configSchema:r.user_config,existingConfig:t||{},validationErrors:s.valid?[]:s.errors}:(i&&XF(n,e,i,r.user_config??{}),{manifest:r,mcpConfig:await QF(r,c.extractedPath,o),extractedPath:c.extractedPath,contentHash:c.contentHash})}return{manifest:r,mcpConfig:await QF(r,c.extractedPath),extractedPath:c.extractedPath,contentHash:c.contentHash}}let l,u;if(GF(e))u=X(s,`${Lc(`md5`).update(e).digest(`hex`).substring(0,8)}.mcpb`),l=await lMe(e,u,r);else{let n=X(t,e);r&&r(`Loading ${e}...`);try{l=await o.readFileBytes(n),u=n}catch(e){if(Ci(e)){let e=Error(`MCPB file not found: ${n}`);throw Y(e),e}throw e}}let d=cMe(l);K(`MCPB content hash: ${d}`),r&&r(`Extracting MCPB archive...`);let f=await BF(Buffer.from(l)),p=VF(l),m=f[`manifest.json`];if(!m){let e=Error(`No manifest.json found in MCPB file`);throw Y(e),e}let h=await zF(m);if(K(`MCPB manifest: ${h.name} v${h.version} by ${h.author.name}`),!h.server){let e=Error(`MCPB manifest for "${h.name}" does not define a server configuration`);throw Y(e),e}let g=X(s,d);if(await uMe(f,g,p,r),h.user_config&&Object.keys(h.user_config).length>0){let t=h.name,a=YF(n,t),o=i||a||{},c=ZF(o,h.user_config);if(!c.valid)return await eI(s,e,{source:e,contentHash:d,extractedPath:g,cachedAt:new Date().toISOString(),lastChecked:new Date().toISOString()}),{status:`needs-config`,manifest:h,extractedPath:g,contentHash:d,configSchema:h.user_config,existingConfig:a||{},validationErrors:c.errors};i&&XF(n,t,i,h.user_config??{}),r&&r(`Generating MCP server configuration...`);let l=await QF(h,g,o);return await eI(s,e,{source:e,contentHash:d,extractedPath:g,cachedAt:new Date().toISOString(),lastChecked:new Date().toISOString()}),{manifest:h,mcpConfig:l,extractedPath:g,contentHash:d}}r&&r(`Generating MCP server configuration...`);let _=await QF(h,g);return await eI(s,e,{source:e,contentHash:d,extractedPath:g,cachedAt:new Date().toISOString(),lastChecked:new Date().toISOString()}),K(`Successfully loaded MCPB: ${h.name} (extracted to ${g})`),{manifest:h,mcpConfig:_,extractedPath:g,contentHash:d}}var nI=n((()=>{de(),q(),rMe(),UF(),vi(),ji(),Ta(),RF(),Ln(),zi(),sMe(),Dv()}));function rI(e){return e.source}function iI(){lI.cache?.clear?.()}function fMe(e,t,n){let r={},i={};for(let[e,a]of Object.entries(t))n[e]?.sensitive===!0?i[e]=String(a):r[e]=a;let a=new Set(Object.keys(i)),o=new Set(Object.keys(r)),s=LF(),c=s.read()?.pluginSecrets?.[e]??void 0,l=c?Object.fromEntries(Object.entries(c).filter(([e])=>!o.has(e))):void 0,u=l&&c&&Object.keys(l).length!==Object.keys(c).length;if(Object.keys(i).length>0||u){let t=s.read()??{};t.pluginSecrets||(t.pluginSecrets={}),t.pluginSecrets[e]={...l,...i};let n=s.update(t);if(!n.success){let t=Error(`Failed to save sensitive plugin options for ${e} to secure storage`);throw Y(t),t}n.warning&&K(`Plugin secrets save warning: ${n.warning}`,{level:`warn`})}let d=xn(),f=d.pluginConfigs?.[e]?.options??{},p=Object.keys(f).filter(e=>a.has(e));if(Object.keys(r).length>0||p.length>0){d.pluginConfigs||(d.pluginConfigs={}),d.pluginConfigs[e]||(d.pluginConfigs[e]={});let t=Object.fromEntries(p.map(e=>[e,void 0]));d.pluginConfigs[e].options={...r,...t};let n=yr(`userSettings`,d);if(n.error)throw Y(n.error),Error(`Failed to save plugin options for ${e}: ${n.error.message}`)}iI()}function aI(e){if(xn().pluginConfigs?.[e]){let{error:t}=yr(`userSettings`,{pluginConfigs:{[e]:void 0}});t&&K(`deletePluginOptions: failed to clear settings.pluginConfigs[${e}]: ${t.message}`,{level:`warn`})}let t=LF(),n=t.read();if(n?.pluginSecrets){let r=`${e}/`,i=Object.entries(n.pluginSecrets).filter(([t])=>t!==e&&!t.startsWith(r));i.length!==Object.keys(n.pluginSecrets).length&&(t.update({...n,pluginSecrets:i.length>0?Object.fromEntries(i):void 0}).success||K(`deletePluginOptions: failed to clear pluginSecrets for ${e} from keychain`,{level:`warn`}))}iI()}function pMe(e){let t=e.manifest.userConfig;if(!t||Object.keys(t).length===0)return{};let n=lI(rI(e));if(ZF(n,t).valid)return{};let r={};for(let[e,i]of Object.entries(t))ZF({[e]:n[e]},{[e]:i}).valid||(r[e]=i);return r}function oI(e,t){let n=e=>process.platform===`win32`?e.replace(/\\/g,`/`):e,r=e.replace(/\$\{CLAUDE_PLUGIN_ROOT\}/g,()=>n(t.path));if(t.source){let e=t.source;r=r.replace(/\$\{CLAUDE_PLUGIN_DATA\}/g,()=>n(ty(e)))}return r}function sI(e,t){return e.replace(/\$\{user_config\.([^}]+)\}/g,(e,n)=>{let r=t[n];if(r===void 0)throw Error(`Missing required user configuration value: ${n}. This should have been validated before variable substitution.`);return String(r)})}function cI(e,t,n){return e.replace(/\$\{user_config\.([^}]+)\}/g,(e,r)=>{if(n[r]?.sensitive===!0)return`[sensitive option '${r}' not available in skill content]`;let i=t[r];return i===void 0?e:String(i)})}var lI,uI=n((()=>{d(),q(),Ta(),RF(),Ln(),nI(),ny(),lI=u(e=>{let t=xn().pluginConfigs?.[e]?.options??{},n=LF().read()?.pluginSecrets?.[e]??{};return{...t,...n}})}));function mMe(e,t){let n=xc(e),r=xc(e,t),i=bc(n,r);return i.startsWith(`..`)||xc(i)===i?null:r}async function dI(e,t=[]){let n={},r=X(e.path,`.lsp.json`);try{let i=wi(await Kc(r,`utf-8`)),a=An(B(),dr()).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}`;Y(Error(n)),t.push({type:`lsp-config-invalid`,plugin:e.name,serverName:`.lsp.json`,validationError:a.error.message,source:`plugin`})}}catch(n){Ci(n)||(n instanceof Error?`${e.name}${n.message}`:`${e.name}`,Y(Ei(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 hMe(e.manifest.lspServers,e.path,e.name,t);r&&Object.assign(n,r)}return Object.keys(n).length>0?n:void 0}async function hMe(e,t,n,r){let i={},a=Array.isArray(e)?e:[e];for(let e of a)if(typeof e==`string`){let a=mMe(t,e);if(!a){let t=`Security: Path traversal attempt blocked in plugin ${n}: ${e}`;Y(Error(t)),K(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=wi(await Kc(a,`utf-8`)),o=An(B(),dr()).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}`;Y(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}`,Y(Ei(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=dr().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}`;Y(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 gMe(e,t,n,r){let i=[],a=e=>{let r=oI(e,t);n&&(r=sI(r,n));let{expanded:a,missingVars:o}=CF(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:ty(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(`, `)}`;Y(Error(e)),K(e,{level:`warn`})}return o}function _Me(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 vMe(e,t=[]){if(!e.enabled)return;let n=e.lspServers||await dI(e,t);if(!n)return;let r=e.manifest.userConfig?lI(rI(e)):void 0,i={};for(let[a,o]of Object.entries(n))i[a]=gMe(o,e,r,t);return _Me(i,e.name)}var fI=n((()=>{At(),wF(),q(),vi(),Ta(),zi(),ny(),uI(),En()}));async function yMe(){let e={};try{let{enabled:t}=await R4(),n=await Promise.all(t.map(async e=>{let t=[];try{return{plugin:e,scopedServers:await vMe(e,t),errors:t}}catch(n){return K(`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),K(`Loaded ${n} LSP server(s) from plugin: ${t.name}`)),i.length>0&&K(`${i.length} error(s) loading LSP servers from plugin: ${t.name}`)}K(`Total LSP servers loaded: ${Object.keys(e).length}`)}catch(e){Y(Ei(e)),K(`Error loading LSP servers: ${G(e)}`)}return{servers:e}}var bMe=n((()=>{q(),vi(),Ta(),fI(),z4()})),pI=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})),mI=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=pI(),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={}))})),hI=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))}}})),xMe=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={}))})),gI=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})),_I=a((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.Emitter=e.Event=void 0;var t=gI(),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(){}})),vI=a((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.CancellationTokenSource=e.CancellationToken=void 0;var t=gI(),n=pI(),r=_I(),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}}})),SMe=a((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.SharedArrayReceiverStrategy=e.SharedArraySenderStrategy=void 0;var t=vI(),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)}}})),yI=a((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.Semaphore=void 0;var t=gI();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()}}}})),CMe=a((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.ReadableStreamMessageReader=e.AbstractMessageReader=e.MessageReader=void 0;var t=gI(),n=pI(),r=_I(),i=yI(),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))}}})),wMe=a((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.WriteableStreamMessageWriter=e.AbstractMessageWriter=e.MessageWriter=void 0;var t=gI(),n=pI(),r=yI(),i=_I(),a=`Content-Length: `,o=`\r
|
|
1113
|
+
`)[0]??null,fileContent:n,style:i,verbose:a,previewHint:o?`/plan to preview`:void 0})}function xje(e,t){let{style:n,verbose:r}=t,i=e.file_path,a=e.old_string??``,o=e.new_string??``,s=e.replace_all??!1;return`edits`in e&&e.edits!=null?(0,BP.jsx)(bP,{file_path:i,operation:`update`,firstLine:null,verbose:r}):a===``?(0,BP.jsx)(bP,{file_path:i,operation:`write`,content:o,firstLine:Ya(o),verbose:r}):(0,BP.jsx)(Cje,{filePath:i,oldString:a,newString:o,replaceAll:s,style:n,verbose:r})}function Sje(e,t){let{verbose:n}=t;return!n&&typeof e==`string`&&$_(e,`tool_use_error`)?$_(e,`tool_use_error`)?.includes(`Note: your current working directory is`)?(0,BP.jsx)($,{children:(0,BP.jsx)(F,{color:`error`,children:`File not found`})}):(0,BP.jsx)($,{children:(0,BP.jsx)(F,{color:`error`,children:`Error editing file`})}):(0,BP.jsx)(hS,{result:e,verbose:n})}function Cje({filePath:e,oldString:t,newString:n,replaceAll:r,style:i,verbose:a}){let[o]=(0,zP.useState)(()=>Tje(e,t,n,r));return(0,BP.jsx)(zP.Suspense,{fallback:(0,BP.jsx)(bP,{file_path:e,operation:`update`,firstLine:null,verbose:a}),children:(0,BP.jsx)(wje,{promise:o,filePath:e,style:i,verbose:a})})}function wje({promise:e,filePath:t,style:n,verbose:r}){let{patch:i,firstLine:a,fileContent:o}=(0,zP.use)(e);return(0,BP.jsx)(bP,{file_path:t,operation:`update`,patch:i,firstLine:a,fileContent:o,style:n,verbose:r})}async function Tje(e,t,n,r){try{let i=await _je(e,t,3);if(i===null||i.truncated||i.content===``){let{patch:r}=kw({filePath:e,fileContents:t,oldString:t,newString:n});return{patch:r,firstLine:null,fileContent:void 0}}let a=Ow(i.content,t)||t,{patch:o}=kw({filePath:e,fileContents:i.content,oldString:a,newString:n,replaceAll:r});return{patch:oCe(o,i.lineOffset-1),firstLine:i.lineOffset===1?Ya(i.content):null,fileContent:i.content}}catch(e){return Y(e),{patch:[],firstLine:null,fileContent:void 0}}}var zP,BP,VP=n((()=>{zP=r(Ie(),1),CP(),uS(),v3(),vS(),EP(),Ze(),bS(),Dw(),xt(),Ta(),Nd(),IP(),Qa(),Nw(),BP=et()}));function HP(e,t=``){return RegExp(`\\bgit(?:\\s+-[cC]\\s+\\S+|\\s+--\\S+=\\S+)*\\s+${e}\\b${t}`)}function Eje(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 UP(e){let t=e.match(/https:\/\/github\.com\/[^/\s]+\/[^/\s]+\/pull\/\d+/);return t?Eje(t[0]):null}function WP(e){return e.match(/\[[\w./-]+(?: \(root-commit\))? ([0-9a-f]+)\]/)?.[1]}function Dje(e){return e.match(/^\s*[+\-*!= ]?\s*(?:\[new branch\]|\S+\.\.+\S+)\s+\S+\s*->\s*(\S+)/m)?.[1]}function Oje(e){let t=e.match(/[Pp]ull request (?:\S+#)?#?(\d+)/);return t?.[1]?parseInt(t[1],10):void 0}function GP(e,t){let n=e.split(HP(t))[1];if(n)for(let e of n.trim().split(/\s+/)){if(/^[&|;><]/.test(e))break;if(!e.startsWith(`-`))return e}}function kje(e,t){let n={},r=YP.test(e);if(qP.test(e)||r){let i=WP(t);i&&(n.commit={sha:i.slice(0,6),kind:r?`cherry-picked`:/--amend\b/.test(e)?`amended`:`committed`})}if(JP.test(e)){let e=Dje(t);e&&(n.push={branch:e})}if(XP.test(e)&&/(Fast-forward|Merge made by)/.test(t)){let t=GP(e,`merge`);t&&(n.branch={ref:t,action:`merged`})}if(ZP.test(e)&&/Successfully rebased/.test(t)){let t=GP(e,`rebase`);t&&(n.branch={ref:t,action:`rebased`})}let i=QP.find(t=>t.re.test(e))?.action;if(i){let e=UP(t);if(e)n.pr={number:e.prNumber,url:e.prUrl,action:i};else{let e=Oje(t);e&&(n.pr={number:e,action:i})}}return n}function KP(e,t,n){if(t!==0)return;qP.test(e)&&(e.match(/--amend\b/),Sne()?.add(1)),JP.test(e);let r=QP.find(t=>t.re.test(e));if(r&&r.op,r?.action===`created`&&(Gr()?.add(1),n)){let e=UP(n);e&&import(`./sessionStorage-vLxCo1Mh.js`).then(({linkSessionToPR:t})=>{import(`./state-DXt6rahM.js`).then(({getSessionId:n})=>{let r=n();r&&t(r,e.prNumber,e.prUrl,e.prRepository)})})}e.match(/\bglab\s+mr\s+create\b/)&&Gr()?.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&&Gr()?.add(1)}var qP,JP,YP,XP,ZP,QP,$P=n((()=>{H(),Ra(),qP=HP(`commit`),JP=HP(`push`),YP=HP(`cherry-pick`),XP=HP(`merge`,`(?!-)`),ZP=HP(`rebase`),QP=[{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 Aje(e){let t=Mje(e),n=tF.get(t);return n===void 0?eF:n}function jje(e){return e.trim().split(/\s+/)[0]||``}function Mje(e){let t=a9(e);return jje(t[t.length-1]||e)}function Nje(e,t,n,r){let i=Aje(e)(t,n,r);return{isError:i.isError,message:i.message}}var eF,tF,Pje=n((()=>{g9(),eF=(e,t,n)=>({isError:e!==0,message:e===0?void 0:`Command failed with exit code ${e}`}),tF=new Map([[`grep`,(e,t,n)=>({isError:e>=2,message:e===1?`No matches found`:void 0})],[`rg`,(e,t,n)=>({isError:e>=2,message:e===1?`No matches found`:void 0})],[`find`,(e,t,n)=>({isError:e>=2,message:e===1?`Some directories were inaccessible`:void 0})],[`diff`,(e,t,n)=>({isError:e>=2,message:e===1?`Files differ`:void 0})],[`test`,(e,t,n)=>({isError:e>=2,message:e===1?`Condition is false`:void 0})],[`[`,(e,t,n)=>({isError:e>=2,message:e===1?`Condition is false`:void 0})]])})),nF,rF=n((()=>{nF=`https://github.com/readmagic/workMate`}));function Fje(){return Sr(U())??ri()}function Ije(){return process.env.WORKMATE_ENTRYPOINT??`cli`}function iF(){return{fileStates:new Map,sessionBaselines:new Map,surface:Ije(),startingHeadSha:null,promptCount:0,promptCountAtLastCommit:0,permissionPromptCount:0,permissionPromptCountAtLastCommit:0,escapeCount:0,escapeCountAtLastCommit:0}}function Lje(e,t){let n={};for(let[t,r]of e.fileStates)n[t]=r;return{type:`attribution-snapshot`,messageId:t,surface:e.surface,fileStates:n,promptCount:e.promptCount,promptCountAtLastCommit:e.promptCountAtLastCommit,permissionPromptCount:e.permissionPromptCount,permissionPromptCountAtLastCommit:e.permissionPromptCountAtLastCommit,escapeCount:e.escapeCount,escapeCountAtLastCommit:e.escapeCountAtLastCommit}}function Rje(e,t){let n={...e,promptCount:e.promptCount+1};return t(Lje(n,zc())),n}var aF,oF,sF=n((()=>{H(),fi(),q(),Oa(),ji(),jn(),Xn(),Ta(),Eie(),aF=`github.com:anthropics/claude-cli-internal,github.com/anthropics/claude-cli-internal,github.com:anthropics/anthropic,github.com/anthropics/anthropic,github.com:anthropics/apps,github.com/anthropics/apps,github.com:anthropics/casino,github.com/anthropics/casino,github.com:anthropics/dbt,github.com/anthropics/dbt,github.com:anthropics/dotfiles,github.com/anthropics/dotfiles,github.com:anthropics/terraform-config,github.com/anthropics/terraform-config,github.com:anthropics/hex-export,github.com/anthropics/hex-export,github.com:anthropics/feedback-v2,github.com/anthropics/feedback-v2,github.com:anthropics/labs,github.com/anthropics/labs,github.com:anthropics/argo-rollouts,github.com/anthropics/argo-rollouts,github.com:anthropics/starling-configs,github.com/anthropics/starling-configs,github.com:anthropics/ts-tools,github.com/anthropics/ts-tools,github.com:anthropics/ts-capsules,github.com/anthropics/ts-capsules,github.com:anthropics/feldspar-testing,github.com/anthropics/feldspar-testing,github.com:anthropics/trellis,github.com/anthropics/trellis,github.com:anthropics/claude-for-hiring,github.com/anthropics/claude-for-hiring,github.com:anthropics/forge-web,github.com/anthropics/forge-web,github.com:anthropics/infra-manifests,github.com/anthropics/infra-manifests,github.com:anthropics/mycro_manifests,github.com/anthropics/mycro_manifests,github.com:anthropics/mycro_configs,github.com/anthropics/mycro_configs,github.com:anthropics/mobile-apps,github.com/anthropics/mobile-apps`.split(`,`),oF=null,Tie(async()=>{if(oF!==null)return oF===`internal`;let e=await Nte(Fje());if(!e)return oF=`none`,!1;let t=aF.some(t=>e.includes(t));return oF=t?`internal`:`external`,t})}));function zje(e){let t=e.toLowerCase();for(let{keywords:e,email:n}of cF)if(e.some(e=>t.includes(e)))return n;return`noreply@anthropic.com`}var cF,Bje=n((()=>{cF=[{keywords:[`claude`],email:`noreply@anthropic.com`},{keywords:[`gpt`,`dall-e`,`o1-`,`o3-`,`o4-`],email:`openai@readmagic.workmate.win`},{keywords:[`gemini`],email:`google-gemini@readmagic.workmate.win`},{keywords:[`grok`],email:`xai-org@readmagic.workmate.win`},{keywords:[`glm`],email:`zai-org@readmagic.workmate.win`},{keywords:[`deepseek`],email:`deepseek-ai@readmagic.workmate.win`},{keywords:[`qwen`],email:`QwenLM@readmagic.workmate.win`},{keywords:[`minimax`],email:`MiniMax-AI@readmagic.workmate.win`},{keywords:[`mimo`],email:`XiaomiMiMo@readmagic.workmate.win`},{keywords:[`kimi`],email:`MoonshotAI@readmagic.workmate.win`}]}));function Vje(e){switch(uo()){case`openai`:return t_(e);case`gemini`:return c_(e);case`grok`:return i_(e);default:return e}}function Hje(){return Vje(Ro())}var Uje=n((()=>{T_(),To(),ho()})),lF,uF,dF,fF,pF=n((()=>{At(),rt(),RM(),lF=z(()=>mn({file_path:B().describe(`The absolute path to the file to modify`),old_string:B().describe(`The text to replace`),new_string:B().describe(`The text to replace it with (must be different from old_string)`),replace_all:LM(gt().default(!1).optional()).describe(`Replace all occurrences of old_string (default false)`)})),uF=z(()=>V({oldStart:R(),oldLines:R(),newStart:R(),newLines:R(),lines:I(B())})),dF=z(()=>V({filename:B(),status:Zt([`modified`,`added`]),additions:R(),deletions:R(),changes:R(),patch:B(),repository:B().nullable().optional().describe(`GitHub owner/repo when available`)})),fF=z(()=>V({filePath:B().describe(`The file path that was edited`),oldString:B().describe(`The original string that was replaced`),newString:B().describe(`The new string that replaced it`),originalFile:B().describe(`The original file contents before editing`),structuredPatch:I(uF()).describe(`Diff patch showing the changes`),userModified:gt().describe(`Whether the user modified the proposed changes`),replaceAll:gt().describe(`Whether all occurrences were replaced`),gitDiff:dF().optional()}))}));function Wje({serverName:e,files:t}){let n=zc();K(`LSP Diagnostics: Registering ${t.length} diagnostic file(s) from ${e} (ID: ${n})`),bF.set(n,{serverName:e,files:t,timestamp:Date.now(),attachmentSent:!1})}function mF(e){switch(e){case`Error`:return 1;case`Warning`:return 2;case`Info`:return 3;case`Hint`:return 4;default:return 4}}function hF(e){return W({message:e.message,severity:e.severity,range:e.range,source:e.source||null,code:e.code||null})}function Gje(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=xF.get(r.uri)||new Set;for(let t of r.diagnostics)try{let n=hF(t);if(e.has(n)||a.has(n))continue;e.add(n),i.diagnostics.push(t)}catch(e){let n=Ei(e),a=t.message?.substring(0,100)||`<no message>`;Y(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 Kje(){K(`LSP Diagnostics: Checking registry - ${bF.size} pending`);let e=[],t=new Set,n=[];for(let r of bF.values())r.attachmentSent||(e.push(...r.files),t.add(r.serverName),n.push(r));if(e.length===0)return[];let r;try{r=Gje(e)}catch(t){let n=Ei(t);Y(Error(`Failed to deduplicate LSP diagnostics: ${n.message}`)),r=e}for(let e of n)e.attachmentSent=!0;for(let[e,t]of bF)t.attachmentSent&&bF.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&&K(`LSP Diagnostics: Deduplication removed ${i-a} duplicate diagnostic(s)`);let o=0,s=0;for(let e of r){e.diagnostics.sort((e,t)=>mF(e.severity)-mF(t.severity)),e.diagnostics.length>_F&&(s+=e.diagnostics.length-_F,e.diagnostics=e.diagnostics.slice(0,_F));let t=vF-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&&K(`LSP Diagnostics: Volume limiting removed ${s} diagnostic(s) (max ${_F}/file, ${vF} total)`);for(let e of r){xF.has(e.uri)||xF.set(e.uri,new Set);let t=xF.get(e.uri);for(let n of e.diagnostics)try{t.add(hF(n))}catch(t){let r=Ei(t),i=n.message?.substring(0,100)||`<no message>`;Y(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?(K(`LSP Diagnostics: No new diagnostics to deliver (all filtered by deduplication)`),[]):(K(`LSP Diagnostics: Delivering ${r.length} file(s) with ${c} diagnostic(s) from ${t.size} server(s)`),[{serverName:Array.from(t).join(`, `),files:r}])}function qje(){K(`LSP Diagnostics: Clearing ${bF.size} pending diagnostic(s)`),bF.clear()}function Jje(){K(`LSP Diagnostics: Resetting all state (${bF.size} pending, ${xF.size} files tracked)`),bF.clear(),xF.clear()}function gF(e){xF.has(e)&&(K(`LSP Diagnostics: Clearing delivered diagnostics for ${e}`),xF.delete(e))}var _F,vF,yF,bF,xF,SF=n((()=>{nt(),q(),vi(),Ta(),zi(),_F=10,vF=30,yF=500,bF=new Map,xF=new Vt({max:yF})}));function CF(e){let t=[];return{expanded:e.replace(/\$\{([^}]+)\}/g,(e,n)=>{let[r,i]=n.split(`:-`,2),a=process.env[r];return a===void 0?i===void 0?(t.push(r),e):i:a}),missingVars:t}}var wF=n((()=>{}));function Yje(e,t){return{name:`${e.name}-with-${t.name}-fallback`,read(){return e.read()??(t.read()||{})},async readAsync(){return await e.readAsync()??(await t.readAsync()||{})},update(n){let r=e.read(),i=e.update(n);if(i.success)return r===null&&t.delete(),i;let a=t.update(n);return a.success?(r!==null&&e.delete(),{success:!0,warning:a.warning}):{success:!1}},delete(){let n=e.delete(),r=t.delete();return n||r}}}var Xje=n((()=>{}));function TF(e=``){let t=m(),n=process.env.WORKMATE_CONFIG_DIR?`-${Lc(`sha256`).update(t).digest(`hex`).substring(0,8)}`:``;return`Work Mate${Kee().OAUTH_FILE_SUFFIX}${e}${n}`}function EF(){try{return process.env.USER||_se().username}catch{return`workmate-user`}}function DF(){kF.cache={data:null,cachedAt:0},kF.generation++,kF.readInFlight=null}function Zje(e){if(kF.cache.cachedAt!==0)return;let t=null;if(e)try{t=JSON.parse(e)}catch{return}kF.cache={data:t,cachedAt:Date.now()}}var OF,kF,AF=n((()=>{Pee(),g(),OF=`-credentials`,kF={cache:{data:null,cachedAt:0},generation:0,readInFlight:null}}));async function Qje(){try{let e=TF(OF),{stdout:t,code:n}=await ja(`security`,[`find-generic-password`,`-a`,EF(),`-w`,`-s`,e],{useCwd:!1,preserveOutputOnError:!1});if(n===0&&t)return wi(t.trim())}catch{}return null}function $je(){if(NF!==void 0)return NF;if(process.platform!==`darwin`)return NF=!1,!1;try{NF=ta(`security`,[`show-keychain-info`],{reject:!1,stdio:[`ignore`,`pipe`,`pipe`]}).exitCode===36}catch{NF=!1}return NF}var jF,MF,NF,PF=n((()=>{na(),q(),Oa(),zi(),AF(),jF=4032,MF={name:`keychain`,read(){let e=kF.cache;if(Date.now()-e.cachedAt<3e4)return e.data;try{let e=TF(OF),t=Aa(`security find-generic-password -a "${EF()}" -w -s "${e}"`);if(t){let e=wi(t);return kF.cache={data:e,cachedAt:Date.now()},e}}catch{}return e.data===null?(kF.cache={data:null,cachedAt:Date.now()},null):(K(`[keychain] read failed; serving stale cache`,{level:`warn`}),kF.cache={data:e.data,cachedAt:Date.now()},e.data)},async readAsync(){let e=kF.cache;if(Date.now()-e.cachedAt<3e4)return e.data;if(kF.readInFlight)return kF.readInFlight;let t=kF.generation,n=Qje().then(n=>{if(t===kF.generation){n===null&&e.data!==null&&K(`[keychain] readAsync failed; serving stale cache`,{level:`warn`});let t=n??e.data;return kF.cache={data:t,cachedAt:Date.now()},kF.readInFlight=null,t}return n});return kF.readInFlight=n,n},update(e){DF();try{let t=TF(OF),n=EF(),r=W(e),i=Buffer.from(r,`utf-8`).toString(`hex`),a=`add-generic-password -U -a "${n}" -s "${t}" -X "${i}"\n`,o;return a.length<=jF?o=ta(`security`,[`-i`],{input:a,stdio:[`pipe`,`pipe`,`pipe`],reject:!1}):(K(`Keychain payload (${r.length}B JSON) exceeds security -i stdin limit; using argv`,{level:`warn`}),o=ta(`security`,[`add-generic-password`,`-U`,`-a`,n,`-s`,t,`-X`,i],{stdio:[`ignore`,`pipe`,`pipe`],reject:!1})),o.exitCode===0?(kF.cache={data:e,cachedAt:Date.now()},{success:!0}):{success:!1}}catch{return{success:!1}}},delete(){DF();try{let e=TF(OF);return Aa(`security delete-generic-password -a "${EF()}" -s "${e}"`),!0}catch{return!1}}}}));function FF(){let e=m();return{storageDir:e,storagePath:X(e,`.credentials.json`)}}var IF,eMe=n((()=>{g(),vi(),ji(),zi(),IF={name:`plaintext`,read(){let{storagePath:e}=FF();try{return wi(J().readFileSync(e,{encoding:`utf8`}))}catch{return null}},async readAsync(){let{storagePath:e}=FF();try{return wi(await J().readFile(e,{encoding:`utf8`}))}catch{return null}},update(e){try{let{storageDir:t,storagePath:n}=FF();try{J().mkdirSync(t)}catch(e){if(xi(e)!==`EEXIST`)throw e}return Ti(n,W(e),{encoding:`utf8`,flush:!1}),Tse(n,384),{success:!0,warning:`Warning: Storing credentials in plaintext.`}}catch{return{success:!1}}},delete(){let{storagePath:e}=FF();try{return J().unlinkSync(e),!0}catch(e){return xi(e)===`ENOENT`}}}}));function LF(){return process.platform===`darwin`?Yje(MF,IF):IF}var RF=n((()=>{Xje(),PF(),eMe()}));async function tMe(e){let{vAny:t}=await import(`./dist-DIee4wq1.js`),n=t.McpbManifestSchema.safeParse(e);if(!n.success){let e=n.error.flatten(),t=[...Object.entries(e.fieldErrors).map(([e,t])=>`${e}: ${t?.join(`, `)}`),...e.formErrors||[]].filter(Boolean).join(`; `);throw Error(`Invalid manifest: ${t}`)}return n.data}async function nMe(e){let t;try{t=wi(e)}catch(e){throw Error(`Invalid JSON in manifest.json: ${G(e)}`)}return tMe(t)}async function zF(e){return nMe(new TextDecoder().decode(e))}var rMe=n((()=>{vi(),zi()}));function iMe(e){return!(ur(e)||gc(_c(e)))}function aMe(e,t){t.fileCount++;let n;t.fileCount>HF.MAX_FILE_COUNT&&(n=`Archive contains too many files: ${t.fileCount} (max: ${HF.MAX_FILE_COUNT})`),iMe(e.name)||(n=`Unsafe file path detected: "${e.name}". Path traversal or absolute paths are not allowed.`);let r=e.originalSize||0;r>HF.MAX_FILE_SIZE&&(n=`File "${e.name}" is too large: ${Math.round(r/1024/1024)}MB (max: ${Math.round(HF.MAX_FILE_SIZE/1024/1024)}MB)`),t.totalUncompressedSize+=r,t.totalUncompressedSize>HF.MAX_TOTAL_SIZE&&(n=`Archive total size is too large: ${Math.round(t.totalUncompressedSize/1024/1024)}MB (max: ${Math.round(HF.MAX_TOTAL_SIZE/1024/1024)}MB)`);let i=t.totalUncompressedSize/t.compressedSize;return i>HF.MAX_COMPRESSION_RATIO&&(n=`Suspicious compression ratio detected: ${i.toFixed(1)}:1 (max: ${HF.MAX_COMPRESSION_RATIO}:1). This may be a zip bomb.`),n?{isValid:!1,error:n}:{isValid:!0}}async function BF(e){let{unzipSync:t}=await import(`./esm-wGnzjq4Z.js`),n={fileCount:0,totalUncompressedSize:0,compressedSize:e.length,errors:[]},r=t(new Uint8Array(e),{filter:e=>{let t=aMe(e,n);if(!t.isValid)throw Error(t.error);return!0}});return K(`Zip extraction completed: ${n.fileCount} files, ${Math.round(n.totalUncompressedSize/1024)}KB uncompressed`),r}function VF(e){let t=Buffer.from(e.buffer,e.byteOffset,e.byteLength),n={},r=Math.max(0,t.length-22-65535),i=-1;for(let e=t.length-22;e>=r;e--)if(t.readUInt32LE(e)===101010256){i=e;break}if(i<0)return n;let a=t.readUInt16LE(i+10),o=t.readUInt32LE(i+16);for(let e=0;e<a&&!(o+46>t.length||t.readUInt32LE(o)!==33639248);e++){let e=t.readUInt16LE(o+4),r=t.readUInt16LE(o+28),i=t.readUInt16LE(o+30),a=t.readUInt16LE(o+32),s=t.readUInt32LE(o+38),c=t.toString(`utf8`,o+46,o+46+r);if(e>>8==3){let e=s>>>16&65535;e&&(n[c]=e)}o+=46+r+i+a}return n}var HF,UF=n((()=>{q(),vi(),ji(),Kn(),HF={MAX_FILE_SIZE:512*1024*1024,MAX_TOTAL_SIZE:1024*1024*1024,MAX_FILE_COUNT:1e5,MAX_COMPRESSION_RATIO:50,MIN_COMPRESSION_RATIO:.5}}));function oMe(e){let t=e?.platform??Na(),n=e?.homedir??uc(),r=e?.env??process.env,i={HOME:n,DESKTOP:X(n,`Desktop`),DOCUMENTS:X(n,`Documents`),DOWNLOADS:X(n,`Downloads`)};switch(t){case`windows`:{let e=r.USERPROFILE||n;return{HOME:n,DESKTOP:X(e,`Desktop`),DOCUMENTS:X(e,`Documents`),DOWNLOADS:X(e,`Downloads`)}}case`linux`:case`wsl`:return{HOME:n,DESKTOP:r.XDG_DESKTOP_DIR||i.DESKTOP,DOCUMENTS:r.XDG_DOCUMENTS_DIR||i.DOCUMENTS,DOWNLOADS:r.XDG_DOWNLOAD_DIR||i.DOWNLOADS};default:return t===`unknown`&&K(`Unknown platform detected, using default paths`),i}}var sMe=n((()=>{q(),Fa()}));function WF(e){return e.endsWith(`.mcpb`)||e.endsWith(`.dxt`)}function GF(e){return e.startsWith(`http://`)||e.startsWith(`https://`)}function cMe(e){return Lc(`sha256`).update(e).digest(`hex`).substring(0,16)}function KF(e){return X(e,`.mcpb-cache`)}function qF(e,t){return X(e,`${Lc(`md5`).update(t).digest(`hex`).substring(0,8)}.metadata.json`)}function JF(e,t){return`${e}/${t}`}function YF(e,t){try{let n=xn().pluginConfigs?.[e]?.mcpServers?.[t],r=LF().read()?.pluginSecrets?.[JF(e,t)];return!n&&!r?null:(K(`Loaded user config for ${e}/${t} (settings + secureStorage)`),{...n,...r})}catch(n){return Y(Ei(n)),K(`Failed to load user config for ${e}/${t}: ${n}`,{level:`error`}),null}}function XF(e,t,n,r){try{let i={},a={};for(let[e,t]of Object.entries(n))r[e]?.sensitive===!0?a[e]=String(t):i[e]=t;let o=new Set(Object.keys(a)),s=new Set(Object.keys(i)),c=LF(),l=JF(e,t),u=c.read()?.pluginSecrets?.[l]??void 0,d=u?Object.fromEntries(Object.entries(u).filter(([e])=>!s.has(e))):void 0,f=d&&u&&Object.keys(d).length!==Object.keys(u).length;if(Object.keys(a).length>0||f){let e=c.read()??{};e.pluginSecrets||(e.pluginSecrets={}),e.pluginSecrets[l]={...d,...a};let t=c.update(e);if(!t.success)throw Error(`Failed to save sensitive config to secure storage for ${l}`);t.warning&&K(`Server secrets save warning: ${t.warning}`,{level:`warn`}),f&&K(`saveMcpServerUserConfig: scrubbed ${Object.keys(u).length-Object.keys(d).length} stale non-sensitive key(s) from secureStorage for ${l}`)}let p=xn(),m=p.pluginConfigs?.[e]?.mcpServers?.[t]??{},h=Object.keys(m).filter(e=>o.has(e));if(Object.keys(i).length>0||h.length>0){p.pluginConfigs||(p.pluginConfigs={}),p.pluginConfigs[e]||(p.pluginConfigs[e]={}),p.pluginConfigs[e].mcpServers||(p.pluginConfigs[e].mcpServers={});let n=Object.fromEntries(h.map(e=>[e,void 0]));p.pluginConfigs[e].mcpServers[t]={...i,...n};let r=yr(`userSettings`,p);if(r.error)throw r.error;h.length>0&&K(`saveMcpServerUserConfig: scrubbed ${h.length} plaintext sensitive key(s) from settings.json for ${e}/${t}`)}K(`Saved user config for ${e}/${t} (${Object.keys(i).length} non-sensitive, ${Object.keys(a).length} sensitive)`)}catch(n){let r=Ei(n);throw Y(r),Error(`Failed to save user configuration for ${e}/${t}: ${r.message}`)}}function ZF(e,t){let n=[];for(let[r,i]of Object.entries(t)){let t=e[r];if(i.required&&(t===void 0||t===``)){n.push(`${i.title||r} is required but not provided`);continue}t===void 0||t===``||(i.type===`string`?Array.isArray(t)?i.multiple?t.every(e=>typeof e==`string`)||n.push(`${i.title||r} must be an array of strings`):n.push(`${i.title||r} must be a string, not an array`):typeof t!=`string`&&n.push(`${i.title||r} must be a string`):i.type===`number`&&typeof t!=`number`?n.push(`${i.title||r} must be a number`):i.type===`boolean`&&typeof t!=`boolean`?n.push(`${i.title||r} must be a boolean`):(i.type===`file`||i.type===`directory`)&&typeof t!=`string`&&n.push(`${i.title||r} must be a path string`),i.type===`number`&&typeof t==`number`&&(i.min!==void 0&&t<i.min&&n.push(`${i.title||r} must be at least ${i.min}`),i.max!==void 0&&t>i.max&&n.push(`${i.title||r} must be at most ${i.max}`)))}return{valid:n.length===0,errors:n}}async function QF(e,t,n={}){let{getMcpConfigForManifest:r}=await import(`./dist-DIee4wq1.js`),i=await r({manifest:e,extensionPath:t,systemDirs:oMe(),userConfig:n,pathSeparator:`/`});if(!i){let t=Error(`Failed to generate MCP server configuration from manifest "${e.name}"`);throw Y(t),t}return i}async function $F(e,t){let n=J(),r=qF(e,t);try{return wi(await n.readFile(r,{encoding:`utf-8`}))}catch(e){return xi(e)===`ENOENT`?null:(Y(Ei(e)),K(`Failed to load MCPB cache metadata: ${e}`,{level:`error`}),null)}}async function eI(e,t,n){let r=qF(e,t);await J().mkdir(e),await el(r,W(n,null,2),`utf-8`)}async function lMe(e,t,n){K(`Downloading MCPB from ${e}`),n&&n(`Downloading ${e}...`);let r=performance.now(),i=!1;try{let a=await ue.get(e,{timeout:12e4,responseType:`arraybuffer`,maxRedirects:5,onDownloadProgress:e=>{e.total&&n&&n(`Downloading... ${Math.round(e.loaded/e.total*100)}%`)}}),o=new Uint8Array(a.data);return Tv(`mcpb`,e,`success`,performance.now()-r),i=!0,await el(t,Buffer.from(o)),K(`Downloaded ${o.length} bytes to ${t}`),n&&n(`Download complete`),o}catch(t){i||Tv(`mcpb`,e,`failure`,performance.now()-r,Ev(t));let n=G(t),a=Error(`Failed to download MCPB file from ${e}: ${n}`);throw Y(a),a}}async function uMe(e,t,n,r){r&&r(`Extracting files...`),await J().mkdir(t);let i=0,a=Object.entries(e).filter(([e])=>!e.endsWith(`/`)),o=a.length;for(let[e,s]of a){let a=X(t,e),c=mc(a);c!==t&&await J().mkdir(c),e.endsWith(`.json`)||e.endsWith(`.js`)||e.endsWith(`.ts`)||e.endsWith(`.txt`)||e.endsWith(`.md`)||e.endsWith(`.yml`)||e.endsWith(`.yaml`)?await el(a,new TextDecoder().decode(s),`utf-8`):await el(a,Buffer.from(s));let l=n[e];l&&l&73&&await Vc(a,l&511).catch(()=>{}),i++,r&&i%10==0&&r(`Extracted ${i}/${o} files`)}K(`Extracted ${i} files to ${t}`),r&&r(`Extraction complete (${i} files)`)}async function dMe(e,t){let n=J(),r=await $F(KF(t),e);if(!r)return!0;try{await n.stat(r.extractedPath)}catch(e){return xi(e)===`ENOENT`?K(`MCPB extraction path missing: ${r.extractedPath}`):K(`MCPB extraction path inaccessible: ${r.extractedPath}: ${e}`,{level:`error`}),!0}if(!GF(e)){let i=X(t,e),a;try{a=await n.stat(i)}catch(e){return xi(e)===`ENOENT`?K(`MCPB source file missing: ${i}`):K(`MCPB source file inaccessible: ${i}: ${e}`,{level:`error`}),!0}let o=new Date(r.cachedAt).getTime(),s=Math.floor(a.mtimeMs);if(s>o)return K(`MCPB file modified: ${new Date(s)} > ${new Date(o)}`),!0}return!1}async function tI(e,t,n,r,i,a){let o=J(),s=KF(t);await o.mkdir(s),K(`Loading MCPB from source: ${e}`);let c=await $F(s,e);if(c&&!await dMe(e,t)){K(`Using cached MCPB from ${c.extractedPath} (hash: ${c.contentHash})`);let e=X(c.extractedPath,`manifest.json`),t;try{t=await o.readFile(e,{encoding:`utf-8`})}catch(t){if(Ci(t)){let t=Error(`Cached manifest not found: ${e}`);throw Y(t),t}throw t}let r=await zF(new TextEncoder().encode(t));if(r.user_config&&Object.keys(r.user_config).length>0){let e=r.name,t=YF(n,e),o=i||t||{},s=ZF(o,r.user_config);return a||!s.valid?{status:`needs-config`,manifest:r,extractedPath:c.extractedPath,contentHash:c.contentHash,configSchema:r.user_config,existingConfig:t||{},validationErrors:s.valid?[]:s.errors}:(i&&XF(n,e,i,r.user_config??{}),{manifest:r,mcpConfig:await QF(r,c.extractedPath,o),extractedPath:c.extractedPath,contentHash:c.contentHash})}return{manifest:r,mcpConfig:await QF(r,c.extractedPath),extractedPath:c.extractedPath,contentHash:c.contentHash}}let l,u;if(GF(e))u=X(s,`${Lc(`md5`).update(e).digest(`hex`).substring(0,8)}.mcpb`),l=await lMe(e,u,r);else{let n=X(t,e);r&&r(`Loading ${e}...`);try{l=await o.readFileBytes(n),u=n}catch(e){if(Ci(e)){let e=Error(`MCPB file not found: ${n}`);throw Y(e),e}throw e}}let d=cMe(l);K(`MCPB content hash: ${d}`),r&&r(`Extracting MCPB archive...`);let f=await BF(Buffer.from(l)),p=VF(l),m=f[`manifest.json`];if(!m){let e=Error(`No manifest.json found in MCPB file`);throw Y(e),e}let h=await zF(m);if(K(`MCPB manifest: ${h.name} v${h.version} by ${h.author.name}`),!h.server){let e=Error(`MCPB manifest for "${h.name}" does not define a server configuration`);throw Y(e),e}let g=X(s,d);if(await uMe(f,g,p,r),h.user_config&&Object.keys(h.user_config).length>0){let t=h.name,a=YF(n,t),o=i||a||{},c=ZF(o,h.user_config);if(!c.valid)return await eI(s,e,{source:e,contentHash:d,extractedPath:g,cachedAt:new Date().toISOString(),lastChecked:new Date().toISOString()}),{status:`needs-config`,manifest:h,extractedPath:g,contentHash:d,configSchema:h.user_config,existingConfig:a||{},validationErrors:c.errors};i&&XF(n,t,i,h.user_config??{}),r&&r(`Generating MCP server configuration...`);let l=await QF(h,g,o);return await eI(s,e,{source:e,contentHash:d,extractedPath:g,cachedAt:new Date().toISOString(),lastChecked:new Date().toISOString()}),{manifest:h,mcpConfig:l,extractedPath:g,contentHash:d}}r&&r(`Generating MCP server configuration...`);let _=await QF(h,g);return await eI(s,e,{source:e,contentHash:d,extractedPath:g,cachedAt:new Date().toISOString(),lastChecked:new Date().toISOString()}),K(`Successfully loaded MCPB: ${h.name} (extracted to ${g})`),{manifest:h,mcpConfig:_,extractedPath:g,contentHash:d}}var nI=n((()=>{de(),q(),rMe(),UF(),vi(),ji(),Ta(),RF(),Ln(),zi(),sMe(),Dv()}));function rI(e){return e.source}function iI(){lI.cache?.clear?.()}function fMe(e,t,n){let r={},i={};for(let[e,a]of Object.entries(t))n[e]?.sensitive===!0?i[e]=String(a):r[e]=a;let a=new Set(Object.keys(i)),o=new Set(Object.keys(r)),s=LF(),c=s.read()?.pluginSecrets?.[e]??void 0,l=c?Object.fromEntries(Object.entries(c).filter(([e])=>!o.has(e))):void 0,u=l&&c&&Object.keys(l).length!==Object.keys(c).length;if(Object.keys(i).length>0||u){let t=s.read()??{};t.pluginSecrets||(t.pluginSecrets={}),t.pluginSecrets[e]={...l,...i};let n=s.update(t);if(!n.success){let t=Error(`Failed to save sensitive plugin options for ${e} to secure storage`);throw Y(t),t}n.warning&&K(`Plugin secrets save warning: ${n.warning}`,{level:`warn`})}let d=xn(),f=d.pluginConfigs?.[e]?.options??{},p=Object.keys(f).filter(e=>a.has(e));if(Object.keys(r).length>0||p.length>0){d.pluginConfigs||(d.pluginConfigs={}),d.pluginConfigs[e]||(d.pluginConfigs[e]={});let t=Object.fromEntries(p.map(e=>[e,void 0]));d.pluginConfigs[e].options={...r,...t};let n=yr(`userSettings`,d);if(n.error)throw Y(n.error),Error(`Failed to save plugin options for ${e}: ${n.error.message}`)}iI()}function aI(e){if(xn().pluginConfigs?.[e]){let{error:t}=yr(`userSettings`,{pluginConfigs:{[e]:void 0}});t&&K(`deletePluginOptions: failed to clear settings.pluginConfigs[${e}]: ${t.message}`,{level:`warn`})}let t=LF(),n=t.read();if(n?.pluginSecrets){let r=`${e}/`,i=Object.entries(n.pluginSecrets).filter(([t])=>t!==e&&!t.startsWith(r));i.length!==Object.keys(n.pluginSecrets).length&&(t.update({...n,pluginSecrets:i.length>0?Object.fromEntries(i):void 0}).success||K(`deletePluginOptions: failed to clear pluginSecrets for ${e} from keychain`,{level:`warn`}))}iI()}function pMe(e){let t=e.manifest.userConfig;if(!t||Object.keys(t).length===0)return{};let n=lI(rI(e));if(ZF(n,t).valid)return{};let r={};for(let[e,i]of Object.entries(t))ZF({[e]:n[e]},{[e]:i}).valid||(r[e]=i);return r}function oI(e,t){let n=e=>process.platform===`win32`?e.replace(/\\/g,`/`):e,r=e.replace(/\$\{CLAUDE_PLUGIN_ROOT\}/g,()=>n(t.path));if(t.source){let e=t.source;r=r.replace(/\$\{CLAUDE_PLUGIN_DATA\}/g,()=>n(ty(e)))}return r}function sI(e,t){return e.replace(/\$\{user_config\.([^}]+)\}/g,(e,n)=>{let r=t[n];if(r===void 0)throw Error(`Missing required user configuration value: ${n}. This should have been validated before variable substitution.`);return String(r)})}function cI(e,t,n){return e.replace(/\$\{user_config\.([^}]+)\}/g,(e,r)=>{if(n[r]?.sensitive===!0)return`[sensitive option '${r}' not available in skill content]`;let i=t[r];return i===void 0?e:String(i)})}var lI,uI=n((()=>{d(),q(),Ta(),RF(),Ln(),nI(),ny(),lI=u(e=>{let t=xn().pluginConfigs?.[e]?.options??{},n=LF().read()?.pluginSecrets?.[e]??{};return{...t,...n}})}));function mMe(e,t){let n=xc(e),r=xc(e,t),i=bc(n,r);return i.startsWith(`..`)||xc(i)===i?null:r}async function dI(e,t=[]){let n={},r=X(e.path,`.lsp.json`);try{let i=wi(await Kc(r,`utf-8`)),a=An(B(),dr()).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}`;Y(Error(n)),t.push({type:`lsp-config-invalid`,plugin:e.name,serverName:`.lsp.json`,validationError:a.error.message,source:`plugin`})}}catch(n){Ci(n)||(n instanceof Error?`${e.name}${n.message}`:`${e.name}`,Y(Ei(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 hMe(e.manifest.lspServers,e.path,e.name,t);r&&Object.assign(n,r)}return Object.keys(n).length>0?n:void 0}async function hMe(e,t,n,r){let i={},a=Array.isArray(e)?e:[e];for(let e of a)if(typeof e==`string`){let a=mMe(t,e);if(!a){let t=`Security: Path traversal attempt blocked in plugin ${n}: ${e}`;Y(Error(t)),K(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=wi(await Kc(a,`utf-8`)),o=An(B(),dr()).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}`;Y(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}`,Y(Ei(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=dr().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}`;Y(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 gMe(e,t,n,r){let i=[],a=e=>{let r=oI(e,t);n&&(r=sI(r,n));let{expanded:a,missingVars:o}=CF(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:ty(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(`, `)}`;Y(Error(e)),K(e,{level:`warn`})}return o}function _Me(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 vMe(e,t=[]){if(!e.enabled)return;let n=e.lspServers||await dI(e,t);if(!n)return;let r=e.manifest.userConfig?lI(rI(e)):void 0,i={};for(let[a,o]of Object.entries(n))i[a]=gMe(o,e,r,t);return _Me(i,e.name)}var fI=n((()=>{At(),wF(),q(),vi(),Ta(),zi(),ny(),uI(),En()}));async function yMe(){let e={};try{let{enabled:t}=await R4(),n=await Promise.all(t.map(async e=>{let t=[];try{return{plugin:e,scopedServers:await vMe(e,t),errors:t}}catch(n){return K(`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),K(`Loaded ${n} LSP server(s) from plugin: ${t.name}`)),i.length>0&&K(`${i.length} error(s) loading LSP servers from plugin: ${t.name}`)}K(`Total LSP servers loaded: ${Object.keys(e).length}`)}catch(e){Y(Ei(e)),K(`Error loading LSP servers: ${G(e)}`)}return{servers:e}}var bMe=n((()=>{q(),vi(),Ta(),fI(),z4()})),pI=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})),mI=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=pI(),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={}))})),hI=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))}}})),xMe=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={}))})),gI=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})),_I=a((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.Emitter=e.Event=void 0;var t=gI(),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(){}})),vI=a((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.CancellationTokenSource=e.CancellationToken=void 0;var t=gI(),n=pI(),r=_I(),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}}})),SMe=a((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.SharedArrayReceiverStrategy=e.SharedArraySenderStrategy=void 0;var t=vI(),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)}}})),yI=a((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.Semaphore=void 0;var t=gI();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()}}}})),CMe=a((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.ReadableStreamMessageReader=e.AbstractMessageReader=e.MessageReader=void 0;var t=gI(),n=pI(),r=_I(),i=yI(),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))}}})),wMe=a((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.WriteableStreamMessageWriter=e.AbstractMessageWriter=e.MessageWriter=void 0;var t=gI(),n=pI(),r=yI(),i=_I(),a=`Content-Length: `,o=`\r
|
|
1114
1114
|
`,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()}}})),TMe=a((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.AbstractMessageBuffer=void 0;var t=13,n=10,r=`\r
|
|
1115
1115
|
`;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}}})),EMe=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=gI(),n=pI(),r=mI(),i=hI(),a=_I(),o=vI(),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,O=0,k,A=new Map,ee,te=new Map,ne=new Map,re,ie=new i.LinkedMap,ae=new Map,j=new Set,oe=new Map,se=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-`+(++O).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 P(){return N===E.Closed}function xe(){return N===E.Disposed}function Se(){(N===E.New||N===E.Listening)&&(N=E.Closed,ue.fire(void 0))}function Ce(e){le.fire([e,void 0,void 0])}function we(e){le.fire(e)}f.onClose(Se),f.onError(Ce),v.onClose(Se),v.onError(we);function F(){re||ie.size===0||(re=(0,t.default)().timer.setImmediate(()=>{re=void 0,Ee()}))}function Te(e){r.Message.isRequest(e)?Oe(e):r.Message.isNotification(e)?Ae(e):r.Message.isResponse(e)?ke(e):je(e)}function Ee(){if(ie.size===0)return;let e=ie.shift();try{let t=x?.messageStrategy;w.is(t)?t.handleMessage(e,Te):Te(e)}finally{F()}}let De=e=>{try{if(r.Message.isNotification(e)&&e.method===s.type.method){let t=e.params.id,n=he(t),i=ie.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)){ie.delete(n),oe.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=oe.get(t);if(a!==void 0){a.cancel(),Le(e);return}else j.add(t)}ve(ie,e)}finally{F()}};function Oe(e){if(xe())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=A.get(e.method),s,c;o&&(s=o.type,c=o.handler);let l=Date.now();if(c||k){let o=e.id??String(Date.now()),u=y.is(me.receiver)?me.receiver.createCancellationTokenSource(o):me.receiver.createCancellationTokenSource(e);e.id!==null&&j.has(e.id)&&u.cancel(),e.id!==null&&oe.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 k&&(d=k(e.method,e.params,u.token));let f=d;d?f.then?f.then(n=>{oe.delete(o),t(n,e.method,l)},t=>{oe.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)}):(oe.delete(o),t(d,e.method,l)):(oe.delete(o),a(d,e.method,l))}catch(a){oe.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 ke(e){if(!xe())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=ae.get(t);if(Re(e,n),n!==void 0){ae.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 Ae(e){if(xe())return;let t,n;if(e.method===s.type.method){let t=e.params.id;j.delete(t),Le(e);return}else{let r=te.get(e.method);r&&(n=r.handler,t=r.type)}if(n||ee)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 ee&&ee(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 je(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=ae.get(e);n&&n.reject(Error(`The received response has neither a result nor an error property.`))}}function Me(e){if(e!=null)switch(se){case d.Verbose:return JSON.stringify(e,null,4);case d.Compact:return JSON.stringify(e);default:return}}function Ne(e){if(!(se===d.Off||!M))if(ce===p.Text){let t;(se===d.Verbose||se===d.Compact)&&e.params&&(t=`Params: ${Me(e.params)}\n\n`),M.log(`Sending request '${e.method} - (${e.id})'.`,t)}else ze(`send-request`,e)}function Pe(e){if(!(se===d.Off||!M))if(ce===p.Text){let t;(se===d.Verbose||se===d.Compact)&&(t=e.params?`Params: ${Me(e.params)}\n\n`:`No parameters provided.
|
|
1116
1116
|
|
|
@@ -1591,7 +1591,7 @@ Reads a specific resource from an MCP server, identified by server name and reso
|
|
|
1591
1591
|
Parameters:
|
|
1592
1592
|
- server (required): The name of the MCP server from which to read the resource
|
|
1593
1593
|
- uri (required): The URI of the resource to read
|
|
1594
|
-
`}));function Kze(e){return!e.uri||!e.server?null:`Read resource "${e.uri}" from server "${e.server}"`}function qze(){return`readMcpResource`}function Jze(e,t,{verbose:n}){return!e?.contents||e.contents.length===0?(0,FJ.jsx)(P,{justifyContent:`space-between`,overflowX:`hidden`,width:`100%`,children:(0,FJ.jsx)($,{height:1,children:(0,FJ.jsx)(F,{dimColor:!0,children:`(No content)`})})}):(0,FJ.jsx)(fS,{content:W(e,null,2),verbose:n})}var FJ,Yze=n((()=>{uS(),mS(),Ze(),zi(),FJ=et()})),Xze,Zze,IJ,LJ=n((()=>{Ps(),LK(),At(),wY(),rt(),Hze(),zi(),sS(),Gze(),Yze(),Xze=z(()=>V({server:B().describe(`The MCP server name`),uri:B().describe(`The resource URI to read`)})),Zze=z(()=>V({contents:I(V({uri:B().describe(`Resource URI`),mimeType:B().optional().describe(`MIME type of the content`),text:B().optional().describe(`Text content of the resource`),blobSavedTo:B().optional().describe(`Path where binary blob content was saved`)}))})),IJ=Ts({isConcurrencySafe(){return!0},isReadOnly(){return!0},toAutoClassifierInput(e){return`${e.server} ${e.uri}`},shouldDefer:!0,name:`ReadMcpResourceTool`,searchHint:`read a specific MCP resource by URI`,maxResultSizeChars:1e5,async description(){return Uze},async prompt(){return Wze},get inputSchema(){return Xze()},get outputSchema(){return Zze()},async call(e,{options:{mcpClients:t}}){let{server:n,uri:r}=e,i=t.find(e=>e.name===n);if(!i)throw Error(`Server "${n}" not found. Available servers: ${t.map(e=>e.name).join(`, `)}`);if(i.type!==`connected`)throw Error(`Server "${n}" is not connected`);if(!i.capabilities?.resources)throw Error(`Server "${n}" does not support resources`);let a=await(await fY(i)).client.request({method:`resources/read`,params:{uri:r}},dG);return{data:{contents:await Promise.all(a.contents.map(async(e,t)=>{if(`text`in e)return{uri:e.uri,mimeType:e.mimeType,text:e.text};if(!(`blob`in e)||typeof e.blob!=`string`)return{uri:e.uri,mimeType:e.mimeType};let r=`mcp-resource-${Date.now()}-${t}-${Math.random().toString(36).slice(2,8)}`,i=await Bze(Buffer.from(e.blob,`base64`),e.mimeType,r);return`error`in i?{uri:e.uri,mimeType:e.mimeType,text:`Binary content could not be saved to disk: ${i.error}`}:{uri:e.uri,mimeType:e.mimeType,blobSavedTo:i.filepath,text:Vze(i.filepath,e.mimeType,i.size,`[Resource from ${n} at ${e.uri}] `)}}))}}},renderToolUseMessage:Kze,userFacingName:qze,renderToolResultMessage:Jze,isResultTruncated(e){return aS(W(e))},mapToolResultToToolResultBlockParam(e,t){return Ls(t,W(e))}})})),Qze,RJ,zJ,$ze=n((()=>{LK(),lr(),vi(),zi(),b(),Qze=0,RJ=1,zJ=class{constructor(e){if(x(this,`ws`,void 0),x(this,`started`,!1),x(this,`opened`,void 0),x(this,`isBun`,typeof Bun<`u`),x(this,`onclose`,void 0),x(this,`onerror`,void 0),x(this,`onmessage`,void 0),x(this,`onBunMessage`,e=>{try{let t=wi(typeof e.data==`string`?e.data:String(e.data)),n=fW.parse(t);this.onmessage?.(n)}catch(e){this.handleError(e)}}),x(this,`onBunError`,()=>{this.handleError(Error(`WebSocket error`))}),x(this,`onBunClose`,()=>{this.handleCloseCleanup()}),x(this,`onNodeMessage`,e=>{try{let t=wi(e.toString(`utf-8`)),n=fW.parse(t);this.onmessage?.(n)}catch(e){this.handleError(e)}}),x(this,`onNodeError`,e=>{this.handleError(e)}),x(this,`onNodeClose`,()=>{this.handleCloseCleanup()}),this.ws=e,this.opened=new Promise((e,t)=>{if(this.ws.readyState===RJ)e();else if(this.isBun){let n=this.ws,r=()=>{n.removeEventListener(`open`,r),n.removeEventListener(`error`,i),e()},i=e=>{n.removeEventListener(`open`,r),n.removeEventListener(`error`,i),Sn(`error`,`mcp_websocket_connect_fail`),t(e)};n.addEventListener(`open`,r),n.addEventListener(`error`,i)}else{let n=this.ws;n.on(`open`,()=>{e()}),n.on(`error`,e=>{Sn(`error`,`mcp_websocket_connect_fail`),t(e)})}}),this.isBun){let e=this.ws;e.addEventListener(`message`,this.onBunMessage),e.addEventListener(`error`,this.onBunError),e.addEventListener(`close`,this.onBunClose)}else{let e=this.ws;e.on(`message`,this.onNodeMessage),e.on(`error`,this.onNodeError),e.on(`close`,this.onNodeClose)}}handleError(e){Sn(`error`,`mcp_websocket_message_fail`),this.onerror?.(Ei(e))}handleCloseCleanup(){if(this.onclose?.(),this.isBun){let e=this.ws;e.removeEventListener(`message`,this.onBunMessage),e.removeEventListener(`error`,this.onBunError),e.removeEventListener(`close`,this.onBunClose)}else{let e=this.ws;e.off(`message`,this.onNodeMessage),e.off(`error`,this.onNodeError),e.off(`close`,this.onNodeClose)}}async start(){if(this.started)throw Error(`Start can only be called once per transport.`);if(await this.opened,this.ws.readyState!==RJ)throw Sn(`error`,`mcp_websocket_start_not_opened`),Error(`WebSocket is not open. Cannot start transport.`);this.started=!0}async close(){(this.ws.readyState===RJ||this.ws.readyState===Qze)&&this.ws.close(),this.handleCloseCleanup()}async send(e){if(this.ws.readyState!==RJ)throw Sn(`error`,`mcp_websocket_send_not_opened`),Error(`WebSocket is not open. Cannot send message.`);let t=W(e);try{this.isBun?this.ws.send(t):await new Promise((e,n)=>{this.ws.send(t,t=>{t?n(t):e()})})}catch(e){throw this.handleError(e),e}}}}));function eBe(e){return e.mode===`url`?`url`:`form`}function tBe(e,t,n){return e.findIndex(e=>e.serverName===t&&e.params.mode===`url`&&`elicitationId`in e.params&&e.params.elicitationId===n)}function nBe(e,t,n){try{e.setRequestHandler(SK,async(e,r)=>{xa(t,`Received elicitation request: ${W(e)}`);let i=eBe(e.params);try{let a=await BJ(t,e.params,r.signal);if(a)return xa(t,`Elicitation resolved by hook: ${W(a)}`),a.action,a;let o=i===`url`&&`elicitationId`in e.params?e.params.elicitationId:void 0,s=await new Promise(i=>{let a=()=>{i({action:`cancel`})};if(r.signal.aborted){a();return}let s=o?{actionLabel:`Skip confirmation`}:void 0;n(n=>({...n,elicitation:{queue:[...n.elicitation.queue,{serverName:t,requestId:r.requestId,params:e.params,signal:r.signal,waitingState:s,respond:e=>{r.signal.removeEventListener(`abort`,a),e.action,i(e)}}]}})),r.signal.addEventListener(`abort`,a,{once:!0})});return xa(t,`Elicitation response: ${W(s)}`),await VJ(t,s,r.signal,i,o)}catch(e){return Ca(t,`Elicitation error: ${e}`),{action:`cancel`}}}),e.setNotificationHandler(wK,e=>{let{elicitationId:r}=e.params;xa(t,`Received elicitation completion notification: ${r}`),o7({message:`MCP server "${t}" confirmed elicitation ${r} complete`,notificationType:`elicitation_complete`});let i=!1;n(e=>{let n=tBe(e.elicitation.queue,t,r);if(n===-1)return e;i=!0;let a=[...e.elicitation.queue];return a[n]={...a[n],completed:!0},{...e,elicitation:{queue:a}}}),i||xa(t,`Ignoring completion notification for unknown elicitation: ${r}`)})}catch{return}}async function BJ(e,t,n){try{let r=t.mode===`url`?`url`:`form`,i=`url`in t?t.url:void 0,a=`elicitationId`in t?t.elicitationId:void 0,{elicitationResponse:o,blockingError:s}=await Pat({serverName:e,message:t.message,requestedSchema:`requestedSchema`in t?t.requestedSchema:void 0,signal:n,mode:r,url:i,elicitationId:a});return s?{action:`decline`}:o?{action:o.action,content:o.content}:void 0}catch(t){Ca(e,`Elicitation hook error: ${t}`);return}}async function VJ(e,t,n,r,i){try{let{elicitationResultResponse:a,blockingError:o}=await Fat({serverName:e,action:t.action,content:t.content,signal:n,mode:r,elicitationId:i});if(o)return o7({message:`Elicitation response for server "${e}": decline`,notificationType:`elicitation_response`}),{action:`decline`};let s=a?{action:a.action,content:a.content??t.content}:t;return o7({message:`Elicitation response for server "${e}": ${s.action}`,notificationType:`elicitation_response`}),s}catch(n){return Ca(e,`ElicitationResult hook error: ${n}`),o7({message:`Elicitation response for server "${e}": ${t.action}`,notificationType:`elicitation_response`}),t}}var rBe=n((()=>{LK(),_7(),Ta(),zi(),Ra()}));async function iBe(e,t,n){try{K(`Loading MCP servers from MCPB: ${t}`);let n=e.repository,r=await tI(t,e.path,n,t=>{K(`MCPB [${e.name}]: ${t}`)});if(`status`in r&&r.status===`needs-config`)return K(`MCPB ${t} requires user configuration. User can configure via: /plugin → Manage plugins → ${e.name} → Configure`),null;let i=r,a=i.manifest.name;return K(`Loaded MCP server "${a}" from MCPB (extracted to ${i.extractedPath})`),{[a]:i.mcpConfig}}catch(r){let i=G(r);K(`Failed to load MCPB ${t}: ${i}`,{level:`error`});let a=`${e.name}@${e.repository}`;return t.startsWith(`http`)&&(i.includes(`download`)||i.includes(`network`))?n.push({type:`mcpb-download-failed`,source:a,plugin:e.name,url:t,reason:i}):i.includes(`manifest`)||i.includes(`user configuration`)?n.push({type:`mcpb-invalid-manifest`,source:a,plugin:e.name,mcpbPath:t,validationError:i}):n.push({type:`mcpb-extract-failed`,source:a,plugin:e.name,mcpbPath:t,reason:i}),null}}async function aBe(e,t=[]){let n={},r=await HJ(e.path,`.mcp.json`);if(r&&(n={...n,...r}),e.manifest.mcpServers){let r=e.manifest.mcpServers;if(typeof r==`string`)if(WF(r)){let i=await iBe(e,r,t);i&&(n={...n,...i})}else{let t=await HJ(e.path,r);t&&(n={...n,...t})}else if(Array.isArray(r)){let i=await Promise.all(r.map(async n=>{try{return typeof n==`string`?WF(n)?await iBe(e,n,t):await HJ(e.path,n):n}catch(t){return K(`Failed to load MCP servers from spec for plugin ${e.name}: ${t}`,{level:`error`}),null}}));for(let e of i)e&&(n={...n,...e})}else n={...n,...r}}return Object.keys(n).length>0?n:void 0}async function HJ(e,t){let n=J(),r=X(e,t),i;try{i=await n.readFile(r,{encoding:`utf-8`})}catch(e){return Ci(e)||K(`Failed to load MCP servers from ${r}: ${e}`,{level:`error`}),null}try{let e=wi(i),t=e.mcpServers||e,n={};for(let[e,i]of Object.entries(t)){let t=lt().safeParse(i);t.success?n[e]=t.data:K(`Invalid MCP server config for ${e} in ${r}: ${t.error.message}`,{level:`error`})}return n}catch(e){return K(`Failed to load MCP servers from ${r}: ${e}`,{level:`error`}),null}}function oBe(e){let t=e.manifest.channels;if(!t||t.length===0)return[];let n=e.repository,r=[];for(let e of t)!e.userConfig||Object.keys(e.userConfig).length===0||ZF(YF(n,e.server)??{},e.userConfig).valid||r.push({server:e.server,displayName:e.displayName??e.server,configSchema:e.userConfig});return r}function sBe(e,t){if(e.manifest.channels?.find(e=>e.server===t)?.userConfig)return YF(e.repository,t)??void 0}function cBe(e,t,n){let r={};for(let[i,a]of Object.entries(e)){let e=`plugin:${t}:${i}`;r[e]={...a,scope:`dynamic`,pluginSource:n}}return r}function lBe(e,t){let n=e.manifest.userConfig?lI(rI(e)):void 0,r=sBe(e,t);if(!(!n&&!r))return{...n,...r}}function uBe(e,t,n,r,i,a){let o=[],s=e=>{let r=oI(e,t);n&&(r=sI(r,n));let{expanded:i,missingVars:a}=CF(r);return o.push(...a),i},c;switch(e.type){case void 0:case`stdio`:{let n={...e};n.command&&(n.command=s(n.command)),n.args&&(n.args=n.args.map(e=>s(e)));let r={CLAUDE_PLUGIN_ROOT:t.path,CLAUDE_PLUGIN_DATA:ty(t.source),...n.env||{}};for(let[e,t]of Object.entries(r))e!==`CLAUDE_PLUGIN_ROOT`&&e!==`CLAUDE_PLUGIN_DATA`&&(r[e]=s(t));n.env=r,c=n;break}case`sse`:case`http`:case`ws`:{let t={...e};if(t.url&&(t.url=s(t.url)),t.headers){let e={};for(let[n,r]of Object.entries(t.headers))e[n]=s(r);t.headers=e}c=t;break}case`sse-ide`:case`ws-ide`:case`sdk`:case`claudeai-proxy`:c=e;break}if(r&&o.length>0){let e=[...new Set(o)].join(`, `);K(`Missing environment variables in plugin MCP config: ${e}`,{level:`warn`}),i&&a&&r.push({type:`mcp-config-invalid`,source:`plugin:${i}`,plugin:i,serverName:a,validationError:`Missing environment variables: ${e}`})}return c}async function dBe(e,t=[]){if(!e.enabled)return;let n=e.mcpServers||await aBe(e,t);if(!n)return;let r={};for(let[i,a]of Object.entries(n)){let n=lBe(e,i);try{r[i]=uBe(a,e,n,t,e.name,i)}catch(n){t?.push({type:`generic-error`,source:i,plugin:e.name,error:G(n)})}}return cBe(r,e.name,e.source)}var fBe=n((()=>{wF(),gr(),q(),vi(),ji(),zi(),nI(),ny(),uI()}));function UJ(){return X(or(),`managed-mcp.json`)}function WJ(e,t){if(!e)return{};let n={};for(let[r,i]of Object.entries(e))n[r]={...i,scope:t};return n}async function pBe(e){let t=X(U(),`.mcp.json`),n;try{n=(await Zc(t)).mode}catch(e){if(xi(e)!==`ENOENT`)throw e}let r=`${t}.tmp.${process.pid}.${Date.now()}`,i=await Gc(r,`w`,n??420);try{await i.writeFile(W(e,null,2),{encoding:`utf8`}),await i.datasync()}finally{await i.close()}try{n!==void 0&&await Vc(r,n),await Yc(r,t)}catch(e){try{await $c(r)}catch{}throw e}}function GJ(e){if(e.type!==void 0&&e.type!==`stdio`)return null;let t=e;return[t.command,...t.args??[]]}function mBe(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}function KJ(e){return`url`in e?e.url:null}function hBe(e){if(!MBe.some(t=>e.includes(t)))return e;try{return new URL(e).searchParams.get(`mcp_url`)||e}catch{return e}}function gBe(e){let t=GJ(e);if(t)return`stdio:${W(t)}`;let n=KJ(e);return n?`url:${hBe(n)}`:null}function _Be(e,t){let n=new Map;for(let[e,r]of Object.entries(t)){let t=gBe(r);t&&!n.has(t)&&n.set(t,e)}let r={},i=[],a=new Map;for(let[t,o]of Object.entries(e)){let e=gBe(o);if(e===null){r[t]=o;continue}let s=n.get(e);if(s!==void 0){K(`Suppressing plugin MCP server "${t}": duplicates manually-configured "${s}"`),i.push({name:t,duplicateOf:s});continue}let c=a.get(e);if(c!==void 0){K(`Suppressing plugin MCP server "${t}": duplicates earlier plugin server "${c}"`),i.push({name:t,duplicateOf:c});continue}a.set(e,t),r[t]=o}return{servers:r,suppressed:i}}function vBe(e){let t=e.replace(/[.+?^${}()|[\]\\]/g,`\\$&`).replace(/\*/g,`.*`);return RegExp(`^${t}$`)}function yBe(e,t){return vBe(t).test(e)}function bBe(){return OBe()?tr(`policySettings`)??{}:ar()}function xBe(){return ar()}function SBe(e,t){let n=xBe();if(!n.deniedMcpServers)return!1;for(let t of n.deniedMcpServers)if(Pt(t)&&t.serverName===e)return!0;if(t){let e=GJ(t);if(e){for(let t of n.deniedMcpServers)if(kt(t)&&mBe(t.serverCommand,e))return!0}let r=KJ(t);if(r){for(let e of n.deniedMcpServers)if(ft(e)&&yBe(r,e.serverUrl))return!0}}return!1}function qJ(e,t){if(SBe(e,t))return!1;let n=bBe();if(!n.allowedMcpServers)return!0;if(n.allowedMcpServers.length===0)return!1;let r=n.allowedMcpServers.some(kt),i=n.allowedMcpServers.some(ft);if(t){let a=GJ(t),o=KJ(t);if(a)if(r){for(let e of n.allowedMcpServers)if(kt(e)&&mBe(e.serverCommand,a))return!0;return!1}else{for(let t of n.allowedMcpServers)if(Pt(t)&&t.serverName===e)return!0;return!1}else if(o)if(i){for(let e of n.allowedMcpServers)if(ft(e)&&yBe(o,e.serverUrl))return!0;return!1}else{for(let t of n.allowedMcpServers)if(Pt(t)&&t.serverName===e)return!0;return!1}else{for(let t of n.allowedMcpServers)if(Pt(t)&&t.serverName===e)return!0;return!1}}for(let t of n.allowedMcpServers)if(Pt(t)&&t.serverName===e)return!0;return!1}function CBe(e){let t={},n=[];for(let[r,i]of Object.entries(e)){let e=i;e.type===`sdk`||qJ(r,e)?t[r]=i:n.push(r)}return{allowed:t,blocked:n}}function wBe(e){let t=[];function n(e){let{expanded:n,missingVars:r}=CF(e);return t.push(...r),n}let r;switch(e.type){case void 0:case`stdio`:{let t=e;r={...t,command:n(t.command),args:t.args.map(n),env:t.env?om(t.env,n):void 0};break}case`sse`:case`http`:case`ws`:{let t=e;r={...t,url:n(t.url),headers:t.headers?om(t.headers,n):void 0};break}case`sse-ide`:case`ws-ide`:r=e;break;case`sdk`:r=e;break;case`claudeai-proxy`:r=e;break}return{expanded:r,missingVars:[...new Set(t)]}}async function TBe(e,t,n){if(e.match(/[^a-zA-Z0-9_-]/))throw Error(`Invalid name ${e}. Names can only contain letters, numbers, hyphens, and underscores.`);if(nY())throw Error(`Cannot add MCP server: enterprise MCP configuration is active and has exclusive control over MCP servers`);let r=lt().safeParse(t);if(!r.success){let e=r.error.issues.map(e=>`${e.path.join(`.`)}: ${e.message}`).join(`, `);throw Error(`Invalid configuration: ${e}`)}let i=r.data;if(SBe(e,i))throw Error(`Cannot add MCP server "${e}": server is explicitly blocked by enterprise policy`);if(!qJ(e,i))throw Error(`Cannot add MCP server "${e}": not allowed by enterprise policy`);switch(n){case`project`:{let{servers:t}=JJ();if(t[e])throw Error(`MCP server ${e} already exists in .mcp.json`);break}case`user`:if(Yi().mcpServers?.[e])throw Error(`MCP server ${e} already exists in user config`);break;case`local`:if(Ui().mcpServers?.[e])throw Error(`MCP server ${e} already exists in local config`);break;case`dynamic`:throw Error(`Cannot add MCP server to scope: dynamic`);case`enterprise`:throw Error(`Cannot add MCP server to scope: enterprise`);case`claudeai`:throw Error(`Cannot add MCP server to scope: claudeai`)}switch(n){case`project`:{let{servers:t}=JJ(),n={};for(let[e,r]of Object.entries(t)){let{scope:t,...i}=r;n[e]=i}n[e]=i;let r={mcpServers:n};try{await pBe(r)}catch(e){throw Error(`Failed to write to .mcp.json: ${e}`)}break}case`user`:qi(t=>({...t,mcpServers:{...t.mcpServers,[e]:i}}));break;case`local`:Ji(t=>({...t,mcpServers:{...t.mcpServers,[e]:i}}));break;default:throw Error(`Cannot add MCP server to scope: ${n}`)}}async function EBe(e,t){switch(t){case`project`:{let{servers:t}=JJ();if(!t[e])throw Error(`No MCP server found with name: ${e} in .mcp.json`);let n={};for(let[r,i]of Object.entries(t))if(r!==e){let{scope:e,...t}=i;n[r]=t}let r={mcpServers:n};try{await pBe(r)}catch(e){throw Error(`Failed to remove from .mcp.json: ${e}`)}break}case`user`:if(!Yi().mcpServers?.[e])throw Error(`No user-scoped MCP server found with name: ${e}`);qi(t=>{let{[e]:n,...r}=t.mcpServers??{};return{...t,mcpServers:r}});break;case`local`:if(!Ui().mcpServers?.[e])throw Error(`No project-local MCP server found with name: ${e}`);Ji(t=>{let{[e]:n,...r}=t.mcpServers??{};return{...t,mcpServers:r}});break;default:throw Error(`Cannot remove MCP server from scope: ${t}`)}}function JJ(){if(!Dn(`projectSettings`))return{servers:{},errors:[]};let e=X(U(),`.mcp.json`),{config:t,errors:n}=$J({filePath:e,expandVars:!0,scope:`project`});if(!t){let t=n.filter(e=>!e.message.startsWith(`MCP config file not found`));return t.length>0?(K(`MCP config errors for ${e}: ${W(t.map(e=>e.message))}`,{level:`error`}),{servers:{},errors:t}):{servers:{},errors:[]}}return{servers:t.mcpServers?WJ(t.mcpServers,`project`):{},errors:n||[]}}function YJ(e){let t={project:`projectSettings`,user:`userSettings`,local:`localSettings`};if(e in t&&!Dn(t[e]))return{servers:{},errors:[]};switch(e){case`project`:{let t={},n=[],r=[],i=U();for(;i!==vc(i).root;)r.push(i),i=mc(i);for(let i of r.reverse()){let r=X(i,`.mcp.json`),{config:a,errors:o}=$J({filePath:r,expandVars:!0,scope:`project`});if(!a){let e=o.filter(e=>!e.message.startsWith(`MCP config file not found`));e.length>0&&(K(`MCP config errors for ${r}: ${W(e.map(e=>e.message))}`,{level:`error`}),n.push(...e));continue}a.mcpServers&&Object.assign(t,WJ(a.mcpServers,e)),o.length>0&&n.push(...o)}return{servers:t,errors:n}}case`user`:{let t=Yi().mcpServers;if(!t)return{servers:{},errors:[]};let{config:n,errors:r}=QJ({configObject:{mcpServers:t},expandVars:!0,scope:`user`});return{servers:WJ(n?.mcpServers,e),errors:r}}case`local`:{let t=Ui().mcpServers;if(!t)return{servers:{},errors:[]};let{config:n,errors:r}=QJ({configObject:{mcpServers:t},expandVars:!0,scope:`local`});return{servers:WJ(n?.mcpServers,e),errors:r}}case`enterprise`:{let t=UJ(),{config:n,errors:r}=$J({filePath:t,expandVars:!0,scope:`enterprise`});if(!n){let e=r.filter(e=>!e.message.startsWith(`MCP config file not found`));return e.length>0?(K(`Enterprise MCP config errors for ${t}: ${W(e.map(e=>e.message))}`,{level:`error`}),{servers:{},errors:e}):{servers:{},errors:[]}}return{servers:WJ(n.mcpServers,e),errors:r}}}}function XJ(e){let{servers:t}=YJ(`enterprise`);if(ib(`mcp`))return t[e]??null;let{servers:n}=YJ(`user`),{servers:r}=YJ(`project`),{servers:i}=YJ(`local`);return t[e]?t[e]:i[e]?i[e]:r[e]?r[e]:n[e]?n[e]:null}async function ZJ(e={},t=Promise.resolve({})){let{servers:n}=YJ(`enterprise`);if(nY()){let e={};for(let[t,r]of Object.entries(n))qJ(t,r)&&(e[t]=r);return{servers:e,errors:[]}}let r=ib(`mcp`),i={servers:{}},{servers:a}=r?i:YJ(`user`),{servers:o}=r?i:YJ(`project`),{servers:s}=r?i:YJ(`local`),c={},l=await R4(),u=[];if(l.errors.length>0)for(let e of l.errors)if(e.type===`mcp-config-invalid`||e.type===`mcpb-download-failed`||e.type===`mcpb-extract-failed`||e.type===`mcpb-invalid-manifest`){let t=`Plugin MCP loading error - ${e.type}: ${lv(e)}`;Y(Error(t))}else{let t=e.type;K(`Plugin not available for MCP: ${e.source} - error type: ${t}`)}let d=await Promise.all(l.enabled.map(e=>dBe(e,u)));for(let e of d)e&&Object.assign(c,e);if(u.length>0)for(let e of u){let t=`Plugin MCP server error - ${e.type}: ${lv(e)}`;Y(Error(t))}let f={};for(let[e,t]of Object.entries(o))KBe(e)===`approved`&&(f[e]=t);let p=await t,m={};for(let[t,n]of Object.entries({...a,...f,...s,...e,...p}))!tY(t)&&qJ(t,n)&&(m[t]=n);let h={},g={};for(let[e,t]of Object.entries(c))tY(e)||!qJ(e,t)?g[e]=t:h[e]=t;let{servers:_,suppressed:v}=_Be(h,m);Object.assign(_,g);for(let{name:e,duplicateOf:t}of v){let n=e.split(`:`);n[0]!==`plugin`||n.length<3||u.push({type:`mcp-server-suppressed-duplicate`,source:e,plugin:n[1],serverName:n.slice(2).join(`:`),duplicateOf:t})}let y=Object.assign({},_,a,f,s),b={};for(let[e,t]of Object.entries(y))qJ(e,t)&&(b[e]=t);return{servers:b,errors:u}}async function DBe(){if(nY())return ZJ();let{servers:e,errors:t}=await ZJ();return{servers:e,errors:t}}function QJ(e){let{configObject:t,expandVars:n,scope:r,filePath:i}=e,a=Ree().safeParse(t);if(!a.success)return{config:null,errors:a.error.issues.map(e=>({...i&&{file:i},path:e.path.join(`.`),message:`Does not adhere to MCP server configuration schema`,mcpErrorMetadata:{scope:r,severity:`fatal`}}))};let o=[],s={};for(let[e,t]of Object.entries(a.data.mcpServers)){let a=t;if(n){let{expanded:n,missingVars:s}=wBe(t);s.length>0&&o.push({...i&&{file:i},path:`mcpServers.${e}`,message:`Missing environment variables: ${s.join(`, `)}`,suggestion:`Set the following environment variables: ${s.join(`, `)}`,mcpErrorMetadata:{scope:r,serverName:e,severity:`warning`}}),a=n}Na()===`windows`&&(!a.type||a.type===`stdio`)&&`command`in a&&(a.command===`npx`||a.command.endsWith(`\\npx`)||a.command.endsWith(`/npx`))&&o.push({...i&&{file:i},path:`mcpServers.${e}`,message:`Windows requires 'cmd /c' wrapper to execute npx`,suggestion:`Change command to "cmd" with args ["/c", "npx", ...]. See: https://code.workmate.com/docs/en/mcp#configure-mcp-servers`,mcpErrorMetadata:{scope:r,serverName:e,severity:`warning`}}),s[e]=a}return{config:{mcpServers:s},errors:o}}function $J(e){let{filePath:t,expandVars:n,scope:r}=e,i=J(),a;try{a=i.readFileSync(t,{encoding:`utf8`})}catch(e){return xi(e)===`ENOENT`?{config:null,errors:[{file:t,path:``,message:`MCP config file not found: ${t}`,suggestion:`Check that the file path is correct`,mcpErrorMetadata:{scope:r,severity:`fatal`}}]}:(K(`MCP config read error for ${t} (scope=${r}): ${e}`,{level:`error`}),{config:null,errors:[{file:t,path:``,message:`Failed to read file: ${e}`,suggestion:`Check file permissions and ensure the file exists`,mcpErrorMetadata:{scope:r,severity:`fatal`}}]})}let o=gn(a);return o?QJ({configObject:o,expandVars:n,scope:r,filePath:t}):(K(`MCP config is not valid JSON: ${t} (scope=${r}, length=${a.length}, first100=${W(a.slice(0,100))})`,{level:`error`}),{config:null,errors:[{file:t,path:``,message:`MCP config is not a valid JSON`,suggestion:`Fix the JSON syntax errors in the file`,mcpErrorMetadata:{scope:r,severity:`fatal`}}]})}function OBe(){return tr(`policySettings`)?.allowManagedMcpServersOnly===!0}function kBe(e){return Object.values(e).every(e=>e.type===`sdk`&&e.name===`claude-vscode`)}function eY(e){return NBe.has(e)}function tY(e){let t=Ui();return eY(e)?!(t.enabledMcpServers||[]).includes(e):(t.disabledMcpServers||[]).includes(e)}function ABe(e,t,n){return e.includes(t)===n?e:n?[...e,t]:e.filter(e=>e!==t)}function jBe(e,t){eY(e)&&tY(e),Ji(n=>{if(eY(e)){let r=n.enabledMcpServers||[],i=ABe(r,e,t);return i===r?n:{...n,enabledMcpServers:i}}let r=n.disabledMcpServers||[],i=ABe(r,e,!t);return i===r?n:{...n,disabledMcpServers:i}})}var MBe,nY,NBe,rY=n((()=>{sm(),d(),Fa(),uv(),Ki(),fi(),q(),vi(),ji(),pr(),Ta(),fBe(),z4(),Rn(),$n(),ob(),Ln(),Dt(),zi(),Ra(),wF(),gr(),oY(),MBe=[`/v2/session_ingress/shttp/mcp/`,`/v2/ccr-sessions/`],nY=u(()=>{let{config:e}=$J({filePath:UJ(),expandVars:!0,scope:`enterprise`});return e!==null}),NBe=new Set([])}));function PBe(e,t){let n=`mcp__${hn(t)}__`;return e.filter(e=>e.name?.startsWith(n))}function iY(e,t){let n=hn(t),r=e.name;return r?r.startsWith(`mcp__${n}__`)||r.startsWith(`${n}:`):!1}function FBe(e,t){return e.filter(e=>iY(e,t)&&!(e.type===`prompt`&&e.loadedFrom===`mcp`))}function IBe(e,t){let n=`mcp__${hn(t)}__`;return e.filter(e=>!e.name?.startsWith(n))}function LBe(e,t){return e.filter(e=>!iY(e,t))}function RBe(e,t){let n={...e};return delete n[t],n}function zBe(e){let{scope:t,...n}=e,r=W(n,(e,t)=>{if(t&&typeof t==`object`&&!Array.isArray(t)){let e=t,n={};for(let t of Object.keys(e).sort())n[t]=e[t];return n}return t});return Lc(`sha256`).update(r).digest(`hex`).slice(0,16)}function BBe(e,t){let n=e.clients.filter(e=>{let n=t[e.name];return n?zBe(e.config)!==zBe(n):e.config.scope===`dynamic`});if(n.length===0)return{...e,stale:[]};let{tools:r,commands:i,resources:a}=e;for(let e of n)r=IBe(r,e.name),i=LBe(i,e.name),a=RBe(a,e.name);let o=new Set(n.map(e=>e.name));return{clients:e.clients.filter(e=>!o.has(e.name)),tools:r,commands:i,resources:a,stale:n}}function aY(e){return e.name?.startsWith(`mcp__`)||e.isMcp===!0}function VBe(e){switch(e){case`user`:return un();case`project`:return X(U(),`.mcp.json`);case`local`:return`${un()} [project: ${U()}]`;case`dynamic`:return`Dynamically configured`;case`enterprise`:return UJ();case`claudeai`:return`claude.ai`;default:return e}}function HBe(e){switch(e){case`local`:return`Local config (private to you in this project)`;case`project`:return`Project config (shared via .mcp.json)`;case`user`:return`User config (available in all your projects)`;case`dynamic`:return`Dynamic config (from command line)`;case`enterprise`:return`Enterprise config (managed by your organization)`;case`claudeai`:return`claude.ai config`;default:return e}}function UBe(e){if(!e)return`local`;if(!vr().options.includes(e))throw Error(`Invalid scope: ${e}. Must be one of: ${vr().options.join(`, `)}`);return e}function WBe(e){if(!e)return`stdio`;if(e!==`stdio`&&e!==`sse`&&e!==`http`)throw Error(`Invalid transport type: ${e}. Must be one of: stdio, sse, http`);return e}function GBe(e){let t={};for(let n of e){let e=n.indexOf(`:`);if(e===-1)throw Error(`Invalid header format: "${n}". Expected format: "Header-Name: value"`);let r=n.substring(0,e).trim(),i=n.substring(e+1).trim();if(!r)throw Error(`Invalid header: "${n}". Header name cannot be empty.`);t[r]=i}return t}function KBe(e){let t=xn(),n=hn(e);return t?.disabledMcpjsonServers?.some(e=>hn(e)===n)?`rejected`:t?.enabledMcpjsonServers?.some(e=>hn(e)===n)||t?.enableAllProjectMcpServers||Ate()&&Dn(`projectSettings`)||jr()&&Dn(`projectSettings`)?`approved`:`pending`}function qBe(e){if(!aY({name:e}))return null;let t=er(e);if(!t)return null;let n=XJ(t.serverName);return!n&&t.serverName.startsWith(`claude_ai_`)?`claudeai`:n?.scope??null}function JBe(e){return e.type===`stdio`||e.type===void 0}function YBe(e){return e.type===`sse`}function XBe(e){return e.type===`http`}function ZBe(e){return e.type===`ws`}function QBe(e){let t=new Map;for(let n of e)if(n.mcpServers?.length)for(let e of n.mcpServers){if(typeof e==`string`)continue;let r=Object.entries(e);if(r.length!==1)continue;let[i,a]=r[0],o=t.get(i);o?o.sourceAgents.includes(n.agentType)||o.sourceAgents.push(n.agentType):t.set(i,{config:{...a,name:i},sourceAgents:[n.agentType]})}let n=[];for(let[e,{config:r,sourceAgents:i}]of t)JBe(r)?n.push({name:e,sourceAgents:i,transport:`stdio`,command:r.command,needsAuth:!1}):YBe(r)?n.push({name:e,sourceAgents:i,transport:`sse`,url:r.url,needsAuth:!0}):XBe(r)?n.push({name:e,sourceAgents:i,transport:`http`,url:r.url,needsAuth:!0}):ZBe(r)&&n.push({name:e,sourceAgents:i,transport:`ws`,url:r.url,needsAuth:!1});return n.sort((e,t)=>e.name.localeCompare(t.name))}function $Be(e){if(!(!(`url`in e)||typeof e.url!=`string`))try{let t=new URL(e.url);return t.search=``,t.toString().replace(/\/$/,``)}catch{return}}var oY=n((()=>{H(),fi(),an(),Rn(),Ln(),zi(),rY(),Hn(),Mn(),gr()}));function eVe(e){return e.replace(/([a-z])([A-Z])/g,`$1_$2`).replace(/-/g,`_`).toLowerCase()}function tVe(e,t){let n=eVe(t);return{isSearch:nVe.has(n),isRead:rVe.has(n)}}var nVe,rVe,iVe=n((()=>{nVe=new Set(`slack_search_public.slack_search_public_and_private.slack_search_channels.slack_search_users.search_code.search_repositories.search_issues.search_pull_requests.search_orgs.search_users.search_documentation.search_logs.search_spans.search_rum_events.search_audit_logs.search_monitors.search_monitor_groups.find_slow_spans.find_monitors_matching_pattern.search_docs.search_events.search_issue_events.find_organizations.find_teams.find_projects.find_releases.find_dsns.search.gmail_search_messages.google_drive_search.gcal_find_my_free_time.gcal_find_meeting_times.gcal_find_user_emails.search_jira_issues_using_jql.search_confluence_using_cql.lookup_jira_account_id.confluence_search.jira_search.jira_search_fields.asana_search_tasks.asana_typeahead_search.search_files.search_nodes.brave_web_search.brave_local_search.search_dashboards.search_folders.search_docs.search_stripe_resources.search_stripe_documentation.search_articles.find_related_articles.lookup_article_by_citation.search_papers.search_pubmed.search_pubmed_key_words.search_pubmed_advanced.pubmed_search.pubmed_mesh_lookup.firecrawl_search.web_search_exa.web_search_advanced_exa.people_search_exa.linkedin_search_exa.deep_search_exa.perplexity_search.perplexity_search_web.tavily_search.obsidian_simple_search.obsidian_complex_search.find.search_knowledge.search_memories.find_memories_by_name.search_records.find_tasks.find_tasks_by_date.find_completed_tasks.find_projects.find_sections.find_comments.find_project_collaborators.find_activity.find_labels.find_filters.search_documentation.search_catalog.search_modules.search_providers.search_policies`.split(`.`)),rVe=new Set(`slack_read_channel.slack_read_thread.slack_read_canvas.slack_read_user_profile.slack_list_channels.slack_get_channel_history.slack_get_thread_replies.slack_get_users.slack_get_user_profile.get_me.get_team_members.get_teams.get_commit.get_file_contents.get_repository_tree.list_branches.list_commits.list_releases.list_tags.get_latest_release.get_release_by_tag.get_tag.list_issues.issue_read.list_issue_types.get_label.list_label.pull_request_read.get_gist.list_gists.list_notifications.get_notification_details.projects_list.projects_get.actions_get.actions_list.get_job_logs.get_code_scanning_alert.list_code_scanning_alerts.get_dependabot_alert.list_dependabot_alerts.get_secret_scanning_alert.list_secret_scanning_alerts.get_global_security_advisory.list_global_security_advisories.list_org_repository_security_advisories.list_repository_security_advisories.get_discussion.get_discussion_comments.list_discussion_categories.list_discussions.list_starred_repositories.get_issue.get_pull_request.list_pull_requests.get_pull_request_files.get_pull_request_status.get_pull_request_comments.get_pull_request_reviews.list_comments.list_cycles.get_document.list_documents.list_issue_statuses.get_issue_status.list_my_issues.list_issue_labels.list_projects.get_project.list_project_labels.list_teams.get_team.list_users.get_user.aggregate_logs.list_spans.aggregate_spans.analyze_trace.trace_critical_path.query_metrics.aggregate_rum_events.list_rum_metrics.get_rum_metric.list_monitors.get_monitor.check_can_delete_monitor.validate_monitor.validate_existing_monitor.list_dashboards.get_dashboard.query_dashboard_widget.list_notebooks.get_notebook.query_notebook_cell.get_profiling_metrics.compare_profiling_metrics.whoami.get_issue_details.get_issue_tag_values.get_trace_details.get_event_attachment.get_doc.get_sentry_resource.list_events.list_issue_events.get_sentry_issue.fetch.get_comments.get_users.get_self.gmail_get_profile.gmail_read_message.gmail_read_thread.gmail_list_drafts.gmail_list_labels.google_drive_fetch.google_drive_export.gcal_list_calendars.gcal_list_events.gcal_get_event.atlassian_user_info.get_accessible_atlassian_resources.get_visible_jira_projects.get_jira_project_issue_types_metadata.get_jira_issue.get_transitions_for_jira_issue.get_jira_issue_remote_issue_links.get_confluence_spaces.get_confluence_page.get_pages_in_confluence_space.get_confluence_page_ancestors.get_confluence_page_descendants.get_confluence_page_footer_comments.get_confluence_page_inline_comments.confluence_get_page.confluence_get_page_children.confluence_get_comments.confluence_get_labels.jira_get_issue.jira_get_transitions.jira_get_worklog.jira_get_agile_boards.jira_get_board_issues.jira_get_sprints_from_board.jira_get_sprint_issues.jira_get_link_types.jira_download_attachments.jira_batch_get_changelogs.jira_get_user_profile.jira_get_project_issues.jira_get_project_versions.asana_get_attachment.asana_get_attachments_for_object.asana_get_goal.asana_get_goals.asana_get_parent_goals_for_goal.asana_get_portfolio.asana_get_portfolios.asana_get_items_for_portfolio.asana_get_project.asana_get_projects.asana_get_project_sections.asana_get_project_status.asana_get_project_statuses.asana_get_project_task_counts.asana_get_projects_for_team.asana_get_projects_for_workspace.asana_get_task.asana_get_tasks.asana_get_stories_for_task.asana_get_teams_for_workspace.asana_get_teams_for_user.asana_get_team_users.asana_get_time_period.asana_get_time_periods.asana_get_user.asana_get_workspace_users.asana_list_workspaces.read_file.read_text_file.read_media_file.read_multiple_files.list_directory.list_directory_with_sizes.directory_tree.get_file_info.list_allowed_directories.read_graph.open_nodes.query.read_query.list_tables.describe_table.git_status.git_diff.git_diff_unstaged.git_diff_staged.git_log.git_show.git_branch.list_teams.list_users_by_org.get_dashboard_by_uid.get_dashboard_summary.get_dashboard_property.get_dashboard_panel_queries.run_panel_query.list_datasources.get_datasource.get_query_examples.query_prometheus.query_prometheus_histogram.list_prometheus_metric_metadata.list_prometheus_metric_names.list_prometheus_label_names.list_prometheus_label_values.query_loki_logs.query_loki_stats.query_loki_patterns.list_loki_label_names.list_loki_label_values.list_incidents.get_incident.list_sift_investigations.get_sift_investigation.get_sift_analysis.list_oncall_schedules.get_oncall_shift.get_current_oncall_users.list_oncall_teams.list_oncall_users.list_alert_groups.get_alert_group.get_annotations.get_annotation_tags.get_panel_image.list_incidents.get_incident.get_outlier_incident.get_past_incidents.get_related_incidents.list_incident_notes.list_incident_workflows.get_incident_workflow.list_services.get_service.list_team_members.get_user_data.list_schedules.get_schedule.list_schedule_users.list_oncalls.list_log_entries.get_log_entry.list_escalation_policies.get_escalation_policy.list_event_orchestrations.get_event_orchestration.list_status_pages.get_status_page_post.list_alerts_from_incident.get_alert_from_incident.list_change_events.get_change_event.list_organizations.get_organization.get_cost.list_extensions.list_migrations.get_logs.get_advisors.get_project_url.get_publishable_keys.generate_typescript_types.list_edge_functions.get_edge_function.list_storage_buckets.get_storage_config.get_stripe_account_info.retrieve_balance.list_customers.list_products.list_prices.list_invoices.list_payment_intents.list_subscriptions.list_coupons.list_disputes.fetch_stripe_resources.get_article_metadata.get_full_text_article.convert_article_ids.get_copyright_status.download_paper.list_papers.read_paper.get_paper_fulltext.get_pubmed_article_metadata.download_pubmed_pdf.pubmed_fetch.pubmed_pmc_fetch.pubmed_spell.pubmed_cite.pubmed_related.bigquery_query.bigquery_schema.list_dataset_ids.list_table_ids.get_dataset_info.get_table_info.firecrawl_scrape.firecrawl_map.firecrawl_crawl.firecrawl_check_crawl_status.firecrawl_extract.get_code_context_exa.company_research_exa.crawling_exa.deep_researcher_check.perplexity_ask.perplexity_research.perplexity_reason.tavily_extract.tavily_crawl.tavily_map.tavily_research.obsidian_list_files_in_vault.obsidian_list_files_in_dir.obsidian_get_file_contents.obsidian_batch_get_file_contents.obsidian_get_periodic_note.obsidian_get_recent_periodic_notes.obsidian_get_recent_changes.get_figma_data.download_figma_images.browser_console_messages.browser_network_requests.browser_take_screenshot.browser_snapshot.browser_get_config.browser_route_list.browser_cookie_list.browser_cookie_get.browser_localstorage_list.browser_localstorage_get.browser_sessionstorage_list.browser_sessionstorage_get.browser_storage_state.puppeteer_screenshot.list_databases.list_collections.collection_indexes.collection_schema.collection_storage_size.db_stats.explain.mongodb_logs.aggregate.count.export.get_neo4j_schema.read_neo4j_cypher.list_instances.get_instance_details.get_instance_by_name.list_indices.get_mappings.esql.get_shards.list_records.list_bases.get_record.get_productivity_stats.get_overview.fetch_object.user_info.list_workspaces.view_attachment.get_available_services.read_documentation.read_sections.recommend.analyze_log_group.analyze_metric.describe_log_groups.get_active_alarms.get_alarm_history.get_metric_data.get_metric_metadata.kubectl_get.kubectl_describe.kubectl_logs.kubectl_context.explain_resource.list_api_resources.namespaces_list.nodes_log.nodes_top.pods_get.pods_list.pods_list_in_namespace.pods_log.pods_top.resources_get.resources_list`.split(`.`))}));function aVe(e){return e.scope===`project`||e.scope===`local`}async function oVe(e,t){if(!t.headersHelper)return null;if(`scope`in t&&aVe(t)&&!jr()&&!Zi())return Ri(`MCP headersHelper invoked before trust check`,Error(`Security: headersHelper for MCP server '${e}' executed before workspace trust is confirmed. If you see this message, post in .`)),null;try{xa(e,`Executing headersHelper to get dynamic headers`);let n=await ka(t.headersHelper,[],{shell:!0,timeout:1e4,env:{...process.env,WORKMATE_MCP_SERVER_NAME:e,WORKMATE_MCP_SERVER_URL:t.url}});if(n.code!==0||!n.stdout)throw Error(`headersHelper for MCP server '${e}' did not return a valid value`);let r=wi(n.stdout.trim());if(typeof r!=`object`||!r||Array.isArray(r))throw Error(`headersHelper for MCP server '${e}' must return a JSON object with string key-value pairs`);for(let[t,n]of Object.entries(r))if(typeof n!=`string`)throw Error(`headersHelper for MCP server '${e}' returned non-string value for key "${t}": ${typeof n}`);return xa(e,`Successfully retrieved ${Object.keys(r).length} headers from headersHelper`),r}catch(t){return Ca(e,`Error getting headers from headersHelper: ${G(t)}`),Y(Error(`Error getting MCP headers from headersHelper for server '${e}': ${G(t)}`)),null}}async function sY(e,t){let n=t.headers||{},r=await oVe(e,t)||{};return{...n,...r}}var sVe=n((()=>{H(),Ki(),q(),vi(),Oa(),Ta(),zi(),Ra()})),cVe,lVe=n((()=>{b(),cVe=class{constructor(e,t){x(this,`serverName`,void 0),x(this,`sendMcpMessage`,void 0),x(this,`isClosed`,!1),x(this,`onclose`,void 0),x(this,`onerror`,void 0),x(this,`onmessage`,void 0),this.serverName=e,this.sendMcpMessage=t}async start(){}async send(e){if(this.isClosed)throw Error(`Transport is closed`);let t=await this.sendMcpMessage(this.serverName,e);this.onmessage&&this.onmessage(t)}async close(){this.isClosed||(this.isClosed=!0,this.onclose?.())}}}));function uVe(e){return(`code`in e?e.code:void 0)===404?e.message.includes(`"code":-32001`)||e.message.includes(`"code": -32001`):!1}function dVe(){return parseInt(process.env.MCP_TOOL_TIMEOUT||``,10)||IVe}function cY(e){let t=$Be(e);return t?{mcpServerBaseUrl:t}:{}}function fVe(e,t,n){return{...cY(t)},xa(e,`Authentication required for ${{sse:`SSE`,http:`HTTP`,"claudeai-proxy":`claude.ai proxy`}[n]} server`),{name:e,type:`needs-auth`,config:t}}async function pVe(e,t){let n=(await import(`./wrapper-B-Q3Illb.js`)).default;return new n(e,[`mcp`],t)}function lY(){return parseInt(process.env.MCP_TIMEOUT||``,10)||3e4}function mVe(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`,RVe);let i=new AbortController,a=setTimeout(e=>e.abort(new DOMException(`The operation timed out.`,`TimeoutError`)),vY,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 hVe(){return parseInt(process.env.MCP_SERVER_CONNECTION_BATCH_SIZE||``,10)||3}function gVe(){return parseInt(process.env.MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE||``,10)||20}function _Ve(e){return!e.type||e.type===`stdio`||e.type===`sdk`}function vVe(e){return!e.name.startsWith(`mcp__ide__`)||zVe.includes(e.name)}function uY(e,t){return`${e}-${W(t)}`}async function dY(e,t){let n=uY(e,t);try{let n=await yY(e,t);n.type===`connected`&&await n.cleanup()}catch{}yY.cache.delete(n),xY.cache.delete(e),SY.cache.delete(e),CY.cache.delete(e)}async function fY(e){if(e.config.type===`sdk`)return e;let t=await yY(e.name,e.config);if(t.type!==`connected`)throw new Ni(`MCP server "${e.name}" is not connected`,`MCP server not connected`);return t}function yVe(e,t){if(e.type!==t.type)return!1;let{scope:n,...r}=e,{scope:i,...a}=t;return W(r)===W(a)}function bVe(e,t){let n=Object.keys(e);return n.length>0?n.map(t=>`${t}=${String(e[t])}`).join(` `):t}async function xVe(e,t){try{DF(),await dY(e,t);let n=await yY(e,t);if(n.type!==`connected`)return{client:n,tools:[],commands:[]};let r=!!n.capabilities?.resources,[i,a,o]=await Promise.all([xY(n),CY(n),r?SY(n):Promise.resolve([])]),s=[...a],c=[];return r&&([kJ,IJ].some(e=>i.some(t=>fs(t,e.name)))||c.push(kJ,IJ)),{client:n,tools:[...i,...c],commands:s,resources:o.length>0?o:void 0}}catch(n){return Ca(e,`Error during reconnection: ${G(n)}`),{client:{name:e,type:`failed`,config:t},tools:[],commands:[]}}}async function SVe(e,t,n){await nze(e,n,{concurrency:t})}async function CVe(e,t){let n=!1,r=Object.entries(t??(await DBe()).servers),i=[];for(let t of r)tY(t[0])?e({client:{name:t[0],type:`disabled`,config:t[1]},tools:[],commands:[]}):i.push(t);let a=i.length,o=Bt(i,([e,t])=>t.type===`stdio`),s=Bt(i,([e,t])=>t.type===`sse`),c=Bt(i,([e,t])=>t.type===`http`),l=Bt(i,([e,t])=>t.type===`sse-ide`),u=Bt(i,([e,t])=>t.type===`ws-ide`),d=i.filter(([e,t])=>_Ve(t)),f=i.filter(([e,t])=>!_Ve(t)),p={totalServers:a,stdioCount:o,sseCount:s,httpCount:c,sseIdeCount:l,wsIdeCount:u},m=async([t,r])=>{try{if(tY(t)){e({client:{name:t,type:`disabled`,config:r},tools:[],commands:[]});return}let i=await yY(t,r,p);if(i.type!==`connected`){e({client:i,tools:[],commands:[]});return}let a=!!i.capabilities?.resources,[o,s,c]=await Promise.all([xY(i),CY(i),a?SY(i):Promise.resolve([])]),l=[...s],u=[];a&&!n&&(n=!0,u.push(kJ,IJ)),e({client:i,tools:[...o,...u],commands:l,resources:c.length>0?c:void 0})}catch(n){Ca(t,`Error fetching tools/commands/resources: ${G(n)}`),e({client:{name:t,type:`failed`,config:r},tools:[],commands:[]})}};await Promise.all([SVe(d,hVe(),m),SVe(f,gVe(),m)])}function wVe(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=[];CVe(e=>{i.push(e.client),a.push(...e.tools),o.push(...e.commands),r++,r>=n&&(o.reduce((e,t)=>e+(t.name.length+(t.description??``).length+(t.argumentHint??``).length),0),a.length,o.length,t({clients:i,tools:a,commands:o}))},e).catch(e=>{Ca(`prefetchAllMcpResources`,`Failed to get MCP resources: ${G(e)}`),t({clients:[],tools:[],commands:[]})})})}async function TVe(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 EVe(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 gy(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(LVe.has(r.mimeType??``)){let e=Buffer.from(r.blob,`base64`),t=r.mimeType?.split(`/`)[1]||`png`,a=await gy(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 EVe(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 EVe(e,t,n,r){let i=await Bze(e,t,`mcp-${hn(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:Vze(i.filepath,t,i.size,r)}]}function pY(e,t=2){if(e===null)return`null`;if(Array.isArray(e))return e.length===0?`[]`:`[${pY(e[0],t-1)}]`;if(typeof e==`object`){if(t<=0)return`{...}`;let n=Object.entries(e).slice(0,10).map(([e,n])=>`${e}: ${pY(n,t-1)}`),r=Object.keys(e).length>10?`, ...`:``;return`{${n.join(`, `)}${r}}`}return typeof e}async function DVe(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:W(e.structuredContent),type:`structuredContent`,schema:pY(e.structuredContent)};if(`content`in e&&Array.isArray(e.content)){let t=(await Promise.all(e.content.map(e=>TVe(e,n,r,!0)))).flat();return{content:t,type:`contentArray`,schema:pY(t)}}}let i=`MCP server "${n}" tool "${t}": unexpected response format`;throw Ca(n,i),new Ni(i,`MCP tool unexpected response format`)}function OVe(e){return!e||typeof e==`string`?!1:e.some(e=>e.type===`image`)}async function kVe(e,t,n,r,i=!1){let{content:a,type:o,schema:s}=await DVe(e,t,n,r);if(i&&!OVe(a)||!await yze(a))return a;if(MJ(a),f(process.env.ENABLE_MCP_LARGE_OUTPUT_FILES))return await xze(a);if(!a)return a;if(OVe(a))return await xze(a);let c=Date.now(),l=`mcp-${hn(n)}-${hn(t)}-${c}`,u=jVe(a),d=typeof a==`string`?a:u??W(a,null,2),p=await rx(d,l);if(sx(p))return`Error: result (${d.length.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.`;p.originalSize;let m=u===void 0?Lze(o,s):Lze(`toolResult`);return Rze(p.filepath,p.originalSize,m)}function AVe(){let e=process.env.MCP_TRUNCATION_PROMPT_OVERRIDE;return e?e!==`legacy`:!1}function jVe(e){if(!AVe()||!Array.isArray(e)||e.length!==1)return;let t=e[0];if(t?.type===`text`&&!(`annotations`in t||`_meta`in t))return t.text}async function MVe({client:e,clientConnection:t,tool:n,args:r,meta:i,signal:a,setAppState:o,onProgress:s,imageLimits:c,hasResultSizeAnnotation:l=!1,callToolFn:u=NVe,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 FK)||e.code!==lW.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 xa(s,`Tool '${n}' returned -32042 but no valid elicitations in error data`),e;xa(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 BJ(s,e,a);if(r){if(xa(s,`URL elicitation ${t} resolved by hook: ${W(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 VJ(s,i,a,`url`,t);if(c.action!==`accept`)return xa(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.`};xa(s,`Elicitation ${t} completed, retrying tool call`)}}}async function NVe({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{xa(t,`Calling MCP tool: ${r}`),d=setInterval((e,t,n)=>{let r=Date.now()-e;xa(t,`Tool '${n}' still running (${`${Math.floor(r/1e3)}s`} elapsed)`)},3e4,u,t,r);let n=dVe(),f,p=new Promise((e,i)=>{f=setTimeout((e,t,n,r)=>{e(new Ni(`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},BG,{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 Ca(t,e),new gY(e,`MCP tool returned error`,`_meta`in m&&m._meta?{_meta:m._meta}:void 0)}let h=Date.now()-u;return xa(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`}`),NEe(t),{content:await kVe(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`&&xa(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 yJ)throw xa(t,`Tool call returned 401 Unauthorized - token may have expired`),new mY(t,`MCP server "${t}" requires re-authorization (token expired)`);let r=uVe(e),i=`code`in e&&e.code===-32e3&&e.message.includes(`Connection closed`)&&n.type===`http`;if(r||i)throw xa(t,`MCP session expired during tool call (${r?`404/-32001`:`connection closed`}), clearing connection cache for re-initialization`),await dY(t,n),new hY(t)}if(!(e instanceof Error)||e.name!==`AbortError`)throw e;return{content:void 0}}finally{d!==void 0&&clearInterval(d)}}function PVe(e){let t=e.message.content?.[0];if(!(!t||typeof t==`string`||t.type!==`tool_use`))return t.id}async function FVe(e,t){let n=[],r=[],i=await Promise.allSettled(Object.entries(e).map(async([e,n])=>{let r=new cVe(e,t),i=new eq({name:`workmate`,title:`Work Mate`,version:`0.0.28`,description:`Agentic coding tool`,websiteUrl:nF},{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 xY(a);o.push(...e)}return{client:a,tools:o}}catch(t){return Ca(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 mY,hY,gY,IVe,_Y,LVe,vY,RVe,zVe,yY,bY,xY,SY,CY,wY=n((()=>{JLe(),HRe(),XRe(),tze(),Gq(),LK(),sm(),d(),xm(),rze(),H(),rF(),Ps(),AJ(),Ize(),LJ(),tt(),pi(),wM(),q(),g(),vi(),Iie(),Sy(),Ta(),Hze(),wze(),$ze(),ln(),toe(),Vs(),Mb(),dx(),Ra(),rBe(),Hn(),Mn(),oY(),sse(),SJ(),iVe(),AF(),Ws(),rY(),sVe(),lVe(),b(),zi(),mY=class extends Error{constructor(e,t){super(t),x(this,`serverName`,void 0),this.name=`McpAuthError`,this.serverName=e}},hY=class extends Error{constructor(e){super(`MCP server "${e}" session expired`),this.name=`McpSessionExpiredError`}},gY=class extends Ni{constructor(e,t,n){super(e,t),x(this,`mcpMeta`,void 0),this.mcpMeta=n,this.name=`McpToolCallError`}},IVe=1e8,_Y=2048,LVe=new Set([`image/jpeg`,`image/png`,`image/gif`,`image/webp`]),vY=6e4,RVe=`application/json, text/event-stream`,zVe=[`mcp__ide__executeCode`,`mcp__ide__getDiagnostics`],yY=u(async(e,t,n)=>{let r=Date.now();try{let i;if(t.type===`sse`){let n=await sY(e,t),r={fetch:mVe(Wq()),requestInit:{headers:{"User-Agent":Eo(),...n}}};r.eventSourceInit={fetch:async(e,t)=>{let r=Hs();return fetch(e,{...t,...r,headers:{"User-Agent":Eo(),...t?.headers,...n,Accept:`text/event-stream`}})}},i=new CJ(new URL(t.url),r),xa(e,`SSE transport initialized, awaiting connection`)}else if(t.type===`sse-ide`){xa(e,`Setting up SSE-IDE transport to ${t.url}`);let n=Hs(),r=n.dispatcher?{eventSourceInit:{fetch:async(e,t)=>fetch(e,{...t,...n,headers:{"User-Agent":Eo(),...t?.headers}})}}:{};i=new CJ(new URL(t.url),Object.keys(r).length>0?r:void 0)}else if(t.type===`ws-ide`){let e=roe(),n={"User-Agent":Eo(),...t.authToken&&{"X-Work Mate-Code-Ide-Authorization":t.authToken}},r;r=typeof Bun<`u`?new globalThis.WebSocket(t.url,{protocols:[`mcp`],headers:n,proxy:ioe(t.url),tls:e||void 0}):await pVe(t.url,{headers:n,agent:noe(t.url),...e||{}}),i=new zJ(r)}else if(t.type===`ws`){xa(e,`Initializing WebSocket transport to ${t.url}`);let n=await sY(e,t),r=roe(),a={"User-Agent":Eo(),...n},o=om(a,(e,t)=>t.toLowerCase()===`authorization`?`[REDACTED]`:e);xa(e,`WebSocket transport options: ${W({url:t.url,headers:o})}`);let s;s=typeof Bun<`u`?new globalThis.WebSocket(t.url,{protocols:[`mcp`],headers:a,proxy:ioe(t.url),tls:r||void 0}):await pVe(t.url,{headers:a,agent:noe(t.url),...r||{}}),i=new zJ(s)}else if(t.type===`http`){xa(e,`Initializing HTTP transport to ${t.url}`),xa(e,`Node version: ${process.version}, Platform: ${process.platform}`),xa(e,`Environment: ${W({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=await sY(e,t),r=Hs();xa(e,`Proxy options: ${r.dispatcher?`custom dispatcher`:`default`}`);let a={fetch:mVe(Wq()),requestInit:{...r,headers:{"User-Agent":Eo(),...n}}},o=a.requestInit?.headers?om(a.requestInit.headers,(e,t)=>t.toLowerCase()===`authorization`?`[REDACTED]`:e):void 0;xa(e,`HTTP transport options: ${W({url:t.url,headers:o,timeoutMs:vY})}`),i=new eze(new URL(t.url),a),xa(e,`HTTP transport created successfully`)}else if(t.type===`sdk`)throw Error(`SDK servers should be handled in print.ts`);else if(t.type===`stdio`||!t.type){let e=t;i=new YRe({command:process.env.WORKMATE_SHELL_PREFIX||e.command,args:process.env.WORKMATE_SHELL_PREFIX?[[e.command,...e.args].join(` `)]:e.args,env:{...jb(),...e.env},stderr:`pipe`})}else throw Error(`Unsupported server type: ${t.type}`);let a,o=``;if(t.type===`stdio`||!t.type){let e=i;e.stderr&&(a=e=>{if(o.length<64*1024*1024)try{o+=e.toString()}catch{}},e.stderr.on(`data`,a))}let s=new eq({name:`workmate`,title:`Work Mate`,version:`0.0.28`,description:`Agentic coding tool`,websiteUrl:nF},{capabilities:{roots:{},elicitation:{}}});if(t.type===`http`&&xa(e,`Client created, setting up request handler`),s.setRequestHandler(MK,async()=>(xa(e,`Received ListRoots request from server`),{roots:[{uri:`file://${ri()}`}]})),xa(e,`Starting connection with timeout of ${lY()}ms`),t.type===`http`){xa(e,`Testing basic HTTP connectivity to ${t.url}`);try{let n=new URL(t.url);xa(e,`Parsed URL: host=${n.hostname}, port=${n.port||`default`}, protocol=${n.protocol}`),(n.hostname===`127.0.0.1`||n.hostname===`localhost`)&&xa(e,`Using loopback address: ${n.hostname}`)}catch(t){xa(e,`Failed to parse URL: ${t}`)}}let c=s.connect(i),l=new Promise((t,n)=>{let a=setTimeout(()=>{xa(e,`Connection timeout triggered after ${Date.now()-r}ms (limit: ${lY()}ms)`),i.close().catch(()=>{}),n(new Ni(`MCP server "${e}" connection timed out after ${lY()}ms`,`MCP connection timeout`))},lY());c.then(()=>{clearTimeout(a)},e=>{clearTimeout(a)})});try{await Promise.race([c,l]),o&&(Ca(e,`Server stderr: ${o}`),o=``);let n=Date.now()-r;xa(e,`Successfully connected (transport: ${t.type||`stdio`}) in ${n}ms`)}catch(n){let a=Date.now()-r;if(t.type===`sse`&&n instanceof Error){if(xa(e,`SSE Connection failed after ${a}ms: ${W({url:t.url,error:n.message,errorType:n.constructor.name,stack:n.stack})}`),Ca(e,n),n instanceof yJ)return fVe(e,t,`sse`)}else if(t.type===`http`&&n instanceof Error){let r=n;if(xa(e,`HTTP Connection failed after ${a}ms: ${n.message} (code: ${r.code||`none`}, errno: ${r.errno||`none`})`),Ca(e,n),n instanceof yJ)return fVe(e,t,`http`)}else t.type===`sse-ide`||t.type;throw i.close().catch(()=>{}),o&&Ca(e,`Server stderr: ${o}`),n}let u=s.getServerCapabilities(),d=s.getServerVersion(),f=s.getInstructions(),p=f;f&&f.length>_Y&&(p=`${f.slice(0,_Y)}… [truncated]`,xa(e,`Server instructions truncated from ${f.length} to ${_Y} chars`)),xa(e,`Connection established with capabilities: ${W({hasTools:!!u?.tools,hasPrompts:!!u?.prompts,hasResources:!!u?.resources,hasResourceSubscribe:!!u?.resources?.subscribe,serverVersion:d||`unknown`})}`),K(`[MCP] Server "${e}" connected with subscribe=${!!u?.resources?.subscribe}`),s.setRequestHandler(SK,async t=>(xa(e,`Elicitation request received during initialization: ${W(t)}`),{action:`cancel`}));let m=Date.now(),h=!1,g=s.onerror,_=s.onclose,v=0,y=!1,b=t=>{y||(y=!0,xa(e,`Closing transport (${t})`),s.close().catch(t=>{xa(e,`Error during close: ${G(t)}`)}))},x=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`);s.onerror=n=>{let r=Date.now()-m;h=!0;let i=t.type||`stdio`;if(xa(e,`${i.toUpperCase()} connection dropped after ${Math.floor(r/1e3)}s uptime`),n.message&&(n.message.includes(`ECONNRESET`)?xa(e,`Connection reset - server may have crashed or restarted`):n.message.includes(`ETIMEDOUT`)?xa(e,`Connection timeout - network issue or server unresponsive`):n.message.includes(`ECONNREFUSED`)?xa(e,`Connection refused - server may be down`):n.message.includes(`EPIPE`)?xa(e,`Broken pipe - server closed connection unexpectedly`):n.message.includes(`EHOSTUNREACH`)?xa(e,`Host unreachable - network connectivity issue`):n.message.includes(`ESRCH`)?xa(e,`Process not found - stdio server process terminated`):n.message.includes(`spawn`)?xa(e,`Failed to spawn process - check command and permissions`):xa(e,`Connection error: ${n.message}`)),i===`http`&&uVe(n)){xa(e,`MCP session expired (server returned 404 with session-not-found), triggering reconnection`),b(`session expired`),g&&g(n);return}if(i===`sse`||i===`http`){if(n.message.includes(`Maximum reconnection attempts`)){b(`SSE reconnection exhausted`),g&&g(n);return}x(n.message)?(v++,xa(e,`Terminal connection error ${v}/3`),v>=3&&(v=0,b(`max consecutive terminal errors`))):v=0}g&&g(n)},s.onclose=()=>{let n=Date.now()-m;xa(e,`${(t.type??`unknown`).toUpperCase()} connection closed after ${Math.floor(n/1e3)}s (${h?`with errors`:`cleanly`})`);let r=uY(e,t);xY.cache.delete(e),SY.cache.delete(e),CY.cache.delete(e),yY.cache.delete(r),xa(e,`Cleared connection cache for reconnection`),_&&_()};let S=async()=>{if(a&&(t.type===`stdio`||!t.type)&&i.stderr?.off(`data`,a),t.type===`stdio`)try{let t=i.pid;if(t){xa(e,`Sending SIGINT to MCP server process`);try{process.kill(t,`SIGINT`)}catch(t){xa(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),xa(e,`MCP server process exited cleanly`),n())}},50),a=setTimeout(()=>{r||(r=!0,clearInterval(i),xa(e,`Cleanup timeout reached, stopping process monitoring`),n())},600);try{if(await Us(100),!r){try{process.kill(t,0),xa(e,`SIGINT failed, sending SIGTERM to MCP server process`);try{process.kill(t,`SIGTERM`)}catch(t){xa(e,`Error sending SIGTERM: ${t}`),r=!0,clearInterval(i),clearTimeout(a),n();return}}catch{r=!0,clearInterval(i),clearTimeout(a),n();return}if(await Us(400),!r)try{process.kill(t,0),xa(e,`SIGTERM failed, sending SIGKILL to MCP server process`);try{process.kill(t,`SIGKILL`)}catch(t){xa(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){xa(e,`Error terminating process: ${t}`)}try{await s.close()}catch(t){xa(e,`Error closing client: ${t}`)}},C=Ai(S),w=async()=>{C?.(),await S()};return Date.now()-r,t.type,n?.totalServers,n?.stdioCount,n?.sseCount,n?.httpCount,n?.sseIdeCount,n?.wsIdeCount,{...cY(t)},{name:e,client:s,type:`connected`,capabilities:u??{},serverInfo:d,instructions:p,config:t,cleanup:w}}catch(i){let a=Date.now()-r;return n?.totalServers,n?.stdioCount||+(t.type===`stdio`),n?.sseCount||+(t.type===`sse`),n?.httpCount||+(t.type===`http`),n?.sseIdeCount||+(t.type===`sse-ide`),n?.wsIdeCount||+(t.type===`ws-ide`),t.type,{...cY(t)},xa(e,`Connection failed after ${a}ms: ${G(i)}`),Ca(e,`Connection failed: ${G(i)}`),{name:e,type:`failed`,config:t,error:G(i)}}},uY),bY=20,xY=rn(async e=>{if(e.type!==`connected`)return[];try{if(!e.capabilities?.tools)return[];let t=ose((await e.client.request({method:`tools/list`},zG)).tools),n=e.config.type===`sdk`&&h(process.env.CLAUDE_AGENT_SDK_MCP_NO_PREFIX);return t.map(t=>{let r=Gee(e.name,t.name);return{...Fze,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>_Y?`${e.slice(0,_Y)}… [truncated]`:e},isConcurrencySafe(){return t.annotations?.readOnlyHint??!1},isReadOnly(){return t.annotations?.readOnlyHint??!1},toAutoClassifierInput(e){return bVe(e,t.name)},isDestructive(){return t.annotations?.destructiveHint??!1},isOpenWorld(){return t.annotations?.openWorldHint??!1},isSearchOrReadCommand(){return tVe(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=PVe(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 MVe({client:await fY(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 hY&&i<1){xa(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 Ni)){let e=n.constructor.name;if(e===`Error`)throw new Ni(n.message,n.message.slice(0,200));if(e===`McpError`&&`code`in n&&typeof n.code==`number`)throw new Ni(n.message,`McpError ${n.code}`)}throw n}},userFacingName(){let n=t.annotations?.title||t.name;return`${e.name} - ${n} (MCP)`}}}).filter(vVe)}catch(t){return Ca(e.name,`Failed to fetch tools: ${G(t)}`),[]}},e=>e.name,bY),SY=rn(async e=>{if(e.type!==`connected`)return[];try{if(!e.capabilities?.resources)return[];let t=await e.client.request({method:`resources/list`},aG);return t.resources?t.resources.map(t=>({...t,server:e.name})):[]}catch(t){return Ca(e.name,`Failed to fetch resources: ${G(t)}`),[]}},e=>e.name,bY),CY=rn(async e=>{if(e.type!==`connected`)return[];try{if(!e.capabilities?.prompts)return[];let t=await e.client.request({method:`prompts/list`},SG);return t.prompts?ose(t.prompts).map(t=>{let n=Object.values(t.arguments??{}).map(e=>e.name);return{type:`prompt`,name:`mcp__${hn(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 fY(e),a=await r.client.getPrompt({name:t.name,arguments:ffe(n,i)});return(await Promise.all(a.messages.map(e=>TVe(e.content,r.name)))).flat()}catch(n){throw Ca(e.name,`Error running command '${t.name}': ${G(n)}`),n}}}}):[]}catch(t){return Ca(e.name,`Failed to fetch commands: ${G(t)}`),[]}},e=>e.name,bY)}));function BVe(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 TY(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 VVe(e){let t=[];if(tr(`policySettings`)?.allowManagedHooksOnly!==!0){let e=[`userSettings`,`projectSettings`,`localSettings`],n=new Set;for(let r of e){let e=Un(r);if(e){let t=xc(e);if(n.has(t))continue;n.add(t)}let i=tr(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=ZVe(e,Kr());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 HVe(e){switch(e){case`userSettings`:return`User settings (~/.workmate/settings.json)`;case`projectSettings`:return`Project settings (.workmate/settings.json)`;case`localSettings`:return`Local settings (.workmate/settings.local.json)`;case`pluginHook`:return`Plugin hooks (~/.workmate/plugins/*/hooks/hooks.json)`;case`sessionHook`:return`Session hooks (in-memory, temporary)`;case`builtinHook`:return`Built-in hooks (registered internally by Work Mate)`;default:return e}}function UVe(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 WVe(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 GVe(e,t,n){let r=Qee.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 EY=n((()=>{H(),Rn(),Ln(),Nee(),OY()}));function KVe(e,t,n,r,i,a,o){JVe(e,t,n,r,i,a,o)}function qVe(e,t,n,r,i,a,o){let s=o?.id||`function-hook-${Date.now()}-${Math.random()}`;return JVe(e,t,n,r,{type:`function`,id:s,timeout:o?.timeout||5e3,callback:i,errorMessage:a}),s}function JVe(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}),K(`Added session hook for event ${n} in session ${t}`)}function YVe(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=>!BVe(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}),K(`Removed session hook for event ${n} in session ${t}`)}function XVe(e){return e.map(e=>({matcher:e.matcher,skillRoot:e.skillRoot,hooks:e.hooks.map(e=>e.hook).filter(e=>e.type!==`function`)}))}function ZVe(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,XVe(e)),i}for(let e of at){let t=r.hooks[e];t&&i.set(e,XVe(t))}return i}function QVe(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 at){let t=r.hooks[e];if(t){let n=a(t);n.length>0&&i.set(e,n)}}return i}function $Ve(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=>BVe(e.hook,i));if(t)return t}}}function DY(e,t){e(e=>(e.sessionHooks.delete(t),e)),K(`Cleared all session hooks for session ${t}`)}var OY=n((()=>{Fn(),q(),EY()}));function eHe(e,t,n,r,i=!1){if(!n||Object.keys(n).length===0)return;let a=0;for(let o of at){let s=n[o];if(!s||s.length===0)continue;let c=o;i&&o===`Stop`&&(c=`SubagentStop`,K(`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)KVe(e,t,c,r,n),a++}}a>0&&K(`Registered ${a} frontmatter hook(s) from ${r} for session ${t}`)}var tHe=n((()=>{Fn(),q(),OY()}));async function nHe(e,t){if(!e.mcpServers?.length)return{clients:t,tools:[],cleanup:async()=>{}};let n=ab(e.source);if(ib(`mcp`)&&!n)return K(`[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=XJ(t),!n){K(`[Agent: ${e.agentType}] MCP server not found: ${t}`,{level:`warn`});continue}}else{let r=Object.entries(t);if(r.length!==1){K(`[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 yY(o,n);if(r.push(c),s&&i.push(c),c.type===`connected`){let t=await xY(c);a.push(...t),K(`[Agent: ${e.agentType}] Connected to MCP server '${o}' with ${t.length} tools`)}else K(`[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){K(`[Agent: ${e.agentType}] Error cleaning up MCP server '${t.name}': ${n}`,{level:`warn`})}};return{clients:[...t,...r],tools:a,cleanup:o}}function rHe(e){return e.type===`assistant`||e.type===`user`||e.type===`progress`||e.type===`system`&&`subtype`in e&&e.subtype===`compact_boundary`}async function*kY({agentDefinition:e,promptMessages:t,toolUseContext:n,canUseTool:r,isAsync:i,canShowPermissionPrompts:a,forkContextMessages:o,querySource:s,override:c,model:l,maxTurns:u,preserveToolUseResults:d,availableTools:f,allowedTools:p,onCacheSafeParams:m,contentReplacementState:h,useExactTools:g,worktreePath:_,description:v,transcriptSubdir:y,onQueryProgress:b}){let x=n.getAppState(),S=x.toolPermissionContext.mode,C=n.setAppStateForTasks??n.setAppState,w=WH(e.model,n.options.mainLoopModel,l,S),T=c?.agentId?c.agentId:JH();y&&h6(T,y),Qoe()&&(n.agentId??Kr(),e.agentType);let E=[...o?PH(o):[],...t],D=o===void 0?NT(100):IT(n.readFileState),[O,k]=await Promise.all([c?.userContext??fO(),c?.systemContext??dO()]),A=e.omitAgentsMd&&!c?.userContext&&!0,{agentsMd:ee,...te}=O,ne=A?te:O,{gitStatus:re,...ie}=k,ae=e.agentType===`Explore`||e.agentType===`Plan`?ie:k,j=e.permissionMode,oe=()=>{let e=n.getAppState(),t=e.toolPermissionContext;j&&e.toolPermissionContext.mode!==`bypassPermissions`&&e.toolPermissionContext.mode!==`acceptEdits`&&e.toolPermissionContext.mode!==`auto`&&(t={...t,mode:j});let r=a===void 0?j!==`bubble`&&i:!a;return r&&(t={...t,shouldAvoidPermissionPrompts:!0}),i&&!r&&(t={...t,awaitAutomatedChecksBeforeDialog:!0}),p!==void 0&&(t={...t,alwaysAllowRules:{cliArg:e.toolPermissionContext.alwaysAllowRules.cliArg,session:[...p]}}),t===e.toolPermissionContext?e:{...e,toolPermissionContext:t}},se=g?f:fU(e,f,i).resolvedTools,ce=Array.from(x.toolPermissionContext.additionalWorkingDirectories.keys()),M=c?.systemPrompt?c.systemPrompt:$g(await iHe(e,n,w,ce,se)),N=c?.abortController?c.abortController:i?new AbortController:n.abortController,le=[];for await(let t of Dat(T,e.agentType,N.signal))t.additionalContexts&&t.additionalContexts.length>0&&le.push(...t.additionalContexts);if(le.length>0){let e=a2({type:`hook_additional_context`,content:le,hookName:`SubagentStart`,toolUseID:zc(),hookEvent:`SubagentStart`});E.push(e)}let ue=!ib(`hooks`)||ab(e.source);e.hooks&&ue&&eHe(C,T,e.hooks,`agent '${e.agentType}'`,!0);let de=e.skills??[];if(de.length>0){let t=await $3(Wr()),r=[];for(let n of de){let i=aHe(n,t,e);if(!i){K(`[Agent: ${e.agentType}] Warning: Skill '${n}' specified in frontmatter was not found`,{level:`warn`});continue}let a=Ztt(i,t);if(a.type!==`prompt`){K(`[Agent: ${e.agentType}] Warning: Skill '${n}' is not a prompt-based skill`,{level:`warn`});continue}r.push({skillName:n,skill:a})}let{formatSkillLoadingMetadata:i}=await import(`./processSlashCommand-wXblpK2C.js`),a=await Promise.all(r.map(async({skillName:e,skill:t})=>({skillName:e,skill:t,content:await t.getPromptForCommand(``,n)})));for(let{skillName:t,skill:n,content:r}of a){K(`[Agent: ${e.agentType}] Preloaded skill '${t}'`);let a=i(t,n.progressMessage);E.push(Q({content:[{type:`text`,text:a},...r],isMeta:!0}))}}let{clients:fe,tools:pe,cleanup:me}=await nHe(e,n.options.mcpClients),he=pe.length>0?vm([...se,...pe],`name`):se,ge=o0(n,{options:{isNonInteractiveSession:g?n.options.isNonInteractiveSession:i?!0:n.options.isNonInteractiveSession??!1,appendSystemPrompt:n.options.appendSystemPrompt,tools:he,commands:[],debug:n.options.debug,verbose:n.options.verbose,mainLoopModel:w,thinkingConfig:g?n.options.thinkingConfig:{type:`disabled`},mcpClients:fe,mcpResources:n.options.mcpResources,agentDefinitions:n.options.agentDefinitions,...g&&{querySource:s}},agentId:T,agentType:e.agentType,messages:E,readFileState:D,abortController:N,getAppState:oe,shareSetAppState:!i,shareSetResponseLength:!0,criticalSystemReminder_EXPERIMENTAL:e.criticalSystemReminder_EXPERIMENTAL,contentReplacementState:h});d&&(ge.preserveToolUseResults=!0),m&&m({systemPrompt:M,userContext:ne,systemContext:ae,toolUseContext:ge,forkContextMessages:E}),w6(E,T).catch(e=>K(`Failed to record sidechain transcript: ${e}`)),v6(T,{agentType:e.agentType,..._&&{worktreePath:_},...v&&{description:v}}).catch(e=>K(`Failed to write agent metadata: ${e}`));let _e=E.at(-1)?.uuid??null;try{for await(let t of t0({messages:E,systemPrompt:M,userContext:ne,systemContext:ae,canUseTool:r,toolUseContext:ge,querySource:s,maxTurns:u??e.maxTurns})){if(b?.(),t.type===`stream_event`&&t.event.type===`message_start`&&t.ttftMs!=null){n.pushApiMetricsEntry?.(t.ttftMs);continue}if(t.type===`attachment`){if(t.attachment.type===`max_turns_reached`){K(`[Agent
|
|
1594
|
+
`}));function Kze(e){return!e.uri||!e.server?null:`Read resource "${e.uri}" from server "${e.server}"`}function qze(){return`readMcpResource`}function Jze(e,t,{verbose:n}){return!e?.contents||e.contents.length===0?(0,FJ.jsx)(P,{justifyContent:`space-between`,overflowX:`hidden`,width:`100%`,children:(0,FJ.jsx)($,{height:1,children:(0,FJ.jsx)(F,{dimColor:!0,children:`(No content)`})})}):(0,FJ.jsx)(fS,{content:W(e,null,2),verbose:n})}var FJ,Yze=n((()=>{uS(),mS(),Ze(),zi(),FJ=et()})),Xze,Zze,IJ,LJ=n((()=>{Ps(),LK(),At(),wY(),rt(),Hze(),zi(),sS(),Gze(),Yze(),Xze=z(()=>V({server:B().describe(`The MCP server name`),uri:B().describe(`The resource URI to read`)})),Zze=z(()=>V({contents:I(V({uri:B().describe(`Resource URI`),mimeType:B().optional().describe(`MIME type of the content`),text:B().optional().describe(`Text content of the resource`),blobSavedTo:B().optional().describe(`Path where binary blob content was saved`)}))})),IJ=Ts({isConcurrencySafe(){return!0},isReadOnly(){return!0},toAutoClassifierInput(e){return`${e.server} ${e.uri}`},shouldDefer:!0,name:`ReadMcpResourceTool`,searchHint:`read a specific MCP resource by URI`,maxResultSizeChars:1e5,async description(){return Uze},async prompt(){return Wze},get inputSchema(){return Xze()},get outputSchema(){return Zze()},async call(e,{options:{mcpClients:t}}){let{server:n,uri:r}=e,i=t.find(e=>e.name===n);if(!i)throw Error(`Server "${n}" not found. Available servers: ${t.map(e=>e.name).join(`, `)}`);if(i.type!==`connected`)throw Error(`Server "${n}" is not connected`);if(!i.capabilities?.resources)throw Error(`Server "${n}" does not support resources`);let a=await(await fY(i)).client.request({method:`resources/read`,params:{uri:r}},dG);return{data:{contents:await Promise.all(a.contents.map(async(e,t)=>{if(`text`in e)return{uri:e.uri,mimeType:e.mimeType,text:e.text};if(!(`blob`in e)||typeof e.blob!=`string`)return{uri:e.uri,mimeType:e.mimeType};let r=`mcp-resource-${Date.now()}-${t}-${Math.random().toString(36).slice(2,8)}`,i=await Bze(Buffer.from(e.blob,`base64`),e.mimeType,r);return`error`in i?{uri:e.uri,mimeType:e.mimeType,text:`Binary content could not be saved to disk: ${i.error}`}:{uri:e.uri,mimeType:e.mimeType,blobSavedTo:i.filepath,text:Vze(i.filepath,e.mimeType,i.size,`[Resource from ${n} at ${e.uri}] `)}}))}}},renderToolUseMessage:Kze,userFacingName:qze,renderToolResultMessage:Jze,isResultTruncated(e){return aS(W(e))},mapToolResultToToolResultBlockParam(e,t){return Ls(t,W(e))}})})),Qze,RJ,zJ,$ze=n((()=>{LK(),lr(),vi(),zi(),b(),Qze=0,RJ=1,zJ=class{constructor(e){if(x(this,`ws`,void 0),x(this,`started`,!1),x(this,`opened`,void 0),x(this,`isBun`,typeof Bun<`u`),x(this,`onclose`,void 0),x(this,`onerror`,void 0),x(this,`onmessage`,void 0),x(this,`onBunMessage`,e=>{try{let t=wi(typeof e.data==`string`?e.data:String(e.data)),n=fW.parse(t);this.onmessage?.(n)}catch(e){this.handleError(e)}}),x(this,`onBunError`,()=>{this.handleError(Error(`WebSocket error`))}),x(this,`onBunClose`,()=>{this.handleCloseCleanup()}),x(this,`onNodeMessage`,e=>{try{let t=wi(e.toString(`utf-8`)),n=fW.parse(t);this.onmessage?.(n)}catch(e){this.handleError(e)}}),x(this,`onNodeError`,e=>{this.handleError(e)}),x(this,`onNodeClose`,()=>{this.handleCloseCleanup()}),this.ws=e,this.opened=new Promise((e,t)=>{if(this.ws.readyState===RJ)e();else if(this.isBun){let n=this.ws,r=()=>{n.removeEventListener(`open`,r),n.removeEventListener(`error`,i),e()},i=e=>{n.removeEventListener(`open`,r),n.removeEventListener(`error`,i),Sn(`error`,`mcp_websocket_connect_fail`),t(e)};n.addEventListener(`open`,r),n.addEventListener(`error`,i)}else{let n=this.ws;n.on(`open`,()=>{e()}),n.on(`error`,e=>{Sn(`error`,`mcp_websocket_connect_fail`),t(e)})}}),this.isBun){let e=this.ws;e.addEventListener(`message`,this.onBunMessage),e.addEventListener(`error`,this.onBunError),e.addEventListener(`close`,this.onBunClose)}else{let e=this.ws;e.on(`message`,this.onNodeMessage),e.on(`error`,this.onNodeError),e.on(`close`,this.onNodeClose)}}handleError(e){Sn(`error`,`mcp_websocket_message_fail`),this.onerror?.(Ei(e))}handleCloseCleanup(){if(this.onclose?.(),this.isBun){let e=this.ws;e.removeEventListener(`message`,this.onBunMessage),e.removeEventListener(`error`,this.onBunError),e.removeEventListener(`close`,this.onBunClose)}else{let e=this.ws;e.off(`message`,this.onNodeMessage),e.off(`error`,this.onNodeError),e.off(`close`,this.onNodeClose)}}async start(){if(this.started)throw Error(`Start can only be called once per transport.`);if(await this.opened,this.ws.readyState!==RJ)throw Sn(`error`,`mcp_websocket_start_not_opened`),Error(`WebSocket is not open. Cannot start transport.`);this.started=!0}async close(){(this.ws.readyState===RJ||this.ws.readyState===Qze)&&this.ws.close(),this.handleCloseCleanup()}async send(e){if(this.ws.readyState!==RJ)throw Sn(`error`,`mcp_websocket_send_not_opened`),Error(`WebSocket is not open. Cannot send message.`);let t=W(e);try{this.isBun?this.ws.send(t):await new Promise((e,n)=>{this.ws.send(t,t=>{t?n(t):e()})})}catch(e){throw this.handleError(e),e}}}}));function eBe(e){return e.mode===`url`?`url`:`form`}function tBe(e,t,n){return e.findIndex(e=>e.serverName===t&&e.params.mode===`url`&&`elicitationId`in e.params&&e.params.elicitationId===n)}function nBe(e,t,n){try{e.setRequestHandler(SK,async(e,r)=>{xa(t,`Received elicitation request: ${W(e)}`);let i=eBe(e.params);try{let a=await BJ(t,e.params,r.signal);if(a)return xa(t,`Elicitation resolved by hook: ${W(a)}`),a.action,a;let o=i===`url`&&`elicitationId`in e.params?e.params.elicitationId:void 0,s=await new Promise(i=>{let a=()=>{i({action:`cancel`})};if(r.signal.aborted){a();return}let s=o?{actionLabel:`Skip confirmation`}:void 0;n(n=>({...n,elicitation:{queue:[...n.elicitation.queue,{serverName:t,requestId:r.requestId,params:e.params,signal:r.signal,waitingState:s,respond:e=>{r.signal.removeEventListener(`abort`,a),e.action,i(e)}}]}})),r.signal.addEventListener(`abort`,a,{once:!0})});return xa(t,`Elicitation response: ${W(s)}`),await VJ(t,s,r.signal,i,o)}catch(e){return Ca(t,`Elicitation error: ${e}`),{action:`cancel`}}}),e.setNotificationHandler(wK,e=>{let{elicitationId:r}=e.params;xa(t,`Received elicitation completion notification: ${r}`),o7({message:`MCP server "${t}" confirmed elicitation ${r} complete`,notificationType:`elicitation_complete`});let i=!1;n(e=>{let n=tBe(e.elicitation.queue,t,r);if(n===-1)return e;i=!0;let a=[...e.elicitation.queue];return a[n]={...a[n],completed:!0},{...e,elicitation:{queue:a}}}),i||xa(t,`Ignoring completion notification for unknown elicitation: ${r}`)})}catch{return}}async function BJ(e,t,n){try{let r=t.mode===`url`?`url`:`form`,i=`url`in t?t.url:void 0,a=`elicitationId`in t?t.elicitationId:void 0,{elicitationResponse:o,blockingError:s}=await Pat({serverName:e,message:t.message,requestedSchema:`requestedSchema`in t?t.requestedSchema:void 0,signal:n,mode:r,url:i,elicitationId:a});return s?{action:`decline`}:o?{action:o.action,content:o.content}:void 0}catch(t){Ca(e,`Elicitation hook error: ${t}`);return}}async function VJ(e,t,n,r,i){try{let{elicitationResultResponse:a,blockingError:o}=await Fat({serverName:e,action:t.action,content:t.content,signal:n,mode:r,elicitationId:i});if(o)return o7({message:`Elicitation response for server "${e}": decline`,notificationType:`elicitation_response`}),{action:`decline`};let s=a?{action:a.action,content:a.content??t.content}:t;return o7({message:`Elicitation response for server "${e}": ${s.action}`,notificationType:`elicitation_response`}),s}catch(n){return Ca(e,`ElicitationResult hook error: ${n}`),o7({message:`Elicitation response for server "${e}": ${t.action}`,notificationType:`elicitation_response`}),t}}var rBe=n((()=>{LK(),_7(),Ta(),zi(),Ra()}));async function iBe(e,t,n){try{K(`Loading MCP servers from MCPB: ${t}`);let n=e.repository,r=await tI(t,e.path,n,t=>{K(`MCPB [${e.name}]: ${t}`)});if(`status`in r&&r.status===`needs-config`)return K(`MCPB ${t} requires user configuration. User can configure via: /plugin → Manage plugins → ${e.name} → Configure`),null;let i=r,a=i.manifest.name;return K(`Loaded MCP server "${a}" from MCPB (extracted to ${i.extractedPath})`),{[a]:i.mcpConfig}}catch(r){let i=G(r);K(`Failed to load MCPB ${t}: ${i}`,{level:`error`});let a=`${e.name}@${e.repository}`;return t.startsWith(`http`)&&(i.includes(`download`)||i.includes(`network`))?n.push({type:`mcpb-download-failed`,source:a,plugin:e.name,url:t,reason:i}):i.includes(`manifest`)||i.includes(`user configuration`)?n.push({type:`mcpb-invalid-manifest`,source:a,plugin:e.name,mcpbPath:t,validationError:i}):n.push({type:`mcpb-extract-failed`,source:a,plugin:e.name,mcpbPath:t,reason:i}),null}}async function aBe(e,t=[]){let n={},r=await HJ(e.path,`.mcp.json`);if(r&&(n={...n,...r}),e.manifest.mcpServers){let r=e.manifest.mcpServers;if(typeof r==`string`)if(WF(r)){let i=await iBe(e,r,t);i&&(n={...n,...i})}else{let t=await HJ(e.path,r);t&&(n={...n,...t})}else if(Array.isArray(r)){let i=await Promise.all(r.map(async n=>{try{return typeof n==`string`?WF(n)?await iBe(e,n,t):await HJ(e.path,n):n}catch(t){return K(`Failed to load MCP servers from spec for plugin ${e.name}: ${t}`,{level:`error`}),null}}));for(let e of i)e&&(n={...n,...e})}else n={...n,...r}}return Object.keys(n).length>0?n:void 0}async function HJ(e,t){let n=J(),r=X(e,t),i;try{i=await n.readFile(r,{encoding:`utf-8`})}catch(e){return Ci(e)||K(`Failed to load MCP servers from ${r}: ${e}`,{level:`error`}),null}try{let e=wi(i),t=e.mcpServers||e,n={};for(let[e,i]of Object.entries(t)){let t=lt().safeParse(i);t.success?n[e]=t.data:K(`Invalid MCP server config for ${e} in ${r}: ${t.error.message}`,{level:`error`})}return n}catch(e){return K(`Failed to load MCP servers from ${r}: ${e}`,{level:`error`}),null}}function oBe(e){let t=e.manifest.channels;if(!t||t.length===0)return[];let n=e.repository,r=[];for(let e of t)!e.userConfig||Object.keys(e.userConfig).length===0||ZF(YF(n,e.server)??{},e.userConfig).valid||r.push({server:e.server,displayName:e.displayName??e.server,configSchema:e.userConfig});return r}function sBe(e,t){if(e.manifest.channels?.find(e=>e.server===t)?.userConfig)return YF(e.repository,t)??void 0}function cBe(e,t,n){let r={};for(let[i,a]of Object.entries(e)){let e=`plugin:${t}:${i}`;r[e]={...a,scope:`dynamic`,pluginSource:n}}return r}function lBe(e,t){let n=e.manifest.userConfig?lI(rI(e)):void 0,r=sBe(e,t);if(!(!n&&!r))return{...n,...r}}function uBe(e,t,n,r,i,a){let o=[],s=e=>{let r=oI(e,t);n&&(r=sI(r,n));let{expanded:i,missingVars:a}=CF(r);return o.push(...a),i},c;switch(e.type){case void 0:case`stdio`:{let n={...e};n.command&&(n.command=s(n.command)),n.args&&(n.args=n.args.map(e=>s(e)));let r={CLAUDE_PLUGIN_ROOT:t.path,CLAUDE_PLUGIN_DATA:ty(t.source),...n.env||{}};for(let[e,t]of Object.entries(r))e!==`CLAUDE_PLUGIN_ROOT`&&e!==`CLAUDE_PLUGIN_DATA`&&(r[e]=s(t));n.env=r,c=n;break}case`sse`:case`http`:case`ws`:{let t={...e};if(t.url&&(t.url=s(t.url)),t.headers){let e={};for(let[n,r]of Object.entries(t.headers))e[n]=s(r);t.headers=e}c=t;break}case`sse-ide`:case`ws-ide`:case`sdk`:case`claudeai-proxy`:c=e;break}if(r&&o.length>0){let e=[...new Set(o)].join(`, `);K(`Missing environment variables in plugin MCP config: ${e}`,{level:`warn`}),i&&a&&r.push({type:`mcp-config-invalid`,source:`plugin:${i}`,plugin:i,serverName:a,validationError:`Missing environment variables: ${e}`})}return c}async function dBe(e,t=[]){if(!e.enabled)return;let n=e.mcpServers||await aBe(e,t);if(!n)return;let r={};for(let[i,a]of Object.entries(n)){let n=lBe(e,i);try{r[i]=uBe(a,e,n,t,e.name,i)}catch(n){t?.push({type:`generic-error`,source:i,plugin:e.name,error:G(n)})}}return cBe(r,e.name,e.source)}var fBe=n((()=>{wF(),gr(),q(),vi(),ji(),zi(),nI(),ny(),uI()}));function UJ(){return X(or(),`managed-mcp.json`)}function WJ(e,t){if(!e)return{};let n={};for(let[r,i]of Object.entries(e))n[r]={...i,scope:t};return n}async function pBe(e){let t=X(U(),`.mcp.json`),n;try{n=(await Zc(t)).mode}catch(e){if(xi(e)!==`ENOENT`)throw e}let r=`${t}.tmp.${process.pid}.${Date.now()}`,i=await Gc(r,`w`,n??420);try{await i.writeFile(W(e,null,2),{encoding:`utf8`}),await i.datasync()}finally{await i.close()}try{n!==void 0&&await Vc(r,n),await Yc(r,t)}catch(e){try{await $c(r)}catch{}throw e}}function GJ(e){if(e.type!==void 0&&e.type!==`stdio`)return null;let t=e;return[t.command,...t.args??[]]}function mBe(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}function KJ(e){return`url`in e?e.url:null}function hBe(e){if(!MBe.some(t=>e.includes(t)))return e;try{return new URL(e).searchParams.get(`mcp_url`)||e}catch{return e}}function gBe(e){let t=GJ(e);if(t)return`stdio:${W(t)}`;let n=KJ(e);return n?`url:${hBe(n)}`:null}function _Be(e,t){let n=new Map;for(let[e,r]of Object.entries(t)){let t=gBe(r);t&&!n.has(t)&&n.set(t,e)}let r={},i=[],a=new Map;for(let[t,o]of Object.entries(e)){let e=gBe(o);if(e===null){r[t]=o;continue}let s=n.get(e);if(s!==void 0){K(`Suppressing plugin MCP server "${t}": duplicates manually-configured "${s}"`),i.push({name:t,duplicateOf:s});continue}let c=a.get(e);if(c!==void 0){K(`Suppressing plugin MCP server "${t}": duplicates earlier plugin server "${c}"`),i.push({name:t,duplicateOf:c});continue}a.set(e,t),r[t]=o}return{servers:r,suppressed:i}}function vBe(e){let t=e.replace(/[.+?^${}()|[\]\\]/g,`\\$&`).replace(/\*/g,`.*`);return RegExp(`^${t}$`)}function yBe(e,t){return vBe(t).test(e)}function bBe(){return OBe()?tr(`policySettings`)??{}:ar()}function xBe(){return ar()}function SBe(e,t){let n=xBe();if(!n.deniedMcpServers)return!1;for(let t of n.deniedMcpServers)if(Pt(t)&&t.serverName===e)return!0;if(t){let e=GJ(t);if(e){for(let t of n.deniedMcpServers)if(kt(t)&&mBe(t.serverCommand,e))return!0}let r=KJ(t);if(r){for(let e of n.deniedMcpServers)if(ft(e)&&yBe(r,e.serverUrl))return!0}}return!1}function qJ(e,t){if(SBe(e,t))return!1;let n=bBe();if(!n.allowedMcpServers)return!0;if(n.allowedMcpServers.length===0)return!1;let r=n.allowedMcpServers.some(kt),i=n.allowedMcpServers.some(ft);if(t){let a=GJ(t),o=KJ(t);if(a)if(r){for(let e of n.allowedMcpServers)if(kt(e)&&mBe(e.serverCommand,a))return!0;return!1}else{for(let t of n.allowedMcpServers)if(Pt(t)&&t.serverName===e)return!0;return!1}else if(o)if(i){for(let e of n.allowedMcpServers)if(ft(e)&&yBe(o,e.serverUrl))return!0;return!1}else{for(let t of n.allowedMcpServers)if(Pt(t)&&t.serverName===e)return!0;return!1}else{for(let t of n.allowedMcpServers)if(Pt(t)&&t.serverName===e)return!0;return!1}}for(let t of n.allowedMcpServers)if(Pt(t)&&t.serverName===e)return!0;return!1}function CBe(e){let t={},n=[];for(let[r,i]of Object.entries(e)){let e=i;e.type===`sdk`||qJ(r,e)?t[r]=i:n.push(r)}return{allowed:t,blocked:n}}function wBe(e){let t=[];function n(e){let{expanded:n,missingVars:r}=CF(e);return t.push(...r),n}let r;switch(e.type){case void 0:case`stdio`:{let t=e;r={...t,command:n(t.command),args:t.args.map(n),env:t.env?om(t.env,n):void 0};break}case`sse`:case`http`:case`ws`:{let t=e;r={...t,url:n(t.url),headers:t.headers?om(t.headers,n):void 0};break}case`sse-ide`:case`ws-ide`:r=e;break;case`sdk`:r=e;break;case`claudeai-proxy`:r=e;break}return{expanded:r,missingVars:[...new Set(t)]}}async function TBe(e,t,n){if(e.match(/[^a-zA-Z0-9_-]/))throw Error(`Invalid name ${e}. Names can only contain letters, numbers, hyphens, and underscores.`);if(nY())throw Error(`Cannot add MCP server: enterprise MCP configuration is active and has exclusive control over MCP servers`);let r=lt().safeParse(t);if(!r.success){let e=r.error.issues.map(e=>`${e.path.join(`.`)}: ${e.message}`).join(`, `);throw Error(`Invalid configuration: ${e}`)}let i=r.data;if(SBe(e,i))throw Error(`Cannot add MCP server "${e}": server is explicitly blocked by enterprise policy`);if(!qJ(e,i))throw Error(`Cannot add MCP server "${e}": not allowed by enterprise policy`);switch(n){case`project`:{let{servers:t}=JJ();if(t[e])throw Error(`MCP server ${e} already exists in .mcp.json`);break}case`user`:if(Yi().mcpServers?.[e])throw Error(`MCP server ${e} already exists in user config`);break;case`local`:if(Ui().mcpServers?.[e])throw Error(`MCP server ${e} already exists in local config`);break;case`dynamic`:throw Error(`Cannot add MCP server to scope: dynamic`);case`enterprise`:throw Error(`Cannot add MCP server to scope: enterprise`);case`claudeai`:throw Error(`Cannot add MCP server to scope: claudeai`)}switch(n){case`project`:{let{servers:t}=JJ(),n={};for(let[e,r]of Object.entries(t)){let{scope:t,...i}=r;n[e]=i}n[e]=i;let r={mcpServers:n};try{await pBe(r)}catch(e){throw Error(`Failed to write to .mcp.json: ${e}`)}break}case`user`:qi(t=>({...t,mcpServers:{...t.mcpServers,[e]:i}}));break;case`local`:Ji(t=>({...t,mcpServers:{...t.mcpServers,[e]:i}}));break;default:throw Error(`Cannot add MCP server to scope: ${n}`)}}async function EBe(e,t){switch(t){case`project`:{let{servers:t}=JJ();if(!t[e])throw Error(`No MCP server found with name: ${e} in .mcp.json`);let n={};for(let[r,i]of Object.entries(t))if(r!==e){let{scope:e,...t}=i;n[r]=t}let r={mcpServers:n};try{await pBe(r)}catch(e){throw Error(`Failed to remove from .mcp.json: ${e}`)}break}case`user`:if(!Yi().mcpServers?.[e])throw Error(`No user-scoped MCP server found with name: ${e}`);qi(t=>{let{[e]:n,...r}=t.mcpServers??{};return{...t,mcpServers:r}});break;case`local`:if(!Ui().mcpServers?.[e])throw Error(`No project-local MCP server found with name: ${e}`);Ji(t=>{let{[e]:n,...r}=t.mcpServers??{};return{...t,mcpServers:r}});break;default:throw Error(`Cannot remove MCP server from scope: ${t}`)}}function JJ(){if(!Dn(`projectSettings`))return{servers:{},errors:[]};let e=X(U(),`.mcp.json`),{config:t,errors:n}=$J({filePath:e,expandVars:!0,scope:`project`});if(!t){let t=n.filter(e=>!e.message.startsWith(`MCP config file not found`));return t.length>0?(K(`MCP config errors for ${e}: ${W(t.map(e=>e.message))}`,{level:`error`}),{servers:{},errors:t}):{servers:{},errors:[]}}return{servers:t.mcpServers?WJ(t.mcpServers,`project`):{},errors:n||[]}}function YJ(e){let t={project:`projectSettings`,user:`userSettings`,local:`localSettings`};if(e in t&&!Dn(t[e]))return{servers:{},errors:[]};switch(e){case`project`:{let t={},n=[],r=[],i=U();for(;i!==vc(i).root;)r.push(i),i=mc(i);for(let i of r.reverse()){let r=X(i,`.mcp.json`),{config:a,errors:o}=$J({filePath:r,expandVars:!0,scope:`project`});if(!a){let e=o.filter(e=>!e.message.startsWith(`MCP config file not found`));e.length>0&&(K(`MCP config errors for ${r}: ${W(e.map(e=>e.message))}`,{level:`error`}),n.push(...e));continue}a.mcpServers&&Object.assign(t,WJ(a.mcpServers,e)),o.length>0&&n.push(...o)}return{servers:t,errors:n}}case`user`:{let t=Yi().mcpServers;if(!t)return{servers:{},errors:[]};let{config:n,errors:r}=QJ({configObject:{mcpServers:t},expandVars:!0,scope:`user`});return{servers:WJ(n?.mcpServers,e),errors:r}}case`local`:{let t=Ui().mcpServers;if(!t)return{servers:{},errors:[]};let{config:n,errors:r}=QJ({configObject:{mcpServers:t},expandVars:!0,scope:`local`});return{servers:WJ(n?.mcpServers,e),errors:r}}case`enterprise`:{let t=UJ(),{config:n,errors:r}=$J({filePath:t,expandVars:!0,scope:`enterprise`});if(!n){let e=r.filter(e=>!e.message.startsWith(`MCP config file not found`));return e.length>0?(K(`Enterprise MCP config errors for ${t}: ${W(e.map(e=>e.message))}`,{level:`error`}),{servers:{},errors:e}):{servers:{},errors:[]}}return{servers:WJ(n.mcpServers,e),errors:r}}}}function XJ(e){let{servers:t}=YJ(`enterprise`);if(ib(`mcp`))return t[e]??null;let{servers:n}=YJ(`user`),{servers:r}=YJ(`project`),{servers:i}=YJ(`local`);return t[e]?t[e]:i[e]?i[e]:r[e]?r[e]:n[e]?n[e]:null}async function ZJ(e={},t=Promise.resolve({})){let{servers:n}=YJ(`enterprise`);if(nY()){let e={};for(let[t,r]of Object.entries(n))qJ(t,r)&&(e[t]=r);return{servers:e,errors:[]}}let r=ib(`mcp`),i={servers:{}},{servers:a}=r?i:YJ(`user`),{servers:o}=r?i:YJ(`project`),{servers:s}=r?i:YJ(`local`),c={},l=await R4(),u=[];if(l.errors.length>0)for(let e of l.errors)if(e.type===`mcp-config-invalid`||e.type===`mcpb-download-failed`||e.type===`mcpb-extract-failed`||e.type===`mcpb-invalid-manifest`){let t=`Plugin MCP loading error - ${e.type}: ${lv(e)}`;Y(Error(t))}else{let t=e.type;K(`Plugin not available for MCP: ${e.source} - error type: ${t}`)}let d=await Promise.all(l.enabled.map(e=>dBe(e,u)));for(let e of d)e&&Object.assign(c,e);if(u.length>0)for(let e of u){let t=`Plugin MCP server error - ${e.type}: ${lv(e)}`;Y(Error(t))}let f={};for(let[e,t]of Object.entries(o))KBe(e)===`approved`&&(f[e]=t);let p=await t,m={};for(let[t,n]of Object.entries({...a,...f,...s,...e,...p}))!tY(t)&&qJ(t,n)&&(m[t]=n);let h={},g={};for(let[e,t]of Object.entries(c))tY(e)||!qJ(e,t)?g[e]=t:h[e]=t;let{servers:_,suppressed:v}=_Be(h,m);Object.assign(_,g);for(let{name:e,duplicateOf:t}of v){let n=e.split(`:`);n[0]!==`plugin`||n.length<3||u.push({type:`mcp-server-suppressed-duplicate`,source:e,plugin:n[1],serverName:n.slice(2).join(`:`),duplicateOf:t})}let y=Object.assign({},_,a,f,s),b={};for(let[e,t]of Object.entries(y))qJ(e,t)&&(b[e]=t);return{servers:b,errors:u}}async function DBe(){if(nY())return ZJ();let{servers:e,errors:t}=await ZJ();return{servers:e,errors:t}}function QJ(e){let{configObject:t,expandVars:n,scope:r,filePath:i}=e,a=Ree().safeParse(t);if(!a.success)return{config:null,errors:a.error.issues.map(e=>({...i&&{file:i},path:e.path.join(`.`),message:`Does not adhere to MCP server configuration schema`,mcpErrorMetadata:{scope:r,severity:`fatal`}}))};let o=[],s={};for(let[e,t]of Object.entries(a.data.mcpServers)){let a=t;if(n){let{expanded:n,missingVars:s}=wBe(t);s.length>0&&o.push({...i&&{file:i},path:`mcpServers.${e}`,message:`Missing environment variables: ${s.join(`, `)}`,suggestion:`Set the following environment variables: ${s.join(`, `)}`,mcpErrorMetadata:{scope:r,serverName:e,severity:`warning`}}),a=n}Na()===`windows`&&(!a.type||a.type===`stdio`)&&`command`in a&&(a.command===`npx`||a.command.endsWith(`\\npx`)||a.command.endsWith(`/npx`))&&o.push({...i&&{file:i},path:`mcpServers.${e}`,message:`Windows requires 'cmd /c' wrapper to execute npx`,suggestion:`Change command to "cmd" with args ["/c", "npx", ...]. See: https://code.workmate.com/docs/en/mcp#configure-mcp-servers`,mcpErrorMetadata:{scope:r,serverName:e,severity:`warning`}}),s[e]=a}return{config:{mcpServers:s},errors:o}}function $J(e){let{filePath:t,expandVars:n,scope:r}=e,i=J(),a;try{a=i.readFileSync(t,{encoding:`utf8`})}catch(e){return xi(e)===`ENOENT`?{config:null,errors:[{file:t,path:``,message:`MCP config file not found: ${t}`,suggestion:`Check that the file path is correct`,mcpErrorMetadata:{scope:r,severity:`fatal`}}]}:(K(`MCP config read error for ${t} (scope=${r}): ${e}`,{level:`error`}),{config:null,errors:[{file:t,path:``,message:`Failed to read file: ${e}`,suggestion:`Check file permissions and ensure the file exists`,mcpErrorMetadata:{scope:r,severity:`fatal`}}]})}let o=gn(a);return o?QJ({configObject:o,expandVars:n,scope:r,filePath:t}):(K(`MCP config is not valid JSON: ${t} (scope=${r}, length=${a.length}, first100=${W(a.slice(0,100))})`,{level:`error`}),{config:null,errors:[{file:t,path:``,message:`MCP config is not a valid JSON`,suggestion:`Fix the JSON syntax errors in the file`,mcpErrorMetadata:{scope:r,severity:`fatal`}}]})}function OBe(){return tr(`policySettings`)?.allowManagedMcpServersOnly===!0}function kBe(e){return Object.values(e).every(e=>e.type===`sdk`&&e.name===`claude-vscode`)}function eY(e){return NBe.has(e)}function tY(e){let t=Ui();return eY(e)?!(t.enabledMcpServers||[]).includes(e):(t.disabledMcpServers||[]).includes(e)}function ABe(e,t,n){return e.includes(t)===n?e:n?[...e,t]:e.filter(e=>e!==t)}function jBe(e,t){eY(e)&&tY(e),Ji(n=>{if(eY(e)){let r=n.enabledMcpServers||[],i=ABe(r,e,t);return i===r?n:{...n,enabledMcpServers:i}}let r=n.disabledMcpServers||[],i=ABe(r,e,!t);return i===r?n:{...n,disabledMcpServers:i}})}var MBe,nY,NBe,rY=n((()=>{sm(),d(),Fa(),uv(),Ki(),fi(),q(),vi(),ji(),pr(),Ta(),fBe(),z4(),Rn(),$n(),ob(),Ln(),Dt(),zi(),Ra(),wF(),gr(),oY(),MBe=[`/v2/session_ingress/shttp/mcp/`,`/v2/ccr-sessions/`],nY=u(()=>{let{config:e}=$J({filePath:UJ(),expandVars:!0,scope:`enterprise`});return e!==null}),NBe=new Set([])}));function PBe(e,t){let n=`mcp__${hn(t)}__`;return e.filter(e=>e.name?.startsWith(n))}function iY(e,t){let n=hn(t),r=e.name;return r?r.startsWith(`mcp__${n}__`)||r.startsWith(`${n}:`):!1}function FBe(e,t){return e.filter(e=>iY(e,t)&&!(e.type===`prompt`&&e.loadedFrom===`mcp`))}function IBe(e,t){let n=`mcp__${hn(t)}__`;return e.filter(e=>!e.name?.startsWith(n))}function LBe(e,t){return e.filter(e=>!iY(e,t))}function RBe(e,t){let n={...e};return delete n[t],n}function zBe(e){let{scope:t,...n}=e,r=W(n,(e,t)=>{if(t&&typeof t==`object`&&!Array.isArray(t)){let e=t,n={};for(let t of Object.keys(e).sort())n[t]=e[t];return n}return t});return Lc(`sha256`).update(r).digest(`hex`).slice(0,16)}function BBe(e,t){let n=e.clients.filter(e=>{let n=t[e.name];return n?zBe(e.config)!==zBe(n):e.config.scope===`dynamic`});if(n.length===0)return{...e,stale:[]};let{tools:r,commands:i,resources:a}=e;for(let e of n)r=IBe(r,e.name),i=LBe(i,e.name),a=RBe(a,e.name);let o=new Set(n.map(e=>e.name));return{clients:e.clients.filter(e=>!o.has(e.name)),tools:r,commands:i,resources:a,stale:n}}function aY(e){return e.name?.startsWith(`mcp__`)||e.isMcp===!0}function VBe(e){switch(e){case`user`:return un();case`project`:return X(U(),`.mcp.json`);case`local`:return`${un()} [project: ${U()}]`;case`dynamic`:return`Dynamically configured`;case`enterprise`:return UJ();case`claudeai`:return`claude.ai`;default:return e}}function HBe(e){switch(e){case`local`:return`Local config (private to you in this project)`;case`project`:return`Project config (shared via .mcp.json)`;case`user`:return`User config (available in all your projects)`;case`dynamic`:return`Dynamic config (from command line)`;case`enterprise`:return`Enterprise config (managed by your organization)`;case`claudeai`:return`claude.ai config`;default:return e}}function UBe(e){if(!e)return`local`;if(!vr().options.includes(e))throw Error(`Invalid scope: ${e}. Must be one of: ${vr().options.join(`, `)}`);return e}function WBe(e){if(!e)return`stdio`;if(e!==`stdio`&&e!==`sse`&&e!==`http`)throw Error(`Invalid transport type: ${e}. Must be one of: stdio, sse, http`);return e}function GBe(e){let t={};for(let n of e){let e=n.indexOf(`:`);if(e===-1)throw Error(`Invalid header format: "${n}". Expected format: "Header-Name: value"`);let r=n.substring(0,e).trim(),i=n.substring(e+1).trim();if(!r)throw Error(`Invalid header: "${n}". Header name cannot be empty.`);t[r]=i}return t}function KBe(e){let t=xn(),n=hn(e);return t?.disabledMcpjsonServers?.some(e=>hn(e)===n)?`rejected`:t?.enabledMcpjsonServers?.some(e=>hn(e)===n)||t?.enableAllProjectMcpServers||Ate()&&Dn(`projectSettings`)||jr()&&Dn(`projectSettings`)?`approved`:`pending`}function qBe(e){if(!aY({name:e}))return null;let t=er(e);if(!t)return null;let n=XJ(t.serverName);return!n&&t.serverName.startsWith(`claude_ai_`)?`claudeai`:n?.scope??null}function JBe(e){return e.type===`stdio`||e.type===void 0}function YBe(e){return e.type===`sse`}function XBe(e){return e.type===`http`}function ZBe(e){return e.type===`ws`}function QBe(e){let t=new Map;for(let n of e)if(n.mcpServers?.length)for(let e of n.mcpServers){if(typeof e==`string`)continue;let r=Object.entries(e);if(r.length!==1)continue;let[i,a]=r[0],o=t.get(i);o?o.sourceAgents.includes(n.agentType)||o.sourceAgents.push(n.agentType):t.set(i,{config:{...a,name:i},sourceAgents:[n.agentType]})}let n=[];for(let[e,{config:r,sourceAgents:i}]of t)JBe(r)?n.push({name:e,sourceAgents:i,transport:`stdio`,command:r.command,needsAuth:!1}):YBe(r)?n.push({name:e,sourceAgents:i,transport:`sse`,url:r.url,needsAuth:!0}):XBe(r)?n.push({name:e,sourceAgents:i,transport:`http`,url:r.url,needsAuth:!0}):ZBe(r)&&n.push({name:e,sourceAgents:i,transport:`ws`,url:r.url,needsAuth:!1});return n.sort((e,t)=>e.name.localeCompare(t.name))}function $Be(e){if(!(!(`url`in e)||typeof e.url!=`string`))try{let t=new URL(e.url);return t.search=``,t.toString().replace(/\/$/,``)}catch{return}}var oY=n((()=>{H(),fi(),an(),Rn(),Ln(),zi(),rY(),Hn(),Mn(),gr()}));function eVe(e){return e.replace(/([a-z])([A-Z])/g,`$1_$2`).replace(/-/g,`_`).toLowerCase()}function tVe(e,t){let n=eVe(t);return{isSearch:nVe.has(n),isRead:rVe.has(n)}}var nVe,rVe,iVe=n((()=>{nVe=new Set(`slack_search_public.slack_search_public_and_private.slack_search_channels.slack_search_users.search_code.search_repositories.search_issues.search_pull_requests.search_orgs.search_users.search_documentation.search_logs.search_spans.search_rum_events.search_audit_logs.search_monitors.search_monitor_groups.find_slow_spans.find_monitors_matching_pattern.search_docs.search_events.search_issue_events.find_organizations.find_teams.find_projects.find_releases.find_dsns.search.gmail_search_messages.google_drive_search.gcal_find_my_free_time.gcal_find_meeting_times.gcal_find_user_emails.search_jira_issues_using_jql.search_confluence_using_cql.lookup_jira_account_id.confluence_search.jira_search.jira_search_fields.asana_search_tasks.asana_typeahead_search.search_files.search_nodes.brave_web_search.brave_local_search.search_dashboards.search_folders.search_docs.search_stripe_resources.search_stripe_documentation.search_articles.find_related_articles.lookup_article_by_citation.search_papers.search_pubmed.search_pubmed_key_words.search_pubmed_advanced.pubmed_search.pubmed_mesh_lookup.firecrawl_search.web_search_exa.web_search_advanced_exa.people_search_exa.linkedin_search_exa.deep_search_exa.perplexity_search.perplexity_search_web.tavily_search.obsidian_simple_search.obsidian_complex_search.find.search_knowledge.search_memories.find_memories_by_name.search_records.find_tasks.find_tasks_by_date.find_completed_tasks.find_projects.find_sections.find_comments.find_project_collaborators.find_activity.find_labels.find_filters.search_documentation.search_catalog.search_modules.search_providers.search_policies`.split(`.`)),rVe=new Set(`slack_read_channel.slack_read_thread.slack_read_canvas.slack_read_user_profile.slack_list_channels.slack_get_channel_history.slack_get_thread_replies.slack_get_users.slack_get_user_profile.get_me.get_team_members.get_teams.get_commit.get_file_contents.get_repository_tree.list_branches.list_commits.list_releases.list_tags.get_latest_release.get_release_by_tag.get_tag.list_issues.issue_read.list_issue_types.get_label.list_label.pull_request_read.get_gist.list_gists.list_notifications.get_notification_details.projects_list.projects_get.actions_get.actions_list.get_job_logs.get_code_scanning_alert.list_code_scanning_alerts.get_dependabot_alert.list_dependabot_alerts.get_secret_scanning_alert.list_secret_scanning_alerts.get_global_security_advisory.list_global_security_advisories.list_org_repository_security_advisories.list_repository_security_advisories.get_discussion.get_discussion_comments.list_discussion_categories.list_discussions.list_starred_repositories.get_issue.get_pull_request.list_pull_requests.get_pull_request_files.get_pull_request_status.get_pull_request_comments.get_pull_request_reviews.list_comments.list_cycles.get_document.list_documents.list_issue_statuses.get_issue_status.list_my_issues.list_issue_labels.list_projects.get_project.list_project_labels.list_teams.get_team.list_users.get_user.aggregate_logs.list_spans.aggregate_spans.analyze_trace.trace_critical_path.query_metrics.aggregate_rum_events.list_rum_metrics.get_rum_metric.list_monitors.get_monitor.check_can_delete_monitor.validate_monitor.validate_existing_monitor.list_dashboards.get_dashboard.query_dashboard_widget.list_notebooks.get_notebook.query_notebook_cell.get_profiling_metrics.compare_profiling_metrics.whoami.get_issue_details.get_issue_tag_values.get_trace_details.get_event_attachment.get_doc.get_sentry_resource.list_events.list_issue_events.get_sentry_issue.fetch.get_comments.get_users.get_self.gmail_get_profile.gmail_read_message.gmail_read_thread.gmail_list_drafts.gmail_list_labels.google_drive_fetch.google_drive_export.gcal_list_calendars.gcal_list_events.gcal_get_event.atlassian_user_info.get_accessible_atlassian_resources.get_visible_jira_projects.get_jira_project_issue_types_metadata.get_jira_issue.get_transitions_for_jira_issue.get_jira_issue_remote_issue_links.get_confluence_spaces.get_confluence_page.get_pages_in_confluence_space.get_confluence_page_ancestors.get_confluence_page_descendants.get_confluence_page_footer_comments.get_confluence_page_inline_comments.confluence_get_page.confluence_get_page_children.confluence_get_comments.confluence_get_labels.jira_get_issue.jira_get_transitions.jira_get_worklog.jira_get_agile_boards.jira_get_board_issues.jira_get_sprints_from_board.jira_get_sprint_issues.jira_get_link_types.jira_download_attachments.jira_batch_get_changelogs.jira_get_user_profile.jira_get_project_issues.jira_get_project_versions.asana_get_attachment.asana_get_attachments_for_object.asana_get_goal.asana_get_goals.asana_get_parent_goals_for_goal.asana_get_portfolio.asana_get_portfolios.asana_get_items_for_portfolio.asana_get_project.asana_get_projects.asana_get_project_sections.asana_get_project_status.asana_get_project_statuses.asana_get_project_task_counts.asana_get_projects_for_team.asana_get_projects_for_workspace.asana_get_task.asana_get_tasks.asana_get_stories_for_task.asana_get_teams_for_workspace.asana_get_teams_for_user.asana_get_team_users.asana_get_time_period.asana_get_time_periods.asana_get_user.asana_get_workspace_users.asana_list_workspaces.read_file.read_text_file.read_media_file.read_multiple_files.list_directory.list_directory_with_sizes.directory_tree.get_file_info.list_allowed_directories.read_graph.open_nodes.query.read_query.list_tables.describe_table.git_status.git_diff.git_diff_unstaged.git_diff_staged.git_log.git_show.git_branch.list_teams.list_users_by_org.get_dashboard_by_uid.get_dashboard_summary.get_dashboard_property.get_dashboard_panel_queries.run_panel_query.list_datasources.get_datasource.get_query_examples.query_prometheus.query_prometheus_histogram.list_prometheus_metric_metadata.list_prometheus_metric_names.list_prometheus_label_names.list_prometheus_label_values.query_loki_logs.query_loki_stats.query_loki_patterns.list_loki_label_names.list_loki_label_values.list_incidents.get_incident.list_sift_investigations.get_sift_investigation.get_sift_analysis.list_oncall_schedules.get_oncall_shift.get_current_oncall_users.list_oncall_teams.list_oncall_users.list_alert_groups.get_alert_group.get_annotations.get_annotation_tags.get_panel_image.list_incidents.get_incident.get_outlier_incident.get_past_incidents.get_related_incidents.list_incident_notes.list_incident_workflows.get_incident_workflow.list_services.get_service.list_team_members.get_user_data.list_schedules.get_schedule.list_schedule_users.list_oncalls.list_log_entries.get_log_entry.list_escalation_policies.get_escalation_policy.list_event_orchestrations.get_event_orchestration.list_status_pages.get_status_page_post.list_alerts_from_incident.get_alert_from_incident.list_change_events.get_change_event.list_organizations.get_organization.get_cost.list_extensions.list_migrations.get_logs.get_advisors.get_project_url.get_publishable_keys.generate_typescript_types.list_edge_functions.get_edge_function.list_storage_buckets.get_storage_config.get_stripe_account_info.retrieve_balance.list_customers.list_products.list_prices.list_invoices.list_payment_intents.list_subscriptions.list_coupons.list_disputes.fetch_stripe_resources.get_article_metadata.get_full_text_article.convert_article_ids.get_copyright_status.download_paper.list_papers.read_paper.get_paper_fulltext.get_pubmed_article_metadata.download_pubmed_pdf.pubmed_fetch.pubmed_pmc_fetch.pubmed_spell.pubmed_cite.pubmed_related.bigquery_query.bigquery_schema.list_dataset_ids.list_table_ids.get_dataset_info.get_table_info.firecrawl_scrape.firecrawl_map.firecrawl_crawl.firecrawl_check_crawl_status.firecrawl_extract.get_code_context_exa.company_research_exa.crawling_exa.deep_researcher_check.perplexity_ask.perplexity_research.perplexity_reason.tavily_extract.tavily_crawl.tavily_map.tavily_research.obsidian_list_files_in_vault.obsidian_list_files_in_dir.obsidian_get_file_contents.obsidian_batch_get_file_contents.obsidian_get_periodic_note.obsidian_get_recent_periodic_notes.obsidian_get_recent_changes.get_figma_data.download_figma_images.browser_console_messages.browser_network_requests.browser_take_screenshot.browser_snapshot.browser_get_config.browser_route_list.browser_cookie_list.browser_cookie_get.browser_localstorage_list.browser_localstorage_get.browser_sessionstorage_list.browser_sessionstorage_get.browser_storage_state.puppeteer_screenshot.list_databases.list_collections.collection_indexes.collection_schema.collection_storage_size.db_stats.explain.mongodb_logs.aggregate.count.export.get_neo4j_schema.read_neo4j_cypher.list_instances.get_instance_details.get_instance_by_name.list_indices.get_mappings.esql.get_shards.list_records.list_bases.get_record.get_productivity_stats.get_overview.fetch_object.user_info.list_workspaces.view_attachment.get_available_services.read_documentation.read_sections.recommend.analyze_log_group.analyze_metric.describe_log_groups.get_active_alarms.get_alarm_history.get_metric_data.get_metric_metadata.kubectl_get.kubectl_describe.kubectl_logs.kubectl_context.explain_resource.list_api_resources.namespaces_list.nodes_log.nodes_top.pods_get.pods_list.pods_list_in_namespace.pods_log.pods_top.resources_get.resources_list`.split(`.`))}));function aVe(e){return e.scope===`project`||e.scope===`local`}async function oVe(e,t){if(!t.headersHelper)return null;if(`scope`in t&&aVe(t)&&!jr()&&!Zi())return Ri(`MCP headersHelper invoked before trust check`,Error(`Security: headersHelper for MCP server '${e}' executed before workspace trust is confirmed. If you see this message, post in .`)),null;try{xa(e,`Executing headersHelper to get dynamic headers`);let n=await ka(t.headersHelper,[],{shell:!0,timeout:1e4,env:{...process.env,WORKMATE_MCP_SERVER_NAME:e,WORKMATE_MCP_SERVER_URL:t.url}});if(n.code!==0||!n.stdout)throw Error(`headersHelper for MCP server '${e}' did not return a valid value`);let r=wi(n.stdout.trim());if(typeof r!=`object`||!r||Array.isArray(r))throw Error(`headersHelper for MCP server '${e}' must return a JSON object with string key-value pairs`);for(let[t,n]of Object.entries(r))if(typeof n!=`string`)throw Error(`headersHelper for MCP server '${e}' returned non-string value for key "${t}": ${typeof n}`);return xa(e,`Successfully retrieved ${Object.keys(r).length} headers from headersHelper`),r}catch(t){return Ca(e,`Error getting headers from headersHelper: ${G(t)}`),Y(Error(`Error getting MCP headers from headersHelper for server '${e}': ${G(t)}`)),null}}async function sY(e,t){let n=t.headers||{},r=await oVe(e,t)||{};return{...n,...r}}var sVe=n((()=>{H(),Ki(),q(),vi(),Oa(),Ta(),zi(),Ra()})),cVe,lVe=n((()=>{b(),cVe=class{constructor(e,t){x(this,`serverName`,void 0),x(this,`sendMcpMessage`,void 0),x(this,`isClosed`,!1),x(this,`onclose`,void 0),x(this,`onerror`,void 0),x(this,`onmessage`,void 0),this.serverName=e,this.sendMcpMessage=t}async start(){}async send(e){if(this.isClosed)throw Error(`Transport is closed`);let t=await this.sendMcpMessage(this.serverName,e);this.onmessage&&this.onmessage(t)}async close(){this.isClosed||(this.isClosed=!0,this.onclose?.())}}}));function uVe(e){return(`code`in e?e.code:void 0)===404?e.message.includes(`"code":-32001`)||e.message.includes(`"code": -32001`):!1}function dVe(){return parseInt(process.env.MCP_TOOL_TIMEOUT||``,10)||IVe}function cY(e){let t=$Be(e);return t?{mcpServerBaseUrl:t}:{}}function fVe(e,t,n){return{...cY(t)},xa(e,`Authentication required for ${{sse:`SSE`,http:`HTTP`,"claudeai-proxy":`claude.ai proxy`}[n]} server`),{name:e,type:`needs-auth`,config:t}}async function pVe(e,t){let n=(await import(`./wrapper-B-Q3Illb.js`)).default;return new n(e,[`mcp`],t)}function lY(){return parseInt(process.env.MCP_TIMEOUT||``,10)||3e4}function mVe(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`,RVe);let i=new AbortController,a=setTimeout(e=>e.abort(new DOMException(`The operation timed out.`,`TimeoutError`)),vY,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 hVe(){return parseInt(process.env.MCP_SERVER_CONNECTION_BATCH_SIZE||``,10)||3}function gVe(){return parseInt(process.env.MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE||``,10)||20}function _Ve(e){return!e.type||e.type===`stdio`||e.type===`sdk`}function vVe(e){return!e.name.startsWith(`mcp__ide__`)||zVe.includes(e.name)}function uY(e,t){return`${e}-${W(t)}`}async function dY(e,t){let n=uY(e,t);try{let n=await yY(e,t);n.type===`connected`&&await n.cleanup()}catch{}yY.cache.delete(n),xY.cache.delete(e),SY.cache.delete(e),CY.cache.delete(e)}async function fY(e){if(e.config.type===`sdk`)return e;let t=await yY(e.name,e.config);if(t.type!==`connected`)throw new Ni(`MCP server "${e.name}" is not connected`,`MCP server not connected`);return t}function yVe(e,t){if(e.type!==t.type)return!1;let{scope:n,...r}=e,{scope:i,...a}=t;return W(r)===W(a)}function bVe(e,t){let n=Object.keys(e);return n.length>0?n.map(t=>`${t}=${String(e[t])}`).join(` `):t}async function xVe(e,t){try{DF(),await dY(e,t);let n=await yY(e,t);if(n.type!==`connected`)return{client:n,tools:[],commands:[]};let r=!!n.capabilities?.resources,[i,a,o]=await Promise.all([xY(n),CY(n),r?SY(n):Promise.resolve([])]),s=[...a],c=[];return r&&([kJ,IJ].some(e=>i.some(t=>fs(t,e.name)))||c.push(kJ,IJ)),{client:n,tools:[...i,...c],commands:s,resources:o.length>0?o:void 0}}catch(n){return Ca(e,`Error during reconnection: ${G(n)}`),{client:{name:e,type:`failed`,config:t},tools:[],commands:[]}}}async function SVe(e,t,n){await nze(e,n,{concurrency:t})}async function CVe(e,t){let n=!1,r=Object.entries(t??(await DBe()).servers),i=[];for(let t of r)tY(t[0])?e({client:{name:t[0],type:`disabled`,config:t[1]},tools:[],commands:[]}):i.push(t);let a=i.length,o=Bt(i,([e,t])=>t.type===`stdio`),s=Bt(i,([e,t])=>t.type===`sse`),c=Bt(i,([e,t])=>t.type===`http`),l=Bt(i,([e,t])=>t.type===`sse-ide`),u=Bt(i,([e,t])=>t.type===`ws-ide`),d=i.filter(([e,t])=>_Ve(t)),f=i.filter(([e,t])=>!_Ve(t)),p={totalServers:a,stdioCount:o,sseCount:s,httpCount:c,sseIdeCount:l,wsIdeCount:u},m=async([t,r])=>{try{if(tY(t)){e({client:{name:t,type:`disabled`,config:r},tools:[],commands:[]});return}let i=await yY(t,r,p);if(i.type!==`connected`){e({client:i,tools:[],commands:[]});return}let a=!!i.capabilities?.resources,[o,s,c]=await Promise.all([xY(i),CY(i),a?SY(i):Promise.resolve([])]),l=[...s],u=[];a&&!n&&(n=!0,u.push(kJ,IJ)),e({client:i,tools:[...o,...u],commands:l,resources:c.length>0?c:void 0})}catch(n){Ca(t,`Error fetching tools/commands/resources: ${G(n)}`),e({client:{name:t,type:`failed`,config:r},tools:[],commands:[]})}};await Promise.all([SVe(d,hVe(),m),SVe(f,gVe(),m)])}function wVe(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=[];CVe(e=>{i.push(e.client),a.push(...e.tools),o.push(...e.commands),r++,r>=n&&(o.reduce((e,t)=>e+(t.name.length+(t.description??``).length+(t.argumentHint??``).length),0),a.length,o.length,t({clients:i,tools:a,commands:o}))},e).catch(e=>{Ca(`prefetchAllMcpResources`,`Failed to get MCP resources: ${G(e)}`),t({clients:[],tools:[],commands:[]})})})}async function TVe(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 EVe(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 gy(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(LVe.has(r.mimeType??``)){let e=Buffer.from(r.blob,`base64`),t=r.mimeType?.split(`/`)[1]||`png`,a=await gy(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 EVe(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 EVe(e,t,n,r){let i=await Bze(e,t,`mcp-${hn(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:Vze(i.filepath,t,i.size,r)}]}function pY(e,t=2){if(e===null)return`null`;if(Array.isArray(e))return e.length===0?`[]`:`[${pY(e[0],t-1)}]`;if(typeof e==`object`){if(t<=0)return`{...}`;let n=Object.entries(e).slice(0,10).map(([e,n])=>`${e}: ${pY(n,t-1)}`),r=Object.keys(e).length>10?`, ...`:``;return`{${n.join(`, `)}${r}}`}return typeof e}async function DVe(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:W(e.structuredContent),type:`structuredContent`,schema:pY(e.structuredContent)};if(`content`in e&&Array.isArray(e.content)){let t=(await Promise.all(e.content.map(e=>TVe(e,n,r,!0)))).flat();return{content:t,type:`contentArray`,schema:pY(t)}}}let i=`MCP server "${n}" tool "${t}": unexpected response format`;throw Ca(n,i),new Ni(i,`MCP tool unexpected response format`)}function OVe(e){return!e||typeof e==`string`?!1:e.some(e=>e.type===`image`)}async function kVe(e,t,n,r,i=!1){let{content:a,type:o,schema:s}=await DVe(e,t,n,r);if(i&&!OVe(a)||!await yze(a))return a;if(MJ(a),f(process.env.ENABLE_MCP_LARGE_OUTPUT_FILES))return await xze(a);if(!a)return a;if(OVe(a))return await xze(a);let c=Date.now(),l=`mcp-${hn(n)}-${hn(t)}-${c}`,u=jVe(a),d=typeof a==`string`?a:u??W(a,null,2),p=await rx(d,l);if(sx(p))return`Error: result (${d.length.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.`;p.originalSize;let m=u===void 0?Lze(o,s):Lze(`toolResult`);return Rze(p.filepath,p.originalSize,m)}function AVe(){let e=process.env.MCP_TRUNCATION_PROMPT_OVERRIDE;return e?e!==`legacy`:!1}function jVe(e){if(!AVe()||!Array.isArray(e)||e.length!==1)return;let t=e[0];if(t?.type===`text`&&!(`annotations`in t||`_meta`in t))return t.text}async function MVe({client:e,clientConnection:t,tool:n,args:r,meta:i,signal:a,setAppState:o,onProgress:s,imageLimits:c,hasResultSizeAnnotation:l=!1,callToolFn:u=NVe,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 FK)||e.code!==lW.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 xa(s,`Tool '${n}' returned -32042 but no valid elicitations in error data`),e;xa(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 BJ(s,e,a);if(r){if(xa(s,`URL elicitation ${t} resolved by hook: ${W(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 VJ(s,i,a,`url`,t);if(c.action!==`accept`)return xa(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.`};xa(s,`Elicitation ${t} completed, retrying tool call`)}}}async function NVe({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{xa(t,`Calling MCP tool: ${r}`),d=setInterval((e,t,n)=>{let r=Date.now()-e;xa(t,`Tool '${n}' still running (${`${Math.floor(r/1e3)}s`} elapsed)`)},3e4,u,t,r);let n=dVe(),f,p=new Promise((e,i)=>{f=setTimeout((e,t,n,r)=>{e(new Ni(`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},BG,{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 Ca(t,e),new gY(e,`MCP tool returned error`,`_meta`in m&&m._meta?{_meta:m._meta}:void 0)}let h=Date.now()-u;return xa(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`}`),NEe(t),{content:await kVe(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`&&xa(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 yJ)throw xa(t,`Tool call returned 401 Unauthorized - token may have expired`),new mY(t,`MCP server "${t}" requires re-authorization (token expired)`);let r=uVe(e),i=`code`in e&&e.code===-32e3&&e.message.includes(`Connection closed`)&&n.type===`http`;if(r||i)throw xa(t,`MCP session expired during tool call (${r?`404/-32001`:`connection closed`}), clearing connection cache for re-initialization`),await dY(t,n),new hY(t)}if(!(e instanceof Error)||e.name!==`AbortError`)throw e;return{content:void 0}}finally{d!==void 0&&clearInterval(d)}}function PVe(e){let t=e.message.content?.[0];if(!(!t||typeof t==`string`||t.type!==`tool_use`))return t.id}async function FVe(e,t){let n=[],r=[],i=await Promise.allSettled(Object.entries(e).map(async([e,n])=>{let r=new cVe(e,t),i=new eq({name:`workmate`,title:`Work Mate`,version:`0.0.29`,description:`Agentic coding tool`,websiteUrl:nF},{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 xY(a);o.push(...e)}return{client:a,tools:o}}catch(t){return Ca(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 mY,hY,gY,IVe,_Y,LVe,vY,RVe,zVe,yY,bY,xY,SY,CY,wY=n((()=>{JLe(),HRe(),XRe(),tze(),Gq(),LK(),sm(),d(),xm(),rze(),H(),rF(),Ps(),AJ(),Ize(),LJ(),tt(),pi(),wM(),q(),g(),vi(),Iie(),Sy(),Ta(),Hze(),wze(),$ze(),ln(),toe(),Vs(),Mb(),dx(),Ra(),rBe(),Hn(),Mn(),oY(),sse(),SJ(),iVe(),AF(),Ws(),rY(),sVe(),lVe(),b(),zi(),mY=class extends Error{constructor(e,t){super(t),x(this,`serverName`,void 0),this.name=`McpAuthError`,this.serverName=e}},hY=class extends Error{constructor(e){super(`MCP server "${e}" session expired`),this.name=`McpSessionExpiredError`}},gY=class extends Ni{constructor(e,t,n){super(e,t),x(this,`mcpMeta`,void 0),this.mcpMeta=n,this.name=`McpToolCallError`}},IVe=1e8,_Y=2048,LVe=new Set([`image/jpeg`,`image/png`,`image/gif`,`image/webp`]),vY=6e4,RVe=`application/json, text/event-stream`,zVe=[`mcp__ide__executeCode`,`mcp__ide__getDiagnostics`],yY=u(async(e,t,n)=>{let r=Date.now();try{let i;if(t.type===`sse`){let n=await sY(e,t),r={fetch:mVe(Wq()),requestInit:{headers:{"User-Agent":Eo(),...n}}};r.eventSourceInit={fetch:async(e,t)=>{let r=Hs();return fetch(e,{...t,...r,headers:{"User-Agent":Eo(),...t?.headers,...n,Accept:`text/event-stream`}})}},i=new CJ(new URL(t.url),r),xa(e,`SSE transport initialized, awaiting connection`)}else if(t.type===`sse-ide`){xa(e,`Setting up SSE-IDE transport to ${t.url}`);let n=Hs(),r=n.dispatcher?{eventSourceInit:{fetch:async(e,t)=>fetch(e,{...t,...n,headers:{"User-Agent":Eo(),...t?.headers}})}}:{};i=new CJ(new URL(t.url),Object.keys(r).length>0?r:void 0)}else if(t.type===`ws-ide`){let e=roe(),n={"User-Agent":Eo(),...t.authToken&&{"X-Work Mate-Code-Ide-Authorization":t.authToken}},r;r=typeof Bun<`u`?new globalThis.WebSocket(t.url,{protocols:[`mcp`],headers:n,proxy:ioe(t.url),tls:e||void 0}):await pVe(t.url,{headers:n,agent:noe(t.url),...e||{}}),i=new zJ(r)}else if(t.type===`ws`){xa(e,`Initializing WebSocket transport to ${t.url}`);let n=await sY(e,t),r=roe(),a={"User-Agent":Eo(),...n},o=om(a,(e,t)=>t.toLowerCase()===`authorization`?`[REDACTED]`:e);xa(e,`WebSocket transport options: ${W({url:t.url,headers:o})}`);let s;s=typeof Bun<`u`?new globalThis.WebSocket(t.url,{protocols:[`mcp`],headers:a,proxy:ioe(t.url),tls:r||void 0}):await pVe(t.url,{headers:a,agent:noe(t.url),...r||{}}),i=new zJ(s)}else if(t.type===`http`){xa(e,`Initializing HTTP transport to ${t.url}`),xa(e,`Node version: ${process.version}, Platform: ${process.platform}`),xa(e,`Environment: ${W({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=await sY(e,t),r=Hs();xa(e,`Proxy options: ${r.dispatcher?`custom dispatcher`:`default`}`);let a={fetch:mVe(Wq()),requestInit:{...r,headers:{"User-Agent":Eo(),...n}}},o=a.requestInit?.headers?om(a.requestInit.headers,(e,t)=>t.toLowerCase()===`authorization`?`[REDACTED]`:e):void 0;xa(e,`HTTP transport options: ${W({url:t.url,headers:o,timeoutMs:vY})}`),i=new eze(new URL(t.url),a),xa(e,`HTTP transport created successfully`)}else if(t.type===`sdk`)throw Error(`SDK servers should be handled in print.ts`);else if(t.type===`stdio`||!t.type){let e=t;i=new YRe({command:process.env.WORKMATE_SHELL_PREFIX||e.command,args:process.env.WORKMATE_SHELL_PREFIX?[[e.command,...e.args].join(` `)]:e.args,env:{...jb(),...e.env},stderr:`pipe`})}else throw Error(`Unsupported server type: ${t.type}`);let a,o=``;if(t.type===`stdio`||!t.type){let e=i;e.stderr&&(a=e=>{if(o.length<64*1024*1024)try{o+=e.toString()}catch{}},e.stderr.on(`data`,a))}let s=new eq({name:`workmate`,title:`Work Mate`,version:`0.0.29`,description:`Agentic coding tool`,websiteUrl:nF},{capabilities:{roots:{},elicitation:{}}});if(t.type===`http`&&xa(e,`Client created, setting up request handler`),s.setRequestHandler(MK,async()=>(xa(e,`Received ListRoots request from server`),{roots:[{uri:`file://${ri()}`}]})),xa(e,`Starting connection with timeout of ${lY()}ms`),t.type===`http`){xa(e,`Testing basic HTTP connectivity to ${t.url}`);try{let n=new URL(t.url);xa(e,`Parsed URL: host=${n.hostname}, port=${n.port||`default`}, protocol=${n.protocol}`),(n.hostname===`127.0.0.1`||n.hostname===`localhost`)&&xa(e,`Using loopback address: ${n.hostname}`)}catch(t){xa(e,`Failed to parse URL: ${t}`)}}let c=s.connect(i),l=new Promise((t,n)=>{let a=setTimeout(()=>{xa(e,`Connection timeout triggered after ${Date.now()-r}ms (limit: ${lY()}ms)`),i.close().catch(()=>{}),n(new Ni(`MCP server "${e}" connection timed out after ${lY()}ms`,`MCP connection timeout`))},lY());c.then(()=>{clearTimeout(a)},e=>{clearTimeout(a)})});try{await Promise.race([c,l]),o&&(Ca(e,`Server stderr: ${o}`),o=``);let n=Date.now()-r;xa(e,`Successfully connected (transport: ${t.type||`stdio`}) in ${n}ms`)}catch(n){let a=Date.now()-r;if(t.type===`sse`&&n instanceof Error){if(xa(e,`SSE Connection failed after ${a}ms: ${W({url:t.url,error:n.message,errorType:n.constructor.name,stack:n.stack})}`),Ca(e,n),n instanceof yJ)return fVe(e,t,`sse`)}else if(t.type===`http`&&n instanceof Error){let r=n;if(xa(e,`HTTP Connection failed after ${a}ms: ${n.message} (code: ${r.code||`none`}, errno: ${r.errno||`none`})`),Ca(e,n),n instanceof yJ)return fVe(e,t,`http`)}else t.type===`sse-ide`||t.type;throw i.close().catch(()=>{}),o&&Ca(e,`Server stderr: ${o}`),n}let u=s.getServerCapabilities(),d=s.getServerVersion(),f=s.getInstructions(),p=f;f&&f.length>_Y&&(p=`${f.slice(0,_Y)}… [truncated]`,xa(e,`Server instructions truncated from ${f.length} to ${_Y} chars`)),xa(e,`Connection established with capabilities: ${W({hasTools:!!u?.tools,hasPrompts:!!u?.prompts,hasResources:!!u?.resources,hasResourceSubscribe:!!u?.resources?.subscribe,serverVersion:d||`unknown`})}`),K(`[MCP] Server "${e}" connected with subscribe=${!!u?.resources?.subscribe}`),s.setRequestHandler(SK,async t=>(xa(e,`Elicitation request received during initialization: ${W(t)}`),{action:`cancel`}));let m=Date.now(),h=!1,g=s.onerror,_=s.onclose,v=0,y=!1,b=t=>{y||(y=!0,xa(e,`Closing transport (${t})`),s.close().catch(t=>{xa(e,`Error during close: ${G(t)}`)}))},x=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`);s.onerror=n=>{let r=Date.now()-m;h=!0;let i=t.type||`stdio`;if(xa(e,`${i.toUpperCase()} connection dropped after ${Math.floor(r/1e3)}s uptime`),n.message&&(n.message.includes(`ECONNRESET`)?xa(e,`Connection reset - server may have crashed or restarted`):n.message.includes(`ETIMEDOUT`)?xa(e,`Connection timeout - network issue or server unresponsive`):n.message.includes(`ECONNREFUSED`)?xa(e,`Connection refused - server may be down`):n.message.includes(`EPIPE`)?xa(e,`Broken pipe - server closed connection unexpectedly`):n.message.includes(`EHOSTUNREACH`)?xa(e,`Host unreachable - network connectivity issue`):n.message.includes(`ESRCH`)?xa(e,`Process not found - stdio server process terminated`):n.message.includes(`spawn`)?xa(e,`Failed to spawn process - check command and permissions`):xa(e,`Connection error: ${n.message}`)),i===`http`&&uVe(n)){xa(e,`MCP session expired (server returned 404 with session-not-found), triggering reconnection`),b(`session expired`),g&&g(n);return}if(i===`sse`||i===`http`){if(n.message.includes(`Maximum reconnection attempts`)){b(`SSE reconnection exhausted`),g&&g(n);return}x(n.message)?(v++,xa(e,`Terminal connection error ${v}/3`),v>=3&&(v=0,b(`max consecutive terminal errors`))):v=0}g&&g(n)},s.onclose=()=>{let n=Date.now()-m;xa(e,`${(t.type??`unknown`).toUpperCase()} connection closed after ${Math.floor(n/1e3)}s (${h?`with errors`:`cleanly`})`);let r=uY(e,t);xY.cache.delete(e),SY.cache.delete(e),CY.cache.delete(e),yY.cache.delete(r),xa(e,`Cleared connection cache for reconnection`),_&&_()};let S=async()=>{if(a&&(t.type===`stdio`||!t.type)&&i.stderr?.off(`data`,a),t.type===`stdio`)try{let t=i.pid;if(t){xa(e,`Sending SIGINT to MCP server process`);try{process.kill(t,`SIGINT`)}catch(t){xa(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),xa(e,`MCP server process exited cleanly`),n())}},50),a=setTimeout(()=>{r||(r=!0,clearInterval(i),xa(e,`Cleanup timeout reached, stopping process monitoring`),n())},600);try{if(await Us(100),!r){try{process.kill(t,0),xa(e,`SIGINT failed, sending SIGTERM to MCP server process`);try{process.kill(t,`SIGTERM`)}catch(t){xa(e,`Error sending SIGTERM: ${t}`),r=!0,clearInterval(i),clearTimeout(a),n();return}}catch{r=!0,clearInterval(i),clearTimeout(a),n();return}if(await Us(400),!r)try{process.kill(t,0),xa(e,`SIGTERM failed, sending SIGKILL to MCP server process`);try{process.kill(t,`SIGKILL`)}catch(t){xa(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){xa(e,`Error terminating process: ${t}`)}try{await s.close()}catch(t){xa(e,`Error closing client: ${t}`)}},C=Ai(S),w=async()=>{C?.(),await S()};return Date.now()-r,t.type,n?.totalServers,n?.stdioCount,n?.sseCount,n?.httpCount,n?.sseIdeCount,n?.wsIdeCount,{...cY(t)},{name:e,client:s,type:`connected`,capabilities:u??{},serverInfo:d,instructions:p,config:t,cleanup:w}}catch(i){let a=Date.now()-r;return n?.totalServers,n?.stdioCount||+(t.type===`stdio`),n?.sseCount||+(t.type===`sse`),n?.httpCount||+(t.type===`http`),n?.sseIdeCount||+(t.type===`sse-ide`),n?.wsIdeCount||+(t.type===`ws-ide`),t.type,{...cY(t)},xa(e,`Connection failed after ${a}ms: ${G(i)}`),Ca(e,`Connection failed: ${G(i)}`),{name:e,type:`failed`,config:t,error:G(i)}}},uY),bY=20,xY=rn(async e=>{if(e.type!==`connected`)return[];try{if(!e.capabilities?.tools)return[];let t=ose((await e.client.request({method:`tools/list`},zG)).tools),n=e.config.type===`sdk`&&h(process.env.CLAUDE_AGENT_SDK_MCP_NO_PREFIX);return t.map(t=>{let r=Gee(e.name,t.name);return{...Fze,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>_Y?`${e.slice(0,_Y)}… [truncated]`:e},isConcurrencySafe(){return t.annotations?.readOnlyHint??!1},isReadOnly(){return t.annotations?.readOnlyHint??!1},toAutoClassifierInput(e){return bVe(e,t.name)},isDestructive(){return t.annotations?.destructiveHint??!1},isOpenWorld(){return t.annotations?.openWorldHint??!1},isSearchOrReadCommand(){return tVe(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=PVe(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 MVe({client:await fY(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 hY&&i<1){xa(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 Ni)){let e=n.constructor.name;if(e===`Error`)throw new Ni(n.message,n.message.slice(0,200));if(e===`McpError`&&`code`in n&&typeof n.code==`number`)throw new Ni(n.message,`McpError ${n.code}`)}throw n}},userFacingName(){let n=t.annotations?.title||t.name;return`${e.name} - ${n} (MCP)`}}}).filter(vVe)}catch(t){return Ca(e.name,`Failed to fetch tools: ${G(t)}`),[]}},e=>e.name,bY),SY=rn(async e=>{if(e.type!==`connected`)return[];try{if(!e.capabilities?.resources)return[];let t=await e.client.request({method:`resources/list`},aG);return t.resources?t.resources.map(t=>({...t,server:e.name})):[]}catch(t){return Ca(e.name,`Failed to fetch resources: ${G(t)}`),[]}},e=>e.name,bY),CY=rn(async e=>{if(e.type!==`connected`)return[];try{if(!e.capabilities?.prompts)return[];let t=await e.client.request({method:`prompts/list`},SG);return t.prompts?ose(t.prompts).map(t=>{let n=Object.values(t.arguments??{}).map(e=>e.name);return{type:`prompt`,name:`mcp__${hn(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 fY(e),a=await r.client.getPrompt({name:t.name,arguments:ffe(n,i)});return(await Promise.all(a.messages.map(e=>TVe(e.content,r.name)))).flat()}catch(n){throw Ca(e.name,`Error running command '${t.name}': ${G(n)}`),n}}}}):[]}catch(t){return Ca(e.name,`Failed to fetch commands: ${G(t)}`),[]}},e=>e.name,bY)}));function BVe(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 TY(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 VVe(e){let t=[];if(tr(`policySettings`)?.allowManagedHooksOnly!==!0){let e=[`userSettings`,`projectSettings`,`localSettings`],n=new Set;for(let r of e){let e=Un(r);if(e){let t=xc(e);if(n.has(t))continue;n.add(t)}let i=tr(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=ZVe(e,Kr());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 HVe(e){switch(e){case`userSettings`:return`User settings (~/.workmate/settings.json)`;case`projectSettings`:return`Project settings (.workmate/settings.json)`;case`localSettings`:return`Local settings (.workmate/settings.local.json)`;case`pluginHook`:return`Plugin hooks (~/.workmate/plugins/*/hooks/hooks.json)`;case`sessionHook`:return`Session hooks (in-memory, temporary)`;case`builtinHook`:return`Built-in hooks (registered internally by Work Mate)`;default:return e}}function UVe(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 WVe(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 GVe(e,t,n){let r=Qee.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 EY=n((()=>{H(),Rn(),Ln(),Nee(),OY()}));function KVe(e,t,n,r,i,a,o){JVe(e,t,n,r,i,a,o)}function qVe(e,t,n,r,i,a,o){let s=o?.id||`function-hook-${Date.now()}-${Math.random()}`;return JVe(e,t,n,r,{type:`function`,id:s,timeout:o?.timeout||5e3,callback:i,errorMessage:a}),s}function JVe(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}),K(`Added session hook for event ${n} in session ${t}`)}function YVe(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=>!BVe(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}),K(`Removed session hook for event ${n} in session ${t}`)}function XVe(e){return e.map(e=>({matcher:e.matcher,skillRoot:e.skillRoot,hooks:e.hooks.map(e=>e.hook).filter(e=>e.type!==`function`)}))}function ZVe(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,XVe(e)),i}for(let e of at){let t=r.hooks[e];t&&i.set(e,XVe(t))}return i}function QVe(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 at){let t=r.hooks[e];if(t){let n=a(t);n.length>0&&i.set(e,n)}}return i}function $Ve(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=>BVe(e.hook,i));if(t)return t}}}function DY(e,t){e(e=>(e.sessionHooks.delete(t),e)),K(`Cleared all session hooks for session ${t}`)}var OY=n((()=>{Fn(),q(),EY()}));function eHe(e,t,n,r,i=!1){if(!n||Object.keys(n).length===0)return;let a=0;for(let o of at){let s=n[o];if(!s||s.length===0)continue;let c=o;i&&o===`Stop`&&(c=`SubagentStop`,K(`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)KVe(e,t,c,r,n),a++}}a>0&&K(`Registered ${a} frontmatter hook(s) from ${r} for session ${t}`)}var tHe=n((()=>{Fn(),q(),OY()}));async function nHe(e,t){if(!e.mcpServers?.length)return{clients:t,tools:[],cleanup:async()=>{}};let n=ab(e.source);if(ib(`mcp`)&&!n)return K(`[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=XJ(t),!n){K(`[Agent: ${e.agentType}] MCP server not found: ${t}`,{level:`warn`});continue}}else{let r=Object.entries(t);if(r.length!==1){K(`[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 yY(o,n);if(r.push(c),s&&i.push(c),c.type===`connected`){let t=await xY(c);a.push(...t),K(`[Agent: ${e.agentType}] Connected to MCP server '${o}' with ${t.length} tools`)}else K(`[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){K(`[Agent: ${e.agentType}] Error cleaning up MCP server '${t.name}': ${n}`,{level:`warn`})}};return{clients:[...t,...r],tools:a,cleanup:o}}function rHe(e){return e.type===`assistant`||e.type===`user`||e.type===`progress`||e.type===`system`&&`subtype`in e&&e.subtype===`compact_boundary`}async function*kY({agentDefinition:e,promptMessages:t,toolUseContext:n,canUseTool:r,isAsync:i,canShowPermissionPrompts:a,forkContextMessages:o,querySource:s,override:c,model:l,maxTurns:u,preserveToolUseResults:d,availableTools:f,allowedTools:p,onCacheSafeParams:m,contentReplacementState:h,useExactTools:g,worktreePath:_,description:v,transcriptSubdir:y,onQueryProgress:b}){let x=n.getAppState(),S=x.toolPermissionContext.mode,C=n.setAppStateForTasks??n.setAppState,w=WH(e.model,n.options.mainLoopModel,l,S),T=c?.agentId?c.agentId:JH();y&&h6(T,y),Qoe()&&(n.agentId??Kr(),e.agentType);let E=[...o?PH(o):[],...t],D=o===void 0?NT(100):IT(n.readFileState),[O,k]=await Promise.all([c?.userContext??fO(),c?.systemContext??dO()]),A=e.omitAgentsMd&&!c?.userContext&&!0,{agentsMd:ee,...te}=O,ne=A?te:O,{gitStatus:re,...ie}=k,ae=e.agentType===`Explore`||e.agentType===`Plan`?ie:k,j=e.permissionMode,oe=()=>{let e=n.getAppState(),t=e.toolPermissionContext;j&&e.toolPermissionContext.mode!==`bypassPermissions`&&e.toolPermissionContext.mode!==`acceptEdits`&&e.toolPermissionContext.mode!==`auto`&&(t={...t,mode:j});let r=a===void 0?j!==`bubble`&&i:!a;return r&&(t={...t,shouldAvoidPermissionPrompts:!0}),i&&!r&&(t={...t,awaitAutomatedChecksBeforeDialog:!0}),p!==void 0&&(t={...t,alwaysAllowRules:{cliArg:e.toolPermissionContext.alwaysAllowRules.cliArg,session:[...p]}}),t===e.toolPermissionContext?e:{...e,toolPermissionContext:t}},se=g?f:fU(e,f,i).resolvedTools,ce=Array.from(x.toolPermissionContext.additionalWorkingDirectories.keys()),M=c?.systemPrompt?c.systemPrompt:$g(await iHe(e,n,w,ce,se)),N=c?.abortController?c.abortController:i?new AbortController:n.abortController,le=[];for await(let t of Dat(T,e.agentType,N.signal))t.additionalContexts&&t.additionalContexts.length>0&&le.push(...t.additionalContexts);if(le.length>0){let e=a2({type:`hook_additional_context`,content:le,hookName:`SubagentStart`,toolUseID:zc(),hookEvent:`SubagentStart`});E.push(e)}let ue=!ib(`hooks`)||ab(e.source);e.hooks&&ue&&eHe(C,T,e.hooks,`agent '${e.agentType}'`,!0);let de=e.skills??[];if(de.length>0){let t=await $3(Wr()),r=[];for(let n of de){let i=aHe(n,t,e);if(!i){K(`[Agent: ${e.agentType}] Warning: Skill '${n}' specified in frontmatter was not found`,{level:`warn`});continue}let a=Ztt(i,t);if(a.type!==`prompt`){K(`[Agent: ${e.agentType}] Warning: Skill '${n}' is not a prompt-based skill`,{level:`warn`});continue}r.push({skillName:n,skill:a})}let{formatSkillLoadingMetadata:i}=await import(`./processSlashCommand-CPQB5_0w.js`),a=await Promise.all(r.map(async({skillName:e,skill:t})=>({skillName:e,skill:t,content:await t.getPromptForCommand(``,n)})));for(let{skillName:t,skill:n,content:r}of a){K(`[Agent: ${e.agentType}] Preloaded skill '${t}'`);let a=i(t,n.progressMessage);E.push(Q({content:[{type:`text`,text:a},...r],isMeta:!0}))}}let{clients:fe,tools:pe,cleanup:me}=await nHe(e,n.options.mcpClients),he=pe.length>0?vm([...se,...pe],`name`):se,ge=o0(n,{options:{isNonInteractiveSession:g?n.options.isNonInteractiveSession:i?!0:n.options.isNonInteractiveSession??!1,appendSystemPrompt:n.options.appendSystemPrompt,tools:he,commands:[],debug:n.options.debug,verbose:n.options.verbose,mainLoopModel:w,thinkingConfig:g?n.options.thinkingConfig:{type:`disabled`},mcpClients:fe,mcpResources:n.options.mcpResources,agentDefinitions:n.options.agentDefinitions,...g&&{querySource:s}},agentId:T,agentType:e.agentType,messages:E,readFileState:D,abortController:N,getAppState:oe,shareSetAppState:!i,shareSetResponseLength:!0,criticalSystemReminder_EXPERIMENTAL:e.criticalSystemReminder_EXPERIMENTAL,contentReplacementState:h});d&&(ge.preserveToolUseResults=!0),m&&m({systemPrompt:M,userContext:ne,systemContext:ae,toolUseContext:ge,forkContextMessages:E}),w6(E,T).catch(e=>K(`Failed to record sidechain transcript: ${e}`)),v6(T,{agentType:e.agentType,..._&&{worktreePath:_},...v&&{description:v}}).catch(e=>K(`Failed to write agent metadata: ${e}`));let _e=E.at(-1)?.uuid??null;try{for await(let t of t0({messages:E,systemPrompt:M,userContext:ne,systemContext:ae,canUseTool:r,toolUseContext:ge,querySource:s,maxTurns:u??e.maxTurns})){if(b?.(),t.type===`stream_event`&&t.event.type===`message_start`&&t.ttftMs!=null){n.pushApiMetricsEntry?.(t.ttftMs);continue}if(t.type===`attachment`){if(t.attachment.type===`max_turns_reached`){K(`[Agent
|
|
1595
1595
|
: $
|
|
1596
1596
|
{
|
|
1597
1597
|
agentDefinition.agentType
|
|
@@ -1633,7 +1633,7 @@ Rejected plan:
|
|
|
1633
1633
|
`);{let e=s.getAppState(),t=await gU({agentMessages:i,tools:s.options.tools,toolPermissionContext:e.toolPermissionContext,abortSignal:a.abortController.signal,subagentType:v.agentType,totalToolUseCount:c.totalToolUseCount});t&&(l=`${t}\n\n${l}`)}let u=await re();I0({taskId:o,description:n,status:`completed`,setAppState:h,finalMessage:l,usage:{totalTokens:j0(t),toolUses:c.totalToolUseCount,durationMs:c.totalDurationMs},toolUseId:s.toolUseId,...u})}catch(e){if(e instanceof hi){L0(o,h),T.agentType,T.resolvedAgentModel,Date.now()-T.startTime,T.isBuiltInAgent;let e=await re(),t=_U(i);I0({taskId:o,description:n,status:`killed`,setAppState:h,toolUseId:s.toolUseId,finalMessage:t,...e});return}let t=G(e);a6e(o,t,h);let r=await re();I0({taskId:o,description:n,status:`failed`,error:t,setAppState:h,toolUseId:s.toolUseId,...r})}finally{e?.(),oi(t)}});let c=s.options.tools.some(e=>fs(e,`Read`)||fs(e,`Bash`));return{data:{isAsync:!0,status:`async_launched`,agentId:o,description:n,prompt:e,outputFile:U8(o),canReadOutputFile:c}}}}if(S.type!==`message`)continue;let{result:C}=S;if(C.done)break;let w=C.value;if(i.push(w),M0(o,w,c,s.options.tools),f){let e=mU(w);e&&(hU(o,f,s.toolUseId,n,a,e),ti()&&R0(f,N0(o),h))}if(w.type===`progress`&&(w.data?.type===`bash_progress`||w.data?.type===`powershell_progress`)&&u&&u({toolUseID:w.toolUseID,data:w.data}),w.type!==`assistant`&&w.type!==`user`)continue;if(w.type===`assistant`){let e=jD(w);e>0&&s.setResponseLength(t=>t+e)}let E=u3([w]);for(let e of E)for(let n of e.message?.content??[])n.type!==`tool_use`&&n.type!==`tool_result`||u&&u({toolUseID:`agent_${l.message.id}`,data:{message:e,type:`agent_progress`,prompt:``,agentId:t}})}}catch(e){if(e instanceof hi)throw C=!0,T.agentType,T.resolvedAgentModel,Date.now()-T.startTime,T.isBuiltInAgent,e;K(`Sync agent error: ${G(e)}`,{level:`error`}),S=Ei(e)}finally{if(s.setToolJSX&&s.setToolJSX(null),y?.(),f&&(l6e(f,h),!_)){let e=N0(o);TE({type:`system`,subtype:`task_notification`,task_id:f,tool_use_id:s.toolUseId,status:S?`failed`:C?`stopped`:`completed`,output_file:``,summary:n,usage:{total_tokens:e.tokenCount,tool_uses:e.toolUseCount,duration_ms:Date.now()-a}})}oi(t),m?.(),_||(E=await re())}let D=i.findLast(e=>e.type!==`system`&&e.type!==`progress`);if(D&&Qme(D))throw T.agentType,T.resolvedAgentModel,Date.now()-T.startTime,T.isBuiltInAgent,new hi;if(S){if(!i.some(e=>e.type===`assistant`))throw S;K(`Sync agent recovering from error with ${i.length} messages`)}let O=pU(i,t,T);{let e=s.getAppState(),t=await gU({agentMessages:i,tools:s.options.tools,toolPermissionContext:e.toolPermissionContext,abortSignal:s.abortController.signal,subagentType:v.agentType,totalToolUseCount:O.totalToolUseCount});t&&(O.content=[{type:`text`,text:t},...O.content])}return{data:{status:`completed`,prompt:e,...O,...E}}}))}},isReadOnly(){return!0},toAutoClassifierInput(e){let t=e,n=[t.subagent_type].filter(e=>e!==void 0);return`${n.length>0?`(${n.join(`, `)}): `:`: `}${t.prompt}`},isConcurrencySafe(){return!0},userFacingName:EKe,userFacingNameBackgroundColor:DKe,getActivityDescription(e){return e?.description??`Running task`},async checkPermissions(e,t){return{behavior:`allow`,updatedInput:e}},mapToolResultToToolResultBlockParam(e,t){let n=e;if(`status`in n&&n.status===`remote_launched`){let e=n;return{tool_use_id:t,type:`tool_result`,content:[{type:`text`,text:`Remote agent launched in CCR.\ntaskId: ${e.taskId}\nsession_url: ${e.sessionUrl}\noutput_file: ${e.outputFile}\nThe agent is running remotely. You will be notified automatically when it completes.\nBriefly tell the user what you launched and end your response.`}]}}if(e.status===`async_launched`)return{tool_use_id:t,type:`tool_result`,content:[{type:`text`,text:`${`Async agent launched successfully.\nagentId: ${e.agentId} (internal ID - do not mention to user. Use SendMessage with to: '${e.agentId}' to continue this agent.)\nThe agent is working in the background. You will be notified automatically when it completes.`}\n${e.canReadOutputFile?`Do not duplicate this agent's work — avoid working with the same files or topics it is using. Work on non-overlapping tasks, or briefly tell the user what you launched and end your response.\noutput_file: ${e.outputFile}\nIf asked, you can check progress before completion by using ${cs} or ${js} tail on the output file.`:`Briefly tell the user what you launched and end your response. Do not generate any other text — agent results will arrive in a subsequent message.`}`}]};if(e.status===`completed`){let n=e,r=n.worktreePath?`\nworktreePath: ${n.worktreePath}\nworktreeBranch: ${n.worktreeBranch}`:``,i=e.content.length>0?e.content:[{type:`text`,text:`(Subagent completed but returned no output.)`}];return e.agentType&&Cee.has(e.agentType)&&!r?Ls(t,i):{tool_use_id:t,type:`tool_result`,content:[...i,{type:`text`,text:`agentId: ${e.agentId} (use SendMessage with to: '${e.agentId}' to continue this agent)${r}
|
|
1634
1634
|
<usage>total_tokens: ${e.totalTokens}
|
|
1635
1635
|
tool_uses: ${e.totalToolUseCount}
|
|
1636
|
-
duration_ms: ${e.totalDurationMs}</usage>`}]}}throw Error(`Unexpected agent tool result status: ${e.status}`)},renderToolResultMessage:yKe,renderToolUseMessage:bKe,renderToolUseTag:xKe,renderToolUseProgressMessage:xZ,renderToolUseRejectedMessage:SKe,renderToolUseErrorMessage:CKe,renderGroupedToolUse:TKe})}));function zKe(e,t){let n=t?`${e}@${t.toLowerCase()}`:e;return Lc(`sha256`).update(n+KKe).digest(`hex`).slice(0,16)}function BKe(e,t,n){return t===GKe?`default-bundle`:vv(t)?`official`:n?.has(e)?`org`:`user-local`}function VKe(e,t,n){return e.isBuiltin?`default-enable`:t?.has(e.name)?`org-policy`:n.some(t=>e.path.startsWith(t.endsWith(Sc)?t:t+Sc))?`seed-mount`:`user-install`}function kZ(e,t,n=null){let r=BKe(e,t,n),i=r===`official`||r===`default-bundle`;return{plugin_id_hash:zKe(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 AZ(e,t=null){let{marketplace:n}=_v(e.repository);return kZ(e.pluginManifest.name,n,t)}function HKe(e,t,n){for(let r of e){let{marketplace:e}=_v(r.repository);r.name,{...e&&{_PROTO_marketplace_name:e},...kZ(r.name,e,t)},VKe(r,t,n),+!!r.skillsPath+(r.skillsPaths?.length??0),+!!r.commandsPath+(r.commandsPaths?.length??0),r.manifest.mcpServers,r.hooksConfig,{...r.manifest.version&&{version:r.manifest.version}}}}function UKe(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 WKe(e,t){for(let n of e){let{name:e,marketplace:r}=_v(n.source),i=`plugin`in n&&n.plugin?n.plugin:e;n.type,{...r&&{_PROTO_marketplace_name:r},...kZ(i,r,t)}}}var GKe,KKe,jZ=n((()=>{Ra(),yv(),GKe=`builtin`,KKe=`claude-plugin-telemetry-v1`}));function qKe(e){let t=Date.now(),n=MZ.get(e);n!==void 0&&t-n<YKe||(MZ.set(e,t),qi(n=>{let r=n.skillUsage?.[e];return{...n,skillUsage:{...n.skillUsage,[e]:{usageCount:(r?.usageCount??0)+1,lastUsedAt:t}}}}))}function JKe(e){let t=Yi().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 YKe,MZ,XKe=n((()=>{Ki(),YKe=6e4,MZ=new Map}));function ZKe(e,t){return t?e.map(e=>e.type===`user`?{...e,sourceToolUseID:t}:e):e}function QKe(e,t){let n=Array.isArray(e.message.content)?e.message.content.find(e=>e.type===`tool_use`&&e.name===t):void 0;return n&&n.type===`tool_use`?n.id:void 0}var $Ke=n((()=>{}));function eqe(e){if(`status`in e&&e.status===`forked`)return(0,PZ.jsx)($,{height:1,children:(0,PZ.jsx)(F,{children:(0,PZ.jsx)(ke,{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} ${Za(n,`tool`)} allowed`)}return`model`in e&&e.model&&t.push(e.model),(0,PZ.jsx)($,{height:1,children:(0,PZ.jsx)(F,{children:(0,PZ.jsx)(ke,{children:t})})})}function tqe({skill:e},{commands:t}){return e?t?.find(t=>t.name===e)?.loadedFrom===`commands_DEPRECATED`?`/${e}`:e:null}function NZ(e,{tools:t,verbose:n}){if(!e.length)return(0,PZ.jsx)($,{height:1,children:(0,PZ.jsx)(F,{dimColor:!0,children:iqe})});let r=n?e:e.slice(-3),i=e.length-r.length,{inProgressToolUseIDs:a}=g3(e.map(e=>e.data));return(0,PZ.jsx)($,{children:(0,PZ.jsxs)(P,{flexDirection:`column`,children:[(0,PZ.jsx)(Zx,{children:r.map(e=>(0,PZ.jsx)(P,{height:1,overflow:`hidden`,children:(0,PZ.jsx)(_Z,{message:e.data.message,lookups:_3,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,PZ.jsxs)(F,{dimColor:!0,children:[`+`,i,` more tool `,Za(i,`use`)]})]})})}function nqe(e,{progressMessagesForMessage:t,tools:n,verbose:r}){return(0,PZ.jsxs)(PZ.Fragment,{children:[NZ(t,{tools:n,verbose:r}),(0,PZ.jsx)(LY,{})]})}function rqe(e,{progressMessagesForMessage:t,tools:n,verbose:r}){return(0,PZ.jsxs)(PZ.Fragment,{children:[NZ(t,{tools:n,verbose:r}),(0,PZ.jsx)(hS,{result:e,verbose:r})]})}var PZ,iqe,aqe=n((()=>{nS(),vS(),zY(),Ze(),vZ(),uS(),v3(),Qa(),PZ=et(),iqe=`Initializing…`})),oqe=i({}),sqe=n((()=>{})),cqe=i({}),lqe=n((()=>{})),uqe=i({}),dqe=n((()=>{}));async function FZ(e){let t=e.getAppState().mcp.commands.filter(e=>e.type===`prompt`&&e.loadedFrom===`mcp`);return t.length===0?q3(Wr()):vm([...await q3(Wr()),...t],`name`)}async function fqe(e,t,n,r,i,a,o){let s=Date.now(),c=JH();Z3().has(t);let l=mqe(e);e.source;let u=IZ.isSkillSearchEnabled()?{was_discovered:r.discoveredSkillNames?.has(t)??!1}:{},d=e.pluginInfo?_v(e.pluginInfo.repository).marketplace:void 0;r.queryTracking?.depth;let f=Ij()?.agentId;({...f&&{parent_agent_id:f},...u,...e.pluginInfo&&{_PROTO_plugin_name:e.pluginInfo.pluginManifest.name,...d&&{_PROTO_marketplace_name:d},plugin_name:l?e.pluginInfo.pluginManifest.name:`third-party`,plugin_repository:l?e.pluginInfo.repository:`third-party`,...AZ(e.pluginInfo)}});let{modifiedGetAppState:p,baseAgent:m,promptMessages:h,skillContent:g}=await i3e(e,n||``,r),_=[];K(`SkillTool executing forked skill ${t} with agent ${m.agentType}`);try{for await(let t of kY({agentDefinition:m,promptMessages:h,toolUseContext:{...r,getAppState:p},canUseTool:i,isAsync:!1,querySource:`agent:custom`,model:e.model,availableTools:r.options.tools,override:{agentId:c}}))if(_.push(t),(t.type===`assistant`||t.type===`user`)&&o){let e=u3([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:g,agentId:c}})}}let n=a3e(_,`Skill execution completed`);return _.length=0,K(`SkillTool forked skill ${t} completed in ${Date.now()-s}ms`),{data:{success:!0,commandName:t,status:`forked`,agentId:c,result:n}}}finally{oi(c)}}function pqe(e){for(let t of Object.keys(e)){if(_qe.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 mqe(e){return e.source!==`plugin`||!e.pluginInfo?.repository?!1:vv(_v(e.pluginInfo.repository).marketplace)}var IZ,hqe,gqe,LZ,_qe,vqe=n((()=>{ym(),H(),t6(),Ps(),q(),j9(),yv(),jZ(),At(),Ea(),Ra(),Bj(),l0(),rt(),v3(),To(),XKe(),XH(),AY(),$Ke(),zs(),sy(),aqe(),sqe(),lqe(),dqe(),wp(),IZ={...oqe,...cqe,...uqe,...xp},hqe=z(()=>V({skill:B().describe(`The skill name. E.g., "commit", "review-pr", or "pdf"`),args:B().optional().describe(`Optional arguments for the skill`)})),gqe=z(()=>nr([V({success:gt().describe(`Whether the skill is valid`),commandName:B().describe(`The name of the skill`),allowedTools:I(B()).optional().describe(`Tools allowed by this skill`),model:B().optional().describe(`Model override if specified`),status:L(`inline`).optional().describe(`Execution status`)}),V({success:gt().describe(`Whether the skill completed successfully`),commandName:B().describe(`The name of the skill`),status:L(`forked`).describe(`Execution status`),agentId:B().describe(`The ID of the sub-agent that executed the skill`),result:B().describe(`The result from the forked skill execution`)})])),LZ=Ts({name:is,searchHint:`invoke a slash-command skill`,maxResultSizeChars:1e5,get inputSchema(){return hqe()},get outputSchema(){return gqe()},description:async({skill:e})=>`Execute skill: ${e}`,prompt:async()=>oy(Wr()),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(`/`)?n.substring(1):n,i=J3(r,await FZ(t));return i?i.disableModelInvocation?{result:!1,message:`Skill ${r} cannot be used with ${is} tool due to disable-model-invocation`,errorCode:4}:i.type===`prompt`?{result:!0}:{result:!1,message:`Skill ${r} is not a prompt-based skill`,errorCode:5}:{result:!1,message:`Unknown skill: ${r}`,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=J3(i,await FZ(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=E9(a,LZ,`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}};let l=E9(a,LZ,`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`&&pqe(o))return{behavior:`allow`,updatedInput:{skill:e,args:t},decisionReason:void 0};let u=[{type:`addRules`,rules:[{toolName:is,ruleContent:i}],behavior:`allow`,destination:`localSettings`},{type:`addRules`,rules:[{toolName:is,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,c=await FZ(n),l=J3(s,c);if(qKe(s),l?.type===`prompt`&&l.context===`fork`)return fqe(l,s,t,n,r,i,a);let{processPromptSlashCommand:u}=await import(`./processSlashCommand-wXblpK2C.js`),d=await u(s,t||``,c,n);if(!d.shouldQuery)throw Error(`Command processing failed`);let f=d.allowedTools||[],p=d.model;Z3().has(s),l?.type===`prompt`&&l.source;let m=l?.type===`prompt`&&mqe(l),h=IZ.isSkillSearchEnabled()?{was_discovered:n.discoveredSkillNames?.has(s)??!1}:{},g=l?.type===`prompt`&&l.pluginInfo?_v(l.pluginInfo.repository).marketplace:void 0;n.queryTracking?.depth;let _=Ij()?.agentId;({..._&&{parent_agent_id:_},...h,...l?.type===`prompt`&&l.pluginInfo&&{_PROTO_plugin_name:l.pluginInfo.pluginManifest.name,...g&&{_PROTO_marketplace_name:g},plugin_name:m?l.pluginInfo.pluginManifest.name:`third-party`,plugin_repository:m?l.pluginInfo.repository:`third-party`,...AZ(l.pluginInfo)}});let v=QKe(i,is),y=ZKe(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}),v);return K(`SkillTool returning ${y.length} newMessages for skill ${s}`),{data:{success:!0,commandName:s,allowedTools:f.length>0?f:void 0,model:p},newMessages:y,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])]}}}}}}return p&&(t={...t,options:{...t.options,mainLoopModel:xie(p,e.options.mainLoopModel)}}),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:eqe,renderToolUseMessage:tqe,renderToolUseProgressMessage:NZ,renderToolUseRejectedMessage:nqe,renderToolUseErrorMessage:rqe}),_qe=new Set(`type.progressMessage.contentLength.argNames.model.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 yqe(e,t,n){let{head:r,tail:i,mtime:a,size:o}=t,s=r.indexOf(`
|
|
1636
|
+
duration_ms: ${e.totalDurationMs}</usage>`}]}}throw Error(`Unexpected agent tool result status: ${e.status}`)},renderToolResultMessage:yKe,renderToolUseMessage:bKe,renderToolUseTag:xKe,renderToolUseProgressMessage:xZ,renderToolUseRejectedMessage:SKe,renderToolUseErrorMessage:CKe,renderGroupedToolUse:TKe})}));function zKe(e,t){let n=t?`${e}@${t.toLowerCase()}`:e;return Lc(`sha256`).update(n+KKe).digest(`hex`).slice(0,16)}function BKe(e,t,n){return t===GKe?`default-bundle`:vv(t)?`official`:n?.has(e)?`org`:`user-local`}function VKe(e,t,n){return e.isBuiltin?`default-enable`:t?.has(e.name)?`org-policy`:n.some(t=>e.path.startsWith(t.endsWith(Sc)?t:t+Sc))?`seed-mount`:`user-install`}function kZ(e,t,n=null){let r=BKe(e,t,n),i=r===`official`||r===`default-bundle`;return{plugin_id_hash:zKe(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 AZ(e,t=null){let{marketplace:n}=_v(e.repository);return kZ(e.pluginManifest.name,n,t)}function HKe(e,t,n){for(let r of e){let{marketplace:e}=_v(r.repository);r.name,{...e&&{_PROTO_marketplace_name:e},...kZ(r.name,e,t)},VKe(r,t,n),+!!r.skillsPath+(r.skillsPaths?.length??0),+!!r.commandsPath+(r.commandsPaths?.length??0),r.manifest.mcpServers,r.hooksConfig,{...r.manifest.version&&{version:r.manifest.version}}}}function UKe(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 WKe(e,t){for(let n of e){let{name:e,marketplace:r}=_v(n.source),i=`plugin`in n&&n.plugin?n.plugin:e;n.type,{...r&&{_PROTO_marketplace_name:r},...kZ(i,r,t)}}}var GKe,KKe,jZ=n((()=>{Ra(),yv(),GKe=`builtin`,KKe=`claude-plugin-telemetry-v1`}));function qKe(e){let t=Date.now(),n=MZ.get(e);n!==void 0&&t-n<YKe||(MZ.set(e,t),qi(n=>{let r=n.skillUsage?.[e];return{...n,skillUsage:{...n.skillUsage,[e]:{usageCount:(r?.usageCount??0)+1,lastUsedAt:t}}}}))}function JKe(e){let t=Yi().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 YKe,MZ,XKe=n((()=>{Ki(),YKe=6e4,MZ=new Map}));function ZKe(e,t){return t?e.map(e=>e.type===`user`?{...e,sourceToolUseID:t}:e):e}function QKe(e,t){let n=Array.isArray(e.message.content)?e.message.content.find(e=>e.type===`tool_use`&&e.name===t):void 0;return n&&n.type===`tool_use`?n.id:void 0}var $Ke=n((()=>{}));function eqe(e){if(`status`in e&&e.status===`forked`)return(0,PZ.jsx)($,{height:1,children:(0,PZ.jsx)(F,{children:(0,PZ.jsx)(ke,{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} ${Za(n,`tool`)} allowed`)}return`model`in e&&e.model&&t.push(e.model),(0,PZ.jsx)($,{height:1,children:(0,PZ.jsx)(F,{children:(0,PZ.jsx)(ke,{children:t})})})}function tqe({skill:e},{commands:t}){return e?t?.find(t=>t.name===e)?.loadedFrom===`commands_DEPRECATED`?`/${e}`:e:null}function NZ(e,{tools:t,verbose:n}){if(!e.length)return(0,PZ.jsx)($,{height:1,children:(0,PZ.jsx)(F,{dimColor:!0,children:iqe})});let r=n?e:e.slice(-3),i=e.length-r.length,{inProgressToolUseIDs:a}=g3(e.map(e=>e.data));return(0,PZ.jsx)($,{children:(0,PZ.jsxs)(P,{flexDirection:`column`,children:[(0,PZ.jsx)(Zx,{children:r.map(e=>(0,PZ.jsx)(P,{height:1,overflow:`hidden`,children:(0,PZ.jsx)(_Z,{message:e.data.message,lookups:_3,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,PZ.jsxs)(F,{dimColor:!0,children:[`+`,i,` more tool `,Za(i,`use`)]})]})})}function nqe(e,{progressMessagesForMessage:t,tools:n,verbose:r}){return(0,PZ.jsxs)(PZ.Fragment,{children:[NZ(t,{tools:n,verbose:r}),(0,PZ.jsx)(LY,{})]})}function rqe(e,{progressMessagesForMessage:t,tools:n,verbose:r}){return(0,PZ.jsxs)(PZ.Fragment,{children:[NZ(t,{tools:n,verbose:r}),(0,PZ.jsx)(hS,{result:e,verbose:r})]})}var PZ,iqe,aqe=n((()=>{nS(),vS(),zY(),Ze(),vZ(),uS(),v3(),Qa(),PZ=et(),iqe=`Initializing…`})),oqe=i({}),sqe=n((()=>{})),cqe=i({}),lqe=n((()=>{})),uqe=i({}),dqe=n((()=>{}));async function FZ(e){let t=e.getAppState().mcp.commands.filter(e=>e.type===`prompt`&&e.loadedFrom===`mcp`);return t.length===0?q3(Wr()):vm([...await q3(Wr()),...t],`name`)}async function fqe(e,t,n,r,i,a,o){let s=Date.now(),c=JH();Z3().has(t);let l=mqe(e);e.source;let u=IZ.isSkillSearchEnabled()?{was_discovered:r.discoveredSkillNames?.has(t)??!1}:{},d=e.pluginInfo?_v(e.pluginInfo.repository).marketplace:void 0;r.queryTracking?.depth;let f=Ij()?.agentId;({...f&&{parent_agent_id:f},...u,...e.pluginInfo&&{_PROTO_plugin_name:e.pluginInfo.pluginManifest.name,...d&&{_PROTO_marketplace_name:d},plugin_name:l?e.pluginInfo.pluginManifest.name:`third-party`,plugin_repository:l?e.pluginInfo.repository:`third-party`,...AZ(e.pluginInfo)}});let{modifiedGetAppState:p,baseAgent:m,promptMessages:h,skillContent:g}=await i3e(e,n||``,r),_=[];K(`SkillTool executing forked skill ${t} with agent ${m.agentType}`);try{for await(let t of kY({agentDefinition:m,promptMessages:h,toolUseContext:{...r,getAppState:p},canUseTool:i,isAsync:!1,querySource:`agent:custom`,model:e.model,availableTools:r.options.tools,override:{agentId:c}}))if(_.push(t),(t.type===`assistant`||t.type===`user`)&&o){let e=u3([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:g,agentId:c}})}}let n=a3e(_,`Skill execution completed`);return _.length=0,K(`SkillTool forked skill ${t} completed in ${Date.now()-s}ms`),{data:{success:!0,commandName:t,status:`forked`,agentId:c,result:n}}}finally{oi(c)}}function pqe(e){for(let t of Object.keys(e)){if(_qe.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 mqe(e){return e.source!==`plugin`||!e.pluginInfo?.repository?!1:vv(_v(e.pluginInfo.repository).marketplace)}var IZ,hqe,gqe,LZ,_qe,vqe=n((()=>{ym(),H(),t6(),Ps(),q(),j9(),yv(),jZ(),At(),Ea(),Ra(),Bj(),l0(),rt(),v3(),To(),XKe(),XH(),AY(),$Ke(),zs(),sy(),aqe(),sqe(),lqe(),dqe(),wp(),IZ={...oqe,...cqe,...uqe,...xp},hqe=z(()=>V({skill:B().describe(`The skill name. E.g., "commit", "review-pr", or "pdf"`),args:B().optional().describe(`Optional arguments for the skill`)})),gqe=z(()=>nr([V({success:gt().describe(`Whether the skill is valid`),commandName:B().describe(`The name of the skill`),allowedTools:I(B()).optional().describe(`Tools allowed by this skill`),model:B().optional().describe(`Model override if specified`),status:L(`inline`).optional().describe(`Execution status`)}),V({success:gt().describe(`Whether the skill completed successfully`),commandName:B().describe(`The name of the skill`),status:L(`forked`).describe(`Execution status`),agentId:B().describe(`The ID of the sub-agent that executed the skill`),result:B().describe(`The result from the forked skill execution`)})])),LZ=Ts({name:is,searchHint:`invoke a slash-command skill`,maxResultSizeChars:1e5,get inputSchema(){return hqe()},get outputSchema(){return gqe()},description:async({skill:e})=>`Execute skill: ${e}`,prompt:async()=>oy(Wr()),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(`/`)?n.substring(1):n,i=J3(r,await FZ(t));return i?i.disableModelInvocation?{result:!1,message:`Skill ${r} cannot be used with ${is} tool due to disable-model-invocation`,errorCode:4}:i.type===`prompt`?{result:!0}:{result:!1,message:`Skill ${r} is not a prompt-based skill`,errorCode:5}:{result:!1,message:`Unknown skill: ${r}`,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=J3(i,await FZ(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=E9(a,LZ,`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}};let l=E9(a,LZ,`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`&&pqe(o))return{behavior:`allow`,updatedInput:{skill:e,args:t},decisionReason:void 0};let u=[{type:`addRules`,rules:[{toolName:is,ruleContent:i}],behavior:`allow`,destination:`localSettings`},{type:`addRules`,rules:[{toolName:is,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,c=await FZ(n),l=J3(s,c);if(qKe(s),l?.type===`prompt`&&l.context===`fork`)return fqe(l,s,t,n,r,i,a);let{processPromptSlashCommand:u}=await import(`./processSlashCommand-CPQB5_0w.js`),d=await u(s,t||``,c,n);if(!d.shouldQuery)throw Error(`Command processing failed`);let f=d.allowedTools||[],p=d.model;Z3().has(s),l?.type===`prompt`&&l.source;let m=l?.type===`prompt`&&mqe(l),h=IZ.isSkillSearchEnabled()?{was_discovered:n.discoveredSkillNames?.has(s)??!1}:{},g=l?.type===`prompt`&&l.pluginInfo?_v(l.pluginInfo.repository).marketplace:void 0;n.queryTracking?.depth;let _=Ij()?.agentId;({..._&&{parent_agent_id:_},...h,...l?.type===`prompt`&&l.pluginInfo&&{_PROTO_plugin_name:l.pluginInfo.pluginManifest.name,...g&&{_PROTO_marketplace_name:g},plugin_name:m?l.pluginInfo.pluginManifest.name:`third-party`,plugin_repository:m?l.pluginInfo.repository:`third-party`,...AZ(l.pluginInfo)}});let v=QKe(i,is),y=ZKe(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}),v);return K(`SkillTool returning ${y.length} newMessages for skill ${s}`),{data:{success:!0,commandName:s,allowedTools:f.length>0?f:void 0,model:p},newMessages:y,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])]}}}}}}return p&&(t={...t,options:{...t.options,mainLoopModel:xie(p,e.options.mainLoopModel)}}),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:eqe,renderToolUseMessage:tqe,renderToolUseProgressMessage:NZ,renderToolUseRejectedMessage:nqe,renderToolUseErrorMessage:rqe}),_qe=new Set(`type.progressMessage.contentLength.argNames.model.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 yqe(e,t,n){let{head:r,tail:i,mtime:a,size:o}=t,s=r.indexOf(`
|
|
1637
1637
|
`),c=s>=0?r.slice(0,s):r;if(c.includes(`"isSidechain":true`)||c.includes(`"isSidechain": true`))return null;let l=_r(i,`customTitle`)||_r(r,`customTitle`)||_r(i,`aiTitle`)||_r(r,`aiTitle`)||void 0,u=Gte(r)||void 0,d=_n(r,`timestamp`),f;if(d){let e=Date.parse(d);Number.isNaN(e)||(f=e)}let p=l||_r(i,`lastPrompt`)||_r(i,`summary`)||u;if(!p)return null;let m=_r(i,`gitBranch`)||_n(r,`gitBranch`)||void 0,h=_n(r,`cwd`)||n||void 0,g=i.split(`
|
|
1638
1638
|
`).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&&_r(g,`tag`)||void 0,createdAt:f}}async function RZ(e,t,n){let r;try{r=await qc(e)}catch{return[]}return(await Promise.all(r.map(async r=>{if(!r.endsWith(`.jsonl`))return null;let i=fee(r.slice(0,-6));if(!i)return null;let a=X(e,r);if(!t)return{sessionId:i,filePath:a,mtime:0,projectPath:n};try{return{sessionId:i,filePath:a,mtime:(await Zc(a)).mtime.getTime(),projectPath:n}}catch{return null}}))).filter(e=>e!==null)}async function bqe(e){let t=await bee(e.filePath);if(!t)return null;let n=yqe(e.sessionId,t,e.projectPath);return n?(e.mtime&&(n.lastModified=e.mtime),n):null}function xqe(e,t){return t.mtime===e.mtime?t.sessionId<e.sessionId?-1:+(t.sessionId>e.sessionId):t.mtime-e.mtime}async function Sqe(e,t,n){e.sort(xqe);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+Dqe,e.length),c=e.slice(t,s),l=await Promise.all(c.map(bqe));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 Cqe(e){let t=await Promise.all(e.map(bqe)),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 wqe(e,t,n){let r=await Rte(e),i;if(t)try{i=await gte(r)}catch{i=[]}else i=[];if(i.length<=1){let e=await Wt(r);return e?RZ(e,n,r):[]}let a=gee(),o=process.platform===`win32`,s=i.map(e=>{let t=Pn(e);return{path:e,prefix:o?t.toLowerCase():t}});s.sort((e,t)=>t.prefix.length-e.prefix.length);let c;try{c=await qc(a,{withFileTypes:!0})}catch{let e=await Wt(r);return e?RZ(e,n,r):[]}let l=[],u=new Set,d=await Wt(r);if(d){let e=pc(d);u.add(o?e.toLowerCase():e),l.push(...await RZ(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 RZ(X(a,e.name),n,r));break}}}return l}async function Tqe(e){let t=gee(),n;try{n=await qc(t,{withFileTypes:!0})}catch{return[]}return(await Promise.all(n.filter(e=>e.isDirectory()).map(n=>RZ(X(t,n.name),e)))).flat()}async function Eqe(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 wqe(t,i??!0,o):await Tqe(o);return o?Sqe(s,n,a):Cqe(s)}var Dqe,Oqe=n((()=>{Oee(),hr(),Dqe=32}));function zZ(){return X(Wi(),Pqe)}async function kqe(){try{return(await Zc(zZ())).mtimeMs}catch{return 0}}async function Aqe(){let e=zZ(),t,n;try{let[r,i]=await Promise.all([Zc(e),Kc(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<Fqe&&n!==void 0&&sc(n))return K(`[autoDream] lock held by live PID ${n} (mtime ${Math.round((Date.now()-t)/1e3)}s ago)`),null;await Wc(Wi(),{recursive:!0}),await el(e,String(process.pid));let r;try{r=await Kc(e,`utf8`)}catch{return null}return parseInt(r.trim(),10)===process.pid?t??0:null}async function jqe(e){let t=zZ();try{if(e===0){await $c(t);return}await el(t,``);let n=e/1e3;await cce(t,n,n)}catch(e){K(`[autoDream] rollback failed: ${e.message} — next trigger delayed to minHours`)}}async function Mqe(e){return(await RZ(u8(ri()),!0)).filter(t=>t.mtime>e).map(e=>e.sessionId)}async function Nqe(){try{await Wc(Wi(),{recursive:!0}),await el(zZ(),String(process.pid))}catch(e){K(`[autoDream] recordConsolidation write failed: ${e.message}`)}}var Pqe,Fqe,BZ=n((()=>{H(),Vi(),q(),cc(),Oqe(),_8(),Pqe=`.consolidate-lock`,Fqe=3600*1e3}));function Iqe(e){return typeof e==`object`&&!!e&&`type`in e&&e.type===`dream`}function Lqe(e,t){let n=c5(`dream`);return jE({...l5(n,`dream`,`dreaming`),type:`dream`,status:`running`,phase:`starting`,sessionsReviewing:t.sessionsReviewing,filesTouched:[],turns:[],abortController:t.abortController,priorMtime:t.priorMtime},e),n}function Rqe(e,t,n,r){AE(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(-29).concat(t)}})}function zqe(e,t){AE(e,t,e=>({...e,status:`completed`,endTime:Date.now(),notified:!0,abortController:void 0}))}function Bqe(e,t){AE(e,t,e=>({...e,status:`failed`,endTime:Date.now(),notified:!0,abortController:void 0}))}var VZ,HZ=n((()=>{BZ(),u5(),NE(),VZ={name:`DreamTask`,type:`dream`,async kill(e,t){let n;AE(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 jqe(n)}}}));function Vqe(e,t){let n=c5(`local_workflow`);return jE({...l5(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 Hqe(e,t){AE(e,t,e=>({...e,status:`completed`,endTime:Date.now(),notified:!0,abortController:void 0}))}function Uqe(e,t,n){AE(e,t,e=>({...e,status:`failed`,endTime:Date.now(),notified:!0,abortController:void 0,...n===void 0?{}:{error:n}}))}function UZ(e,t){AE(e,t,e=>e.status===`running`?(e.abortController?.abort(),{...e,status:`killed`,endTime:Date.now(),notified:!0,abortController:void 0}):e)}var Wqe,WZ=n((()=>{u5(),q(),NE(),Wqe={name:`LocalWorkflowTask`,type:`local_workflow`,async kill(e,t){UZ(e,t)}}}));function Gqe(){return[uM,z0,VZ,Wqe]}function Kqe(e){return Gqe().find(t=>t.type===e)}var qqe=n((()=>{HZ(),V0(),dM(),WZ()}));async function Jqe(e,t){let{getAppState:n,setAppState:r}=t,i=n().tasks?.[e];if(!i)throw new GZ(`No task found with ID: ${e}`,`not_found`);if(i.status!==`running`)throw new GZ(`Task ${e} is not running (status: ${i.status})`,`not_running`);let a=Kqe(i.type);if(!a)throw new GZ(`Unsupported task type: ${i.type}`,`unsupported_type`);if(await a.kill(e,r),Kj(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&&EE(e,`stopped`,{toolUseId:i.toolUseId,summary:i.description})}let o=Kj(i)?i.command:i.description;return{taskId:e,taskType:i.type,command:o}}var GZ,Yqe=n((()=>{qqe(),kE(),qj(),b(),GZ=class extends Error{constructor(e,t){super(e),x(this,`code`,void 0),this.code=t,this.name=`StopTaskError`}}}));function Xqe(){return``}function Zqe(e){let t=e.split(`
|
|
1639
1639
|
`),n=e;return t.length>qZ&&(n=t.slice(0,qZ).join(`
|
|
@@ -2046,7 +2046,7 @@ Use this when:
|
|
|
2046
2046
|
|
|
2047
2047
|
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.`})),uQe,dQe,fQe=n((()=>{At(),Ps(),rt(),lQe(),uQe=z(()=>mn({description:B().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:R().optional().describe(`Maximum number of results to return (default: 5)`)})),dQe=Ts({name:n$,searchHint:`find search discover skills commands tools capabilities`,maxResultSizeChars:1e4,strict:!0,get inputSchema(){return uQe()},async description(){return sQe},async prompt(){return cQe},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 Ls(t,`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 Ls(t,`Found ${e.count} relevant skill(s):\n\n${n.join(`
|
|
2048
2048
|
|
|
2049
|
-
`)}`)},async call(e,t){let{getSkillIndex:n,searchSkills:r}=await import(`./localSearch-
|
|
2049
|
+
`)}`)},async call(e,t){let{getSkillIndex:n,searchSkills:r}=await import(`./localSearch-D3rvcRRC.js`),{getCwd:i}=await import(`./cwd-BH2f3u0o.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}}}})}));function pQe(e,t,n){return{toolUseContext:e,canUseTool:t,...n===void 0?{}:{parentMessage:n},agentId:e.agentId}}function mQe(e){return Jie(e)}function hQe(e){return oae(e)}var r$=n((()=>{hs()}));function gQe(e,t=bQe){let n=new Map,r=e.subscribe(()=>{let r=e.listRuns();for(let e of r){let r=n.get(e.runId);if(r===void 0){n.set(e.runId,e.status);continue}r!==e.status&&yQe.has(e.status)&&t(_Qe(e)),n.set(e.runId,e.status)}});return()=>{r(),n.clear()}}function _Qe(e){let t=e.status===`completed`?`completed successfully`:e.status===`failed`?`failed`:`was stopped`,n=e.status===`failed`&&e.error?`: ${e.error}`:``,r=`Workflow "${e.workflowName}" ${t}${n}`;return`<${ia}>
|
|
2050
2050
|
<${Da}>${e.runId}</${Da}>
|
|
2051
2051
|
<${ya}>${vQe}</${ya}>
|
|
2052
2052
|
<${fa}>${e.status}</${fa}>
|
|
@@ -2392,7 +2392,7 @@ ${t?`${t}\n`:``}\
|
|
|
2392
2392
|
`,W0e=new Set([`select-string`,`get-childitem`,`findstr`,`where.exe`]),G0e=new Set([`get-content`,`get-item`,`test-path`,`resolve-path`,`get-process`,`get-service`,`get-childitem`,`get-location`,`get-filehash`,`get-acl`,`format-hex`]),K0e=new Set([`write-output`,`write-host`]),_1=2e3,q0e=1e3,J0e=15e3,Y0e=[`start-sleep`,`sleep`],v1=`Enterprise policy requires sandboxing, but sandboxing is not available on native Windows. Shell command execution is blocked on this platform by policy.`,y1=h(process.env.WORKMATE_DISABLE_BACKGROUND_TASKS),b1=z(()=>mn({command:B().describe(`The PowerShell command to execute`),timeout:Cx(R().optional()).describe(`Optional timeout in milliseconds (max ${u1()})`),description:B().optional().describe(`Clear, concise description of what this command does in active voice.`),run_in_background:LM(gt().optional()).describe(`Set to true to run this command in the background. Use Read to read the output later.`),dangerouslyDisableSandbox:LM(gt().optional()).describe(`Set this to true to dangerously override sandbox mode and run commands without sandboxing.`)})),X0e=z(()=>y1?b1().omit({run_in_background:!0}):b1()),Z0e=z(()=>V({stdout:B().describe(`The standard output of the command`),stderr:B().describe(`The standard error output of the command`),interrupted:gt().describe(`Whether the command was interrupted`),returnCodeInterpretation:B().optional().describe(`Semantic interpretation for non-error exit codes with special meaning`),isImage:gt().optional().describe(`Flag to indicate if stdout contains image data`),persistedOutputPath:B().optional().describe(`Path to persisted full output when too large for inline`),persistedOutputSize:R().optional().describe(`Total output size in bytes when persisted`),backgroundTaskId:B().optional().describe(`ID of the background task if command is running in background`),backgroundedByUser:gt().optional().describe(`True if the user manually backgrounded the command with Ctrl+B`),assistantAutoBackgrounded:gt().optional().describe(`True if the command was auto-backgrounded by the assistant-mode blocking budget`)})),Q0e=[`npm`,`yarn`,`pnpm`,`node`,`python`,`python3`,`go`,`cargo`,`make`,`docker`,`terraform`,`webpack`,`vite`,`jest`,`pytest`,`curl`,`Invoke-WebRequest`,`build`,`test`,`serve`,`watch`,`dev`],x1=Ts({name:Jo,searchHint:`execute Windows PowerShell commands`,maxResultSizeChars:3e4,strict:!0,async description({description:e}){return e||`Run PowerShell command`},async prompt(){return j0e()},isConcurrencySafe(e){return this.isReadOnly?.(e)??!1},isSearchOrReadCommand(e){return e?.command?z0e(e.command):{isSearch:!1,isRead:!1}},isReadOnly(e){return!Z$e(e.command)&&Q$e(e.command)},toAutoClassifierInput(e){return e.command},get inputSchema(){return X0e()},get outputSchema(){return Z0e()},userFacingName(){return`PowerShell`},getToolUseSummary(e){if(!e?.command)return null;let{command:t,description:n}=e;return n||Ja(t,50)},getActivityDescription(e){return e?.command?`Running ${e.description??Ja(e.command,50)}`:`Running command`},isEnabled(){return!0},async validateInput(e){return V0e()?{result:!1,message:v1,errorCode:11}:{result:!0}},async checkPermissions(e,t){return await w0e(e,t)},renderToolUseMessage:N0e,renderToolUseProgressMessage:P0e,renderToolUseQueuedMessage:F0e,renderToolResultMessage:I0e,renderToolUseErrorMessage:L0e,mapToolResultToToolResultBlockParam({interrupted:e,stdout:t,stderr:n,isImage:r,persistedOutputPath:i,persistedOutputSize:a,backgroundTaskId:o,backgroundedByUser:s,assistantAutoBackgrounded:c},l){if(r){let e=yve(t,l);if(e)return e}let u=t;if(i){let e=ox(t?t.replace(/^(\s*\n)+/,``).trimEnd():``,ux);u=ix({filepath:i,originalSize:a??0,isJson:!1,preview:e.preview,hasMore:e.hasMore})}else t&&(u=t.replace(/^(\s*\n)+/,``),u=u.trimEnd());let d=n.trim();e&&(n&&(d+=g1),d+=`<error>Command was aborted before completion</error>`);let f=``;if(o){let e=U8(o);f=c?`Command exceeded the assistant-mode blocking budget (${J0e/1e3}s) and was moved to the background with ID: ${o}. It is still running — you will be notified when it completes. Output is being written to: ${e}. In assistant mode, delegate long-running work to a subagent or use run_in_background to keep this conversation responsive.`:s?`Command was manually backgrounded by user with ID: ${o}. Output is being written to: ${e}`:`Command running in background with ID: ${o}. Output is being written to: ${e}`}return{tool_use_id:l,type:`tool_result`,content:[u,d,f].filter(Boolean).join(`
|
|
2393
2393
|
`),is_error:e}},async call(e,t,n,r,i){if(V0e())throw Error(v1);let{abortController:a,setAppState:o,setToolJSX:s}=t,c=!t.agentId,l=0;try{let n=H0e({input:e,abortController:a,setAppState:t.setAppStateForTasks??o,setToolJSX:s,preventCwdChanges:!c,isMainThread:c,toolUseId:t.toolUseId,agentId:t.agentId}),r;do if(r=await n.next(),!r.done&&i){let e=r.value;i({toolUseID:`ps-progress-${l++}`,data:{type:`powershell_progress`,output:e.output,fullOutput:e.fullOutput,elapsedTimeSeconds:e.elapsedTimeSeconds,totalLines:e.totalLines,totalBytes:e.totalBytes,timeoutMs:e.timeoutMs,taskId:e.taskId}})}while(!r.done);let u=r.value;u.code===0&&!u.stdout&&u.stderr&&!u.backgroundTaskId||KP(e.command,u.code,u.stdout);let d=u.interrupted&&a.signal.reason===`interrupt`,f=``;if(c&&Sve(t.getAppState().toolPermissionContext)&&(f=Jb(``)),u.backgroundTaskId){let t=fM(u.stdout||``,e.command);if(c&&t.hints.length>0)for(let e of t.hints);return{data:{stdout:t.stripped,stderr:[u.stderr||``,f].filter(Boolean).join(`
|
|
2394
2394
|
`),interrupted:!1,backgroundTaskId:u.backgroundTaskId,backgroundedByUser:u.backgroundedByUser,assistantAutoBackgrounded:u.assistantAutoBackgrounded}}}let p=new eo,m=(u.stdout||``).trimEnd();p.append(m+g1);let h=u$e(e.command,u.code,m,u.stderr||``),g=_ve(p.toString()),_=fM(g,e.command);if(g=_.stripped,c&&_.hints.length>0)for(let e of _.hints);if(u.preSpawnError)throw Error(u.preSpawnError);if(h.isError&&!d)throw new mi(g,u.stderr||``,u.code,u.interrupted);let v=64*1024*1024,y,b;if(u.outputFilePath&&u.outputTaskId)try{let e=await Zc(u.outputFilePath);b=e.size,await nx();let t=tx(u.outputTaskId,!1);e.size>v&&await sce(u.outputFilePath,v);try{await Uc(u.outputFilePath,t)}catch{await Hc(u.outputFilePath,t)}y=t}catch{}let x=qb(g),S=g;if(x){let e=await bve(g,u.outputFilePath,b);e?S=e:x=!1}let C=[u.stderr||``,f].filter(Boolean).join(`
|
|
2395
|
-
`);return h1(e.command),S.length,C.length,u.code,u.interrupted,{data:{stdout:S,stderr:C,interrupted:u.interrupted,returnCodeInterpretation:h.message,isImage:x,persistedOutputPath:y,persistedOutputSize:b}}}finally{s&&s(null)}},isResultTruncated(e){return aS(e.stdout)||aS(e.stderr)}})}));function $0e(e){let t=e.toLowerCase();return n2e.includes(t)?t:null}function e2e(){let e=C1(),t=e.map(e=>e.isEnabled());return e.filter((e,n)=>t[n]).map(e=>e.name)}function C1(){return[DZ,cQ,dB,...kb()?[]:[yL,dL],fQ,ES,RX,HI,HX,FL,YZ,yQ,LZ,NQ,jZe,KXe,...jS()?[RZe,GZe,QZe,aQe]:[],...h(process.env.ENABLE_LSP_TOOL)?[DQ]:[],...cse()?[oXe,_Xe]:[],...E1?[E1]:[],t2e,vJe,...D1()?[D1()]:[],dQe,kJ,IJ,...BO()?[sk]:[],LYe]}function w1(e,t){return e.filter(e=>!w9(t,e))}function T1(e,t){let n=O1(e),r=w1(t,e),i=(e,t)=>e.name.localeCompare(t.name);return vm([...n].sort(i).concat(r.sort(i)),`name`)}var E1,t2e,D1,n2e,O1,k1=n((()=>{Ps(),OZ(),vqe(),fB(),zX(),OS(),UI(),bL(),UX(),nJe(),yJe(),EJe(),IL(),pQ(),IJe(),fL(),UJe(),OYe(),AJ(),LJ(),ck(),RYe(),QYe(),sXe(),vXe(),qXe(),MZe(),zZe(),KZe(),$Ze(),oQe(),ym(),QO(),VS(),ds(),ps(),fQe(),r$e(),j9(),Ab(),g(),Is(),lse(),WX(),E1=process.env.WORKMATE_VERIFY_PLAN===`true`?(s$e(),e(i$e)).VerifyPlanExecutionTool:null,t2e=n$e(),D1=()=>cae()?(S1(),e(m1)).PowerShellTool:null,n2e=[`default`],O1=e=>{if(h(process.env.WORKMATE_SIMPLE))return w1([dB,ES,RX],e);let t=new Set([kJ.name,IJ.name,Es]),n=w1(C1().filter(e=>!t.has(e.name)),e);GWe()&&n.some(e=>fs(e,`REPL`))&&(n=n.filter(e=>!KWe.has(e.name)));let r=n.map(e=>e.isEnabled());return n.filter((e,t)=>r[t])}})),r2e,A1,i2e=n((()=>{b(),r2e=Symbol.asyncIterator,A1=class{constructor(e){x(this,`returned`,void 0),x(this,`queue`,[]),x(this,`readResolve`,void 0),x(this,`readReject`,void 0),x(this,`isDone`,!1),x(this,`hasError`,void 0),x(this,`started`,!1),this.returned=e}[r2e](){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 a2e(e){switch(e){case`allow`:return`allowed`;case`deny`:return`denied`;default:return`asked for confirmation for`}}var o2e=n((()=>{}));async function*s2e(e,t,n,r,i,a,o,s,c){let l=Date.now();try{let r=e.getAppState().toolPermissionContext.mode,c=a;for await(let a of vat(t.name,n,i,c,e,r,e.abortController.signal))try{if(a.message?.type===`attachment`&&a.message.attachment.type===`hook_cancelled`){Zs(t.name),e.queryTracking?.chainId,e.queryTracking?.depth,yield{message:a2({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:a2({type:`hook_blocking_error`,hookName:`PostToolUse:${t.name}`,toolUseID:n,hookEvent:`PostToolUse`,blockingError:a.blockingError})}),a.preventContinuation){yield{message:a2({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:a2({type:`hook_additional_context`,content:a.additionalContexts,hookName:`PostToolUse:${t.name}`,toolUseID:n,hookEvent:`PostToolUse`})}),a.updatedMCPToolOutput&&aY(t)&&(c=a.updatedMCPToolOutput,yield{updatedMCPToolOutput:c})}catch(r){Date.now()-l,Zs(t.name),t.isMcp,e.queryTracking?.chainId,e.queryTracking?.depth,{...s?{mcpServerType:s}:{},...o?{requestId:o}:{}},yield{message:a2({type:`hook_error_during_execution`,content:OQ(r),hookName:`PostToolUse:${t.name}`,toolUseID:n,hookEvent:`PostToolUse`})}}}catch(e){Y(e)}}async function*c2e(e,t,n,r,i,a,o,s,c,l){let u=Date.now();try{let r=e.getAppState().toolPermissionContext.mode;for await(let l of yat(t.name,n,i,a,e,o,r,e.abortController.signal))try{if(l.message?.type===`attachment`&&l.message.attachment.type===`hook_cancelled`){Zs(t.name),e.queryTracking?.chainId,e.queryTracking?.depth,yield{message:a2({type:`hook_cancelled`,hookName:`PostToolUseFailure:${t.name}`,toolUseID:n,hookEvent:`PostToolUseFailure`})};continue}l.message&&!(l.message.type===`attachment`&&l.message.attachment.type===`hook_blocking_error`)&&(yield{message:l.message}),l.blockingError&&(yield{message:a2({type:`hook_blocking_error`,hookName:`PostToolUseFailure:${t.name}`,toolUseID:n,hookEvent:`PostToolUseFailure`,blockingError:l.blockingError})}),l.additionalContexts&&l.additionalContexts.length>0&&(yield{message:a2({type:`hook_additional_context`,content:l.additionalContexts,hookName:`PostToolUseFailure:${t.name}`,toolUseID:n,hookEvent:`PostToolUseFailure`})})}catch(r){Date.now()-u,Zs(t.name),t.isMcp,e.queryTracking?.chainId,e.queryTracking?.depth,{...c?{mcpServerType:c}:{},...s?{requestId:s}:{}},yield{message:a2({type:`hook_error_during_execution`,content:OQ(r),hookName:`PostToolUseFailure:${t.name}`,toolUseID:n,hookEvent:`PostToolUseFailure`})}}}catch(e){Y(e)}}async function l2e(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 K(`Hook approved tool use for ${t.name}, but canUseTool is required`),{decision:await i(t,l,r,a,o),input:l};let d=await yct(t,l,r);return d===null?(K(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`?(K(`Hook approved tool use for ${t.name}, but deny rule overrides: ${d.message}`),{decision:d,input:l}):(K(`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 K(`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*u2e(e,t,n,r,i,a,o,s){let c=Date.now();try{let i=e.getAppState();for await(let s of _at(t.name,r,n,e,i.toolPermissionContext.mode,e.abortController.signal,void 0,e.requestPrompt,t.getToolUseSummary?.(n)))try{if(s.message&&(yield{type:`message`,message:{message:s.message}}),s.blockingError){let e=fat(`PreToolUse:${t.name}`,s.blockingError);yield{type:`hookPermissionResult`,hookPermissionResult:{behavior:`deny`,message:e,decisionReason:{type:`hook`,hookName:`PreToolUse:${t.name}`,reason:e}}}}if(s.preventContinuation&&(yield{type:`preventContinuation`,shouldPreventContinuation:!0},s.stopReason&&(yield{type:`stopReason`,stopReason:s.stopReason})),s.permissionBehavior!==void 0){K(`Hook result has permissionBehavior=${s.permissionBehavior}`);let e={type:`hook`,hookName:`PreToolUse:${t.name}`,hookSource:s.hookSource,reason:s.hookPermissionDecisionReason};s.permissionBehavior===`allow`?yield{type:`hookPermissionResult`,hookPermissionResult:{behavior:`allow`,updatedInput:s.updatedInput,decisionReason:e}}:s.permissionBehavior===`ask`?yield{type:`hookPermissionResult`,hookPermissionResult:{behavior:`ask`,updatedInput:s.updatedInput,message:s.hookPermissionDecisionReason||`Hook PreToolUse:${t.name} ${a2e(s.permissionBehavior)} this tool`,decisionReason:e}}:yield{type:`hookPermissionResult`,hookPermissionResult:{behavior:s.permissionBehavior,message:s.hookPermissionDecisionReason||`Hook PreToolUse:${t.name} ${a2e(s.permissionBehavior)} this tool`,decisionReason:e}}}if(s.updatedInput&&s.permissionBehavior===void 0&&(yield{type:`hookUpdatedInput`,updatedInput:s.updatedInput}),s.additionalContexts&&s.additionalContexts.length>0&&(yield{type:`additionalContext`,message:{message:a2({type:`hook_additional_context`,content:s.additionalContexts,hookName:`PreToolUse:${t.name}`,toolUseID:r,hookEvent:`PreToolUse`})}}),e.abortController.signal.aborted){Zs(t.name),e.queryTracking?.chainId,e.queryTracking?.depth,yield{type:`message`,message:{message:a2({type:`hook_cancelled`,hookName:`PreToolUse:${t.name}`,toolUseID:r,hookEvent:`PreToolUse`})}},yield{type:`stop`};return}}catch(n){Y(n),Date.now()-c,Zs(t.name),t.isMcp,e.queryTracking?.chainId,e.queryTracking?.depth,{...o?{mcpServerType:o}:{},...a?{requestId:a}:{}},yield{type:`message`,message:{message:a2({type:`hook_error_during_execution`,content:OQ(n),hookName:`PreToolUse:${t.name}`,toolUseID:r,hookEvent:`PreToolUse`})}},yield{type:`stop`}}}catch(e){Y(e),yield{type:`stop`};return}}var d2e=n((()=>{Ra(),ec(),g2(),q(),_7(),Ta(),o2e(),j9(),kQ(),oY()}));function f2e(){return M1||(M1=import(`./toolEventObserver-Dzwzi5Vi.js`).catch(e=>{throw M1=void 0,e})),M1}function p2e(e){if(e instanceof Ni)return e.telemetryMessage.slice(0,200);if(e instanceof Error){let t=xi(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 m2e(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 h2e(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 m2e(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 g2e(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 _2e(e,t){if(!e.startsWith(`mcp__`))return;let n=er(e);if(n)return t.find(e=>hn(e.name)===n.serverName)}function v2e(e,t){let n=_2e(e,t);if(n?.type===`connected`)return n.config.type??`stdio`}function y2e(e,t){let n=_2e(e,t);if(n?.type===`connected`)return $Be(n.config)}async function*j1(e,t,n,r){let i=e.name,a=gs(r.options.tools,i);if(!a){let e=gs(C1(),i);e?.aliases?.includes(i)&&(a=e)}let o=t.message.id,s=t.requestId,c=v2e(i,r.options.mcpClients),l=y2e(i,r.options.mcpClients);if(!a){let n=Zs(i);K(`Unknown tool ${i}: ${e.id}`),`${n}`,e.id,i.startsWith(`mcp__`),r.queryTracking?.chainId,r.queryTracking?.depth,{...c&&{mcpServerType:c},...l&&{mcpServerBaseUrl:l},...s&&{requestId:s},...ac(i,c,l)},yield{message:Q({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){Zs(a.name),e.id,a.isMcp,r.queryTracking?.chainId,r.queryTracking?.depth,{...c&&{mcpServerType:c},...l&&{mcpServerBaseUrl:l},...s&&{requestId:s},...ac(a.name,c,l)};let n=fhe(e.id);n.content=o3(P_),yield{message:Q({content:[n],toolUseResult:P_,sourceToolAssistantUUID:t.uuid})};return}for await(let i of b2e(a,e.id,u,r,n,t,o,s,c,l))yield i}catch(n){Y(n);let r=n instanceof Error?n.message:String(n),i=`Error calling tool${a?` (${a.name})`:``}: ${r}`;yield{message:Q({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 b2e(e,t,n,r,i,a,o,s,c,l){let u=new A1;return S2e(e,t,n,r,i,a,o,s,c,l,n=>{Zs(e.name),e.isMcp,r.queryTracking?.chainId,r.queryTracking?.depth,{...c&&{mcpServerType:c},...l&&{mcpServerBaseUrl:l},...s&&{requestId:s},...ac(e.name,c,l)},u.enqueue({message:dhe({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 x2e(e,t,n){if(!BO()||!VO(n)||!bs(e)||WO(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: ${ws}("select:${e.name}")\n2. Then call ${r} tool\n\nExample:\n${ws}("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: ${ws}("select:TaskGet,TaskCreate,TaskUpdate,TaskList")\n\nSee docs/openai-task-tools.md for detailed guide.`}async function S2e(e,t,n,r,i,a,o,s,c,l,u){let d=e.inputSchema.safeParse(n);if(!d.success){let n=jYe(e.name,d.error),i=x2e(e,r.messages,r.options.tools);return i&&(Zs(e.name),e.isMcp,n+=i),K(`${e.name} tool input error: ${n.slice(0,200)}`),n.slice(0,2e3),Zs(e.name),e.isMcp,r.queryTracking?.chainId,r.queryTracking?.depth,{...c&&{mcpServerType:c},...l&&{mcpServerBaseUrl:l},...s&&{requestId:s},...ac(e.name,c,l)},[{message:Q({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 K(`${e.name} tool validation error: ${f.message?.slice(0,200)}`),Zs(e.name),f.message,f.errorCode,e.isMcp,r.queryTracking?.chainId,r.queryTracking?.depth,{...c&&{mcpServerType:c},...l&&{mcpServerBaseUrl:l},...s&&{requestId:s},...ac(e.name,c,l)},[{message:Q({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();BPe(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 u2e(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 Yr()?.observe(`pre_tool_hook_duration_ms`,Date.now()-x),p.push({message:Q({content:[fhe(t)],toolUseResult:`Error: ${v}`,sourceToolAssistantUUID:a.uuid})}),p}let S=Date.now()-x;Yr()?.observe(`pre_tool_hook_duration_ms`,S),S>=N1&&K(`Slow PreToolUse hooks: ${S}ms for ${e.name} (${b.length} hooks)`,{level:`info`});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)),Woe(e.name,C,Qs()?W(m):void 0),Yoe();let w=r.getAppState().toolPermissionContext.mode,T=Date.now(),E=await l2e(y,e,m,r,i,a,t),D=E.decision;m=E.input;let O=Date.now()-T;if(O>=N1&&w===`auto`&&K(`Slow permission decision: ${O}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=h2e(D.decisionReason,D.behavior);tc(`tool_decision`,{decision:t,source:n,tool_name:Zs(e.name)}),OH(e.name)&&kH(e,m,t,n).then(e=>Ore()?.add(1,e))}if(D.decisionReason?.type===`hook`&&D.decisionReason.hookName===`PermissionRequest`&&D.behavior!==`ask`&&p.push({message:a2({type:`hook_permission_decision`,decision:D.behavior,toolUseID:t,hookEvent:`PermissionRequest`})}),D.behavior!==`allow`){K(`${e.name} tool permission denied`);let n=r.toolDecisions?.get(t);Voe(`reject`,n?.source||`unknown`),rc(),Zs(e.name),r.queryTracking?.chainId,r.queryTracking?.depth,{...c&&{mcpServerType:c},...l&&{mcpServerBaseUrl:l},...s&&{requestId:s},...ac(e.name,c,l)};let i=D.message;_&&!i&&(i=`Execution stopped by PreToolUse hook${v?`: ${v}`:``}`);let o=[{type:`tool_result`,content:i,is_error:!0,tool_use_id:t}],u=D.behavior===`ask`?D.contentBlocks:void 0;u?.length&&o.push(...u);let d;if(u?.length){let e=Bt(u,e=>e.type===`image`);if(e>0){let t=g2e(r.messages);d=Array.from({length:e},(e,n)=>t+n)}}return p.push({message:Q({content:o,imagePasteIds:d,toolUseResult:`Error: ${i}`,sourceToolAssistantUUID:a.uuid})}),p}Zs(e.name),r.queryTracking?.chainId,r.queryTracking?.depth,{...c&&{mcpServerType:c},...l&&{mcpServerBaseUrl:l},...s&&{requestId:s},...ac(e.name,c,l)},D.updatedInput!==void 0&&(m=D.updatedInput);let k=Roe(m),A={};if(zoe()){if(e.name===`Bash`&&`command`in m){let e=m;A={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=Ioe(e.name);t&&(A.mcp_server_name=t.serverName,A.mcp_tool_name=t.mcpToolName);let n=Loe(e.name,m);n&&(A.skill_name=n)}let ee=r.toolDecisions?.get(t);Voe(ee?.decision||`unknown`,ee?.source||`unknown`),Koe();let te=Date.now();fk(`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})}),o=use()?await(async()=>{let{runToolCallWithSkillLearningHooks:t}=await f2e();return t(e.name,h,{sessionId:r.sessionId},n)})():await n(),d=Date.now()-te;if(lre(d),o.data&&typeof o.data==`object`){let t={};e.name===`Read`&&`content`in o.data&&(`file_path`in m&&(t.file_path=String(m.file_path)),t.content=String(o.data.content)),(e.name===`Edit`||e.name===`Write`)&&`file_path`in m&&(t.file_path=String(m.file_path),e.name===`Edit`&&`diff`in o.data&&(t.diff=String(o.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 o.data&&(t.output=String(o.data.output))),Object.keys(t).length>0&&Xoe(`tool.output`,t)}typeof o==`object`&&`structured_output`in o&&p.push({message:a2({type:`structured_output`,data:o.structured_output})}),Joe({success:!0}),rc(o.data&&typeof o.data==`object`?W(o.data):String(o.data??``));let f=e.mapToolResultToToolResultBlockParam(o.data,t),g=f.content,y=g?typeof g==`string`?g.length:W(g).length:0,b;if(m&&typeof m==`object`){if((e.name===`Read`||e.name===`Edit`||e.name===`Write`)&&`file_path`in m)b=$s(String(m.file_path));else if(e.name===`NotebookEdit`&&`notebook_path`in m)b=$s(String(m.notebook_path));else if(e.name===`Bash`&&`command`in m){let e=m;b=Foe(e.command,e._simulatedSedEdit?.filePath)}}if(Zs(e.name),e.isMcp,{...b!==void 0&&{fileExtension:b}},r.queryTracking?.chainId,r.queryTracking?.depth,{...c&&{mcpServerType:c},...l&&{mcpServerBaseUrl:l},...s&&{requestId:s},...ac(e.name,c,l)},zoe()&&(e.name===`Bash`||e.name===`PowerShell`)&&`command`in m&&typeof m.command==`string`&&m.command.match(/\bgit\s+commit\b/)&&o.data&&typeof o.data==`object`&&`stdout`in o.data){let e=WP(String(o.data.stdout));e&&(A.git_commit_id=e)}let x=aY(e)?qBe(e.name):null;tc(`tool_result`,{tool_name:Zs(e.name),success:`true`,duration_ms:String(d),...Object.keys(A).length>0&&{tool_parameters:W(A)},...k&&{tool_input:k},tool_result_size_bytes:String(y),...ee&&{decision_source:ee.source,decision_type:ee.decision},...x&&{mcp_server_scope:x}});let S=o.data,C=[],w=o.contextModifier,T=o.mcpMeta;async function E(n,i){let o=[i?await Bve(i,e.name,e.maxResultSizeChars):await ax(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=Bt(s,e=>e.type===`image`);if(e>0){let t=g2e(r.messages);c=Array.from({length:e},(e,n)=>t+n)}}p.push({message:Q({content:o,imagePasteIds:c,toolUseResult:r.agentId&&!r.preserveToolUseResults?void 0:n,mcpMeta:r.agentId?void 0:T,sourceToolAssistantUUID:a.uuid}),contextModifier:w?{toolUseID:t,modifyContext:w}:void 0})}aY(e)||await E(S,f);let O=[],ne=Date.now();for await(let n of s2e(r,e,t,a.message.id,m,S,s,c,l))if(`updatedMCPToolOutput`in n)aY(e)&&(S=n.updatedMCPToolOutput);else if(aY(e)){if(C.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&&O.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&&O.push({command:e.command,durationMs:e.durationMs})}let re=Date.now()-ne;if(re>=N1&&K(`Slow PostToolUse hooks: ${re}ms for ${e.name} (${O.length} hooks)`,{level:`info`}),aY(e)&&await E(S),o.newMessages&&o.newMessages.length>0)for(let e of o.newMessages)p.push({message:e});_&&p.push({message:a2({type:`hook_stopped_continuation`,message:v||`Execution stopped by hook`,hookName:`PreToolUse:${e.name}`,toolUseID:t,hookEvent:`PreToolUse`})});for(let e of C)p.push(e);return p}catch(n){let i=Date.now()-te;if(lre(i),Joe({success:!1,error:G(n)}),rc(),n instanceof mY&&r.setAppState(e=>{let t=n.serverName,r=e.mcp.clients.findIndex(e=>e.name===t);if(r===-1)return e;let i=e.mcp.clients[r];if(i?.type!==`connected`)return e;let a=[...e.mcp.clients];return a[r]={name:t,type:`needs-auth`,config:i.config},{...e,mcp:{...e.mcp,clients:a}}}),!(n instanceof hi)){let a=G(n);K(`${e.name} tool error (${i}ms): ${a.slice(0,200)}`),n instanceof mi||Y(n),Zs(e.name),p2e(n),e.isMcp,r.queryTracking?.chainId,r.queryTracking?.depth,{...c&&{mcpServerType:c},...l&&{mcpServerBaseUrl:l},...s&&{requestId:s},...ac(e.name,c,l)};let o=aY(e)?qBe(e.name):null;tc(`tool_result`,{tool_name:Zs(e.name),use_id:t,success:`false`,duration_ms:String(i),error:G(n),...Object.keys(A).length>0&&{tool_parameters:W(A)},...k&&{tool_input:k},...ee&&{decision_source:ee.source,decision_type:ee.decision},...o&&{mcp_server_scope:o}})}let u=OQ(n),d=n instanceof hi,f=[];for await(let n of c2e(r,e,t,o,m,u,d,s,c,l))f.push(n);return[{message:Q({content:[{type:`tool_result`,content:u,is_error:!0,tool_use_id:t}],toolUseResult:`Error: ${u}`,mcpMeta:r.agentId?void 0:n instanceof gY?n.mcpMeta:void 0,sourceToolAssistantUUID:a.uuid})},...f]}finally{pk(`tool_exec`),ee&&r.toolDecisions?.delete(t)}}var M1,N1,C2e=n((()=>{Ra(),ec(),H(),MH(),Ps(),VB(),xs(),Os(),Ms(),Rs(),_s(),Fs(),$P(),As(),k1(),tt(),g2(),q(),vi(),Ta(),v3(),Sk(),zi(),i2e(),ic(),nc(),kQ(),dx(),QO(),wY(),Hn(),Mn(),oY(),d2e(),dse(),N1=2e3}));function w2e(e,t){e.setInProgressToolUseIDs(e=>{let n=new Set(e);return n.delete(t),n})}var P1,T2e=n((()=>{v3(),Ps(),xs(),WT(),C2e(),b(),P1=class{constructor(e,t,n){x(this,`toolDefinitions`,void 0),x(this,`canUseTool`,void 0),x(this,`tools`,[]),x(this,`toolUseContext`,void 0),x(this,`hasErrored`,!1),x(this,`erroredToolDescription`,``),x(this,`siblingAbortController`,void 0),x(this,`discarded`,!1),x(this,`progressAvailableResolve`,void 0),this.toolDefinitions=e,this.canUseTool=t,this.toolUseContext=n,this.siblingAbortController=HT(n.abortController)}discard(){this.discarded=!0,this.siblingAbortController.abort(`streaming_fallback`),this.tools.length=0,this.progressAvailableResolve=void 0}addTool(e,t){let n=gs(this.toolDefinitions,e.name);if(!n){this.tools.push({id:e.id,block:e,assistantMessage:t,status:`completed`,isConcurrencySafe:!0,pendingProgress:[],results:[Q({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 Q({content:[{type:`tool_result`,content:o3(F_),is_error:!0,tool_use_id:e}],toolUseResult:`User rejected tool use`,sourceToolAssistantUUID:n.uuid});if(t===`streaming_fallback`)return Q({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 Q({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=gs(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)}\u2026`: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=HT(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=j1(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};w2e(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}}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 E2e(){I1&&(Ka().clearMarks(),L1.clear(),z1=null,R1++,F1(`query_user_input_received`))}function F1(e){if(!I1)return;let t=Ka();if(t.mark(e),L1.set(e,process.memoryUsage()),e===`query_first_chunk_received`&&z1===null){let e=t.getEntriesByType(`mark`);e.length>0&&(z1=e[e.length-1]?.startTime??0)}}function D2e(){I1&&F1(`query_profile_end`)}function O2e(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 k2e(){if(!I1)return`Query profiling not enabled (set WORKMATE_PROFILE_QUERY=1)`;let e=Ka().getEntriesByType(`mark`);if(e.length===0)return`No query profiling checkpoints recorded`;let t=[];t.push(`=`.repeat(80)),t.push(`QUERY PROFILING REPORT - Query #${R1}`),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(oie(e,s,o.name,L1.get(o.name),10,9,O2e(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: ${Ba(a)}ms`),t.push(` - Pre-request overhead: ${Ba(e)}ms (${r}%)`),t.push(` - Network latency: ${Ba(n)}ms (${o}%)`)}else t.push(`Total time: ${Ba(s)}ms`);return t.push(A2e(e,n)),t.push(`=`.repeat(80)),t.join(`
|
|
2395
|
+
`);return h1(e.command),S.length,C.length,u.code,u.interrupted,{data:{stdout:S,stderr:C,interrupted:u.interrupted,returnCodeInterpretation:h.message,isImage:x,persistedOutputPath:y,persistedOutputSize:b}}}finally{s&&s(null)}},isResultTruncated(e){return aS(e.stdout)||aS(e.stderr)}})}));function $0e(e){let t=e.toLowerCase();return n2e.includes(t)?t:null}function e2e(){let e=C1(),t=e.map(e=>e.isEnabled());return e.filter((e,n)=>t[n]).map(e=>e.name)}function C1(){return[DZ,cQ,dB,...kb()?[]:[yL,dL],fQ,ES,RX,HI,HX,FL,YZ,yQ,LZ,NQ,jZe,KXe,...jS()?[RZe,GZe,QZe,aQe]:[],...h(process.env.ENABLE_LSP_TOOL)?[DQ]:[],...cse()?[oXe,_Xe]:[],...E1?[E1]:[],t2e,vJe,...D1()?[D1()]:[],dQe,kJ,IJ,...BO()?[sk]:[],LYe]}function w1(e,t){return e.filter(e=>!w9(t,e))}function T1(e,t){let n=O1(e),r=w1(t,e),i=(e,t)=>e.name.localeCompare(t.name);return vm([...n].sort(i).concat(r.sort(i)),`name`)}var E1,t2e,D1,n2e,O1,k1=n((()=>{Ps(),OZ(),vqe(),fB(),zX(),OS(),UI(),bL(),UX(),nJe(),yJe(),EJe(),IL(),pQ(),IJe(),fL(),UJe(),OYe(),AJ(),LJ(),ck(),RYe(),QYe(),sXe(),vXe(),qXe(),MZe(),zZe(),KZe(),$Ze(),oQe(),ym(),QO(),VS(),ds(),ps(),fQe(),r$e(),j9(),Ab(),g(),Is(),lse(),WX(),E1=process.env.WORKMATE_VERIFY_PLAN===`true`?(s$e(),e(i$e)).VerifyPlanExecutionTool:null,t2e=n$e(),D1=()=>cae()?(S1(),e(m1)).PowerShellTool:null,n2e=[`default`],O1=e=>{if(h(process.env.WORKMATE_SIMPLE))return w1([dB,ES,RX],e);let t=new Set([kJ.name,IJ.name,Es]),n=w1(C1().filter(e=>!t.has(e.name)),e);GWe()&&n.some(e=>fs(e,`REPL`))&&(n=n.filter(e=>!KWe.has(e.name)));let r=n.map(e=>e.isEnabled());return n.filter((e,t)=>r[t])}})),r2e,A1,i2e=n((()=>{b(),r2e=Symbol.asyncIterator,A1=class{constructor(e){x(this,`returned`,void 0),x(this,`queue`,[]),x(this,`readResolve`,void 0),x(this,`readReject`,void 0),x(this,`isDone`,!1),x(this,`hasError`,void 0),x(this,`started`,!1),this.returned=e}[r2e](){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 a2e(e){switch(e){case`allow`:return`allowed`;case`deny`:return`denied`;default:return`asked for confirmation for`}}var o2e=n((()=>{}));async function*s2e(e,t,n,r,i,a,o,s,c){let l=Date.now();try{let r=e.getAppState().toolPermissionContext.mode,c=a;for await(let a of vat(t.name,n,i,c,e,r,e.abortController.signal))try{if(a.message?.type===`attachment`&&a.message.attachment.type===`hook_cancelled`){Zs(t.name),e.queryTracking?.chainId,e.queryTracking?.depth,yield{message:a2({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:a2({type:`hook_blocking_error`,hookName:`PostToolUse:${t.name}`,toolUseID:n,hookEvent:`PostToolUse`,blockingError:a.blockingError})}),a.preventContinuation){yield{message:a2({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:a2({type:`hook_additional_context`,content:a.additionalContexts,hookName:`PostToolUse:${t.name}`,toolUseID:n,hookEvent:`PostToolUse`})}),a.updatedMCPToolOutput&&aY(t)&&(c=a.updatedMCPToolOutput,yield{updatedMCPToolOutput:c})}catch(r){Date.now()-l,Zs(t.name),t.isMcp,e.queryTracking?.chainId,e.queryTracking?.depth,{...s?{mcpServerType:s}:{},...o?{requestId:o}:{}},yield{message:a2({type:`hook_error_during_execution`,content:OQ(r),hookName:`PostToolUse:${t.name}`,toolUseID:n,hookEvent:`PostToolUse`})}}}catch(e){Y(e)}}async function*c2e(e,t,n,r,i,a,o,s,c,l){let u=Date.now();try{let r=e.getAppState().toolPermissionContext.mode;for await(let l of yat(t.name,n,i,a,e,o,r,e.abortController.signal))try{if(l.message?.type===`attachment`&&l.message.attachment.type===`hook_cancelled`){Zs(t.name),e.queryTracking?.chainId,e.queryTracking?.depth,yield{message:a2({type:`hook_cancelled`,hookName:`PostToolUseFailure:${t.name}`,toolUseID:n,hookEvent:`PostToolUseFailure`})};continue}l.message&&!(l.message.type===`attachment`&&l.message.attachment.type===`hook_blocking_error`)&&(yield{message:l.message}),l.blockingError&&(yield{message:a2({type:`hook_blocking_error`,hookName:`PostToolUseFailure:${t.name}`,toolUseID:n,hookEvent:`PostToolUseFailure`,blockingError:l.blockingError})}),l.additionalContexts&&l.additionalContexts.length>0&&(yield{message:a2({type:`hook_additional_context`,content:l.additionalContexts,hookName:`PostToolUseFailure:${t.name}`,toolUseID:n,hookEvent:`PostToolUseFailure`})})}catch(r){Date.now()-u,Zs(t.name),t.isMcp,e.queryTracking?.chainId,e.queryTracking?.depth,{...c?{mcpServerType:c}:{},...s?{requestId:s}:{}},yield{message:a2({type:`hook_error_during_execution`,content:OQ(r),hookName:`PostToolUseFailure:${t.name}`,toolUseID:n,hookEvent:`PostToolUseFailure`})}}}catch(e){Y(e)}}async function l2e(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 K(`Hook approved tool use for ${t.name}, but canUseTool is required`),{decision:await i(t,l,r,a,o),input:l};let d=await yct(t,l,r);return d===null?(K(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`?(K(`Hook approved tool use for ${t.name}, but deny rule overrides: ${d.message}`),{decision:d,input:l}):(K(`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 K(`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*u2e(e,t,n,r,i,a,o,s){let c=Date.now();try{let i=e.getAppState();for await(let s of _at(t.name,r,n,e,i.toolPermissionContext.mode,e.abortController.signal,void 0,e.requestPrompt,t.getToolUseSummary?.(n)))try{if(s.message&&(yield{type:`message`,message:{message:s.message}}),s.blockingError){let e=fat(`PreToolUse:${t.name}`,s.blockingError);yield{type:`hookPermissionResult`,hookPermissionResult:{behavior:`deny`,message:e,decisionReason:{type:`hook`,hookName:`PreToolUse:${t.name}`,reason:e}}}}if(s.preventContinuation&&(yield{type:`preventContinuation`,shouldPreventContinuation:!0},s.stopReason&&(yield{type:`stopReason`,stopReason:s.stopReason})),s.permissionBehavior!==void 0){K(`Hook result has permissionBehavior=${s.permissionBehavior}`);let e={type:`hook`,hookName:`PreToolUse:${t.name}`,hookSource:s.hookSource,reason:s.hookPermissionDecisionReason};s.permissionBehavior===`allow`?yield{type:`hookPermissionResult`,hookPermissionResult:{behavior:`allow`,updatedInput:s.updatedInput,decisionReason:e}}:s.permissionBehavior===`ask`?yield{type:`hookPermissionResult`,hookPermissionResult:{behavior:`ask`,updatedInput:s.updatedInput,message:s.hookPermissionDecisionReason||`Hook PreToolUse:${t.name} ${a2e(s.permissionBehavior)} this tool`,decisionReason:e}}:yield{type:`hookPermissionResult`,hookPermissionResult:{behavior:s.permissionBehavior,message:s.hookPermissionDecisionReason||`Hook PreToolUse:${t.name} ${a2e(s.permissionBehavior)} this tool`,decisionReason:e}}}if(s.updatedInput&&s.permissionBehavior===void 0&&(yield{type:`hookUpdatedInput`,updatedInput:s.updatedInput}),s.additionalContexts&&s.additionalContexts.length>0&&(yield{type:`additionalContext`,message:{message:a2({type:`hook_additional_context`,content:s.additionalContexts,hookName:`PreToolUse:${t.name}`,toolUseID:r,hookEvent:`PreToolUse`})}}),e.abortController.signal.aborted){Zs(t.name),e.queryTracking?.chainId,e.queryTracking?.depth,yield{type:`message`,message:{message:a2({type:`hook_cancelled`,hookName:`PreToolUse:${t.name}`,toolUseID:r,hookEvent:`PreToolUse`})}},yield{type:`stop`};return}}catch(n){Y(n),Date.now()-c,Zs(t.name),t.isMcp,e.queryTracking?.chainId,e.queryTracking?.depth,{...o?{mcpServerType:o}:{},...a?{requestId:a}:{}},yield{type:`message`,message:{message:a2({type:`hook_error_during_execution`,content:OQ(n),hookName:`PreToolUse:${t.name}`,toolUseID:r,hookEvent:`PreToolUse`})}},yield{type:`stop`}}}catch(e){Y(e),yield{type:`stop`};return}}var d2e=n((()=>{Ra(),ec(),g2(),q(),_7(),Ta(),o2e(),j9(),kQ(),oY()}));function f2e(){return M1||(M1=import(`./toolEventObserver-DdZ30on9.js`).catch(e=>{throw M1=void 0,e})),M1}function p2e(e){if(e instanceof Ni)return e.telemetryMessage.slice(0,200);if(e instanceof Error){let t=xi(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 m2e(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 h2e(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 m2e(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 g2e(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 _2e(e,t){if(!e.startsWith(`mcp__`))return;let n=er(e);if(n)return t.find(e=>hn(e.name)===n.serverName)}function v2e(e,t){let n=_2e(e,t);if(n?.type===`connected`)return n.config.type??`stdio`}function y2e(e,t){let n=_2e(e,t);if(n?.type===`connected`)return $Be(n.config)}async function*j1(e,t,n,r){let i=e.name,a=gs(r.options.tools,i);if(!a){let e=gs(C1(),i);e?.aliases?.includes(i)&&(a=e)}let o=t.message.id,s=t.requestId,c=v2e(i,r.options.mcpClients),l=y2e(i,r.options.mcpClients);if(!a){let n=Zs(i);K(`Unknown tool ${i}: ${e.id}`),`${n}`,e.id,i.startsWith(`mcp__`),r.queryTracking?.chainId,r.queryTracking?.depth,{...c&&{mcpServerType:c},...l&&{mcpServerBaseUrl:l},...s&&{requestId:s},...ac(i,c,l)},yield{message:Q({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){Zs(a.name),e.id,a.isMcp,r.queryTracking?.chainId,r.queryTracking?.depth,{...c&&{mcpServerType:c},...l&&{mcpServerBaseUrl:l},...s&&{requestId:s},...ac(a.name,c,l)};let n=fhe(e.id);n.content=o3(P_),yield{message:Q({content:[n],toolUseResult:P_,sourceToolAssistantUUID:t.uuid})};return}for await(let i of b2e(a,e.id,u,r,n,t,o,s,c,l))yield i}catch(n){Y(n);let r=n instanceof Error?n.message:String(n),i=`Error calling tool${a?` (${a.name})`:``}: ${r}`;yield{message:Q({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 b2e(e,t,n,r,i,a,o,s,c,l){let u=new A1;return S2e(e,t,n,r,i,a,o,s,c,l,n=>{Zs(e.name),e.isMcp,r.queryTracking?.chainId,r.queryTracking?.depth,{...c&&{mcpServerType:c},...l&&{mcpServerBaseUrl:l},...s&&{requestId:s},...ac(e.name,c,l)},u.enqueue({message:dhe({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 x2e(e,t,n){if(!BO()||!VO(n)||!bs(e)||WO(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: ${ws}("select:${e.name}")\n2. Then call ${r} tool\n\nExample:\n${ws}("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: ${ws}("select:TaskGet,TaskCreate,TaskUpdate,TaskList")\n\nSee docs/openai-task-tools.md for detailed guide.`}async function S2e(e,t,n,r,i,a,o,s,c,l,u){let d=e.inputSchema.safeParse(n);if(!d.success){let n=jYe(e.name,d.error),i=x2e(e,r.messages,r.options.tools);return i&&(Zs(e.name),e.isMcp,n+=i),K(`${e.name} tool input error: ${n.slice(0,200)}`),n.slice(0,2e3),Zs(e.name),e.isMcp,r.queryTracking?.chainId,r.queryTracking?.depth,{...c&&{mcpServerType:c},...l&&{mcpServerBaseUrl:l},...s&&{requestId:s},...ac(e.name,c,l)},[{message:Q({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 K(`${e.name} tool validation error: ${f.message?.slice(0,200)}`),Zs(e.name),f.message,f.errorCode,e.isMcp,r.queryTracking?.chainId,r.queryTracking?.depth,{...c&&{mcpServerType:c},...l&&{mcpServerBaseUrl:l},...s&&{requestId:s},...ac(e.name,c,l)},[{message:Q({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();BPe(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 u2e(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 Yr()?.observe(`pre_tool_hook_duration_ms`,Date.now()-x),p.push({message:Q({content:[fhe(t)],toolUseResult:`Error: ${v}`,sourceToolAssistantUUID:a.uuid})}),p}let S=Date.now()-x;Yr()?.observe(`pre_tool_hook_duration_ms`,S),S>=N1&&K(`Slow PreToolUse hooks: ${S}ms for ${e.name} (${b.length} hooks)`,{level:`info`});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)),Woe(e.name,C,Qs()?W(m):void 0),Yoe();let w=r.getAppState().toolPermissionContext.mode,T=Date.now(),E=await l2e(y,e,m,r,i,a,t),D=E.decision;m=E.input;let O=Date.now()-T;if(O>=N1&&w===`auto`&&K(`Slow permission decision: ${O}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=h2e(D.decisionReason,D.behavior);tc(`tool_decision`,{decision:t,source:n,tool_name:Zs(e.name)}),OH(e.name)&&kH(e,m,t,n).then(e=>Ore()?.add(1,e))}if(D.decisionReason?.type===`hook`&&D.decisionReason.hookName===`PermissionRequest`&&D.behavior!==`ask`&&p.push({message:a2({type:`hook_permission_decision`,decision:D.behavior,toolUseID:t,hookEvent:`PermissionRequest`})}),D.behavior!==`allow`){K(`${e.name} tool permission denied`);let n=r.toolDecisions?.get(t);Voe(`reject`,n?.source||`unknown`),rc(),Zs(e.name),r.queryTracking?.chainId,r.queryTracking?.depth,{...c&&{mcpServerType:c},...l&&{mcpServerBaseUrl:l},...s&&{requestId:s},...ac(e.name,c,l)};let i=D.message;_&&!i&&(i=`Execution stopped by PreToolUse hook${v?`: ${v}`:``}`);let o=[{type:`tool_result`,content:i,is_error:!0,tool_use_id:t}],u=D.behavior===`ask`?D.contentBlocks:void 0;u?.length&&o.push(...u);let d;if(u?.length){let e=Bt(u,e=>e.type===`image`);if(e>0){let t=g2e(r.messages);d=Array.from({length:e},(e,n)=>t+n)}}return p.push({message:Q({content:o,imagePasteIds:d,toolUseResult:`Error: ${i}`,sourceToolAssistantUUID:a.uuid})}),p}Zs(e.name),r.queryTracking?.chainId,r.queryTracking?.depth,{...c&&{mcpServerType:c},...l&&{mcpServerBaseUrl:l},...s&&{requestId:s},...ac(e.name,c,l)},D.updatedInput!==void 0&&(m=D.updatedInput);let k=Roe(m),A={};if(zoe()){if(e.name===`Bash`&&`command`in m){let e=m;A={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=Ioe(e.name);t&&(A.mcp_server_name=t.serverName,A.mcp_tool_name=t.mcpToolName);let n=Loe(e.name,m);n&&(A.skill_name=n)}let ee=r.toolDecisions?.get(t);Voe(ee?.decision||`unknown`,ee?.source||`unknown`),Koe();let te=Date.now();fk(`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})}),o=use()?await(async()=>{let{runToolCallWithSkillLearningHooks:t}=await f2e();return t(e.name,h,{sessionId:r.sessionId},n)})():await n(),d=Date.now()-te;if(lre(d),o.data&&typeof o.data==`object`){let t={};e.name===`Read`&&`content`in o.data&&(`file_path`in m&&(t.file_path=String(m.file_path)),t.content=String(o.data.content)),(e.name===`Edit`||e.name===`Write`)&&`file_path`in m&&(t.file_path=String(m.file_path),e.name===`Edit`&&`diff`in o.data&&(t.diff=String(o.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 o.data&&(t.output=String(o.data.output))),Object.keys(t).length>0&&Xoe(`tool.output`,t)}typeof o==`object`&&`structured_output`in o&&p.push({message:a2({type:`structured_output`,data:o.structured_output})}),Joe({success:!0}),rc(o.data&&typeof o.data==`object`?W(o.data):String(o.data??``));let f=e.mapToolResultToToolResultBlockParam(o.data,t),g=f.content,y=g?typeof g==`string`?g.length:W(g).length:0,b;if(m&&typeof m==`object`){if((e.name===`Read`||e.name===`Edit`||e.name===`Write`)&&`file_path`in m)b=$s(String(m.file_path));else if(e.name===`NotebookEdit`&&`notebook_path`in m)b=$s(String(m.notebook_path));else if(e.name===`Bash`&&`command`in m){let e=m;b=Foe(e.command,e._simulatedSedEdit?.filePath)}}if(Zs(e.name),e.isMcp,{...b!==void 0&&{fileExtension:b}},r.queryTracking?.chainId,r.queryTracking?.depth,{...c&&{mcpServerType:c},...l&&{mcpServerBaseUrl:l},...s&&{requestId:s},...ac(e.name,c,l)},zoe()&&(e.name===`Bash`||e.name===`PowerShell`)&&`command`in m&&typeof m.command==`string`&&m.command.match(/\bgit\s+commit\b/)&&o.data&&typeof o.data==`object`&&`stdout`in o.data){let e=WP(String(o.data.stdout));e&&(A.git_commit_id=e)}let x=aY(e)?qBe(e.name):null;tc(`tool_result`,{tool_name:Zs(e.name),success:`true`,duration_ms:String(d),...Object.keys(A).length>0&&{tool_parameters:W(A)},...k&&{tool_input:k},tool_result_size_bytes:String(y),...ee&&{decision_source:ee.source,decision_type:ee.decision},...x&&{mcp_server_scope:x}});let S=o.data,C=[],w=o.contextModifier,T=o.mcpMeta;async function E(n,i){let o=[i?await Bve(i,e.name,e.maxResultSizeChars):await ax(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=Bt(s,e=>e.type===`image`);if(e>0){let t=g2e(r.messages);c=Array.from({length:e},(e,n)=>t+n)}}p.push({message:Q({content:o,imagePasteIds:c,toolUseResult:r.agentId&&!r.preserveToolUseResults?void 0:n,mcpMeta:r.agentId?void 0:T,sourceToolAssistantUUID:a.uuid}),contextModifier:w?{toolUseID:t,modifyContext:w}:void 0})}aY(e)||await E(S,f);let O=[],ne=Date.now();for await(let n of s2e(r,e,t,a.message.id,m,S,s,c,l))if(`updatedMCPToolOutput`in n)aY(e)&&(S=n.updatedMCPToolOutput);else if(aY(e)){if(C.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&&O.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&&O.push({command:e.command,durationMs:e.durationMs})}let re=Date.now()-ne;if(re>=N1&&K(`Slow PostToolUse hooks: ${re}ms for ${e.name} (${O.length} hooks)`,{level:`info`}),aY(e)&&await E(S),o.newMessages&&o.newMessages.length>0)for(let e of o.newMessages)p.push({message:e});_&&p.push({message:a2({type:`hook_stopped_continuation`,message:v||`Execution stopped by hook`,hookName:`PreToolUse:${e.name}`,toolUseID:t,hookEvent:`PreToolUse`})});for(let e of C)p.push(e);return p}catch(n){let i=Date.now()-te;if(lre(i),Joe({success:!1,error:G(n)}),rc(),n instanceof mY&&r.setAppState(e=>{let t=n.serverName,r=e.mcp.clients.findIndex(e=>e.name===t);if(r===-1)return e;let i=e.mcp.clients[r];if(i?.type!==`connected`)return e;let a=[...e.mcp.clients];return a[r]={name:t,type:`needs-auth`,config:i.config},{...e,mcp:{...e.mcp,clients:a}}}),!(n instanceof hi)){let a=G(n);K(`${e.name} tool error (${i}ms): ${a.slice(0,200)}`),n instanceof mi||Y(n),Zs(e.name),p2e(n),e.isMcp,r.queryTracking?.chainId,r.queryTracking?.depth,{...c&&{mcpServerType:c},...l&&{mcpServerBaseUrl:l},...s&&{requestId:s},...ac(e.name,c,l)};let o=aY(e)?qBe(e.name):null;tc(`tool_result`,{tool_name:Zs(e.name),use_id:t,success:`false`,duration_ms:String(i),error:G(n),...Object.keys(A).length>0&&{tool_parameters:W(A)},...k&&{tool_input:k},...ee&&{decision_source:ee.source,decision_type:ee.decision},...o&&{mcp_server_scope:o}})}let u=OQ(n),d=n instanceof hi,f=[];for await(let n of c2e(r,e,t,o,m,u,d,s,c,l))f.push(n);return[{message:Q({content:[{type:`tool_result`,content:u,is_error:!0,tool_use_id:t}],toolUseResult:`Error: ${u}`,mcpMeta:r.agentId?void 0:n instanceof gY?n.mcpMeta:void 0,sourceToolAssistantUUID:a.uuid})},...f]}finally{pk(`tool_exec`),ee&&r.toolDecisions?.delete(t)}}var M1,N1,C2e=n((()=>{Ra(),ec(),H(),MH(),Ps(),VB(),xs(),Os(),Ms(),Rs(),_s(),Fs(),$P(),As(),k1(),tt(),g2(),q(),vi(),Ta(),v3(),Sk(),zi(),i2e(),ic(),nc(),kQ(),dx(),QO(),wY(),Hn(),Mn(),oY(),d2e(),dse(),N1=2e3}));function w2e(e,t){e.setInProgressToolUseIDs(e=>{let n=new Set(e);return n.delete(t),n})}var P1,T2e=n((()=>{v3(),Ps(),xs(),WT(),C2e(),b(),P1=class{constructor(e,t,n){x(this,`toolDefinitions`,void 0),x(this,`canUseTool`,void 0),x(this,`tools`,[]),x(this,`toolUseContext`,void 0),x(this,`hasErrored`,!1),x(this,`erroredToolDescription`,``),x(this,`siblingAbortController`,void 0),x(this,`discarded`,!1),x(this,`progressAvailableResolve`,void 0),this.toolDefinitions=e,this.canUseTool=t,this.toolUseContext=n,this.siblingAbortController=HT(n.abortController)}discard(){this.discarded=!0,this.siblingAbortController.abort(`streaming_fallback`),this.tools.length=0,this.progressAvailableResolve=void 0}addTool(e,t){let n=gs(this.toolDefinitions,e.name);if(!n){this.tools.push({id:e.id,block:e,assistantMessage:t,status:`completed`,isConcurrencySafe:!0,pendingProgress:[],results:[Q({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 Q({content:[{type:`tool_result`,content:o3(F_),is_error:!0,tool_use_id:e}],toolUseResult:`User rejected tool use`,sourceToolAssistantUUID:n.uuid});if(t===`streaming_fallback`)return Q({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 Q({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=gs(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)}\u2026`: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=HT(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=j1(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};w2e(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}}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 E2e(){I1&&(Ka().clearMarks(),L1.clear(),z1=null,R1++,F1(`query_user_input_received`))}function F1(e){if(!I1)return;let t=Ka();if(t.mark(e),L1.set(e,process.memoryUsage()),e===`query_first_chunk_received`&&z1===null){let e=t.getEntriesByType(`mark`);e.length>0&&(z1=e[e.length-1]?.startTime??0)}}function D2e(){I1&&F1(`query_profile_end`)}function O2e(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 k2e(){if(!I1)return`Query profiling not enabled (set WORKMATE_PROFILE_QUERY=1)`;let e=Ka().getEntriesByType(`mark`);if(e.length===0)return`No query profiling checkpoints recorded`;let t=[];t.push(`=`.repeat(80)),t.push(`QUERY PROFILING REPORT - Query #${R1}`),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(oie(e,s,o.name,L1.get(o.name),10,9,O2e(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: ${Ba(a)}ms`),t.push(` - Pre-request overhead: ${Ba(e)}ms (${r}%)`),t.push(` - Network latency: ${Ba(n)}ms (${o}%)`)}else t.push(`Total time: ${Ba(s)}ms`);return t.push(A2e(e,n)),t.push(`=`.repeat(80)),t.join(`
|
|
2396
2396
|
`)}function A2e(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)} ${Ba(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)} ${Ba(a).padStart(10)}ms`)),i.join(`
|
|
2397
2397
|
`)}function j2e(){I1&&K(k2e())}var I1,L1,R1,z1,B1=n((()=>{q(),g(),Va(),I1=h(process.env.WORKMATE_PROFILE_QUERY),L1=new Map,R1=0,z1=null}));async function*M2e(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 N2e(e){let t=[];for await(let n of e)t.push(n);return t}async function*P2e(e){for(let t of e)yield t}var V1=n((()=>{}));function F2e(){return parseInt(process.env.WORKMATE_MAX_TOOL_USE_CONCURRENCY||``,10)||10}async function*I2e(e,t,n,r){let i=r;for(let{isConcurrencySafe:r,blocks:a}of L2e(e,i))if(r){let e={};for await(let r of z2e(a,t,n,i)){if(r.contextModifier){let{toolUseID:t,modifyContext:n}=r.contextModifier;e[t]||(e[t]=[]),e[t].push(n)}yield{message:r.message,newContext:i}}for(let t of a){let n=e[t.id];if(n)for(let e of n)i=e(i)}yield{newContext:i}}else for await(let e of R2e(a,t,n,i))e.newContext&&(i=e.newContext),yield{message:e.message,newContext:i}}function L2e(e,t){return e.reduce((e,n)=>{let r=gs(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*R2e(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 j1(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};B2e(r,a.id)}}async function*z2e(e,t,n,r){yield*M2e(e.map(async function*(e){r.setInProgressToolUseIDs(t=>new Set(t).add(e.id)),yield*j1(e,t.find(t=>Array.isArray(t.message.content)&&t.message.content.some(t=>t.type===`tool_use`&&t.id===e.id)),n,r),B2e(r,e.id)}),F2e())}function B2e(e,t){e.setInProgressToolUseIDs(e=>{let n=new Set(e);return n.delete(t),n})}var V2e=n((()=>{Ps(),V1(),C2e()}));async function H2e(e,t){let n=X(e,`state.json`),r;try{r=JSON.parse(Ac(n,`utf-8`))}catch{return}let i=U2e(t);r.status=i,r.updatedAt=new Date().toISOString(),zse(n,JSON.stringify(r,null,2),`utf-8`)}function U2e(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 W2e=n((()=>{}));function G2e(){let e=ar().autoDreamEnabled;return e!==void 0&&e}var K2e=n((()=>{Ln()}));async function q2e(e,t){try{let n=(await qc(e,{recursive:!0})).filter(e=>e.endsWith(`.md`)&&pc(e)!==`MEMORY.md`);return(await Promise.allSettled(n.map(async n=>{let r=X(e,n),{content:i,mtimeMs:a}=await yx(r,0,X2e,void 0,t),{frontmatter:o}=Au(i,r);return{filename:n,filePath:r,mtimeMs:a,description:o.description||null,type:Sue(o.type)}}))).filter(e=>e.status===`fulfilled`).map(e=>e.value).sort((e,t)=>t.mtimeMs-e.mtimeMs).slice(0,Y2e)}catch{return[]}}function J2e(e){return e.map(e=>{let t=e.type?`[${e.type}] `:``,n=new Date(e.mtimeMs).toISOString();return e.description?`- ${t}${e.filename} (${n}): ${e.description}`:`- ${t}${e.filename} (${n})`}).join(`
|
|
2398
2398
|
`)}var Y2e,X2e,Z2e=n((()=>{Bu(),Sx(),rd(),Y2e=200,X2e=30}));function Q2e(e,t){let n=t.length>0?`\n\n## Existing memory files\n\n${t}\n\nCheck this list before writing — update an existing file rather than creating a duplicate.`:``;return[`You are now acting as the memory extraction subagent. Analyze the most recent ~${e} messages above and use them to update your persistent memory systems.`,``,`Available tools: ${cs}, ${rs}, ${Xo}, read-only ${js} (ls/find/cat/stat/wc/head/tail and similar), and ${Cs}/${ls} for paths inside the memory directory only. ${js} rm is not permitted. All other tools — MCP, Agent, write-capable ${js}, etc — will be denied.`,``,`You have a limited turn budget. ${Cs} requires a prior ${cs} of the same file, so the efficient strategy is: turn 1 — issue all ${cs} calls in parallel for every file you might update; turn 2 — issue all ${ls}/${Cs} calls in parallel. Do not interleave reads and writes across multiple turns.`,``,`You MUST only use content from the last ~${e} messages to update your persistent memories. Do not waste any turns attempting to investigate or verify that content further — no grepping source files, no reading code to confirm a pattern exists, no git commands.`+n].join(`
|
|
@@ -2452,7 +2452,7 @@ Return a brief summary of what you consolidated, updated, or pruned. If nothing
|
|
|
2452
2452
|
|
|
2453
2453
|
Sessions since last consolidation (${c.length}):
|
|
2454
2454
|
${c.map(e=>`- ${e}`).join(`
|
|
2455
|
-
`)}`)})],cacheSafeParams:a0(t),canUseTool:U1(e),querySource:`auto_dream`,forkLabel:`auto_dream`,maxTurns:20,skipTranscript:!0,overrides:{abortController:f},onMessage:g4e(p,d)});zqe(p,d);let i=t.toolUseContext.getAppState().tasks?.[p];n&&Iqe(i)&&i.filesTouched.length>0&&n({...ghe(i.filesTouched),verb:`Improved`}),K(`[autoDream] completed — cache: read=${r.totalUsage.cache_read_input_tokens} created=${r.totalUsage.cache_creation_input_tokens}`),r.totalUsage.cache_read_input_tokens,r.totalUsage.cache_creation_input_tokens,r.totalUsage.output_tokens,c.length}catch(e){if(f.signal.aborted){K(`[autoDream] aborted by user`);return}K(`[autoDream] fork failed: ${e.message}`),Bqe(p,d),await jqe(u)}}}function g4e(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)}Rqe(e,{text:r.trim(),toolUseCount:i},a,t)}}async function _4e(e,t){await K1?.(e,t)}var v4e,y4e,K1,b4e=n((()=>{l0(),v3(),q(),Ra(),Vi(),K2e(),_8(),H(),l4e(),d4e(),BZ(),HZ(),Os(),Rs(),v4e=600*1e3,y4e={minHours:24,minSessions:5},K1=null}));async function*x4e(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`)&&t3e(a0(l)),process.env.WORKMATE_JOB_DIR&&o.startsWith(`repl_main_thread`)&&!a.agentId){let e=l.messages.filter(e=>e.type===`assistant`),t=H2e(process.env.WORKMATE_JOB_DIR,e).catch(e=>{K(`[job] classifier error: ${G(e)}`,{level:`error`})});await Promise.race([t,new Promise(e=>setTimeout(e,6e4).unref())])}let u=(await import(`./poorMode-eMIFCAC_.js`)).isPoorModeActive();v()||(!f(process.env.WORKMATE_ENABLE_PROMPT_SUGGESTION)&&!u&&y3e(l),!a.agentId&&Ure()&&!u&&import(`./extractMemories-CVUrBFMj.js`).then(({executeExtractMemories:e})=>e(l,a.appendSystemMessage)).catch(()=>{}),!a.agentId&&!u&&_4e(l,a.appendSystemMessage));try{let n=[],r=a.getAppState().toolPermissionContext.mode,i=xat(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=Q({content:pat(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 a2({type:`hook_stopped_continuation`,message:u,hookName:`Stop`,toolUseID:o,hookEvent:`Stop`})),a.abortController.signal.aborted)return a.queryTracking?.chainId,a.queryTracking?.depth,yield K_({toolUse:!1}),{blockingErrors:[],preventContinuation:!0}}if(c>0&&(yield mhe(c,p,f,l,u,d,`suggestion`,o),f.length>0)){let e=Ax(`app:toggleTranscript`,`Global`,`ctrl+o`);a.addNotification?.({key:`stop-hook-error`,text:`Stop hook error occurred \u00b7 ${e} to see`,priority:`immediate`})}return l?{blockingErrors:[],preventContinuation:!0}:n.length>0?{blockingErrors:n,preventContinuation:!1}:{blockingErrors:[],preventContinuation:!1}}catch(e){return Date.now()-c,a.queryTracking?.chainId,a.queryTracking?.depth,yield Y_(`Stop hook failed: ${G(e)}`,`warning`),{blockingErrors:[],preventContinuation:!1}}}var S4e=n((()=>{Mx(),Vi(),Ra(),g2(),q(),vi(),_7(),v3(),W2e(),b4e(),_0(),g(),l0()}));function C4e(){return{sessionId:Kr(),gates:{streamingToolExecution:!1,emitToolUseSummaries:h(process.env.WORKMATE_EMIT_TOOL_USE_SUMMARIES),fastModeEnabled:!h(process.env.WORKMATE_DISABLE_FAST_MODE)}}}var w4e=n((()=>{H(),g()}));function T4e(){return{callModel:Ast,microcompact:$D,autocompact:lFe,uuid:zc}}var E4e=n((()=>{r9(),yV(),rO()}));function q1(e,t){return parseFloat(e)*j4e[t.toLowerCase()]}function D4e(e){let t=e.match(k4e);if(t)return q1(t[1],t[2]);let n=e.match(A4e);if(n)return q1(n[1],n[2]);let r=e.match(J1);return r?q1(r[1],r[2]):null}function O4e(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 k4e,A4e,J1,j4e,M4e=n((()=>{k4e=/^\s*\+(\d+(?:\.\d+)?)\s*(k|m|b)\b/i,A4e=/\s\+(\d+(?:\.\d+)?)\s*(k|m|b)\s*[.!?]?\s*$/i,J1=/\b(?:use|spend)\s+(\d+(?:\.\d+)?)\s*(k|m|b)\s*tokens?\b/i,new RegExp(J1.source,`gi`),j4e={k:1e3,m:1e6,b:1e9}}));function N4e(){return{continuationCount:0,lastDeltaTokens:0,lastGlobalTurnTokens:0,startedAt:Date.now()}}function P4e(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<Y1&&e.lastDeltaTokens<Y1;return!s&&i<n*F4e?(e.continuationCount++,e.lastDeltaTokens=o,e.lastGlobalTurnTokens=r,{action:`continue`,nudgeMessage:O4e(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 F4e,Y1,I4e=n((()=>{M4e(),F4e=.9,Y1=500}));function X1(){return X(m(),`sessions`)}function L4e(){let e=process.env.WORKMATE_SESSION_KIND;if(e===`bg`)return e}function R4e(){return L4e()===`bg`}async function z4e(){let e=L4e()??`interactive`,t=X1(),n=X(t,`${process.pid}.json`);Ai(async()=>{try{await $c(n)}catch{}});try{return await Wc(t,{recursive:!0,mode:448}),await Vc(t,448),await el(n,W({pid:process.pid,sessionId:Kr(),cwd:ri(),startedAt:Date.now(),kind:e,entrypoint:process.env.WORKMATE_ENTRYPOINT,name:process.env.WORKMATE_SESSION_NAME,logPath:process.env.WORKMATE_SESSION_LOG,agent:process.env.WORKMATE_AGENT})),kre(e=>{Z1({sessionId:e})}),!0}catch(e){return K(`[concurrentSessions] register failed: ${G(e)}`),!1}}async function Z1(e){let t=X(X1(),`${process.pid}.json`);try{await el(t,W({...wi(await Kc(t,`utf8`)),...e}))}catch(e){K(`[concurrentSessions] updatePidFile failed: ${G(e)}`)}}async function B4e(e){e&&await Z1({name:e})}async function V4e(e){await Z1({...e,updatedAt:Date.now()})}async function H4e(){let e=X1(),t;try{t=await qc(e)}catch(e){return Bi(e)||K(`[concurrentSessions] readdir failed: ${G(e)}`),0}let n=0;for(let r of t){if(!/^\d+\.json$/.test(r))continue;let t=parseInt(r.slice(0,-5),10);if(t===process.pid){n++;continue}sc(t)?n++:Na()!==`wsl`&&$c(X(e,r)).catch(()=>{})}return n}var Q1=n((()=>{H(),pi(),q(),g(),vi(),cc(),Fa(),zi()}));function U4e(){return R4e()?Date.now()-$1>=G4e:!1}function W4e(e){$1=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`}`)}}V4e({status:r,waitingFor:i}).catch(e=>{K(`[taskSummary] updateSessionActivity failed: ${e}`)})}catch(e){K(`[taskSummary] error: ${e}`)}}var G4e,$1,K4e=n((()=>{Q1(),q(),G4e=3e4,$1=0}));function*e0(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 Q({content:[{type:`tool_result`,content:t,is_error:!0,tool_use_id:r.id}],toolUseResult:t,sourceToolAssistantUUID:n.uuid})}}function q4e(e){return e?.type===`assistant`&&e.apiError===`max_output_tokens`}function J4e(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*t0(e){let t=[],n=[],r,i=!1,a;try{r=yield*Y4e(e,t,n)}catch(e){throw i=!0,a=e,e}finally{await mH({commands:n,outcome:J4e({terminal:r,...i?{thrownError:a}:{}}),priority:`later`}).then(e=>{for(let t of e)aE(t)}).catch(Y);let e=globalThis.performance;if(e&&typeof e.clearMarks==`function`)try{e.clearMarks(),e.clearMeasures?.(),e.clearResourceTimings?.()}catch{}}for(let e of t)gH(e,`completed`);return r}async function*Y4e(e,t,n){try{var r=zre();let{systemPrompt:i,userContext:a,systemContext:o,canUseTool:s,fallbackModel:c,querySource:l,maxTurns:u,skipCacheWrite:d}=e,f=e.deps??T4e(),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=N4e(),h,g=C4e(),_=r.u(n8e(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=qw(null,v,r),D=yT(r.options.tools??[],v);yield{type:`stream_request_start`},F1(`query_fn_entry`),r.agentId||yH(`query_started`);let O=r.queryTracking?{chainId:r.queryTracking.chainId,depth:r.queryTracking.depth+1}:{chainId:f.uuid(),depth:0};O.chainId,r={...r,queryTracking:O};let k=sv(v);k=k.map(e=>{if(e.type!==`user`||!(`toolUseResult`in e)||e.toolUseResult===void 0)return e;let t={...e};return delete t.toolUseResult,t});let A=y,ee=l.startsWith(`agent:`)||l.startsWith(`repl_main_thread`);k=await iye(k,r.contentReplacementState,ee?e=>void D6(e,r.agentId).catch(Y):void 0,new Set(r.options.tools.filter(e=>!Number.isFinite(e.maxResultSizeChars)).map(e=>e.name)));let te=0;F1(`query_microcompact_start`);let ne=await f.microcompact(k,r,l);if(k=ne.messages,ne.clearedToolUseIds?.length){let e=r?.contentReplacementState?.replacements;if(e)for(let t of ne.clearedToolUseIds)e.delete(t)}F1(`query_microcompact_end`);let re=$g(est(i,o));F1(`query_autocompact_start`);let{compactionResult:ie,consecutiveFailures:ae}=await f.autocompact(k,r,{systemPrompt:i,userContext:a,systemContext:o,toolUseContext:r,forkContextMessages:k},l,A,te);if(F1(`query_autocompact_end`),ie){let{preCompactTokenCount:t,postCompactTokenCount:n,truePostCompactTokenCount:r,compactionUsage:i}=ie;if(v.length,ie.summaryMessages.length+ie.attachments.length+ie.hookResults.length,i?.input_tokens,i?.output_tokens,i?.cache_read_input_tokens,i?.cache_creation_input_tokens,i&&i.input_tokens+(i.cache_creation_input_tokens??0)+(i.cache_read_input_tokens??0)+i.output_tokens,O.depth,e.taskBudget){let t=xwe(k);h=Math.max(0,(h??e.taskBudget.total)-t)}A={compacted:!0,turnId:f.uuid(),turnCounter:0,consecutiveFailures:0};let a=Wk(ie);for(let e of a)yield e;k=a}else ae!==void 0&&(A={...A??{compacted:!1,turnId:``,turnCounter:0},consecutiveFailures:ae});r={...r,messages:k};let j=[],oe=[],se=[],ce=!1;F1(`query_setup_start`);let M=g.gates.streamingToolExecution?new P1(r.options.tools,s,r):null,N=r.getAppState(),le=N.toolPermissionContext.mode,ue=Ao({permissionMode:le,mainLoopModel:r.options.mainLoopModel,exceeds200kTokens:le===`plan`&&AD(k)});if(F1(`query_setup_end`),!ie&&l!==`compact`&&l!==`session_memory`){let{isAtBlockingLimit:e}=uV(MD(k)-te,r.options.mainLoopModel);if(e)return yield G_({content:JE,error:`invalid_request`}),{reason:`blocking_limit`}}if(!ie&&dV()){let e=r.options.mainLoopModel,t=MD(k)-te,n=sFe(e);if(t>cV(e)-n){let e=await f.autocompact(k,r,{systemPrompt:i,userContext:a,systemContext:o,toolUseContext:r,forkContextMessages:k},l,A,te);e.compactionResult&&(k=Wk(e.compactionResult),te=0,A=A&&{...A,compacted:!0,consecutiveFailures:e.consecutiveFailures??0})}}let de=!0;F1(`query_api_loop_start`);try{for(;de;){de=!1;try{let t=!1;F1(`query_api_streaming_start`);for await(let n of f.callModel({messages:tst(k,a),systemPrompt:re,thinkingConfig:r.options.thinkingConfig,tools:r.options.tools,signal:r.abortController.signal,options:{async getToolPermissionContext(){return r.getAppState().toolPermissionContext},model:ue,...g.gates.fastModeEnabled&&{fastMode:N.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,mcpTools:N.mcp.tools,hasPendingMcpServers:N.mcp.clients.some(e=>e.type===`pending`),queryTracking:O,advisorModel:N.advisorModel,skipCacheWrite:d,agentId:r.agentId,addNotification:r.addNotification,...e.taskBudget&&{taskBudget:{total:e.taskBudget.total,...h!==void 0&&{remaining:h}}}}})){if(t){for(let e of j)yield{type:`tombstone`,message:e};j.length,O.depth,j.length=0,oe.length=0,se.length=0,ce=!1,M&&(M.discard(),M=new P1(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=gs(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(q4e(n)&&(i=!0),i||(yield e),n.type===`assistant`){let e=n;j.push(e);let t=(Array.isArray(e.message?.content)?e.message.content:[]).filter(e=>e.type===`tool_use`);if(t.length>0&&(se.push(...t),ce=!0),M&&!r.abortController.signal.aborted)for(let n of t)M.addTool(n,e)}if(M&&!r.abortController.signal.aborted)for(let e of M.getCompletedResults())e.message&&(yield e.message,oe.push(...d3([e.message],r.options.tools).filter(e=>e.type===`user`)))}F1(`query_api_streaming_end`)}catch(e){if(e instanceof bD&&c){ue=c,de=!0,yield*e0(j,`Model fallback triggered`),j.length=0,oe.length=0,se.length=0,ce=!1,M&&(M.discard(),M=new P1(r.options.tools,s,r)),r.options.mainLoopModel=c,e.originalModel,O.depth,yield Y_(`Switched to ${xo(e.fallbackModel)} due to high demand for ${xo(e.originalModel)}`,`warning`);continue}throw e}}}catch(e){Y(e);let t=e instanceof Error?e.message:String(e);return j.length,j.flatMap(e=>(Array.isArray(e.message?.content)?e.message.content:[]).filter(e=>e.type===`tool_use`)).length,O.depth,e instanceof PE||e instanceof xy?(yield G_({content:e.message}),{reason:`image_error`}):(yield*e0(j,t),yield G_({content:t}),Ri(`Query error`,e),{reason:`model_error`,error:e})}if(j.length>0&&!r.options.isNonInteractiveSession){let e=j.at(-1)?.message?.usage;if(e&&_O()){let t=yO(e,l,gO());t&&(yield bO(t))}}if(j.length>0&&aIe(k.concat(j),i,a,o,r,l),r.abortController.signal.aborted){if(M)for await(let e of M.getRemainingResults())e.message&&(yield e.message);else yield*e0(j,`Interrupted by user`);return r.abortController.signal.reason!==`interrupt`&&(yield K_({toolUse:!1})),{reason:`aborted_streaming`}}if(C){let e=await C;e&&(yield e)}if(!ce){let e=j.at(-1);if(e?.type===`assistant`&&e.isApiErrorMessage&&RE(e),q4e(e)){if(b<X4e){let e=Q({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,...j,e],toolUseContext:r,autoCompactTracking:A,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 bat(e,r),{reason:`model_error`,error:e.error??e.apiError??`api_error`};let t=yield*x4e(k,j,i,a,o,r,l,w);if(t.preventContinuation)return{reason:`stop_hook_prevented`};if(t.blockingErrors.length>0){p={messages:[...k,...j,...t.blockingErrors],toolUseContext:r,autoCompactTracking:A,maxOutputTokensRecoveryCount:0,hasAttemptedReactiveCompact:x,maxOutputTokensOverride:void 0,pendingToolUseSummary:void 0,stopHookActive:!0,turnCount:T,transition:{reason:`stop_hook_blocking`}};continue}{let e=P4e(m,r.agentId,Ere(),Ene());if(e.action===`continue`){fne(),K(`Token budget continuation #${e.continuationCount}: ${e.pct}% (${e.turnTokens.toLocaleString()} / ${e.budget.toLocaleString()})`),p={messages:[...k,...j,Q({content:e.nudgeMessage,isMeta:!0})],toolUseContext:r,autoCompactTracking:A,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&&K(`Token budget early stop: diminishing returns at ${e.completionEvent.pct}%`),{...e.completionEvent},O.depth)}return{reason:`completed`}}let fe=!1,pe=r;F1(`query_tool_execution_start`),se.length,O.depth;let me=M?M.getRemainingResults():I2e(se,j,s,r);for await(let e of me)e.message&&(yield e.message,e.message.type===`attachment`&&e.message.attachment.type===`hook_stopped_continuation`&&(fe=!0),oe.push(...d3([e.message],r.options.tools).filter(e=>e.type===`user`))),e.newContext&&(pe={...e.newContext,queryTracking:O});F1(`query_tool_execution_end`);let he;if(g.gates.emitToolUseSummaries&&se.length>0&&!r.abortController.signal.aborted&&!r.agentId){let e=j.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=se.map(e=>e.id);he=dFe({tools:se.map(e=>{let t=oe.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?bhe(e,n):null).catch(()=>null)}if(r.abortController.signal.aborted){r.abortController.signal.reason!==`interrupt`&&(yield K_({toolUse:!0}));let e=T+1;return u&&e>u&&(yield a2({type:`max_turns_reached`,maxTurns:u,turnCount:e})),{reason:`aborted_tools`}}if(fe)return{reason:`hook_stopped`};A?.compacted&&(A.turnCounter++,A.turnId,A.turnCounter,O.depth),k.length,j.length,oe.length,O.depth;let ge=se.some(e=>e.name===Go),_e=l.startsWith(`repl_main_thread`)||l===`sdk`,ve=r.agentId,ye=await pH(gE(ge?`later`:`next`).filter(e=>_E(e)?!1:_e?e.agentId===void 0:e.mode===`task-notification`&&e.agentId===ve));ye.staleCommands.length>0&&uE(ye.staleCommands);let be=ye.claimedCommands.filter(e=>e.mode===`prompt`||e.mode===`task-notification`);if(be.length>0){n.push(...be);for(let e of be)e.uuid&&(t.push(e.uuid),gH(e.uuid,`started`));uE(be)}for await(let e of y8e(null,pe,ye.attachmentCommands,k.concat(j,oe),l))yield e,oe.push(e);if(_&&_.settledAt!==null&&_.consumedOnIteration===-1){let e=o8e(await _.promise,r.readFileState);for(let t of e){let e=a2(t);yield e,oe.push(e)}_.consumedOnIteration=T-1}if(Hw&&E){let e=await Jw(E);for(let t of e){let e=a2(t);yield e,oe.push(e)}}if(pT&&D){let e=await bT(D);for(let t of e){let e=a2(t);yield e,oe.push(e)}}let P=new Set(be),xe=ye.attachmentCommands.filter(e=>(e.mode===`prompt`||e.mode===`task-notification`)&&!P.has(e));if(xe.length>0){for(let e of xe)e.uuid&&(t.push(e.uuid),gH(e.uuid,`started`));uE(xe)}if(Bt(oe,e=>e.type===`attachment`&&e.attachment.type===`edited_text_file`),oe.length,O.depth,pe.options.refreshTools){let e=pe.options.refreshTools();e!==pe.options.tools&&(pe={...pe,options:{...pe.options,tools:e}})}let Se={...pe,queryTracking:O},Ce=T+1;if(!r.agentId&&U4e()&&W4e({systemPrompt:i,userContext:a,systemContext:o,toolUseContext:r,forkContextMessages:k.concat(j,oe)}),u&&Ce>u)return yield a2({type:`max_turns_reached`,maxTurns:u,turnCount:Ce}),{reason:`max_turns`,turnCount:Ce};F1(`query_recursive_call`),p={messages:k.concat(j,oe),toolUseContext:Se,autoCompactTracking:A,turnCount:Ce,maxOutputTokensRecoveryCount:0,hasAttemptedReactiveCompact:!1,pendingToolUseSummary:he,maxOutputTokensOverride:void 0,stopHookActive:w,transition:{reason:`next_turn`}}}}catch(e){r.e=e}finally{r.d()}}var X4e,n0=n((()=>{wD(),yV(),fA(),Bre(),Ra(),FE(),Sy(),Ps(),Pw(),Ta(),rD(),q(),v3(),fFe(),W7(),g2(),nT(),ET(),wE(),hH(),vH(),TH(),To(),ND(),bo(),Ns(),DH(),_7(),T2e(),B1(),V2e(),dx(),_8(),S4e(),w4e(),E4e(),H(),I4e(),tt(),wO(),K4e(),X4e=3}));function Z4e(){return{consecutiveDenials:0,totalDenials:0}}function Q4e(e){return{...e,consecutiveDenials:e.consecutiveDenials+1,totalDenials:e.totalDenials+1}}function r0(e){return e.consecutiveDenials===0?e:{...e,consecutiveDenials:0}}function $4e(e){return e.consecutiveDenials>=i0.maxConsecutive||e.totalDenials>=i0.maxTotal}var i0,e3e=n((()=>{i0={maxConsecutive:3,maxTotal:20}}));function t3e(e){c0=e}function n3e(){return c0}function a0(e){return{systemPrompt:e.systemPrompt,userContext:e.userContext,systemContext:e.systemContext,toolUseContext:e.toolUseContext,forkContextMessages:e.messages}}function r3e(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 i3e(e,t,n){let r=(await e.getPromptForCommand(t,n)).map(e=>e.type===`text`?e.text:``).join(`
|
|
2455
|
+
`)}`)})],cacheSafeParams:a0(t),canUseTool:U1(e),querySource:`auto_dream`,forkLabel:`auto_dream`,maxTurns:20,skipTranscript:!0,overrides:{abortController:f},onMessage:g4e(p,d)});zqe(p,d);let i=t.toolUseContext.getAppState().tasks?.[p];n&&Iqe(i)&&i.filesTouched.length>0&&n({...ghe(i.filesTouched),verb:`Improved`}),K(`[autoDream] completed — cache: read=${r.totalUsage.cache_read_input_tokens} created=${r.totalUsage.cache_creation_input_tokens}`),r.totalUsage.cache_read_input_tokens,r.totalUsage.cache_creation_input_tokens,r.totalUsage.output_tokens,c.length}catch(e){if(f.signal.aborted){K(`[autoDream] aborted by user`);return}K(`[autoDream] fork failed: ${e.message}`),Bqe(p,d),await jqe(u)}}}function g4e(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)}Rqe(e,{text:r.trim(),toolUseCount:i},a,t)}}async function _4e(e,t){await K1?.(e,t)}var v4e,y4e,K1,b4e=n((()=>{l0(),v3(),q(),Ra(),Vi(),K2e(),_8(),H(),l4e(),d4e(),BZ(),HZ(),Os(),Rs(),v4e=600*1e3,y4e={minHours:24,minSessions:5},K1=null}));async function*x4e(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`)&&t3e(a0(l)),process.env.WORKMATE_JOB_DIR&&o.startsWith(`repl_main_thread`)&&!a.agentId){let e=l.messages.filter(e=>e.type===`assistant`),t=H2e(process.env.WORKMATE_JOB_DIR,e).catch(e=>{K(`[job] classifier error: ${G(e)}`,{level:`error`})});await Promise.race([t,new Promise(e=>setTimeout(e,6e4).unref())])}let u=(await import(`./poorMode-eMIFCAC_.js`)).isPoorModeActive();v()||(!f(process.env.WORKMATE_ENABLE_PROMPT_SUGGESTION)&&!u&&y3e(l),!a.agentId&&Ure()&&!u&&import(`./extractMemories-DHlbRc5g.js`).then(({executeExtractMemories:e})=>e(l,a.appendSystemMessage)).catch(()=>{}),!a.agentId&&!u&&_4e(l,a.appendSystemMessage));try{let n=[],r=a.getAppState().toolPermissionContext.mode,i=xat(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=Q({content:pat(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 a2({type:`hook_stopped_continuation`,message:u,hookName:`Stop`,toolUseID:o,hookEvent:`Stop`})),a.abortController.signal.aborted)return a.queryTracking?.chainId,a.queryTracking?.depth,yield K_({toolUse:!1}),{blockingErrors:[],preventContinuation:!0}}if(c>0&&(yield mhe(c,p,f,l,u,d,`suggestion`,o),f.length>0)){let e=Ax(`app:toggleTranscript`,`Global`,`ctrl+o`);a.addNotification?.({key:`stop-hook-error`,text:`Stop hook error occurred \u00b7 ${e} to see`,priority:`immediate`})}return l?{blockingErrors:[],preventContinuation:!0}:n.length>0?{blockingErrors:n,preventContinuation:!1}:{blockingErrors:[],preventContinuation:!1}}catch(e){return Date.now()-c,a.queryTracking?.chainId,a.queryTracking?.depth,yield Y_(`Stop hook failed: ${G(e)}`,`warning`),{blockingErrors:[],preventContinuation:!1}}}var S4e=n((()=>{Mx(),Vi(),Ra(),g2(),q(),vi(),_7(),v3(),W2e(),b4e(),_0(),g(),l0()}));function C4e(){return{sessionId:Kr(),gates:{streamingToolExecution:!1,emitToolUseSummaries:h(process.env.WORKMATE_EMIT_TOOL_USE_SUMMARIES),fastModeEnabled:!h(process.env.WORKMATE_DISABLE_FAST_MODE)}}}var w4e=n((()=>{H(),g()}));function T4e(){return{callModel:Ast,microcompact:$D,autocompact:lFe,uuid:zc}}var E4e=n((()=>{r9(),yV(),rO()}));function q1(e,t){return parseFloat(e)*j4e[t.toLowerCase()]}function D4e(e){let t=e.match(k4e);if(t)return q1(t[1],t[2]);let n=e.match(A4e);if(n)return q1(n[1],n[2]);let r=e.match(J1);return r?q1(r[1],r[2]):null}function O4e(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 k4e,A4e,J1,j4e,M4e=n((()=>{k4e=/^\s*\+(\d+(?:\.\d+)?)\s*(k|m|b)\b/i,A4e=/\s\+(\d+(?:\.\d+)?)\s*(k|m|b)\s*[.!?]?\s*$/i,J1=/\b(?:use|spend)\s+(\d+(?:\.\d+)?)\s*(k|m|b)\s*tokens?\b/i,new RegExp(J1.source,`gi`),j4e={k:1e3,m:1e6,b:1e9}}));function N4e(){return{continuationCount:0,lastDeltaTokens:0,lastGlobalTurnTokens:0,startedAt:Date.now()}}function P4e(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<Y1&&e.lastDeltaTokens<Y1;return!s&&i<n*F4e?(e.continuationCount++,e.lastDeltaTokens=o,e.lastGlobalTurnTokens=r,{action:`continue`,nudgeMessage:O4e(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 F4e,Y1,I4e=n((()=>{M4e(),F4e=.9,Y1=500}));function X1(){return X(m(),`sessions`)}function L4e(){let e=process.env.WORKMATE_SESSION_KIND;if(e===`bg`)return e}function R4e(){return L4e()===`bg`}async function z4e(){let e=L4e()??`interactive`,t=X1(),n=X(t,`${process.pid}.json`);Ai(async()=>{try{await $c(n)}catch{}});try{return await Wc(t,{recursive:!0,mode:448}),await Vc(t,448),await el(n,W({pid:process.pid,sessionId:Kr(),cwd:ri(),startedAt:Date.now(),kind:e,entrypoint:process.env.WORKMATE_ENTRYPOINT,name:process.env.WORKMATE_SESSION_NAME,logPath:process.env.WORKMATE_SESSION_LOG,agent:process.env.WORKMATE_AGENT})),kre(e=>{Z1({sessionId:e})}),!0}catch(e){return K(`[concurrentSessions] register failed: ${G(e)}`),!1}}async function Z1(e){let t=X(X1(),`${process.pid}.json`);try{await el(t,W({...wi(await Kc(t,`utf8`)),...e}))}catch(e){K(`[concurrentSessions] updatePidFile failed: ${G(e)}`)}}async function B4e(e){e&&await Z1({name:e})}async function V4e(e){await Z1({...e,updatedAt:Date.now()})}async function H4e(){let e=X1(),t;try{t=await qc(e)}catch(e){return Bi(e)||K(`[concurrentSessions] readdir failed: ${G(e)}`),0}let n=0;for(let r of t){if(!/^\d+\.json$/.test(r))continue;let t=parseInt(r.slice(0,-5),10);if(t===process.pid){n++;continue}sc(t)?n++:Na()!==`wsl`&&$c(X(e,r)).catch(()=>{})}return n}var Q1=n((()=>{H(),pi(),q(),g(),vi(),cc(),Fa(),zi()}));function U4e(){return R4e()?Date.now()-$1>=G4e:!1}function W4e(e){$1=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`}`)}}V4e({status:r,waitingFor:i}).catch(e=>{K(`[taskSummary] updateSessionActivity failed: ${e}`)})}catch(e){K(`[taskSummary] error: ${e}`)}}var G4e,$1,K4e=n((()=>{Q1(),q(),G4e=3e4,$1=0}));function*e0(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 Q({content:[{type:`tool_result`,content:t,is_error:!0,tool_use_id:r.id}],toolUseResult:t,sourceToolAssistantUUID:n.uuid})}}function q4e(e){return e?.type===`assistant`&&e.apiError===`max_output_tokens`}function J4e(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*t0(e){let t=[],n=[],r,i=!1,a;try{r=yield*Y4e(e,t,n)}catch(e){throw i=!0,a=e,e}finally{await mH({commands:n,outcome:J4e({terminal:r,...i?{thrownError:a}:{}}),priority:`later`}).then(e=>{for(let t of e)aE(t)}).catch(Y);let e=globalThis.performance;if(e&&typeof e.clearMarks==`function`)try{e.clearMarks(),e.clearMeasures?.(),e.clearResourceTimings?.()}catch{}}for(let e of t)gH(e,`completed`);return r}async function*Y4e(e,t,n){try{var r=zre();let{systemPrompt:i,userContext:a,systemContext:o,canUseTool:s,fallbackModel:c,querySource:l,maxTurns:u,skipCacheWrite:d}=e,f=e.deps??T4e(),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=N4e(),h,g=C4e(),_=r.u(n8e(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=qw(null,v,r),D=yT(r.options.tools??[],v);yield{type:`stream_request_start`},F1(`query_fn_entry`),r.agentId||yH(`query_started`);let O=r.queryTracking?{chainId:r.queryTracking.chainId,depth:r.queryTracking.depth+1}:{chainId:f.uuid(),depth:0};O.chainId,r={...r,queryTracking:O};let k=sv(v);k=k.map(e=>{if(e.type!==`user`||!(`toolUseResult`in e)||e.toolUseResult===void 0)return e;let t={...e};return delete t.toolUseResult,t});let A=y,ee=l.startsWith(`agent:`)||l.startsWith(`repl_main_thread`);k=await iye(k,r.contentReplacementState,ee?e=>void D6(e,r.agentId).catch(Y):void 0,new Set(r.options.tools.filter(e=>!Number.isFinite(e.maxResultSizeChars)).map(e=>e.name)));let te=0;F1(`query_microcompact_start`);let ne=await f.microcompact(k,r,l);if(k=ne.messages,ne.clearedToolUseIds?.length){let e=r?.contentReplacementState?.replacements;if(e)for(let t of ne.clearedToolUseIds)e.delete(t)}F1(`query_microcompact_end`);let re=$g(est(i,o));F1(`query_autocompact_start`);let{compactionResult:ie,consecutiveFailures:ae}=await f.autocompact(k,r,{systemPrompt:i,userContext:a,systemContext:o,toolUseContext:r,forkContextMessages:k},l,A,te);if(F1(`query_autocompact_end`),ie){let{preCompactTokenCount:t,postCompactTokenCount:n,truePostCompactTokenCount:r,compactionUsage:i}=ie;if(v.length,ie.summaryMessages.length+ie.attachments.length+ie.hookResults.length,i?.input_tokens,i?.output_tokens,i?.cache_read_input_tokens,i?.cache_creation_input_tokens,i&&i.input_tokens+(i.cache_creation_input_tokens??0)+(i.cache_read_input_tokens??0)+i.output_tokens,O.depth,e.taskBudget){let t=xwe(k);h=Math.max(0,(h??e.taskBudget.total)-t)}A={compacted:!0,turnId:f.uuid(),turnCounter:0,consecutiveFailures:0};let a=Wk(ie);for(let e of a)yield e;k=a}else ae!==void 0&&(A={...A??{compacted:!1,turnId:``,turnCounter:0},consecutiveFailures:ae});r={...r,messages:k};let j=[],oe=[],se=[],ce=!1;F1(`query_setup_start`);let M=g.gates.streamingToolExecution?new P1(r.options.tools,s,r):null,N=r.getAppState(),le=N.toolPermissionContext.mode,ue=Ao({permissionMode:le,mainLoopModel:r.options.mainLoopModel,exceeds200kTokens:le===`plan`&&AD(k)});if(F1(`query_setup_end`),!ie&&l!==`compact`&&l!==`session_memory`){let{isAtBlockingLimit:e}=uV(MD(k)-te,r.options.mainLoopModel);if(e)return yield G_({content:JE,error:`invalid_request`}),{reason:`blocking_limit`}}if(!ie&&dV()){let e=r.options.mainLoopModel,t=MD(k)-te,n=sFe(e);if(t>cV(e)-n){let e=await f.autocompact(k,r,{systemPrompt:i,userContext:a,systemContext:o,toolUseContext:r,forkContextMessages:k},l,A,te);e.compactionResult&&(k=Wk(e.compactionResult),te=0,A=A&&{...A,compacted:!0,consecutiveFailures:e.consecutiveFailures??0})}}let de=!0;F1(`query_api_loop_start`);try{for(;de;){de=!1;try{let t=!1;F1(`query_api_streaming_start`);for await(let n of f.callModel({messages:tst(k,a),systemPrompt:re,thinkingConfig:r.options.thinkingConfig,tools:r.options.tools,signal:r.abortController.signal,options:{async getToolPermissionContext(){return r.getAppState().toolPermissionContext},model:ue,...g.gates.fastModeEnabled&&{fastMode:N.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,mcpTools:N.mcp.tools,hasPendingMcpServers:N.mcp.clients.some(e=>e.type===`pending`),queryTracking:O,advisorModel:N.advisorModel,skipCacheWrite:d,agentId:r.agentId,addNotification:r.addNotification,...e.taskBudget&&{taskBudget:{total:e.taskBudget.total,...h!==void 0&&{remaining:h}}}}})){if(t){for(let e of j)yield{type:`tombstone`,message:e};j.length,O.depth,j.length=0,oe.length=0,se.length=0,ce=!1,M&&(M.discard(),M=new P1(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=gs(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(q4e(n)&&(i=!0),i||(yield e),n.type===`assistant`){let e=n;j.push(e);let t=(Array.isArray(e.message?.content)?e.message.content:[]).filter(e=>e.type===`tool_use`);if(t.length>0&&(se.push(...t),ce=!0),M&&!r.abortController.signal.aborted)for(let n of t)M.addTool(n,e)}if(M&&!r.abortController.signal.aborted)for(let e of M.getCompletedResults())e.message&&(yield e.message,oe.push(...d3([e.message],r.options.tools).filter(e=>e.type===`user`)))}F1(`query_api_streaming_end`)}catch(e){if(e instanceof bD&&c){ue=c,de=!0,yield*e0(j,`Model fallback triggered`),j.length=0,oe.length=0,se.length=0,ce=!1,M&&(M.discard(),M=new P1(r.options.tools,s,r)),r.options.mainLoopModel=c,e.originalModel,O.depth,yield Y_(`Switched to ${xo(e.fallbackModel)} due to high demand for ${xo(e.originalModel)}`,`warning`);continue}throw e}}}catch(e){Y(e);let t=e instanceof Error?e.message:String(e);return j.length,j.flatMap(e=>(Array.isArray(e.message?.content)?e.message.content:[]).filter(e=>e.type===`tool_use`)).length,O.depth,e instanceof PE||e instanceof xy?(yield G_({content:e.message}),{reason:`image_error`}):(yield*e0(j,t),yield G_({content:t}),Ri(`Query error`,e),{reason:`model_error`,error:e})}if(j.length>0&&!r.options.isNonInteractiveSession){let e=j.at(-1)?.message?.usage;if(e&&_O()){let t=yO(e,l,gO());t&&(yield bO(t))}}if(j.length>0&&aIe(k.concat(j),i,a,o,r,l),r.abortController.signal.aborted){if(M)for await(let e of M.getRemainingResults())e.message&&(yield e.message);else yield*e0(j,`Interrupted by user`);return r.abortController.signal.reason!==`interrupt`&&(yield K_({toolUse:!1})),{reason:`aborted_streaming`}}if(C){let e=await C;e&&(yield e)}if(!ce){let e=j.at(-1);if(e?.type===`assistant`&&e.isApiErrorMessage&&RE(e),q4e(e)){if(b<X4e){let e=Q({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,...j,e],toolUseContext:r,autoCompactTracking:A,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 bat(e,r),{reason:`model_error`,error:e.error??e.apiError??`api_error`};let t=yield*x4e(k,j,i,a,o,r,l,w);if(t.preventContinuation)return{reason:`stop_hook_prevented`};if(t.blockingErrors.length>0){p={messages:[...k,...j,...t.blockingErrors],toolUseContext:r,autoCompactTracking:A,maxOutputTokensRecoveryCount:0,hasAttemptedReactiveCompact:x,maxOutputTokensOverride:void 0,pendingToolUseSummary:void 0,stopHookActive:!0,turnCount:T,transition:{reason:`stop_hook_blocking`}};continue}{let e=P4e(m,r.agentId,Ere(),Ene());if(e.action===`continue`){fne(),K(`Token budget continuation #${e.continuationCount}: ${e.pct}% (${e.turnTokens.toLocaleString()} / ${e.budget.toLocaleString()})`),p={messages:[...k,...j,Q({content:e.nudgeMessage,isMeta:!0})],toolUseContext:r,autoCompactTracking:A,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&&K(`Token budget early stop: diminishing returns at ${e.completionEvent.pct}%`),{...e.completionEvent},O.depth)}return{reason:`completed`}}let fe=!1,pe=r;F1(`query_tool_execution_start`),se.length,O.depth;let me=M?M.getRemainingResults():I2e(se,j,s,r);for await(let e of me)e.message&&(yield e.message,e.message.type===`attachment`&&e.message.attachment.type===`hook_stopped_continuation`&&(fe=!0),oe.push(...d3([e.message],r.options.tools).filter(e=>e.type===`user`))),e.newContext&&(pe={...e.newContext,queryTracking:O});F1(`query_tool_execution_end`);let he;if(g.gates.emitToolUseSummaries&&se.length>0&&!r.abortController.signal.aborted&&!r.agentId){let e=j.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=se.map(e=>e.id);he=dFe({tools:se.map(e=>{let t=oe.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?bhe(e,n):null).catch(()=>null)}if(r.abortController.signal.aborted){r.abortController.signal.reason!==`interrupt`&&(yield K_({toolUse:!0}));let e=T+1;return u&&e>u&&(yield a2({type:`max_turns_reached`,maxTurns:u,turnCount:e})),{reason:`aborted_tools`}}if(fe)return{reason:`hook_stopped`};A?.compacted&&(A.turnCounter++,A.turnId,A.turnCounter,O.depth),k.length,j.length,oe.length,O.depth;let ge=se.some(e=>e.name===Go),_e=l.startsWith(`repl_main_thread`)||l===`sdk`,ve=r.agentId,ye=await pH(gE(ge?`later`:`next`).filter(e=>_E(e)?!1:_e?e.agentId===void 0:e.mode===`task-notification`&&e.agentId===ve));ye.staleCommands.length>0&&uE(ye.staleCommands);let be=ye.claimedCommands.filter(e=>e.mode===`prompt`||e.mode===`task-notification`);if(be.length>0){n.push(...be);for(let e of be)e.uuid&&(t.push(e.uuid),gH(e.uuid,`started`));uE(be)}for await(let e of y8e(null,pe,ye.attachmentCommands,k.concat(j,oe),l))yield e,oe.push(e);if(_&&_.settledAt!==null&&_.consumedOnIteration===-1){let e=o8e(await _.promise,r.readFileState);for(let t of e){let e=a2(t);yield e,oe.push(e)}_.consumedOnIteration=T-1}if(Hw&&E){let e=await Jw(E);for(let t of e){let e=a2(t);yield e,oe.push(e)}}if(pT&&D){let e=await bT(D);for(let t of e){let e=a2(t);yield e,oe.push(e)}}let P=new Set(be),xe=ye.attachmentCommands.filter(e=>(e.mode===`prompt`||e.mode===`task-notification`)&&!P.has(e));if(xe.length>0){for(let e of xe)e.uuid&&(t.push(e.uuid),gH(e.uuid,`started`));uE(xe)}if(Bt(oe,e=>e.type===`attachment`&&e.attachment.type===`edited_text_file`),oe.length,O.depth,pe.options.refreshTools){let e=pe.options.refreshTools();e!==pe.options.tools&&(pe={...pe,options:{...pe.options,tools:e}})}let Se={...pe,queryTracking:O},Ce=T+1;if(!r.agentId&&U4e()&&W4e({systemPrompt:i,userContext:a,systemContext:o,toolUseContext:r,forkContextMessages:k.concat(j,oe)}),u&&Ce>u)return yield a2({type:`max_turns_reached`,maxTurns:u,turnCount:Ce}),{reason:`max_turns`,turnCount:Ce};F1(`query_recursive_call`),p={messages:k.concat(j,oe),toolUseContext:Se,autoCompactTracking:A,turnCount:Ce,maxOutputTokensRecoveryCount:0,hasAttemptedReactiveCompact:!1,pendingToolUseSummary:he,maxOutputTokensOverride:void 0,stopHookActive:w,transition:{reason:`next_turn`}}}}catch(e){r.e=e}finally{r.d()}}var X4e,n0=n((()=>{wD(),yV(),fA(),Bre(),Ra(),FE(),Sy(),Ps(),Pw(),Ta(),rD(),q(),v3(),fFe(),W7(),g2(),nT(),ET(),wE(),hH(),vH(),TH(),To(),ND(),bo(),Ns(),DH(),_7(),T2e(),B1(),V2e(),dx(),_8(),S4e(),w4e(),E4e(),H(),I4e(),tt(),wO(),K4e(),X4e=3}));function Z4e(){return{consecutiveDenials:0,totalDenials:0}}function Q4e(e){return{...e,consecutiveDenials:e.consecutiveDenials+1,totalDenials:e.totalDenials+1}}function r0(e){return e.consecutiveDenials===0?e:{...e,consecutiveDenials:0}}function $4e(e){return e.consecutiveDenials>=i0.maxConsecutive||e.totalDenials>=i0.maxTotal}var i0,e3e=n((()=>{i0={maxConsecutive:3,maxTotal:20}}));function t3e(e){c0=e}function n3e(){return c0}function a0(e){return{systemPrompt:e.systemPrompt,userContext:e.userContext,systemContext:e.systemContext,toolUseContext:e.toolUseContext,forkContextMessages:e.messages}}function r3e(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 i3e(e,t,n){let r=(await e.getPromptForCommand(t,n)).map(e=>e.type===`text`?e.text:``).join(`
|
|
2456
2456
|
`),i=P9(e.allowedTools??[]),a=r3e(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:[Q({content:r})]}}function a3e(e,t=`Execution completed`){let n=Q_(e);return n&&iv(Array.isArray(n.message.content)?n.message.content:[],`
|
|
2457
2457
|
`)||t}function o0(e,t){let n=t?.abortController??(t?.shareAbortController?e.abortController:HT(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{readFileState:IT(t?.readFileState??e.readFileState),nestedMemoryAttachmentTriggers:new Set,loadedNestedMemoryPaths:new Set,dynamicSkillDirTriggers:new Set,discoveredSkillNames:new Set,toolDecisions:void 0,contentReplacementState:t?.contentReplacementState??(e.contentReplacementState?Wve(e.contentReplacementState):void 0),abortController:n,getAppState:r,setAppState:t?.shareSetAppState?e.setAppState:()=>{},setAppStateForTasks:e.setAppStateForTasks??e.setAppState,localDenialTracking:t?.shareSetAppState?e.localDenialTracking:Z4e(),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??JH(),agentType:t?.agentType,queryTracking:{chainId:zc(),depth:(e.queryTracking?.depth??-1)+1},fileReadingLimits:e.fileReadingLimits,userModified:e.userModified,criticalSystemReminder_EXPERIMENTAL:t?.criticalSystemReminder_EXPERIMENTAL,requireCanUseTool:t?.requireCanUseTool}}function o3e(e){return e.type===`stream_event`&&typeof e.event==`object`&&e.event!==null&&`type`in e.event&&e.event.type===`message_delta`}async function s0({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={...Zg},{systemPrompt:m,userContext:h,systemContext:g,toolUseContext:_,forkContextMessages:v}=t,y=o0(_,a),b=[...v,...e],x=l?void 0:JH(i),S=null;x&&(await w6(b,x).catch(e=>K(`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 t0({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(o3e(e)){let t=$7({...Zg},e.event.usage);p=Rst(p,t)}continue}if(e.type===`stream_request_start`)continue;K(`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 w6([t],x,S).catch(e=>K(`Forked agent [${i}] failed to record transcript: ${e}`)),t.type!==`progress`&&(S=t.uuid))}}finally{y.readFileState.clear(),b.length=0}return K(`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}`),s3e({forkLabel:i,querySource:r,durationMs:Date.now()-d,messageCount:f.length,totalUsage:p,queryTracking:_.queryTracking}),{messages:f,totalUsage:p}}function s3e({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;o>0&&i.cache_read_input_tokens/o,i.input_tokens,i.output_tokens,i.cache_read_input_tokens,i.cache_creation_input_tokens,i.service_tier,i.cache_creation.ephemeral_1h_input_tokens,i.cache_creation.ephemeral_5m_input_tokens,{...a?{queryChainId:a.chainId,queryDepth:a.depth}:{}}}var c0,l0=n((()=>{n0(),Ra(),r9(),T_(),WT(),q(),BT(),v3(),e3e(),z9(),_8(),dx(),XH(),c0=null})),c3e,l3e=n((()=>{c3e={providerId:`anthropic`,parseHeaders(e){let t=[];for(let[n,r,i]of[[`5h`,`session`,`Session`],[`7d`,`weekly`,`Weekly`]]){let a=e.get(`anthropic-ratelimit-unified-${n}-utilization`),o=e.get(`anthropic-ratelimit-unified-${n}-reset`);if(a===null||o===null)continue;let s=Number(a),c=Number(o);Number.isFinite(s)&&t.push({kind:r,label:i,utilization:s,...Number.isFinite(c)&&c>0?{resetsAt:c}:{}})}return t}}}));function u3e(){return d0}function d3e(e){u0=e,f0.forEach(t=>t(e)),Math.round((e.resetsAt?e.resetsAt-Date.now()/1e3:0)/3600),e.status,e.unifiedRateLimitFallbackAvailable}async function f3e(){}function p3e(e){d0={},Eoe(`anthropic`,c3e.parseHeaders(e)),(u0.status!==`allowed`||u0.resetsAt)&&d3e({status:`allowed`,unifiedRateLimitFallbackAvailable:!1,isUsingOverage:!1})}var u0,d0,f0,p0=n((()=>{Ra(),l3e(),Doe(),lX(),u0={status:`allowed`,unifiedRateLimitFallbackAvailable:!1,isUsingOverage:!1},d0={},f0=new Set}));function m3e(){return`user_intent`}function h3e(){let e=process.env.WORKMATE_ENABLE_PROMPT_SUGGESTION;return!f(e)&&!!h(e)}function g3e(){h0&&(h0.abort(),h0=null)}function _3e(e){return e.promptSuggestionEnabled?e.elicitation.queue.length>0?`elicitation_active`:e.toolPermissionContext.mode===`plan`?`plan_mode`:u0.status===`allowed`?null:`rate_limit`:`disabled`}async function v3e(e,t,n,r,i){if(e.signal.aborted)return m0(`aborted`,void 0,void 0,i),null;if(Bt(t,e=>e.type===`assistant`)<2)return m0(`early_conversation`,void 0,void 0,i),null;let a=Q_(t);if(a?.isApiErrorMessage)return m0(`last_response_error`,void 0,void 0,i),null;let o=b3e(a);if(o)return m0(o,void 0,void 0,i),null;let s=_3e(n());if(s)return m0(s,void 0,void 0,i),null;let c=m3e(),{suggestion:l,generationRequestId:u}=await x3e(e,c,r);return e.signal.aborted?(m0(`aborted`,void 0,void 0,i),null):l?S3e(l,c,i)?null:{suggestion:l,promptId:c,generationRequestId:u}:(m0(`empty`,void 0,c,i),null)}async function y3e(e){if(e.querySource!==`repl_main_thread`)return;h0=new AbortController;let t=h0,n=a0(e);try{let r=await v3e(t,e.messages,e.toolUseContext.getAppState,n,`cli`);if(!r)return;e.toolUseContext.setAppState(e=>({...e,promptSuggestion:{text:r.suggestion,promptId:r.promptId,shownAt:0,acceptedAt:0,generationRequestId:r.generationRequestId}})),G3e()&&r.suggestion&&q3e(r.suggestion,e,e.toolUseContext.setAppState,!1,n)}catch(e){if(e instanceof Error&&(e.name===`AbortError`||e.name===`APIUserAbortError`)){m0(`aborted`,void 0,void 0,`cli`);return}Y(Ei(e))}finally{h0===t&&(h0=null)}}function b3e(e){if(!e)return null;let t=e.message.usage,n=t.input_tokens??0,r=t.cache_creation_input_tokens??0,i=t.output_tokens??0;return n+r+i>w3e?`cache_cold`:null}async function x3e(e,t,n){let r=T3e[t],i=await s0({promptMessages:[Q({content:r})],cacheSafeParams:n,canUseTool:async()=>({behavior:`deny`,message:`No tools needed for suggestion`,decisionReason:{type:`other`,reason:`suggestion only`}}),querySource:`prompt_suggestion`,forkLabel:`prompt_suggestion`,overrides:{abortController:e},skipTranscript:!0,skipCacheWrite:!0}),a=i.messages.find(e=>e.type===`assistant`),o=a?.type===`assistant`?a.requestId??null:null;for(let e of i.messages){if(e.type!==`assistant`)continue;let t=(Array.isArray(e.message.content)?e.message.content:[]).find(e=>e.type===`text`);if(t?.type===`text`&&typeof t.text==`string`){let e=t.text.trim();if(e)return{suggestion:e,generationRequestId:o}}}return{suggestion:null,generationRequestId:o}}function S3e(e,t,n){if(!e)return m0(`empty`,void 0,t,n),!0;let r=e.toLowerCase(),i=e.trim().split(/\s+/).length,a=[[`done`,()=>r===`done`],[`meta_text`,()=>r===`nothing found`||r===`nothing found.`||r.startsWith(`nothing to suggest`)||r.startsWith(`no suggestion`)||/\bsilence is\b|\bstay(s|ing)? silent\b/.test(r)||/^\W*silence\W*$/.test(r)],[`meta_wrapped`,()=>/^\(.*\)$|^\[.*\]$/.test(e)],[`error_message`,()=>r.startsWith(`api error:`)||r.startsWith(`prompt is too long`)||r.startsWith(`request timed out`)||r.startsWith(`invalid api key`)||r.startsWith(`image was too large`)],[`prefixed_label`,()=>/^\w+:\s/.test(e)],[`too_few_words`,()=>i>=2||e.startsWith(`/`)?!1:!new Set([`yes`,`yeah`,`yep`,`yea`,`yup`,`sure`,`ok`,`okay`,`push`,`commit`,`deploy`,`stop`,`continue`,`check`,`exit`,`quit`,`no`]).has(r)],[`too_many_words`,()=>i>12],[`too_long`,()=>e.length>=100],[`multiple_sentences`,()=>/[.!?]\s+[A-Z]/.test(e)],[`has_formatting`,()=>/[\n*]|\*\*/.test(e)],[`evaluative`,()=>/thanks|thank you|looks good|sounds good|that works|that worked|that's all|nice|great|perfect|makes sense|awesome|excellent/.test(r)],[`claude_voice`,()=>/^(let me|i'll|i've|i'm|i can|i would|i think|i notice|here's|here is|here are|that's|this is|this will|you can|you should|you could|sure,|of course|certainly)/i.test(e)]];for(let[r,i]of a)if(i())return m0(r,e,t,n),!0;return!1}function C3e(e,t,n,r,i){Math.round(t.length/(e.length||1)*100)/100;let a=t===e,o=Math.max(0,Date.now()-n);({...i&&{generationRequestId:i},...a&&{timeToAcceptMs:o},...!a&&{timeToIgnoreMs:o}})}function m0(e,t,n,r){({...r&&{source:r}})}var h0,w3e,g0,T3e,_0=n((()=>{tt(),g(),vi(),l0(),Ta(),v3(),Ra(),p0(),k0(),h0=null,w3e=1e4,g0=`[SUGGESTION MODE: Suggest what the user might naturally type next into Work Mate.]
|
|
2458
2458
|
|
|
@@ -3055,13 +3055,13 @@ Goal: Write your final plan to the plan file (the only file you can edit).
|
|
|
3055
3055
|
- **Hard limit: 40 lines.** If the plan is longer, delete prose — not file paths.`}));function Eet(e,t){let n=new Map,r=new Map,i=new Map;for(let e of t)if(e.type===`assistant`){let t=e,a=t.message.id,o=n.get(a);if(o||(o=new Set,n.set(a,o)),Array.isArray(t.message.content)){for(let e of t.message.content)if(typeof e!=`string`&&e.type===`tool_use`){let t=e;o.add(t.id),r.set(t.id,a),i.set(t.id,e)}}}let a=new Map;for(let[e,t]of r)a.set(e,n.get(t));let o=new Map,s=new Map,c=new Map,l=new Map,u=new Set,d=new Set;for(let t of e){if(t.type===`progress`){let e=t.parentToolUseID,n=o.get(e);n?n.push(t):o.set(e,[t]);let r=t.data;if(r.type===`hook_progress`){let t=r.hookEvent,n=s.get(e);n||(n=new Map,s.set(e,n)),n.set(t,(n.get(t)??0)+1)}}if(t.type===`user`&&Array.isArray(t.message?.content)){for(let e of t.message?.content??[])if(typeof e!=`string`&&e.type===`tool_result`){let n=e;l.set(n.tool_use_id,t),u.add(n.tool_use_id),n.is_error&&d.add(n.tool_use_id)}}if(t.type===`assistant`&&Array.isArray(t.message?.content)){for(let e of t.message?.content??[])if(typeof e!=`string`&&(`tool_use_id`in e&&typeof e.tool_use_id==`string`&&u.add(e.tool_use_id),e.type===`advisor_tool_result`)){let t=e;t.content.type===`advisor_tool_result_error`&&d.add(t.tool_use_id)}}if(ev(t)){let e=t.attachment.toolUseID,n=t.attachment.hookEvent,r=t.attachment.hookName;if(r!==void 0){let t=c.get(e);t||(t=new Map,c.set(e,t));let i=t.get(n);i||(i=new Set,t.set(n,i)),i.add(r)}}}let f=new Map;for(let[e,t]of c){let n=new Map;for(let[e,r]of t)n.set(e,r.size);f.set(e,n)}let p=t.at(-1),m=p?.type===`assistant`?p.message?.id:void 0;for(let t of e){if(t.type!==`assistant`)continue;let e=t;if(e.message.id!==m&&Array.isArray(e.message.content)){for(let t of e.message.content)if(typeof t!=`string`&&(t.type===`server_tool_use`||t.type===`mcp_tool_use`)&&!u.has(t.id)){let e=t.id;u.add(e),d.add(e)}}}return{siblingToolUseIDs:a,progressMessagesByToolUseID:o,inProgressHookCounts:s,resolvedHookCounts:f,toolResultByToolUseID:l,toolUseByToolUseID:i,normalizedMessageCount:e.length,resolvedToolUseIDs:u,erroredToolUseIDs:d}}function Det(e,t,n,r,i){if(r.length<t||i.length<n)return null;if(r.length===t&&i.length===n){let t=r[r.length-1];return t&&t.type===`progress`?null:e}let a=n;for(let t=a;t<i.length;t++){let n=i[t];if(n.type===`assistant`){let t=n;if(t.message.id,Array.isArray(t.message.content)){let n=[];for(let r of t.message.content)if(typeof r!=`string`&&r.type===`tool_use`){let t=r;n.push(t.id),e.toolUseByToolUseID.set(t.id,r)}let r=new Set(n);for(let t of n)e.siblingToolUseIDs.set(t,r)}}}let o=t;for(let t=o;t<r.length;t++){let n=r[t];if(n.type===`progress`){let t=n.parentToolUseID,r=e.progressMessagesByToolUseID.get(t);r?r.push(n):e.progressMessagesByToolUseID.set(t,[n]);let i=n.data;if(i.type===`hook_progress`){let n=i.hookEvent,r=e.inProgressHookCounts.get(t);r||(r=new Map,e.inProgressHookCounts.set(t,r)),r.set(n,(r.get(n)??0)+1)}}if(n.type===`user`&&Array.isArray(n.message?.content)){for(let t of n.message?.content??[])if(typeof t!=`string`&&t.type===`tool_result`){let r=t;e.toolResultByToolUseID.set(r.tool_use_id,n),e.resolvedToolUseIDs.add(r.tool_use_id),r.is_error&&e.erroredToolUseIDs.add(r.tool_use_id)}}if(n.type===`assistant`&&Array.isArray(n.message?.content)){for(let t of n.message?.content??[])if(typeof t!=`string`&&(`tool_use_id`in t&&typeof t.tool_use_id==`string`&&e.resolvedToolUseIDs.add(t.tool_use_id),t.type===`advisor_tool_result`)){let n=t;n.content.type===`advisor_tool_result_error`&&e.erroredToolUseIDs.add(n.tool_use_id)}}if(ev(n)){let t=n.attachment.toolUseID,r=n.attachment.hookEvent;if(n.attachment.hookName!==void 0){let n=e.resolvedHookCounts.get(t);n||(n=new Map,e.resolvedHookCounts.set(t,n)),n.set(r,(n.get(r)??0)+1)}}}e.normalizedMessageCount=r.length;let s=i.at(-1),c=s?.type===`assistant`?s.message?.id:void 0;for(let t=o;t<r.length;t++){let n=r[t];if(n.type!==`assistant`)continue;let i=n;if(i.message.id!==c&&Array.isArray(i.message.content)){for(let t of i.message.content)if(typeof t!=`string`&&(t.type===`server_tool_use`||t.type===`mcp_tool_use`)&&!e.resolvedToolUseIDs.has(t.id)){let n=t.id;e.resolvedToolUseIDs.add(n),e.erroredToolUseIDs.add(n)}}}return e}function Oet(e,t){let n=[String(e.length),`|`,String(t.length)];for(let e of t)if(n.push(e.type[0]),e.type===`assistant`){let t=e.message?.content;if(Array.isArray(t))for(let e of t)typeof e!=`string`&&e.type===`tool_use`&&n.push(`t`,e.id)}else if(e.type===`user`){let t=e.message?.content;if(Array.isArray(t))for(let e of t)typeof e!=`string`&&e.type===`tool_result`&&n.push(`r`,e.tool_use_id)}for(let t of e)if(t.type===`progress`){let e=t;n.push(`p`,e.parentToolUseID,e.uuid)}return n.join(`,`)}function g3(e){let t=new Map,n=new Set,r=new Map;for(let{message:i}of e)if(i.type===`assistant`&&Array.isArray(i.message.content))for(let e of i.message.content)typeof e!=`string`&&e.type===`tool_use`&&t.set(e.id,e);else if(i.type===`user`&&Array.isArray(i.message.content)){for(let e of i.message.content)if(typeof e!=`string`&&e.type===`tool_result`){let t=e;n.add(t.tool_use_id),r.set(t.tool_use_id,i)}}let i=new Set;for(let e of t.keys())n.has(e)||i.add(e);return{lookups:{..._3,toolUseByToolUseID:t,resolvedToolUseIDs:n,toolResultByToolUseID:r},inProgressToolUseIDs:i}}function ket(e,t){let n=tv(e);return n?t.siblingToolUseIDs.get(n)??z_:z_}function Aet(e,t){let n=tv(e);return n?t.progressMessagesByToolUseID.get(n)??[]:[]}function jet(e,t,n){return(n.inProgressHookCounts.get(e)?.get(t)??0)>(n.resolvedHookCounts.get(e)?.get(t)??0)}function Met(e){return new Set(e.filter(e=>e.type===`assistant`&&Array.isArray(e.message?.content)&&e.message.content[0]?.type===`tool_use`).map(e=>e.message.content[0].id))}var _3,Net=n((()=>{V_(),cv(),_3={siblingToolUseIDs:new Map,progressMessagesByToolUseID:new Map,inProgressHookCounts:new Map,resolvedHookCounts:new Map,toolResultByToolUseID:new Map,toolUseByToolUseID:new Map,normalizedMessageCount:0,resolvedToolUseIDs:new Set,erroredToolUseIDs:new Set}}));function Pet(e,t,n,r,i,a,o,s,c){if(e.type!==`stream_event`&&e.type!==`stream_request_start`){if(e.type===`tombstone`){a?.(e.message);return}if(e.type===`tool_use_summary`)return;if(e.type===`assistant`){let t=e,n=(Array.isArray(t.message?.content)?t.message.content:[]).find(e=>typeof e!=`string`&&e.type===`thinking`);if(n&&typeof n!=`string`&&n.type===`thinking`){let e=n;o?.(()=>({thinking:e.thinking,isStreaming:!1,streamingEndedAt:Date.now()}))}}c?.(()=>null),t(e);return}if(e.type===`stream_request_start`){r(`requesting`);return}let l=e;if(l.event.type===`message_start`&&l.ttftMs!=null&&s?.({ttftMs:l.ttftMs}),l.event.type===`message_stop`){r(`tool-use`),i(()=>[]);return}switch(l.event.type){case`content_block_start`:switch(c?.(()=>null),l.event.content_block.type){case`thinking`:case`redacted_thinking`:r(`thinking`);return;case`text`:r(`responding`);return;case`tool_use`:{r(`tool-input`);let e=l.event.content_block,t=l.event.index;i(n=>[...n,{index:t,contentBlock:e,unparsedToolInput:``}]);return}case`server_tool_use`:case`web_search_tool_result`:case`code_execution_tool_result`:case`mcp_tool_use`:case`mcp_tool_result`:case`container_upload`:case`web_fetch_tool_result`:case`bash_code_execution_tool_result`:case`text_editor_code_execution_tool_result`:case`tool_search_tool_result`:case`compaction`:r(`tool-input`);return}return;case`content_block_delta`:switch(l.event.delta.type){case`text_delta`:{let e=l.event.delta.text;n(e),c?.(t=>(t??``)+e);return}case`input_json_delta`:{let e=l.event.delta.partial_json,t=l.event.index;n(e),i(n=>{let r=n.find(e=>e.index===t);return r?[...n.filter(e=>e!==r),{...r,unparsedToolInput:r.unparsedToolInput+e}]:n});return}case`thinking_delta`:n(l.event.delta.thinking);return;case`signature_delta`:return;default:return}case`content_block_stop`:return;case`message_delta`:r(`responding`);return;default:r(`responding`);return}}var Fet=n((()=>{})),v3=n((()=>{V_(),Z_(),cv(),Tet(),Net(),Fet(),a3(),c3()}));function y3(){return!1}async function Iet(e,t,n){if(!y3())return await n();let r=Lc(`sha1`).update(W(e)).digest(`hex`).slice(0,12),i=X(process.env.WORKMATE_TEST_FIXTURES_ROOT??U(),`fixtures/${t}-${r}.json`);try{return wi(await Kc(i,{encoding:`utf8`}))}catch(e){if(xi(e)!==`ENOENT`)throw e}if((Zn.isCI||process.env.CI)&&!h(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 Wc(mc(i),{recursive:!0}),await el(i,W(a,null,2),{encoding:`utf8`}),a}async function Let(e,t){if(!y3())return await t();let n=zet(d3(e.filter(e=>e.type!==`user`||!e.isMeta)).map(e=>e.message.content),x3),r=X(process.env.WORKMATE_TEST_FIXTURES_ROOT??U(),`fixtures/${n.map(e=>Lc(`sha1`).update(W(e)).digest(`hex`).slice(0,6)).join(`-`)}.json`);try{let e=wi(await Kc(r,{encoding:`utf8`}));return e.output.forEach(Ret),e.output.map((e,t)=>Vet(e,Het,t,zc()))}catch(e){if(xi(e)!==`ENOENT`)throw e}if(Zn.isCI&&!h(process.env.VCR_RECORD))throw Error(`API fixture missing: ${r}. Re-run tests with VCR_RECORD=1, then commit the result. Input messages:\n${W(n,null,2)}`);let i=await t();return Zn.isCI&&!h(process.env.VCR_RECORD)?i:(await Wc(mc(r),{recursive:!0}),await el(r,W({input:n,output:i.map((e,t)=>Vet(e,x3,t))},null,2),{encoding:`utf8`}),i)}function Ret(e){if(e.type===`stream_event`)return;let t=e.message.model,n=e.message.usage;yw(dw(t,n),n,t)}function zet(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:b3(e.input,t)};case`image`:return e;default:return}}))}function b3(e,t){return om(e,(n,r)=>Array.isArray(n)?n.map(e=>b3(e,t)):Fte(n)?b3(n,t):t(n,r,e))}function Bet(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:b3(e.input,t)};default:return e}}).filter(Boolean)},type:`assistant`}}function Vet(e,t,n,r){return e.type===`assistant`?Bet(e,t,n,r):e}function x3(e){if(typeof e!=`string`)return e;let t=U(),n=m(),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=W(t).slice(1,-1),o=W(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 Het(e){return typeof e==`string`?e.replaceAll(`[NUM]`,`1`).replaceAll(`[DURATION]`,`100`).replaceAll(`[CONFIG_HOME]`,m()).replaceAll(`[CWD]`,U()):e}async function*Uet(e,t){if(!y3())return yield*t();let n=[],r=await Let(e,async()=>{for await(let e of t())n.push(e);return n});if(r.length>0){yield*r;return}yield*n}async function Wet(e,t,n){let r=U().replace(/[^a-zA-Z0-9]/g,`-`);return(await Iet(x3(W({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 Get=n((()=>{kte(),sm(),bw(),_w(),fi(),an(),g(),vi(),v3(),zi()}));function Ket(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 qet(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=>!UO(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 Jet(e){return e?S3([{role:`user`,content:e}],[]):0}async function S3(e,t){return Wet(e,t,async()=>{try{let n=uo();if(n===`gemini`)return $et(e,t);let r=Ro(),i=Bg(r),a=Ket(e);if(n===`bedrock`)return ttt({model:vo(r),messages:e,tools:t,betas:i,containsThinking:a});let o=await Vo({maxRetries:1,model:r,source:`count_tokens`}),s=uo()===`vertex`?i.filter(e=>ao.has(e)):i,c=await o.beta.messages.countTokens({model:vo(r),messages:e.length>0?e:[{role:`user`,content:`foo`}],tools:t,...s.length>0&&{betas:s},...a&&{thinking:{type:`enabled`,budget_tokens:E3}}});return typeof c.input_tokens==`number`?c.input_tokens:null}catch(e){return Y(e),null}})}function C3(e,t=4){return Math.round(e.length/t)}function Yet(e){switch(e){case`json`:case`jsonl`:case`jsonc`:return 2;default:return 4}}function Xet(e,t){return C3(e,Yet(t))}async function Zet(e,t){if(uo()===`gemini`)return $et(e,t);let n=Ket(e),r=h(process.env.WORKMATE_USE_VERTEX)&&_(Bo())===`global`,i=h(process.env.WORKMATE_USE_BEDROCK)&&n,a=h(process.env.WORKMATE_USE_VERTEX)&&n,o=r||i||a?Fo():Bo(),s=await Vo({maxRetries:1,model:o,source:`count_tokens`}),c=qet(e),l=c.length>0?c:[{role:`user`,content:`count`}],u=Bg(o),d=uo()===`vertex`?u.filter(e=>ao.has(e)):u,f=(await s.beta.messages.create({model:vo(o),max_tokens:n?D3:1,messages:l,tools:t.length>0?t:void 0,...d.length>0&&{betas:d},metadata:X7(),...J7(),...n&&{thinking:{type:`enabled`,budget_tokens:E3}}})).usage,p=f.input_tokens,m=f.cache_creation_input_tokens||0,g=f.cache_read_input_tokens||0;return p+m+g}function w3(e){let t=0;for(let n of e)t+=Qet(n);return t}function Qet(e){if((e.type===`assistant`||e.type===`user`)&&e.message?.content)return T3(e.message?.content);if(e.type===`attachment`&&e.attachment){let t=vet(e.attachment),n=0;for(let e of t)n+=T3(e.message.content);return n}return 0}function T3(e){if(!e)return 0;if(typeof e==`string`)return C3(e);let t=0;for(let n of e)t+=ett(n);return t}function $et(e,t){let n=0;for(let t of e)n+=T3(t.content);return t.length>0&&(n+=C3(W(t))),n}function ett(e){return typeof e==`string`?C3(e):e.type===`text`?C3(e.text):e.type===`image`||e.type===`document`?2e3:e.type===`tool_result`?T3(e.content):e.type===`tool_use`?C3(e.name+W(e.input??{})):e.type===`thinking`?C3(e.thinking):e.type===`redacted_thinking`?C3(e.data):C3(W(e))}async function ttt({model:e,messages:t,tools:n,betas:r,containsThinking:i}){try{let a=await Cie(),o=mie(e)?e:await lo(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?D3:1,...n.length>0&&{tools:n},...r.length>0&&{anthropic_beta:r},...i&&{thinking:{type:`enabled`,budget_tokens:E3}}},{CountTokensCommand:c}=await import(`./dist-es-CzTYn7xo.js`),l={modelId:o,input:{invokeModel:{body:new TextEncoder().encode(W(s))}}};return(await a.send(new c(l))).inputTokens??null}catch(e){return Y(e),null}}var E3,D3,O3=n((()=>{ho(),mo(),Hg(),g(),Ta(),v3(),Lo(),To(),zi(),QO(),r9(),Co(),Get(),E3=1024,D3=2048}));function ntt(e){rtt=e}var rtt,itt=n((()=>{}));function att(e,t){switch(e){case`policySettings`:return X(or(),`.workmate`,t);case`userSettings`:return X(m(),t);case`projectSettings`:return`.workmate/${t}`;case`plugin`:return`plugin`;default:return``}}function ott(e){return C3([e.name,e.description,e.whenToUse].filter(Boolean).join(` `))}async function stt(e){try{return await Jc(e)}catch{return null}}function ctt(e,t){if(!e.hooks)return;let n=Kt().safeParse(e.hooks);if(!n.success){K(`Invalid hooks in skill '${t}': ${n.error.message}`);return}return n.data}function ltt(e){if(!e.paths)return;let t=ju(e.paths).map(e=>e.endsWith(`/**`)?e.slice(0,-3):e).filter(e=>e.length>0);if(!(t.length===0||t.every(e=>e===`**`)))return t}function k3(e,t,n,r=`Skill`){let i=Pu(e.description,n),a=i??B9(t,r),o=e[`user-invocable`]===void 0||Fu(e[`user-invocable`]),s=e.model===`inherit`?void 0:e.model?Ho(e.model):void 0;return{displayName:e.name==null?void 0:String(e.name),description:a,hasUserSpecifiedDescription:i!==null,allowedTools:H9(e[`allowed-tools`]),argumentHint:e[`argument-hint`]==null?void 0:String(e[`argument-hint`]),argumentNames:V8e(e.arguments),whenToUse:e.when_to_use,version:e.version,model:s,disableModelInvocation:Fu(e[`disable-model-invocation`]),userInvocable:o,hooks:ctt(e,n),executionContext:e.context===`fork`?`fork`:void 0,agent:e.agent,shell:Iu(e.shell,n)}}function A3({skillName:e,displayName:t,description:n,hasUserSpecifiedDescription:r,markdownContent:i,allowedTools:a,argumentHint:o,argumentNames:s,whenToUse:c,version:l,model:u,disableModelInvocation:d,userInvocable:f,source:p,baseDir:m,loadedFrom:h,hooks:g,executionContext:_,agent:v,paths:y,shell:b}){return{type:`prompt`,name:e,description:n,hasUserSpecifiedDescription:r,allowedTools:a,argumentHint:o,argNames:s.length>0?s:void 0,whenToUse:c,version:l,model:u,disableModelInvocation:d,userInvocable:f,context:_,agent:v,paths:y,contentLength:i.length,isHidden:!f,progressMessage:`running`,userFacingName(){return t||e},source:p,loadedFrom:h,hooks:g,skillRoot:m,async getPromptForCommand(t,n){let r=m?`Base directory for this skill: ${m}\n\n${i}`:i;if(r=S2(r,t,!0,s),m){let e=process.platform===`win32`?m.replace(/\\/g,`/`):m;r=r.replace(/\$\{CLAUDE_SKILL_DIR\}/g,e)}return r=r.replace(/\$\{CLAUDE_SESSION_ID\}/g,Kr()),h!==`mcp`&&(r=await U8e(r,{...n,getAppState(){let e=n.getAppState();return{...e,toolPermissionContext:{...e.toolPermissionContext,alwaysAllowRules:{...e.toolPermissionContext.alwaysAllowRules,command:a}}}}},`/${e}`,b)),[{type:`text`,text:r}]}}}async function j3(e,t){let n=J(),r;try{r=await n.readdir(e)}catch(e){return Bi(e)||Y(e),[]}return(await Promise.all(r.map(async r=>{try{if(!r.isDirectory()&&!r.isSymbolicLink())return null;let i=X(e,r.name),a=X(i,`SKILL.md`),o;try{o=await n.readFile(a,{encoding:`utf-8`})}catch(e){return Ci(e)||K(`[skills] failed to read ${a}: ${e}`,{level:`warn`}),null}let{frontmatter:s,content:c}=Au(o,a),l=r.name,u=k3(s,c,l),d=ltt(s);return{skill:A3({...u,skillName:l,markdownContent:c,source:t,baseDir:i,loadedFrom:`skills`,paths:d}),filePath:a}}catch(e){return Y(e),null}}))).filter(e=>e!==null)}function M3(e){return/^skill\.md$/i.test(pc(e))}function utt(e){let t=new Map;for(let n of e){let e=mc(n.filePath),r=t.get(e)??[];r.push(n),t.set(e,r)}let n=[];for(let[e,r]of t){let t=r.filter(e=>M3(e.filePath));if(t.length>0){let r=t[0];t.length>1&&K(`Multiple skill files found in ${e}, using ${pc(r.filePath)}`),n.push(r)}else n.push(...r)}return n}function dtt(e,t){let n=t.endsWith(Sc)?t.slice(0,-1):t;if(e===n)return``;let r=e.slice(n.length+1);return r?r.split(Sc).join(`:`):``}function ftt(e,t){let n=mc(e),r=mc(n),i=pc(n),a=dtt(r,t);return a?`${a}:${i}`:i}function ptt(e,t){let n=pc(e),r=mc(e),i=n.replace(/\.md$/,``),a=dtt(r,t);return a?`${a}:${i}`:i}function mtt(e){return M3(e.filePath)?ftt(e.filePath,e.baseDir):ptt(e.filePath,e.baseDir)}async function htt(e){try{let t=utt(await G9(`commands`,e)),n=[];for(let{baseDir:e,filePath:r,frontmatter:i,content:a,source:o}of t)try{let t=M3(r)?mc(r):void 0,s=mtt({baseDir:e,filePath:r,frontmatter:i,content:a,source:o}),c=k3(i,a,s,`Custom command`);n.push({skill:A3({...c,skillName:s,displayName:void 0,markdownContent:a,source:o,baseDir:t,loadedFrom:`commands_DEPRECATED`,paths:void 0}),filePath:r})}catch(e){Y(e)}return n}catch(e){return Y(e),[]}}function gtt(){I3.cache?.clear?.(),G9.cache?.clear?.(),z3.clear(),B3.clear()}function _tt(e){return V3.subscribe(()=>{try{e()}catch(e){Y(e)}})}async function N3(e,t){let n=J(),r=t.endsWith(Sc)?t.slice(0,-1):t,i=[];for(let t of e){let e=mc(t);for(;e.startsWith(r+Sc);){let t=X(e,`.workmate`,`skills`);if(!L3.has(t)){L3.add(t);try{if(await n.stat(t),await Bee(e,r)){K(`[skills] Skipped gitignored skills dir: ${t}`);continue}i.push(t)}catch{}}let a=mc(e);if(a===e)break;e=a}}return i.sort((e,t)=>t.split(Sc).length-e.split(Sc).length)}async function P3(e){if(!Dn(`projectSettings`)||ib(`skills`)){K(`[skills] Dynamic skill discovery skipped: projectSettings disabled or plugin-only policy`);return}if(e.length===0)return;let t=new Set(R3.keys()),n=await Promise.all(e.map(e=>j3(e,`projectSettings`)));for(let e=n.length-1;e>=0;e--)for(let{skill:t}of n[e]??[])t.type===`prompt`&&R3.set(t.name,t);let r=n.flat().length;if(r>0){let n=[...R3.keys()].filter(e=>!t.has(e));K(`[skills] Dynamically discovered ${r} skills from ${e.length} directories`),n.length>0&&(t.size,R3.size,n.length,e.length)}V3.emit()}function vtt(){return Array.from(R3.values())}function F3(e,t){if(z3.size===0)return[];let n=[];for(let[r,i]of z3){if(i.type!==`prompt`||!i.paths||i.paths.length===0)continue;let a=(0,btt.default)().add(i.paths);for(let o of e){let e=gc(o)?bc(t,o):o;if(!(!e||e.startsWith(`..`)||gc(e))&&a.ignores(e)){R3.set(r,i),z3.delete(r),B3.add(r),n.push(r),K(`[skills] Activated conditional skill '${r}' (matched path: ${e})`);break}}}return n.length>0&&(R3.size-n.length,R3.size,n.length,V3.emit()),n}function ytt(){L3.clear(),R3.clear(),z3.clear(),B3.clear()}var btt,I3,L3,R3,z3,B3,V3,H3=n((()=>{btt=r(ce(),1),d(),H(),Ra(),O3(),C2(),q(),g(),vi(),Bu(),ji(),Vte(),Ta(),K9(),To(),Y8e(),Rn(),$n(),ob(),Dt(),Rr(),itt(),I3=u(async e=>{let t=X(m(),`skills`),n=X(or(),`.workmate`,`skills`),r=U9(`skills`,e);K(`Loading skills from: managed=${n}, user=${t}, project=[${r.join(`, `)}]`);let i=$r(),a=ib(`skills`),o=Dn(`projectSettings`)&&!a;if(v())return i.length===0||!o?(K(`[bare] Skipping skill dir discovery (${i.length===0?`no --add-dir`:`projectSettings disabled or skillsLocked`})`),[]):(await Promise.all(i.map(e=>j3(X(e,`.workmate`,`skills`),`projectSettings`)))).flat().map(e=>e.skill);let[s,c,l,u,d]=await Promise.all([h(process.env.WORKMATE_DISABLE_POLICY_SKILLS)?Promise.resolve([]):j3(n,`policySettings`),Dn(`userSettings`)&&!a?j3(t,`userSettings`):Promise.resolve([]),o?Promise.all(r.map(e=>j3(e,`projectSettings`))):Promise.resolve([]),o?Promise.all(i.map(e=>j3(X(e,`.workmate`,`skills`),`projectSettings`))):Promise.resolve([]),a?Promise.resolve([]):htt(e)]),f=[...s,...c,...l.flat(),...u.flat(),...d],p=await Promise.all(f.map(({skill:e,filePath:t})=>e.type===`prompt`?stt(t):Promise.resolve(null))),g=new Map,_=[];for(let e=0;e<f.length;e++){let t=f[e];if(t===void 0||t.skill.type!==`prompt`)continue;let{skill:n}=t,r=p[e];if(r==null){_.push(n);continue}let i=g.get(r);if(i!==void 0){K(`Skipping duplicate skill '${n.name}' from ${n.source} (same file already loaded from ${i})`);continue}g.set(r,n.source),_.push(n)}let y=f.length-_.length;y>0&&K(`Deduplicated ${y} skills (same file)`);let b=[],x=[];for(let e of _)e.type===`prompt`&&e.paths&&e.paths.length>0&&!B3.has(e.name)?x.push(e):b.push(e);for(let e of x)z3.set(e.name,e);return x.length>0&&K(`[skills] ${x.length} conditional skills stored (activated when matching files are touched)`),K(`Loaded ${_.length} unique skills (${b.length} unconditional, ${x.length} conditional, managed: ${s.length}, user: ${c.length}, project: ${l.flat().length}, additional: ${u.flat().length}, legacy commands: ${d.length})`),b}),L3=new Set,R3=new Map,z3=new Map,B3=new Set,V3=Nr(),ntt({createSkillCommand:A3,parseSkillFrontmatterFields:k3})}));function xtt(e){let{files:t}=e,n,r=e.getPromptForCommand;if(t&&Object.keys(t).length>0){n=Ctt(e.name);let i,a=e.getPromptForCommand;r=async(n,r)=>{i??(i=wtt(e.name,t));let o=await i,s=await a(n,r);return o===null?s:Ott(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};U3.push(i)}function Stt(){return[...U3]}function Ctt(e){return X(z8(),e)}async function wtt(e,t){let n=Ctt(e);try{return await Ttt(n,t),n}catch(t){return K(`Failed to extract bundled skill '${e}' to ${n}: ${t instanceof Error?t.message:String(t)}`),null}}async function Ttt(e,t){let n=new Map;for(let[r,i]of Object.entries(t)){let t=Dtt(e,r),a=mc(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 Wc(e,{recursive:!0,mode:448}),await Promise.all(t.map(([e,t])=>Ett(e,t)))}))}async function Ett(e,t){let n=await Gc(e,Att,384);try{await n.writeFile(t,`utf8`)}finally{await n.close()}}function Dtt(e,t){let n=_c(t);if(gc(n)||n.split(Sc).includes(`..`)||n.split(`/`).includes(`..`))throw Error(`bundled skill file path escapes skill dir: ${t}`);return X(e,n)}function Ott(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 U3,ktt,Att,jtt=n((()=>{q(),B8(),U3=[],ktt=kc.O_NOFOLLOW??0,Att=process.platform===`win32`?`wx`:kc.O_WRONLY|kc.O_CREAT|kc.O_EXCL|ktt}));function Mtt(e){return Ltt.some(t=>t.test(e))}function Ntt(e){return e.length<=8?`***`:`${e.slice(0,4)}…${e.slice(-2)} (${e.length} chars)`}function Ptt(e){return Rtt.some(t=>e.startsWith(t))}function Ftt(){let e=Object.entries(process.env).filter(([e])=>Ptt(e)).map(([e,t])=>[e,Mtt(e)&&t?Ntt(t):t??``]).sort(([e],[t])=>e.localeCompare(t));return e.length===0?` (no recognized env vars set)`:e.map(([e,t])=>` ${e}=${t}`).join(`
|
|
3056
3056
|
`)}function Itt(){return[` platform: ${process.platform} ${process.arch}`,` cwd: ${process.cwd()}`,` pid: ${process.pid}`,` bun: ${typeof Bun<`u`?Bun.version:`n/a`}`,` node: ${process.version}`,` session: ${Kr()}`].join(`
|
|
3057
3057
|
`)}var Ltt,Rtt,ztt,Btt=n((()=>{H(),Ltt=[/token/i,/secret/i,/password/i,/api[_-]?key/i,/auth/i,/private/i,/credential/i,/jwt/i,/session[_-]?id$/i],Rtt=[`CLAUDE_`,`WORKMATE_`,`FEATURE_`,`ANTHROPIC_`,`BUN_`,`NODE_`,`GEMINI_`,`OPENAI_`,`GROK_`,`CCR_`,`BUGHUNTER_`],ztt={type:`local`,name:`env`,description:`显示当前环境、运行时与 feature flag`,isHidden:!1,isEnabled:()=>!0,supportsNonInteractive:!0,load:async()=>({call:async()=>({type:`text`,value:[`## Runtime`,Itt(),``,`## Environment Variables (allowlisted prefixes)`,Ftt(),``,"_Secrets matching token/password/auth/api_key are masked. Set additional `CLAUDE_*` / `FEATURE_*` env vars to see them here._"].join(`
|
|
3058
|
-
`)})})}})),W3,Vtt=n((()=>{W3={type:`local-jsx`,name:`exit`,aliases:[`quit`],description:`退出 REPL`,immediate:!0,load:()=>import(`./exit-
|
|
3059
|
-
`).filter(e=>e.startsWith(`worktree `)).map(e=>e.slice(9).normalize(`NFC`));i.length;let a=i.find(t=>e===t||e.startsWith(t+Sc)),o=i.filter(e=>e!==a).sort((e,t)=>e.localeCompare(t));return a?[a,...o]:o}var ent=n((()=>{Ra(),Oa(),Xn()}));async function tnt(){}var nnt=n((()=>{}));function n6(){if(process.stdout.isTTY)try{jc(1,Ue);let e=Oe.get(process.stdout);if(e?.isAltScreenActive)try{e.unmount()}catch{jc(1,lee)}e?.drainStdin(),e?.detachForShutdown(),jc(1,fe),jc(1,De),jc(1,Ge),jc(1,eee),jc(1,cee),jc(1,ree),He()&&jc(1,aee(oee)),h(process.env.WORKMATE_DISABLE_TERMINAL_TITLE)||(process.platform===`win32`?process.title=``:jc(1,Re))}catch{}}function r6(){if(!o6&&process.stdout.isTTY&&hne()&&!Mr())try{let e=Kr();if(!y6(e))return;let t=V6(e),n;n=t?`"${t.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`)}"`:e,jc(1,Be.dim(`\nResume this session with:\nclaude --resume ${n}\n`)),o6=!0}catch{}}function i6(e){c6!==void 0&&(clearTimeout(c6),c6=void 0);try{Oe.get(process.stdout)?.drainStdin()}catch{}try{process.exit(e)}catch{process.kill(process.pid,`SIGKILL`)}throw Error(`unreachable`)}function rnt(e=0,t=`other`,n){process.exitCode=e,ont=a6(e,t,n).catch(t=>{K(`Graceful shutdown failed: ${t}`,{level:`error`}),n6(),r6(),i6(e)}).catch(()=>{})}function int(){return s6}async function a6(e=0,t=`other`,n){if(s6)return;s6=!0;let{executeSessionEndHooks:r,getSessionEndHookTimeoutMs:i}=await import(`./hooks-CBGUcyCs.js`),a=i();c6=setTimeout(e=>{n6(),r6(),i6(e)},Math.max(5e3,a+3500),e),c6.unref(),process.exitCode=e,n6(),r6();let o;try{let e=(async()=>{try{await Rre()}catch{}})();await Promise.race([e,new Promise((e,t)=>{o=setTimeout(e=>e(new snt),2e3,t)})]),clearTimeout(o)}catch{clearTimeout(o)}try{await r(t,{...n,signal:AbortSignal.timeout(a),timeoutMs:a})}catch{}try{iie()}catch{}Yte();try{await Promise.race([Promise.all([fse(),tnt()]),Us(500)])}catch{}if(n?.finalMessage)try{jc(2,`${n.finalMessage}\n`)}catch{}i6(e)}var o6,ant,s6,c6,l6,ont,snt,cnt=n((()=>{Ve(),d(),re(),H(),Ze(),nnt(),pse(),Ra(),pi(),q(),lr(),g(),_8(),Ws(),aie(),o6=!1,ant=u(()=>{te(()=>{}),process.on(`SIGINT`,()=>{process.argv.includes(`-p`)||process.argv.includes(`--print`)||(Sn(`info`,`shutdown_signal`,{signal:`SIGINT`}),a6(0))}),process.on(`SIGTERM`,()=>{Sn(`info`,`shutdown_signal`,{signal:`SIGTERM`}),a6(143)}),process.platform!==`win32`&&(process.on(`SIGHUP`,()=>{Sn(`info`,`shutdown_signal`,{signal:`SIGHUP`}),a6(129)}),process.stdin.isTTY&&(l6=setInterval(()=>{one()||(!process.stdout.writable||!process.stdin.readable)&&(clearInterval(l6),Sn(`info`,`shutdown_signal`,{signal:`orphan_detected`}),a6(129))},3e4),l6.unref())),process.on(`uncaughtException`,e=>{Sn(`error`,`uncaught_exception`,{error_name:e.name,error_message:e.message.slice(0,2e3)}),e.name}),process.on(`unhandledRejection`,e=>{e instanceof Error&&e.name,Sn(`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)})})}),s6=!1,snt=class extends Error{constructor(){super(`Cleanup timeout`)}}})),lnt=i({MAX_TRANSCRIPT_READ_BYTES:()=>c8,adoptResumedSessionFile:()=>wnt,buildConversationChain:()=>M6,cacheSessionTitle:()=>Jnt,checkResumeConsistency:()=>Mnt,cleanMessagesForLogging:()=>n8,clearAgentTranscriptSubdir:()=>g6,clearGoalEntry:()=>B6,clearSessionMessagesCache:()=>Y6,clearSessionMetadata:()=>Gnt,doesMessageExistInSession:()=>rrt,enrichLogs:()=>o8,extractAgentIdsFromMessages:()=>lrt,fetchLogs:()=>L6,findUnresolvedToolUse:()=>mrt,flushSessionStorage:()=>Dnt,getAgentTranscript:()=>$6,getAgentTranscriptPath:()=>_6,getCurrentSessionTag:()=>Unt,getCurrentSessionTitle:()=>V6,getFirstMeaningfulUserMessageTextContent:()=>k6,getLastSessionLog:()=>irt,getLogByIndex:()=>prt,getNodeEnv:()=>b6,getProjectDir:()=>u8,getProjectsDir:()=>f6,getSessionFilesLite:()=>a8,getSessionFilesWithMtime:()=>r8,getSessionIdFromLog:()=>W6,getSessionMessages:()=>q6,getSessionMessagesCache:()=>J6,getTranscriptPath:()=>p6,getTranscriptPathForSession:()=>m6,getUserType:()=>x6,hydrateFromCCRv2InternalEvents:()=>Ont,isChainParticipant:()=>d6,isCustomTitleEnabled:()=>hnt,isEphemeralToolProgress:()=>dnt,isLiteLog:()=>G6,isLoggableMessage:()=>t8,isTranscriptMessage:()=>u6,linkSessionToPR:()=>Hnt,loadAllLogsFromSessionFile:()=>i8,loadAllProjectsMessageLogs:()=>art,loadAllProjectsMessageLogsProgressive:()=>Z6,loadAllSubagentTranscriptsFromDisk:()=>urt,loadFullLog:()=>Xnt,loadMessageLogs:()=>X6,loadSameRepoMessageLogs:()=>srt,loadSameRepoMessageLogsProgressive:()=>Q6,loadSubagentTranscripts:()=>e8,loadTranscriptFile:()=>K6,loadTranscriptFromFile:()=>Nnt,reAppendSessionMetadata:()=>H6,readAgentMetadata:()=>pnt,recordAttributionSnapshot:()=>Snt,recordContentReplacement:()=>D6,recordContextCollapseCommit:()=>Tnt,recordContextCollapseSnapshot:()=>Ent,recordFileHistorySnapshot:()=>E6,recordQueueOperation:()=>T6,recordSidechainTranscript:()=>w6,recordTranscript:()=>C6,removeExtraFields:()=>A6,removeTranscriptMessage:()=>xnt,resetProjectFlushStateForTesting:()=>gnt,resetProjectForTesting:()=>_nt,resetSessionFilePointer:()=>Cnt,restoreSessionMetadata:()=>Wnt,saveAgentName:()=>Knt,saveAgentSetting:()=>qnt,saveAiGeneratedTitle:()=>znt,saveCustomTitle:()=>Rnt,saveGoal:()=>z6,saveMode:()=>Ynt,saveTag:()=>Vnt,saveTaskSummary:()=>Bnt,saveWorktreeState:()=>U6,searchSessionsByCustomTitle:()=>Znt,sessionIdExists:()=>y6,setAgentTranscriptSubdir:()=>h6,setInternalEventReader:()=>bnt,setInternalEventWriter:()=>ynt,setSessionFileForTesting:()=>vnt,writeAgentMetadata:()=>v6});function u6(e){return e.type===`user`||e.type===`assistant`||e.type===`attachment`||e.type===`system`}function d6(e){return e.type!==`progress`}function unt(e){return typeof e==`object`&&!!e&&`type`in e&&e.type===`progress`&&`uuid`in e&&typeof e.uuid==`string`}function dnt(e){return typeof e==`string`&&Crt.has(e)}function f6(){return X(m(),`projects`)}function p6(){return X(ni()??u8(ri()),`${Kr()}.jsonl`)}function m6(e){return e===Kr()?p6():X(u8(ri()),`${e}.jsonl`)}function h6(e,t){l8.set(e,t)}function g6(e){l8.delete(e)}function _6(e){let t=ni()??u8(ri()),n=Kr(),r=l8.get(e);return X(r?X(t,n,`subagents`,r):X(t,n,`subagents`),`agent-${e}.jsonl`)}function fnt(e){return _6(e).replace(/\.jsonl$/,`.meta.json`)}async function v6(e,t){let n=fnt(e);await Wc(mc(n),{recursive:!0}),await el(n,JSON.stringify(t))}async function pnt(e){let t=fnt(e);try{let e=await Kc(t,`utf-8`);return JSON.parse(e)}catch(e){if(Bi(e))return null;throw e}}function y6(e){let t=X(u8(ri()),`${e}.jsonl`),n=J();try{return n.statSync(t),!0}catch{return!1}}function b6(){return`production`}function x6(){return`external`}function mnt(){return process.env.WORKMATE_ENTRYPOINT}function hnt(){return!0}function S6(){return d8||(d8=new Trt,f8||(Ai(async()=>{await d8?.flush();try{d8?.reAppendSessionMetadata()}catch{}}),f8=!0)),d8}function gnt(){d8?._resetFlushState()}function _nt(){d8=null}function vnt(e){S6().sessionFile=e}function ynt(e){S6().setInternalEventWriter(e)}function bnt(e,t){S6().setInternalEventReader(e),S6().setInternalSubagentEventReader(t)}async function C6(e,t,n,r){let i=n8(e,r),a=await q6(Kr()),o=[],s=n,c=!1;for(let e of i)a.has(e.uuid)?!c&&d6(e)&&(s=e.uuid):(o.push(e),c=!0);return o.length>0&&await S6().insertMessageChain(o,!1,void 0,s,t),o.findLast(d6)?.uuid??s??null}async function w6(e,t,n){await S6().insertMessageChain(n8(e),!0,t,n)}async function T6(e){await S6().insertQueueOperation(e)}async function xnt(e){await S6().removeMessageByUuid(e)}async function E6(e,t,n){await S6().insertFileHistorySnapshot(e,t,n)}async function Snt(e){await S6().insertAttributionSnapshot(e)}async function D6(e,t){await S6().insertContentReplacement(e,t)}async function Cnt(){S6().resetSessionFile()}function wnt(){let e=S6();e.sessionFile=p6(),e.reAppendSessionMetadata(!0)}async function Tnt(e){let t=Kr();t&&await S6().appendEntry({type:`marble-origami-commit`,sessionId:t,...e})}async function Ent(e){let t=Kr();t&&await S6().appendEntry({type:`marble-origami-snapshot`,sessionId:t,...e})}async function Dnt(){await S6().flush()}async function Ont(e){let t=Date.now();ane(Nj(e));let n=S6(),r=n.getInternalEventReader();if(!r)return K(`No internal event reader registered for CCR v2 resume`),!1;try{let i=await r();if(!i)return K(`Failed to read internal events for resume`),Sn(`error`,`hydrate_ccr_v2_read_fail`),!1;await Wc(u8(ri()),{recursive:!0,mode:448}),await el(m6(e),i.map(e=>`${W(e.payload)}\n`).join(``),{encoding:`utf8`,mode:384}),K(`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=_6(Pj(e));await Wc(mc(t),{recursive:!0,mode:448}),await el(t,n.map(e=>`${W(e)}\n`).join(``),{encoding:`utf8`,mode:384})}K(`Hydrated ${e.length} subagent entries across ${t.size} agents`)}}return Sn(`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 K(`Error hydrating session from CCR v2: ${e}`),Sn(`error`,`hydrate_ccr_v2_fail`),!1}}function O6(e){let t=k6(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 k6(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=$_(e,ha);if(t){let n=t.replace(/^\//,``);if(Z3().has(n))continue;{let n=$_(e,`command-args`)?.trim();if(!n)continue;return`${t} ${n}`}}let n=$_(e,`bash-input`);if(n)return`! ${n}`;if(!s8.test(e))return e}}}function A6(e){return e.map(e=>{let{isSidechain:t,parentUuid:n,...r}=e;return r})}function knt(e){let t,n=-1,r=-1,i=new Map,a=0;for(let o of e.values()){if(i.set(o.uuid,a),ov(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){e.has(t.tailUuid),e.has(t.headUuid),e.has(t.anchorUuid),n.size,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 Ant(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++)}function j6(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 M6(e,t){let n=[],r=new Set,i=t;for(;i;){if(r.has(i.uuid)){Y(Error(`Cycle detected in parentUuid chain at message ${i.uuid}. Returning partial transcript.`));break}r.add(i.uuid),n.push(i),i=i.parentUuid?e.get(i.parentUuid):void 0}return n.reverse(),jnt(e,n,r)}function jnt(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;let u=[];for(let e of t){u.push(e);let t=c.get(e.uuid);t&&u.push(...t)}return u}function Mnt(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;t-r,e.length,e.length-1-t;return}}function N6(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 P6(e,t){return Array.from(e.values())}async function Nnt(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 K6(e);if(t.size===0)throw Error(`No messages found in JSONL file`);let f=j6(t.values(),e=>l.has(e.uuid));if(!f)throw Error(`No valid conversation chain found in JSONL file`);let p=M6(t,f),m=n.get(f.uuid),h=r.get(f.sessionId),g=i.get(f.sessionId),_=f.sessionId;return{...I6(p,0,m,h,N6(a,p),g,e,P6(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 Kc(e,{encoding:`utf-8`}),n;try{n=wi(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 I6(r,0,void 0,void 0,void 0,void 0,e)}function Pnt(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 Fnt(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 F6(e){let t=0;for(let n of e)switch(n.type){case`user`:Pnt(n)&&t++;break;case`assistant`:Fnt(n)&&t++;break;case`attachment`:case`system`:case`progress`:break}return t}function I6(e,t=0,n,r,i,a,o,s,c,l){let u=e.at(-1),d=e[0],f=O6(e),p=new Date(d.timestamp),m=new Date(u.timestamp);return{date:u.timestamp,messages:A6(e),fullPath:o,value:t,created:p,modified:m,firstPrompt:f,messageCount:F6(e),isSidechain:d.isSidechain,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 Int(e){let t=new Map,n=0;for(let r of e){let e=W6(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);t.size,Math.max(...r),Math.round(a/i),e.length}async function L6(e){let t=await a8(u8(ri()),e,ri());return await Int(t),t}function R6(e,t){let n=J(),r=`${W(t)}\n`;try{n.appendFileSync(e,r,{mode:384})}catch{n.mkdirSync(mc(e),{mode:448}),n.appendFileSync(e,r,{mode:384})}}function Lnt(e){let t;try{t=Mse(e,`r`);let n=Ase(t),r=Math.max(0,n.size-Tn),i=Buffer.allocUnsafe(Math.min(Tn,n.size-r)),a=Nse(t,i,0,i.length,r);return i.toString(`utf8`,0,a)}catch{return``}finally{if(t!==void 0)try{Ese(t)}catch{}}}async function Rnt(e,t,n,r=`user`){R6(n??m6(e),{type:`custom-title`,customTitle:t,sessionId:e}),e===Kr()&&(S6().currentSessionTitle=t)}function znt(e,t){R6(m6(e),{type:`ai-title`,aiTitle:t,sessionId:e})}function Bnt(e,t){R6(m6(e),{type:`task-summary`,summary:t,sessionId:e,timestamp:new Date().toISOString()})}async function Vnt(e,t,n){R6(n??m6(e),{type:`tag`,tag:t,sessionId:e}),e===Kr()&&(S6().currentSessionTag=t)}function z6(e,t,n){R6(n??m6(e),{type:`goal`,sessionId:e,state:t,timestamp:new Date().toISOString()}),e===Kr()&&(S6().currentSessionGoal=t)}function B6(e,t){R6(t??m6(e),{type:`goal-cleared`,sessionId:e,timestamp:new Date().toISOString()}),e===Kr()&&(S6().currentSessionGoal=void 0)}async function Hnt(e,t,n,r,i){if(R6(i??m6(e),{type:`pr-link`,sessionId:e,prNumber:t,prUrl:n,prRepository:r,timestamp:new Date().toISOString()}),e===Kr()){let e=S6();e.currentSessionPrNumber=t,e.currentSessionPrUrl=n,e.currentSessionPrRepository=r}}function Unt(e){if(e===Kr())return S6().currentSessionTag}function V6(e){if(e===Kr())return S6().currentSessionTitle}function Wnt(e){let t=S6();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),e.goal&&(t.currentSessionGoal=e.goal)}function Gnt(){let e=S6();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.currentSessionGoal=void 0,e.currentSessionWorktree=void 0,e.currentSessionPrNumber=void 0,e.currentSessionPrUrl=void 0,e.currentSessionPrRepository=void 0}function H6(){S6().reAppendSessionMetadata()}async function Knt(e,t,n,r=`user`){R6(n??m6(e),{type:`agent-name`,agentName:t,sessionId:e}),e===Kr()&&(S6().currentSessionAgentName=t,B4e(t))}function qnt(e){S6().currentSessionAgentSetting=e}function Jnt(e){S6().currentSessionTitle=e}function Ynt(e){S6().currentSessionMode=e}function U6(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=S6();n.currentSessionWorktree=t,n.sessionFile&&R6(n.sessionFile,{type:`worktree-state`,worktreeSession:t,sessionId:Kr()})}function W6(e){return e.sessionId?e.sessionId:e.messages[0]?.sessionId}function G6(e){return e.messages.length===0&&e.sessionId!==void 0}async function Xnt(e){if(!G6(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,goals:m,fileHistorySnapshots:h,attributionSnapshots:g,contentReplacements:_,contextCollapseCommits:v,contextCollapseSnapshot:y,leafUuids:b}=await K6(t);if(n.size===0){let t=e.sessionId?m.get(e.sessionId):void 0;return t?{...e,goal:t}:e}let x=j6(n.values(),e=>b.has(e.uuid)&&(e.type===`user`||e.type===`assistant`));if(!x){let t=e.sessionId?m.get(e.sessionId):void 0;return t?{...e,goal:t}:e}let S=M6(n,x),C=x.sessionId;return{...e,messages:A6(S),firstPrompt:O6(S),messageCount:F6(S),summary:x?r.get(x.uuid):e.summary,customTitle:C?i.get(C):e.customTitle,tag:C?a.get(C):e.tag,agentName:C?o.get(C):e.agentName,agentColor:C?s.get(C):e.agentColor,agentSetting:C?c.get(C):e.agentSetting,mode:C?f.get(C):e.mode,worktreeSession:C&&p.has(C)?p.get(C):e.worktreeSession,goal:C?m.get(C):e.goal,prNumber:C?l.get(C):e.prNumber,prUrl:C?u.get(C):e.prUrl,prRepository:C?d.get(C):e.prRepository,gitBranch:x?.gitBranch??e.gitBranch,isSidechain:S[0]?.isSidechain??e.isSidechain,leafUuid:x?.uuid??e.leafUuid,fileHistorySnapshots:N6(h,S),attributionSnapshots:P6(g,S),contentReplacements:C?_.get(C)??[]:e.contentReplacements,contextCollapseCommits:C?v.filter(e=>e.sessionId===C):void 0,contextCollapseSnapshot:C&&y?.sessionId===C?y:void 0}}catch{return e}}async function Znt(e,t){let{limit:n,exact:r}=t||{},i=await crt(await $tt(ri())),{logs:a}=await o8(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=W6(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 Qnt(e,t){if(e===null||e.length===0)return t;if(e.length<Ert)return Buffer.concat([e,t]);if(e[0]===123){for(let n of m8)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 $nt(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=Qnt(a,e);if(t===null){a=null;continue}let n=!1;for(let e of m8)if(t.includes(e)){n=!0;break}if(n){let e=0,n=t.indexOf(10);for(;n!==-1;){for(let r of m8){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 m8)if(a.includes(e)){i.push(a.toString(`utf-8`));break}}return i}function ert(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 trt(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?ert(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 K6(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,g=new Map,_=new Map,v=new Map,y=new Map,b=[],x;try{let S=null,C=null,w=!1;if(!h(process.env.WORKMATE_DISABLE_PRECOMPACT_SKIP)){let{size:t}=await Zc(e);if(t>5242880){let n=await vee(e,t);S=n.postBoundaryBuf,w=n.hasPreservedSegment,n.boundaryStartOffset>0&&(C=await $nt(e,n.boundaryStartOffset))}}if(S??(S=await Kc(e)),!t?.keepAllLeaves&&!w&&!h(process.env.WORKMATE_DISABLE_PRECOMPACT_SKIP)&&S.length>5242880&&(S=trt(S)),C&&C.length>0){let e=br(Buffer.from(C.join(`
|
|
3058
|
+
`)})})}})),W3,Vtt=n((()=>{W3={type:`local-jsx`,name:`exit`,aliases:[`quit`],description:`退出 REPL`,immediate:!0,load:()=>import(`./exit-QwCo2aJo.js`)}})),Htt,Utt=n((()=>{dp(),To(),Htt={type:`local-jsx`,name:`model`,get description(){return`Set the AI model for Work Mate (currently ${xo(Ro())})`},argumentHint:`[model]`,get immediate(){return up()},load:()=>import(`./model-BCIcUhrc.js`)}})),Wtt,Gtt=n((()=>{nn(),Wtt={type:`prompt`,description:`设置 Work Mate 的状态栏 UI`,contentLength:0,aliases:[],name:`statusline`,progressMessage:`setting up statusLine`,allowedTools:[Ct,`Read(~/**)`,`Edit(~/.workmate/settings.json)`],source:`builtin`,disableNonInteractive:!0,async getPromptForCommand(e){return[{type:`text`,text:`Create an ${Ct} with subagent_type "statusline-setup" and the prompt "${e.trim()||`Configure my statusLine from my shell PS1 configuration`}"`}]}}}));function G3(e){return(e.userFacingName?.()??e.name)||``}function K3(e){return e.isEnabled?.()??!0}var Ktt=n((()=>{}));async function qtt(e){try{let[t,n]=await Promise.all([I3(e).catch(e=>(Y(Ei(e)),K(`Skill directory commands failed to load, continuing without them`),[])),D2().catch(e=>(Y(Ei(e)),K(`Plugin skills failed to load, continuing without them`),[]))]),r=Stt(),i=Ehe();return K(`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 Y(Ei(e)),K(`Unexpected error in getSkills, returning empty`),{skillDirCommands:[],pluginSkills:[],bundledSkills:[],builtinPluginSkills:[]}}}async function q3(e){let t=await Q3(e),n=vtt(),r=t.filter(e=>K3(e));if(n.length===0)return r;let i=new Set(r.map(e=>e.name)),a=n.filter(e=>!i.has(e.name)&&K3(e));if(a.length===0)return r;let o=new Set(X3().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 Jtt(){Q3.cache?.clear?.(),$3.cache?.clear?.(),e6.cache?.clear?.(),Soe()}function Ytt(){Jtt(),e5e(),n5e(),gtt()}function Xtt(e){return[]}function J3(e,t){return t.find(t=>t.name===e||G3(t)===e||t.aliases?.includes(e))}function Y3(e,t){return J3(e,t)!==void 0}function Ztt(e,t){let n=J3(e,t);if(!n)throw ReferenceError(`Command ${e} not found. Available commands: ${t.map(e=>{let t=G3(e);return e.aliases?`${t} (aliases: ${e.aliases.join(`, `)})`:t}).sort((e,t)=>e.localeCompare(t)).join(`, `)}`);return n}function Qtt(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} (${ote(e.source)})`}var X3,Z3,Q3,$3,e6,t6=n((()=>{Pue(),Fue(),Iue(),Lue(),Rue(),zue(),Bue(),Vue(),Hue(),Uue(),Wue(),Gue(),nde(),rde(),ide(),hoe(),ade(),ode(),sde(),cde(),lde(),ude(),dde(),fde(),pde(),mde(),hde(),_de(),Ks(),vde(),yde(),bde(),xde(),Mde(),Nde(),Pde(),Fde(),Ide(),Lde(),Rde(),zde(),Bde(),Mpe(),zme(),qme(),Ta(),vi(),q(),H3(),jtt(),pv(),O2(),d(),Btt(),Vtt(),Utt(),Gtt(),Rn(),Ktt(),X3=u(()=>[Pd,Rme,gf,Kme,hp,mp,Fd,Ld,Rd,zd,Id,Bd,Vd,Hd,Ud,W3,fp,Kd,of,cf,lf,Wd,Gd,Htt,gp,_p,df,ff,pf,mf,Wtt,vf,vp,_f,yf,Uf,Vf,Wf,Gf,pp,Eg,hf,Hf,Tp,bp,sf,ztt,goe,moe,uf]),Z3=u(()=>new Set(X3().flatMap(e=>[e.name,...e.aliases??[]]))),Q3=u(async e=>{let[{skillDirCommands:t,pluginSkills:n,bundledSkills:r,builtinPluginSkills:i},a]=await Promise.all([qtt(e),E2()]);return[...r,...i,...t,...a,...n,...X3()]}),$3=u(async e=>(await q3(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))),e6=u(async e=>{try{return(await q3(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 Y(Ei(e)),K(`Returning empty skills array due to load failure`),[]}})}));async function $tt(e){let t=Date.now(),{stdout:n,code:r}=await ka(wt(),[`worktree`,`list`,`--porcelain`],{cwd:e,preserveOutputOnError:!1});if(Date.now()-t,r!==0)return[];let i=n.split(`
|
|
3059
|
+
`).filter(e=>e.startsWith(`worktree `)).map(e=>e.slice(9).normalize(`NFC`));i.length;let a=i.find(t=>e===t||e.startsWith(t+Sc)),o=i.filter(e=>e!==a).sort((e,t)=>e.localeCompare(t));return a?[a,...o]:o}var ent=n((()=>{Ra(),Oa(),Xn()}));async function tnt(){}var nnt=n((()=>{}));function n6(){if(process.stdout.isTTY)try{jc(1,Ue);let e=Oe.get(process.stdout);if(e?.isAltScreenActive)try{e.unmount()}catch{jc(1,lee)}e?.drainStdin(),e?.detachForShutdown(),jc(1,fe),jc(1,De),jc(1,Ge),jc(1,eee),jc(1,cee),jc(1,ree),He()&&jc(1,aee(oee)),h(process.env.WORKMATE_DISABLE_TERMINAL_TITLE)||(process.platform===`win32`?process.title=``:jc(1,Re))}catch{}}function r6(){if(!o6&&process.stdout.isTTY&&hne()&&!Mr())try{let e=Kr();if(!y6(e))return;let t=V6(e),n;n=t?`"${t.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`)}"`:e,jc(1,Be.dim(`\nResume this session with:\nclaude --resume ${n}\n`)),o6=!0}catch{}}function i6(e){c6!==void 0&&(clearTimeout(c6),c6=void 0);try{Oe.get(process.stdout)?.drainStdin()}catch{}try{process.exit(e)}catch{process.kill(process.pid,`SIGKILL`)}throw Error(`unreachable`)}function rnt(e=0,t=`other`,n){process.exitCode=e,ont=a6(e,t,n).catch(t=>{K(`Graceful shutdown failed: ${t}`,{level:`error`}),n6(),r6(),i6(e)}).catch(()=>{})}function int(){return s6}async function a6(e=0,t=`other`,n){if(s6)return;s6=!0;let{executeSessionEndHooks:r,getSessionEndHookTimeoutMs:i}=await import(`./hooks-ERYtmuNW.js`),a=i();c6=setTimeout(e=>{n6(),r6(),i6(e)},Math.max(5e3,a+3500),e),c6.unref(),process.exitCode=e,n6(),r6();let o;try{let e=(async()=>{try{await Rre()}catch{}})();await Promise.race([e,new Promise((e,t)=>{o=setTimeout(e=>e(new snt),2e3,t)})]),clearTimeout(o)}catch{clearTimeout(o)}try{await r(t,{...n,signal:AbortSignal.timeout(a),timeoutMs:a})}catch{}try{iie()}catch{}Yte();try{await Promise.race([Promise.all([fse(),tnt()]),Us(500)])}catch{}if(n?.finalMessage)try{jc(2,`${n.finalMessage}\n`)}catch{}i6(e)}var o6,ant,s6,c6,l6,ont,snt,cnt=n((()=>{Ve(),d(),re(),H(),Ze(),nnt(),pse(),Ra(),pi(),q(),lr(),g(),_8(),Ws(),aie(),o6=!1,ant=u(()=>{te(()=>{}),process.on(`SIGINT`,()=>{process.argv.includes(`-p`)||process.argv.includes(`--print`)||(Sn(`info`,`shutdown_signal`,{signal:`SIGINT`}),a6(0))}),process.on(`SIGTERM`,()=>{Sn(`info`,`shutdown_signal`,{signal:`SIGTERM`}),a6(143)}),process.platform!==`win32`&&(process.on(`SIGHUP`,()=>{Sn(`info`,`shutdown_signal`,{signal:`SIGHUP`}),a6(129)}),process.stdin.isTTY&&(l6=setInterval(()=>{one()||(!process.stdout.writable||!process.stdin.readable)&&(clearInterval(l6),Sn(`info`,`shutdown_signal`,{signal:`orphan_detected`}),a6(129))},3e4),l6.unref())),process.on(`uncaughtException`,e=>{Sn(`error`,`uncaught_exception`,{error_name:e.name,error_message:e.message.slice(0,2e3)}),e.name}),process.on(`unhandledRejection`,e=>{e instanceof Error&&e.name,Sn(`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)})})}),s6=!1,snt=class extends Error{constructor(){super(`Cleanup timeout`)}}})),lnt=i({MAX_TRANSCRIPT_READ_BYTES:()=>c8,adoptResumedSessionFile:()=>wnt,buildConversationChain:()=>M6,cacheSessionTitle:()=>Jnt,checkResumeConsistency:()=>Mnt,cleanMessagesForLogging:()=>n8,clearAgentTranscriptSubdir:()=>g6,clearGoalEntry:()=>B6,clearSessionMessagesCache:()=>Y6,clearSessionMetadata:()=>Gnt,doesMessageExistInSession:()=>rrt,enrichLogs:()=>o8,extractAgentIdsFromMessages:()=>lrt,fetchLogs:()=>L6,findUnresolvedToolUse:()=>mrt,flushSessionStorage:()=>Dnt,getAgentTranscript:()=>$6,getAgentTranscriptPath:()=>_6,getCurrentSessionTag:()=>Unt,getCurrentSessionTitle:()=>V6,getFirstMeaningfulUserMessageTextContent:()=>k6,getLastSessionLog:()=>irt,getLogByIndex:()=>prt,getNodeEnv:()=>b6,getProjectDir:()=>u8,getProjectsDir:()=>f6,getSessionFilesLite:()=>a8,getSessionFilesWithMtime:()=>r8,getSessionIdFromLog:()=>W6,getSessionMessages:()=>q6,getSessionMessagesCache:()=>J6,getTranscriptPath:()=>p6,getTranscriptPathForSession:()=>m6,getUserType:()=>x6,hydrateFromCCRv2InternalEvents:()=>Ont,isChainParticipant:()=>d6,isCustomTitleEnabled:()=>hnt,isEphemeralToolProgress:()=>dnt,isLiteLog:()=>G6,isLoggableMessage:()=>t8,isTranscriptMessage:()=>u6,linkSessionToPR:()=>Hnt,loadAllLogsFromSessionFile:()=>i8,loadAllProjectsMessageLogs:()=>art,loadAllProjectsMessageLogsProgressive:()=>Z6,loadAllSubagentTranscriptsFromDisk:()=>urt,loadFullLog:()=>Xnt,loadMessageLogs:()=>X6,loadSameRepoMessageLogs:()=>srt,loadSameRepoMessageLogsProgressive:()=>Q6,loadSubagentTranscripts:()=>e8,loadTranscriptFile:()=>K6,loadTranscriptFromFile:()=>Nnt,reAppendSessionMetadata:()=>H6,readAgentMetadata:()=>pnt,recordAttributionSnapshot:()=>Snt,recordContentReplacement:()=>D6,recordContextCollapseCommit:()=>Tnt,recordContextCollapseSnapshot:()=>Ent,recordFileHistorySnapshot:()=>E6,recordQueueOperation:()=>T6,recordSidechainTranscript:()=>w6,recordTranscript:()=>C6,removeExtraFields:()=>A6,removeTranscriptMessage:()=>xnt,resetProjectFlushStateForTesting:()=>gnt,resetProjectForTesting:()=>_nt,resetSessionFilePointer:()=>Cnt,restoreSessionMetadata:()=>Wnt,saveAgentName:()=>Knt,saveAgentSetting:()=>qnt,saveAiGeneratedTitle:()=>znt,saveCustomTitle:()=>Rnt,saveGoal:()=>z6,saveMode:()=>Ynt,saveTag:()=>Vnt,saveTaskSummary:()=>Bnt,saveWorktreeState:()=>U6,searchSessionsByCustomTitle:()=>Znt,sessionIdExists:()=>y6,setAgentTranscriptSubdir:()=>h6,setInternalEventReader:()=>bnt,setInternalEventWriter:()=>ynt,setSessionFileForTesting:()=>vnt,writeAgentMetadata:()=>v6});function u6(e){return e.type===`user`||e.type===`assistant`||e.type===`attachment`||e.type===`system`}function d6(e){return e.type!==`progress`}function unt(e){return typeof e==`object`&&!!e&&`type`in e&&e.type===`progress`&&`uuid`in e&&typeof e.uuid==`string`}function dnt(e){return typeof e==`string`&&Crt.has(e)}function f6(){return X(m(),`projects`)}function p6(){return X(ni()??u8(ri()),`${Kr()}.jsonl`)}function m6(e){return e===Kr()?p6():X(u8(ri()),`${e}.jsonl`)}function h6(e,t){l8.set(e,t)}function g6(e){l8.delete(e)}function _6(e){let t=ni()??u8(ri()),n=Kr(),r=l8.get(e);return X(r?X(t,n,`subagents`,r):X(t,n,`subagents`),`agent-${e}.jsonl`)}function fnt(e){return _6(e).replace(/\.jsonl$/,`.meta.json`)}async function v6(e,t){let n=fnt(e);await Wc(mc(n),{recursive:!0}),await el(n,JSON.stringify(t))}async function pnt(e){let t=fnt(e);try{let e=await Kc(t,`utf-8`);return JSON.parse(e)}catch(e){if(Bi(e))return null;throw e}}function y6(e){let t=X(u8(ri()),`${e}.jsonl`),n=J();try{return n.statSync(t),!0}catch{return!1}}function b6(){return`production`}function x6(){return`external`}function mnt(){return process.env.WORKMATE_ENTRYPOINT}function hnt(){return!0}function S6(){return d8||(d8=new Trt,f8||(Ai(async()=>{await d8?.flush();try{d8?.reAppendSessionMetadata()}catch{}}),f8=!0)),d8}function gnt(){d8?._resetFlushState()}function _nt(){d8=null}function vnt(e){S6().sessionFile=e}function ynt(e){S6().setInternalEventWriter(e)}function bnt(e,t){S6().setInternalEventReader(e),S6().setInternalSubagentEventReader(t)}async function C6(e,t,n,r){let i=n8(e,r),a=await q6(Kr()),o=[],s=n,c=!1;for(let e of i)a.has(e.uuid)?!c&&d6(e)&&(s=e.uuid):(o.push(e),c=!0);return o.length>0&&await S6().insertMessageChain(o,!1,void 0,s,t),o.findLast(d6)?.uuid??s??null}async function w6(e,t,n){await S6().insertMessageChain(n8(e),!0,t,n)}async function T6(e){await S6().insertQueueOperation(e)}async function xnt(e){await S6().removeMessageByUuid(e)}async function E6(e,t,n){await S6().insertFileHistorySnapshot(e,t,n)}async function Snt(e){await S6().insertAttributionSnapshot(e)}async function D6(e,t){await S6().insertContentReplacement(e,t)}async function Cnt(){S6().resetSessionFile()}function wnt(){let e=S6();e.sessionFile=p6(),e.reAppendSessionMetadata(!0)}async function Tnt(e){let t=Kr();t&&await S6().appendEntry({type:`marble-origami-commit`,sessionId:t,...e})}async function Ent(e){let t=Kr();t&&await S6().appendEntry({type:`marble-origami-snapshot`,sessionId:t,...e})}async function Dnt(){await S6().flush()}async function Ont(e){let t=Date.now();ane(Nj(e));let n=S6(),r=n.getInternalEventReader();if(!r)return K(`No internal event reader registered for CCR v2 resume`),!1;try{let i=await r();if(!i)return K(`Failed to read internal events for resume`),Sn(`error`,`hydrate_ccr_v2_read_fail`),!1;await Wc(u8(ri()),{recursive:!0,mode:448}),await el(m6(e),i.map(e=>`${W(e.payload)}\n`).join(``),{encoding:`utf8`,mode:384}),K(`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=_6(Pj(e));await Wc(mc(t),{recursive:!0,mode:448}),await el(t,n.map(e=>`${W(e)}\n`).join(``),{encoding:`utf8`,mode:384})}K(`Hydrated ${e.length} subagent entries across ${t.size} agents`)}}return Sn(`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 K(`Error hydrating session from CCR v2: ${e}`),Sn(`error`,`hydrate_ccr_v2_fail`),!1}}function O6(e){let t=k6(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 k6(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=$_(e,ha);if(t){let n=t.replace(/^\//,``);if(Z3().has(n))continue;{let n=$_(e,`command-args`)?.trim();if(!n)continue;return`${t} ${n}`}}let n=$_(e,`bash-input`);if(n)return`! ${n}`;if(!s8.test(e))return e}}}function A6(e){return e.map(e=>{let{isSidechain:t,parentUuid:n,...r}=e;return r})}function knt(e){let t,n=-1,r=-1,i=new Map,a=0;for(let o of e.values()){if(i.set(o.uuid,a),ov(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){e.has(t.tailUuid),e.has(t.headUuid),e.has(t.anchorUuid),n.size,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 Ant(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++)}function j6(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 M6(e,t){let n=[],r=new Set,i=t;for(;i;){if(r.has(i.uuid)){Y(Error(`Cycle detected in parentUuid chain at message ${i.uuid}. Returning partial transcript.`));break}r.add(i.uuid),n.push(i),i=i.parentUuid?e.get(i.parentUuid):void 0}return n.reverse(),jnt(e,n,r)}function jnt(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;let u=[];for(let e of t){u.push(e);let t=c.get(e.uuid);t&&u.push(...t)}return u}function Mnt(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;t-r,e.length,e.length-1-t;return}}function N6(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 P6(e,t){return Array.from(e.values())}async function Nnt(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 K6(e);if(t.size===0)throw Error(`No messages found in JSONL file`);let f=j6(t.values(),e=>l.has(e.uuid));if(!f)throw Error(`No valid conversation chain found in JSONL file`);let p=M6(t,f),m=n.get(f.uuid),h=r.get(f.sessionId),g=i.get(f.sessionId),_=f.sessionId;return{...I6(p,0,m,h,N6(a,p),g,e,P6(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 Kc(e,{encoding:`utf-8`}),n;try{n=wi(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 I6(r,0,void 0,void 0,void 0,void 0,e)}function Pnt(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 Fnt(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 F6(e){let t=0;for(let n of e)switch(n.type){case`user`:Pnt(n)&&t++;break;case`assistant`:Fnt(n)&&t++;break;case`attachment`:case`system`:case`progress`:break}return t}function I6(e,t=0,n,r,i,a,o,s,c,l){let u=e.at(-1),d=e[0],f=O6(e),p=new Date(d.timestamp),m=new Date(u.timestamp);return{date:u.timestamp,messages:A6(e),fullPath:o,value:t,created:p,modified:m,firstPrompt:f,messageCount:F6(e),isSidechain:d.isSidechain,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 Int(e){let t=new Map,n=0;for(let r of e){let e=W6(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);t.size,Math.max(...r),Math.round(a/i),e.length}async function L6(e){let t=await a8(u8(ri()),e,ri());return await Int(t),t}function R6(e,t){let n=J(),r=`${W(t)}\n`;try{n.appendFileSync(e,r,{mode:384})}catch{n.mkdirSync(mc(e),{mode:448}),n.appendFileSync(e,r,{mode:384})}}function Lnt(e){let t;try{t=Mse(e,`r`);let n=Ase(t),r=Math.max(0,n.size-Tn),i=Buffer.allocUnsafe(Math.min(Tn,n.size-r)),a=Nse(t,i,0,i.length,r);return i.toString(`utf8`,0,a)}catch{return``}finally{if(t!==void 0)try{Ese(t)}catch{}}}async function Rnt(e,t,n,r=`user`){R6(n??m6(e),{type:`custom-title`,customTitle:t,sessionId:e}),e===Kr()&&(S6().currentSessionTitle=t)}function znt(e,t){R6(m6(e),{type:`ai-title`,aiTitle:t,sessionId:e})}function Bnt(e,t){R6(m6(e),{type:`task-summary`,summary:t,sessionId:e,timestamp:new Date().toISOString()})}async function Vnt(e,t,n){R6(n??m6(e),{type:`tag`,tag:t,sessionId:e}),e===Kr()&&(S6().currentSessionTag=t)}function z6(e,t,n){R6(n??m6(e),{type:`goal`,sessionId:e,state:t,timestamp:new Date().toISOString()}),e===Kr()&&(S6().currentSessionGoal=t)}function B6(e,t){R6(t??m6(e),{type:`goal-cleared`,sessionId:e,timestamp:new Date().toISOString()}),e===Kr()&&(S6().currentSessionGoal=void 0)}async function Hnt(e,t,n,r,i){if(R6(i??m6(e),{type:`pr-link`,sessionId:e,prNumber:t,prUrl:n,prRepository:r,timestamp:new Date().toISOString()}),e===Kr()){let e=S6();e.currentSessionPrNumber=t,e.currentSessionPrUrl=n,e.currentSessionPrRepository=r}}function Unt(e){if(e===Kr())return S6().currentSessionTag}function V6(e){if(e===Kr())return S6().currentSessionTitle}function Wnt(e){let t=S6();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),e.goal&&(t.currentSessionGoal=e.goal)}function Gnt(){let e=S6();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.currentSessionGoal=void 0,e.currentSessionWorktree=void 0,e.currentSessionPrNumber=void 0,e.currentSessionPrUrl=void 0,e.currentSessionPrRepository=void 0}function H6(){S6().reAppendSessionMetadata()}async function Knt(e,t,n,r=`user`){R6(n??m6(e),{type:`agent-name`,agentName:t,sessionId:e}),e===Kr()&&(S6().currentSessionAgentName=t,B4e(t))}function qnt(e){S6().currentSessionAgentSetting=e}function Jnt(e){S6().currentSessionTitle=e}function Ynt(e){S6().currentSessionMode=e}function U6(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=S6();n.currentSessionWorktree=t,n.sessionFile&&R6(n.sessionFile,{type:`worktree-state`,worktreeSession:t,sessionId:Kr()})}function W6(e){return e.sessionId?e.sessionId:e.messages[0]?.sessionId}function G6(e){return e.messages.length===0&&e.sessionId!==void 0}async function Xnt(e){if(!G6(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,goals:m,fileHistorySnapshots:h,attributionSnapshots:g,contentReplacements:_,contextCollapseCommits:v,contextCollapseSnapshot:y,leafUuids:b}=await K6(t);if(n.size===0){let t=e.sessionId?m.get(e.sessionId):void 0;return t?{...e,goal:t}:e}let x=j6(n.values(),e=>b.has(e.uuid)&&(e.type===`user`||e.type===`assistant`));if(!x){let t=e.sessionId?m.get(e.sessionId):void 0;return t?{...e,goal:t}:e}let S=M6(n,x),C=x.sessionId;return{...e,messages:A6(S),firstPrompt:O6(S),messageCount:F6(S),summary:x?r.get(x.uuid):e.summary,customTitle:C?i.get(C):e.customTitle,tag:C?a.get(C):e.tag,agentName:C?o.get(C):e.agentName,agentColor:C?s.get(C):e.agentColor,agentSetting:C?c.get(C):e.agentSetting,mode:C?f.get(C):e.mode,worktreeSession:C&&p.has(C)?p.get(C):e.worktreeSession,goal:C?m.get(C):e.goal,prNumber:C?l.get(C):e.prNumber,prUrl:C?u.get(C):e.prUrl,prRepository:C?d.get(C):e.prRepository,gitBranch:x?.gitBranch??e.gitBranch,isSidechain:S[0]?.isSidechain??e.isSidechain,leafUuid:x?.uuid??e.leafUuid,fileHistorySnapshots:N6(h,S),attributionSnapshots:P6(g,S),contentReplacements:C?_.get(C)??[]:e.contentReplacements,contextCollapseCommits:C?v.filter(e=>e.sessionId===C):void 0,contextCollapseSnapshot:C&&y?.sessionId===C?y:void 0}}catch{return e}}async function Znt(e,t){let{limit:n,exact:r}=t||{},i=await crt(await $tt(ri())),{logs:a}=await o8(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=W6(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 Qnt(e,t){if(e===null||e.length===0)return t;if(e.length<Ert)return Buffer.concat([e,t]);if(e[0]===123){for(let n of m8)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 $nt(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=Qnt(a,e);if(t===null){a=null;continue}let n=!1;for(let e of m8)if(t.includes(e)){n=!0;break}if(n){let e=0,n=t.indexOf(10);for(;n!==-1;){for(let r of m8){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 m8)if(a.includes(e)){i.push(a.toString(`utf-8`));break}}return i}function ert(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 trt(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?ert(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 K6(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,g=new Map,_=new Map,v=new Map,y=new Map,b=[],x;try{let S=null,C=null,w=!1;if(!h(process.env.WORKMATE_DISABLE_PRECOMPACT_SKIP)){let{size:t}=await Zc(e);if(t>5242880){let n=await vee(e,t);S=n.postBoundaryBuf,w=n.hasPreservedSegment,n.boundaryStartOffset>0&&(C=await $nt(e,n.boundaryStartOffset))}}if(S??(S=await Kc(e)),!t?.keepAllLeaves&&!w&&!h(process.env.WORKMATE_DISABLE_PRECOMPACT_SKIP)&&S.length>5242880&&(S=trt(S)),C&&C.length>0){let e=br(Buffer.from(C.join(`
|
|
3060
3060
|
`)));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===`goal`&&t.sessionId?m.set(t.sessionId,t.state):t.type===`goal-cleared`&&t.sessionId?m.delete(t.sessionId):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 T=br(S),E=new Map;for(let e of T){if(unt(e)){let t=e.parentUuid;E.set(e.uuid,t&&E.has(t)?E.get(t)??null:t);continue}if(u6(e))e.parentUuid&&E.has(e.parentUuid)&&(e.parentUuid=E.get(e.parentUuid)??null),n.set(e.uuid,e),ov(e)&&(b.length=0,x=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===`goal`&&e.sessionId)m.set(e.sessionId,e.state);else if(e.type===`goal-cleared`&&e.sessionId)m.delete(e.sessionId);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`)g.set(e.messageId,e);else if(e.type===`attribution-snapshot`)_.set(e.messageId,e);else if(e.type===`content-replacement`)if(e.agentId){let t=y.get(e.agentId)??[];y.set(e.agentId,t),t.push(...e.replacements)}else{let t=v.get(e.sessionId)??[];v.set(e.sessionId,t),t.push(...e.replacements)}else e.type===`marble-origami-commit`?b.push(e):e.type===`marble-origami-snapshot`&&(x=e)}}catch{}knt(n),Ant(n);let S=[...n.values()],C=new Set(S.map(e=>e.parentUuid).filter(e=>e!==null)),w=S.filter(e=>!C.has(e.uuid)),T=new Set;for(let e of w){let t=new Set,r=e;for(;r&&!t.has(r.uuid);){if(t.add(r.uuid),r.type===`user`||r.type===`assistant`){T.add(r.uuid);break}r=r.parentUuid?n.get(r.parentUuid):void 0}}return{messages:n,summaries:r,customTitles:i,tags:a,agentNames:o,agentColors:s,agentSettings:c,prNumbers:l,prUrls:u,prRepositories:d,modes:f,worktreeStates:p,goals:m,fileHistorySnapshots:g,attributionSnapshots:_,contentReplacements:v,agentContentReplacements:y,contextCollapseCommits:b,contextCollapseSnapshot:x,leafUuids:T}}async function nrt(e){return K6(X(ni()??u8(ri()),`${e}.jsonl`))}async function q6(e){let t=h8.get(e);if(t!==void 0)return t;if(h8.size>=p8){let e=h8.keys().next().value;e!==void 0&&h8.delete(e)}let n=(async()=>{let{messages:t}=await nrt(e);return new Set(t.keys())})();return h8.set(e,n),n}function J6(){return h8}function Y6(){h8.clear()}async function rrt(e,t){return(await q6(e)).has(t)}async function irt(e){let{messages:t,summaries:n,customTitles:r,tags:i,agentSettings:a,worktreeStates:o,fileHistorySnapshots:s,attributionSnapshots:c,contentReplacements:l,goals:u,contextCollapseCommits:d,contextCollapseSnapshot:f}=await nrt(e);if(t.size===0)return null;let p=J6();p.has(e)||p.set(e,Promise.resolve(new Set(t.keys())));let m=j6(t.values(),e=>!e.isSidechain);if(!m)return null;let h=M6(t,m),g=n.get(m.uuid),_=r.get(m.sessionId),v=i.get(m.sessionId),y=a.get(e);return{...I6(h,0,g,_,N6(s,h),v,m6(e),P6(c,h),y,l.get(e)??[]),worktreeSession:o.get(e),goal:u.get(e),contextCollapseCommits:d.filter(t=>t.sessionId===e),contextCollapseSnapshot:f?.sessionId===e?f:void 0}}async function X6(e){let t=await L6(e),{logs:n}=await o8(t,0,t.length),r=jl(n);return r.forEach((e,t)=>{e.value=t}),r}async function art(e,t){return t?.skipIndex?ort(e):(await Z6(e,t?.initialEnrichCount??g8)).logs}async function ort(e){let t=f6(),n;try{n=await qc(t,{withFileTypes:!0})}catch{return[]}let r=n.filter(e=>e.isDirectory()).map(e=>X(t,e.name)),i=(await Promise.all(r.map(t=>hrt(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=jl([...a.values()]);return o.forEach((e,t)=>{e.value=t}),o}async function Z6(e,t=g8){let n=f6(),r;try{r=await qc(n,{withFileTypes:!0})}catch{return{logs:[],allStatLogs:[],nextIndex:0}}let i=r.filter(e=>e.isDirectory()).map(e=>X(n,e.name)),a=[];for(let t of i)a.push(...await a8(t,e));let o=yrt(a),{logs:s,nextIndex:c}=await o8(o,0,t);return s.forEach((e,t)=>{e.value=t}),{logs:s,allStatLogs:o,nextIndex:c}}async function srt(e,t,n=g8){return(await Q6(e,t,n)).logs}async function Q6(e,t,n=g8){K(`/resume: loading sessions for cwd=${ri()}, worktrees=[${e.join(`, `)}]`);let r=await crt(e,t);K(`/resume: found ${r.length} session files on disk`);let{logs:i,nextIndex:a}=await o8(r,0,n);return i.forEach((e,t)=>{e.value=t}),{logs:i,allStatLogs:r,nextIndex:a}}async function crt(e,t){let n=f6();if(e.length<=1){let e=ri();return a8(u8(e),void 0,e)}let r=process.platform===`win32`,i=e.map(e=>{let t=Pn(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 qc(n,{withFileTypes:!0})}catch(e){return K(`Failed to read projects dir ${n}, falling back to current project: ${e}`),a8(u8(ri()),t,ri())}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 a8(X(n,e.name),void 0,r));break}}}return yrt(a)}async function $6(e){let t=_6(e);try{let{messages:n,agentContentReplacements:r}=await K6(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=j6(i,e=>!a.has(e.uuid));return o?{messages:M6(n,o).filter(t=>t.agentId===e).map(({isSidechain:e,parentUuid:t,...n})=>n),contentReplacements:r.get(e)??[]}:null}catch{return null}}function lrt(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 sr(t)}async function e8(e){let t=await Promise.all(e.map(async e=>{try{let t=await $6(Pj(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 urt(){let e=X(ni()??u8(ri()),Kr(),`subagents`),t;try{t=await qc(e,{withFileTypes:!0})}catch{return{}}return e8(t.filter(e=>e.isFile()&&e.name.startsWith(`agent-`)&&e.name.endsWith(`.jsonl`)).map(e=>e.name.slice(6,-6)))}function t8(e){return e.type===`progress`?!1:e.type===`attachment`&&x6()!==`ant`?!!(e.attachment.type===`hook_additional_context`&&h(process.env.WORKMATE_SAVE_HOOK_ADDITIONAL_CONTEXT)):!0}function drt(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 frt(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 n8(e,t=e){let n=e.filter(t8);return x6()===`ant`?n:frt(n,drt(t))}async function prt(e){return(await X6())[e]||null}async function mrt(e){try{let{messages:t}=await K6(p6()),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 r8(e){let t=new Map,n;try{n=await qc(e,{withFileTypes:!0})}catch{return t}let r=[];for(let t of n){if(!t.isFile()||!t.name.endsWith(`.jsonl`))continue;let n=qH(pc(t.name,`.jsonl`));n&&r.push({sessionId:n,filePath:X(e,t.name)})}return await Promise.all(r.map(async({sessionId:e,filePath:n})=>{try{let r=await Zc(n);t.set(e,{path:n,mtime:r.mtime.getTime(),ctime:r.birthtime.getTime(),size:r.size})}catch{K(`Failed to stat session file: ${n}`)}})),t}async function i8(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 K6(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 _=M6(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:A6(_),fullPath:e,value:0,created:new Date(x.timestamp),modified:new Date(g.timestamp),firstPrompt:O6(_),messageCount:F6(_),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:N6(p,_),attributionSnapshots:P6(m,_),contentReplacements:h.get(S)??[]})}return y}async function hrt(e,t){let n=await r8(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 i8(e.path);i.push(...t)}catch{K(`Failed to load session file: ${e.path}`)}return i}async function grt(e,t,n){let{head:r,tail:i}=await Vee(e,t,n);if(!r)return{firstPrompt:``,isSidechain:!1};let a=r.includes(`"isSidechain":true`)||r.includes(`"isSidechain": true`),o=_n(r,`cwd`),s=_n(r,`agentSetting`),c=_r(i,`lastPrompt`)||_rt(r)||vrt(r,`content`,200)||vrt(r,`text`,200)||``,l=_r(i,`customTitle`)??_r(r,`customTitle`)??_r(i,`aiTitle`)??_r(r,`aiTitle`),u=_r(i,`summary`),d=_r(i,`tag`),f=_r(i,`gitBranch`)??_n(r,`gitBranch`),p=_r(i,`prUrl`),m=_r(i,`prRepository`),h,g=_r(i,`prNumber`);if(g&&(h=parseInt(g,10)||void 0),!h){let e=i.lastIndexOf(`"prNumber":`);if(e>=0){let t=i.slice(e+11,e+25),n=parseInt(t.trim(),10);n>0&&(h=n)}}return{firstPrompt:c,gitBranch:f,isSidechain:a,projectPath:o,customTitle:l,summary:u,tag:d,agentSetting:s,prNumber:h,prUrl:p,prRepository:m}}function _rt(e){let t=0,n=!1,r=``;for(;t<e.length;){let i=e.indexOf(`
|
|
3061
|
-
`,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=wi(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=$_(t,ha);if(i){let e=i.replace(/^\//,``),n=$_(t,`command-args`)?.trim()||``;if(Z3().has(e)||!n){r||(r=i);continue}return n?`${i} ${n}`:i}let a=$_(t,`bash-input`);if(a)return`! ${a}`;if(s8.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 vrt(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 yrt(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 jl([...t.values()]).map((e,t)=>({...e,value:t}))}async function a8(e,t,n){let r=[...(await r8(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=jl(i);return a.forEach((e,t)=>{e.value=t}),a}async function brt(e,t){if(!e.isLite||!e.fullPath)return e;let n=await grt(e.fullPath,e.fileSize??0,t),r={...e,isLite:!1,firstPrompt:n.firstPrompt,gitBranch:n.gitBranch,isSidechain:n.isSidechain,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?(K(`Session ${e.sessionId} filtered from /resume: isSidechain=true`),null):r}async function o8(e,t,n){let r=[],i=Buffer.alloc(Tn),a=t;for(;a<e.length&&r.length<n;){let t=e[a];a++;let n=await brt(t,i);n&&r.push(n)}let o=a-t,s=o-r.length;return s>0&&K(`/resume: enriched ${o} sessions, ${s} filtered out, ${r.length} visible (${e.length-a} remaining on disk)`),{logs:r,nextIndex:a}}var xrt,Srt,s8,Crt,c8,l8,u8,d8,f8,wrt,p8,Trt,m8,Ert,h8,g8,_8=n((()=>{d(),Ra(),H(),t6(),Ea(),WX(),Fj(),Yle(),tt(),pi(),Q1(),fi(),q(),lr(),g(),vi(),za(),ji(),ent(),Xn(),cnt(),pr(),Ta(),v3(),Kn(),hr(),Ln(),zi(),XH(),b(),xrt=typeof MACRO<`u`?`0.0.
|
|
3061
|
+
`,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=wi(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=$_(t,ha);if(i){let e=i.replace(/^\//,``),n=$_(t,`command-args`)?.trim()||``;if(Z3().has(e)||!n){r||(r=i);continue}return n?`${i} ${n}`:i}let a=$_(t,`bash-input`);if(a)return`! ${a}`;if(s8.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 vrt(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 yrt(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 jl([...t.values()]).map((e,t)=>({...e,value:t}))}async function a8(e,t,n){let r=[...(await r8(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=jl(i);return a.forEach((e,t)=>{e.value=t}),a}async function brt(e,t){if(!e.isLite||!e.fullPath)return e;let n=await grt(e.fullPath,e.fileSize??0,t),r={...e,isLite:!1,firstPrompt:n.firstPrompt,gitBranch:n.gitBranch,isSidechain:n.isSidechain,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?(K(`Session ${e.sessionId} filtered from /resume: isSidechain=true`),null):r}async function o8(e,t,n){let r=[],i=Buffer.alloc(Tn),a=t;for(;a<e.length&&r.length<n;){let t=e[a];a++;let n=await brt(t,i);n&&r.push(n)}let o=a-t,s=o-r.length;return s>0&&K(`/resume: enriched ${o} sessions, ${s} filtered out, ${r.length} visible (${e.length-a} remaining on disk)`),{logs:r,nextIndex:a}}var xrt,Srt,s8,Crt,c8,l8,u8,d8,f8,wrt,p8,Trt,m8,Ert,h8,g8,_8=n((()=>{d(),Ra(),H(),t6(),Ea(),WX(),Fj(),Yle(),tt(),pi(),Q1(),fi(),q(),lr(),g(),vi(),za(),ji(),ent(),Xn(),cnt(),pr(),Ta(),v3(),Kn(),hr(),Ln(),zi(),XH(),b(),xrt=typeof MACRO<`u`?`0.0.29`:`unknown`,Srt=50*1024*1024,s8=/^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/,Crt=new Set([`bash_progress`,`powershell_progress`,`mcp_progress`,`sleep_progress`]),c8=50*1024*1024,l8=new Map,u8=u(e=>X(f6(),Pn(e))),d8=null,f8=!1,wrt=10,p8=200,Trt=class{constructor(){x(this,`currentSessionTag`,void 0),x(this,`currentSessionTitle`,void 0),x(this,`currentSessionAgentName`,void 0),x(this,`currentSessionAgentColor`,void 0),x(this,`currentSessionLastPrompt`,void 0),x(this,`currentSessionAgentSetting`,void 0),x(this,`currentSessionMode`,void 0),x(this,`currentSessionGoal`,void 0),x(this,`currentSessionWorktree`,void 0),x(this,`currentSessionPrNumber`,void 0),x(this,`currentSessionPrUrl`,void 0),x(this,`currentSessionPrRepository`,void 0),x(this,`sessionFile`,null),x(this,`pendingEntries`,[]),x(this,`internalEventWriter`,null),x(this,`internalEventReader`,null),x(this,`internalSubagentEventReader`,null),x(this,`pendingWriteCount`,0),x(this,`flushResolvers`,[]),x(this,`writeQueues`,new Map),x(this,`flushTimer`,null),x(this,`activeDrain`,null),x(this,`FLUSH_INTERVAL_MS`,100),x(this,`MAX_CHUNK_BYTES`,100*1024*1024),x(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 Bc(e,t,{mode:384})}catch{await Wc(mc(e),{recursive:!0,mode:448}),await Bc(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=`${W(t)}\n`;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=Kr();if(!t)return;let n=Lnt(this.sessionFile).split(`
|
|
3062
3062
|
`);if(!e){let e=n.findLast(e=>e.startsWith(`{"type":"custom-title"`));if(e){let t=_r(e,`customTitle`);t!==void 0&&(this.currentSessionTitle=t||void 0)}}let r=n.findLast(e=>e.startsWith(`{"type":"tag"`));if(r){let e=_r(r,`tag`);e!==void 0&&(this.currentSessionTag=e||void 0)}this.currentSessionLastPrompt&&R6(this.sessionFile,{type:`last-prompt`,lastPrompt:this.currentSessionLastPrompt,sessionId:t}),this.currentSessionTitle&&R6(this.sessionFile,{type:`custom-title`,customTitle:this.currentSessionTitle,sessionId:t}),this.currentSessionTag&&R6(this.sessionFile,{type:`tag`,tag:this.currentSessionTag,sessionId:t}),this.currentSessionAgentName&&R6(this.sessionFile,{type:`agent-name`,agentName:this.currentSessionAgentName,sessionId:t}),this.currentSessionAgentColor&&R6(this.sessionFile,{type:`agent-color`,agentColor:this.currentSessionAgentColor,sessionId:t}),this.currentSessionAgentSetting&&R6(this.sessionFile,{type:`agent-setting`,agentSetting:this.currentSessionAgentSetting,sessionId:t}),this.currentSessionMode&&R6(this.sessionFile,{type:`mode`,mode:this.currentSessionMode,sessionId:t}),this.currentSessionGoal&&R6(this.sessionFile,{type:`goal`,sessionId:t,state:this.currentSessionGoal,timestamp:new Date().toISOString()}),this.currentSessionWorktree!==void 0&&R6(this.sessionFile,{type:`worktree-state`,worktreeSession:this.currentSessionWorktree,sessionId:t}),this.currentSessionPrNumber!==void 0&&this.currentSessionPrUrl&&this.currentSessionPrRepository&&R6(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 Gc(this.sessionFile,`r+`);try{let{size:r}=await n.stat();if(t=r,r===0)return;let i=Math.min(r,Tn),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>Srt){K(`Skipping tombstone removal: session file too large (${qa(t)})`,{level:`warn`});return}let r=(await Kc(this.sessionFile,{encoding:`utf-8`})).split(`
|
|
3063
3063
|
`).filter(t=>{if(!t.trim())return!0;try{return wi(t).uuid!==e}catch{return!0}});await el(this.sessionFile,r.join(`
|
|
3064
|
-
`),{encoding:`utf8`})}catch{}})}shouldSkipPersistence(){let e=h(process.env.TEST_ENABLE_SESSION_PERSISTENCE);return b6()===`test`&&!e||xn()?.cleanupPeriodDays===0||Mr()||h(process.env.WORKMATE_SKIP_PROMPT_HISTORY)}async materializeSessionFile(){if(!this.shouldSkipPersistence()&&(this.ensureCurrentSessionFile(),this.reAppendSessionMetadata(),this.pendingEntries.length>0)){let e=this.pendingEntries;this.pendingEntries=[];for(let t of e)await this.appendEntry(t)}}async insertMessageChain(e,t=!1,n,r,i){return this.trackWrite(async()=>{let a=r??null;this.sessionFile===null&&e.some(e=>e.type===`user`||e.type===`assistant`)&&await this.materializeSessionFile();let o;try{o=await ct()}catch{o=void 0}let s=Kr(),c=Ir().get(s);for(let r of e){let e=ov(r),l=a;r.type===`user`&&`sourceToolAssistantUUID`in r&&r.sourceToolAssistantUUID&&(l=r.sourceToolAssistantUUID);let u={parentUuid:e?null:l,logicalParentUuid:e?a:void 0,isSidechain:t,agentName:i?.agentName,promptId:r.type===`user`?Jte()??void 0:void 0,agentId:n,...r,userType:x6(),entrypoint:mnt(),cwd:U(),sessionId:s,timestamp:new Date().toISOString(),version:xrt,gitBranch:o,slug:c};await this.appendEntry(u),d6(r)&&(a=r.uuid)}if(!t){let t=k6(e);if(t){let e=t.replace(/\n/g,` `).trim();this.currentSessionLastPrompt=e.length>200?`${e.slice(0,200).trim()}…`:e}}})}async insertFileHistorySnapshot(e,t,n){return this.trackWrite(async()=>{let r={type:`file-history-snapshot`,messageId:e,snapshot:t,isSnapshotUpdate:n};await this.appendEntry(r)})}async insertQueueOperation(e){return this.trackWrite(async()=>{await this.appendEntry(e)})}async insertAttributionSnapshot(e){return this.trackWrite(async()=>{await this.appendEntry(e)})}async insertContentReplacement(e,t){return this.trackWrite(async()=>{let n={type:`content-replacement`,sessionId:Kr(),agentId:t,replacements:e};await this.appendEntry(n)})}async appendEntry(e,t=Kr()){if(this.shouldSkipPersistence())return;let n=t===Kr(),r;if(n){if(this.sessionFile===null){this.pendingEntries.push(e);return}r=this.sessionFile}else{let e=await this.getExistingSessionFile(t);if(!e){Y(Error(`appendEntry: session file not found for other session ${t}`));return}r=e}if(e.type===`summary`)this.enqueueWrite(r,e);else if(e.type===`custom-title`)this.enqueueWrite(r,e);else if(e.type===`ai-title`)this.enqueueWrite(r,e);else if(e.type===`last-prompt`)this.enqueueWrite(r,e);else if(e.type===`task-summary`)this.enqueueWrite(r,e);else if(e.type===`tag`)this.enqueueWrite(r,e);else if(e.type===`agent-name`)this.enqueueWrite(r,e);else if(e.type===`agent-color`)this.enqueueWrite(r,e);else if(e.type===`agent-setting`)this.enqueueWrite(r,e);else if(e.type===`pr-link`)this.enqueueWrite(r,e);else if(e.type===`file-history-snapshot`)this.enqueueWrite(r,e);else if(e.type===`attribution-snapshot`)this.enqueueWrite(r,e);else if(e.type===`speculation-accept`)this.enqueueWrite(r,e);else if(e.type===`mode`)this.enqueueWrite(r,e);else if(e.type===`worktree-state`)this.enqueueWrite(r,e);else if(e.type===`content-replacement`){let t=e.agentId?_6(e.agentId):r;this.enqueueWrite(t,e)}else if(e.type===`marble-origami-commit`)this.enqueueWrite(r,e);else if(e.type===`marble-origami-snapshot`)this.enqueueWrite(r,e);else if(e.type===`goal`)this.enqueueWrite(r,e);else if(e.type===`goal-cleared`)this.enqueueWrite(r,e);else{let n=await q6(t);if(e.type===`queue-operation`)this.enqueueWrite(r,e);else{let i=e.isSidechain&&e.agentId!==void 0,a=i?_6(Pj(e.agentId)):r,o=!n.has(e.uuid);(i||o)&&(this.enqueueWrite(a,e),i||(n.add(e.uuid),u6(e)&&await this.persistToRemote(t,e)))}}}ensureCurrentSessionFile(){return this.sessionFile===null&&(this.sessionFile=p6()),this.sessionFile}async getExistingSessionFile(e){let t=this.existingSessionFiles.get(e);if(t)return t;let n=m6(e);try{if(await Zc(n),this.existingSessionFiles.size>=p8){let e=this.existingSessionFiles.keys().next().value;e!==void 0&&this.existingSessionFiles.delete(e)}return this.existingSessionFiles.set(e,n),n}catch(e){if(Bi(e))return null;throw e}}async persistToRemote(e,t){if(!int()&&this.internalEventWriter){try{await this.internalEventWriter(`transcript`,t,{...ov(t)&&{isCompaction:!0},...t.agentId&&{agentId:t.agentId}})}catch{K(`Failed to write transcript as internal event`)}return}}setInternalEventWriter(e){this.internalEventWriter=e,K(`CCR v2 internal event writer registered for transcript persistence`),this.FLUSH_INTERVAL_MS=wrt}setInternalEventReader(e){this.internalEventReader=e,K(`CCR v2 internal event reader registered for session resume`)}setInternalSubagentEventReader(e){this.internalSubagentEventReader=e,K(`CCR v2 subagent event reader registered for session resume`)}getInternalEventReader(){return this.internalEventReader}getInternalSubagentEventReader(){return this.internalSubagentEventReader}},m8=[`"type":"summary"`,`"type":"custom-title"`,`"type":"tag"`,`"type":"agent-name"`,`"type":"agent-color"`,`"type":"agent-setting"`,`"type":"mode"`,`"type":"worktree-state"`,`"type":"goal"`,`"type":"goal-cleared"`,`"type":"pr-link"`].map(e=>Buffer.from(e)),Ert=25,h8=new Map,g8=50}));function v8(e){return e.toLowerCase()}function Drt(e){let t=Cn(e),n=v8(t),r=[{dir:Cn(X(ri(),`.workmate`,`skills`)),prefix:`/.workmate/skills/`},{dir:Cn(X(uc(),`.workmate`,`skills`)),prefix:`~/.workmate/skills/`}];for(let{dir:e,prefix:i}of r){let r=v8(e);for(let a of[Sc,`/`])if(n.startsWith(r+a.toLowerCase())){let n=t.slice(e.length+a.length),r=n.indexOf(`/`),o=Sc===`\\`?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 Ort(e,t){if(Na()===`windows`){let n=Et(e),r=Et(t);return yc.relative(n,r)}return yc.relative(e,t)}function krt(e){return Na()===`windows`?Et(e):e}function Art(){return rr.map(e=>Un(e)).filter(e=>e!==void 0)}function jrt(e){let t=v8(Cn(e));return t.endsWith(`${Sc}.workmate${Sc}settings.json`)||t.endsWith(`${Sc}.workmate${Sc}settings.local.json`)?!0:Art().some(e=>v8(e)===t)}function Mrt(e){if(jrt(e))return!0;let t=X(ri(),`.workmate`,`commands`),n=X(ri(),`.workmate`,`agents`),r=X(ri(),`.workmate`,`skills`);return D8(e,t)||D8(e,n)||D8(e,r)}function Nrt(e){let t=X(Md(),Td()),n=_c(e);return n.startsWith(t)&&n.endsWith(`.md`)}function y8(){return X(u8(U()),Kr(),`session-memory`)+Sc}function b8(){return X(y8(),`summary.md`)}function Prt(e){return _c(e).startsWith(y8())}function Frt(e){let t=u8(U()),n=_c(e);return n===t||n.startsWith(t+Sc)}function x8(){return!1}function Irt(){return Na()===`windows`?`claude`:`claude-${process.getuid?.()??0}`}function S8(){return X(R8(),Pn(ri()))+Sc}function C8(){return X(S8(),Kr(),`scratchpad`)}async function Lrt(){if(!x8())throw Error(`Scratchpad directory feature is not enabled`);let e=J(),t=C8();return await e.mkdir(t,{mode:448}),t}function Rrt(e){if(!x8())return!1;let t=C8(),n=_c(e);return n===t||n.startsWith(t+Sc)}function zrt(e){let t=Cn(e).split(Sc),n=t.at(-1);if(e.startsWith(`\\\\`)||e.startsWith(`//`))return!0;for(let e=0;e<t.length;e++){let n=t[e],r=v8(n);for(let n of qrt)if(r===v8(n)){if(n===`.workmate`){let n=t[e+1];if(n&&v8(n)===`worktrees`)break}return!0}}if(n){let e=v8(n);if(Krt.some(t=>v8(t)===e))return!0}return!1}function Brt(e){return!!((Na()===`windows`||Na()===`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)||Av(e))}function w8(e,t){let n=t??ki(e);for(let t of n)if(Brt(t))return{safe:!1,message:`Work Mate 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(Mrt(t))return{safe:!1,message:`Work Mate requested permissions to write to ${e}, but you haven't granted it yet.`,classifierApprovable:!0};for(let t of n)if(zrt(t))return{safe:!1,message:`Work Mate requested permissions to edit ${e} which is a sensitive file.`,classifierApprovable:!0};return{safe:!0}}function T8(e){return new Set([ri(),...e.additionalWorkingDirectories.keys()])}function E8(e,t,n){let r=n??ki(e),i=Array.from(T8(t)).flatMap(e=>Jrt(e));return r.every(e=>i.some(t=>D8(e,t)))}function D8(e,t){let n=Cn(e),r=Cn(t),i=n.replace(/^\/private\/var\//,`/var/`).replace(/^\/private\/tmp(\/|$)/,`/tmp$1`),a=r.replace(/^\/private\/var\//,`/var/`).replace(/^\/private\/tmp(\/|$)/,`/tmp$1`),o=v8(i),s=Ort(v8(a),o);return s===``||!ur(s)&&!yc.isAbsolute(s)}function Vrt(e){switch(e){case`cliArg`:case`command`:case`session`:return Cn(ri());case`userSettings`:case`policySettings`:case`projectSettings`:case`localSettings`:case`flagSettings`:return vn(e)}}function O8(e){return yc.join(L8,e)}function Hrt({patternRoot:e,pattern:t,rootPath:n}){let r=yc.join(e,t);if(e===n)return O8(t);if(r.startsWith(`${n}${L8}`))return O8(r.slice(n.length));{let r=yc.relative(n,e);return!r||r.startsWith(`..${L8}`)||r===`..`?null:O8(yc.join(r,t))}}function k8(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=Hrt({patternRoot:r,pattern:e,rootPath:t});i&&n.add(i)}return Array.from(n)}function A8(e){let t=Wrt(e,`read`,`deny`),n=new Map;for(let[e,r]of t.entries())n.set(e,Array.from(r.keys()));return n}function Urt(e,t){if(e.startsWith(`${L8}${L8}`)){let t=e.slice(1);if(Na()===`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:L8}}else if(e.startsWith(`~${L8}`))return{relativePattern:e.slice(1),root:uc().normalize(`NFC`)};else if(e.startsWith(L8))return{relativePattern:e,root:Vrt(t)};let n=e;return e.startsWith(`.${L8}`)&&(n=e.slice(2)),{relativePattern:n,root:null}}function Wrt(e,t,n){let r=D9(e,(()=>{switch(t){case`edit`:return Cs;case`read`:return cs}})(),n),i=new Map;for(let[e,t]of r.entries()){let{relativePattern:n,root:r}=Urt(e,t.source),a=i.get(r);a===void 0&&(a=new Map,i.set(r,a)),a.set(n,t)}return i}function j8(e,t,n,r){let i=Cn(e);Na()===`windows`&&i.includes(`\\`)&&(i=Et(i));let a=Wrt(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,Grt.default)().add(n),a=Ort(e??U(),i??U());if(a.startsWith(`..${L8}`)||!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 M8(e,t,n){if(typeof e.getPath!=`function`)return{behavior:`ask`,message:`Work Mate requested permissions to use ${e.name}, but you haven't granted it yet.`};let r=e.getPath(t),i=ki(r);for(let e of i)if(e.startsWith(`\\\\`)||e.startsWith(`//`))return{behavior:`ask`,message:`Work Mate 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(Brt(e))return{behavior:`ask`,message:`Work Mate 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=j8(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=j8(e,n,`read`,`ask`);if(t)return{behavior:`ask`,message:`Work Mate requested permissions to read from ${r}, but you haven't granted it yet.`,decisionReason:{type:`rule`,rule:t}}}let a=N8(e,t,n,i);if(a.behavior===`allow`)return a;if(E8(r,n,i))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`mode`,mode:`default`}};let o=I8(Cn(r),t);if(o.behavior!==`passthrough`)return o;let s=j8(r,n,`read`,`allow`);return s?{behavior:`allow`,updatedInput:t,decisionReason:{type:`rule`,rule:s}}:{behavior:`ask`,message:`Work Mate requested permissions to read from ${r}, but you haven't granted it yet.`,suggestions:P8(r,`read`,n,i),decisionReason:{type:`workingDir`,reason:`Path is outside allowed working directories`}}}function N8(e,t,n,r){if(typeof e.getPath!=`function`)return{behavior:`ask`,message:`Work Mate requested permissions to use ${e.name}, but you haven't granted it yet.`};let i=e.getPath(t),a=r??ki(i);for(let e of a){let t=j8(e,n,`edit`,`deny`);if(t)return{behavior:`deny`,message:`Permission to edit ${i} has been denied.`,decisionReason:{type:`rule`,rule:t}}}let o=F8(Cn(i),t);if(o.behavior!==`passthrough`)return o;let s=j8(i,{...n,alwaysAllowRules:{session:n.alwaysAllowRules.session??[]}},`edit`,`allow`);if(s){let e=s.ruleValue.ruleContent;if(e&&(e.startsWith(`/.workmate/**`.slice(0,-2))||e.startsWith(`~/.workmate/**`.slice(0,-2)))&&!e.includes(`..`)&&e.endsWith(`/**`))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`rule`,rule:s}}}let c=w8(i,a);if(!c.safe){let e=Drt(i),t=e?[{type:`addRules`,rules:[{toolName:Cs,ruleContent:e.pattern}],behavior:`allow`,destination:`session`}]:P8(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=j8(e,n,`edit`,`ask`);if(t)return{behavior:`ask`,message:`Work Mate requested permissions to write to ${i}, but you haven't granted it yet.`,decisionReason:{type:`rule`,rule:t}}}let l=E8(i,n,a);if(n.mode===`acceptEdits`&&l)return{behavior:`allow`,updatedInput:t,decisionReason:{type:`mode`,mode:n.mode}};let u=j8(i,n,`edit`,`allow`);return u?{behavior:`allow`,updatedInput:t,decisionReason:{type:`rule`,rule:u}}:{behavior:`ask`,message:`Work Mate requested permissions to write to ${i}, but you haven't granted it yet.`,suggestions:P8(i,`write`,n,a),decisionReason:l?void 0:{type:`workingDir`,reason:`Path is outside allowed working directories`}}}function P8(e,t,n,r){let i=!E8(e,n,r);if(t===`read`&&i)return ki(wn(e)).map(e=>Tj(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=ki(wn(e));t.push({type:`addDirectories`,directories:n,destination:`session`})}return t}return a?[{type:`setMode`,mode:`acceptEdits`,destination:`session`}]:[]}function F8(e,t){let n=_c(e);if(Nrt(n))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Plan files for current session are allowed for writing`}};if(Rrt(n))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Scratchpad files for current session are allowed for writing`}};let r=process.env.WORKMATE_JOB_DIR;if(r){let n=X(m(),`jobs`),i=ki(r).map(_c),a=ki(n).map(_c);if(i.every(e=>a.some(t=>e.startsWith(t+Sc)))&&ki(e).every(e=>{let t=_c(e);return i.some(e=>t===e||t.startsWith(e+Sc))}))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Job directory files for current job are allowed for writing`}}}return gd(n)?{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Agent memory files are allowed for writing`}}:!Gre()&&$i(n)?{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`auto memory files are allowed for writing`}}:v8(n)===v8(X(ri(),`.workmate`,`launch.json`))?{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Preview launch config is allowed for writing`}}:{behavior:`passthrough`,message:``}}function I8(e,t){let n=_c(e);if(Prt(n))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Session memory files are allowed for reading`}};if(Frt(n))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Project directory files are allowed for reading`}};if(Nrt(n))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Plan files for current session are allowed for reading`}};let r=ex(),i=r.endsWith(Sc)?r:r+Sc;if(n===r||n.startsWith(i))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Tool result files are allowed for reading`}};if(Rrt(n))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Scratchpad files for current session are allowed for reading`}};let a=S8();if(n.startsWith(a))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Project temp directory files are allowed for reading`}};if(gd(n))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Agent memory files are allowed for reading`}};if($i(n))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`auto memory files are allowed for reading`}};let o=X(m(),`tasks`)+Sc;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=X(m(),`teams`)+Sc;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=z8()+Sc;return n.startsWith(c)?{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Bundled skill reference files are allowed for reading`}}:{behavior:`passthrough`,message:``}}var Grt,Krt,qrt,L8,R8,z8,Jrt,B8=n((()=>{Grt=r(ce(),1),d(),Vi(),vd(),Os(),H(),Ms(),fi(),g(),ji(),Kn(),Nd(),Fa(),_8(),Rn(),Ln(),Wv(),dx(),Lt(),Ej(),j9(),Krt=[`.gitconfig`,`.gitmodules`,`.bashrc`,`.bash_profile`,`.zshrc`,`.zprofile`,`.profile`,`.ripgreprc`,`.mcp.json`,`.workmate.json`],qrt=[`.git`,`.vscode`,`.idea`,`.workmate`],L8=yc.sep,R8=u(function(){let e=process.env.WORKMATE_TMPDIR||dc(),t=J(),n=e;try{n=t.realpathSync(e)}catch{}return X(n,Irt())+Sc}),z8=u(function(){let e=Rc(16).toString(`hex`);return X(R8(),`bundled-skills`,`0.0.28`,e)}),Jrt=u(ki)}));function V8(){return X8===void 0&&(X8=X(S8(),Kr(),`tasks`)),X8}async function H8(){await Wc(V8(),{recursive:!0})}function U8(e){return X(V8(),`${e}.output`)}function W8(e){return Z8.add(e),e.finally(()=>Z8.delete(e)).catch(()=>{}),e}async function Yrt(){for(;;){try{for(D($8,this)||(await H8(),k($8,this,await Gc(D(Q8,this),process.platform===`win32`?`a`:kc.O_WRONLY|kc.O_APPEND|kc.O_CREAT|q8)));await S(a5,this,Xrt).call(this),D(e5,this).length!==0;);}finally{if(D($8,this)){let e=D($8,this);k($8,this,null),await e.close()}}if(!D(e5,this).length)break}}function Xrt(){return D($8,this).appendFile(S(a5,this,Zrt).call(this))}function Zrt(){let e=D(e5,this).splice(0,D(e5,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 Qrt(){try{await S(a5,this,Yrt).call(this)}catch(e){if(Y(e),D(e5,this).length>0)try{await S(a5,this,Yrt).call(this)}catch(e){Y(e)}}finally{let e=D(i5,this);k(r5,this,null),k(i5,this,null),e()}}function G8(e){return W8((async()=>{let t=o5.get(e);t&&(await t.flush(),o5.delete(e))})())}async function $rt(e,t,n=J8){try{let r=await Fi(U8(e),t,n);return r?{content:r.content,newOffset:t+r.bytesRead}:{content:``,newOffset:t}}catch(e){return xi(e)===`ENOENT`||Y(e),{content:``,newOffset:t}}}async function eit(e,t=J8){try{let{content:n,bytesTotal:r,bytesRead:i}=await Oi(U8(e),t);return r>i?`[${Math.round((r-i)/1024)}KB of earlier output omitted]\n${n}`:n}catch(e){return xi(e)===`ENOENT`||Y(e),``}}function tit(e){return W8((async()=>{await H8();let t=U8(e);return await(await Gc(t,process.platform===`win32`?`wx`:kc.O_WRONLY|kc.O_CREAT|kc.O_EXCL|q8)).close(),t})())}function K8(e,t){return W8((async()=>{try{await H8();let n=U8(e);try{await Qc(t,n)}catch{await $c(n),await Qc(t,n)}return n}catch(t){return Y(t),tit(e)}})())}var q8,J8,Y8,X8,Z8,Q8,$8,e5,t5,n5,r5,i5,a5,nit,o5,s5=n((()=>{H(),vi(),ji(),Ta(),B8(),A(),C(),T(),w(),E(),q8=kc.O_NOFOLLOW??0,J8=8*1024*1024,Y8=5*1024*1024*1024,Z8=new Set,Q8=new WeakMap,$8=new WeakMap,e5=new WeakMap,t5=new WeakMap,n5=new WeakMap,r5=new WeakMap,i5=new WeakMap,a5=new WeakSet,nit=class{constructor(e){ee(this,a5),O(this,Q8,void 0),O(this,$8,null),O(this,e5,[]),O(this,t5,0),O(this,n5,!1),O(this,r5,null),O(this,i5,null),k(Q8,this,U8(e))}append(e){D(n5,this)||(k(t5,this,D(t5,this)+e.length),D(t5,this)>5368709120?(k(n5,this,!0),D(e5,this).push(`
|
|
3064
|
+
`),{encoding:`utf8`})}catch{}})}shouldSkipPersistence(){let e=h(process.env.TEST_ENABLE_SESSION_PERSISTENCE);return b6()===`test`&&!e||xn()?.cleanupPeriodDays===0||Mr()||h(process.env.WORKMATE_SKIP_PROMPT_HISTORY)}async materializeSessionFile(){if(!this.shouldSkipPersistence()&&(this.ensureCurrentSessionFile(),this.reAppendSessionMetadata(),this.pendingEntries.length>0)){let e=this.pendingEntries;this.pendingEntries=[];for(let t of e)await this.appendEntry(t)}}async insertMessageChain(e,t=!1,n,r,i){return this.trackWrite(async()=>{let a=r??null;this.sessionFile===null&&e.some(e=>e.type===`user`||e.type===`assistant`)&&await this.materializeSessionFile();let o;try{o=await ct()}catch{o=void 0}let s=Kr(),c=Ir().get(s);for(let r of e){let e=ov(r),l=a;r.type===`user`&&`sourceToolAssistantUUID`in r&&r.sourceToolAssistantUUID&&(l=r.sourceToolAssistantUUID);let u={parentUuid:e?null:l,logicalParentUuid:e?a:void 0,isSidechain:t,agentName:i?.agentName,promptId:r.type===`user`?Jte()??void 0:void 0,agentId:n,...r,userType:x6(),entrypoint:mnt(),cwd:U(),sessionId:s,timestamp:new Date().toISOString(),version:xrt,gitBranch:o,slug:c};await this.appendEntry(u),d6(r)&&(a=r.uuid)}if(!t){let t=k6(e);if(t){let e=t.replace(/\n/g,` `).trim();this.currentSessionLastPrompt=e.length>200?`${e.slice(0,200).trim()}…`:e}}})}async insertFileHistorySnapshot(e,t,n){return this.trackWrite(async()=>{let r={type:`file-history-snapshot`,messageId:e,snapshot:t,isSnapshotUpdate:n};await this.appendEntry(r)})}async insertQueueOperation(e){return this.trackWrite(async()=>{await this.appendEntry(e)})}async insertAttributionSnapshot(e){return this.trackWrite(async()=>{await this.appendEntry(e)})}async insertContentReplacement(e,t){return this.trackWrite(async()=>{let n={type:`content-replacement`,sessionId:Kr(),agentId:t,replacements:e};await this.appendEntry(n)})}async appendEntry(e,t=Kr()){if(this.shouldSkipPersistence())return;let n=t===Kr(),r;if(n){if(this.sessionFile===null){this.pendingEntries.push(e);return}r=this.sessionFile}else{let e=await this.getExistingSessionFile(t);if(!e){Y(Error(`appendEntry: session file not found for other session ${t}`));return}r=e}if(e.type===`summary`)this.enqueueWrite(r,e);else if(e.type===`custom-title`)this.enqueueWrite(r,e);else if(e.type===`ai-title`)this.enqueueWrite(r,e);else if(e.type===`last-prompt`)this.enqueueWrite(r,e);else if(e.type===`task-summary`)this.enqueueWrite(r,e);else if(e.type===`tag`)this.enqueueWrite(r,e);else if(e.type===`agent-name`)this.enqueueWrite(r,e);else if(e.type===`agent-color`)this.enqueueWrite(r,e);else if(e.type===`agent-setting`)this.enqueueWrite(r,e);else if(e.type===`pr-link`)this.enqueueWrite(r,e);else if(e.type===`file-history-snapshot`)this.enqueueWrite(r,e);else if(e.type===`attribution-snapshot`)this.enqueueWrite(r,e);else if(e.type===`speculation-accept`)this.enqueueWrite(r,e);else if(e.type===`mode`)this.enqueueWrite(r,e);else if(e.type===`worktree-state`)this.enqueueWrite(r,e);else if(e.type===`content-replacement`){let t=e.agentId?_6(e.agentId):r;this.enqueueWrite(t,e)}else if(e.type===`marble-origami-commit`)this.enqueueWrite(r,e);else if(e.type===`marble-origami-snapshot`)this.enqueueWrite(r,e);else if(e.type===`goal`)this.enqueueWrite(r,e);else if(e.type===`goal-cleared`)this.enqueueWrite(r,e);else{let n=await q6(t);if(e.type===`queue-operation`)this.enqueueWrite(r,e);else{let i=e.isSidechain&&e.agentId!==void 0,a=i?_6(Pj(e.agentId)):r,o=!n.has(e.uuid);(i||o)&&(this.enqueueWrite(a,e),i||(n.add(e.uuid),u6(e)&&await this.persistToRemote(t,e)))}}}ensureCurrentSessionFile(){return this.sessionFile===null&&(this.sessionFile=p6()),this.sessionFile}async getExistingSessionFile(e){let t=this.existingSessionFiles.get(e);if(t)return t;let n=m6(e);try{if(await Zc(n),this.existingSessionFiles.size>=p8){let e=this.existingSessionFiles.keys().next().value;e!==void 0&&this.existingSessionFiles.delete(e)}return this.existingSessionFiles.set(e,n),n}catch(e){if(Bi(e))return null;throw e}}async persistToRemote(e,t){if(!int()&&this.internalEventWriter){try{await this.internalEventWriter(`transcript`,t,{...ov(t)&&{isCompaction:!0},...t.agentId&&{agentId:t.agentId}})}catch{K(`Failed to write transcript as internal event`)}return}}setInternalEventWriter(e){this.internalEventWriter=e,K(`CCR v2 internal event writer registered for transcript persistence`),this.FLUSH_INTERVAL_MS=wrt}setInternalEventReader(e){this.internalEventReader=e,K(`CCR v2 internal event reader registered for session resume`)}setInternalSubagentEventReader(e){this.internalSubagentEventReader=e,K(`CCR v2 subagent event reader registered for session resume`)}getInternalEventReader(){return this.internalEventReader}getInternalSubagentEventReader(){return this.internalSubagentEventReader}},m8=[`"type":"summary"`,`"type":"custom-title"`,`"type":"tag"`,`"type":"agent-name"`,`"type":"agent-color"`,`"type":"agent-setting"`,`"type":"mode"`,`"type":"worktree-state"`,`"type":"goal"`,`"type":"goal-cleared"`,`"type":"pr-link"`].map(e=>Buffer.from(e)),Ert=25,h8=new Map,g8=50}));function v8(e){return e.toLowerCase()}function Drt(e){let t=Cn(e),n=v8(t),r=[{dir:Cn(X(ri(),`.workmate`,`skills`)),prefix:`/.workmate/skills/`},{dir:Cn(X(uc(),`.workmate`,`skills`)),prefix:`~/.workmate/skills/`}];for(let{dir:e,prefix:i}of r){let r=v8(e);for(let a of[Sc,`/`])if(n.startsWith(r+a.toLowerCase())){let n=t.slice(e.length+a.length),r=n.indexOf(`/`),o=Sc===`\\`?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 Ort(e,t){if(Na()===`windows`){let n=Et(e),r=Et(t);return yc.relative(n,r)}return yc.relative(e,t)}function krt(e){return Na()===`windows`?Et(e):e}function Art(){return rr.map(e=>Un(e)).filter(e=>e!==void 0)}function jrt(e){let t=v8(Cn(e));return t.endsWith(`${Sc}.workmate${Sc}settings.json`)||t.endsWith(`${Sc}.workmate${Sc}settings.local.json`)?!0:Art().some(e=>v8(e)===t)}function Mrt(e){if(jrt(e))return!0;let t=X(ri(),`.workmate`,`commands`),n=X(ri(),`.workmate`,`agents`),r=X(ri(),`.workmate`,`skills`);return D8(e,t)||D8(e,n)||D8(e,r)}function Nrt(e){let t=X(Md(),Td()),n=_c(e);return n.startsWith(t)&&n.endsWith(`.md`)}function y8(){return X(u8(U()),Kr(),`session-memory`)+Sc}function b8(){return X(y8(),`summary.md`)}function Prt(e){return _c(e).startsWith(y8())}function Frt(e){let t=u8(U()),n=_c(e);return n===t||n.startsWith(t+Sc)}function x8(){return!1}function Irt(){return Na()===`windows`?`claude`:`claude-${process.getuid?.()??0}`}function S8(){return X(R8(),Pn(ri()))+Sc}function C8(){return X(S8(),Kr(),`scratchpad`)}async function Lrt(){if(!x8())throw Error(`Scratchpad directory feature is not enabled`);let e=J(),t=C8();return await e.mkdir(t,{mode:448}),t}function Rrt(e){if(!x8())return!1;let t=C8(),n=_c(e);return n===t||n.startsWith(t+Sc)}function zrt(e){let t=Cn(e).split(Sc),n=t.at(-1);if(e.startsWith(`\\\\`)||e.startsWith(`//`))return!0;for(let e=0;e<t.length;e++){let n=t[e],r=v8(n);for(let n of qrt)if(r===v8(n)){if(n===`.workmate`){let n=t[e+1];if(n&&v8(n)===`worktrees`)break}return!0}}if(n){let e=v8(n);if(Krt.some(t=>v8(t)===e))return!0}return!1}function Brt(e){return!!((Na()===`windows`||Na()===`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)||Av(e))}function w8(e,t){let n=t??ki(e);for(let t of n)if(Brt(t))return{safe:!1,message:`Work Mate 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(Mrt(t))return{safe:!1,message:`Work Mate requested permissions to write to ${e}, but you haven't granted it yet.`,classifierApprovable:!0};for(let t of n)if(zrt(t))return{safe:!1,message:`Work Mate requested permissions to edit ${e} which is a sensitive file.`,classifierApprovable:!0};return{safe:!0}}function T8(e){return new Set([ri(),...e.additionalWorkingDirectories.keys()])}function E8(e,t,n){let r=n??ki(e),i=Array.from(T8(t)).flatMap(e=>Jrt(e));return r.every(e=>i.some(t=>D8(e,t)))}function D8(e,t){let n=Cn(e),r=Cn(t),i=n.replace(/^\/private\/var\//,`/var/`).replace(/^\/private\/tmp(\/|$)/,`/tmp$1`),a=r.replace(/^\/private\/var\//,`/var/`).replace(/^\/private\/tmp(\/|$)/,`/tmp$1`),o=v8(i),s=Ort(v8(a),o);return s===``||!ur(s)&&!yc.isAbsolute(s)}function Vrt(e){switch(e){case`cliArg`:case`command`:case`session`:return Cn(ri());case`userSettings`:case`policySettings`:case`projectSettings`:case`localSettings`:case`flagSettings`:return vn(e)}}function O8(e){return yc.join(L8,e)}function Hrt({patternRoot:e,pattern:t,rootPath:n}){let r=yc.join(e,t);if(e===n)return O8(t);if(r.startsWith(`${n}${L8}`))return O8(r.slice(n.length));{let r=yc.relative(n,e);return!r||r.startsWith(`..${L8}`)||r===`..`?null:O8(yc.join(r,t))}}function k8(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=Hrt({patternRoot:r,pattern:e,rootPath:t});i&&n.add(i)}return Array.from(n)}function A8(e){let t=Wrt(e,`read`,`deny`),n=new Map;for(let[e,r]of t.entries())n.set(e,Array.from(r.keys()));return n}function Urt(e,t){if(e.startsWith(`${L8}${L8}`)){let t=e.slice(1);if(Na()===`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:L8}}else if(e.startsWith(`~${L8}`))return{relativePattern:e.slice(1),root:uc().normalize(`NFC`)};else if(e.startsWith(L8))return{relativePattern:e,root:Vrt(t)};let n=e;return e.startsWith(`.${L8}`)&&(n=e.slice(2)),{relativePattern:n,root:null}}function Wrt(e,t,n){let r=D9(e,(()=>{switch(t){case`edit`:return Cs;case`read`:return cs}})(),n),i=new Map;for(let[e,t]of r.entries()){let{relativePattern:n,root:r}=Urt(e,t.source),a=i.get(r);a===void 0&&(a=new Map,i.set(r,a)),a.set(n,t)}return i}function j8(e,t,n,r){let i=Cn(e);Na()===`windows`&&i.includes(`\\`)&&(i=Et(i));let a=Wrt(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,Grt.default)().add(n),a=Ort(e??U(),i??U());if(a.startsWith(`..${L8}`)||!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 M8(e,t,n){if(typeof e.getPath!=`function`)return{behavior:`ask`,message:`Work Mate requested permissions to use ${e.name}, but you haven't granted it yet.`};let r=e.getPath(t),i=ki(r);for(let e of i)if(e.startsWith(`\\\\`)||e.startsWith(`//`))return{behavior:`ask`,message:`Work Mate 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(Brt(e))return{behavior:`ask`,message:`Work Mate 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=j8(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=j8(e,n,`read`,`ask`);if(t)return{behavior:`ask`,message:`Work Mate requested permissions to read from ${r}, but you haven't granted it yet.`,decisionReason:{type:`rule`,rule:t}}}let a=N8(e,t,n,i);if(a.behavior===`allow`)return a;if(E8(r,n,i))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`mode`,mode:`default`}};let o=I8(Cn(r),t);if(o.behavior!==`passthrough`)return o;let s=j8(r,n,`read`,`allow`);return s?{behavior:`allow`,updatedInput:t,decisionReason:{type:`rule`,rule:s}}:{behavior:`ask`,message:`Work Mate requested permissions to read from ${r}, but you haven't granted it yet.`,suggestions:P8(r,`read`,n,i),decisionReason:{type:`workingDir`,reason:`Path is outside allowed working directories`}}}function N8(e,t,n,r){if(typeof e.getPath!=`function`)return{behavior:`ask`,message:`Work Mate requested permissions to use ${e.name}, but you haven't granted it yet.`};let i=e.getPath(t),a=r??ki(i);for(let e of a){let t=j8(e,n,`edit`,`deny`);if(t)return{behavior:`deny`,message:`Permission to edit ${i} has been denied.`,decisionReason:{type:`rule`,rule:t}}}let o=F8(Cn(i),t);if(o.behavior!==`passthrough`)return o;let s=j8(i,{...n,alwaysAllowRules:{session:n.alwaysAllowRules.session??[]}},`edit`,`allow`);if(s){let e=s.ruleValue.ruleContent;if(e&&(e.startsWith(`/.workmate/**`.slice(0,-2))||e.startsWith(`~/.workmate/**`.slice(0,-2)))&&!e.includes(`..`)&&e.endsWith(`/**`))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`rule`,rule:s}}}let c=w8(i,a);if(!c.safe){let e=Drt(i),t=e?[{type:`addRules`,rules:[{toolName:Cs,ruleContent:e.pattern}],behavior:`allow`,destination:`session`}]:P8(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=j8(e,n,`edit`,`ask`);if(t)return{behavior:`ask`,message:`Work Mate requested permissions to write to ${i}, but you haven't granted it yet.`,decisionReason:{type:`rule`,rule:t}}}let l=E8(i,n,a);if(n.mode===`acceptEdits`&&l)return{behavior:`allow`,updatedInput:t,decisionReason:{type:`mode`,mode:n.mode}};let u=j8(i,n,`edit`,`allow`);return u?{behavior:`allow`,updatedInput:t,decisionReason:{type:`rule`,rule:u}}:{behavior:`ask`,message:`Work Mate requested permissions to write to ${i}, but you haven't granted it yet.`,suggestions:P8(i,`write`,n,a),decisionReason:l?void 0:{type:`workingDir`,reason:`Path is outside allowed working directories`}}}function P8(e,t,n,r){let i=!E8(e,n,r);if(t===`read`&&i)return ki(wn(e)).map(e=>Tj(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=ki(wn(e));t.push({type:`addDirectories`,directories:n,destination:`session`})}return t}return a?[{type:`setMode`,mode:`acceptEdits`,destination:`session`}]:[]}function F8(e,t){let n=_c(e);if(Nrt(n))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Plan files for current session are allowed for writing`}};if(Rrt(n))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Scratchpad files for current session are allowed for writing`}};let r=process.env.WORKMATE_JOB_DIR;if(r){let n=X(m(),`jobs`),i=ki(r).map(_c),a=ki(n).map(_c);if(i.every(e=>a.some(t=>e.startsWith(t+Sc)))&&ki(e).every(e=>{let t=_c(e);return i.some(e=>t===e||t.startsWith(e+Sc))}))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Job directory files for current job are allowed for writing`}}}return gd(n)?{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Agent memory files are allowed for writing`}}:!Gre()&&$i(n)?{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`auto memory files are allowed for writing`}}:v8(n)===v8(X(ri(),`.workmate`,`launch.json`))?{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Preview launch config is allowed for writing`}}:{behavior:`passthrough`,message:``}}function I8(e,t){let n=_c(e);if(Prt(n))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Session memory files are allowed for reading`}};if(Frt(n))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Project directory files are allowed for reading`}};if(Nrt(n))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Plan files for current session are allowed for reading`}};let r=ex(),i=r.endsWith(Sc)?r:r+Sc;if(n===r||n.startsWith(i))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Tool result files are allowed for reading`}};if(Rrt(n))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Scratchpad files for current session are allowed for reading`}};let a=S8();if(n.startsWith(a))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Project temp directory files are allowed for reading`}};if(gd(n))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Agent memory files are allowed for reading`}};if($i(n))return{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`auto memory files are allowed for reading`}};let o=X(m(),`tasks`)+Sc;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=X(m(),`teams`)+Sc;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=z8()+Sc;return n.startsWith(c)?{behavior:`allow`,updatedInput:t,decisionReason:{type:`other`,reason:`Bundled skill reference files are allowed for reading`}}:{behavior:`passthrough`,message:``}}var Grt,Krt,qrt,L8,R8,z8,Jrt,B8=n((()=>{Grt=r(ce(),1),d(),Vi(),vd(),Os(),H(),Ms(),fi(),g(),ji(),Kn(),Nd(),Fa(),_8(),Rn(),Ln(),Wv(),dx(),Lt(),Ej(),j9(),Krt=[`.gitconfig`,`.gitmodules`,`.bashrc`,`.bash_profile`,`.zshrc`,`.zprofile`,`.profile`,`.ripgreprc`,`.mcp.json`,`.workmate.json`],qrt=[`.git`,`.vscode`,`.idea`,`.workmate`],L8=yc.sep,R8=u(function(){let e=process.env.WORKMATE_TMPDIR||dc(),t=J(),n=e;try{n=t.realpathSync(e)}catch{}return X(n,Irt())+Sc}),z8=u(function(){let e=Rc(16).toString(`hex`);return X(R8(),`bundled-skills`,`0.0.29`,e)}),Jrt=u(ki)}));function V8(){return X8===void 0&&(X8=X(S8(),Kr(),`tasks`)),X8}async function H8(){await Wc(V8(),{recursive:!0})}function U8(e){return X(V8(),`${e}.output`)}function W8(e){return Z8.add(e),e.finally(()=>Z8.delete(e)).catch(()=>{}),e}async function Yrt(){for(;;){try{for(D($8,this)||(await H8(),k($8,this,await Gc(D(Q8,this),process.platform===`win32`?`a`:kc.O_WRONLY|kc.O_APPEND|kc.O_CREAT|q8)));await S(a5,this,Xrt).call(this),D(e5,this).length!==0;);}finally{if(D($8,this)){let e=D($8,this);k($8,this,null),await e.close()}}if(!D(e5,this).length)break}}function Xrt(){return D($8,this).appendFile(S(a5,this,Zrt).call(this))}function Zrt(){let e=D(e5,this).splice(0,D(e5,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 Qrt(){try{await S(a5,this,Yrt).call(this)}catch(e){if(Y(e),D(e5,this).length>0)try{await S(a5,this,Yrt).call(this)}catch(e){Y(e)}}finally{let e=D(i5,this);k(r5,this,null),k(i5,this,null),e()}}function G8(e){return W8((async()=>{let t=o5.get(e);t&&(await t.flush(),o5.delete(e))})())}async function $rt(e,t,n=J8){try{let r=await Fi(U8(e),t,n);return r?{content:r.content,newOffset:t+r.bytesRead}:{content:``,newOffset:t}}catch(e){return xi(e)===`ENOENT`||Y(e),{content:``,newOffset:t}}}async function eit(e,t=J8){try{let{content:n,bytesTotal:r,bytesRead:i}=await Oi(U8(e),t);return r>i?`[${Math.round((r-i)/1024)}KB of earlier output omitted]\n${n}`:n}catch(e){return xi(e)===`ENOENT`||Y(e),``}}function tit(e){return W8((async()=>{await H8();let t=U8(e);return await(await Gc(t,process.platform===`win32`?`wx`:kc.O_WRONLY|kc.O_CREAT|kc.O_EXCL|q8)).close(),t})())}function K8(e,t){return W8((async()=>{try{await H8();let n=U8(e);try{await Qc(t,n)}catch{await $c(n),await Qc(t,n)}return n}catch(t){return Y(t),tit(e)}})())}var q8,J8,Y8,X8,Z8,Q8,$8,e5,t5,n5,r5,i5,a5,nit,o5,s5=n((()=>{H(),vi(),ji(),Ta(),B8(),A(),C(),T(),w(),E(),q8=kc.O_NOFOLLOW??0,J8=8*1024*1024,Y8=5*1024*1024*1024,Z8=new Set,Q8=new WeakMap,$8=new WeakMap,e5=new WeakMap,t5=new WeakMap,n5=new WeakMap,r5=new WeakMap,i5=new WeakMap,a5=new WeakSet,nit=class{constructor(e){ee(this,a5),O(this,Q8,void 0),O(this,$8,null),O(this,e5,[]),O(this,t5,0),O(this,n5,!1),O(this,r5,null),O(this,i5,null),k(Q8,this,U8(e))}append(e){D(n5,this)||(k(t5,this,D(t5,this)+e.length),D(t5,this)>5368709120?(k(n5,this,!0),D(e5,this).push(`
|
|
3065
3065
|
[output truncated: exceeded 5GB disk cap]
|
|
3066
3066
|
`)):D(e5,this).push(e),D(r5,this)||(k(r5,this,new Promise(e=>{k(i5,this,e)})),W8(S(a5,this,Qrt).call(this))))}flush(){return D(r5,this)??Promise.resolve()}cancel(){D(e5,this).length=0}},o5=new Map}));function rit(e){return e===`completed`||e===`failed`||e===`killed`}function iit(e){return ait[e]??`x`}function c5(e){let t=iit(e),n=Rc(8),r=t;for(let e=0;e<8;e++)r+=oit[n[e]%36];return r}function l5(e,t,n,r){return{id:e,type:t,status:`pending`,description:n,toolUseId:r,startTime:Date.now(),outputFile:U8(e),outputOffset:0,notified:!1}}var ait,oit,u5=n((()=>{s5(),ait={local_bash:`b`,local_agent:`a`,local_workflow:`w`,dream:`d`},oit=`0123456789abcdefghijklmnopqrstuvwxyz`}));function sit(e,t){return t?`${e} ${t}`:e}function cit(e){let t=typeof e==`string`?e:e.toString();D(y5,this)?D(v5,this).writeStderr(t):D(v5,this).writeStdout(t)}function lit(e){D(F5,e)&&D(N5,e)?D(N5,e).call(e,e.background.bind(e)):S(z5,e,p5).call(e,h5)}function uit(){D(M5,this).reason!==`interrupt`&&this.kill()}function dit(e,t){let n=e??(t===`SIGTERM`?144:1);S(z5,this,d5).call(this,n)}function fit(){S(z5,this,d5).call(this,1)}function d5(e){D(L5,this)&&(D(L5,this).call(this,e),k(L5,this,null))}function f5(){S(z5,this,pit).call(this);let e=D(O5,this);e&&(clearTimeout(e),k(O5,this,null));let t=D(R5,this);t&&(D(M5,this).removeEventListener(`abort`,t),k(R5,this,null))}function pit(){D(k5,this)&&(clearInterval(D(k5,this)),k(k5,this,null))}function mit(){k(k5,this,setInterval(()=>{Zc(this.taskOutput.path).then(e=>{e.size>D(j5,this)&&D(C5,this)===`backgrounded`&&D(k5,this)!==null&&(k(A5,this,!0),S(z5,this,pit).call(this),S(z5,this,p5).call(this,m5))},()=>{})},xit)),D(k5,this).unref()}function hit(){k(R5,this,S(z5,this,uit).bind(this)),D(M5,this).addEventListener(`abort`,D(R5,this),{once:!0}),D(D5,this).once(`exit`,S(z5,this,dit).bind(this)),D(D5,this).once(`error`,S(z5,this,fit).bind(this)),k(O5,this,setTimeout(lit,D(P5,this),this));let e=new Promise(e=>{k(L5,this,e)});return new Promise(t=>{k(I5,this,t),e.then(S(z5,this,git).bind(this))})}async function git(e){S(z5,this,f5).call(this),(D(C5,this)===`running`||D(C5,this)===`backgrounded`)&&k(C5,this,`completed`);let t={code:e,stdout:await this.taskOutput.getStdout(),stderr:this.taskOutput.getStderr(),interrupted:e===m5,backgroundTaskId:D(w5,this)};this.taskOutput.stdoutToFile&&!D(w5,this)&&(this.taskOutput.outputFileRedundant?this.taskOutput.deleteOutputFile():(t.outputFilePath=this.taskOutput.path,t.outputFileSize=this.taskOutput.outputFileSize,t.outputTaskId=this.taskOutput.taskId)),D(A5,this)?t.stderr=sit(`Background command killed: output file exceeded 5GB`,t.stderr):e===h5&&(t.stderr=sit(`Command timed out after ${Wa(D(P5,this))}`,t.stderr));let n=D(I5,this);n&&(k(I5,this,null),n(t))}function p5(e){k(C5,this,`killed`),D(D5,this).pid&&(0,bit.default)(D(D5,this).pid,`SIGKILL`),S(z5,this,d5).call(this,e??m5)}function _it(e,t,n,r,i=!1,a=Y8){return new Sit(e,t,n,r,i,a)}function vit(e,t){return new Cit({backgroundTaskId:e,...t})}function yit(e){let t=new qy(c5(`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 bit,m5,h5,xit,g5,_5,v5,y5,b5,x5,S5,C5,w5,T5,E5,D5,O5,k5,A5,j5,M5,N5,P5,F5,I5,L5,R5,z5,Sit,Cit,wit=n((()=>{bit=r(xue(),1),u5(),za(),s5(),Zy(),A(),C(),E(),T(),w(),b(),m5=137,h5=143,xit=5e3,g5=new WeakMap,_5=new WeakMap,v5=new WeakMap,y5=new WeakMap,b5=new WeakMap,x5=new WeakSet,S5=class{constructor(e,t,n){ee(this,x5),O(this,g5,void 0),O(this,_5,!1),O(this,v5,void 0),O(this,y5,void 0),O(this,b5,S(x5,this,cit).bind(this)),k(g5,this,e),k(v5,this,t),k(y5,this,n),e.setEncoding(`utf-8`),e.on(`data`,D(b5,this))}cleanup(){D(_5,this)||(k(_5,this,!0),D(g5,this).removeListener(`data`,D(b5,this)),k(g5,this,null),k(v5,this,null),k(b5,this,()=>{}))}},C5=new WeakMap,w5=new WeakMap,T5=new WeakMap,E5=new WeakMap,D5=new WeakMap,O5=new WeakMap,k5=new WeakMap,A5=new WeakMap,j5=new WeakMap,M5=new WeakMap,N5=new WeakMap,P5=new WeakMap,F5=new WeakMap,I5=new WeakMap,L5=new WeakMap,R5=new WeakMap,z5=new WeakSet,Sit=class{constructor(e,t,n,r,i=!1,a=Y8){ee(this,z5),O(this,C5,`running`),O(this,w5,void 0),O(this,T5,void 0),O(this,E5,void 0),O(this,D5,void 0),O(this,O5,null),O(this,k5,null),O(this,A5,!1),O(this,j5,void 0),O(this,M5,void 0),O(this,N5,void 0),O(this,P5,void 0),O(this,F5,void 0),O(this,I5,null),O(this,L5,null),O(this,R5,null),x(this,`taskOutput`,void 0),x(this,`result`,void 0),x(this,`onTimeout`,void 0),k(D5,this,e),k(M5,this,t),k(P5,this,n),k(F5,this,i),k(j5,this,a),this.taskOutput=r,k(E5,this,e.stderr?new S5(e.stderr,r,!0):null),k(T5,this,e.stdout?new S5(e.stdout,r,!1):null),i&&(this.onTimeout=e=>{k(N5,this,e)}),this.result=S(z5,this,hit).call(this)}get status(){return D(C5,this)}kill(){S(z5,this,p5).call(this)}background(e){return D(C5,this)===`running`?(k(w5,this,e),k(C5,this,`backgrounded`),S(z5,this,f5).call(this),this.taskOutput.stdoutToFile?S(z5,this,mit).call(this):this.taskOutput.spillToDisk(),!0):!1}cleanup(){D(T5,this)?.cleanup(),D(E5,this)?.cleanup(),this.taskOutput.clear(),S(z5,this,f5).call(this),k(D5,this,null),k(M5,this,null),k(N5,this,void 0)}},Cit=class{constructor(e){x(this,`status`,`killed`),x(this,`result`,void 0),x(this,`taskOutput`,void 0),this.taskOutput=new qy(c5(`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(){}}})),B5,V5,Tit=n((()=>{At(),rt(),B5=z(()=>Ft.enum([`allow`,`deny`,`ask`])),V5=z(()=>Ft.object({toolName:Ft.string(),ruleContent:Ft.string().optional()}))})),H5,U5,Eit=n((()=>{At(),rt(),Rt(),Tit(),H5=z(()=>Ft.enum([`userSettings`,`projectSettings`,`localSettings`,`session`,`cliArg`])),U5=z(()=>Ft.discriminatedUnion(`type`,[Ft.object({type:Ft.literal(`addRules`),rules:Ft.array(V5()),behavior:B5(),destination:H5()}),Ft.object({type:Ft.literal(`replaceRules`),rules:Ft.array(V5()),behavior:B5(),destination:H5()}),Ft.object({type:Ft.literal(`removeRules`),rules:Ft.array(V5()),behavior:B5(),destination:H5()}),Ft.object({type:Ft.literal(`setMode`),mode:kee(),destination:H5()}),Ft.object({type:Ft.literal(`addDirectories`),directories:Ft.array(Ft.string()),destination:H5()}),Ft.object({type:Ft.literal(`removeDirectories`),directories:Ft.array(Ft.string()),destination:H5()})]))}));function W5(e){return!(`async`in e&&e.async===!0)}function G5(e){return`async`in e&&e.async===!0}var Dit,Oit,K5,kit=n((()=>{At(),rt(),Fn(),Tit(),Eit(),Dit=z(()=>V({prompt:B(),message:B(),options:I(V({key:B(),label:B(),description:B().optional()}))})),Oit=z(()=>V({continue:gt().describe(`Whether Work Mate should continue after hook (default: true)`).optional(),suppressOutput:gt().describe(`Hide stdout from transcript (default: false)`).optional(),stopReason:B().describe(`Message shown when continue is false`).optional(),decision:Zt([`approve`,`block`]).optional(),reason:B().describe(`Explanation for the decision`).optional(),systemMessage:B().describe(`Warning message shown to the user`).optional(),hookSpecificOutput:nr([V({hookEventName:L(`PreToolUse`),permissionDecision:B5().optional(),permissionDecisionReason:B().optional(),updatedInput:An(B(),yn()).optional(),additionalContext:B().optional()}),V({hookEventName:L(`UserPromptSubmit`),additionalContext:B().optional()}),V({hookEventName:L(`SessionStart`),additionalContext:B().optional(),initialUserMessage:B().optional(),watchPaths:I(B()).describe(`Absolute paths to watch for FileChanged hooks`).optional()}),V({hookEventName:L(`Setup`),additionalContext:B().optional()}),V({hookEventName:L(`SubagentStart`),additionalContext:B().optional()}),V({hookEventName:L(`PostToolUse`),additionalContext:B().optional(),updatedMCPToolOutput:yn().describe(`Updates the output for MCP tools`).optional()}),V({hookEventName:L(`PostToolUseFailure`),additionalContext:B().optional()}),V({hookEventName:L(`PermissionDenied`),retry:gt().optional()}),V({hookEventName:L(`Notification`),additionalContext:B().optional()}),V({hookEventName:L(`PermissionRequest`),decision:nr([V({behavior:L(`allow`),updatedInput:An(B(),yn()).optional(),updatedPermissions:I(U5()).optional()}),V({behavior:L(`deny`),message:B().optional(),interrupt:gt().optional()})])}),V({hookEventName:L(`Elicitation`),action:Zt([`accept`,`decline`,`cancel`]).optional(),content:An(B(),yn()).optional()}),V({hookEventName:L(`ElicitationResult`),action:Zt([`accept`,`decline`,`cancel`]).optional(),content:An(B(),yn()).optional()}),V({hookEventName:L(`CwdChanged`),watchPaths:I(B()).describe(`Absolute paths to watch for FileChanged hooks`).optional()}),V({hookEventName:L(`FileChanged`),watchPaths:I(B()).describe(`Absolute paths to watch for FileChanged hooks`).optional()}),V({hookEventName:L(`WorktreeCreate`),worktreePath:B()})]).optional()})),K5=z(()=>nr([V({async:L(!0),asyncTimeout:R().optional()}),Oit()]))}));function q5(e,t){let{signalB:n,timeoutMs:r}=t??{},i=VT();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 J5=n((()=>{WT()}));function Ait(e,t){return S2(e,t)}function jit(){return{...Hae,inputSchema:Y5(),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 Mit(e,t){qVe(e,t,`Stop`,``,e=>J9e(e,Es),`You MUST call the ${Es} tool to complete this request. Call this tool now.`,{timeout:5e3})}var Y5,X5=n((()=>{At(),ds(),C2(),rt(),v3(),OY(),Y5=z(()=>V({ok:gt().describe(`Whether the condition was met`),reason:B().describe(`Reason, if the condition was not met`).optional()}))}));async function Nit(e,t,n,r,i,a,o,s){let c=s||`hook-${zc()}`;try{let s=Ait(e.prompt,r);K(`Hooks: Processing prompt hook with prompt: ${s}`);let l=Q({content:s}),u=o&&o.length>0?[...o,l]:[l];K(`Hooks: Querying model with ${u.length} messages`);let{signal:d,cleanup:f}=q5(i,{timeoutMs:e.timeout?e.timeout*1e3:3e4});try{let r=await Z7({messages:u,systemPrompt:$g([`You are evaluating a hook in Work Mate.
|
|
3067
3067
|
|
|
@@ -3074,7 +3074,7 @@ Use as few steps as possible - be efficient and direct.
|
|
|
3074
3074
|
|
|
3075
3075
|
When done, return your result using the ${Es} tool with:
|
|
3076
3076
|
- ok: true if the condition is met
|
|
3077
|
-
- ok: false with reason if the condition is not met`]),c=e.model??Bo(),g=Pj(`hook-agent-${zc()}`),_={...a,agentId:g,abortController:f,options:{...a.options,tools:i,mainLoopModel:c,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})`]}}}}};Mit(a.setAppState,g);let v=null,y=0,b=!1;for await(let e of t0({messages:s,systemPrompt:o,userContext:{},systemContext:{},canUseTool:A9,toolUseContext:_,querySource:`hook_agent`}))if(Pet(e,()=>{},e=>a.setResponseLength(t=>t+e.length),a.setStreamMode??(()=>{}),()=>{}),!(e.type===`stream_event`||e.type===`stream_request_start`)){if(e.type===`assistant`&&(y++,y>=50)){b=!0,K(`Hooks: Agent turn ${y} hit max turns, aborting`),f.abort();break}if(Fit(e)){let t=Y5().safeParse(e.attachment.data);if(t.success){v=t.data,K(`Hooks: Got structured output: ${W(v)}`),f.abort();break}}}return p.removeEventListener(`abort`,h),m(),DY(a.setAppState,g),v?v.ok?(K(`Hooks: Agent hook condition was met`),Date.now()-d,{hook:e,outcome:`success`,message:a2({type:`hook_success`,hookName:t,toolUseID:l,hookEvent:n,content:``})}):(K(`Hooks: Agent hook condition was not met: ${v.reason}`),{hook:e,outcome:`blocking`,blockingError:{blockingError:`Agent hook condition was not met: ${v.reason}`,command:e.prompt}}):b?(K(`Hooks: Agent hook did not complete within 50 turns`),Date.now()-d,{hook:e,outcome:`cancelled`}):(K(`Hooks: Agent hook did not return structured output`),Date.now()-d,{hook:e,outcome:`cancelled`})}catch(t){if(p.removeEventListener(`abort`,h),m(),g.aborted)return{hook:e,outcome:`cancelled`};throw t}}catch(r){let i=G(r);return K(`Hooks: Agent hook error: ${i}`),Date.now()-d,{hook:e,outcome:`non_blocking_error`,message:a2({type:`hook_non_blocking_error`,hookName:t,toolUseID:l,hookEvent:n,stderr:`Error executing agent hook: ${i}`,stdout:``,exitCode:1})}}}var Lit=n((()=>{n0(),Ra(),Ps(),ds(),k1(),Fj(),WT(),g2(),J5(),q(),vi(),v3(),To(),j9(),_8(),zi(),Pw(),X5(),OY()}));function Rit(e){let t=pce(e);return t===4?zit(e):t===6&&Bit(e)}function zit(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 Bit(e){let t=e.toLowerCase();if(t===`::1`)return!1;if(t===`::`)return!0;let n=Hit(t);if(n!==null)return zit(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 Vit(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 Hit(e){let t=Vit(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 Uit(e,t,n){let r=`all`in t&&t.all===!0,i=pce(e);if(i!==0){if(Rit(e)){n(Wit(e,e),``);return}let t=i===6?6:4;r?n(null,[{address:e,family:t}]):n(null,e,t);return}kce(e,{all:!0},(t,i)=>{if(t){n(t,``);return}for(let{address:t}of i)if(Rit(t)){n(Wit(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 Wit(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 Git=n((()=>{}));async function Kit(){let{SandboxManager:e}=await import(`./sandbox-adapter-
|
|
3077
|
+
- ok: false with reason if the condition is not met`]),c=e.model??Bo(),g=Pj(`hook-agent-${zc()}`),_={...a,agentId:g,abortController:f,options:{...a.options,tools:i,mainLoopModel:c,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})`]}}}}};Mit(a.setAppState,g);let v=null,y=0,b=!1;for await(let e of t0({messages:s,systemPrompt:o,userContext:{},systemContext:{},canUseTool:A9,toolUseContext:_,querySource:`hook_agent`}))if(Pet(e,()=>{},e=>a.setResponseLength(t=>t+e.length),a.setStreamMode??(()=>{}),()=>{}),!(e.type===`stream_event`||e.type===`stream_request_start`)){if(e.type===`assistant`&&(y++,y>=50)){b=!0,K(`Hooks: Agent turn ${y} hit max turns, aborting`),f.abort();break}if(Fit(e)){let t=Y5().safeParse(e.attachment.data);if(t.success){v=t.data,K(`Hooks: Got structured output: ${W(v)}`),f.abort();break}}}return p.removeEventListener(`abort`,h),m(),DY(a.setAppState,g),v?v.ok?(K(`Hooks: Agent hook condition was met`),Date.now()-d,{hook:e,outcome:`success`,message:a2({type:`hook_success`,hookName:t,toolUseID:l,hookEvent:n,content:``})}):(K(`Hooks: Agent hook condition was not met: ${v.reason}`),{hook:e,outcome:`blocking`,blockingError:{blockingError:`Agent hook condition was not met: ${v.reason}`,command:e.prompt}}):b?(K(`Hooks: Agent hook did not complete within 50 turns`),Date.now()-d,{hook:e,outcome:`cancelled`}):(K(`Hooks: Agent hook did not return structured output`),Date.now()-d,{hook:e,outcome:`cancelled`})}catch(t){if(p.removeEventListener(`abort`,h),m(),g.aborted)return{hook:e,outcome:`cancelled`};throw t}}catch(r){let i=G(r);return K(`Hooks: Agent hook error: ${i}`),Date.now()-d,{hook:e,outcome:`non_blocking_error`,message:a2({type:`hook_non_blocking_error`,hookName:t,toolUseID:l,hookEvent:n,stderr:`Error executing agent hook: ${i}`,stdout:``,exitCode:1})}}}var Lit=n((()=>{n0(),Ra(),Ps(),ds(),k1(),Fj(),WT(),g2(),J5(),q(),vi(),v3(),To(),j9(),_8(),zi(),Pw(),X5(),OY()}));function Rit(e){let t=pce(e);return t===4?zit(e):t===6&&Bit(e)}function zit(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 Bit(e){let t=e.toLowerCase();if(t===`::1`)return!1;if(t===`::`)return!0;let n=Hit(t);if(n!==null)return zit(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 Vit(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 Hit(e){let t=Vit(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 Uit(e,t,n){let r=`all`in t&&t.all===!0,i=pce(e);if(i!==0){if(Rit(e)){n(Wit(e,e),``);return}let t=i===6?6:4;r?n(null,[{address:e,family:t}]):n(null,e,t);return}kce(e,{all:!0},(t,i)=>{if(t){n(t,``);return}for(let{address:t}of i)if(Rit(t)){n(Wit(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 Wit(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 Git=n((()=>{}));async function Kit(){let{SandboxManager:e}=await import(`./sandbox-adapter-ClRO21Ci.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 qit(){let e=ar();return{allowedUrls:e.allowedHttpHookUrls,allowedEnvVars:e.httpHookAllowedEnvVars}}function Jit(e,t){let n=t.replace(/[.+?^${}()|[\]\\]/g,`\\$&`).replace(/\*/g,`.*`);return RegExp(`^${n}$`).test(e)}function Yit(e){return e.replace(/[\r\n\x00]/g,``)}function Xit(e,t){return Yit(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]??``:(K(`Hooks: env var $${i} not in allowedEnvVars, skipping interpolation`,{level:`warn`}),``)}))}async function Zit(e,t,n,r){let i=qit();if(i.allowedUrls!==void 0&&!i.allowedUrls.some(t=>Jit(e.url,t))){let t=`HTTP hook blocked: ${e.url} does not match any pattern in allowedHttpHookUrls`;return K(t,{level:`warn`}),{ok:!1,body:``,error:t}}let{signal:a,cleanup:o}=q5(r,{timeoutMs:e.timeout?e.timeout*1e3:Qit});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]=Xit(r,a)}let r=await Kit(),s=!r&&$ae()!==void 0&&!eoe(e.url);K(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 ue.post(e.url,n,{headers:t,signal:a,responseType:`text`,validateStatus:()=>!0,maxRedirects:0,proxy:r??!1,lookup:r||s?void 0:Uit});o();let l=c.data??``;return K(`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=G(e);return K(`Hooks: HTTP hook error: ${t}`,{level:`error`}),{ok:!1,body:``,error:t}}}var Qit,$it=n((()=>{de(),J5(),q(),vi(),Vs(),Ln(),Git(),Qit=600*1e3}));function eat(){let e=process.env.WORKMATE_SESSIONEND_HOOKS_TIMEOUT_MS,t=e?parseInt(e,10):NaN;return Number.isFinite(t)&&t>0?t:Vat}function tat({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(),G0({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&&oE({value:r3(`Stop hook blocking error from command "${a}": ${o||r}`),mode:`task-notification`})}),!0):n.background(e)?(b6e({processId:e,hookId:t,asyncResponse:r,hookEvent:i,hookName:a,command:o,shellCommand:n,pluginId:c}),!0):!1}function Z5(){return!jr()&&!Zi()}function Q5(e,t,n){let r=t??Kr(),i=n?.agentType??kne();return{session_id:r,transcript_path:m6(r),cwd:U(),permission_mode:e,agent_id:n?.agentId,agent_type:i}}function nat(e){let t=wi(e),n=K5().safeParse(t);return n.success?(K(`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(`
|
|
3078
3078
|
`)}\n\nThe hook's output was: ${W(t,null,2)}`}}function rat(e){let t=e.trim();if(!t.startsWith(`{`))return K(`Hook output does not start with {, treating as plain text`),{plainText:e};try{let n=nat(t);if(`json`in n)return n;let r=`${n.validationError}\n\nExpected schema:\n${W({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 K(r),{plainText:e,validationError:r}}catch(t){return K(`Failed to parse hook output as JSON: ${t}`),{plainText:e}}}function iat(e){let t=e.trim();if(t===``){let e=K5().safeParse({});if(e.success)return K(`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)}\u2026`:t}`;return K(e),{validationError:e}}try{let e=nat(t);return`json`in e||K(e.validationError),e}catch(e){let t=`HTTP hook must return valid JSON, but parsing failed: ${e}`;return K(t),{validationError:t}}}function $5({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: ${W(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?a2({type:`hook_blocking_error`,hookName:n,toolUseID:r,hookEvent:i,blockingError:u.blockingError}):a2({type:`hook_success`,hookName:n,toolUseID:r,hookEvent:i,content:``,stdout:o,stderr:s,exitCode:c,command:t,durationMs:l})}}async function e7(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=Na()===`windows`,_=e.shell??`bash`,v=_===`powershell`,y=g&&!v?e=>Et(e):e=>e,b=Wr(),x=e.command,S;if(s){if(!await Qt(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(ty(c));x=x.replace(/\$\{CLAUDE_PLUGIN_DATA\}/g,()=>e)}c&&(S=lI(c),x=sI(x,S))}g&&!v&&x.trim().match(/\.sh(\s|$|")/)&&(x.trim().startsWith(`bash `)||(x=`bash ${x}`));let C=!v&&process.env.WORKMATE_SHELL_PREFIX?U_e(process.env.WORKMATE_SHELL_PREFIX,x):x,w=e.timeout?e.timeout*1e3:g7,T={...jb(),CLAUDE_PROJECT_DIR:y(b)};if(s&&(T.CLAUDE_PLUGIN_ROOT=y(s),c&&(T.CLAUDE_PLUGIN_DATA=y(ty(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 o_e(t,o));let E=U(),D=await Qt(E)?E:ri();D!==E&&K(`Hooks: cwd ${E} not found, falling back to original cwd`,{level:`warn`});let O=C;if(!v&&wg.isSandboxingEnabled())try{O=await wg.wrapWithSandbox(C,void 0,{network:{allowedDomains:[],deniedDomains:[]},filesystem:{allowWrite:[`/`],denyWrite:[],allowRead:[],denyRead:[]}},i),K(`Hook command sandboxed (network-only): ${e.command}`,{level:`verbose`})}catch(e){K(`Failed to sandbox hook command, running unsandboxed: ${G(e)}`,{level:`warn`})}let k;if(_===`powershell`){let t=await Bb();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.`);k=tl(t,sve(C),{env:T,cwd:D,windowsHide:!0})}else{let e=!g||Aee();k=tl(O,[],{env:T,cwd:D,shell:e,windowsHide:!0})}let A=new qy(`hook_${k.pid}`,null),ee=_it(k,i,w,A),te=!1,ne=!1;if((e.async||e.asyncRewake)&&!u){let i=`async_hook_${k.pid}`;if(K(`Hooks: Config-based async hook, backgrounding process ${i}`),k.stdin.write(`${r}\n`,`utf8`),k.stdin.end(),ne=!0,tat({processId:i,hookId:a,shellCommand:ee,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 re=``,ie=``,ae=``;k.stdout.setEncoding(`utf8`),k.stderr.setEncoding(`utf8`);let j=!1,oe=null,se=new Promise(e=>{oe=e}),ce=new Set,M=Promise.resolve(),N=``;k.stdout.on(`data`,r=>{if(re+=r,ae+=r,d){N+=r;let e=N.split(`
|
|
3079
3079
|
`);N=e.pop()??``;for(let t of e){let e=t.trim();if(e)try{let t=wi(e),n=Dit().safeParse(t);if(n.success){ce.add(e),K(`Hooks: Detected prompt request from hook: ${e}`);let t=n.data,r=d;M=M.then(async()=>{try{let e=await r(t);k.stdin.write(`${W(e)}\n`,`utf8`)}catch(e){K(`Hooks: Prompt request handling failed: ${e}`),k.stdin.destroy()}})}}catch{}}}if(!j){let r=Ya(re).trim();if(!r.includes(`}`))return;j=!0,K(`Hooks: Checking first line for async: ${r}`);try{let i=wi(r);if(K(`Hooks: Parsed initial response: ${W(i)}`),G5(i)&&!u){let r=`async_hook_${k.pid}`;K(`Hooks: Detected async hook, backgrounding process ${r}`),tat({processId:r,hookId:a,shellCommand:ee,asyncResponse:i,hookEvent:t,hookName:n,command:e.command,pluginId:c})&&(te=!0,oe?.({stdout:re,stderr:ie,output:ae,status:0}))}else G5(i)&&u?K(`Hooks: Detected async hook but forceSyncExecution is true, waiting for completion`):K(`Hooks: Initial response is not async, continuing normal processing`)}catch(e){K(`Hooks: Failed to parse initial response as JSON: ${e}`)}}}),k.stderr.on(`data`,e=>{ie+=e,ae+=e});let le=g6e({hookId:a,hookName:n,hookEvent:t,getOutput:async()=>({stdout:re,stderr:ie,output:ae})}),ue=new Promise(e=>{k.stdout.on(`end`,()=>e())}),de=new Promise(e=>{k.stderr.on(`end`,()=>e())}),fe=ne?Promise.resolve():new Promise((e,t)=>{k.stdin.on(`error`,e=>{d?K(`Hooks: stdin error during prompt flow (likely process exited): ${e}`):t(e)}),k.stdin.write(`${r}\n`,`utf8`),d||k.stdin.end(),e()}),pe=new Promise((e,t)=>{k.on(`error`,t)}),me=new Promise(e=>{let t=null;k.on(`close`,n=>{t=n??1,Promise.all([ue,de]).then(()=>{e({stdout:ce.size===0?re:re.split(`
|
|
3080
3080
|
`).filter(e=>!ce.has(e.trim())).join(`
|
|
@@ -3271,8 +3271,8 @@ The user context may include a \`terminalFocus\` field indicating whether the us
|
|
|
3271
3271
|
`)].filter(Boolean)}function tst(e,t){if(Object.entries(t).length===0)return e;let{agentsMd:n,...r}=t,i=[];n&&i.push(Q({content:`<project-instructions>\n${n}\n</project-instructions>\n`,isMeta:!0}));let a=Object.entries(r);return a.length>0&&i.push(Q({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(`
|
|
3272
3272
|
`)}
|
|
3273
3273
|
|
|
3274
|
-
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 nst(e,t){if(Kot())return;let[{tools:n},r,i,a]=await Promise.all([wVe(e),O1(t),fO(),dO()]);(a.gitStatus?.length??0)+(i.agentsMd?.length??0);let o=U(),s=k8(A8(t),o);await Coe(o,AbortSignal.timeout(1e3),s);let c=0,l=0,u=r.filter(e=>!e.isMcp);n.length,u.length;let d=new Set;for(let e of n){let t=e.name.split(`__`);t.length>=3&&t[1]&&d.add(t[1])}d.size;for(let e of n){let t=`inputJSONSchema`in e&&e.inputJSONSchema?e.inputJSONSchema:MO(e.inputSchema);c+=C3(W(t))}for(let e of u){let t=`inputJSONSchema`in e&&e.inputJSONSchema?e.inputJSONSchema:MO(e.inputSchema);l+=C3(W(t))}}function rst(e,t,n){switch(e.name){case ts:{let e=Od(n),r=Dd(n);return Ad(),e===null?t:{...t,plan:e,planFilePath:r}}case dB.name:{let e=dB.inputSchema.parse(t),{command:n,timeout:r,description:i}=e,a=U(),o=n.replace(`cd ${a} && `,``);Na()===`windows`&&(o=o.replace(`cd ${Et(a)} && `,``)),o=o.replace(/\\\\;/g,`\\;`),/^echo\s+["']?[^|&;><]*["']?$/i.test(o.trim());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 RX.name:{let e=RX.inputSchema.parse(t),{file_path:n,edits:r}=pCe({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 HI.name:{let e=HI.inputSchema.parse(t),n=/\.(md|mdx)$/i.test(e.file_path);return{file_path:e.file_path,content:n?e.content:lCe(e.content)}}case en:{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 ist(e,t){switch(e.name){case ts:if(t&&typeof t==`object`&&(`plan`in t||`planFilePath`in t)){let{plan:e,planFilePath:n,...r}=t;return r}return t;case RX.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 U7,W7=n((()=>{V7(),pO(),qot(),Ra(),wY(),fB(),zX(),Nw(),UI(),k1(),Ju(),O3(),ks(),ht(),Hg(),fi(),q(),g(),v3(),ho(),B8(),Nd(),Fa(),qs(),zi(),Xot(),Lt(),PO(),U7=!1}));function ast(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||h(process.env.USE_API_CLEAR_TOOL_RESULTS),o=h(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):G7,t=process.env.API_TARGET_INPUT_TOKENS?parseInt(process.env.API_TARGET_INPUT_TOKENS,10):K7,n={type:`clear_tool_uses_20250919`,trigger:{type:`input_tokens`,value:e},clear_at_least:{type:`input_tokens`,value:e-t},clear_tool_inputs:ost};i.push(n)}if(o){let e=process.env.API_MAX_INPUT_TOKENS?parseInt(process.env.API_MAX_INPUT_TOKENS,10):G7,t=process.env.API_TARGET_INPUT_TOKENS?parseInt(process.env.API_TARGET_INPUT_TOKENS,10):K7,n={type:`clear_tool_uses_20250919`,trigger:{type:`input_tokens`,value:e},clear_at_least:{type:`input_tokens`,value:e-t},exclude_tools:sst};i.push(n)}return i.length>0?{edits:i}:void 0}var G7,K7,ost,sst,cst=n((()=>{Os(),Ms(),Rs(),Yo(),Ko(),_s(),Is(),g(),G7=18e4,K7=4e4,ost=[...Sae,Xo,rs,cs],sst=[Cs,ls,ys]})),lst,ust=n((()=>{lst={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 dst(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 fst=n((()=>{})),pst=n((()=>{T_()}));function mst(e){if(e instanceof yi){let t=e.error;if(t?.error?.message)return t.error.message}return e instanceof Error?e.message:String(e)}function hst({headers:e,baseUrl:t}){if(e){let t=[];e.forEach((e,n)=>t.push(n));for(let[e,{prefixes:n}]of Object.entries(xst))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(Sst))if(n.some(t=>e.endsWith(t)))return t}catch{}}function q7(){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 gst(){let e=new Date(`2026-08-
|
|
3275
|
-
`)||void 0,te=_.some(e=>{let t=e.message.content;return Array.isArray(t)?t.some(e=>typeof e!=`string`&&e.type===`tool_use`):!1})),Goe(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:ee,thinkingOutput:void 0,hasToolCall:te,ttftMs:i??void 0,requestSetupMs:b,attemptStartTimes:x})}var xst,Sst,Cst=n((()=>{_i(),H(),q(),Ta(),ho(),zi(),ic(),nc(),Bj(),Ra(),ec(),pst(),rD(),IE(),xst={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-`]}},Sst={databricks:[`.cloud.databricks.com`,`.azuredatabricks.net`,`.gcp.databricks.com`]}}));function J7(e){let t=process.env.WORKMATE_EXTRA_BODY,n={};if(t)try{let e=gn(t);e&&typeof e==`object`&&!Array.isArray(e)?n={...e}:K(`WORKMATE_EXTRA_BODY env var must be a JSON object, but was given ${t}`,{level:`error`})}catch(e){K(`Error parsing WORKMATE_EXTRA_BODY: ${G(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 wst(e){return!(h(process.env.DISABLE_PROMPT_CACHING)||h(process.env.DISABLE_PROMPT_CACHING_HAIKU)&&e===Bo()||h(process.env.DISABLE_PROMPT_CACHING_SONNET)&&e===Fo()||h(process.env.DISABLE_PROMPT_CACHING_OPUS)&&e===Oie())}function Y7({scope:e,querySource:t}={}){return{type:`ephemeral`,...Tst(t)&&{ttl:`1h`},...e===`global`&&{scope:e}}}function Tst(e){if(uo()===`bedrock`&&h(process.env.ENABLE_PROMPT_CACHING_1H_BEDROCK))return!0;let t=gne();if(t===null&&(t=!1,rre(t)),!t)return!1;let n=Fne();return n===null&&(n={}.allowlist??[],pne(n)),e!==void 0&&n.some(t=>t.endsWith(`*`)?e.startsWith(t.slice(0,-1)):e===t)}function Est(e,t,n){!e||`task_budget`in t||!Fg()||(t.task_budget={type:`tokens`,total:e.total,...e.remaining!==void 0&&{remaining:e.remaining}},n.includes(`task-budgets-2026-03-13`)||n.push(Sie))}function X7(){let e={},t=process.env.WORKMATE_EXTRA_METADATA;if(t){let n=gn(t,!1);n&&typeof n==`object`&&!Array.isArray(n)?e=n:K(`WORKMATE_EXTRA_METADATA env var must be a JSON object, but was given ${t}`,{level:`error`})}return{user_id:W({...e,device_id:qre(),account_uuid:``,session_id:Kr()})}}function Dst(e,t=!1,n,r){return t?typeof e.message.content==`string`?{role:`user`,content:[{type:`text`,text:e.message.content,...n&&{cache_control:Y7({querySource:r})}}]}:{role:`user`,content:e.message.content.map((t,i)=>({...t,...i===e.message.content.length-1&&n?{cache_control:Y7({querySource:r})}:{}}))}:{role:`user`,content:Array.isArray(e.message.content)?[...e.message.content]:e.message.content}}function Ost(e,t=!1,n,r){return t?typeof e.message.content==`string`?{role:`assistant`,content:[{type:`text`,text:e.message.content,...n&&{cache_control:Y7({querySource:r})}}]}:{role:`assistant`,content:e.message.content.map((t,i)=>{let a=kst(t);return{...a,...i===e.message.content.length-1&&a.type!==`thinking`&&a.type!==`redacted_thinking`&&!Yu(a)&&n?{cache_control:Y7({querySource:r})}:{}}})}:{role:`assistant`,content:typeof e.message.content==`string`?e.message.content:e.message.content.map(kst)}}function kst(e){if(typeof e==`string`||!(`_geminiThoughtSignature`in e))return e;let{_geminiThoughtSignature:t,...n}=e;return n}async function Z7({messages:e,systemPrompt:t,thinkingConfig:n,tools:r,signal:i,options:a}){let o;for await(let s of Uet(e,async function*(){yield*Ist(e,t,n,r,i,a)}))s.type===`assistant`&&(o=s);if(!o)throw i.aborted?new Di:Error(`No assistant message found`);return o}async function*Ast({messages:e,systemPrompt:t,thinkingConfig:n,tools:r,signal:i,options:a}){return yield*Uet(e,async function*(){yield*Ist(e,t,n,r,i,a)})}function jst(){return parseInt(process.env.API_TIMEOUT_MS||``,10)||(h(process.env.WORKMATE_REMOTE)?12e4:3e5)}async function*Mst(e,t,n,r,i,a){let o=jst(),s=oD(()=>Vo({maxRetries:0,model:e.model,fetchOverride:e.fetchOverride,source:e.source}),async(a,s,c)=>{let l=Date.now(),u=n(c);i(u),r(s,l,u.max_tokens);let d=Hst(u,Wst);try{return await a.beta.messages.create({...d,model:vo(d.model)},{signal:t.signal,timeout:o})}catch(t){throw t instanceof Di?t:(Sn(`error`,`cli_nonstreaming_fallback_error`),e.model,t instanceof Error&&t.name,t)}},{model:t.model,fallbackModel:t.fallbackModel,thinkingConfig:t.thinkingConfig,...Kf()&&{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 Nst(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n.type===`assistant`&&n.requestId)return n.requestId}}function Q7(e){return e.type===`image`||e.type===`document`}function Pst(e){return e.type===`tool_result`}function Fst(e,t){let n=0;for(let t of e)if(Array.isArray(t.message.content)){for(let e of t.message.content)if(Q7(e)&&n++,Pst(e)&&Array.isArray(e.content))for(let t of e.content)Q7(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||!Pst(e)||!Array.isArray(e.content))return e;let t=e.content.filter(e=>n>0&&Q7(e)?(n--,!1):!0);return t.length===e.content.length?e:{...e,content:t}}).filter(e=>n>0&&Q7(e)?(n--,!1):!0);return r===n?e:{...e,message:{...e.message,content:i}}})}async function*Ist(e,t,n,r,i,a){let o=Nst(e),s=uo()===`bedrock`&&a.model.includes(`application-inference-profile`)?await lo(a.model)??a.model:a.model;F1(`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=Lg(a.model,{isAgenticQuery:c});Gg()&&l.push(jie);let u;if(c&&Gg()){let e=a.advisorModel,t=Fpe();if(t!==void 0&&vo(t.baseModel)===vo(a.model)&&(e=t.advisorModel),e){let t=vo(Ho(e));qg(a.model)?Jg(t)?(u=t,K(`[AdvisorTool] Server-side tool enabled with ${u} as the advisor model`)):K(`[AdvisorTool] Skipping advisor - ${t} is not a valid advisor model`):K(`[AdvisorTool] Skipping advisor - base model ${a.model} does not support advisor`)}}let d=await HO(a.model,r,a.getToolPermissionContext,a.agents,`query`),f=new Set;if(d)for(let e of r)bs(e)&&f.add(e.name);d&&f.size===0&&!a.hasPendingMcpServers&&(K(`Tool search disabled: no deferred tools available to search`),d=!1);let p;p=d?r.filter(e=>!!(!f.has(e.name)||fs(e,`SearchExtraTools`))):r.filter(e=>!fs(e,ws));let m=Ig(),g=m&&p.some(e=>e.isMcp===!0);m&&!l.includes(`prompt-caching-scope-2026-01-05`)&&l.push(go);let _=m?g?`none`:`system_prompt`:`none`,v=await Promise.all(p.map(e=>H7(e,{getToolPermissionContext:a.getToolPermissionContext,tools:r,agents:a.agents,allowedAgentTypes:a.allowedAgentTypes,model:a.model})));d&&K(`Dynamic tool loading: 0/${f.size} deferred tools in API tools array (all via ExecuteExtraTool)`),F1(`query_tool_schema_build_end`),e.length,F1(`query_message_normalization_start`);let y=d3(e,p);if(F1(`query_message_normalization_end`),d||(y=y.map(e=>{switch(e.type){case`user`:return F9e(e);case`assistant`:return I9e(e);default:return e}})),y=H9e(y),l.includes(`advisor-tool-2026-03-01`)||(y=U9e(y)),y=Fst(y,100),uo()===`openai`){let{queryModelOpenAI:e}=await import(`./openai-
|
|
3274
|
+
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 nst(e,t){if(Kot())return;let[{tools:n},r,i,a]=await Promise.all([wVe(e),O1(t),fO(),dO()]);(a.gitStatus?.length??0)+(i.agentsMd?.length??0);let o=U(),s=k8(A8(t),o);await Coe(o,AbortSignal.timeout(1e3),s);let c=0,l=0,u=r.filter(e=>!e.isMcp);n.length,u.length;let d=new Set;for(let e of n){let t=e.name.split(`__`);t.length>=3&&t[1]&&d.add(t[1])}d.size;for(let e of n){let t=`inputJSONSchema`in e&&e.inputJSONSchema?e.inputJSONSchema:MO(e.inputSchema);c+=C3(W(t))}for(let e of u){let t=`inputJSONSchema`in e&&e.inputJSONSchema?e.inputJSONSchema:MO(e.inputSchema);l+=C3(W(t))}}function rst(e,t,n){switch(e.name){case ts:{let e=Od(n),r=Dd(n);return Ad(),e===null?t:{...t,plan:e,planFilePath:r}}case dB.name:{let e=dB.inputSchema.parse(t),{command:n,timeout:r,description:i}=e,a=U(),o=n.replace(`cd ${a} && `,``);Na()===`windows`&&(o=o.replace(`cd ${Et(a)} && `,``)),o=o.replace(/\\\\;/g,`\\;`),/^echo\s+["']?[^|&;><]*["']?$/i.test(o.trim());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 RX.name:{let e=RX.inputSchema.parse(t),{file_path:n,edits:r}=pCe({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 HI.name:{let e=HI.inputSchema.parse(t),n=/\.(md|mdx)$/i.test(e.file_path);return{file_path:e.file_path,content:n?e.content:lCe(e.content)}}case en:{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 ist(e,t){switch(e.name){case ts:if(t&&typeof t==`object`&&(`plan`in t||`planFilePath`in t)){let{plan:e,planFilePath:n,...r}=t;return r}return t;case RX.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 U7,W7=n((()=>{V7(),pO(),qot(),Ra(),wY(),fB(),zX(),Nw(),UI(),k1(),Ju(),O3(),ks(),ht(),Hg(),fi(),q(),g(),v3(),ho(),B8(),Nd(),Fa(),qs(),zi(),Xot(),Lt(),PO(),U7=!1}));function ast(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||h(process.env.USE_API_CLEAR_TOOL_RESULTS),o=h(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):G7,t=process.env.API_TARGET_INPUT_TOKENS?parseInt(process.env.API_TARGET_INPUT_TOKENS,10):K7,n={type:`clear_tool_uses_20250919`,trigger:{type:`input_tokens`,value:e},clear_at_least:{type:`input_tokens`,value:e-t},clear_tool_inputs:ost};i.push(n)}if(o){let e=process.env.API_MAX_INPUT_TOKENS?parseInt(process.env.API_MAX_INPUT_TOKENS,10):G7,t=process.env.API_TARGET_INPUT_TOKENS?parseInt(process.env.API_TARGET_INPUT_TOKENS,10):K7,n={type:`clear_tool_uses_20250919`,trigger:{type:`input_tokens`,value:e},clear_at_least:{type:`input_tokens`,value:e-t},exclude_tools:sst};i.push(n)}return i.length>0?{edits:i}:void 0}var G7,K7,ost,sst,cst=n((()=>{Os(),Ms(),Rs(),Yo(),Ko(),_s(),Is(),g(),G7=18e4,K7=4e4,ost=[...Sae,Xo,rs,cs],sst=[Cs,ls,ys]})),lst,ust=n((()=>{lst={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 dst(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 fst=n((()=>{})),pst=n((()=>{T_()}));function mst(e){if(e instanceof yi){let t=e.error;if(t?.error?.message)return t.error.message}return e instanceof Error?e.message:String(e)}function hst({headers:e,baseUrl:t}){if(e){let t=[];e.forEach((e,n)=>t.push(n));for(let[e,{prefixes:n}]of Object.entries(xst))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(Sst))if(n.some(t=>e.endsWith(t)))return t}catch{}}function q7(){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 gst(){let e=new Date(`2026-08-30T09:21:59.826Z`).getTime();if(!isNaN(e))return Math.floor((Date.now()-e)/6e4)}function _st({model:e,messagesLength:t,temperature:n,betas:r,permissionMode:i,querySource:a,queryTracking:o,thinkingConfig:s,fastMode:c,previousRequestId:l}){s?.type;let u=s?.type===`enabled`?s.budgetTokens:void 0;fo(),gst(),{...r?.length?{betas:r.join(`,`)}:{}},{...o?{queryChainId:o.chainId,queryDepth:o.depth}:{}},{...u!==void 0&&{thinkingBudgetTokens:u}},{...l?{previousRequestId:l}:{},...q7()}}function vst({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 _=hst({headers:e instanceof yi&&e.headers?e.headers:d,baseUrl:process.env.ANTHROPIC_BASE_URL}),v=mst(e),y=e instanceof yi?String(e.status):void 0;swe(e);let b=x_(e);if(b){let e=b.isSSLError?` (SSL error)`:``;K(`Connection error details: code=${b.code}${e}, message=${b.message}`,{level:`error`})}let x=Rj();c&&K(`API error x-client-request-id=${c} (give this to the API team for server-log lookup)`,{level:`error`}),Y(e),fo(),{...x?{invokingRequestId:x.invokingRequestId,invocationKind:x.invocationKind}:{}},{...u?{promptCategory:u}:{},..._?{gateway:_}:{},...f?{queryChainId:f.chainId,queryDepth:f.depth}:{},...p?{querySource:p}:{}},{...g?{previousRequestId:g}:{},...q7()},tc(`api_error`,{model:t,error:v,status_code:String(y),duration_ms:String(i),attempt:String(o),speed:h?`fast`:`normal`}),Goe(m,{success:!1,statusCode:y?parseInt(y,10):void 0,error:v,attempt:o})}function yst({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,fastMode:x,previousRequestId:S,betas:C}){jr();let w=mre();process.argv.includes(`-p`)||process.argv.includes(`--print`);let T=Date.now(),E=zr();E===null||T-E;let D=Rj();({...t===e?{}:{preNormalizedModel:t},...C?.length?{betas:C.join(`,`)}:{}}),i.input_tokens,i.output_tokens,i.cache_read_input_tokens,i.cache_creation_input_tokens,gst(),fo(),{...D?{invokingRequestId:D.invokingRequestId,invocationKind:D.invocationKind}:{}},process.stdout.isTTY,{...m?{gateway:m}:{},...h?{queryChainId:h.chainId,queryDepth:h.depth}:{}},{..._?{globalCacheStrategy:_}:{},...v===void 0?{}:{textContentLength:v},...y===void 0?{}:{thinkingContentLength:y},...b===void 0?{}:{toolUseContentLengths:W(b)}},{...S?{previousRequestId:S}:{},...w?{isPostCompaction:w}:{},...q7()},Zr(T)}function bst({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=hst({headers:p,baseUrl:process.env.ANTHROPIC_BASE_URL}),E,D,O;if(_){let e=0,t=0,n=!1,r={};for(let i of _){let a=Array.isArray(i.message.content)?i.message.content:[];for(let i of a)if(typeof i!=`string`){if(i.type===`text`)e+=i.text.length;else if(i.type===`thinking`)t+=i.thinking.length;else if(i.type===`tool_use`||i.type===`server_tool_use`||i.type===`mcp_tool_use`){let e=W(i.input).length,t=Zs(i.name);r[t]=(r[t]??0)+e,n=!0}}}E=e,D=t>0?t:void 0,O=n?r:void 0}let k=Date.now()-n,A=Date.now()-r;tre(A,k),yst({model:e,preNormalizedModel:t,messageCount:s,messageTokens:c,usage:a,durationMs:k,durationMsIncludingRetries:A,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:O,fastMode:S,previousRequestId:C,betas:w}),tc(`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 ee,te;Qs()&&_&&(ee=_.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(`
|
|
3275
|
+
`)||void 0,te=_.some(e=>{let t=e.message.content;return Array.isArray(t)?t.some(e=>typeof e!=`string`&&e.type===`tool_use`):!1})),Goe(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:ee,thinkingOutput:void 0,hasToolCall:te,ttftMs:i??void 0,requestSetupMs:b,attemptStartTimes:x})}var xst,Sst,Cst=n((()=>{_i(),H(),q(),Ta(),ho(),zi(),ic(),nc(),Bj(),Ra(),ec(),pst(),rD(),IE(),xst={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-`]}},Sst={databricks:[`.cloud.databricks.com`,`.azuredatabricks.net`,`.gcp.databricks.com`]}}));function J7(e){let t=process.env.WORKMATE_EXTRA_BODY,n={};if(t)try{let e=gn(t);e&&typeof e==`object`&&!Array.isArray(e)?n={...e}:K(`WORKMATE_EXTRA_BODY env var must be a JSON object, but was given ${t}`,{level:`error`})}catch(e){K(`Error parsing WORKMATE_EXTRA_BODY: ${G(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 wst(e){return!(h(process.env.DISABLE_PROMPT_CACHING)||h(process.env.DISABLE_PROMPT_CACHING_HAIKU)&&e===Bo()||h(process.env.DISABLE_PROMPT_CACHING_SONNET)&&e===Fo()||h(process.env.DISABLE_PROMPT_CACHING_OPUS)&&e===Oie())}function Y7({scope:e,querySource:t}={}){return{type:`ephemeral`,...Tst(t)&&{ttl:`1h`},...e===`global`&&{scope:e}}}function Tst(e){if(uo()===`bedrock`&&h(process.env.ENABLE_PROMPT_CACHING_1H_BEDROCK))return!0;let t=gne();if(t===null&&(t=!1,rre(t)),!t)return!1;let n=Fne();return n===null&&(n={}.allowlist??[],pne(n)),e!==void 0&&n.some(t=>t.endsWith(`*`)?e.startsWith(t.slice(0,-1)):e===t)}function Est(e,t,n){!e||`task_budget`in t||!Fg()||(t.task_budget={type:`tokens`,total:e.total,...e.remaining!==void 0&&{remaining:e.remaining}},n.includes(`task-budgets-2026-03-13`)||n.push(Sie))}function X7(){let e={},t=process.env.WORKMATE_EXTRA_METADATA;if(t){let n=gn(t,!1);n&&typeof n==`object`&&!Array.isArray(n)?e=n:K(`WORKMATE_EXTRA_METADATA env var must be a JSON object, but was given ${t}`,{level:`error`})}return{user_id:W({...e,device_id:qre(),account_uuid:``,session_id:Kr()})}}function Dst(e,t=!1,n,r){return t?typeof e.message.content==`string`?{role:`user`,content:[{type:`text`,text:e.message.content,...n&&{cache_control:Y7({querySource:r})}}]}:{role:`user`,content:e.message.content.map((t,i)=>({...t,...i===e.message.content.length-1&&n?{cache_control:Y7({querySource:r})}:{}}))}:{role:`user`,content:Array.isArray(e.message.content)?[...e.message.content]:e.message.content}}function Ost(e,t=!1,n,r){return t?typeof e.message.content==`string`?{role:`assistant`,content:[{type:`text`,text:e.message.content,...n&&{cache_control:Y7({querySource:r})}}]}:{role:`assistant`,content:e.message.content.map((t,i)=>{let a=kst(t);return{...a,...i===e.message.content.length-1&&a.type!==`thinking`&&a.type!==`redacted_thinking`&&!Yu(a)&&n?{cache_control:Y7({querySource:r})}:{}}})}:{role:`assistant`,content:typeof e.message.content==`string`?e.message.content:e.message.content.map(kst)}}function kst(e){if(typeof e==`string`||!(`_geminiThoughtSignature`in e))return e;let{_geminiThoughtSignature:t,...n}=e;return n}async function Z7({messages:e,systemPrompt:t,thinkingConfig:n,tools:r,signal:i,options:a}){let o;for await(let s of Uet(e,async function*(){yield*Ist(e,t,n,r,i,a)}))s.type===`assistant`&&(o=s);if(!o)throw i.aborted?new Di:Error(`No assistant message found`);return o}async function*Ast({messages:e,systemPrompt:t,thinkingConfig:n,tools:r,signal:i,options:a}){return yield*Uet(e,async function*(){yield*Ist(e,t,n,r,i,a)})}function jst(){return parseInt(process.env.API_TIMEOUT_MS||``,10)||(h(process.env.WORKMATE_REMOTE)?12e4:3e5)}async function*Mst(e,t,n,r,i,a){let o=jst(),s=oD(()=>Vo({maxRetries:0,model:e.model,fetchOverride:e.fetchOverride,source:e.source}),async(a,s,c)=>{let l=Date.now(),u=n(c);i(u),r(s,l,u.max_tokens);let d=Hst(u,Wst);try{return await a.beta.messages.create({...d,model:vo(d.model)},{signal:t.signal,timeout:o})}catch(t){throw t instanceof Di?t:(Sn(`error`,`cli_nonstreaming_fallback_error`),e.model,t instanceof Error&&t.name,t)}},{model:t.model,fallbackModel:t.fallbackModel,thinkingConfig:t.thinkingConfig,...Kf()&&{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 Nst(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n.type===`assistant`&&n.requestId)return n.requestId}}function Q7(e){return e.type===`image`||e.type===`document`}function Pst(e){return e.type===`tool_result`}function Fst(e,t){let n=0;for(let t of e)if(Array.isArray(t.message.content)){for(let e of t.message.content)if(Q7(e)&&n++,Pst(e)&&Array.isArray(e.content))for(let t of e.content)Q7(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||!Pst(e)||!Array.isArray(e.content))return e;let t=e.content.filter(e=>n>0&&Q7(e)?(n--,!1):!0);return t.length===e.content.length?e:{...e,content:t}}).filter(e=>n>0&&Q7(e)?(n--,!1):!0);return r===n?e:{...e,message:{...e.message,content:i}}})}async function*Ist(e,t,n,r,i,a){let o=Nst(e),s=uo()===`bedrock`&&a.model.includes(`application-inference-profile`)?await lo(a.model)??a.model:a.model;F1(`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=Lg(a.model,{isAgenticQuery:c});Gg()&&l.push(jie);let u;if(c&&Gg()){let e=a.advisorModel,t=Fpe();if(t!==void 0&&vo(t.baseModel)===vo(a.model)&&(e=t.advisorModel),e){let t=vo(Ho(e));qg(a.model)?Jg(t)?(u=t,K(`[AdvisorTool] Server-side tool enabled with ${u} as the advisor model`)):K(`[AdvisorTool] Skipping advisor - ${t} is not a valid advisor model`):K(`[AdvisorTool] Skipping advisor - base model ${a.model} does not support advisor`)}}let d=await HO(a.model,r,a.getToolPermissionContext,a.agents,`query`),f=new Set;if(d)for(let e of r)bs(e)&&f.add(e.name);d&&f.size===0&&!a.hasPendingMcpServers&&(K(`Tool search disabled: no deferred tools available to search`),d=!1);let p;p=d?r.filter(e=>!!(!f.has(e.name)||fs(e,`SearchExtraTools`))):r.filter(e=>!fs(e,ws));let m=Ig(),g=m&&p.some(e=>e.isMcp===!0);m&&!l.includes(`prompt-caching-scope-2026-01-05`)&&l.push(go);let _=m?g?`none`:`system_prompt`:`none`,v=await Promise.all(p.map(e=>H7(e,{getToolPermissionContext:a.getToolPermissionContext,tools:r,agents:a.agents,allowedAgentTypes:a.allowedAgentTypes,model:a.model})));d&&K(`Dynamic tool loading: 0/${f.size} deferred tools in API tools array (all via ExecuteExtraTool)`),F1(`query_tool_schema_build_end`),e.length,F1(`query_message_normalization_start`);let y=d3(e,p);if(F1(`query_message_normalization_end`),d||(y=y.map(e=>{switch(e.type){case`user`:return F9e(e);case`assistant`:return I9e(e);default:return e}})),y=H9e(y),l.includes(`advisor-tool-2026-03-01`)||(y=U9e(y)),y=Fst(y,100),uo()===`openai`){let{queryModelOpenAI:e}=await import(`./openai-CyJ3m4dI.js`);yield*e(y,t,r,i,a);return}if(uo()===`gemini`){let{queryModelGemini:e}=await import(`./gemini-I-M5_sUA.js`);yield*e(y,t,p,i,a,n);return}if(uo()===`grok`){let{queryModelGrok:e}=await import(`./grok-ZLjJN6b9.js`);yield*e(y,t,p,i,a);return}if(y.length,d&&!GO()){let e=r.filter(e=>f.has(e.name)).map(Kae).sort().join(`
|
|
3276
3276
|
`);if(e){let t=new Set(e.split(`
|
|
3277
3277
|
`));if([...t].some(e=>!n9.has(e))){n9.clear();for(let e of t)n9.add(e);y=[...y,Q({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})]}}}t=$g([Hu(),Vu({isNonInteractive:a.isNonInteractiveSession,hasAppendSystemPrompt:a.hasAppendSystemPrompt}),...t,...u?[Yg]:[]].filter(Boolean));{let e=foe(),n=poe();if(Nc(e)||Nc(n)){let n=zc();if(t=$g([...t,`<!-- cache-break nonce: ${n} -->`]),Nc(e))try{Zse(e)}catch{}}}Qot(t);let b=a.enablePromptCaching??wst(a.model),x=Vst(t,b,{skipGlobalCacheForSystemPrompt:g,querySource:a.querySource}),S=l.length>0,C=[...a.extraToolSchemas??[]];u&&C.push({type:`advisor_20260301`,name:`advisor`,model:u});let w=[...v,...C],T=Kf()&&qf()&&!Zf()&&Yf(a.model)&&!!a.fastMode,E=Xne()===!0;!E&&c&&Fg()&&OT()&&(E=!0,cne(!0));let D=ene()===!0;!D&&T&&(D=!0,Sre(!0));let O=Hne()===!0;WIe({system:x,toolSchemas:w.filter(e=>!(`defer_loading`in e&&e.defer_loading)),querySource:a.querySource,model:a.model,agentId:a.agentId,fastMode:D,globalCacheStrategy:_,betas:l,autoModeActive:E,isUsingOverage:u0.isUsingOverage??!1,cachedMCEnabled:O,extraBodyParams:J7()});let k=Qs()?{systemPrompt:t.join(`
|
|
3278
3278
|
|
|
@@ -3342,4 +3342,4 @@ Note that not every command has a prefix. If a command has no prefix, return "no
|
|
|
3342
3342
|
|
|
3343
3343
|
ONLY return the prefix. Do not return any other text, markdown markers, or other content or formatting.`,eventName:`tengu_bash_prefix`,querySource:`bash_extract_prefix`,preCheck:e=>ect(e)?{commandPrefix:e}:null}),m9=Kst(p9,a9),h9=new Set([`&&`,`||`,`;`,`;;`,`|`]),cct=new Set([...h9,`>&`,`>`,`>>`])}));function lct(e){let t=xn().sandbox?.excludedCommands??[];if(t.length===0)return!1;let n;try{n=a9(e)}catch{n=[e]}for(let e of n){let n=[e.trim()],r=new Set(n),i=0;for(;i<n.length;){let e=n.length;for(let t=i;t<e;t++){let e=n[t],i=bB(e,LB);r.has(i)||(n.push(i),r.add(i));let a=yB(e);r.has(a)||(n.push(a),r.add(a))}i=e}for(let e of t){let t=FB(e);for(let e of n)switch(t.type){case`prefix`:if(e===t.prefix||e.startsWith(`${t.prefix} `))return!0;break;case`exact`:if(e===t.command)return!0;break;case`wildcard`:if(_B(t.pattern,e))return!0;break}}}return!1}function _9(e){return!(!wg.isSandboxingEnabled()||e.dangerouslyDisableSandbox&&wg.areUnsandboxedCommandsAllowed()||!e.command||lct(e.command))}var v9=n((()=>{g9(),Tg(),Ln(),VB()}));function uct(e){return dct.has(e)}var dct,fct=n((()=>{Zo(),ns(),ks(),Ms(),Yo(),Ko(),oze(),gae(),Ns(),as(),Fae(),kae(),ht(),qt(),os(),Qo(),As(),cU(),dct=new Set([cs,rs,Xo,`LSP`,ws,DJ,`ReadMcpResourceTool`,ss,$o,Bae,qo,Eae,yt,en,Ss,es,ts,Go,sU])}));function pct(e){return ete(e)}function y9(e){return k9.flatMap(t=>(e.alwaysAllowRules[t]||[]).map(e=>({source:t,ruleBehavior:`allow`,ruleValue:xr(e)})))}function b9(e,t){if(t){if(t.type===`classifier`)return`Classifier '${t.classifier}' requires approval for this ${e} command: ${t.reason}`;switch(t.type){case`hook`:return t.reason?`Hook '${t.hookName}' blocked this action: ${t.reason}`:`Hook '${t.hookName}' requires approval for this ${e} command`;case`rule`:return`Permission rule '${ot(t.rule.ruleValue)}' from ${pct(t.rule.source)} requires approval for this ${e} command`;case`subcommandResults`:{let n=[];for(let[r,i]of t.reasons)if(i.behavior===`ask`||i.behavior===`passthrough`)if(e===`Bash`){let{commandWithoutRedirections:e,redirections:t}=o9(r),i=t.length>0?e:r;n.push(i)}else n.push(r);if(n.length>0){let t=n.length;return`This ${e} command contains multiple operations. The following ${Za(t,`part`)} ${Za(t,`requires`,`require`)} approval: ${n.join(`, `)}`}return`This ${e} command contains multiple operations that require approval`}case`permissionPromptTool`:return`Tool '${t.permissionPromptToolName}' requires approval for this ${e} command`;case`sandboxOverride`:return`Run outside of the sandbox`;case`workingDir`:return t.reason;case`safetyCheck`:case`other`:return t.reason;case`mode`:return`Current permission mode (${pee(t.mode)}) requires approval for this ${e} command`;case`asyncAgent`:return t.reason}}return`Work Mate requested permissions to use ${e}, but you haven't granted it yet.`}function x9(e){return k9.flatMap(t=>(e.alwaysDenyRules[t]||[]).map(e=>({source:t,ruleBehavior:`deny`,ruleValue:xr(e)})))}function S9(e){return k9.flatMap(t=>(e.alwaysAskRules[t]||[]).map(e=>({source:t,ruleBehavior:`ask`,ruleValue:xr(e)})))}function C9(e,t){if(t.ruleValue.ruleContent!==void 0)return!1;let n=cr(e);if(t.ruleValue.toolName===n)return!0;let r=er(t.ruleValue.toolName),i=er(n);return r!==null&&i!==null&&(r.toolName===void 0||r.toolName===`*`)&&r.serverName===i.serverName}function mct(e,t){return y9(e).find(e=>C9(t,e))||null}function w9(e,t){return x9(e).find(e=>C9(t,e))||null}function hct(e,t){return S9(e).find(e=>C9(t,e))||null}function gct(e,t,n){return x9(e).find(e=>e.ruleValue.toolName===t&&e.ruleValue.ruleContent===n)||null}function T9(e,t,n){let r=new Set;for(let e of x9(t))e.ruleValue.toolName===n&&e.ruleValue.ruleContent!==void 0&&r.add(e.ruleValue.ruleContent);return e.filter(e=>!r.has(e.agentType))}function E9(e,t,n){return D9(e,cr(t),n)}function D9(e,t,n){let r=new Map,i=[];switch(n){case`allow`:i=y9(e);break;case`deny`:i=x9(e);break;case`ask`:i=S9(e);break}for(let e of i)e.ruleValue.toolName===t&&e.ruleValue.ruleContent!==void 0&&e.ruleBehavior===n&&r.set(e.ruleValue.ruleContent,e);return r}async function _ct(e,t,n,r,i,a){try{for await(let o of kat(e.name,n,t,r,i,a,r.abortController.signal)){if(!o.permissionRequestResult)continue;let n=o.permissionRequestResult;if(n.behavior===`allow`){let e=n.updatedInput??t;return n.updatedPermissions?.length&&(wj(n.updatedPermissions),r.setAppState(e=>({...e,toolPermissionContext:xj(e.toolPermissionContext,n.updatedPermissions)}))),{behavior:`allow`,updatedInput:e,decisionReason:{type:`hook`,hookName:`PermissionRequest`}}}if(n.behavior===`deny`)return n.interrupt&&(K(`Hook interrupt: tool=${e.name} hookMessage=${n.message}`),r.abortController.abort()),{behavior:`deny`,message:n.message||`Permission denied by hook`,decisionReason:{type:`hook`,hookName:`PermissionRequest`,reason:n.message}}}}catch(e){Y(Error(`PermissionRequest hook failed for headless agent`,{cause:Ei(e)}))}return null}function O9(e,t){e.localDenialTracking?Object.assign(e.localDenialTracking,t):e.setAppState(e=>e.denialTracking===t?e:{...e,denialTracking:t})}function vct(e,t,n,r,i,a,o){if(!$4e(e))return null;let s=e.totalDenials>=i0.maxTotal,c=t.toolPermissionContext.shouldAvoidPermissionPrompts,l=e.totalDenials,u=e.consecutiveDenials,d=s?`${l} actions were blocked this session. Please review the transcript before continuing.`:`${u} consecutive actions were blocked. Please review the transcript before continuing.`;if(r.message.id,Zs(i.name),c)throw new hi(`Agent aborted: too many classifier denials in headless mode`);K(`Classifier denial limit exceeded, falling back to prompting: ${d}`,{level:`warn`}),s&&O9(o,{...e,totalDenials:0,consecutiveDenials:0});let f=a.decisionReason?.type===`classifier`?a.decisionReason.classifier:`auto-mode`;return{...a,decisionReason:{type:`classifier`,classifier:f,reason:`${d}\n\nLatest blocked action: ${n}`}}}async function yct(e,t,n){let r=n.getAppState(),i=w9(r.toolPermissionContext,e);if(i)return{behavior:`deny`,decisionReason:{type:`rule`,rule:i},message:`Permission to use ${e.name} has been denied.`};let a=hct(r.toolPermissionContext,e);if(a&&!(e.name===`Bash`&&wg.isSandboxingEnabled()&&wg.isAutoAllowBashIfSandboxedEnabled()&&_9(t)))return{behavior:`ask`,decisionReason:{type:`rule`,rule:a},message:b9(e.name)};let o={behavior:`passthrough`,message:b9(e.name)};try{let r=e.inputSchema.parse(t);o=await e.checkPermissions(r,n)}catch(e){if(e instanceof hi||e instanceof Di)throw e;Y(e)}return o?.behavior===`deny`||o?.behavior===`ask`&&o.decisionReason?.type===`rule`&&o.decisionReason.rule.ruleBehavior===`ask`||o?.behavior===`ask`&&o.decisionReason?.type===`safetyCheck`?o:null}async function bct(e,t,n){if(n.abortController.signal.aborted)throw new hi;let r=n.getAppState(),i=w9(r.toolPermissionContext,e);if(i)return{behavior:`deny`,decisionReason:{type:`rule`,rule:i},message:`Permission to use ${e.name} has been denied.`};let a=hct(r.toolPermissionContext,e);if(a&&!(e.name===`Bash`&&wg.isSandboxingEnabled()&&wg.isAutoAllowBashIfSandboxedEnabled()&&_9(t)))return{behavior:`ask`,decisionReason:{type:`rule`,rule:a},message:b9(e.name)};let o={behavior:`passthrough`,message:b9(e.name)};try{let r=e.inputSchema.parse(t);o=await e.checkPermissions(r,n)}catch(e){if(e instanceof hi||e instanceof Di)throw e;Y(e)}if(o?.behavior===`deny`||e.requiresUserInteraction?.()&&o?.behavior===`ask`||o?.behavior===`ask`&&o.decisionReason?.type===`rule`&&o.decisionReason.rule.ruleBehavior===`ask`||o?.behavior===`ask`&&o.decisionReason?.type===`safetyCheck`)return o;if(r=n.getAppState(),r.toolPermissionContext.mode===`bypassPermissions`||r.toolPermissionContext.mode===`plan`&&r.toolPermissionContext.isBypassPermissionsModeAvailable)return{behavior:`allow`,updatedInput:Tct(o,t),decisionReason:{type:`mode`,mode:r.toolPermissionContext.mode}};let s=mct(r.toolPermissionContext,e);if(s)return{behavior:`allow`,updatedInput:Tct(o,t),decisionReason:{type:`rule`,rule:s}};let c=o.behavior===`passthrough`?{...o,behavior:`ask`,message:b9(e.name,o.decisionReason)}:o;return c.behavior===`ask`&&c.suggestions&&K(`Permission suggestions for ${e.name}: ${W(c.suggestions,null,2)}`),c}async function xct({rule:e,initialContext:t,setToolPermissionContext:n}){if(e.source===`policySettings`||e.source===`flagSettings`||e.source===`command`)throw Error(`Cannot delete permission rules from read-only settings`);let r=bj(t,{type:`removeRules`,rules:[e.ruleValue],behavior:e.ruleBehavior,destination:e.source});switch(e.source){case`localSettings`:case`userSettings`:case`projectSettings`:uEe(e);break;case`cliArg`:case`session`:break}n(r)}function Sct(e,t){let n=new Map;for(let t of e){let e=`${t.source}:${t.ruleBehavior}`;n.has(e)||n.set(e,[]),n.get(e).push(t.ruleValue)}let r=[];for(let[e,i]of n){let[n,a]=e.split(`:`);r.push({type:t,rules:i,behavior:a,destination:n})}return r}function Cct(e,t){return xj(e,Sct(t,`addRules`))}function wct(e,t){let n=e;if(pj()){let e=[`userSettings`,`projectSettings`,`localSettings`,`cliArg`,`session`],t=[`allow`,`deny`,`ask`];for(let r of e)for(let e of t)n=bj(n,{type:`replaceRules`,rules:[],behavior:e,destination:r})}for(let e of[`userSettings`,`projectSettings`,`localSettings`])for(let t of[`allow`,`deny`,`ask`])n=bj(n,{type:`replaceRules`,rules:[],behavior:t,destination:e});let r=Sct(t,`replaceRules`);return xj(n,r)}function Tct(e,t){return(`updatedInput`in e?e.updatedInput:void 0)??t}var k9,A9,j9=n((()=>{_i(),Hn(),nn(),v9(),xs(),Fs(),WX(),g9(),q(),vi(),Ta(),Tg(),Rn(),Qa(),Rt(),Ej(),Tt(),vj(),fct(),MT(),H(),Ra(),ec(),GB(),g(),_7(),v3(),_w(),zi(),e3e(),cU(),k9=[...rr,`cliArg`,`command`,`session`],A9=async(e,t,n,r,i)=>{let a=await bct(e,t,n);if(a.behavior===`allow`){let e=n.getAppState();{let t=n.localDenialTracking??e.denialTracking;e.toolPermissionContext.mode===`auto`&&t&&t.consecutiveDenials>0&&O9(n,r0(t))}return a}if(a.behavior===`ask`){let o=n.getAppState();if(o.toolPermissionContext.mode===`dontAsk`)return{behavior:`deny`,decisionReason:{type:`mode`,mode:`dontAsk`},message:Yme(e.name)};if(o.toolPermissionContext.mode===`auto`||o.toolPermissionContext.mode===`plan`&&OT()){if(a.decisionReason?.type===`safetyCheck`&&!a.decisionReason.classifierApprovable)return o.toolPermissionContext.shouldAvoidPermissionPrompts?{behavior:`deny`,message:a.message,decisionReason:{type:`asyncAgent`,reason:`Safety check requires interactive approval and permission prompts are not available in this context`}}:a;if(e.requiresUserInteraction?.()&&a.behavior===`ask`)return a;let i=n.localDenialTracking??o.denialTracking??Z4e();if(e.name===`PowerShell`)return o.toolPermissionContext.shouldAvoidPermissionPrompts?{behavior:`deny`,message:`PowerShell tool requires interactive approval`,decisionReason:{type:`asyncAgent`,reason:`PowerShell tool requires interactive approval and permission prompts are not available in this context`}}:(K(`Skipping auto mode classifier for ${e.name}: tool requires explicit user permission`),a);if(a.behavior===`ask`&&e.name!==`Agent`&&e.name!==`REPL`)try{let a=e.inputSchema.parse(t),o=await e.checkPermissions(a,{...n,getAppState:()=>{let e=n.getAppState();return{...e,toolPermissionContext:{...e.toolPermissionContext,mode:`acceptEdits`}}}});if(o.behavior===`allow`)return O9(n,r0(i)),K(`Skipping auto mode classifier for ${e.name}: would be allowed in acceptEdits mode`),Zs(e.name),y(),r.message.id,{behavior:`allow`,updatedInput:o.updatedInput??t,decisionReason:{type:`mode`,mode:`auto`}}}catch(e){if(e instanceof hi||e instanceof Di)throw e}if(uct(e.name))return O9(n,r0(i)),K(`Skipping auto mode classifier for ${e.name}: tool is on the safe allowlist`),Zs(e.name),y(),r.message.id,{behavior:`allow`,updatedInput:t,decisionReason:{type:`mode`,mode:`auto`}};let s=IIe(e.name,t),c;try{c=await aU(n.messages,s,n.options.tools,o.toolPermissionContext,n.abortController.signal)}finally{}if(c.unavailable||c.shouldBlock,c.usage&&c.model&&fw(c.model,c.usage),Zs(e.name),y(),r.message.id,c.model,c.shouldBlock&&i.consecutiveDenials+1,c.shouldBlock?i.totalDenials+1:i.totalDenials,c.usage?.inputTokens,c.usage?.outputTokens,c.usage?.cacheReadInputTokens,c.usage?.cacheCreationInputTokens,c.durationMs,c.promptLengths?.systemPrompt,c.promptLengths?.toolCalls,c.promptLengths?.userPrompts,Tre(),li(),ere(),cre(),c.stage,c.stage1Usage?.inputTokens,c.stage1Usage?.outputTokens,c.stage1Usage?.cacheReadInputTokens,c.stage1Usage?.cacheCreationInputTokens,c.stage1DurationMs,c.stage1RequestId,c.stage1MsgId,c.stage1Usage&&c.model&&fw(c.model,c.stage1Usage),c.stage2Usage?.inputTokens,c.stage2Usage?.outputTokens,c.stage2Usage?.cacheReadInputTokens,c.stage2Usage?.cacheCreationInputTokens,c.stage2DurationMs,c.stage2RequestId,c.stage2MsgId,c.stage2Usage&&c.model&&fw(c.model,c.stage2Usage),c.durationMs!==void 0&&fre(c.durationMs),c.shouldBlock){if(c.transcriptTooLong){if(o.toolPermissionContext.shouldAvoidPermissionPrompts)throw new hi(`Agent aborted: auto mode classifier transcript exceeded context window in headless mode`);return K(`Auto mode classifier transcript too long, falling back to normal permission handling`,{level:`warn`}),{...a,decisionReason:{type:`other`,reason:`Auto mode classifier transcript exceeded context window — falling back to manual approval`}}}if(c.unavailable)return o.toolPermissionContext.shouldAvoidPermissionPrompts?(K(`Auto mode classifier unavailable, denying with retry guidance (fail closed)`,{level:`warn`}),{behavior:`deny`,decisionReason:{type:`classifier`,classifier:`auto-mode`,reason:`Classifier unavailable`},message:Zme(e.name,c.model)}):(K(`Auto mode classifier unavailable, falling back to prompting with retry guidance (fail closed)`,{level:`warn`}),{behavior:`ask`,decisionReason:{type:`classifier`,classifier:`auto-mode`,reason:`Classifier unavailable`},message:Zme(e.name,c.model)});let t=Q4e(i);return O9(n,t),K(`Auto mode classifier blocked action: ${c.reason}`,{level:`warn`}),vct(t,o,c.reason,r,e,a,n)||{behavior:`deny`,decisionReason:{type:`classifier`,classifier:`auto-mode`,reason:c.reason},message:Xme(c.reason)}}return O9(n,r0(i)),{behavior:`allow`,updatedInput:t,decisionReason:{type:`classifier`,classifier:`auto-mode`,reason:c.reason}}}if(o.toolPermissionContext.shouldAvoidPermissionPrompts)return await _ct(e,t,i,n,o.toolPermissionContext.mode,a.suggestions)||{behavior:`deny`,decisionReason:{type:`asyncAgent`,reason:`Permission prompts are not available in this context`},message:Jme(e.name)}}return a}}));async function Ect(e,t){if(!e)return{resultType:`emptyPath`};let n=xc(Cn(e));try{if(!(await Zc(n)).isDirectory())return{resultType:`notADirectory`,directoryPath:e,absolutePath:n}}catch(t){let r=xi(t);if(r===`ENOENT`||r===`ENOTDIR`||r===`EACCES`||r===`EPERM`)return{resultType:`pathNotFound`,directoryPath:e,absolutePath:n};throw t}let r=T8(t);for(let t of r)if(D8(n,t))return{resultType:`alreadyInWorkingDirectory`,directoryPath:e,workingDir:t};return{resultType:`success`,absolutePath:n}}function Dct(e){switch(e.resultType){case`emptyPath`:return`Please provide a directory path.`;case`pathNotFound`:return`Path ${Be.bold(e.absolutePath)} was not found.`;case`notADirectory`:{let t=mc(e.absolutePath);return`${Be.bold(e.directoryPath)} is not a directory. Did you mean to add the parent directory ${Be.bold(t)}?`}case`alreadyInWorkingDirectory`:return`${Be.bold(e.directoryPath)} is already accessible within the existing working directory ${Be.bold(e.workingDir)}.`;case`success`:return`Added ${Be.bold(e.absolutePath)} as a working directory.`}}var Oct=n((()=>{Ve(),vi(),Kn(),B8()}));function kct(e,t){if(e!==`Bash`)return!1;if(t===void 0||t===``)return!0;let n=t.trim().toLowerCase();if(n===`*`)return!0;for(let e of T1e){let t=e.toLowerCase();if(n===t||n===`${t}:*`||n===`${t}*`||n===`${t} *`||n.startsWith(`${t} -`)&&n.endsWith(`*`))return!0}return!1}function Act(e,t){if(e!==`PowerShell`)return!1;if(t===void 0||t===``)return!0;let n=t.trim().toLowerCase();if(n===`*`)return!0;let r=[...Z$,`pwsh`,`powershell`,`cmd`,`wsl`,`iex`,`invoke-expression`,`icm`,`invoke-command`,`start-process`,`saps`,`start`,`start-job`,`sajb`,`start-threadjob`,`register-objectevent`,`register-engineevent`,`register-wmievent`,`register-scheduledjob`,`new-pssession`,`nsn`,`enter-pssession`,`etsn`,`add-type`,`new-object`];for(let e of r){if(n===e||n===`${e}:*`||n===`${e}*`||n===`${e} *`||n.startsWith(`${e} -`)&&n.endsWith(`*`))return!0;let t=e.indexOf(` `),r=t===-1?`${e}.exe`:`${e.slice(0,t)}.exe${e.slice(t)}`;if(n===r||n===`${r}:*`||n===`${r}*`||n===`${r} *`||n.startsWith(`${r} -`)&&n.endsWith(`*`))return!0}return!1}function jct(e,t){return Ht(e)===Ct}function Mct(e){if(rr.includes(e)){let t=Un(e);if(t){let e=bc(U(),t);return e.length<t.length?e:t}}return e}function Nct(e,t){return kct(e,t)||Act(e,t)||jct(e,t)}function Pct(e,t){let n=[];for(let t of e)if(t.ruleBehavior===`allow`&&Nct(t.ruleValue.toolName,t.ruleValue.ruleContent)){let e=t.ruleValue.ruleContent?`${t.ruleValue.toolName}(${t.ruleValue.ruleContent})`:`${t.ruleValue.toolName}(*)`;n.push({ruleValue:t.ruleValue,source:t.source,ruleDisplay:e,sourceDisplay:Mct(t.source)})}for(let e of t){let t=e.match(/^([^(]+)(?:\(([^)]*)\))?$/);if(t){let r=t[1].trim(),i=t[2]?.trim();Nct(r,i)&&n.push({ruleValue:{toolName:r,ruleContent:i},source:`cliArg`,ruleDisplay:i?e:`${r}(*)`,sourceDisplay:`--allowed-tools`})}}return n}function Fct(e){return[`userSettings`,`projectSettings`,`localSettings`,`session`,`cliArg`].includes(e)}function Ict(e,t){let n=new Map;for(let e of t){if(!Fct(e.source))continue;let t=e.source,r=n.get(t)||[];r.push(e.ruleValue),n.set(t,r)}let r=e;for(let[e,t]of n)r=bj(r,{type:`removeRules`,rules:t,behavior:`allow`,destination:e});return r}function M9(e){let t=[];for(let[n,r]of Object.entries(e.alwaysAllowRules))if(r)for(let e of r){let r=xr(e);t.push({source:n,ruleBehavior:`allow`,ruleValue:r})}let n=Pct(t,[]);if(n.length===0)return{...e,strippedDangerousRules:e.strippedDangerousRules??{}};for(let e of n)K(`Ignoring dangerous permission ${e.ruleDisplay} from ${e.sourceDisplay} (bypasses classifier)`);let r={};for(let e of n){var i;Fct(e.source)&&(r[i=e.source]??(r[i]=[])).push(ot(e.ruleValue))}return{...Ict(e,n),strippedDangerousRules:r}}function N9(e){let t=e.strippedDangerousRules;if(!t)return e;let n=e;for(let[e,r]of Object.entries(t))!r||r.length===0||(n=bj(n,{type:`addRules`,rules:r.map(xr),behavior:`allow`,destination:e}));return{...n,strippedDangerousRules:void 0}}function Lct(e,t,n){if(e===t)return n;ire(e,t),mne(e,t),e===`plan`&&t!==`plan`&&ei(!0);{if(t===`plan`&&e!==`plan`)return R9(n);let r=e===`auto`||e===`plan`&&OT(),i=t===`auto`;if(i&&!r){if(!I9())throw Error(`Cannot transition to auto mode: gate is not enabled`);DT(!0),n=M9(n)}else r&&!i&&(DT(!1),Dr(!0),n=N9(n))}return e===`plan`&&t!==`plan`&&n.prePlanMode?{...n,prePlanMode:void 0}:n}function Rct(e){return $0e(e.join(` `).trim())?e2e():P9(e)}function zct({processPwd:e,originalCwd:t}){let{resolvedPath:n,isSymlink:r}=Mi(J(),e);return r?n===xc(t):!1}function Bct({permissionModeCli:e,dangerouslySkipPermissions:t}){let n=xn()||{},r=n.permissions?.disableBypassPermissionsMode===`disable`,i=[],a;if(t&&i.push(`bypassPermissions`),e){let t=Eee(e);t===`auto`?i.push(`auto`):i.push(t)}if(n.permissions?.defaultMode){let e=n.permissions.defaultMode;h(process.env.WORKMATE_REMOTE)&&![`acceptEdits`,`plan`,`default`].includes(e)?K(`settings defaultMode "${e}" is not supported in WORKMATE_REMOTE — only acceptEdits and plan are allowed`,{level:`warn`}):e===`auto`?i.push(`auto`):i.push(e)}let o;for(let e of i){if(e===`bypassPermissions`&&r){K(`bypassPermissions mode is disabled by settings`,{level:`warn`}),a=`Bypass permissions mode was disabled by settings`;continue}o={mode:e,notification:a};break}return o||(o={mode:`default`,notification:a}),o||(o={mode:`default`,notification:a}),o.mode===`auto`&&DT(!0),o}function P9(e){if(e.length===0)return[];let t=[];for(let n of e){if(!n)continue;let e=``,r=!1;for(let i of n)switch(i){case`(`:r=!0,e+=i;break;case`)`:r=!1,e+=i;break;case`,`:r?e+=i:(e.trim()&&t.push(e.trim()),e=``);break;case` `:r?e+=i:e.trim()&&(t.push(e.trim()),e=``);break;default:e+=i}e.trim()&&t.push(e.trim())}return t}async function Vct({allowedToolsCli:e,disallowedToolsCli:t,baseToolsCli:n,permissionMode:r,allowDangerouslySkipPermissions:i,addDirs:a}){let o=P9(e).map(e=>ot(xr(e))),s=P9(t);if(n&&n.length>0){let e=Rct(n),t=new Set(e.map(Ht)),r=e2e().filter(e=>!t.has(e));s=[...s,...r]}let c=[],l=new Map,u=process.env.PWD;u&&u!==ri()&&zct({originalCwd:ri(),processPwd:u})&&l.set(u,{path:u,source:`session`});let d=xn()||{},f=mj(),p=[],m=[];r===`auto`&&(m=Pct(f,o));let h=Cct({mode:r,additionalWorkingDirectories:l,alwaysAllowRules:{cliArg:o},alwaysDenyRules:{cliArg:s},alwaysAskRules:{},isBypassPermissionsModeAvailable:!0,isAutoModeAvailable:!0},f),g=[...d.permissions?.additionalDirectories||[],...a],_=await Promise.all(g.map(e=>Ect(e,h)));for(let e of _)e.resultType===`success`?h=bj(h,{type:`addDirectories`,directories:[e.absolutePath],destination:`cliArg`}):e.resultType!==`alreadyInWorkingDirectory`&&e.resultType!==`pathNotFound`&&c.push(Dct(e));return{toolPermissionContext:h,warnings:c,dangerousPermissions:m,overlyBroadBashPermissions:p}}function F9(e){let t;switch(e){case`settings`:t=`auto mode disabled by settings`;break;case`circuit-breaker`:t=`auto mode is unavailable for your plan`;break;case`model`:t=`auto mode unavailable for this model`;break}return t}async function Hct(e,t){let n={},r=Gct(n?.enabled),i=Uct();FCe(r===`disabled`||i);let a=Ro(),o=!!n?.disableFastMode&&!!t,s=Pg(a)&&!o,c=!1;r!==`disabled`&&!i&&s&&(c=r===`enabled`||Kct());let l=r!==`disabled`&&!i&&s;K(`[auto-mode] verifyAutoModeGateAccess: enabledState=${r} disabledBySettings=${i} model=${a} modelSupported=${s} disableFastModeBreakerFires=${o} carouselAvailable=${c} canEnterAuto=${l}`);let u=PCe(),d=(e,t)=>(e.isAutoModeAvailable!==t&&K(`[auto-mode] verifyAutoModeGateAccess setAvailable: ${e.isAutoModeAvailable} -> ${t}`),e.isAutoModeAvailable===t?e:{...e,isAutoModeAvailable:t});if(l)return{updateContext:e=>d(e,c)};let f;i?(f=`settings`,K(`auto mode disabled: disableAutoMode in settings`,{level:`warn`})):r===`disabled`?(f=`circuit-breaker`,K(`auto mode disabled: tengu_auto_mode_config.enabled === "disabled" (circuit breaker)`,{level:`warn`})):(f=`model`,K(`auto mode disabled: model ${Ro()} does not support auto mode`,{level:`warn`}));let p=F9(f),m=e=>{let t=e.mode===`auto`;K(`[auto-mode] kickOutOfAutoIfNeeded applying: ctx.mode=${e.mode} ctx.prePlanMode=${e.prePlanMode} reason=${f}`);let n=e.mode===`plan`&&(e.prePlanMode===`auto`||!!e.strippedDangerousRules);return!t&&!n?d(e,!1):t?(DT(!1),Dr(!0),{...bj(N9(e),{type:`setMode`,mode:`default`,destination:`session`}),isAutoModeAvailable:!1}):(DT(!1),Dr(!0),{...N9(e),prePlanMode:e.prePlanMode===`auto`?`default`:e.prePlanMode,isAutoModeAvailable:!1})},h=e.mode===`auto`,g=e.mode===`plan`&&(e.prePlanMode===`auto`||!!e.strippedDangerousRules);return h||g||u?h||g?{updateContext:m,notification:p}:{updateContext:m,notification:e.isAutoModeAvailable?p:void 0}:{updateContext:m}}function Uct(){let e=xn()||{};return e.disableAutoMode===`disable`||e.permissions?.disableAutoMode===`disable`}function I9(){return!0}function Wct(){return Uct()?`settings`:ICe()?`circuit-breaker`:Pg(Ro())?null:`model`}function Gct(e){return e===`enabled`||e===`disabled`||e===`opt-in`?e:Zct}function Kct(){return!0}function L9(){return(xn()||{}).permissions?.disableBypassPermissionsMode===`disable`}function qct(e){let t=e;return e.mode===`bypassPermissions`&&(t=bj(e,{type:`setMode`,mode:`default`,destination:`session`})),{...t,isBypassPermissionsModeAvailable:!1}}function Jct(){return!1}function Yct(){return I9()&&rte()}function R9(e){let t=e.mode;if(t===`plan`)return e;{let n=Yct();if(t===`auto`)return n?{...e,prePlanMode:`auto`}:(DT(!1),Dr(!0),{...N9(e),prePlanMode:`auto`});if(n&&t!==`bypassPermissions`)return DT(!0),{...M9(e),prePlanMode:t}}return K(`[prepareContextForPlanMode] plain plan entry, prePlanMode=${t}`,{level:`info`}),{...e,prePlanMode:t}}function Xct(e){if(e.mode!==`plan`||e.prePlanMode===`bypassPermissions`)return e;let t=Yct(),n=OT();return t&&n?M9(e):!t&&!n?e:t?(DT(!0),Dr(!1),M9(e)):(DT(!1),Dr(!0),N9(e))}var Zct,z9=n((()=>{H(),fi(),g(),Rn(),Ln(),Rt(),j9(),vj(),MT(),Oct(),Ra(),nn(),xs(),Fs(),k1(),ji(),Hg(),q(),To(),E1e(),Ej(),Tt(),Zct=`enabled`}));function B9(e,t=`Custom item`){let n=e.split(`
|
|
3344
3344
|
`);for(let e of n){let t=e.trim();if(t){let e=t.match(/^#+\s+(.+)$/)?.[1]??t;return e.length>100?`${e.substring(0,97)}...`:e}}return t}function Qct(e){if(e==null)return null;if(!e)return[];let t=[];if(typeof e==`string`?t=[e]:Array.isArray(e)&&(t=e.filter(e=>typeof e==`string`)),t.length===0)return[];let n=P9(t);return n.includes(`*`)?[`*`]:n}function V9(e){let t=Qct(e);if(t===null)return e===void 0?void 0:[];if(!t.includes(`*`))return t}function H9(e){let t=Qct(e);return t===null?[]:t}async function $ct(e){try{let t=await ice(e,{bigint:!0});return t.dev===0n&&t.ino===0n?null:`${t.dev}:${t.ino}`}catch{return null}}function elt(e){let t=Sr(e),n=Sr(Wr());if(!t||!n)return t;let r=Ut(e);if(r&&st(r)===st(n))return t;let i=st(t),a=st(n);return i!==a&&i.startsWith(a+Sc)?n:t}function U9(e,t){let n=xc(uc()).normalize(`NFC`),r=elt(t),i=xc(t),a=[];for(;st(i)!==st(n);){let t=X(i,`.workmate`,e);try{Lse(t),a.push(t)}catch(e){if(!Bi(e))throw e}if(r&&st(i)===st(r))break;let n=mc(i);if(n===i)break;i=n}return a}async function tlt(e,t){let n=[],r=new Set;async function i(e){if(!t.aborted){try{let t=await Zc(e,{bigint:!0});if(t.isDirectory()){let n=t.dev!==void 0&&t.ino!==void 0?`${t.dev}:${t.ino}`:await Jc(e);if(r.has(n)){K(`Skipping already visited directory (circular symlink): ${e}`);return}r.add(n)}}catch(t){K(`Failed to stat directory ${e}: ${t instanceof Error?t.message:String(t)}`);return}try{let r=await qc(e,{withFileTypes:!0});for(let a of r){if(t.aborted)break;let r=X(e,a.name);try{if(a.isSymbolicLink())try{let e=await Zc(r);e.isDirectory()?await i(r):e.isFile()&&a.name.endsWith(`.md`)&&n.push(r)}catch(e){K(`Failed to follow symlink ${r}: ${e instanceof Error?e.message:String(e)}`)}else a.isDirectory()?await i(r):a.isFile()&&a.name.endsWith(`.md`)&&n.push(r)}catch(e){K(`Failed to access ${r}: ${e instanceof Error?e.message:String(e)}`)}}}catch(t){K(`Failed to read directory ${e}: ${t instanceof Error?t.message:String(t)}`)}}}return await i(e),n}async function W9(e){let t=h(process.env.WORKMATE_USE_NATIVE_FILE_SEARCH),n=AbortSignal.timeout(3e3),r;try{r=t?await tlt(e,n):await Ys([`--files`,`--hidden`,`--follow`,`--no-ignore`,`--glob`,`*.md`],e,n)}catch(e){if(Bi(e))return[];throw e}return(await Promise.all(r.map(async e=>{try{let{frontmatter:t,content:n}=Au(await Kc(e,{encoding:`utf-8`}),e);return{filePath:e,frontmatter:t,content:n}}catch(t){return K(`Failed to read/parse markdown file: ${e}: ${t instanceof Error?t.message:String(t)}`),null}}))).filter(e=>e!==null)}var nlt,G9,K9=n((()=>{d(),Ra(),H(),q(),g(),vi(),xt(),Bu(),Xn(),z9(),qs(),Rn(),$n(),ob(),nlt=[`commands`,`agents`,`output-styles`,`skills`,`workflows`,`templates`],G9=u(async(e,t)=>{let n=Date.now(),r=X(m(),e),i=X(or(),`.workmate`,e),a=U9(e,t),o=Sr(t),s=Ut(t);if(o&&s&&s!==o){let t=st(X(o,`.workmate`,e));if(!a.some(e=>st(e)===t)){let t=X(s,`.workmate`,e);a.includes(t)||a.push(t)}}let[c,l,u]=await Promise.all([W9(i).then(e=>e.map(e=>({...e,baseDir:i,source:`policySettings`}))),Dn(`userSettings`)&&!(e===`agents`&&ib(`agents`))?W9(r).then(e=>e.map(e=>({...e,baseDir:r,source:`userSettings`}))):Promise.resolve([]),Dn(`projectSettings`)&&!(e===`agents`&&ib(`agents`))?Promise.all(a.map(e=>W9(e).then(t=>t.map(t=>({...t,baseDir:e,source:`projectSettings`}))))):Promise.resolve([])]),d=u.flat(),f=[...c,...l,...d],p=await Promise.all(f.map(e=>$ct(e.filePath))),h=new Map,g=[];for(let[e,t]of f.entries()){let n=p[e]??null;if(n===null){g.push(t);continue}let r=h.get(n);if(r!==void 0){K(`Skipping duplicate file '${t.filePath}' from ${t.source} (same inode already loaded from ${r})`);continue}h.set(n,t.source),g.push(t)}let _=f.length-g.length;return _>0&&K(`Deduplicated ${_} files in ${e} (same inode via symlinks or hard links)`),Date.now()-n,c.length,l.length,d.length,a.length,g},(e,t)=>`${e}:${t}`)})),rlt=n((()=>{At(),fi(),q(),rt(),zi(),vd(),z(()=>V({updatedAt:B().min(1)})),z(()=>V({syncedFrom:B().min(1)}))}));function q9(e){return e.source===`built-in`}function ilt(e){return e.source!==`built-in`&&e.source!==`plugin`}function alt(e){return e.source===`plugin`}function olt(e){let t=e.filter(e=>e.source===`built-in`),n=e.filter(e=>e.source===`plugin`),r=e.filter(e=>e.source===`userSettings`),i=e.filter(e=>e.source===`projectSettings`),a=e.filter(e=>e.source===`policySettings`),o=[t,n,r,i,e.filter(e=>e.source===`flagSettings`),a],s=new Map;for(let e of o)for(let t of e)s.set(t.agentType,t);return Array.from(s.values())}function J9(e,t){return!e.requiredMcpServers||e.requiredMcpServers.length===0||e.requiredMcpServers.every(e=>t.some(t=>t.toLowerCase().includes(e.toLowerCase())))}function Y9(e,t){return e.filter(e=>J9(e,t))}function slt(){Q9.cache.clear?.(),G9.cache?.clear?.(),z8e()}function clt(e){let t=e.name,n=e.description;return!t||typeof t!=`string`?`Missing required "name" field in frontmatter`:!n||typeof n!=`string`?`Missing required "description" field in frontmatter`:`Unknown parsing error`}function llt(e,t){if(!e.hooks)return;let n=Kt().safeParse(e.hooks);if(!n.success){K(`Invalid hooks in agent '${t}': ${n.error.message}`);return}return n.data}function ult(e,t,n=`flagSettings`){try{let r=Z9().parse(t),i=V9(r.tools);if(Hi()&&r.memory&&i!==void 0){let e=new Set(i);for(let t of[ls,Cs,cs])e.has(t)||(i=[...i,t])}let a=r.disallowedTools===void 0?void 0:V9(r.disallowedTools),o=r.prompt;return{agentType:e,whenToUse:r.description,...i===void 0?{}:{tools:i},...a===void 0?{}:{disallowedTools:a},getSystemPrompt:()=>Hi()&&r.memory?`${o}\n\n${_d(e,r.memory)}`:o,source:n,...r.model?{model:r.model}:{},...r.permissionMode?{permissionMode:r.permissionMode}:{},...r.mcpServers&&r.mcpServers.length>0?{mcpServers:r.mcpServers}:{},...r.hooks?{hooks:r.hooks}:{},...r.maxTurns===void 0?{}:{maxTurns:r.maxTurns},...r.skills&&r.skills.length>0?{skills:r.skills}:{},...r.initialPrompt?{initialPrompt:r.initialPrompt}:{},...r.background?{background:r.background}:{},...r.memory?{memory:r.memory}:{},...r.isolation?{isolation:r.isolation}:{}}}catch(t){return K(`Error parsing agent '${e}' from JSON: ${t instanceof Error?t.message:String(t)}`),Y(t),null}}function dlt(e,t=`flagSettings`){try{let n=plt().parse(e);return Object.entries(n).map(([e,n])=>ult(e,n,t)).filter(e=>e!==null)}catch(e){return K(`Error parsing agents from JSON: ${e instanceof Error?e.message:String(e)}`),Y(e),[]}}function flt(e,t,n,r,i){try{let a=n.name,o=n.description;if(!a||typeof a!=`string`)return null;if(!o||typeof o!=`string`)return K(`Agent file ${e} is missing required 'description' in frontmatter`),null;o=o.replace(/\\n/g,`
|
|
3345
|
-
`);let s=n.color,c=n.model,l;if(typeof c==`string`&&c.trim().length>0){let e=c.trim();l=e.toLowerCase()===`inherit`?`inherit`:e}let u=n.background;u!==void 0&&u!==`true`&&u!==`false`&&u!==!0&&u!==!1&&K(`Agent file ${e} has invalid background value '${u}'. Must be 'true', 'false', or omitted.`);let d=u===`true`||u===!0||void 0,f=[`user`,`project`,`local`],p=n.memory,m;p!==void 0&&(f.includes(p)?m=p:K(`Agent file ${e} has invalid memory value '${p}'. Valid options: ${f.join(`, `)}`));let h=[`worktree`],g=n.isolation,_;g!==void 0&&(h.includes(g)?_=g:K(`Agent file ${e} has invalid isolation value '${g}'. Valid options: ${h.join(`, `)}`));let v=n.permissionMode,y=v&&bt.includes(v);v&&!y&&K(`Agent file ${e} has invalid permissionMode '${v}'. Valid options: ${bt.join(`, `)}`);let b=n.maxTurns,x=Nu(b);b!==void 0&&x===void 0&&K(`Agent file ${e} has invalid maxTurns '${b}'. Must be a positive integer.`);let S=pc(e,`.md`),C=V9(n.tools);if(Hi()&&m&&C!==void 0){let e=new Set(C);for(let t of[ls,Cs,cs])e.has(t)||(C=[...C,t])}let w=n.disallowedTools,T=w===void 0?void 0:V9(w),E=H9(n.skills),D=n.initialPrompt,O=typeof D==`string`&&D.trim()?D:void 0,k=n.mcpServers,A;Array.isArray(k)&&(A=k.map(t=>{let n=X9().safeParse(t);return n.success?n.data:(K(`Agent file ${e} has invalid mcpServers item: ${W(t)}. Error: ${n.error.message}`),null)}).filter(e=>e!==null));let ee=llt(n,a),te=r.trim();return{baseDir:t,agentType:a,whenToUse:o,...C===void 0?{}:{tools:C},...T===void 0?{}:{disallowedTools:T},...E===void 0?{}:{skills:E},...O===void 0?{}:{initialPrompt:O},...A!==void 0&&A.length>0?{mcpServers:A}:{},...ee===void 0?{}:{hooks:ee},getSystemPrompt:()=>{if(Hi()&&m){let e=_d(a,m);return`${te}\n\n${e}`}return te},source:i,filename:S,...s&&typeof s==`string`&&$H.includes(s)?{color:s}:{},...l===void 0?{}:{model:l},...y?{permissionMode:v}:{},...x===void 0?{}:{maxTurns:x},...d?{background:d}:{},...m?{memory:m}:{},..._?{isolation:_}:{}}}catch(t){return K(`Error parsing agent from ${e}: ${t instanceof Error?t.message:String(t)}`),Y(t),null}}var X9,Z9,plt,Q9,$9=n((()=>{d(),At(),Vi(),Ra(),gr(),q(),g(),Bu(),rt(),Ta(),K9(),Rt(),x2(),Dt(),zi(),Os(),Ms(),Rs(),tU(),vd(),rlt(),$4(),X9=z(()=>nr([B(),An(B(),lt())])),Z9=z(()=>V({description:B().min(1,`Description cannot be empty`),tools:I(B()).optional(),disallowedTools:I(B()).optional(),prompt:B().min(1,`Prompt cannot be empty`),model:B().trim().min(1,`Model cannot be empty`).transform(e=>e.toLowerCase()===`inherit`?`inherit`:e).optional(),permissionMode:Zt(bt).optional(),mcpServers:I(X9()).optional(),hooks:Kt().optional(),maxTurns:R().int().positive().optional(),skills:I(B()).optional(),initialPrompt:B().optional(),memory:Zt([`user`,`project`,`local`]).optional(),background:gt().optional(),isolation:Zt([`worktree`]).optional()})),plt=z(()=>An(B(),Z9())),Q9=u(async e=>{if(h(process.env.WORKMATE_SIMPLE)){let e=Q4();return{activeAgents:e,allAgents:e}}try{let t=await G9(`agents`,e),n=[],r=t.map(({filePath:e,baseDir:t,frontmatter:r,content:i,source:a})=>{let o=flt(e,t,r,i,a);if(!o){if(!r.name)return null;let t=clt(r);return n.push({path:e,error:t}),K(`Failed to parse agent from ${e}: ${t}`),null}return o}).filter(e=>e!==null),i=await b2(),a=[...Q4(),...i,...r],o=olt(a);for(let e of o)e.color&&QH(e.agentType,e.color);return{activeAgents:o,allAgents:a,failedFiles:n.length>0?n:void 0}}catch(e){let t=e instanceof Error?e.message:String(e);K(`Error loading agent definitions: ${t}`),Y(e);let n=Q4();return{activeAgents:n,allAgents:n,failedFiles:[{path:`unknown`,error:t}]}}})}));export{$7 as $,Nf as $C,Gg as $S,UD as $_,T7e as $a,uge as $b,IXe as $c,oY as $d,NK as $f,Nk as $g,TM as $h,Oet as $i,JKe as $l,nI as $m,Unt as $n,y8e as $o,uV as $p,znt as $r,V4e as $s,Dat as $t,nUe as $u,ET as $v,Q as $x,Lx as $y,Lct as A,lp as AC,sme as AS,jO as A_,I4 as Aa,f_e as Ab,S1 as Ac,yY as Ad,GRe as Af,xj as Ag,mN as Ah,e6 as Ai,SJe as Al,hNe as Am,b8 as An,D5e as Ao,KH as Ap,srt as Ar,_0 as As,x7 as At,HX as Au,wE as Av,pv as Ax,Kxe as Ay,A9 as B,Ade as BC,c_ as BS,rO as B_,L7e as Ba,Ay as Bb,e$e as Bc,iY as Bd,HG as Bf,rEe as Bg,GM as Bh,ytt as Bi,Yqe as Bl,EI as Bm,n8 as Bn,i5e as Bo,nIe as Bp,Ent as Br,a0 as Bs,o7 as Bt,cWe as Bu,WT as Bv,cv as Bx,OS as By,I9 as C,Qf as CC,wme as CS,BO as C_,P9e as Ca,zb as Cb,T1 as Cc,HVe as Cd,IJ as Cf,Nj as Cg,sP as Ch,Ytt as Ci,UJe as Cl,Ez as Cm,G8 as Cn,B5e as Co,QH as Cp,Hnt as Cr,R3e as Cs,Xat as Ct,mGe as Cu,lE as Cv,Ol as Cw,yv as Cx,zC as Cy,R9 as D,kde as DC,Sme as DS,MO as D_,G4 as Da,xb as Db,k1 as Dc,GVe as Dd,rze as Df,Aj as Dg,tP as Dh,q3 as Di,EJe as Dl,kL as Dm,Lrt as Dn,M5e as Do,wIe as Dp,urt as Dr,E3e as Ds,T7 as Dt,ZX as Du,nE as Dv,mv as Dx,BC as Dy,P9 as E,Xf as EC,gme as ES,PO as E_,W4 as Ea,Sb as Eb,O1 as Ec,EY as Ed,AJ as Ef,Mj as Eg,aje as Eh,Ztt as Ei,cQ as El,IL as Em,s5 as En,T5e as Eo,qH as Ep,Z6 as Er,v0 as Es,Yat as Et,qX as Eu,rE as Ev,khe as Ex,qxe as Ey,Ect as F,ip as FC,Gpe as FS,fO as F_,L4 as Fa,ab as Fb,_$ as Fc,CVe as Fd,qK as Ff,Sj as Fg,eN as Fh,K3 as Fi,XZ as Fl,rNe as Fm,c8 as Fn,c5e as Fo,MH as Fp,H6 as Fr,f3e as Fs,Pat as Ft,fWe as Fu,dE as Fv,iv as Fx,jS as Fy,tct as G,kf as GC,$g as GS,KD as G_,A7e as Ga,gy as Gb,cZe as Gc,RBe as Gd,SK as Gf,mA as Gg,VM as Gh,_tt as Gi,HZ as Gl,GMe as Gm,rrt as Gn,E2 as Go,QFe as Gp,A6 as Gr,i3e as Gs,c7 as Gt,SX as Gu,BT as Gv,W_ as Gx,iS as Gy,pct as H,wf as HC,i_ as HS,XD as H_,F7e as Ha,Lge as Hb,tZe as Hc,UBe as Hd,aK as Hf,lj as Hg,KM as Hh,ott as Hi,WZ as Hl,NI as Hm,B6 as Hn,N2 as Ho,rIe as Hp,T6 as Hr,a3e as Hs,l7 as Ht,AX as Hu,FT as Hv,xhe as Hx,bS as Hy,xct as I,rp as IC,h_ as IS,pO as I_,R4 as Ia,Py as Ib,D$ as Ic,wY as Id,JK as If,hj as Ig,$M as Ih,W3 as Ii,cJe as Il,WI as Im,wnt as In,s5e as Io,lIe as Ip,pnt as Ir,u0 as Is,Fat as It,uWe as Iu,xE as Iv,av as Ix,LS as Iy,a9 as J,Ef as JC,Qg as JS,LD as J_,S4 as Ja,dy as Jb,$Xe as Jc,QBe as Jd,pW as Jf,aA as Jg,IM as Jh,v3 as Ji,Nqe as Jl,aI as Jm,L6 as Jn,C2 as Jo,hH as Jp,_nt as Jr,t0 as Js,Tat as Jt,LUe as Ju,OT as Jv,phe as Jx,Aye as Jy,o9 as K,Sf as KC,e_ as KS,WD as K_,C4 as Ka,my as Kb,QXe as Kc,BBe as Kd,TK as Kf,hA as Kg,zM as Kh,O3 as Ki,BZ as Kl,fI as Km,o8 as Kn,O2 as Ko,pH as Kp,xnt as Kr,s0 as Ks,_at as Kt,MUe as Ku,LT as Kv,vhe as Kx,rS as Ky,y9 as L,op as LC,u_ as LS,Uwe as L_,P4 as La,Ny as Lb,w$ as Lc,wVe as Ld,UK as Lf,vj as Lg,ZEe as Lh,Vtt as Li,rJe as Ll,JI as Lm,M6 as Ln,p5e as Lo,DH as Lp,Snt as Lr,u3e as Ls,Mat as Lt,lWe as Lu,qT as Lv,Q_ as Lx,zbe as Ly,Hct as M,Zf as MC,ame as MS,hO as M_,k4 as Ma,lb as Mb,P1e as Mc,SY as Md,ZK as Mf,Ej as Mg,nN as Mh,t6 as Mi,dJe as Ml,bL as Mm,x8 as Mn,g5e as Mo,HH as Mp,e8 as Mr,m0 as Ms,Q5 as Mt,RX as Mu,mE as Mv,lv as Mx,MS as My,Dct as N,Kf as NC,y_ as NS,uO as N_,A4 as Na,ob as Nb,R$ as Nc,xY as Nd,XK as Nf,Cj as Ng,eDe as Nh,G3 as Ni,ZZ as Nl,dL as Nm,v8 as Nn,L2 as No,dIe as Np,K6 as Nr,h3e as Ns,u7 as Nt,zX as Nu,cE as Nv,uv as Nx,NS as Ny,N9 as O,Jf as OC,C_ as OS,aTe as O_,K4 as Oa,m_e as Ob,x1 as Oc,yVe as Od,nze as Of,mEe as Og,uN as Oh,Xtt as Oi,aQ as Ol,AL as Om,P8 as On,U2 as Oo,TIe as Op,Xnt as Or,y0 as Os,Wat as Ot,iGe as Ou,gE as Ov,gv as Ox,$xe as Oy,Oct as P,Yf as PC,ome as PS,dO as P_,z4 as Pa,ib as Pb,I$ as Pc,hVe as Pd,QK as Pf,wj as Pg,nDe as Ph,Ktt as Pi,lJe as Pl,fL as Pm,E8 as Pn,P2 as Po,NH as Pp,Nnt as Pr,v3e as Ps,jat as Pt,oWe as Pu,hE as Pv,$_ as Px,VS as Py,Z7 as Q,Af as QC,Ug as QS,Nwe as Q_,E7e as Qa,pge as Qb,NXe as Qc,HBe as Qd,BU as Qf,VTe as Qg,LEe as Qh,Eet as Qi,vqe as Ql,fMe as Qm,_6 as Qn,a2 as Qo,lH as Qp,qnt as Qr,z4e as Qs,xat as Qt,gUe as Qu,gT as Qv,K_ as Qx,Bx as Qy,S9 as R,cp as RC,d_ as RS,aO as R_,N7e as Ra,Fy as Rb,n$e as Rc,xVe as Rd,WK as Rf,sEe as Rg,XM as Rh,jtt as Ri,YZ as Rl,HI as Rm,Jnt as Rn,A2 as Ro,iIe as Rp,D6 as Rr,p0 as Rs,Lat as Rt,mWe as Ru,XT as Rv,sv as Rx,Obe as Ry,Vct as S,Cp as SC,Ome as SS,HO as S_,e3 as Sa,$_e as Sb,i2e as Sc,TY as Sd,VJ as Sf,Pj as Sg,gP as Sh,Jtt as Si,yQ as Sl,pPe as Sm,U5 as Sn,E5e as So,tU as Sp,u6 as Sr,A3e as Ss,k7 as St,fGe as Su,sE as Sv,ml as Sw,xv as Sx,qC as Sy,Jct as T,Sde as TC,Tme as TS,UO as T_,U4 as Ta,wb as Tb,C1 as Tc,WVe as Td,kJ as Tf,jj as Tg,eP as Th,Qtt as Ti,pQ as Tl,FL as Tm,K8 as Tn,O5e as To,XH as Tp,art as Tr,k3e as Ts,$at as Tt,aGe as Tu,oE as Tv,_v as Tx,Qxe as Ty,v9 as U,jf as UC,r_ as US,qD as U_,w4 as Ua,Sy as Ub,eZe as Uc,WBe as Ud,oK as Uf,fj as Ug,HM as Uh,att as Ui,UZ as Ul,DI as Um,Y6 as Un,m5e as Uo,vH as Up,w6 as Ur,n3e as Us,vat as Ut,NUe as Uu,IT as Uv,_he as Ux,$ as Uy,j9 as V,Cf as VC,s_ as VS,$D as V_,I7e as Va,Rge as Vb,JQe as Vc,VBe as Vd,BG as Vf,oEe as Vg,qM as Vh,gtt as Vi,Jqe as Vl,TI as Vm,g6 as Vn,a5e as Vo,TH as Vp,E6 as Vr,o0 as Vs,kat as Vt,OX as Vu,zT as Vv,ov as Vx,yS as Vy,_9 as W,Bf as WC,t_ as WS,JD as W_,T4 as Wa,Oge as Wb,rZe as Wc,LBe as Wd,BW as Wf,cj as Wg,UM as Wh,H3 as Wi,VZ as Wl,WMe as Wm,Gnt as Wn,k2 as Wo,gH as Wp,C6 as Wr,l0 as Ws,yat as Wt,PUe as Wu,NT as Wv,G_ as Wx,uS as Wy,r9 as X,Df as XC,Ipe as XS,Pwe as X_,S7e as Xa,ay as Xb,JQ as Xc,PBe as Xd,EW as Xf,Kk as Xg,JEe as Xh,Fet as Xi,Eqe as Xl,uI as Xm,Dnt as Xn,x2 as Xo,eH as Xp,Wnt as Xr,Q1 as Xs,Iat as Xt,jUe as Xu,NCe as Xv,Y_ as Xx,Xx as Xy,Rst as Y,bf as YC,Kg as YS,Owe as Y_,b4 as Ya,iy as Yb,nZe as Yc,FBe as Yd,lW as Yf,Wk as Yg,YEe as Yh,Pet as Yi,Oqe as Yl,pMe as Ym,mrt as Yn,B8e as Yo,JFe as Yp,Cnt as Yr,H4e as Ys,Eat as Yt,AUe as Yu,DT as Yv,che as Yx,Jx as Yy,e9 as Z,Of as ZC,Xg as ZS,Mwe as Z_,w7e as Za,ry as Zb,JXe as Zc,KBe as Zd,kW as Zf,fA as Zg,KEe as Zh,_3 as Zi,LZ as Zl,lI as Zm,$6 as Zn,b2 as Zo,tH as Zp,Knt as Zr,R4e as Zs,bat as Zt,hUe as Zu,_T as Zv,hhe as Zx,Dye as Zy,G9 as _,rm as _C,Nme as _S,RO as __,V9e as _a,Qb as _b,B1 as _c,kY as _d,fBe as _f,Kj as _g,kP as _h,int as _i,VYe as _l,fB as _m,q5 as _n,Y2 as _o,yU as _p,d6 as _r,O0 as _s,iot as _t,NGe as _u,NE as _v,Ru as _w,Cv as _x,USe as _y,J9 as a,wg as aC,z_ as aS,Ck as a_,Det as aa,Ax as ab,u4e as ac,KHe as ad,CBe as af,FM as ag,TF as ah,U6 as ai,BQ as al,eV as am,fat as an,G5e as ao,VU as ap,u8 as ar,T6e as as,Kot as at,jZ as au,PD as av,Dd as aw,ige as ax,Cw as ay,z9 as b,em as bC,T_ as bS,QO as b_,a3 as ba,Kb as bb,E2e as bc,YVe as bd,nBe as bf,Ij as bg,yP as bh,ent as bi,kYe as bl,Dz as bm,kit as bn,W2 as bo,eU as bp,G6 as br,M3e as bs,Zat as bt,TGe as bu,kE as bv,ku as bw,Fhe as bx,JC as by,ilt as c,pg as cC,L_ as cS,Ok as c_,m3 as ca,Sx as cb,c4e as cc,lX as cd,YJ as cf,xM as cg,Zje as ch,lnt as ci,yXe as cl,UPe as cm,hat as cn,q2 as co,LK as cp,r8 as cr,Q0 as cs,mot as ct,wZ as cu,jD as cv,Nd as cw,Qv as cx,vw as cy,flt as d,ym as dC,ehe as dS,sk as d_,X9e as da,cx as db,l4e as dc,tX as dd,tY as df,aM as dg,iF as dh,ynt as di,wXe as dl,GB as dm,i7 as dn,J2 as do,IU as dp,J6 as dr,_6e as ds,got as dt,fKe as du,ND as dv,hd as dw,Ov as dx,bw as dy,Jg as eC,lhe as eS,jTe as e_,Aet as ea,kye as eb,B4e as ec,rUe as ed,aY as ef,REe as eg,WF as eh,Rnt as ei,WQ as el,yV as em,Cat as en,h4 as eo,RG as ep,V6 as er,e2 as es,W7 as et,XKe as eu,Awe as ev,Mf as ew,sge as ex,hT as ey,dlt as f,vm as fC,the as fS,hTe as f_,q9e as fa,Uve as fb,K2e as fc,lHe as fd,QJ as ff,uM as fg,Rje as fh,vnt as fi,SXe as fl,TB as fm,d7 as fn,Y5e as fo,LU as fp,p6 as fr,z0 as fs,rot as ft,vZ as fu,OD as fv,Tue as fw,kv as fx,eCe as fy,K9 as g,om as gC,Ime as gS,WO as g_,o3 as ga,aye as gb,N2e as gc,AY as gd,oBe as gf,qj as gg,DP as gh,cnt as gi,QYe as gl,dB as gm,Mit as gn,u7e as go,dU as gp,_8 as gr,n6e as gs,eot as gt,PGe as gu,$Ce as gv,cd as gw,Tv as gx,JSe as gy,U9 as h,sm as hC,Qme as hS,ik as h_,G9e as ha,Kve as hb,V1 as hc,MY as hd,jBe as hf,dM as hg,IP as hh,rnt as hi,NQ as hl,VB as hm,X5 as hn,X5e as ho,JIe as hp,Ont as hr,t6e as hs,Qat as ht,IGe as hu,rD as hv,pd as hw,Dv as hx,dw as hy,Q9 as i,Pg as iC,U_ as iS,kTe as i_,Net as ia,Eye as ib,b4e as ic,GHe as id,nY as if,IEe as ig,OF as ih,Bnt as ii,TXe as il,XPe as im,h7 as in,l7e as io,fG as ip,b6 as ir,l8e as is,qot as it,UKe as iu,kwe as iv,Od as iw,sy as ix,oCe as iy,Xct as j,qf as jC,ume as jS,mO as j_,M4 as ja,fb as jb,N1e as jc,CY as jd,WRe as jf,yj as jg,oN as jh,Y3 as ji,sJe as jl,yL as jm,B8 as jn,_5e as jo,xIe as jp,Q6 as jr,C3e as js,s7 as jt,UX as ju,pE as jv,Che as jx,eSe as jy,M9 as k,Cde as kC,hme as kS,OO as k_,N4 as ka,p_e as kb,m1 as kc,dY as kd,wJ as kf,bj as kg,dN as kh,$3 as ki,iQ as kl,xL as km,y8 as kn,V2 as ko,UH as kp,X6 as kr,g3e as ks,v7 as kt,eZ as ku,iE as kv,whe as kx,UC as ky,alt as l,lg as lC,F_ as lS,wk as l_,u3 as la,vx as lb,s4e as lc,XY as ld,ZJ as lf,kEe as lg,SF as lh,h6 as li,OXe as ll,KB as lm,mat as ln,o4 as lo,RU as lp,W6 as lr,Y0 as ls,yot as lt,xZ as lu,kD as lv,Ed as lw,ny as lx,rCe as ly,B9 as m,pm as mC,V_ as mS,rk as m_,c3 as ma,ax as mb,P2e as mc,jY as md,EBe as mf,TEe as mg,NP as mh,a6 as mi,bXe as ml,mB as mm,_7 as mn,p7e as mo,KIe as mp,x6 as mr,F0 as ms,w7 as mt,LGe as mu,cwe as mv,_d as mw,Ev as mx,pw as my,Y9 as n,Ppe as nC,she as nS,Ak as n_,Met as na,Fx as nb,D4e as nc,YHe as nd,TBe as nf,FEe as ng,tI as nh,Ynt as ni,xXe as nl,sV as nm,wat as nn,y7e as no,FK as np,irt as nr,c8e as ns,tst as nt,AZ as nu,Cwe as nv,jue as nw,oy as nx,Ow as ny,$9 as o,jpe as oC,M_ as oS,Tk as o_,bet as oa,Mx as ob,d4e as oc,RHe as od,DBe as of,OEe as og,EF as oh,Znt as oi,VQ as ol,YB as om,eat as on,K5e as oo,qG as op,f6 as or,w6e as os,I7 as ot,WKe as ou,Dwe as ov,Td as ow,rge as ox,Dw as oy,nlt as p,mm as pC,R_ as pS,ck as p_,s3 as pa,dx as pb,G2e as pc,GY as pd,$J as pf,eM as pg,sF as ph,v6 as pi,CXe as pl,FPe as pm,p7 as pn,f7e as po,PU as pp,m6 as pr,V0 as ps,not as pt,FGe as pu,MD as pv,vd as pw,Whe as px,tCe as py,g9 as q,Tf as qC,Zg as qS,GD as q_,x4 as qa,Tge as qb,aZe as qc,IBe as qd,wK as qf,uA as qg,XEe as qh,C3 as qi,kqe as ql,dI as qm,lrt as qn,H8e as qo,mH as qp,gnt as qr,n0 as qs,Oat as qt,IUe as qu,MT as qv,uhe as qx,Yx as qy,olt as r,Hg as rC,H_ as rS,ATe as r_,jet as ra,Nx as rb,h4e as rc,WHe as rd,kBe as rf,GEe as rg,XF as rh,Vnt as ri,zQ as rl,rV as rm,m7 as rn,x7e as ro,PG as rp,prt as rr,u8e as rs,H7 as rt,kZ as ru,jwe as rv,Aue as rw,dge as rx,Nw as ry,q9 as s,Tg as sC,N_ as sS,kk as s_,Tet as sa,Ex as sb,U1 as sc,HHe as sd,XJ as sf,AEe as sg,AF as sh,y6 as si,RQ as sl,JB as sm,pat as sn,c4 as so,UG as sp,a8 as sr,C6e as ss,V7 as st,HKe as su,AD as sv,Md as sw,$v as sx,yw as sy,slt as t,qg as tC,Z_ as tS,Mk as t_,ket as ta,Ix as tb,M4e as tc,JHe as td,GBe as tf,zEe as tg,YF as th,z6 as ti,FXe as tl,dV as tm,Sat as tn,p4 as to,GG as tp,k6 as tr,g2 as ts,nst as tt,qKe as tu,wwe as tv,kue as tw,fge as tx,Pw as ty,ult as u,cg as uC,$me as uS,OTe as u_,d3 as ua,px as ub,o4e as uc,THe as ud,rY as uf,bM as ug,Jje as uh,bnt as ui,UQ as ul,VPe as um,gat as un,l4 as uo,zU as up,q6 as ur,p6e as us,_ot as ut,_Z as uu,TD as uv,bd as uw,ey as ux,$Se as uy,F9 as v,nm as vC,D_ as vS,KO as v_,L9e as va,Zb as vb,j2e as vc,KVe as vd,aBe as vf,Gj as vg,OP as vh,ant as vi,jQ as vl,Pz as vm,J5 as vn,J5e as vo,fU as vp,hnt as vr,Y3e as vs,Gat as vt,MGe as vu,QCe as vv,Bu as vw,Sv as vx,_w as vy,L9 as w,Tde as wC,Cme as wS,VO as w_,N9e as wa,Eb as wb,w1 as wc,UVe as wd,LJ as wf,Fj as wg,cP as wh,J3 as wi,fQ as wl,pz as wm,U8 as wn,w5e as wo,JH as wp,i8 as wr,O3e as ws,tot as wt,uGe as wu,aE as wv,vv as wx,IC as wy,Bct as x,wp as xC,Eme as xS,GO as x_,t3 as xa,Gb as xb,A1 as xc,VVe as xd,BJ as xf,Bj as xg,hP as xh,Z3 as xi,kQ as xl,Az as xm,Eit as xn,W5e as xo,ZH as xp,t8 as xr,j3e as xs,E7 as xt,wGe as xu,fE as xv,Ou as xw,Rhe as xx,KC as xy,Wct as y,$p as yC,E_ as yS,zO as y_,j9e as ya,Wb as yb,F1 as yc,OY as yd,rBe as yf,xEe as yg,_P as yh,$tt as yi,AQ as yl,Iz as ym,K5 as yn,m7e as yo,$H as yp,dnt as yr,k0 as ys,y7 as yt,EGe as yu,EE as yv,Au as yw,wv as yx,cSe as yy,x9 as z,jde as zC,l_ as zS,oO as z_,P7e as za,jy as zb,r$e as zc,FVe as zd,HK as zf,dj as zg,QM as zh,xtt as zi,nJe as zl,UI as zm,Mnt as zn,r5e as zo,yH as zp,Tnt as zr,f0 as zs,f7 as zt,sWe as zu,VT as zv,tv as zx,ES as zy};
|
|
3345
|
+
`);let s=n.color,c=n.model,l;if(typeof c==`string`&&c.trim().length>0){let e=c.trim();l=e.toLowerCase()===`inherit`?`inherit`:e}let u=n.background;u!==void 0&&u!==`true`&&u!==`false`&&u!==!0&&u!==!1&&K(`Agent file ${e} has invalid background value '${u}'. Must be 'true', 'false', or omitted.`);let d=u===`true`||u===!0||void 0,f=[`user`,`project`,`local`],p=n.memory,m;p!==void 0&&(f.includes(p)?m=p:K(`Agent file ${e} has invalid memory value '${p}'. Valid options: ${f.join(`, `)}`));let h=[`worktree`],g=n.isolation,_;g!==void 0&&(h.includes(g)?_=g:K(`Agent file ${e} has invalid isolation value '${g}'. Valid options: ${h.join(`, `)}`));let v=n.permissionMode,y=v&&bt.includes(v);v&&!y&&K(`Agent file ${e} has invalid permissionMode '${v}'. Valid options: ${bt.join(`, `)}`);let b=n.maxTurns,x=Nu(b);b!==void 0&&x===void 0&&K(`Agent file ${e} has invalid maxTurns '${b}'. Must be a positive integer.`);let S=pc(e,`.md`),C=V9(n.tools);if(Hi()&&m&&C!==void 0){let e=new Set(C);for(let t of[ls,Cs,cs])e.has(t)||(C=[...C,t])}let w=n.disallowedTools,T=w===void 0?void 0:V9(w),E=H9(n.skills),D=n.initialPrompt,O=typeof D==`string`&&D.trim()?D:void 0,k=n.mcpServers,A;Array.isArray(k)&&(A=k.map(t=>{let n=X9().safeParse(t);return n.success?n.data:(K(`Agent file ${e} has invalid mcpServers item: ${W(t)}. Error: ${n.error.message}`),null)}).filter(e=>e!==null));let ee=llt(n,a),te=r.trim();return{baseDir:t,agentType:a,whenToUse:o,...C===void 0?{}:{tools:C},...T===void 0?{}:{disallowedTools:T},...E===void 0?{}:{skills:E},...O===void 0?{}:{initialPrompt:O},...A!==void 0&&A.length>0?{mcpServers:A}:{},...ee===void 0?{}:{hooks:ee},getSystemPrompt:()=>{if(Hi()&&m){let e=_d(a,m);return`${te}\n\n${e}`}return te},source:i,filename:S,...s&&typeof s==`string`&&$H.includes(s)?{color:s}:{},...l===void 0?{}:{model:l},...y?{permissionMode:v}:{},...x===void 0?{}:{maxTurns:x},...d?{background:d}:{},...m?{memory:m}:{},..._?{isolation:_}:{}}}catch(t){return K(`Error parsing agent from ${e}: ${t instanceof Error?t.message:String(t)}`),Y(t),null}}var X9,Z9,plt,Q9,$9=n((()=>{d(),At(),Vi(),Ra(),gr(),q(),g(),Bu(),rt(),Ta(),K9(),Rt(),x2(),Dt(),zi(),Os(),Ms(),Rs(),tU(),vd(),rlt(),$4(),X9=z(()=>nr([B(),An(B(),lt())])),Z9=z(()=>V({description:B().min(1,`Description cannot be empty`),tools:I(B()).optional(),disallowedTools:I(B()).optional(),prompt:B().min(1,`Prompt cannot be empty`),model:B().trim().min(1,`Model cannot be empty`).transform(e=>e.toLowerCase()===`inherit`?`inherit`:e).optional(),permissionMode:Zt(bt).optional(),mcpServers:I(X9()).optional(),hooks:Kt().optional(),maxTurns:R().int().positive().optional(),skills:I(B()).optional(),initialPrompt:B().optional(),memory:Zt([`user`,`project`,`local`]).optional(),background:gt().optional(),isolation:Zt([`worktree`]).optional()})),plt=z(()=>An(B(),Z9())),Q9=u(async e=>{if(h(process.env.WORKMATE_SIMPLE)){let e=Q4();return{activeAgents:e,allAgents:e}}try{let t=await G9(`agents`,e),n=[],r=t.map(({filePath:e,baseDir:t,frontmatter:r,content:i,source:a})=>{let o=flt(e,t,r,i,a);if(!o){if(!r.name)return null;let t=clt(r);return n.push({path:e,error:t}),K(`Failed to parse agent from ${e}: ${t}`),null}return o}).filter(e=>e!==null),i=await b2(),a=[...Q4(),...i,...r],o=olt(a);for(let e of o)e.color&&QH(e.agentType,e.color);return{activeAgents:o,allAgents:a,failedFiles:n.length>0?n:void 0}}catch(e){let t=e instanceof Error?e.message:String(e);K(`Error loading agent definitions: ${t}`),Y(e);let n=Q4();return{activeAgents:n,allAgents:n,failedFiles:[{path:`unknown`,error:t}]}}})}));export{e9 as $,Of as $C,Xg as $S,Mwe as $_,w7e as $a,ry as $b,JXe as $c,KBe as $d,kW as $f,fA as $g,KEe as $h,_3 as $i,LZ as $l,lI as $m,$6 as $n,b2 as $o,tH as $p,Knt as $r,R4e as $s,bat as $t,hUe as $u,_T as $v,hhe as $x,Dye as $y,Lct as A,Jf as AC,C_ as AS,aTe as A_,K4 as Aa,m_e as Ab,x1 as Ac,yVe as Ad,nze as Af,mEe as Ag,uN as Ah,Xtt as Ai,aQ as Al,AL as Am,P8 as An,U2 as Ao,TIe as Ap,Xnt as Ar,y0 as As,Wat as At,iGe as Au,gE as Av,gv as Ax,$xe as Ay,A9 as B,cp as BC,d_ as BS,aO as B_,N7e as Ba,Fy as Bb,n$e as Bc,xVe as Bd,WK as Bf,sEe as Bg,XM as Bh,jtt as Bi,YZ as Bl,HI as Bm,Jnt as Bn,A2 as Bo,iIe as Bp,D6 as Br,p0 as Bs,Lat as Bt,mWe as Bu,XT as Bv,sv as Bx,Obe as By,I9 as C,wp as CC,Eme as CS,GO as C_,t3 as Ca,Gb as Cb,A1 as Cc,VVe as Cd,BJ as Cf,Bj as Cg,hP as Ch,Z3 as Ci,kQ as Cl,Az as Cm,Eit as Cn,W5e as Co,ZH as Cp,t8 as Cr,j3e as Cs,E7 as Ct,wGe as Cu,fE as Cv,Ou as Cw,Rhe as Cx,KC as Cy,R9 as D,Sde as DC,Tme as DS,UO as D_,U4 as Da,wb as Db,C1 as Dc,WVe as Dd,kJ as Df,jj as Dg,eP as Dh,Qtt as Di,pQ as Dl,FL as Dm,K8 as Dn,O5e as Do,XH as Dp,art as Dr,k3e as Ds,$at as Dt,aGe as Du,oE as Dv,_v as Dx,Qxe as Dy,P9 as E,Tde as EC,Cme as ES,VO as E_,N9e as Ea,Eb,w1 as Ec,UVe as Ed,LJ as Ef,Fj as Eg,cP as Eh,J3 as Ei,fQ as El,pz as Em,U8 as En,w5e as Eo,JH as Ep,i8 as Er,O3e as Es,tot as Et,uGe as Eu,aE as Ev,vv as Ex,IC as Ey,Ect as F,Kf as FC,y_ as FS,uO as F_,A4 as Fa,ob as Fb,R$ as Fc,xY as Fd,XK as Ff,Cj as Fg,eDe as Fh,G3 as Fi,ZZ as Fl,dL as Fm,v8 as Fn,L2 as Fo,dIe as Fp,K6 as Fr,h3e as Fs,u7 as Ft,zX as Fu,cE as Fv,uv as Fx,NS as Fy,v9 as G,jf as GC,r_ as GS,qD as G_,w4 as Ga,Sy as Gb,eZe as Gc,WBe as Gd,oK as Gf,fj as Gg,HM as Gh,att as Gi,UZ as Gl,DI as Gm,Y6 as Gn,m5e as Go,vH as Gp,w6 as Gr,n3e as Gs,vat as Gt,NUe as Gu,IT as Gv,_he as Gx,$ as Gy,pct as H,Ade as HC,c_ as HS,rO as H_,L7e as Ha,Ay as Hb,e$e as Hc,iY as Hd,HG as Hf,rEe as Hg,GM as Hh,ytt as Hi,Yqe as Hl,EI as Hm,n8 as Hn,i5e as Ho,nIe as Hp,Ent as Hr,a0 as Hs,o7 as Ht,cWe as Hu,WT as Hv,cv as Hx,OS as Hy,xct as I,Yf as IC,ome as IS,dO as I_,z4 as Ia,ib as Ib,I$ as Ic,hVe as Id,QK as If,wj as Ig,nDe as Ih,Ktt as Ii,lJe as Il,fL as Im,E8 as In,P2 as Io,NH as Ip,Nnt as Ir,v3e as Is,jat as It,oWe as Iu,hE as Iv,$_ as Ix,VS as Iy,o9 as J,Sf as JC,e_ as JS,WD as J_,C4 as Ja,my as Jb,QXe as Jc,BBe as Jd,TK as Jf,hA as Jg,zM as Jh,O3 as Ji,BZ as Jl,fI as Jm,o8 as Jn,O2 as Jo,pH as Jp,xnt as Jr,s0 as Js,_at as Jt,MUe as Ju,LT as Jv,vhe as Jx,rS as Jy,_9 as K,Bf as KC,t_ as KS,JD as K_,T4 as Ka,Oge as Kb,rZe as Kc,LBe as Kd,BW as Kf,cj as Kg,UM as Kh,H3 as Ki,VZ as Kl,WMe as Km,Gnt as Kn,k2 as Ko,gH as Kp,C6 as Kr,l0 as Ks,yat as Kt,PUe as Ku,NT as Kv,G_ as Kx,uS as Ky,y9 as L,ip as LC,Gpe as LS,fO as L_,L4 as La,ab as Lb,_$ as Lc,CVe as Ld,qK as Lf,Sj as Lg,eN as Lh,K3 as Li,XZ as Ll,rNe as Lm,c8 as Ln,c5e as Lo,MH as Lp,H6 as Lr,f3e as Ls,Pat as Lt,fWe as Lu,dE as Lv,iv as Lx,jS as Ly,Hct as M,lp as MC,sme as MS,jO as M_,I4 as Ma,f_e as Mb,S1 as Mc,yY as Md,GRe as Mf,xj as Mg,mN as Mh,e6 as Mi,SJe as Ml,hNe as Mm,b8 as Mn,D5e as Mo,KH as Mp,srt as Mr,_0 as Ms,x7 as Mt,HX as Mu,wE as Mv,pv as Mx,Kxe as My,Dct as N,qf as NC,ume as NS,mO as N_,M4 as Na,fb as Nb,N1e as Nc,CY as Nd,WRe as Nf,yj as Ng,oN as Nh,Y3 as Ni,sJe as Nl,yL as Nm,B8 as Nn,_5e as No,xIe as Np,Q6 as Nr,C3e as Ns,s7 as Nt,UX as Nu,pE as Nv,Che as Nx,eSe as Ny,N9 as O,Xf as OC,gme as OS,PO as O_,W4 as Oa,Sb as Ob,O1 as Oc,EY as Od,AJ as Of,Mj as Og,aje as Oh,Ztt as Oi,cQ as Ol,IL as Om,s5 as On,T5e as Oo,qH as Op,Z6 as Or,v0 as Os,Yat as Ot,qX as Ou,rE as Ov,khe as Ox,qxe as Oy,Oct as P,Zf as PC,ame as PS,hO as P_,k4 as Pa,lb as Pb,P1e as Pc,SY as Pd,ZK as Pf,Ej as Pg,nN as Ph,t6 as Pi,dJe as Pl,bL as Pm,x8 as Pn,g5e as Po,HH as Pp,e8 as Pr,m0 as Ps,Q5 as Pt,RX as Pu,mE as Pv,lv as Px,MS as Py,r9 as Q,Df as QC,Ipe as QS,Pwe as Q_,S7e as Qa,ay as Qb,JQ as Qc,PBe as Qd,EW as Qf,Kk as Qg,JEe as Qh,Fet as Qi,Eqe as Ql,uI as Qm,Dnt as Qn,x2 as Qo,eH as Qp,Wnt as Qr,Q1 as Qs,Iat as Qt,jUe as Qu,NCe as Qv,Y_ as Qx,Xx as Qy,S9 as R,rp as RC,h_ as RS,pO as R_,R4 as Ra,Py as Rb,D$ as Rc,wY as Rd,JK as Rf,hj as Rg,$M as Rh,W3 as Ri,cJe as Rl,WI as Rm,wnt as Rn,s5e as Ro,lIe as Rp,pnt as Rr,u0 as Rs,Fat as Rt,uWe as Ru,xE as Rv,av as Rx,LS as Ry,Vct as S,em as SC,T_ as SS,QO as S_,a3 as Sa,Kb as Sb,E2e as Sc,YVe as Sd,nBe as Sf,Ij as Sg,yP as Sh,ent as Si,kYe as Sl,Dz as Sm,kit as Sn,W2 as So,eU as Sp,G6 as Sr,M3e as Ss,Zat as St,TGe as Su,kE as Sv,ku as Sw,Fhe as Sx,JC as Sy,Jct as T,Qf as TC,wme as TS,BO as T_,P9e as Ta,zb as Tb,T1 as Tc,HVe as Td,IJ as Tf,Nj as Tg,sP as Th,Ytt as Ti,UJe as Tl,Ez as Tm,G8 as Tn,B5e as To,QH as Tp,Hnt as Tr,R3e as Ts,Xat as Tt,mGe as Tu,lE as Tv,Ol as Tw,yv as Tx,zC as Ty,fct as U,Cf as UC,s_ as US,$D as U_,I7e as Ua,Rge as Ub,JQe as Uc,VBe as Ud,BG as Uf,oEe as Ug,qM as Uh,gtt as Ui,Jqe as Ul,TI as Um,g6 as Un,a5e as Uo,TH as Up,E6 as Ur,o0 as Us,kat as Ut,OX as Uu,zT as Uv,ov as Ux,yS as Uy,j9 as V,jde as VC,l_ as VS,oO as V_,P7e as Va,jy as Vb,r$e as Vc,FVe as Vd,HK as Vf,dj as Vg,QM as Vh,xtt as Vi,nJe as Vl,UI as Vm,Mnt as Vn,r5e as Vo,yH as Vp,Tnt as Vr,f0 as Vs,f7 as Vt,sWe as Vu,VT as Vv,tv as Vx,ES as Vy,uct as W,wf as WC,i_ as WS,XD as W_,F7e as Wa,Lge as Wb,tZe as Wc,UBe as Wd,aK as Wf,lj as Wg,KM as Wh,ott as Wi,WZ as Wl,NI as Wm,B6 as Wn,N2 as Wo,rIe as Wp,T6 as Wr,a3e as Ws,l7 as Wt,AX as Wu,FT as Wv,xhe as Wx,bS as Wy,a9 as X,Ef as XC,Qg as XS,LD as X_,S4 as Xa,dy as Xb,$Xe as Xc,QBe as Xd,pW as Xf,aA as Xg,IM as Xh,v3 as Xi,Nqe as Xl,aI as Xm,L6 as Xn,C2 as Xo,hH as Xp,_nt as Xr,t0 as Xs,Tat as Xt,LUe as Xu,OT as Xv,phe as Xx,Aye as Xy,g9 as Y,Tf as YC,Zg as YS,GD as Y_,x4 as Ya,Tge as Yb,aZe as Yc,IBe as Yd,wK as Yf,uA as Yg,XEe as Yh,C3 as Yi,kqe as Yl,dI as Ym,lrt as Yn,H8e as Yo,mH as Yp,gnt as Yr,n0 as Ys,Oat as Yt,IUe as Yu,MT as Yv,uhe as Yx,Yx as Yy,Rst as Z,bf as ZC,Kg as ZS,Owe as Z_,b4 as Za,iy as Zb,nZe as Zc,FBe as Zd,lW as Zf,Wk as Zg,YEe as Zh,Pet as Zi,Oqe as Zl,pMe as Zm,mrt as Zn,B8e as Zo,JFe as Zp,Cnt as Zr,H4e as Zs,Eat as Zt,AUe as Zu,DT as Zv,che as Zx,Jx as Zy,G9 as _,sm as _C,Qme as _S,ik as __,G9e as _a,Kve as _b,V1 as _c,MY as _d,jBe as _f,dM as _g,IP as _h,rnt as _i,NQ as _l,VB as _m,X5 as _n,X5e as _o,JIe as _p,Ont as _r,t6e as _s,Qat as _t,IGe as _u,rD as _v,pd as _w,Dv as _x,dw as _y,J9 as a,Hg as aC,H_ as aS,ATe as a_,jet as aa,Nx as ab,h4e as ac,WHe as ad,kBe as af,GEe as ag,XF as ah,Vnt as ai,zQ as al,rV as am,m7 as an,x7e as ao,PG as ap,prt as ar,u8e as as,H7 as at,kZ as au,jwe as av,Aue as aw,dge as ax,Nw as ay,z9 as b,nm as bC,D_ as bS,KO as b_,L9e as ba,Zb as bb,j2e as bc,KVe as bd,aBe as bf,Gj as bg,OP as bh,ant as bi,jQ as bl,Pz as bm,J5 as bn,J5e as bo,fU as bp,hnt as br,Y3e as bs,Gat as bt,MGe as bu,QCe as bv,Bu as bw,Sv as bx,_w as by,ilt as c,jpe as cC,M_ as cS,Tk as c_,bet as ca,Mx as cb,d4e as cc,RHe as cd,DBe as cf,OEe as cg,EF as ch,Znt as ci,VQ as cl,YB as cm,eat as cn,K5e as co,qG as cp,f6 as cr,w6e as cs,I7 as ct,WKe as cu,Dwe as cv,Td as cw,rge as cx,Dw as cy,flt as d,lg as dC,F_ as dS,wk as d_,u3 as da,vx as db,s4e as dc,XY as dd,ZJ as df,kEe as dg,SF as dh,h6 as di,OXe as dl,KB as dm,mat as dn,o4 as do,RU as dp,W6 as dr,Y0 as ds,yot as dt,xZ as du,kD as dv,Ed as dw,ny as dx,rCe as dy,Ug as eC,K_ as eS,VTe as e_,Eet as ea,Bx as eb,z4e as ec,gUe as ed,HBe as ef,LEe as eg,fMe as eh,qnt as ei,NXe as el,lH as em,xat as en,E7e as eo,BU as ep,_6 as er,a2 as es,Z7 as et,vqe as eu,Nwe as ev,Af as ew,pge as ex,gT as ey,dlt as f,cg as fC,$me as fS,OTe as f_,d3 as fa,px as fb,o4e as fc,THe as fd,rY as ff,bM as fg,Jje as fh,bnt as fi,UQ as fl,VPe as fm,gat as fn,l4 as fo,zU as fp,q6 as fr,p6e as fs,_ot as ft,_Z as fu,TD as fv,bd as fw,ey as fx,$Se as fy,K9 as g,pm as gC,V_ as gS,rk as g_,c3 as ga,ax as gb,P2e as gc,jY as gd,EBe as gf,TEe as gg,NP as gh,a6 as gi,bXe as gl,mB as gm,_7 as gn,p7e as go,KIe as gp,x6 as gr,F0 as gs,w7 as gt,LGe as gu,cwe as gv,_d as gw,Ev as gx,pw as gy,U9 as h,mm as hC,R_ as hS,ck as h_,s3 as ha,dx as hb,G2e as hc,GY as hd,$J as hf,eM as hg,sF as hh,v6 as hi,CXe as hl,FPe as hm,p7 as hn,f7e as ho,PU as hp,m6 as hr,V0 as hs,not as ht,FGe as hu,MD as hv,vd as hw,Whe as hx,tCe as hy,Q9 as i,Ppe as iC,she as iS,Ak as i_,Met as ia,Fx as ib,D4e as ic,YHe as id,TBe as if,FEe as ig,tI as ih,Ynt as ii,xXe as il,sV as im,wat as in,y7e as io,FK as ip,irt as ir,c8e as is,tst as it,AZ as iu,Cwe as iv,jue as iw,oy as ix,Ow as iy,Xct as j,Cde as jC,hme as jS,OO as j_,N4 as ja,p_e as jb,m1 as jc,dY as jd,wJ as jf,bj as jg,dN as jh,$3 as ji,iQ as jl,xL as jm,y8 as jn,V2 as jo,UH as jp,X6 as jr,g3e as js,v7 as jt,eZ as ju,iE as jv,whe as jx,UC as jy,M9 as k,kde as kC,Sme as kS,MO as k_,G4 as ka,xb as kb,k1 as kc,GVe as kd,rze as kf,Aj as kg,tP as kh,q3 as ki,EJe as kl,kL as km,Lrt as kn,M5e as ko,wIe as kp,urt as kr,E3e as ks,T7 as kt,ZX as ku,nE as kv,mv as kx,BC as ky,alt as l,Tg as lC,N_ as lS,kk as l_,Tet as la,Ex as lb,U1 as lc,HHe as ld,XJ as lf,AEe as lg,AF as lh,y6 as li,RQ as ll,JB as lm,pat as ln,c4 as lo,UG as lp,a8 as lr,C6e as ls,V7 as lt,HKe as lu,AD as lv,Md as lw,$v as lx,yw as ly,B9 as m,vm as mC,the as mS,hTe as m_,q9e as ma,Uve as mb,K2e as mc,lHe as md,QJ as mf,uM as mg,Rje as mh,vnt as mi,SXe as ml,TB as mm,d7 as mn,Y5e as mo,LU as mp,p6 as mr,z0 as ms,rot as mt,vZ as mu,OD as mv,Tue as mw,kv as mx,eCe as my,Y9 as n,Jg as nC,lhe as nS,jTe as n_,Aet as na,kye as nb,B4e as nc,rUe as nd,aY as nf,REe as ng,WF as nh,Rnt as ni,WQ as nl,yV as nm,Cat as nn,h4 as no,RG as np,V6 as nr,e2 as ns,W7 as nt,XKe as nu,Awe as nv,Mf as nw,sge as nx,hT as ny,$9 as o,Pg as oC,U_ as oS,kTe as o_,Net as oa,Eye as ob,b4e as oc,GHe as od,nY as of,IEe as og,OF as oh,Bnt as oi,TXe as ol,XPe as om,h7 as on,l7e as oo,fG as op,b6 as or,l8e as os,qot as ot,UKe as ou,kwe as ov,Od as ow,sy as ox,oCe as oy,nlt as p,ym as pC,ehe as pS,sk as p_,X9e as pa,cx as pb,l4e as pc,tX as pd,tY as pf,aM as pg,iF as ph,ynt as pi,wXe as pl,GB as pm,i7 as pn,J2 as po,IU as pp,J6 as pr,_6e as ps,got as pt,fKe as pu,ND as pv,hd as pw,Ov as px,bw as py,tct as q,kf as qC,$g as qS,KD as q_,A7e as qa,gy as qb,cZe as qc,RBe as qd,SK as qf,mA as qg,VM as qh,_tt as qi,HZ as ql,GMe as qm,rrt as qn,E2 as qo,QFe as qp,A6 as qr,i3e as qs,c7 as qt,SX as qu,BT as qv,W_ as qx,iS as qy,olt as r,qg as rC,Z_ as rS,Mk as r_,ket as ra,Ix as rb,M4e as rc,JHe as rd,GBe as rf,zEe as rg,YF as rh,z6 as ri,FXe as rl,dV as rm,Sat as rn,p4 as ro,GG as rp,k6 as rr,g2 as rs,nst as rt,qKe as ru,wwe as rv,kue as rw,fge as rx,Pw as ry,q9 as s,wg as sC,z_ as sS,Ck as s_,Det as sa,Ax as sb,u4e as sc,KHe as sd,CBe as sf,FM as sg,TF as sh,U6 as si,BQ as sl,eV as sm,fat as sn,G5e as so,VU as sp,u8 as sr,T6e as ss,Kot as st,jZ as su,PD as sv,Dd as sw,ige as sx,Cw as sy,slt as t,Gg as tC,Q as tS,Nk as t_,Oet as ta,Lx as tb,V4e as tc,nUe as td,oY as tf,TM as tg,nI as th,znt as ti,IXe as tl,uV as tm,Dat as tn,T7e as to,NK as tp,Unt as tr,y8e as ts,$7 as tt,JKe as tu,UD as tv,Nf as tw,uge as tx,ET as ty,ult as u,pg as uC,L_ as uS,Ok as u_,m3 as ua,Sx as ub,c4e as uc,lX as ud,YJ as uf,xM as ug,Zje as uh,lnt as ui,yXe as ul,UPe as um,hat as un,q2 as uo,LK as up,r8 as ur,Q0 as us,mot as ut,wZ as uu,jD as uv,Nd as uw,Qv as ux,vw as uy,F9 as v,om as vC,Ime as vS,WO as v_,o3 as va,aye as vb,N2e as vc,AY as vd,oBe as vf,qj as vg,DP as vh,cnt as vi,QYe as vl,dB as vm,Mit as vn,u7e as vo,dU as vp,_8 as vr,n6e as vs,eot as vt,PGe as vu,$Ce as vv,cd as vw,Tv as vx,JSe as vy,L9 as w,Cp as wC,Ome as wS,HO as w_,e3 as wa,$_e as wb,i2e as wc,TY as wd,VJ as wf,Pj as wg,gP as wh,Jtt as wi,yQ as wl,pPe as wm,U5 as wn,E5e as wo,tU as wp,u6 as wr,A3e as ws,k7 as wt,fGe as wu,sE as wv,ml as ww,xv as wx,qC as wy,Bct as x,$p as xC,E_ as xS,zO as x_,j9e as xa,Wb as xb,F1 as xc,OY as xd,rBe as xf,xEe as xg,_P as xh,$tt as xi,AQ as xl,Iz as xm,K5 as xn,m7e as xo,$H as xp,dnt as xr,k0 as xs,y7 as xt,EGe as xu,EE as xv,Au as xw,wv as xx,cSe as xy,Wct as y,rm as yC,Nme as yS,RO as y_,V9e as ya,Qb as yb,B1 as yc,kY as yd,fBe as yf,Kj as yg,kP as yh,int as yi,VYe as yl,fB as ym,q5 as yn,Y2 as yo,yU as yp,d6 as yr,O0 as ys,iot as yt,NGe as yu,NE as yv,Ru as yw,Cv as yx,USe as yy,x9 as z,op as zC,u_ as zS,Uwe as z_,P4 as za,Ny as zb,w$ as zc,wVe as zd,UK as zf,vj as zg,ZEe as zh,Vtt as zi,rJe as zl,JI as zm,M6 as zn,p5e as zo,DH as zp,Snt as zr,u3e as zs,Mat as zt,lWe as zu,qT as zv,Q_ as zx,zbe as zy};
|