@readmagic/workmate 0.0.24 → 0.0.25
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-Y5S_lMjD.js +1 -0
- package/dist/chunks/AgentsMdExternalIncludesDialog-Bnb1jWcg.js +1 -0
- package/dist/chunks/AgentsMdExternalIncludesDialog-DVbU-BaD.js +1 -0
- package/dist/chunks/App-B8q8PV77.js +1 -0
- package/dist/chunks/BackgroundTasksDialog-i0TkZgQp.js +2 -0
- package/dist/chunks/BypassPermissionsModeDialog-DjqGAL4C.js +1 -0
- package/dist/chunks/CustomSelect-BvTftqEH.js +1 -0
- package/dist/chunks/DiffDialog-v5r8cBKW.js +6 -0
- package/dist/chunks/Doctor-DKpBnbuI.js +1 -0
- package/dist/chunks/Doctor-uvO6NM5m.js +3 -0
- package/dist/chunks/ExitFlow-Dh9QdaYK.js +2 -0
- package/dist/chunks/InvalidConfigDialog-C9boykQn.js +1 -0
- package/dist/chunks/{InvalidSettingsDialog-iwh8H52b.js → InvalidSettingsDialog-UN5mleCK.js} +1 -1
- package/dist/chunks/KeybindingProviderSetup-DsJqfEt-.js +1 -0
- package/dist/chunks/MCPConnectionManager-DkZVxLEj.js +1 -0
- package/dist/chunks/MCPToolListView-De1W4jpj.js +1 -0
- package/dist/chunks/McpParsingWarnings-zkM_lGd0.js +1 -0
- package/dist/chunks/MessageSelector-DW_itlX-.js +3 -0
- package/dist/chunks/Messages-BFsCpACq.js +10 -0
- package/dist/chunks/Onboarding-BT90cFkn.js +1 -0
- package/dist/chunks/PromptInputFooterSuggestions-CCTZYbWI.js +1 -0
- package/dist/chunks/PromptInputHelpMenu-Bm5KY0Ma.js +1 -0
- package/dist/chunks/{ProviderSetup-BCSPsvfv.js → ProviderSetup-yIj8YOKF.js} +1 -1
- package/dist/chunks/QueryEngine-egz5mbaW.js +1 -0
- package/dist/chunks/REPL-D27CE4WN.js +124 -0
- package/dist/chunks/REPL-e8wAT1wN.js +1 -0
- package/dist/chunks/ResumeConversation-CWA27Lke.js +1 -0
- package/dist/chunks/SearchExtraToolsTool-BRchtZ9Q.js +1 -0
- package/dist/chunks/{SelectMulti-BQRHed-d.js → SelectMulti-BW7Ffk1G.js} +1 -1
- package/dist/chunks/Settings-axHLvYIy.js +3 -0
- package/dist/chunks/Spinner-VjwI7m_g.js +1 -0
- package/dist/chunks/{SpinnerGlyph-CmkRUvHe.js → SpinnerGlyph-CqrOK3Mx.js} +1 -1
- package/dist/chunks/TextInput-Cev5Awdd.js +22 -0
- package/dist/chunks/ThemePicker-CtQYHmOr.js +1 -0
- package/dist/chunks/TrustDialog-8Sjmuu0e.js +1 -0
- package/dist/chunks/{ValidationErrorsList-DgNzJQUP.js → ValidationErrorsList-INwwoerV.js} +1 -1
- package/dist/chunks/_baseEach-DrPH_FGo.js +1 -0
- package/dist/chunks/add-dir-D3RMaYxy.js +1 -0
- package/dist/chunks/{agentDisplay-M4pfwbMC.js → agentDisplay-B3npXoCS.js} +1 -1
- package/dist/chunks/{agents-DddX7lLX.js → agents-2mPGmeq6.js} +1 -1
- package/dist/chunks/agents-DEnmg8Xo.js +101 -0
- package/dist/chunks/allErrors-C9kx6lnk.js +1 -0
- package/dist/chunks/analytics-COpjZpvd.js +1 -0
- package/dist/chunks/{appleTerminalBackup-BArZWB21.js → appleTerminalBackup-CT7g8yOs.js} +1 -1
- package/dist/chunks/backgroundHousekeeping-BkFxfjOf.js +1 -0
- package/dist/chunks/backgroundHousekeeping-CvWfd99M.js +1 -0
- package/dist/chunks/banner-DHpTmEO7.js +2 -0
- package/dist/chunks/branch-Be_yDFU8.js +2 -0
- package/dist/chunks/{break-cache-BMXqFTeS.js → break-cache-UUt6Dkf2.js} +2 -2
- package/dist/chunks/btw-DUml5L1w.js +1 -0
- package/dist/chunks/caches-DWjwe-DN.js +1 -0
- package/dist/chunks/caches-VLs1tQkZ.js +1 -0
- package/dist/chunks/{claudeDesktop-D8ml2767.js → claudeDesktop-mBGFDbI6.js} +1 -1
- package/dist/chunks/{clear-B8ZtFPOK.js → clear-CrGjNe6E.js} +1 -1
- package/dist/chunks/{client-CpTCeWba.js → client-BDuhbzLD.js} +1 -1
- package/dist/chunks/{client-4iqhC8xq.js → client-BYFVVMcf.js} +1 -1
- package/dist/chunks/client-CO_6v4yl.js +1 -0
- package/dist/chunks/client-DO-O441l.js +1 -0
- package/dist/chunks/commands-Cn1P7Tms.js +1 -0
- package/dist/chunks/compact-DGUhdXcc.js +2 -0
- package/dist/chunks/config-C7GTF4iI.js +1 -0
- package/dist/chunks/config-CWPHVTic.js +3 -0
- package/dist/chunks/config-Cox0TM2Z.js +1 -0
- package/dist/chunks/context-mV5zjqmc.js +1 -0
- package/dist/chunks/context-noninteractive--OuiZUzL.js +1 -0
- package/dist/chunks/{context-noninteractive-C7wrRZnM.js → context-noninteractive-DvfVvmSE.js} +2 -2
- package/dist/chunks/conversation--y8PD2Lk.js +1 -0
- package/dist/chunks/conversation-BIPJEOwO.js +1 -0
- package/dist/chunks/conversationRecovery-BBJzrA0g.js +1 -0
- package/dist/chunks/crossProjectResume-CwZb3cEU.js +40 -0
- package/dist/chunks/cwd-BZMp3CZ8.js +1 -0
- package/dist/chunks/cwd-BvNt_018.js +1 -0
- package/dist/chunks/debug-CRnGsZOV.js +39 -0
- package/dist/chunks/{detectRepository-CfX8Lc0A.js → detectRepository-CsJLbVEe.js} +1 -1
- package/dist/chunks/{diff-DdpHThJ7.js → diff-DUEoNCnJ.js} +1 -1
- package/dist/chunks/{directoryCompletion-D_Rtg-4j.js → directoryCompletion-Bgi8DBT5.js} +1 -1
- package/dist/chunks/doctor-4NiE46ZG.js +1 -0
- package/dist/chunks/entry-D1iD76SW.js +13 -0
- package/dist/chunks/{esm-CGx9qY3q.js → esm-DUH16IqH.js} +1 -1
- package/dist/chunks/execAsync-D6SA-YsV.js +1 -0
- package/dist/chunks/{execFileNoThrow-BTachNBI.js → execFileNoThrow-BgRsj_SW.js} +3 -3
- package/dist/chunks/exit-CrsQsjbx.js +1 -0
- package/dist/chunks/extraUsage-BtHE-SBX.js +1 -0
- package/dist/chunks/extractMemories-kogJzpit.js +1 -0
- package/dist/chunks/fast-CuNVwVTr.js +1 -0
- package/dist/chunks/fast-RlFnwGRV.js +1 -0
- package/dist/chunks/fetchModelList-Cjow_QGy.js +1 -0
- package/dist/chunks/fetchModelList-uiCPVqbJ.js +1 -0
- package/dist/chunks/fileSuggestions-C96V9-Ne.js +3 -0
- package/dist/chunks/firstPartyEventLogger-CN9UOmEC.js +1 -0
- package/dist/chunks/firstPartyEventLogger-RR5rvDtk.js +1 -0
- package/dist/chunks/{gemini-C_ApXgwc.js → gemini-4YGElN3H.js} +2 -2
- package/dist/chunks/generateSessionName-BHIKyXpz.js +1 -0
- package/dist/chunks/{genericProcessUtils-DwQFuna9.js → genericProcessUtils-BNlr-QxM.js} +1 -1
- package/dist/chunks/getMachineId-bsd-DTYGimUN.js +1 -0
- package/dist/chunks/getMachineId-darwin-DqIFUVvd.js +2 -0
- package/dist/chunks/getMachineId-linux-CnCTmdzd.js +1 -0
- package/dist/chunks/getMachineId-unsupported-Cx21ssu1.js +1 -0
- package/dist/chunks/getMachineId-win-vZhex7KX.js +1 -0
- package/dist/chunks/goal-ePK_jLo3.js +3 -0
- package/dist/chunks/grok-DnmklTrm.js +1 -0
- package/dist/chunks/help-B7xRle-V.js +1 -0
- package/dist/chunks/history-kOw3CcLT.js +1 -0
- package/dist/chunks/hooks-BDY1jMbS.js +1 -0
- package/dist/chunks/{hooks-DR3IYPJ3.js → hooks-BN5f58HY.js} +2 -2
- package/dist/chunks/install-DrMiHa2Q.js +1 -0
- package/dist/chunks/instrumentation-Oj5xagJG.js +21 -0
- package/dist/chunks/{job-YhJQWgE0.js → job-D9ypO0cd.js} +1 -1
- package/dist/chunks/keybindings-BRRN_eap.js +1 -0
- package/dist/chunks/launchLocalMemory-DliLezJw.js +3 -0
- package/dist/chunks/launchOnboarding-A-kk-7ID.js +8 -0
- package/dist/chunks/loadAgentsDir-CJAK4kif.js +1 -0
- package/dist/chunks/{loadAgentsDir-B0Anodo0.js → loadAgentsDir-DGozQu_6.js} +550 -550
- package/dist/chunks/{loadPluginHooks-BSwCtQ6T.js → loadPluginHooks-BiHPKDaY.js} +1 -1
- package/dist/chunks/{loader-CICGtLp2.js → loader-CtoR-vO-.js} +1 -1
- package/dist/chunks/{localSearch-BxLYi6w_.js → localSearch-BU02Qsv9.js} +1 -1
- package/dist/chunks/localSearch-DyaB2Rm-.js +1 -0
- package/dist/chunks/{log-D2TIwHBV.js → log-DoSpAwRP.js} +1 -1
- package/dist/chunks/logoUtils-DLd6JKqW.js +1 -0
- package/dist/chunks/{magicDocs-Bkz7ZcmL.js → magicDocs-Bj8LYrN2.js} +2 -2
- package/dist/chunks/main-B_09WbaG.js +345 -0
- package/dist/chunks/managedEnv-BJGfe3m7.js +1 -0
- package/dist/chunks/{managedEnv-OPlzUPbJ.js → managedEnv-CIWJsuty.js} +1 -1
- package/dist/chunks/mcp-1nBvcNxw.js +1 -0
- package/dist/chunks/mcp-7DXpXMdT.js +2 -0
- package/dist/chunks/mcp-kw99WVi2.js +6 -0
- package/dist/chunks/memory-CjWvzR_9.js +1 -0
- package/dist/chunks/mode-CBKawxnD.js +2 -0
- package/dist/chunks/model-DpZaKZMb.js +1 -0
- package/dist/chunks/model-DwbqvCY2.js +1 -0
- package/dist/chunks/modelOptions-CXBfKFXA.js +1 -0
- package/dist/chunks/nativeInstaller-SmPeEisk.js +1 -0
- package/dist/chunks/{notifications-Bc6k-Ozy.js → notifications-ql0eSo0Y.js} +1 -1
- package/dist/chunks/onChangeAppState-D85b33R5.js +1 -0
- package/dist/chunks/open-Cyrr4E5x.js +1 -0
- package/dist/chunks/openai-D_j7-KW6.js +2 -0
- package/dist/chunks/overlayContext-CLjlCFBl.js +1 -0
- package/dist/chunks/{panel-CVS4SK_E.js → panel-DMZkOEiU.js} +1 -1
- package/dist/chunks/parser-2usBI4G-.js +1 -0
- package/dist/chunks/{parser-Cg6hSCmn.js → parser-UqADrvxF.js} +1 -1
- package/dist/chunks/partition-CwxTlmMd.js +1 -0
- package/dist/chunks/{pasteStore-P0zP-ch0.js → pasteStore-ovtxMVR5.js} +1 -1
- package/dist/chunks/permissions-CgsvWOk_.js +3 -0
- package/dist/chunks/pidLock-B-SW3Nhx.js +3 -0
- package/dist/chunks/plan-BJrWtXEh.js +1 -0
- package/dist/chunks/platform-DsMIk3eq.js +2 -0
- package/dist/chunks/plugin-D97VJAxW.js +17 -0
- package/dist/chunks/{pluginAutoupdate-ennb9k8_.js → pluginAutoupdate-DQqYDPVg.js} +1 -1
- package/dist/chunks/{pluginBlocklist-9OrNEh--.js → pluginBlocklist-BAr9WTup.js} +1 -1
- package/dist/chunks/pluginCliCommands-CUGPc853.js +1 -0
- package/dist/chunks/{pluginFlagging-js_-WmYj.js → pluginFlagging-BO_3qjfs.js} +1 -1
- package/dist/chunks/pluginOperations-rTrzu6Vg.js +2 -0
- package/dist/chunks/pluginStartupCheck-BRHnXlym.js +1 -0
- package/dist/chunks/{pluginStartupCheck-SRXOyqr7.js → pluginStartupCheck-BX6cv-vs.js} +1 -1
- package/dist/chunks/plugins-9crasx2V.js +4 -0
- package/dist/chunks/poorMode-BaS0DBUO.js +1 -0
- package/dist/chunks/{poorMode-B0QGV6Ci.js → poorMode-DmvzFAz_.js} +1 -1
- package/dist/chunks/print-Bi3xVdB3.js +13 -0
- package/dist/chunks/processBashCommand-BBtnCx-7.js +1 -0
- package/dist/chunks/processSlashCommand-jzF0GmLO.js +5 -0
- package/dist/chunks/{projectOnboardingState-B5YATuc6.js → projectOnboardingState--L3BKjOE.js} +1 -1
- package/dist/chunks/prompt-CmijKW7G.js +1 -0
- package/dist/chunks/prompt-DYBx_D0H.js +1 -0
- package/dist/chunks/{prompt-CJ1l3XXk.js → prompt-DzO1um1h.js} +4 -4
- package/dist/chunks/{promptEditor-DoGHJN_W.js → promptEditor-B6S_Rzcu.js} +2 -2
- package/dist/chunks/protocolHandler-BWgH1jaF.js +13 -0
- package/dist/chunks/{proxy-CDBfZjO7.js → proxy-BjkGlmBu.js} +1 -1
- package/dist/chunks/reconciler-CVMmAaCy.js +1 -0
- package/dist/chunks/refresh-CAGv8BJY.js +1 -0
- package/dist/chunks/reject-CEUkoI2G.js +1 -0
- package/dist/chunks/{reload-plugins-CQZFQLWP.js → reload-plugins-DeyJTx4s.js} +1 -1
- package/dist/chunks/rename-DPFis9g_.js +1 -0
- package/dist/chunks/{renderOptions-DV0dn0IW.js → renderOptions-DRS2EslG.js} +1 -1
- package/dist/chunks/resume-N4O5YI-S.js +2 -0
- package/dist/chunks/ripgrep-3omwGI-l.js +1 -0
- package/dist/chunks/ripgrep-CgQrN3XX.js +5 -0
- package/dist/chunks/{runtimeObserver-DEuR8z0f.js → runtimeObserver-C0CJvA3q.js} +1 -1
- package/dist/chunks/{runtimeObserver-PJ1o8GRA.js → runtimeObserver-DMSzdFWt.js} +4 -4
- package/dist/chunks/sandbox-adapter-D15jjHJR.js +1 -0
- package/dist/chunks/sandbox-toggle-Tbbaw18C.js +1 -0
- package/dist/chunks/searchExtraTools-BoFc__Eg.js +1 -0
- package/dist/chunks/select-Fq6g2Ejk.js +1 -0
- package/dist/chunks/sessionFileAccessHooks-Rgsp4_Ex.js +1 -0
- package/dist/chunks/{sessionObserver-BtKjvteq.js → sessionObserver-CRie77tp.js} +2 -2
- package/dist/chunks/sessionObserver-PcaVCVkX.js +1 -0
- package/dist/chunks/sessionStorage-Dkf7FRgA.js +1 -0
- package/dist/chunks/sessionTracing-D7rekMdW.js +11 -0
- package/dist/chunks/settings-8fwIkMDV.js +1 -0
- package/dist/chunks/settings-CodSADx8.js +24 -0
- package/dist/chunks/setup-DBiIrXrh.js +3 -0
- package/dist/chunks/{shadowedRuleDetection-Bg_aIc5Z.js → shadowedRuleDetection-CTnYVrmP.js} +1 -1
- package/dist/chunks/{sideQuestion-D49GsfH7.js → sideQuestion-Cl8m2qYx.js} +3 -3
- package/dist/chunks/sinks-CiupmfTg.js +1 -0
- package/dist/chunks/sinks-DH83d_kd.js +1 -0
- package/dist/chunks/skillChangeDetector-BrrZaFkT.js +1 -0
- package/dist/chunks/{skillGapStore-CcFoHNLl.js → skillGapStore-es3K-aYe.js} +2 -2
- package/dist/chunks/{skillLifecycle-Bnz_4wE5.js → skillLifecycle-BcgoOQBk.js} +2 -2
- package/dist/chunks/{skillSearchPanel-C_5yUhqn.js → skillSearchPanel-CuDDb1L-.js} +4 -4
- package/dist/chunks/skills-BRtgqnLz.js +1 -0
- package/dist/chunks/{src-CiJCsqUl.js → src-C8gyNm5a.js} +1 -1
- package/dist/chunks/src-Db7K3F_i.js +3 -0
- package/dist/chunks/startupProfiler-D1NRu2nj.js +1 -0
- package/dist/chunks/startupProfiler-DF0AjiDf.js +3 -0
- package/dist/chunks/{state-B4jiUise.js → state-BQ4BEGin.js} +1 -1
- package/dist/chunks/state-D3gvDiu8.js +1 -0
- package/dist/chunks/status-WXA16wIM.js +1 -0
- package/dist/chunks/statusNoticeHelpers-BfmIub5L.js +1 -0
- package/dist/chunks/{stringUtils-C718f5ey.js → stringUtils-Bu_lJH5c.js} +1 -1
- package/dist/chunks/switcher-5gilU5_R.js +1 -0
- package/dist/chunks/{switcher-DZwUo5Ed.js → switcher-DMfuKuw_.js} +1 -1
- package/dist/chunks/{tasks-DdcUQEeD.js → tasks-B6gYXxOx.js} +1 -1
- package/dist/chunks/{templateJobs-C8qsPrLj.js → templateJobs-BW6TaqEC.js} +1 -1
- package/dist/chunks/{terminalSetup-B_10N_gE.js → terminalSetup-BgIXFBpd.js} +4 -4
- package/dist/chunks/{terminalSetup-qc2PlvOm.js → terminalSetup-C-g9Xvj3.js} +1 -1
- package/dist/chunks/{theme-f1h2QI8J.js → theme-9AZceq_m.js} +1 -1
- package/dist/chunks/tipRegistry-DtO1H_Wo.js +2 -0
- package/dist/chunks/{toolEventObserver-7QP38x4t.js → toolEventObserver-DTuJcREC.js} +1 -1
- package/dist/chunks/toolPool-DHS8jWaL.js +1 -0
- package/dist/chunks/{types-Dx7P7JLQ.js → types-97nL3naE.js} +16 -16
- package/dist/chunks/{udsClient-cQz6nJ_T.js → udsClient-CmYHFiBD.js} +1 -1
- package/dist/chunks/{use-select-navigation-hWL5VHnL.js → use-select-navigation-BStVRvcX.js} +1 -1
- package/dist/chunks/useExitOnCtrlCDWithKeybindings-DWRFdFoU.js +1 -0
- package/dist/chunks/useMainLoopModel-DSN5HjV1.js +1 -0
- package/dist/chunks/useManagePlugins-ntnOf5OU.js +1 -0
- package/dist/chunks/useMergedTools-C5Yns9Ij.js +1 -0
- package/dist/chunks/useSearchInput-B_mY9wBq.js +1 -0
- package/dist/chunks/useSettingsErrors-CM7tThcp.js +1 -0
- package/dist/chunks/util-Bb2S6g9N.js +1 -0
- package/dist/chunks/{validatePlugin-BMSoeb_b.js → validatePlugin-D8WQ5z4W.js} +1 -1
- package/dist/chunks/vim-Dpnhgoz_.js +1 -0
- package/dist/chunks/worktree-a5oOPSYl.js +1 -0
- package/dist/cli.js +1 -1
- package/package.json +1 -12
- package/dist/chunks/AddWorkspaceDirectory-Ch8IcWXO.js +0 -1
- package/dist/chunks/AgentsMdExternalIncludesDialog-Cyia0s4g.js +0 -1
- package/dist/chunks/AgentsMdExternalIncludesDialog-LjI_H_Au.js +0 -1
- package/dist/chunks/App-BOqh_1tN.js +0 -1
- package/dist/chunks/BackgroundTasksDialog-CSEuuoq9.js +0 -2
- package/dist/chunks/BypassPermissionsModeDialog-CwfCwUr9.js +0 -1
- package/dist/chunks/CustomSelect-wmZ9jz0W.js +0 -1
- package/dist/chunks/DiffDialog-BpXIEWiE.js +0 -6
- package/dist/chunks/Doctor-CMpr7tdf.js +0 -1
- package/dist/chunks/Doctor-DqW6j3_B.js +0 -3
- package/dist/chunks/ExitFlow-DacaBTlk.js +0 -2
- package/dist/chunks/Grove-CNqYPWI6.js +0 -11
- package/dist/chunks/InvalidConfigDialog-0TMJItCC.js +0 -1
- package/dist/chunks/KeybindingProviderSetup-D49HHTXD.js +0 -1
- package/dist/chunks/MCPConnectionManager-Cie77ZAK.js +0 -1
- package/dist/chunks/MCPToolListView-B4ehtkXd.js +0 -1
- package/dist/chunks/McpParsingWarnings-Bff66RtJ.js +0 -1
- package/dist/chunks/MessageSelector-Dpd6Iywp.js +0 -3
- package/dist/chunks/Messages-DN7M3oS_.js +0 -10
- package/dist/chunks/Onboarding-CQmE3rUf.js +0 -1
- package/dist/chunks/PromptInputFooterSuggestions-HI6HH3TP.js +0 -1
- package/dist/chunks/PromptInputHelpMenu-3QNUC2Cg.js +0 -1
- package/dist/chunks/QueryEngine-DdLWvJv6.js +0 -1
- package/dist/chunks/REPL-BqO9KcK_.js +0 -124
- package/dist/chunks/REPL-CmZmypfF.js +0 -1
- package/dist/chunks/ResumeConversation-DBqX7gva.js +0 -1
- package/dist/chunks/SearchExtraToolsTool-BsSoILFj.js +0 -1
- package/dist/chunks/Settings-B-7yBewS.js +0 -3
- package/dist/chunks/Spinner-ByQXTvAA.js +0 -1
- package/dist/chunks/TextInput-B8ruWRf2.js +0 -22
- package/dist/chunks/ThemePicker-BQErFFW1.js +0 -1
- package/dist/chunks/TrustDialog-BIhz6AZE.js +0 -1
- package/dist/chunks/_baseEach-CsIRoaTH.js +0 -1
- package/dist/chunks/add-dir-CrUDs19x.js +0 -1
- package/dist/chunks/agents-CGaCQeLw.js +0 -101
- package/dist/chunks/allErrors-BF73lon8.js +0 -1
- package/dist/chunks/analytics-DJobLaWP.js +0 -1
- package/dist/chunks/backgroundHousekeeping-Bq3LMsVR.js +0 -17
- package/dist/chunks/backgroundHousekeeping-Cl3Ox7Qh.js +0 -1
- package/dist/chunks/banner-Cu2-XUek.js +0 -2
- package/dist/chunks/branch-Yg_taNlT.js +0 -2
- package/dist/chunks/btw-udbprVvu.js +0 -1
- package/dist/chunks/caches-ChjIEcdd.js +0 -1
- package/dist/chunks/caches-DLJ6urv-.js +0 -1
- package/dist/chunks/client-BiqbIkwr.js +0 -1
- package/dist/chunks/client-CZ8nyVh5.js +0 -1
- package/dist/chunks/commands-CVCpJo7M.js +0 -1
- package/dist/chunks/compact-izk6RKHQ.js +0 -2
- package/dist/chunks/config-C-Y2qtB2.js +0 -3
- package/dist/chunks/config-CFqpXMFX.js +0 -1
- package/dist/chunks/config-DD8fCYXn.js +0 -1
- package/dist/chunks/context-BbVm4SWK.js +0 -1
- package/dist/chunks/context-noninteractive-x0HAzWhc.js +0 -1
- package/dist/chunks/conversation-DouVzO0K.js +0 -1
- package/dist/chunks/conversation-DrVkifKy.js +0 -1
- package/dist/chunks/conversationRecovery-DliPBo_z.js +0 -1
- package/dist/chunks/crossProjectResume-DxMy05_P.js +0 -40
- package/dist/chunks/cwd-Dc3NV7s8.js +0 -1
- package/dist/chunks/cwd-Pa83R95t.js +0 -1
- package/dist/chunks/datadog-Cu3s7P48.js +0 -1
- package/dist/chunks/debug-Bglx1aTu.js +0 -39
- package/dist/chunks/doctor-D_kV_D_l.js +0 -1
- package/dist/chunks/entry-Bxseqbi_.js +0 -13
- package/dist/chunks/esm-BXTZz3av.js +0 -1
- package/dist/chunks/execAsync-Bv2yxuGe.js +0 -1
- package/dist/chunks/exit-C_R_FgzR.js +0 -1
- package/dist/chunks/extraUsage-xMuDiNKh.js +0 -1
- package/dist/chunks/extractMemories-D4Dl1itt.js +0 -1
- package/dist/chunks/fast-DH-C5IZs.js +0 -1
- package/dist/chunks/fast-bopOPrtf.js +0 -1
- package/dist/chunks/fetchModelList-DC4VQpqa.js +0 -1
- package/dist/chunks/fetchModelList-FE8tzTDc.js +0 -1
- package/dist/chunks/fileSuggestions-C-9unnoJ.js +0 -3
- package/dist/chunks/firstPartyEventLogger-QmjjQmgt.js +0 -3
- package/dist/chunks/firstPartyEventLogger-lFeqhtfh.js +0 -1
- package/dist/chunks/generateSessionName-CQ03xlYI.js +0 -1
- package/dist/chunks/getMachineId-bsd-Cut1kHoA.js +0 -1
- package/dist/chunks/getMachineId-darwin-CsRhaP3y.js +0 -2
- package/dist/chunks/getMachineId-linux-Bd7UBNRQ.js +0 -1
- package/dist/chunks/getMachineId-unsupported-vFGP8E_8.js +0 -1
- package/dist/chunks/getMachineId-win-DamF2CH_.js +0 -1
- package/dist/chunks/goal-CdL29Y8C.js +0 -3
- package/dist/chunks/grok-C6WAslUT.js +0 -1
- package/dist/chunks/grove-O6qp7ITR.js +0 -1
- package/dist/chunks/help-DxanITNN.js +0 -1
- package/dist/chunks/history-BMycjPTT.js +0 -1
- package/dist/chunks/hooks-D9ApLkBp.js +0 -1
- package/dist/chunks/install-0D9u2dZw.js +0 -1
- package/dist/chunks/instrumentation-BFiGwntt.js +0 -21
- package/dist/chunks/keybindings-DZrF9iNd.js +0 -1
- package/dist/chunks/launchLocalMemory-DhJ56KDc.js +0 -3
- package/dist/chunks/launchOnboarding-DmMoZwv5.js +0 -8
- package/dist/chunks/loadAgentsDir-BbUR6pqH.js +0 -1
- package/dist/chunks/localSearch-zfn7jgrh.js +0 -1
- package/dist/chunks/logoUtils-CRxTutvr.js +0 -1
- package/dist/chunks/main-9ksgUUY_.js +0 -345
- package/dist/chunks/managedEnv-BEqrGqn1.js +0 -1
- package/dist/chunks/mcp-ChF12reQ.js +0 -1
- package/dist/chunks/mcp-DoEl5uah.js +0 -2
- package/dist/chunks/mcp-hp9qqjAy.js +0 -6
- package/dist/chunks/memory-Qv-wGNQ5.js +0 -1
- package/dist/chunks/mode-bFXPCR2P.js +0 -2
- package/dist/chunks/model-6lkW4o2c.js +0 -1
- package/dist/chunks/model-BvQFFOf8.js +0 -1
- package/dist/chunks/modelOptions-BBvF3wHK.js +0 -1
- package/dist/chunks/nativeInstaller-CdjmE9Zy.js +0 -1
- package/dist/chunks/onChangeAppState-DLjZ1x95.js +0 -1
- package/dist/chunks/open-BtQHzzL9.js +0 -1
- package/dist/chunks/openai-D46QvESE.js +0 -2
- package/dist/chunks/overlayContext-8--_fbvY.js +0 -1
- package/dist/chunks/parser-CG5RuOCK.js +0 -1
- package/dist/chunks/partition-DznN4XZH.js +0 -1
- package/dist/chunks/permissions-DmGFViHI.js +0 -3
- package/dist/chunks/pidLock-Cm4sW35f.js +0 -3
- package/dist/chunks/plan-CzGBz_87.js +0 -1
- package/dist/chunks/platform-BacQ6ACS.js +0 -2
- package/dist/chunks/plugin-CluR79xX.js +0 -17
- package/dist/chunks/pluginCliCommands-CJv5uhOG.js +0 -1
- package/dist/chunks/pluginOperations-CcUSHAIa.js +0 -2
- package/dist/chunks/pluginStartupCheck-CRBUO9gP.js +0 -1
- package/dist/chunks/plugins-IwwaCDba.js +0 -4
- package/dist/chunks/poorMode-G-pnu6NM.js +0 -1
- package/dist/chunks/print-CgszM1ea.js +0 -13
- package/dist/chunks/processBashCommand-D098WsqY.js +0 -1
- package/dist/chunks/processSlashCommand-DOQFjJ88.js +0 -5
- package/dist/chunks/prompt-BKPmDAuL.js +0 -1
- package/dist/chunks/prompt-CgOklk7z.js +0 -1
- package/dist/chunks/protocolHandler-DjQALaU2.js +0 -13
- package/dist/chunks/reconciler-ykkSPR-i.js +0 -1
- package/dist/chunks/refresh-Dn_I1R4v.js +0 -1
- package/dist/chunks/registerProtocol-CAsDme_E.js +0 -1
- package/dist/chunks/reject-DtcCfuZV.js +0 -1
- package/dist/chunks/rename-DyEfsZiq.js +0 -1
- package/dist/chunks/resume-BcXEDUqZ.js +0 -2
- package/dist/chunks/ripgrep-DLs8MraF.js +0 -1
- package/dist/chunks/ripgrep-Dl3y5r4m.js +0 -5
- package/dist/chunks/sandbox-adapter-DfB9kgQD.js +0 -1
- package/dist/chunks/sandbox-toggle-D9GDUsTl.js +0 -1
- package/dist/chunks/searchExtraTools-D4gMMQv0.js +0 -1
- package/dist/chunks/select-DIxfl_VN.js +0 -1
- package/dist/chunks/sessionFileAccessHooks-lbgHnVvi.js +0 -1
- package/dist/chunks/sessionObserver-D6qzEdGJ.js +0 -1
- package/dist/chunks/sessionStorage-C_7gow_z.js +0 -1
- package/dist/chunks/sessionTracing-CtbeAD0s.js +0 -11
- package/dist/chunks/settings-B2jvL8Dp.js +0 -24
- package/dist/chunks/settings-CisDe8DB.js +0 -1
- package/dist/chunks/setup-qecdf-ES.js +0 -3
- package/dist/chunks/sinks-C-lP7uyO.js +0 -1
- package/dist/chunks/sinks-De-B1lPQ.js +0 -1
- package/dist/chunks/skillChangeDetector-DkOJoNhT.js +0 -1
- package/dist/chunks/skills-BE5scC-g.js +0 -1
- package/dist/chunks/src-CHw1lvBc.js +0 -3
- package/dist/chunks/startupProfiler-BH0FoI66.js +0 -1
- package/dist/chunks/startupProfiler-CJdr3SxP.js +0 -3
- package/dist/chunks/state-BhOKSFi5.js +0 -1
- package/dist/chunks/status-Dw09WZLd.js +0 -1
- package/dist/chunks/statusNoticeHelpers-BRQpUIlH.js +0 -1
- package/dist/chunks/switcher-CgZVah7U.js +0 -1
- package/dist/chunks/tipRegistry-B71o4qWr.js +0 -2
- package/dist/chunks/toolPool-V-7Yv0GA.js +0 -1
- package/dist/chunks/useExitOnCtrlCDWithKeybindings-BKwzUpgb.js +0 -1
- package/dist/chunks/useMainLoopModel-DxvV70Ru.js +0 -1
- package/dist/chunks/useManagePlugins-BXLXazrR.js +0 -1
- package/dist/chunks/useMergedTools-CCgnBJzO.js +0 -1
- package/dist/chunks/useSearchInput-CzopttqC.js +0 -1
- package/dist/chunks/useSettingsErrors-SFPWfxsA.js +0 -1
- package/dist/chunks/util-Cbb3S6SX.js +0 -1
- package/dist/chunks/vim-CoRp9lY1.js +0 -1
- package/dist/chunks/worktree-Vm-SNY5x.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e,o as t}from"./envUtils-DfkgIdYf.js";import{I as n,M as r,S as i,c as a,i as o,x as s,z as c}from"./debug-
|
|
1
|
+
import{i as e,o as t}from"./envUtils-DfkgIdYf.js";import{I as n,M as r,S as i,c as a,i as o,x as s,z as c}from"./debug-CRnGsZOV.js";import{o as l}from"./log-DoSpAwRP.js";import{a as u,i as d}from"./genericProcessUtils-BNlr-QxM.js";import"os";import{join as f}from"path";import"crypto";import{readFile as p,readdir as m}from"fs/promises";import"net";import"node:string_decoder";t(),o(),d(),n(),s(),n(),l(),s(),t(),o(),n(),s();function h(){return f(e(),`sessions`)}async function g(){let e=h(),t;try{t=await m(e)}catch(e){return c(e)||a(`[udsClient] readdir failed: ${r(e)}`),[]}let n=[];for(let r of t){if(!/^\d+\.json$/.test(r))continue;let t=parseInt(r.slice(0,-5),10);if(u(t))try{let a=i(await p(f(e,r),`utf8`));n.push({pid:t,sessionId:a.sessionId,cwd:a.cwd,startedAt:a.startedAt,kind:a.kind,name:a.name,messagingSocketPath:a.messagingSocketPath,entrypoint:a.entrypoint,bridgeSessionId:a.bridgeSessionId,alive:!0})}catch{}}return n}export{g as listAllLiveSessions};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,o as t}from"./rolldown-runtime-DaDcL9Zw.js";import{n,t as r}from"./defineProperty-C-QyHrDq.js";import{
|
|
1
|
+
import{n as e,o as t}from"./rolldown-runtime-DaDcL9Zw.js";import{n,t as r}from"./defineProperty-C-QyHrDq.js";import{Bt as i,Gt as a,I as o,Lt as s,P as c,T as l,Wt as u,_ as d,ai as f,hn as p,t as m}from"./src-DL3w8VPk.js";import{t as h}from"./jsx-runtime-Bb4Xn-E0.js";import{Cb as g,Lu as _,Ru as v,hd as y,md as b}from"./loadAgentsDir-DGozQu_6.js";import{D as x,O as S,n as C,t as w}from"./TextInput-Cev5Awdd.js";import{isDeepStrictEqual as T}from"util";import{pathToFileURL as E}from"url";function D({imageId:e,backgroundColor:t,isSelected:n=!1}){let r=_(e),a=`[Image #${e}]`;if(r&&i()){let e=E(r).href;return(0,O.jsx)(s,{url:e,fallback:(0,O.jsx)(c,{backgroundColor:t,inverse:n,children:a}),children:(0,O.jsx)(c,{backgroundColor:t,inverse:n,bold:n,children:a})})}return(0,O.jsx)(c,{backgroundColor:t,inverse:n,children:a})}var O,k=e((()=>{m(),v(),O=h()}));function A({isFocused:e,isSelected:t,children:n,description:r,shouldShowDownArrow:i,shouldShowUpArrow:a,declareCursor:o}){return(0,j.jsx)(d,{isFocused:e,isSelected:t,description:r,showScrollDown:i,showScrollUp:a,styled:!1,declareCursor:o,children:n})}var j,M=e((()=>{m(),j=h()}));function N({option:e,isFocused:t,isSelected:n,shouldShowDownArrow:r,shouldShowUpArrow:i,maxIndexWidth:s,index:d,inputValue:f,onInputChange:m,onSubmit:h,onExit:g,layout:_,children:v,showLabel:y=!1,onOpenEditor:S,resetCursorOnUpdate:C=!1,onImagePaste:T,pastedContents:E,onRemoveImage:O,imagesSelected:k,selectedImageIndex:j=0,onImagesSelectedChange:M,onSelectedImageIndexChange:N}){let I=E?Object.values(E).filter(e=>e.type===`image`):[],L=y||e.showLabelWithValue===!0,[R,z]=(0,P.useState)(f.length),B=(0,P.useRef)(!1);(0,P.useEffect)(()=>{C&&t&&(B.current?B.current=!1:z(f.length))},[C,t,f]),u(`chat:externalEditor`,()=>{S?.(f,m)},{context:`Chat`,isActive:t&&!!S}),u(`chat:imagePaste`,()=>{T&&x().then(e=>{e&&T(e.base64,e.mediaType,void 0,e.dimensions)})},{context:`Chat`,isActive:t&&!!T}),u(`attachments:remove`,()=>{I.length>0&&O&&O(I.at(-1).id)},{context:`Attachments`,isActive:t&&!k&&f===``&&I.length>0&&!!O}),a({"attachments:next":()=>{I.length>1&&N?.((j+1)%I.length)},"attachments:previous":()=>{I.length>1&&N?.((j-1+I.length)%I.length)},"attachments:remove":()=>{let e=I[j];e&&O&&(O(e.id),I.length<=1?M?.(!1):N?.(Math.min(j,I.length-2)))},"attachments:exit":()=>{M?.(!1)}},{context:`Attachments`,isActive:t&&!!k}),p((e,t)=>{t.upArrow&&M?.(!1)},{isActive:t&&!!k}),(0,P.useEffect)(()=>{!t&&k&&M?.(!1)},[t,k,M]);let V=_===`expanded`?s+3:s+4;return(0,F.jsxs)(o,{flexDirection:`column`,flexShrink:0,children:[(0,F.jsx)(A,{isFocused:t,isSelected:n,shouldShowDownArrow:r,shouldShowUpArrow:i,declareCursor:!1,children:(0,F.jsxs)(o,{flexDirection:`row`,flexShrink:_===`compact`?0:void 0,children:[(0,F.jsx)(c,{dimColor:!0,children:`${d}.`.padEnd(s+2)}),v,L?(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(c,{color:t?`suggestion`:void 0,children:e.label}),t?(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(c,{color:`suggestion`,children:e.labelValueSeparator??`, `}),(0,F.jsx)(w,{value:f,onChange:t=>{B.current=!0,m(t),e.onChange(t)},onSubmit:h,onExit:g,placeholder:e.placeholder,focus:!k,showCursor:!0,multiline:!0,cursorOffset:R,onChangeCursorOffset:z,columns:80,onImagePaste:T,onPaste:t=>{B.current=!0;let n=f.slice(0,R),r=f.slice(R),i=n+t+r;m(i),e.onChange(i),z(n.length+t.length)}})]}):f&&(0,F.jsxs)(c,{children:[e.labelValueSeparator??`, `,f]})]}):t?(0,F.jsx)(w,{value:f,onChange:t=>{B.current=!0,m(t),e.onChange(t)},onSubmit:h,onExit:g,placeholder:e.placeholder||(typeof e.label==`string`?e.label:void 0),focus:!k,showCursor:!0,multiline:!0,cursorOffset:R,onChangeCursorOffset:z,columns:80,onImagePaste:T,onPaste:t=>{B.current=!0;let n=f.slice(0,R),r=f.slice(R),i=n+t+r;m(i),e.onChange(i),z(n.length+t.length)}}):(0,F.jsx)(c,{color:f?void 0:`inactive`,children:f||e.placeholder||e.label})]})}),e.description&&(0,F.jsx)(o,{paddingLeft:V,children:(0,F.jsx)(c,{dimColor:e.dimDescription!==!1,color:n?`success`:t?`suggestion`:void 0,children:e.description})}),I.length>0&&(0,F.jsxs)(o,{flexDirection:`row`,gap:1,paddingLeft:V,children:[I.map((e,t)=>(0,F.jsx)(D,{imageId:e.id,isSelected:!!k&&t===j},e.id)),(0,F.jsx)(o,{flexGrow:1,justifyContent:`flex-start`,flexDirection:`row`,children:(0,F.jsx)(c,{dimColor:!0,children:k?(0,F.jsxs)(l,{children:[I.length>1&&(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(b,{action:`attachments:next`,context:`Attachments`,fallback:`→`,description:`next`}),(0,F.jsx)(b,{action:`attachments:previous`,context:`Attachments`,fallback:`←`,description:`prev`})]}),(0,F.jsx)(b,{action:`attachments:remove`,context:`Attachments`,fallback:`backspace`,description:`remove`}),(0,F.jsx)(b,{action:`attachments:exit`,context:`Attachments`,fallback:`esc`,description:`cancel`})]}):t?`(↓ to select)`:null})})]}),_===`expanded`&&(0,F.jsx)(c,{children:` `})]})}var P,F,I=e((()=>{P=t(f(),1),m(),g(),S(),k(),y(),C(),M(),F=h()})),L,R=e((()=>{n(),L=class extends Map{constructor(e){let t=[],n,i,a,o=0;for(let r of e){let e={label:r.label,value:r.value,description:r.description,previous:a,next:void 0,index:o};a&&(a.next=e),n||(n=e),i=e,t.push([r.value,e]),o++,a=e}super(t),r(this,`first`,void 0),r(this,`last`,void 0),this.first=n,this.last=i}}}));function z({visibleOptionCount:e=5,options:t,initialFocusValue:n,onFocus:r,focusValue:i}){let[a,o]=(0,B.useReducer)(V,{visibleOptionCount:e,options:t,initialFocusValue:i||n},H),s=(0,B.useRef)(r);s.current=r;let[c,l]=(0,B.useState)(t);t!==c&&!T(t,c)&&(o({type:`reset`,state:H({visibleOptionCount:e,options:t,initialFocusValue:i??a.focusedValue??n,currentViewport:{visibleFromIndex:a.visibleFromIndex,visibleToIndex:a.visibleToIndex}})}),l(t));let u=(0,B.useCallback)(()=>{o({type:`focus-next-option`})},[]),d=(0,B.useCallback)(()=>{o({type:`focus-previous-option`})},[]),f=(0,B.useCallback)(()=>{o({type:`focus-next-page`})},[]),p=(0,B.useCallback)(()=>{o({type:`focus-previous-page`})},[]),m=(0,B.useCallback)(e=>{e!==void 0&&o({type:`set-focus`,value:e})},[]),h=(0,B.useMemo)(()=>t.map((e,t)=>({...e,index:t})).slice(a.visibleFromIndex,a.visibleToIndex),[t,a.visibleFromIndex,a.visibleToIndex]),g=(0,B.useMemo)(()=>{if(a.focusedValue!==void 0)return t.some(e=>e.value===a.focusedValue)?a.focusedValue:t[0]?.value},[a.focusedValue,t]),_=(0,B.useMemo)(()=>t.find(e=>e.value===g)?.type===`input`,[g,t]);return(0,B.useEffect)(()=>{g!==void 0&&s.current?.(g)},[g]),(0,B.useEffect)(()=>{i!==void 0&&o({type:`set-focus`,value:i})},[i]),{focusedValue:g,focusedIndex:(0,B.useMemo)(()=>{if(g===void 0)return 0;let e=t.findIndex(e=>e.value===g);return e>=0?e+1:0},[g,t]),visibleFromIndex:a.visibleFromIndex,visibleToIndex:a.visibleToIndex,visibleOptions:h,isInInput:_??!1,focusNextOption:u,focusPreviousOption:d,focusNextPage:f,focusPreviousPage:p,focusOption:m,options:t}}var B,V,H,U=e((()=>{B=t(f(),1),R(),V=(e,t)=>{switch(t.type){case`focus-next-option`:{if(e.focusedValue===void 0)return e;let t=e.optionMap.get(e.focusedValue);if(!t)return e;let n=t.next||e.optionMap.first;if(!n)return e;if(!t.next&&n===e.optionMap.first)return{...e,focusedValue:n.value,visibleFromIndex:0,visibleToIndex:e.visibleOptionCount};if(!(n.index>=e.visibleToIndex))return{...e,focusedValue:n.value};let r=Math.min(e.optionMap.size,e.visibleToIndex+1),i=r-e.visibleOptionCount;return{...e,focusedValue:n.value,visibleFromIndex:i,visibleToIndex:r}}case`focus-previous-option`:{if(e.focusedValue===void 0)return e;let t=e.optionMap.get(e.focusedValue);if(!t)return e;let n=t.previous||e.optionMap.last;if(!n)return e;if(!t.previous&&n===e.optionMap.last){let t=e.optionMap.size,r=Math.max(0,t-e.visibleOptionCount);return{...e,focusedValue:n.value,visibleFromIndex:r,visibleToIndex:t}}if(!(n.index<=e.visibleFromIndex))return{...e,focusedValue:n.value};let r=Math.max(0,e.visibleFromIndex-1),i=r+e.visibleOptionCount;return{...e,focusedValue:n.value,visibleFromIndex:r,visibleToIndex:i}}case`focus-next-page`:{if(e.focusedValue===void 0)return e;let t=e.optionMap.get(e.focusedValue);if(!t)return e;let n=Math.min(e.optionMap.size-1,t.index+e.visibleOptionCount),r=e.optionMap.first;for(;r&&r.index<n&&r.next;)r=r.next;if(!r)return e;let i=Math.min(e.optionMap.size,r.index+1),a=Math.max(0,i-e.visibleOptionCount);return{...e,focusedValue:r.value,visibleFromIndex:a,visibleToIndex:i}}case`focus-previous-page`:{if(e.focusedValue===void 0)return e;let t=e.optionMap.get(e.focusedValue);if(!t)return e;let n=Math.max(0,t.index-e.visibleOptionCount),r=e.optionMap.first;for(;r&&r.index<n&&r.next;)r=r.next;if(!r)return e;let i=Math.max(0,r.index),a=Math.min(e.optionMap.size,i+e.visibleOptionCount);return{...e,focusedValue:r.value,visibleFromIndex:i,visibleToIndex:a}}case`reset`:return t.state;case`set-focus`:{if(e.focusedValue===t.value)return e;let n=e.optionMap.get(t.value);if(!n)return e;if(n.index>=e.visibleFromIndex&&n.index<e.visibleToIndex)return{...e,focusedValue:t.value};let r,i;return n.index<e.visibleFromIndex?(r=n.index,i=Math.min(e.optionMap.size,r+e.visibleOptionCount)):(i=Math.min(e.optionMap.size,n.index+1),r=Math.max(0,i-e.visibleOptionCount)),{...e,focusedValue:t.value,visibleFromIndex:r,visibleToIndex:i}}}},H=({visibleOptionCount:e,options:t,initialFocusValue:n,currentViewport:r})=>{let i=typeof e==`number`?Math.min(e,t.length):t.length,a=new L(t),o=n!==void 0&&a.get(n),s=o?n:a.first?.value,c=0,l=i;if(o){let e=o.index;r?e>=r.visibleFromIndex&&e<r.visibleToIndex?(c=r.visibleFromIndex,l=Math.min(a.size,r.visibleToIndex)):e<r.visibleFromIndex?(c=e,l=Math.min(a.size,c+i)):(l=Math.min(a.size,e+1),c=Math.max(0,l-i)):e>=i&&(l=Math.min(a.size,e+1),c=Math.max(0,l-i)),c=Math.max(0,Math.min(c,a.size-1)),l=Math.min(a.size,Math.max(i,l))}return{optionMap:a,visibleOptionCount:i,focusedValue:s,visibleFromIndex:c,visibleToIndex:l}}}));export{A as a,I as i,z as n,M as o,N as r,U as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e,o as t}from"./rolldown-runtime-DaDcL9Zw.js";import{Gt as n,ai as r,et as i,t as a,vt as o}from"./src-DL3w8VPk.js";import{Cb as s}from"./loadAgentsDir-DGozQu_6.js";import{t as c}from"./useDoublePress-C9xxQzh1.js";function l(e,t,n,r=!0){let{exit:a}=o(),[s,c]=(0,u.useState)({pending:!1,keyName:null}),l=(0,u.useMemo)(()=>n??a,[n,a]),d=i(e=>c({pending:e,keyName:`Ctrl-C`}),l),f=i(e=>c({pending:e,keyName:`Ctrl-D`}),l),p=(0,u.useCallback)(()=>{t?.()||d()},[d,t]),m=(0,u.useCallback)(()=>{f()},[f]);return e((0,u.useMemo)(()=>({"app:interrupt":p,"app:exit":m}),[p,m]),{context:`Global`,isActive:r}),s}var u,d=e((()=>{u=t(r(),1),a(),c()}));function f(e,t,r){return l(n,t,e,r)}var p=e((()=>{s(),d()}));export{f as n,p as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{Bp as t,zp as n}from"./loadAgentsDir-DGozQu_6.js";import{f as r,i,v as a}from"./model-DpZaKZMb.js";function o(){let e=t(e=>e.mainLoopModel);return a(t(e=>e.mainLoopModelForSession)??e??i())}var s=e((()=>{n(),r()}));export{o as n,s as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e}from"./rolldown-runtime-DaDcL9Zw.js";import{ai as t}from"./src-DL3w8VPk.js";import{Bp as n,Fa as r,Go as i,Hp as a,Hv as o,Ko as s,Pa as c,Vv as l,Xo as u,Zo as d,ap as f,ch as p,cp as m,rp as h,sh as g,sp as _,zp as v}from"./loadAgentsDir-DGozQu_6.js";import{I as y,V as b,c as x,i as S}from"./debug-CRnGsZOV.js";import{Hn as C,Jr as w,Vn as T,Yr as E}from"./settings-CodSADx8.js";import{o as D,s as O}from"./log-DoSpAwRP.js";import{n as k}from"./analytics-COpjZpvd.js";import{n as A,t as j}from"./notifications-ql0eSo0Y.js";import{n as M,r as N}from"./pluginFlagging-BO_3qjfs.js";import{t as P}from"./pluginBlocklist-BAr9WTup.js";var F=e(t(),1);j(),k(),h(),v(),C(),S(),w(),y(),D(),u(),s(),g(),_(),l(),N(),c();function I({enabled:e=!0}={}){let t=a(),s=n(e=>e.plugins.needsRefresh),{addNotification:c}=A(),l=(0,F.useCallback)(async()=>{try{let{enabled:e,disabled:n,errors:a}=await r();await P();let s=M();Object.keys(s).length>0&&c({key:`plugin-delisted-flagged`,text:`Plugins flagged. Check /plugins`,color:`warning`,priority:`high`});let l=[],u=[];try{l=await i()}catch(e){let t=e instanceof Error?e.message:String(e);a.push({type:`generic-error`,source:`plugin-commands`,error:`Failed to load plugin commands: ${t}`})}try{u=await d()}catch(e){let t=e instanceof Error?e.message:String(e);a.push({type:`generic-error`,source:`plugin-agents`,error:`Failed to load plugin agents: ${t}`})}try{await p()}catch(e){let t=e instanceof Error?e.message:String(e);a.push({type:`generic-error`,source:`plugin-hooks`,error:`Failed to load plugin hooks: ${t}`})}let h=(await Promise.all(e.map(async e=>{if(e.mcpServers)return Object.keys(e.mcpServers).length;let t=await o(e,a);return t&&(e.mcpServers=t),t?Object.keys(t).length:0}))).reduce((e,t)=>e+t,0),g=(await Promise.all(e.map(async e=>{if(e.lspServers)return Object.keys(e.lspServers).length;let t=await m(e,a);return t&&(e.lspServers=t),t?Object.keys(t).length:0}))).reduce((e,t)=>e+t,0);f(),t(t=>{let r=t.plugins.errors.filter(e=>e.source===`lsp-manager`||e.source.startsWith(`plugin:`)),i=new Set(a.map(e=>e.type===`generic-error`?`generic-error:${e.source}:${e.error}`:`${e.type}:${e.source}`)),o=[...r.filter(e=>{let t=e.type===`generic-error`?`generic-error:${e.source}:${e.error}`:`${e.type}:${e.source}`;return!i.has(t)}),...a];return{...t,plugins:{...t.plugins,enabled:e,disabled:n,commands:l,errors:o}}}),x(`Loaded plugins - Enabled: ${e.length}, Disabled: ${n.length}, Commands: ${l.length}, Agents: ${u.length}, Errors: ${a.length}`);let _=e.reduce((e,t)=>t.hooksConfig?e+Object.values(t.hooksConfig).reduce((e,t)=>e+(t?.reduce((e,t)=>e+t.hooks.length,0)??0),0):e,0);return{enabled_count:e.length,disabled_count:n.length,inline_count:T(e,e=>e.source.endsWith(`@inline`)),marketplace_count:T(e,e=>!e.source.endsWith(`@inline`)),error_count:a.length,skill_count:l.length,agent_count:u.length,hook_count:_,mcp_count:h,lsp_count:g}}catch(e){let n=b(e);return O(n),x(`Error loading plugins: ${e}`),t(e=>{let t=e.plugins.errors.filter(e=>e.source===`lsp-manager`||e.source.startsWith(`plugin:`)),r={type:`generic-error`,source:`plugin-system`,error:n.message};return{...e,plugins:{...e.plugins,enabled:[],disabled:[],commands:[],errors:[...t,r]}}}),{enabled_count:0,disabled_count:0,inline_count:0,marketplace_count:0,error_count:1,skill_count:0,agent_count:0,hook_count:0,mcp_count:0,lsp_count:0,load_failed:!0,ant_enabled_names:void 0}}},[t,c]);(0,F.useEffect)(()=>{e&&l().then(e=>{let{ant_enabled_names:t,...n}=e,r={...n,has_custom_plugin_cache_dir:!!process.env.CLAUDE_CODE_PLUGIN_CACHE_DIR};({...r,...t!==void 0&&{enabled_names:t}}),E(`info`,`tengu_plugins_loaded`,r)})},[l,e]),(0,F.useEffect)(()=>{!e||!s||c({key:`plugin-reload-pending`,text:`Plugins changed. Run /reload-plugins to activate.`,color:`suggestion`,priority:`low`})},[e,s,c])}export{I as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e,o as t}from"./rolldown-runtime-DaDcL9Zw.js";import{ai as n}from"./src-DL3w8VPk.js";import{Cc as r,Dc as i}from"./loadAgentsDir-DGozQu_6.js";import{n as a,t as o}from"./toolPool-DHS8jWaL.js";function s(e,t,n){return(0,c.useMemo)(()=>a(e,r(n,t),n.mode),[e,t,n,!1,!1])}var c,l=e((()=>{c=t(n(),1),i(),o()}));export{s as n,l as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e,o as t}from"./rolldown-runtime-DaDcL9Zw.js";import{Vn as n,ai as r,hn as i,ot as a,t as o}from"./src-DL3w8VPk.js";import{kb as s}from"./loadAgentsDir-DGozQu_6.js";import{_ as c,b as l,d as u,g as d,h as f,l as p,u as m,v as h,y as g}from"./TextInput-Cev5Awdd.js";function _(e){return!!(e.ctrl&&(e.key===`k`||e.key===`u`||e.key===`w`)||e.meta&&e.key===`backspace`)}function v(e){return(e.ctrl||e.meta)&&e.key===`y`}function y({isActive:e,onExit:t,onCancel:r,onExitUp:o,columns:s,passthroughCtrlKeys:u=[],initialQuery:y=``,backspaceExitsOnEmpty:S=!0}){let{columns:C}=a(),w=s??C,[T,E]=(0,b.useState)(y),[D,O]=(0,b.useState)(y.length),k=(0,b.useCallback)(e=>{E(e),O(e.length)},[]),A=n=>{if(!e)return;let i=p.fromText(T,w,D);if(!(n.ctrl&&u.includes(n.key.toLowerCase()))){if(_(n)||c(),v(n)||h(),n.key===`return`||n.key===`down`){n.preventDefault(),t();return}if(n.key===`up`){n.preventDefault(),o&&o();return}if(n.key===`escape`){n.preventDefault(),r?r():T.length>0?(E(``),O(0)):t();return}if(n.key===`backspace`){if(n.preventDefault(),n.meta){let{cursor:e,killed:t}=i.deleteWordBefore();f(t,`prepend`),E(e.text),O(e.offset);return}if(T.length===0){S&&(r??t)();return}let e=i.backspace();E(e.text),O(e.offset);return}if(n.key===`delete`){n.preventDefault();let e=i.del();E(e.text),O(e.offset);return}if(n.key===`left`&&(n.ctrl||n.meta||n.fn)){n.preventDefault();let e=i.prevWord();O(e.offset);return}if(n.key===`right`&&(n.ctrl||n.meta||n.fn)){n.preventDefault();let e=i.nextWord();O(e.offset);return}if(n.key===`left`){n.preventDefault();let e=i.left();O(e.offset);return}if(n.key===`right`){n.preventDefault();let e=i.right();O(e.offset);return}if(n.key===`home`){n.preventDefault(),O(0);return}if(n.key===`end`){n.preventDefault(),O(T.length);return}if(n.ctrl){switch(n.preventDefault(),n.key.toLowerCase()){case`a`:O(0);return;case`e`:O(T.length);return;case`b`:O(i.left().offset);return;case`f`:O(i.right().offset);return;case`d`:{if(T.length===0){(r??t)();return}let e=i.del();E(e.text),O(e.offset);return}case`h`:{if(T.length===0){S&&(r??t)();return}let e=i.backspace();E(e.text),O(e.offset);return}case`k`:{let{cursor:e,killed:t}=i.deleteToLineEnd();f(t,`append`),E(e.text),O(e.offset);return}case`u`:{let{cursor:e,killed:t}=i.deleteToLineStart();f(t,`prepend`),E(e.text),O(e.offset);return}case`w`:{let{cursor:e,killed:t}=i.deleteWordBefore();f(t,`prepend`),E(e.text),O(e.offset);return}case`y`:{let e=m();if(e.length>0){let t=i.offset,n=i.insert(e);d(t,e.length),E(n.text),O(n.offset)}return}case`g`:case`c`:if(r){r();return}}return}if(n.meta){switch(n.preventDefault(),n.key.toLowerCase()){case`b`:O(i.prevWord().offset);return;case`f`:O(i.nextWord().offset);return;case`d`:{let e=i.deleteWordAfter();E(e.text),O(e.offset);return}case`y`:{let e=l();if(e){let{text:t,start:n,length:r}=e,i=T.slice(0,n),a=T.slice(n+r),o=i+t+a,s=n+t.length;g(t.length),E(o),O(s)}return}}return}if(n.key!==`tab`&&n.key.length>=1&&!x.has(n.key)){n.preventDefault();let e=i.insert(n.key);E(e.text),O(e.offset)}}};return i((e,t,r)=>{A(new n(r.keypress))},{isActive:e}),{query:T,setQuery:k,cursorOffset:D,handleKeyDown:A}}var b,x,S=e((()=>{b=t(r(),1),o(),u(),s(),x=new Set([`pageup`,`pagedown`,`insert`,`wheelup`,`wheeldown`,`mouse`,`f1`,`f2`,`f3`,`f4`,`f5`,`f6`,`f7`,`f8`,`f9`,`f10`,`f11`,`f12`])}));export{y as n,S as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e,o as t}from"./rolldown-runtime-DaDcL9Zw.js";import{ai as n}from"./src-DL3w8VPk.js";import{Gp as r,Kp as i}from"./loadAgentsDir-DGozQu_6.js";import{n as a,t as o}from"./notifications-ql0eSo0Y.js";import{n as s,t as c}from"./allErrors-C9kx6lnk.js";function l(){let{addNotification:e,removeNotification:t}=a(),[n,r]=(0,u.useState)(()=>{let{errors:e}=c();return e});return i((0,u.useCallback)(()=>{let{errors:e}=c();r(e)},[])),(0,u.useEffect)(()=>{if(n.length>0){let t=`Found ${n.length} settings ${n.length===1?`issue`:`issues`} · /doctor for details`;e({key:d,text:t,color:`warning`,priority:`high`,timeoutMs:6e4})}else t(d)},[n,e,t]),n}var u,d,f=e((()=>{u=t(n(),1),o(),s(),r(),d=`settings-errors`}));export{l as n,f as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e}from"./rolldown-runtime-DaDcL9Zw.js";import{ai as t}from"./src-DL3w8VPk.js";import{t as n}from"./jsx-runtime-Bb4Xn-E0.js";import{Lp as r,zp as i}from"./loadAgentsDir-DGozQu_6.js";import{n as a}from"./analytics-COpjZpvd.js";import{t as o}from"./KeybindingProviderSetup-DsJqfEt-.js";import{t as s}from"./useManagePlugins-ntnOf5OU.js";import{n as c,t as l}from"./MCPConnectionManager-DkZVxLEj.js";import{cwd as u}from"process";var d=e(t(),1);a(),c(),i();var f=n(),p=d.lazy(()=>import(`./Doctor-DKpBnbuI.js`).then(e=>({default:e.Doctor})));function m({onDone:e}){return s(),(0,f.jsx)(d.Suspense,{fallback:null,children:(0,f.jsx)(p,{onDone:e})})}async function h(e){await new Promise(t=>{e.render((0,f.jsx)(r,{children:(0,f.jsx)(o,{children:(0,f.jsx)(l,{dynamicMcpConfig:void 0,isStrictMcpConfig:!1,children:(0,f.jsx)(m,{onDone:()=>{t()}})})})}))}),e.unmount(),process.exit(0)}async function g(e,t){let{setup:n}=await import(`./setup-DBiIrXrh.js`);await n(u(),`default`,!1,!1,void 0,!1);let{install:r}=await import(`./install-DrMiHa2Q.js`);await new Promise(n=>{let i=[];e&&i.push(e),t.force&&i.push(`--force`),r.call(e=>{n(),process.exit(+!!e.includes(`failed`))},{},i)})}export{h as doctorHandler,g as installHandler};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{n as t,t as n}from"./axios-DaWTGg7G.js";import{Ax as r,Bw as i,Cx as a,Hw as o,Ox as s,Sx as c,Uw as ee,kx as l,zw as u}from"./loadAgentsDir-B0Anodo0.js";import{P as d,x as te}from"./types-Dx7P7JLQ.js";import{C as f,I as p,M as m,N as h,R as g,S as _,c as v,f as y,i as b,u as x,x as S}from"./debug-Bglx1aTu.js";import{_t as C,ft as ne,gt as w,ht as re,mt as ie}from"./settings-B2jvL8Dp.js";import{o as ae,s as T}from"./log-D2TIwHBV.js";import{homedir as oe}from"os";import*as E from"path";import{join as se,resolve as D}from"path";import{randomBytes as O}from"crypto";import{readFile as k,readdir as A,rename as j,stat as M,unlink as N,writeFile as P}from"fs/promises";function F(){return se(c(),H)}async function I(){let e=F();try{let t=_(await k(e,{encoding:`utf-8`}));if(typeof t!=`object`||!t||!(`version`in t)||!(`fetchedAt`in t)||!(`counts`in t))return v(`Install counts cache has invalid structure`),null;let n=t;if(n.version!==V)return v(`Install counts cache version mismatch (got ${n.version}, expected ${V})`),null;if(typeof n.fetchedAt!=`string`||!Array.isArray(n.counts))return v(`Install counts cache has invalid structure`),null;let r=new Date(n.fetchedAt).getTime();return Number.isNaN(r)?(v(`Install counts cache has invalid fetchedAt timestamp`),null):n.counts.every(e=>typeof e==`object`&&!!e&&typeof e.plugin==`string`&&typeof e.unique_installs==`number`)?Date.now()-r>W?(v(`Install counts cache is stale (>24h old)`),null):{version:n.version,fetchedAt:n.fetchedAt,counts:n.counts}:(v(`Install counts cache has malformed entries`),null)}catch(e){return h(e)!==`ENOENT`&&v(`Failed to load install counts cache: ${m(e)}`),null}}async function L(e){let t=F(),n=`${t}.${O(8).toString(`hex`)}.tmp`;try{let r=c();await x().mkdir(r),await P(n,f(e,null,2),{encoding:`utf-8`,mode:384}),await j(n,t),v(`Install counts cache saved successfully`)}catch(e){T(e);try{await N(n)}catch{}}}async function R(){v(`Fetching install counts from ${U}`);let e=performance.now();try{let n=await t.get(U,{timeout:1e4});if(!n.data?.plugins||!Array.isArray(n.data.plugins))throw Error(`Invalid response format from install counts API`);return r(`install_counts`,U,`success`,performance.now()-e),n.data.plugins}catch(t){throw r(`install_counts`,U,`failure`,performance.now()-e,s(t)),t}}async function z(){let e=await I();if(e){v(`Using cached install counts`),r(`install_counts`,U,`cache_hit`,0);let t=new Map;for(let n of e.counts)t.set(n.plugin,n.unique_installs);return t}try{let e=await R();await L({version:V,fetchedAt:new Date().toISOString(),counts:e});let t=new Map;for(let n of e)t.set(n.plugin,n.unique_installs);return t}catch(e){return T(e),v(`Failed to fetch install counts: ${m(e)}`),null}}function B(e){if(e<1e3)return String(e);if(e<1e6){let t=(e/1e3).toFixed(1);return t.endsWith(`.0`)?`${t.slice(0,-2)}K`:`${t}K`}let t=(e/1e6).toFixed(1);return t.endsWith(`.0`)?`${t.slice(0,-2)}M`:`${t}M`}var V,H,U,W,G=e((()=>{n(),b(),p(),y(),ae(),S(),l(),a(),V=1,H=`install-counts-cache.json`,U=`https://raw.githubusercontent.com/anthropics/claude-plugins-official/refs/heads/stats/stats/plugin-installs.json`,W=1440*60*1e3}));async function K(e){let t=e.trim(),n=x(),r=t.match(/^([a-zA-Z0-9._-]+@[^:]+:.+?(?:\.git)?)(#(.+))?$/);if(r?.[1]){let e=r[1],t=r[3];return t?{source:`git`,url:e,ref:t}:{source:`git`,url:e}}if(t.startsWith(`http://`)||t.startsWith(`https://`)){let e=t.match(/^([^#]+)(#(.+))?$/),n=e?.[1]||t,r=e?.[3];if(n.endsWith(`.git`)||n.includes(`/_git/`))return r?{source:`git`,url:n,ref:r}:{source:`git`,url:n};let i;try{i=new URL(n)}catch{return{source:`url`,url:n}}if((i.hostname===`github.com`||i.hostname===`www.github.com`)&&i.pathname.match(/^\/([^/]+\/[^/]+?)(\/|\.git|$)/)?.[1]){let e=n.endsWith(`.git`)?n:`${n}.git`;return r?{source:`git`,url:e,ref:r}:{source:`git`,url:e}}return{source:`url`,url:n}}let i=process.platform===`win32`&&(t.startsWith(`.\\`)||t.startsWith(`..\\`)||/^[a-zA-Z]:[/\\]/.test(t));if(t.startsWith(`./`)||t.startsWith(`../`)||t.startsWith(`/`)||t.startsWith(`~`)||i){let e=D(t.startsWith(`~`)?t.replace(/^~/,oe()):t),r;try{r=await n.stat(e)}catch(t){let n=h(t);return{error:n===`ENOENT`?`Path does not exist: ${e}`:`Cannot access path: ${e} (${n??t})`}}return r.isFile()?e.endsWith(`.json`)?{source:`file`,path:e}:{error:`File path must point to a .json file (marketplace.json), but got: ${e}`}:r.isDirectory()?{source:`directory`,path:e}:{error:`Path is neither a file nor a directory: ${e}`}}if(t.includes(`/`)&&!t.startsWith(`@`)){if(t.includes(`:`))return null;let e=t.match(/^([^#@]+)(?:[#@](.+))?$/),n=e?.[1]||t,r=e?.[2];return r?{source:`github`,repo:n,ref:r}:{source:`github`,repo:n}}return null}var ce=e((()=>{p(),y()}));function le(e){let t=E.basename(e),n=E.basename(E.dirname(e));return t===`plugin.json`?`plugin`:t===`marketplace.json`?`marketplace`:n===`.claude-plugin`?`plugin`:`unknown`}function q(e){return e.issues.map(e=>({path:e.path.join(`.`)||`root`,message:e.message,code:e.code}))}function J(e,t,n,r){e.includes(`..`)&&n.push({path:t,message:r?`Path contains "..": ${e}. ${r}`:`Path contains ".." which could be a path traversal attempt: ${e}`})}function ue(e){let t=e.replace(/^(\.\.\/)+/,``);return`Plugin source paths are resolved relative to the marketplace root (the directory containing .claude-plugin/), not relative to marketplace.json. Use "${t===e?`./plugins/my-plugin`:`./${t}`}" instead of "${e}".`}async function Y(e){let t=[],n=[],r=E.resolve(e),i;try{i=await k(r,{encoding:`utf-8`})}catch(e){let t=h(e),n;return n=t===`ENOENT`?`File not found: ${r}`:t===`EISDIR`?`Path is not a file: ${r}`:`Failed to read file: ${m(e)}`,{success:!1,errors:[{path:`file`,message:n,code:t}],warnings:[],filePath:r,fileType:`plugin`}}let a;try{a=_(i)}catch(e){return{success:!1,errors:[{path:`json`,message:`Invalid JSON syntax: ${m(e)}`}],warnings:[],filePath:r,fileType:`plugin`}}if(a&&typeof a==`object`){let e=a;e.commands&&(Array.isArray(e.commands)?e.commands:[e.commands]).forEach((e,n)=>{typeof e==`string`&&J(e,`commands[${n}]`,t)}),e.agents&&(Array.isArray(e.agents)?e.agents:[e.agents]).forEach((e,n)=>{typeof e==`string`&&J(e,`agents[${n}]`,t)}),e.skills&&(Array.isArray(e.skills)?e.skills:[e.skills]).forEach((e,n)=>{typeof e==`string`&&J(e,`skills[${n}]`,t)})}let o=a;if(typeof a==`object`&&a){let e=a,t=Object.keys(e).filter(e=>$.has(e));if(t.length>0){let r={...e};for(let e of t)delete r[e],n.push({path:e,message:`Field '${e}' belongs in the marketplace entry (marketplace.json), not plugin.json. It's harmless here but unused — Work Mate ignores it at load time.`});o=r}}let s=ie().strict().safeParse(o);if(s.success||t.push(...q(s.error)),s.success){let e=s.data;/^[a-z0-9]+(-[a-z0-9]+)*$/.test(e.name)||n.push({path:`name`,message:`Plugin name "${e.name}" is not kebab-case. Work Mate accepts it, but the Claude.ai marketplace sync requires kebab-case (lowercase letters, digits, and hyphens only, e.g., "my-plugin").`}),e.version||n.push({path:`version`,message:`No version specified. Consider adding a version following semver (e.g., "1.0.0")`}),e.description||n.push({path:`description`,message:`No description provided. Adding a description helps users understand what your plugin does`}),e.author||n.push({path:`author`,message:`No author information provided. Consider adding author details for plugin attribution`})}return{success:t.length===0,errors:t,warnings:n,filePath:r,fileType:`plugin`}}async function X(e){let t=[],n=[],r=E.resolve(e),i;try{i=await k(r,{encoding:`utf-8`})}catch(e){let t=h(e),n;return n=t===`ENOENT`?`File not found: ${r}`:t===`EISDIR`?`Path is not a file: ${r}`:`Failed to read file: ${m(e)}`,{success:!1,errors:[{path:`file`,message:n,code:t}],warnings:[],filePath:r,fileType:`marketplace`}}let a;try{a=_(i)}catch(e){return{success:!1,errors:[{path:`json`,message:`Invalid JSON syntax: ${m(e)}`}],warnings:[],filePath:r,fileType:`marketplace`}}if(a&&typeof a==`object`){let e=a;Array.isArray(e.plugins)&&e.plugins.forEach((e,n)=>{if(e&&typeof e==`object`&&`source`in e){let r=e.source;typeof r==`string`&&J(r,`plugins[${n}].source`,t,ue(r)),r&&typeof r==`object`&&`path`in r&&typeof r.path==`string`&&J(r.path,`plugins[${n}].source.path`,t)}})}let o=w().extend({plugins:d(re().strict())}).strict().safeParse(a);if(o.success||t.push(...q(o.error)),o.success){let e=o.data;if((!e.plugins||e.plugins.length===0)&&n.push({path:`plugins`,message:`Marketplace has no plugins defined`}),e.plugins){e.plugins.forEach((n,r)=>{e.plugins.filter(e=>e.name===n.name).length>1&&t.push({path:`plugins[${r}].name`,message:`Duplicate plugin name "${n.name}" found in marketplace`})});let i=E.dirname(r),a=E.basename(i)===`.claude-plugin`?E.dirname(i):i;for(let[t,r]of e.plugins.entries()){if(!r.version||typeof r.source!=`string`||!r.source.startsWith(`./`))continue;let e=E.join(a,r.source,`.claude-plugin`,`plugin.json`),i;try{let t=_(await k(e,{encoding:`utf-8`}));typeof t.version==`string`&&(i=t.version)}catch{continue}i&&i!==r.version&&n.push({path:`plugins[${t}].version`,message:`Entry declares version "${r.version}" but ${r.source}/.claude-plugin/plugin.json says "${i}". At install time, plugin.json wins (calculatePluginVersion precedence) — the entry version is silently ignored. Update this entry to "${i}" to match.`})}}e.metadata?.description||n.push({path:`metadata.description`,message:`No marketplace description provided. Adding a description helps users understand what this marketplace offers`})}return{success:t.length===0,errors:t,warnings:n,filePath:r,fileType:`marketplace`}}function de(e,t,n){let r=[],i=[],a=t.match(u);if(!a)return i.push({path:`frontmatter`,message:`No frontmatter block found. Add YAML frontmatter between --- delimiters at the top of the file to set description and other metadata.`}),{success:!0,errors:r,warnings:i,filePath:e,fileType:n};let o=a[1]||``,s;try{s=ee(o)}catch(t){return r.push({path:`frontmatter`,message:`YAML frontmatter failed to parse: ${m(t)}. At runtime this ${n} loads with empty metadata (all frontmatter fields silently dropped).`}),{success:!1,errors:r,warnings:i,filePath:e,fileType:n}}if(typeof s!=`object`||!s||Array.isArray(s))return r.push({path:`frontmatter`,message:`Frontmatter must be a YAML mapping (key: value pairs), got ${Array.isArray(s)?`an array`:s===null?`null`:typeof s}.`}),{success:!1,errors:r,warnings:i,filePath:e,fileType:n};let c=s;if(c.description!==void 0){let e=c.description;typeof e!=`string`&&typeof e!=`number`&&typeof e!=`boolean`&&e!==null&&r.push({path:`description`,message:`description must be a string, got ${Array.isArray(e)?`array`:typeof e}. At runtime this value is dropped.`})}else i.push({path:`description`,message:`No description in frontmatter. A description helps users and Work Mate understand when to use this ${n}.`});c.name!==void 0&&c.name!==null&&typeof c.name!=`string`&&r.push({path:`name`,message:`name must be a string, got ${typeof c.name}.`});let l=c[`allowed-tools`];l!=null&&(typeof l!=`string`&&!Array.isArray(l)?r.push({path:`allowed-tools`,message:`allowed-tools must be a string or array of strings, got ${typeof l}.`}):Array.isArray(l)&&l.some(e=>typeof e!=`string`)&&r.push({path:`allowed-tools`,message:`allowed-tools array must contain only strings.`}));let d=c.shell;if(d!=null)if(typeof d!=`string`)r.push({path:`shell`,message:`shell must be a string, got ${typeof d}.`});else{let e=d.trim().toLowerCase();e!==`bash`&&e!==`powershell`&&r.push({path:`shell`,message:`shell must be 'bash' or 'powershell', got '${d}'.`})}return{success:r.length===0,errors:r,warnings:i,filePath:e,fileType:n}}async function Z(e){let t;try{t=await k(e,{encoding:`utf-8`})}catch(t){return h(t)===`ENOENT`?{success:!0,errors:[],warnings:[],filePath:e,fileType:`hooks`}:{success:!1,errors:[{path:`file`,message:`Failed to read file: ${m(t)}`}],warnings:[],filePath:e,fileType:`hooks`}}let n;try{n=_(t)}catch(t){return{success:!1,errors:[{path:`json`,message:`Invalid JSON syntax: ${m(t)}. At runtime this breaks the entire plugin load.`}],warnings:[],filePath:e,fileType:`hooks`}}let r=ne().safeParse(n);return r.success?{success:!0,errors:[],warnings:[],filePath:e,fileType:`hooks`}:{success:!1,errors:q(r.error),warnings:[],filePath:e,fileType:`hooks`}}async function Q(e,t){let n;try{n=await A(e,{withFileTypes:!0})}catch(e){let t=h(e);if(t===`ENOENT`||t===`ENOTDIR`)return[];throw e}if(t)return n.filter(e=>e.isDirectory()).map(t=>E.join(e,t.name,`SKILL.md`));let r=[];for(let t of n){let n=E.join(e,t.name);t.isDirectory()?r.push(...await Q(n,!1)):t.isFile()&&t.name.toLowerCase().endsWith(`.md`)&&r.push(n)}return r}async function fe(e){let t=[],n=[[`skill`,E.join(e,`skills`)],[`agent`,E.join(e,`agents`)],[`command`,E.join(e,`commands`)]];for(let[e,r]of n){let n=await Q(r,e===`skill`);for(let r of n){let n;try{n=await k(r,{encoding:`utf-8`})}catch(n){if(g(n))continue;t.push({success:!1,errors:[{path:`file`,message:`Failed to read: ${m(n)}`}],warnings:[],filePath:r,fileType:e});continue}let i=de(r,n,e);(i.errors.length>0||i.warnings.length>0)&&t.push(i)}}let r=await Z(E.join(e,`hooks`,`hooks.json`));return(r.errors.length>0||r.warnings.length>0)&&t.push(r),t}async function pe(e){let t=E.resolve(e),n=null;try{n=await M(t)}catch(e){if(!g(e))throw e}if(n?.isDirectory()){let e=await X(E.join(t,`.claude-plugin`,`marketplace.json`));if(e.errors[0]?.code!==`ENOENT`)return e;let n=await Y(E.join(t,`.claude-plugin`,`plugin.json`));return n.errors[0]?.code===`ENOENT`?{success:!1,errors:[{path:`directory`,message:`No manifest found in directory. Expected .claude-plugin/marketplace.json or .claude-plugin/plugin.json`}],warnings:[],filePath:t,fileType:`plugin`}:n}switch(le(e)){case`plugin`:return Y(e);case`marketplace`:return X(e);case`unknown`:try{let n=_(await k(t,{encoding:`utf-8`}));if(Array.isArray(n.plugins))return X(e)}catch(e){if(h(e)===`ENOENT`)return{success:!1,errors:[{path:`file`,message:`File not found: ${t}`}],warnings:[],filePath:t,fileType:`plugin`}}return Y(e)}}var $,me=e((()=>{te(),p(),i(),S(),o(),C(),$=new Set([`category`,`source`,`tags`,`strict`,`id`])}));export{K as a,G as c,ce as i,pe as n,B as o,fe as r,z as s,me as t};
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{n as t,t as n}from"./axios-DaWTGg7G.js";import{N as r,b as i}from"./types-97nL3naE.js";import{Ax as a,Ix as o,Lx as s,Rx as c,cT as ee,dT as l,fT as u,jx as d,lT as te}from"./loadAgentsDir-DGozQu_6.js";import{C as f,I as p,M as m,N as h,R as g,S as _,c as v,f as y,i as b,u as x,x as S}from"./debug-CRnGsZOV.js";import{_t as C,ft as ne,gt as w,ht as re,mt as ie}from"./settings-CodSADx8.js";import{o as ae,s as T}from"./log-DoSpAwRP.js";import{homedir as oe}from"os";import*as E from"path";import{join as se,resolve as D}from"path";import{randomBytes as O}from"crypto";import{readFile as k,readdir as A,rename as j,stat as M,unlink as N,writeFile as P}from"fs/promises";function F(){return se(a(),H)}async function I(){let e=F();try{let t=_(await k(e,{encoding:`utf-8`}));if(typeof t!=`object`||!t||!(`version`in t)||!(`fetchedAt`in t)||!(`counts`in t))return v(`Install counts cache has invalid structure`),null;let n=t;if(n.version!==V)return v(`Install counts cache version mismatch (got ${n.version}, expected ${V})`),null;if(typeof n.fetchedAt!=`string`||!Array.isArray(n.counts))return v(`Install counts cache has invalid structure`),null;let r=new Date(n.fetchedAt).getTime();return Number.isNaN(r)?(v(`Install counts cache has invalid fetchedAt timestamp`),null):n.counts.every(e=>typeof e==`object`&&!!e&&typeof e.plugin==`string`&&typeof e.unique_installs==`number`)?Date.now()-r>W?(v(`Install counts cache is stale (>24h old)`),null):{version:n.version,fetchedAt:n.fetchedAt,counts:n.counts}:(v(`Install counts cache has malformed entries`),null)}catch(e){return h(e)!==`ENOENT`&&v(`Failed to load install counts cache: ${m(e)}`),null}}async function L(e){let t=F(),n=`${t}.${O(8).toString(`hex`)}.tmp`;try{let r=a();await x().mkdir(r),await P(n,f(e,null,2),{encoding:`utf-8`,mode:384}),await j(n,t),v(`Install counts cache saved successfully`)}catch(e){T(e);try{await N(n)}catch{}}}async function R(){v(`Fetching install counts from ${U}`);let e=performance.now();try{let n=await t.get(U,{timeout:1e4});if(!n.data?.plugins||!Array.isArray(n.data.plugins))throw Error(`Invalid response format from install counts API`);return c(`install_counts`,U,`success`,performance.now()-e),n.data.plugins}catch(t){throw c(`install_counts`,U,`failure`,performance.now()-e,o(t)),t}}async function z(){let e=await I();if(e){v(`Using cached install counts`),c(`install_counts`,U,`cache_hit`,0);let t=new Map;for(let n of e.counts)t.set(n.plugin,n.unique_installs);return t}try{let e=await R();await L({version:V,fetchedAt:new Date().toISOString(),counts:e});let t=new Map;for(let n of e)t.set(n.plugin,n.unique_installs);return t}catch(e){return T(e),v(`Failed to fetch install counts: ${m(e)}`),null}}function B(e){if(e<1e3)return String(e);if(e<1e6){let t=(e/1e3).toFixed(1);return t.endsWith(`.0`)?`${t.slice(0,-2)}K`:`${t}K`}let t=(e/1e6).toFixed(1);return t.endsWith(`.0`)?`${t.slice(0,-2)}M`:`${t}M`}var V,H,U,W,G=e((()=>{n(),b(),p(),y(),ae(),S(),s(),d(),V=1,H=`install-counts-cache.json`,U=`https://raw.githubusercontent.com/anthropics/claude-plugins-official/refs/heads/stats/stats/plugin-installs.json`,W=1440*60*1e3}));async function K(e){let t=e.trim(),n=x(),r=t.match(/^([a-zA-Z0-9._-]+@[^:]+:.+?(?:\.git)?)(#(.+))?$/);if(r?.[1]){let e=r[1],t=r[3];return t?{source:`git`,url:e,ref:t}:{source:`git`,url:e}}if(t.startsWith(`http://`)||t.startsWith(`https://`)){let e=t.match(/^([^#]+)(#(.+))?$/),n=e?.[1]||t,r=e?.[3];if(n.endsWith(`.git`)||n.includes(`/_git/`))return r?{source:`git`,url:n,ref:r}:{source:`git`,url:n};let i;try{i=new URL(n)}catch{return{source:`url`,url:n}}if((i.hostname===`github.com`||i.hostname===`www.github.com`)&&i.pathname.match(/^\/([^/]+\/[^/]+?)(\/|\.git|$)/)?.[1]){let e=n.endsWith(`.git`)?n:`${n}.git`;return r?{source:`git`,url:e,ref:r}:{source:`git`,url:e}}return{source:`url`,url:n}}let i=process.platform===`win32`&&(t.startsWith(`.\\`)||t.startsWith(`..\\`)||/^[a-zA-Z]:[/\\]/.test(t));if(t.startsWith(`./`)||t.startsWith(`../`)||t.startsWith(`/`)||t.startsWith(`~`)||i){let e=D(t.startsWith(`~`)?t.replace(/^~/,oe()):t),r;try{r=await n.stat(e)}catch(t){let n=h(t);return{error:n===`ENOENT`?`Path does not exist: ${e}`:`Cannot access path: ${e} (${n??t})`}}return r.isFile()?e.endsWith(`.json`)?{source:`file`,path:e}:{error:`File path must point to a .json file (marketplace.json), but got: ${e}`}:r.isDirectory()?{source:`directory`,path:e}:{error:`Path is neither a file nor a directory: ${e}`}}if(t.includes(`/`)&&!t.startsWith(`@`)){if(t.includes(`:`))return null;let e=t.match(/^([^#@]+)(?:[#@](.+))?$/),n=e?.[1]||t,r=e?.[2];return r?{source:`github`,repo:n,ref:r}:{source:`github`,repo:n}}return null}var ce=e((()=>{p(),y()}));function le(e){let t=E.basename(e),n=E.basename(E.dirname(e));return t===`plugin.json`?`plugin`:t===`marketplace.json`?`marketplace`:n===`.claude-plugin`?`plugin`:`unknown`}function q(e){return e.issues.map(e=>({path:e.path.join(`.`)||`root`,message:e.message,code:e.code}))}function J(e,t,n,r){e.includes(`..`)&&n.push({path:t,message:r?`Path contains "..": ${e}. ${r}`:`Path contains ".." which could be a path traversal attempt: ${e}`})}function ue(e){let t=e.replace(/^(\.\.\/)+/,``);return`Plugin source paths are resolved relative to the marketplace root (the directory containing .claude-plugin/), not relative to marketplace.json. Use "${t===e?`./plugins/my-plugin`:`./${t}`}" instead of "${e}".`}async function Y(e){let t=[],n=[],r=E.resolve(e),i;try{i=await k(r,{encoding:`utf-8`})}catch(e){let t=h(e),n;return n=t===`ENOENT`?`File not found: ${r}`:t===`EISDIR`?`Path is not a file: ${r}`:`Failed to read file: ${m(e)}`,{success:!1,errors:[{path:`file`,message:n,code:t}],warnings:[],filePath:r,fileType:`plugin`}}let a;try{a=_(i)}catch(e){return{success:!1,errors:[{path:`json`,message:`Invalid JSON syntax: ${m(e)}`}],warnings:[],filePath:r,fileType:`plugin`}}if(a&&typeof a==`object`){let e=a;e.commands&&(Array.isArray(e.commands)?e.commands:[e.commands]).forEach((e,n)=>{typeof e==`string`&&J(e,`commands[${n}]`,t)}),e.agents&&(Array.isArray(e.agents)?e.agents:[e.agents]).forEach((e,n)=>{typeof e==`string`&&J(e,`agents[${n}]`,t)}),e.skills&&(Array.isArray(e.skills)?e.skills:[e.skills]).forEach((e,n)=>{typeof e==`string`&&J(e,`skills[${n}]`,t)})}let o=a;if(typeof a==`object`&&a){let e=a,t=Object.keys(e).filter(e=>$.has(e));if(t.length>0){let r={...e};for(let e of t)delete r[e],n.push({path:e,message:`Field '${e}' belongs in the marketplace entry (marketplace.json), not plugin.json. It's harmless here but unused — Work Mate ignores it at load time.`});o=r}}let s=ie().strict().safeParse(o);if(s.success||t.push(...q(s.error)),s.success){let e=s.data;/^[a-z0-9]+(-[a-z0-9]+)*$/.test(e.name)||n.push({path:`name`,message:`Plugin name "${e.name}" is not kebab-case. Work Mate accepts it, but the Claude.ai marketplace sync requires kebab-case (lowercase letters, digits, and hyphens only, e.g., "my-plugin").`}),e.version||n.push({path:`version`,message:`No version specified. Consider adding a version following semver (e.g., "1.0.0")`}),e.description||n.push({path:`description`,message:`No description provided. Adding a description helps users understand what your plugin does`}),e.author||n.push({path:`author`,message:`No author information provided. Consider adding author details for plugin attribution`})}return{success:t.length===0,errors:t,warnings:n,filePath:r,fileType:`plugin`}}async function X(e){let t=[],n=[],i=E.resolve(e),a;try{a=await k(i,{encoding:`utf-8`})}catch(e){let t=h(e),n;return n=t===`ENOENT`?`File not found: ${i}`:t===`EISDIR`?`Path is not a file: ${i}`:`Failed to read file: ${m(e)}`,{success:!1,errors:[{path:`file`,message:n,code:t}],warnings:[],filePath:i,fileType:`marketplace`}}let o;try{o=_(a)}catch(e){return{success:!1,errors:[{path:`json`,message:`Invalid JSON syntax: ${m(e)}`}],warnings:[],filePath:i,fileType:`marketplace`}}if(o&&typeof o==`object`){let e=o;Array.isArray(e.plugins)&&e.plugins.forEach((e,n)=>{if(e&&typeof e==`object`&&`source`in e){let r=e.source;typeof r==`string`&&J(r,`plugins[${n}].source`,t,ue(r)),r&&typeof r==`object`&&`path`in r&&typeof r.path==`string`&&J(r.path,`plugins[${n}].source.path`,t)}})}let s=w().extend({plugins:r(re().strict())}).strict().safeParse(o);if(s.success||t.push(...q(s.error)),s.success){let e=s.data;if((!e.plugins||e.plugins.length===0)&&n.push({path:`plugins`,message:`Marketplace has no plugins defined`}),e.plugins){e.plugins.forEach((n,r)=>{e.plugins.filter(e=>e.name===n.name).length>1&&t.push({path:`plugins[${r}].name`,message:`Duplicate plugin name "${n.name}" found in marketplace`})});let r=E.dirname(i),a=E.basename(r)===`.claude-plugin`?E.dirname(r):r;for(let[t,r]of e.plugins.entries()){if(!r.version||typeof r.source!=`string`||!r.source.startsWith(`./`))continue;let e=E.join(a,r.source,`.claude-plugin`,`plugin.json`),i;try{let t=_(await k(e,{encoding:`utf-8`}));typeof t.version==`string`&&(i=t.version)}catch{continue}i&&i!==r.version&&n.push({path:`plugins[${t}].version`,message:`Entry declares version "${r.version}" but ${r.source}/.claude-plugin/plugin.json says "${i}". At install time, plugin.json wins (calculatePluginVersion precedence) — the entry version is silently ignored. Update this entry to "${i}" to match.`})}}e.metadata?.description||n.push({path:`metadata.description`,message:`No marketplace description provided. Adding a description helps users understand what this marketplace offers`})}return{success:t.length===0,errors:t,warnings:n,filePath:i,fileType:`marketplace`}}function de(e,t,n){let r=[],i=[],a=t.match(ee);if(!a)return i.push({path:`frontmatter`,message:`No frontmatter block found. Add YAML frontmatter between --- delimiters at the top of the file to set description and other metadata.`}),{success:!0,errors:r,warnings:i,filePath:e,fileType:n};let o=a[1]||``,s;try{s=u(o)}catch(t){return r.push({path:`frontmatter`,message:`YAML frontmatter failed to parse: ${m(t)}. At runtime this ${n} loads with empty metadata (all frontmatter fields silently dropped).`}),{success:!1,errors:r,warnings:i,filePath:e,fileType:n}}if(typeof s!=`object`||!s||Array.isArray(s))return r.push({path:`frontmatter`,message:`Frontmatter must be a YAML mapping (key: value pairs), got ${Array.isArray(s)?`an array`:s===null?`null`:typeof s}.`}),{success:!1,errors:r,warnings:i,filePath:e,fileType:n};let c=s;if(c.description!==void 0){let e=c.description;typeof e!=`string`&&typeof e!=`number`&&typeof e!=`boolean`&&e!==null&&r.push({path:`description`,message:`description must be a string, got ${Array.isArray(e)?`array`:typeof e}. At runtime this value is dropped.`})}else i.push({path:`description`,message:`No description in frontmatter. A description helps users and Work Mate understand when to use this ${n}.`});c.name!==void 0&&c.name!==null&&typeof c.name!=`string`&&r.push({path:`name`,message:`name must be a string, got ${typeof c.name}.`});let l=c[`allowed-tools`];l!=null&&(typeof l!=`string`&&!Array.isArray(l)?r.push({path:`allowed-tools`,message:`allowed-tools must be a string or array of strings, got ${typeof l}.`}):Array.isArray(l)&&l.some(e=>typeof e!=`string`)&&r.push({path:`allowed-tools`,message:`allowed-tools array must contain only strings.`}));let d=c.shell;if(d!=null)if(typeof d!=`string`)r.push({path:`shell`,message:`shell must be a string, got ${typeof d}.`});else{let e=d.trim().toLowerCase();e!==`bash`&&e!==`powershell`&&r.push({path:`shell`,message:`shell must be 'bash' or 'powershell', got '${d}'.`})}return{success:r.length===0,errors:r,warnings:i,filePath:e,fileType:n}}async function Z(e){let t;try{t=await k(e,{encoding:`utf-8`})}catch(t){return h(t)===`ENOENT`?{success:!0,errors:[],warnings:[],filePath:e,fileType:`hooks`}:{success:!1,errors:[{path:`file`,message:`Failed to read file: ${m(t)}`}],warnings:[],filePath:e,fileType:`hooks`}}let n;try{n=_(t)}catch(t){return{success:!1,errors:[{path:`json`,message:`Invalid JSON syntax: ${m(t)}. At runtime this breaks the entire plugin load.`}],warnings:[],filePath:e,fileType:`hooks`}}let r=ne().safeParse(n);return r.success?{success:!0,errors:[],warnings:[],filePath:e,fileType:`hooks`}:{success:!1,errors:q(r.error),warnings:[],filePath:e,fileType:`hooks`}}async function Q(e,t){let n;try{n=await A(e,{withFileTypes:!0})}catch(e){let t=h(e);if(t===`ENOENT`||t===`ENOTDIR`)return[];throw e}if(t)return n.filter(e=>e.isDirectory()).map(t=>E.join(e,t.name,`SKILL.md`));let r=[];for(let t of n){let n=E.join(e,t.name);t.isDirectory()?r.push(...await Q(n,!1)):t.isFile()&&t.name.toLowerCase().endsWith(`.md`)&&r.push(n)}return r}async function fe(e){let t=[],n=[[`skill`,E.join(e,`skills`)],[`agent`,E.join(e,`agents`)],[`command`,E.join(e,`commands`)]];for(let[e,r]of n){let n=await Q(r,e===`skill`);for(let r of n){let n;try{n=await k(r,{encoding:`utf-8`})}catch(n){if(g(n))continue;t.push({success:!1,errors:[{path:`file`,message:`Failed to read: ${m(n)}`}],warnings:[],filePath:r,fileType:e});continue}let i=de(r,n,e);(i.errors.length>0||i.warnings.length>0)&&t.push(i)}}let r=await Z(E.join(e,`hooks`,`hooks.json`));return(r.errors.length>0||r.warnings.length>0)&&t.push(r),t}async function pe(e){let t=E.resolve(e),n=null;try{n=await M(t)}catch(e){if(!g(e))throw e}if(n?.isDirectory()){let e=await X(E.join(t,`.claude-plugin`,`marketplace.json`));if(e.errors[0]?.code!==`ENOENT`)return e;let n=await Y(E.join(t,`.claude-plugin`,`plugin.json`));return n.errors[0]?.code===`ENOENT`?{success:!1,errors:[{path:`directory`,message:`No manifest found in directory. Expected .claude-plugin/marketplace.json or .claude-plugin/plugin.json`}],warnings:[],filePath:t,fileType:`plugin`}:n}switch(le(e)){case`plugin`:return Y(e);case`marketplace`:return X(e);case`unknown`:try{let n=_(await k(t,{encoding:`utf-8`}));if(Array.isArray(n.plugins))return X(e)}catch(e){if(h(e)===`ENOENT`)return{success:!1,errors:[{path:`file`,message:`File not found: ${t}`}],warnings:[],filePath:t,fileType:`plugin`}}return Y(e)}}var $,me=e((()=>{i(),p(),te(),S(),l(),C(),$=new Set([`category`,`source`,`tags`,`strict`,`id`])}));export{K as a,G as c,ce as i,pe as n,B as o,fe as r,z as s,me as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{d as t,h as n,o as r}from"./config-CWPHVTic.js";import{n as i}from"./analytics-COpjZpvd.js";var a;e((()=>{i(),t(),a=async()=>{let e=r().editorMode||`normal`;e===`emacs`&&(e=`normal`);let t=e===`normal`?`vim`:`normal`;return n(e=>({...e,editorMode:t})),{type:`text`,value:`Editor mode set to ${t}. ${t===`vim`?`Use Escape key to toggle between INSERT and NORMAL modes.`:`Using standard (readline) keyboard bindings.`}`}}}))();export{a as call};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{St as e,_t as t}from"./loadAgentsDir-DGozQu_6.js";e();export{t as execIntoTmuxWorktree};
|
package/dist/cli.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
|
-
import{l as e,o as t}from"./chunks/envUtils-DfkgIdYf.js";var n=globalThis.performance,r=new Map,i=new Map;function a(){return n.now()}function o(e){return r.set(e,a()),{name:e,entryType:`mark`,startTime:r.get(e),duration:0}}function s(e,t,n){let o,s;if(typeof t==`string`){let e=r.get(t),i=n?r.get(n):a();o=e??a(),s=(i??a())-o}else t&&typeof t==`object`?(o=t.start??0,s=(t.end??a())-o):(o=0,s=a());i.set(e,{name:e,startTime:o,duration:s})}function c(e){return e===`mark`?[...r.entries()].map(([e,t])=>({name:e,entryType:`mark`,startTime:t,duration:0})):e===`measure`?[...i.values()].map(e=>({name:e.name,entryType:`measure`,startTime:e.startTime,duration:e.duration})):[]}function l(e,t){return c(t??`mark`).concat(t===void 0?c(`measure`):[]).filter(t=>t.name===e)}function u(e){e===void 0?r.clear():r.delete(e)}function d(e){e===void 0?i.clear():i.delete(e)}var f={now:a,mark:o,measure:s,getEntriesByType:c,getEntriesByName:l,clearMarks:u,clearMeasures:d,clearResourceTimings:(()=>{}),setResourceTimingBufferSize:(()=>{}),markResourceTiming:(()=>{}),get timeOrigin(){return n.timeOrigin},get onresourcetimingbufferfull(){return n.onresourcetimingbufferfull},set onresourcetimingbufferfull(e){},toJSON(){return n.toJSON()}};function p(){globalThis.__performanceShimInstalled||(globalThis.__performanceShimInstalled=!0,globalThis.performance=f)}if(p(),t(),globalThis.MACRO===void 0&&(globalThis.MACRO={VERSION:process.env.CLAUDE_CODE_VERSION||`2.1.888`,BUILD_TIME:new Date().toISOString(),FEEDBACK_CHANNEL:``,ISSUES_EXPLAINER:``,NATIVE_PACKAGE_URL:``,PACKAGE_URL:``,VERSION_CHANGELOG:``}),e(process.env.CLAUDE_CODE_FORCE_INTERACTIVE)){for(let e of[process.stdin,process.stdout,process.stderr])if(!e.isTTY)try{Object.defineProperty(e,"isTTY",{value:!0,configurable:!0})}catch{}}process.env.COREPACK_ENABLE_AUTO_PIN=`0`;async function m(){let e=process.argv.slice(2);if(e.length===1&&(e[0]===`--version`||e[0]===`-v`||e[0]===`-V`)){console.log(`0.0.
|
|
2
|
+
import{l as e,o as t}from"./chunks/envUtils-DfkgIdYf.js";var n=globalThis.performance,r=new Map,i=new Map;function a(){return n.now()}function o(e){return r.set(e,a()),{name:e,entryType:`mark`,startTime:r.get(e),duration:0}}function s(e,t,n){let o,s;if(typeof t==`string`){let e=r.get(t),i=n?r.get(n):a();o=e??a(),s=(i??a())-o}else t&&typeof t==`object`?(o=t.start??0,s=(t.end??a())-o):(o=0,s=a());i.set(e,{name:e,startTime:o,duration:s})}function c(e){return e===`mark`?[...r.entries()].map(([e,t])=>({name:e,entryType:`mark`,startTime:t,duration:0})):e===`measure`?[...i.values()].map(e=>({name:e.name,entryType:`measure`,startTime:e.startTime,duration:e.duration})):[]}function l(e,t){return c(t??`mark`).concat(t===void 0?c(`measure`):[]).filter(t=>t.name===e)}function u(e){e===void 0?r.clear():r.delete(e)}function d(e){e===void 0?i.clear():i.delete(e)}var f={now:a,mark:o,measure:s,getEntriesByType:c,getEntriesByName:l,clearMarks:u,clearMeasures:d,clearResourceTimings:(()=>{}),setResourceTimingBufferSize:(()=>{}),markResourceTiming:(()=>{}),get timeOrigin(){return n.timeOrigin},get onresourcetimingbufferfull(){return n.onresourcetimingbufferfull},set onresourcetimingbufferfull(e){},toJSON(){return n.toJSON()}};function p(){globalThis.__performanceShimInstalled||(globalThis.__performanceShimInstalled=!0,globalThis.performance=f)}if(p(),t(),globalThis.MACRO===void 0&&(globalThis.MACRO={VERSION:process.env.CLAUDE_CODE_VERSION||`2.1.888`,BUILD_TIME:new Date().toISOString(),FEEDBACK_CHANNEL:``,ISSUES_EXPLAINER:``,NATIVE_PACKAGE_URL:``,PACKAGE_URL:``,VERSION_CHANGELOG:``}),e(process.env.CLAUDE_CODE_FORCE_INTERACTIVE)){for(let e of[process.stdin,process.stdout,process.stderr])if(!e.isTTY)try{Object.defineProperty(e,"isTTY",{value:!0,configurable:!0})}catch{}}process.env.COREPACK_ENABLE_AUTO_PIN=`0`;async function m(){let e=process.argv.slice(2);if(e.length===1&&(e[0]===`--version`||e[0]===`-v`||e[0]===`-V`)){console.log(`0.0.25 (Work Mate)`);return}let{profileCheckpoint:t}=await import(`./chunks/startupProfiler-D1NRu2nj.js`);if(t(`cli_entry`),process.argv[2]===`--acp`){t(`cli_acp_path`);let{runAcpAgent:e}=await import(`./chunks/entry-D1iD76SW.js`);await e();return}if(e[0]===`job`){t(`cli_templates_path`);let{templatesMain:n}=await import(`./chunks/templateJobs-BW6TaqEC.js`);await n(e.slice(1)),process.exit(0)}if(e[0]===`new`||e[0]===`list`||e[0]===`reply`){console.error(`[deprecated] Use: claude job ${e[0]} ${e.slice(1).join(` `)}`.trim()),t(`cli_templates_path`);let{templatesMain:n}=await import(`./chunks/templateJobs-BW6TaqEC.js`);await n(e),process.exit(0)}if((e.includes(`--tmux`)||e.includes(`--tmux=classic`))&&(e.includes(`-w`)||e.includes(`--worktree`)||e.some(e=>e.startsWith(`--worktree=`)))){t(`cli_tmux_worktree_fast_path`);let{enableConfigs:n}=await import(`./chunks/config-Cox0TM2Z.js`);n();let{isWorktreeModeEnabled:r}=await import(`./chunks/worktreeModeEnabled-D68iEHpC.js`);if(r()){let{execIntoTmuxWorktree:t}=await import(`./chunks/worktree-a5oOPSYl.js`),n=await t(e);if(n.handled)return;if(n.error){let{exitWithError:e}=await import(`./chunks/process-CNfq37LF.js`);e(n.error)}}}e.includes(`--bare`)&&(process.env.CLAUDE_CODE_SIMPLE=`1`);let{startCapturingEarlyInput:n}=await import(`./chunks/earlyInput-BEjRkAtH.js`);n(),t(`cli_before_main_import`);let{main:r}=await import(`./chunks/main-B_09WbaG.js`);t(`cli_after_main_import`),await r(),t(`cli_after_main_complete`)}await m();export{};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@readmagic/workmate",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.25",
|
|
4
4
|
"description": "workMate",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"author": "Frandy",
|
|
@@ -105,7 +105,6 @@
|
|
|
105
105
|
"@smithy/core": "^3.23.15",
|
|
106
106
|
"@smithy/node-http-handler": "^4.5.3",
|
|
107
107
|
"@types/bun": "^1.3.12",
|
|
108
|
-
"@types/cacache": "^20.0.1",
|
|
109
108
|
"@types/lodash-es": "^4.17.12",
|
|
110
109
|
"@types/node": "^25.6.0",
|
|
111
110
|
"@types/picomatch": "^4.0.3",
|
|
@@ -117,30 +116,23 @@
|
|
|
117
116
|
"@types/stack-utils": "^2.0.3",
|
|
118
117
|
"@types/ws": "^8.18.1",
|
|
119
118
|
"ajv": "^8.18.0",
|
|
120
|
-
"auto-bind": "^5.0.1",
|
|
121
119
|
"axios": "^1.15.2",
|
|
122
|
-
"bidi-js": "^1.0.3",
|
|
123
|
-
"cacache": "^20.0.4",
|
|
124
120
|
"chalk": "^5.6.2",
|
|
125
121
|
"chokidar": "^5.0.0",
|
|
126
|
-
"cli-boxes": "^4.0.1",
|
|
127
122
|
"cli-highlight": "^2.1.11",
|
|
128
123
|
"code-excerpt": "^4.0.0",
|
|
129
124
|
"color-diff-napi": "workspace:*",
|
|
130
125
|
"diff": "^8.0.4",
|
|
131
|
-
"emoji-regex": "^10.6.0",
|
|
132
126
|
"env-paths": "^4.0.0",
|
|
133
127
|
"execa": "^9.6.1",
|
|
134
128
|
"fflate": "^0.8.2",
|
|
135
129
|
"figures": "^6.1.0",
|
|
136
130
|
"fuse.js": "^7.3.0",
|
|
137
|
-
"get-east-asian-width": "^1.5.0",
|
|
138
131
|
"google-auth-library": "^10.6.2",
|
|
139
132
|
"https-proxy-agent": "^8.0.0",
|
|
140
133
|
"husky": "^9.1.7",
|
|
141
134
|
"ignore": "^7.0.5",
|
|
142
135
|
"image-processor-napi": "workspace:*",
|
|
143
|
-
"indent-string": "^5.0.0",
|
|
144
136
|
"jsonc-parser": "^3.3.1",
|
|
145
137
|
"knip": "^6.4.1",
|
|
146
138
|
"lodash-es": "^4.18.1",
|
|
@@ -161,7 +153,6 @@
|
|
|
161
153
|
"signal-exit": "^4.1.0",
|
|
162
154
|
"stack-utils": "^2.0.6",
|
|
163
155
|
"strip-ansi": "^7.2.0",
|
|
164
|
-
"supports-hyperlinks": "^4.4.0",
|
|
165
156
|
"tree-kill": "^1.2.2",
|
|
166
157
|
"typescript": "^6.0.3",
|
|
167
158
|
"undici": "^7.25.0",
|
|
@@ -170,8 +161,6 @@
|
|
|
170
161
|
"vscode-jsonrpc": "^8.2.1",
|
|
171
162
|
"vscode-languageserver-protocol": "^3.17.5",
|
|
172
163
|
"vscode-languageserver-types": "^3.17.5",
|
|
173
|
-
"wrap-ansi": "^10.0.0",
|
|
174
|
-
"xss": "^1.0.15",
|
|
175
164
|
"yaml": "^2.8.3",
|
|
176
165
|
"zod": "^4.3.6"
|
|
177
166
|
},
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,o as t}from"./rolldown-runtime-DaDcL9Zw.js";import{n,t as r}from"./figures-5ThXQEtq.js";import{F as i,N as a,P as o,mb as s,md as c,pd as l}from"./loadAgentsDir-B0Anodo0.js";import{D as u,I as d,P as f,T as p,Wt as m,ai as h,t as g,vn as _,y as v,yn as y}from"./src-DL3w8VPk.js";import{t as b}from"./jsx-runtime-Bb4Xn-E0.js";import{n as x,t as S}from"./TextInput-B8ruWRf2.js";import{n as C,t as w}from"./select-DIxfl_VN.js";import{r as T,t as E}from"./directoryCompletion-D_Rtg-4j.js";import{r as D,t as O}from"./PromptInputFooterSuggestions-HI6HH3TP.js";function k(){return(0,P.jsx)(f,{dimColor:!0,children:`Work Mate will be able to read files in this directory and make edits when auto-accept edits is on.`})}function A({path:e}){return(0,P.jsxs)(d,{flexDirection:`column`,paddingX:2,gap:1,children:[(0,P.jsx)(f,{color:`permission`,children:e}),(0,P.jsx)(k,{})]})}function j({value:e,onChange:t,onSubmit:n,error:i,suggestions:a,selectedSuggestion:o}){return(0,P.jsxs)(d,{flexDirection:`column`,children:[(0,P.jsx)(f,{children:`Enter the path to the directory:`}),(0,P.jsx)(d,{borderDimColor:!0,borderStyle:`round`,marginY:1,paddingLeft:1,children:(0,P.jsx)(S,{showCursor:!0,placeholder:`Directory path${r.ellipsis}`,value:e,onChange:t,onSubmit:n,columns:80,cursorOffset:e.length,onChangeCursorOffset:()=>{}})}),a.length>0&&(0,P.jsx)(d,{marginBottom:1,children:(0,P.jsx)(O,{suggestions:a,selectedSuggestion:o})}),i&&(0,P.jsx)(f,{color:`error`,children:i})]})}function M({onAddDirectory:e,onCancel:t,permissionContext:n,directoryPath:r}){let[o,s]=(0,N.useState)(``),[c,h]=(0,N.useState)(null),[g,_]=(0,N.useState)([]),[b,x]=(0,N.useState)(0),S=(0,N.useMemo)(()=>F,[]),C=y((0,N.useCallback)(async e=>{if(!e){_([]),x(0);return}let t=await E(e);_(t),x(0)},[]),100);(0,N.useEffect)(()=>{C(o)},[o,C]);let T=(0,N.useCallback)(e=>{let t=`${e.id}/`;s(t),h(null)},[]),D=(0,N.useCallback)(async t=>{let r=await i(t,n);r.resultType===`success`?e(r.absolutePath,!1):h(a(r))},[n,e]);m(`confirm:no`,t,{context:`Settings`});let O=(0,N.useCallback)(e=>{if(g.length>0){if(e.key===`tab`){e.preventDefault();let t=g[b];t&&T(t);return}if(e.key===`return`){e.preventDefault();let t=g[b];t&&D(`${t.id}/`);return}if(e.key===`up`||e.ctrl&&e.key===`p`){e.preventDefault(),x(e=>e<=0?g.length-1:e-1);return}if(e.key===`down`||e.ctrl&&e.key===`n`){e.preventDefault(),x(e=>e>=g.length-1?0:e+1);return}}},[g,b,T,D]),M=(0,N.useCallback)(n=>{if(r)switch(n){case`yes-session`:e(r,!1);break;case`yes-remember`:e(r,!0);break;case`no`:t();break}},[r,e,t]);return(0,P.jsx)(d,{flexDirection:`column`,tabIndex:0,autoFocus:!0,onKeyDown:O,children:(0,P.jsx)(v,{title:`Add directory to workspace`,onCancel:t,color:`permission`,isCancelActive:!1,inputGuide:r?void 0:e=>e.pending?(0,P.jsxs)(f,{children:[`Press `,e.keyName,` again to exit`]}):(0,P.jsxs)(p,{children:[(0,P.jsx)(u,{shortcut:`Tab`,action:`complete`}),(0,P.jsx)(u,{shortcut:`Enter`,action:`add`}),(0,P.jsx)(l,{action:`confirm:no`,context:`Settings`,fallback:`Esc`,description:`cancel`})]}),children:r?(0,P.jsxs)(d,{flexDirection:`column`,gap:1,children:[(0,P.jsx)(A,{path:r}),(0,P.jsx)(w,{options:S,onChange:M,onCancel:()=>M(`no`)})]}):(0,P.jsxs)(d,{flexDirection:`column`,gap:1,marginX:2,children:[(0,P.jsx)(k,{}),(0,P.jsx)(j,{value:o,onChange:s,onSubmit:D,error:c,suggestions:g,selectedSuggestion:b})]})})})}var N,P,F,I=e((()=>{n(),N=t(h(),1),_(),o(),x(),g(),s(),T(),c(),C(),D(),P=b(),F=[{value:`yes-session`,label:`Yes, for this session`},{value:`yes-remember`,label:`Yes, and remember this directory`},{value:`no`,label:`No`}]}));export{I as n,M as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,t}from"./AgentsMdExternalIncludesDialog-LjI_H_Au.js";e();export{t as AgentsMdExternalIncludesDialog};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,o as t}from"./rolldown-runtime-DaDcL9Zw.js";import{I as n,Lt as r,P as i,ai as a,t as o,y as s}from"./src-DL3w8VPk.js";import{t as c}from"./jsx-runtime-Bb4Xn-E0.js";import{g as l,p as u}from"./config-C-Y2qtB2.js";import{n as d,r as f}from"./analytics-DJobLaWP.js";import{t as p}from"./select-DIxfl_VN.js";import{t as m}from"./CustomSelect-wmZ9jz0W.js";function h({onDone:e,isStandaloneDialog:t,externalIncludes:a}){g.useEffect(()=>{f(`tengu_claude_md_includes_dialog_shown`,{})},[]);let o=(0,g.useCallback)(t=>{t===`no`?(f(`tengu_claude_md_external_includes_dialog_declined`,{}),l(e=>({...e,hasAgentsMdExternalIncludesApproved:!1,hasAgentsMdExternalIncludesWarningShown:!0}))):(f(`tengu_claude_md_external_includes_dialog_accepted`,{}),l(e=>({...e,hasAgentsMdExternalIncludesApproved:!0,hasAgentsMdExternalIncludesWarningShown:!0}))),e()},[e]);return(0,_.jsxs)(s,{title:`Allow external AGENTS.md file imports?`,color:`warning`,onCancel:(0,g.useCallback)(()=>{o(`no`)},[o]),hideBorder:!t,hideInputGuide:!t,children:[(0,_.jsx)(i,{children:`This project's AGENTS.md imports files outside the current working directory. Never allow this for third-party repositories.`}),a&&a.length>0&&(0,_.jsxs)(n,{flexDirection:`column`,children:[(0,_.jsx)(i,{dimColor:!0,children:`External imports:`}),a.map((e,t)=>(0,_.jsxs)(i,{dimColor:!0,children:[` `,e.path]},t))]}),(0,_.jsxs)(i,{dimColor:!0,children:[`Important: Only use Work Mate with files you trust. Accessing untrusted files may pose security risks`,` `,(0,_.jsx)(r,{url:`https://code.workmate.com/docs/en/security`}),` `]}),(0,_.jsx)(p,{options:[{label:`Yes, allow external imports`,value:`yes`},{label:`No, disable external imports`,value:`no`}],onChange:e=>o(e)})]})}var g,_,v=e((()=>{g=t(a(),1),d(),o(),u(),m(),_=c()}));export{v as n,h as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Ip as e,Pp as t}from"./loadAgentsDir-B0Anodo0.js";import{R as n,t as r}from"./src-DL3w8VPk.js";import{t as i}from"./jsx-runtime-Bb4Xn-E0.js";import{_ as a,p as o,s}from"./config-C-Y2qtB2.js";import{t as c}from"./fpsMetrics-wxj9GAsd.js";import{n as l,t as u}from"./onChangeAppState-DLjZ1x95.js";e(),r(),o();var d=i();function f({getFpsMetrics:e,stats:r,initialState:i,children:o}){return(0,d.jsx)(c,{getFpsMetrics:e,children:(0,d.jsx)(l,{store:r,children:(0,d.jsx)(t,{initialState:i,onChangeAppState:u,children:(0,d.jsx)(n,{initialState:s().theme,onThemeSave:e=>a(t=>({...t,theme:e})),children:o})})})})}export{f as App};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{n as e,o as t}from"./rolldown-runtime-DaDcL9Zw.js";import{n,t as r}from"./figures-5ThXQEtq.js";import{Dn as i,Ec as a,Hl as o,Ip as s,Ju as c,Jx as l,Lp as u,Tc as d,Tn as f,Ul as p,Vl as m,Wl as h,Yi as g,Yu as _,bb as v,dm as ee,ds as te,fs as y,gb as ne,gu as b,hb as x,hu as S,mb as C,mm as w,zp as re}from"./loadAgentsDir-B0Anodo0.js";import{D as T,Gt as E,H as D,I as O,P as k,T as A,ai as j,ot as M,t as N,y as P}from"./src-DL3w8VPk.js";import{t as F}from"./jsx-runtime-Bb4Xn-E0.js";import{_ as ie,f as ae}from"./debug-Bglx1aTu.js";import{Hn as oe,Un as se,Vn as ce}from"./settings-B2jvL8Dp.js";import{l as I,o as le}from"./stringUtils-C718f5ey.js";import{S as ue,_ as L,f as de,l as R,u as fe,y as z}from"./startupProfiler-CJdr3SxP.js";import{_n as pe,gn as me,vn as he}from"./prompt-CJ1l3XXk.js";import{i as ge,t as _e}from"./overlayContext-8--_fbvY.js";function B(e,t,n=1e3,r=0,i){let a=()=>R(Math.max(0,(i??Date.now())-e-r));return(0,V.useSyncExternalStore)((0,V.useCallback)(e=>{if(!t)return()=>{};let r=setInterval(e,n);return()=>clearInterval(r)},[t,n]),a,a)}var V,H=e((()=>{V=t(j(),1),L()}));function ve(e,t,n){let r=me(t,e.toolName);if(!r)return e.toolName;try{let t=r.inputSchema.safeParse(e.input),i=t.success?t.data:{},a=r.userFacingName(i);if(!a)return e.toolName;let o=r.renderToolUseMessage(i,{theme:n,verbose:!1});return o?(0,ye.jsxs)(k,{children:[a,`(`,o,`)`]}):a}catch{return e.toolName}}var ye,be=e((()=>{N(),he(),ye=F()}));function xe(e,t){let{isIdle:n,awaitingApproval:i,hasError:a,shutdownRequested:o}=t??{};return a?r.cross:i?r.questionMarkPrefix:o?r.warning:e===`running`?n?r.ellipsis:r.play:e===`completed`?r.tick:e===`failed`||e===`killed`?r.cross:r.bullet}function Se(e,t){let{isIdle:n,awaitingApproval:r,hasError:i,shutdownRequested:a}=t??{};return i?`error`:r||a?`warning`:n?`background`:e===`completed`?`success`:e===`failed`?`error`:e===`killed`?`warning`:`background`}function Ce(e,t){if(!t)return!1;let n=!1;for(let t of Object.values(e))if(b(t))return n=!0,!1;return n}var we=e((()=>{n(),S()}));function Te({agent:e,onDone:t,onKillAgent:n,onBack:r}){let[i]=D(),a=(0,Ee.useMemo)(()=>d(pe()),[]),o=B(e.startTime,e.status===`running`,1e3,e.totalPausedMs??0);E({"confirm:yes":t},{context:`Confirmation`});let s=i=>{i.key===` `?(i.preventDefault(),t()):i.key===`left`&&r?(i.preventDefault(),r()):i.key===`x`&&e.status===`running`&&n&&(i.preventDefault(),n())},u=l(e.prompt,`plan`),f=e.prompt.length>300?`${e.prompt.substring(0,297)}…`:e.prompt,p=e.result?.totalTokens??e.progress?.tokenCount,m=e.result?.totalToolUseCount??e.progress?.toolUseCount;return(0,U.jsx)(O,{flexDirection:`column`,tabIndex:0,autoFocus:!0,onKeyDown:s,children:(0,U.jsx)(P,{title:(0,U.jsxs)(k,{children:[e.selectedAgent?.agentType??`agent`,` › `,e.description||`Async agent`]}),subtitle:(0,U.jsxs)(k,{children:[e.status!==`running`&&(0,U.jsxs)(k,{color:Se(e.status),children:[xe(e.status),` `,e.status===`completed`?`Completed`:e.status===`failed`?`Failed`:`Stopped`,` · `]}),(0,U.jsxs)(k,{dimColor:!0,children:[o,p!==void 0&&p>0&&(0,U.jsxs)(U.Fragment,{children:[` · `,de(p),` tokens`]}),m!==void 0&&m>0&&(0,U.jsxs)(U.Fragment,{children:[` `,`· `,m,` `,m===1?`tool`:`tools`]})]})]}),onCancel:t,color:`background`,inputGuide:t=>t.pending?(0,U.jsxs)(k,{children:[`Press `,t.keyName,` again to exit`]}):(0,U.jsxs)(A,{children:[r&&(0,U.jsx)(T,{shortcut:`←`,action:`go back`}),(0,U.jsx)(T,{shortcut:`Esc/Enter/Space`,action:`close`}),e.status===`running`&&n&&(0,U.jsx)(T,{shortcut:`x`,action:`stop`})]}),children:(0,U.jsxs)(O,{flexDirection:`column`,children:[e.status===`running`&&e.progress?.recentActivities&&e.progress.recentActivities.length>0&&(0,U.jsxs)(O,{flexDirection:`column`,children:[(0,U.jsx)(k,{bold:!0,dimColor:!0,children:`Progress`}),e.progress.recentActivities.map((t,n)=>(0,U.jsxs)(k,{dimColor:n<e.progress.recentActivities.length-1,wrap:`truncate-end`,children:[n===e.progress.recentActivities.length-1?`› `:` `,ve(t,a,i)]},n))]}),u?(0,U.jsx)(O,{marginTop:1,children:(0,U.jsx)(c,{addMargin:!1,planContent:u})}):(0,U.jsxs)(O,{flexDirection:`column`,marginTop:1,children:[(0,U.jsx)(k,{bold:!0,dimColor:!0,children:`Prompt`}),(0,U.jsx)(k,{wrap:`wrap`,children:f})]}),e.status===`failed`&&e.error&&(0,U.jsxs)(O,{flexDirection:`column`,marginTop:1,children:[(0,U.jsx)(k,{bold:!0,color:`error`,children:`Error`}),(0,U.jsx)(k,{color:`error`,wrap:`wrap`,children:e.error})]})]})})})}var Ee,U,De=e((()=>{Ee=t(j(),1),H(),N(),C(),he(),a(),L(),g(),_(),be(),we(),U=F()}));function W({status:e,label:t,suffix:n}){return(0,G.jsxs)(k,{color:e===`completed`?`success`:e===`failed`?`error`:e===`killed`?`warning`:void 0,dimColor:!0,children:[`(`,t??e,n,`)`]})}function Oe({shell:e}){switch(e.status){case`completed`:return(0,G.jsx)(W,{status:`completed`,label:`done`});case`failed`:return(0,G.jsx)(W,{status:`failed`,label:`error`});case`killed`:return(0,G.jsx)(W,{status:`killed`,label:`stopped`});case`running`:case`pending`:return(0,G.jsx)(W,{status:`running`})}}var G,ke=e((()=>{N(),G=F()}));function Ae({task:e,maxActivityWidth:t}){let n=t??40;switch(e.type){case`local_bash`:return(0,K.jsxs)(k,{children:[z(e.command,n,!0),` `,(0,K.jsx)(Oe,{shell:e})]});case`local_agent`:return(0,K.jsxs)(k,{children:[z(e.description,n,!0),` `,(0,K.jsx)(W,{status:e.status,label:e.status===`completed`?`done`:void 0,suffix:e.status===`completed`&&!e.notified?`, unread`:void 0})]});case`local_workflow`:{let t=e;return(0,K.jsxs)(k,{children:[z(t.workflowName??e.summary??e.description,n,!0),` `,(0,K.jsx)(W,{status:e.status,label:e.status===`running`?`${t.agentCount} ${I(t.agentCount,`agent`)}`:e.status===`completed`?`done`:void 0,suffix:e.status===`completed`&&!e.notified?`, unread`:void 0})]})}case`dream`:{let t=e.filesTouched.length,n=e.phase===`updating`&&t>0?`${t} ${I(t,`file`)}`:`${e.sessionsReviewing} ${I(e.sessionsReviewing,`session`)}`;return(0,K.jsxs)(k,{children:[e.description,` `,(0,K.jsxs)(k,{dimColor:!0,children:[`· `,e.phase,` · `,n]}),` `,(0,K.jsx)(W,{status:e.status,label:e.status===`completed`?`done`:void 0,suffix:e.status===`completed`&&!e.notified?`, unread`:void 0})]})}}}var K,je=e((()=>{N(),L(),le(),ke(),K=F()}));function Me({task:e,onDone:t,onBack:n,onKill:r}){let i=B(e.startTime,e.status===`running`,1e3,0);E({"confirm:yes":t},{context:`Confirmation`});let a=i=>{i.key===` `?(i.preventDefault(),t()):i.key===`left`&&n?(i.preventDefault(),n()):i.key===`x`&&e.status===`running`&&r&&(i.preventDefault(),r())},o=e.turns.filter(e=>e.text!==``),s=o.slice(-6),c=o.length-s.length;return(0,q.jsx)(O,{flexDirection:`column`,tabIndex:0,autoFocus:!0,onKeyDown:a,children:(0,q.jsx)(P,{title:`Memory consolidation`,subtitle:(0,q.jsxs)(k,{dimColor:!0,children:[i,` · reviewing `,e.sessionsReviewing,` `,I(e.sessionsReviewing,`session`),e.filesTouched.length>0&&(0,q.jsxs)(q.Fragment,{children:[` `,`· `,e.filesTouched.length,` `,I(e.filesTouched.length,`file`),` touched`]})]}),onCancel:t,color:`background`,inputGuide:t=>t.pending?(0,q.jsxs)(k,{children:[`Press `,t.keyName,` again to exit`]}):(0,q.jsxs)(A,{children:[n&&(0,q.jsx)(T,{shortcut:`←`,action:`go back`}),(0,q.jsx)(T,{shortcut:`Esc/Enter/Space`,action:`close`}),e.status===`running`&&r&&(0,q.jsx)(T,{shortcut:`x`,action:`stop`})]}),children:(0,q.jsxs)(O,{flexDirection:`column`,gap:1,children:[(0,q.jsxs)(k,{children:[(0,q.jsx)(k,{bold:!0,children:`Status:`}),` `,e.status===`running`?(0,q.jsx)(k,{color:`background`,children:`running`}):e.status===`completed`?(0,q.jsx)(k,{color:`success`,children:e.status}):(0,q.jsx)(k,{color:`error`,children:e.status})]}),s.length===0?(0,q.jsx)(k,{dimColor:!0,children:e.status===`running`?`Starting…`:`(no text output)`}):(0,q.jsxs)(q.Fragment,{children:[c>0&&(0,q.jsxs)(k,{dimColor:!0,children:[`(`,c,` earlier `,I(c,`turn`),`)`]}),s.map((e,t)=>(0,q.jsxs)(O,{flexDirection:`column`,children:[(0,q.jsx)(k,{wrap:`wrap`,children:e.text}),e.toolUseCount>0&&(0,q.jsxs)(k,{dimColor:!0,children:[` `,`(`,e.toolUseCount,` `,I(e.toolUseCount,`tool`),`)`]})]},t))]})]})})})}var q,Ne=e((()=>{H(),N(),C(),le(),q=F()}));async function Pe(e){let t=f(e.id);try{let e=await ie(t,Le);return{content:e.content,bytesTotal:e.bytesTotal}}catch{return{content:``,bytesTotal:0}}}function Fe({shell:e,onDone:t,onKillShell:n,onBack:r}){let{columns:i}=M(),[a,o]=(0,J.useState)(()=>Pe(e)),s=(0,J.useDeferredValue)(a);(0,J.useEffect)(()=>{if(e.status!==`running`)return;let t=setInterval((e,t)=>e(Pe(t)),1e3,o,e);return()=>clearInterval(t)},[e.id,e.status]);let c=()=>t(`Shell details dismissed`,{display:`system`});E({"confirm:yes":c},{context:`Confirmation`});let l=i=>{i.key===` `?(i.preventDefault(),t(`Shell details dismissed`,{display:`system`})):i.key===`left`&&r?(i.preventDefault(),r()):i.key===`x`&&e.status===`running`&&n&&(i.preventDefault(),n())},u=ue(e.command,280);return(0,Y.jsx)(O,{flexDirection:`column`,tabIndex:0,autoFocus:!0,onKeyDown:l,children:(0,Y.jsxs)(P,{title:`Shell details`,onCancel:c,color:`background`,inputGuide:t=>t.pending?(0,Y.jsxs)(k,{children:[`Press `,t.keyName,` again to exit`]}):(0,Y.jsxs)(A,{children:[r&&(0,Y.jsx)(T,{shortcut:`←`,action:`go back`}),(0,Y.jsx)(T,{shortcut:`Esc/Enter/Space`,action:`close`}),e.status===`running`&&n&&(0,Y.jsx)(T,{shortcut:`x`,action:`stop`})]}),children:[(0,Y.jsxs)(O,{flexDirection:`column`,children:[(0,Y.jsxs)(k,{children:[(0,Y.jsx)(k,{bold:!0,children:`Status:`}),` `,e.status===`running`?(0,Y.jsxs)(k,{color:`background`,children:[e.status,e.result?.code!==void 0&&` (exit code: ${e.result.code})`]}):e.status===`completed`?(0,Y.jsxs)(k,{color:`success`,children:[e.status,e.result?.code!==void 0&&` (exit code: ${e.result.code})`]}):(0,Y.jsxs)(k,{color:`error`,children:[e.status,e.result?.code!==void 0&&` (exit code: ${e.result.code})`]})]}),(0,Y.jsxs)(k,{children:[(0,Y.jsx)(k,{bold:!0,children:`Runtime:`}),` `,R((e.endTime??Date.now())-e.startTime)]}),(0,Y.jsxs)(k,{wrap:`wrap`,children:[(0,Y.jsx)(k,{bold:!0,children:`Command:`}),` `,u]})]}),(0,Y.jsxs)(O,{flexDirection:`column`,children:[(0,Y.jsx)(k,{bold:!0,children:`Output:`}),(0,Y.jsx)(J.Suspense,{fallback:(0,Y.jsx)(k,{dimColor:!0,children:`Loading output…`}),children:(0,Y.jsx)(Ie,{outputPromise:s,columns:i})})]})]})})}function Ie({outputPromise:e,columns:t}){let{content:n,bytesTotal:r}=(0,J.use)(e);if(!n)return(0,Y.jsx)(k,{dimColor:!0,children:`No output available`});let i=[],a=n.length;for(let e=0;e<10&&a>0;e++){let e=n.lastIndexOf(`
|
|
2
|
-
`,a-1);i.push(e+1),a=e}i.reverse();let o=r>n.length,s=[];for(let e=0;e<i.length;e++){let t=i[e],r=e<i.length-1?i[e+1]-1:n.length,a=n.slice(t,r);a&&s.push(a)}return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(O,{borderStyle:`round`,paddingX:1,flexDirection:`column`,height:12,maxWidth:t-6,children:s.map((e,t)=>(0,Y.jsx)(k,{wrap:`truncate-end`,children:e},t))}),(0,Y.jsxs)(k,{dimColor:!0,italic:!0,children:[`Showing ${s.length} lines`,o?` of ${fe(r)}`:``]})]})}var J,Y,Le,Re=e((()=>{J=t(j(),1),v(),N(),C(),L(),ae(),i(),Y=F(),Le=8192}));function ze(e,t){return Object.values(e??{}).filter(b).filter(e=>!(e.type===`local_agent`&&e.id===t))}function Be({onDone:e,toolUseContext:t,initialDetailTaskId:n}){let r=u(e=>e.tasks),i=u(e=>e.foregroundedTaskId),a=re(),o=ne(`chat:killAgents`,`Chat`,`ctrl+x ctrl+k`),s=r,c=(0,Z.useRef)(!1),[l,d]=(0,Z.useState)(()=>{if(n)return c.current=!0,{mode:`detail`,itemId:n};let e=ze(s,i);return e.length===1?(c.current=!0,{mode:`detail`,itemId:e[0].id}):{mode:`list`}}),[f,m]=(0,Z.useState)(0);ge(`background-tasks-dialog`);let{bashTasks:h,agentTasks:g,workflowTasks:_,dreamTasks:v,allSelectableItems:y}=(0,Z.useMemo)(()=>{let e=Object.values(s??{}).filter(b).map(Ve).sort((e,t)=>{let n=e.status,r=t.status;if(n===`running`&&r!==`running`)return-1;if(n!==`running`&&r===`running`)return 1;let i=`task`in e?e.task.startTime:0;return(`task`in t?t.task.startTime:0)-i}),t=e.filter(e=>e.type===`local_bash`),n=e.filter(e=>e.type===`local_agent`&&e.id!==i),r=e.filter(e=>e.type===`local_workflow`),a=e.filter(e=>e.type===`dream`);return{bashTasks:t,agentTasks:n,workflowTasks:r,dreamTasks:a,allSelectableItems:[...t,...n,...r,...a]}},[s,i]),x=y[f]??null;E({"confirm:previous":()=>m(e=>Math.max(0,e-1)),"confirm:next":()=>m(e=>Math.min(y.length-1,e+1)),"confirm:yes":()=>{let e=y[f];e&&d({mode:`detail`,itemId:e.id})}},{context:`Confirmation`,isActive:l.mode===`list`});let S=t=>{if(l.mode!==`list`)return;if(t.key===`left`){t.preventDefault(),e(`Background tasks dialog dismissed`,{display:`system`});return}let n=y[f];n&&t.key===`x`&&(t.preventDefault(),n.type===`local_bash`&&n.status===`running`?C(n.id):n.type===`local_agent`&&n.status===`running`?w(n.id):n.type===`local_workflow`&&n.status===`running`?$(n.id,a):n.type===`dream`&&n.status===`running`&&D(n.id))};async function C(e){await ee.kill(e,a)}async function w(e){await te.kill(e,a)}async function D(e){await p.kill(e,a)}let j=(0,Z.useEffectEvent)(e);(0,Z.useEffect)(()=>{if(l.mode!==`list`){let e=s?.[l.itemId];(!e||e.type!==`local_workflow`&&!b(e))&&(c.current?j(`Background tasks dialog dismissed`,{display:`system`}):d({mode:`list`}))}let e=y.length;f>=e&&e>0&&m(e-1)},[l,s,f,y,j]);let M=()=>{c.current&&y.length<=1?e(`Background tasks dialog dismissed`,{display:`system`}):(c.current=!1,d({mode:`list`}))};if(l.mode!==`list`&&s){let t=s[l.itemId];if(!t)return null;switch(t.type){case`local_bash`:return(0,Q.jsx)(Fe,{shell:t,onDone:e,onKillShell:()=>void C(t.id),onBack:M},`shell-${t.id}`);case`local_agent`:return(0,Q.jsx)(Te,{agent:t,onDone:e,onKillAgent:()=>void w(t.id),onBack:M},`agent-${t.id}`);case`local_workflow`:{let e=t.status===`running`?()=>$(t.id,a):void 0;return(0,Q.jsx)(O,{flexDirection:`column`,tabIndex:0,borderStyle:`round`,onKeyDown:t=>{t.key===`left`?(t.preventDefault(),M()):t.key===`x`&&e&&(t.preventDefault(),e())},children:(0,Q.jsx)(P,{title:t.workflowName,subtitle:(0,Q.jsxs)(k,{dimColor:!0,children:[t.status,t.summary?` · ${t.summary}`:``]}),onCancel:M,inputGuide:()=>(0,Q.jsxs)(A,{children:[(0,Q.jsx)(T,{shortcut:`←`,action:`go back`}),(0,Q.jsx)(T,{shortcut:`Esc`,action:`close`}),e&&(0,Q.jsx)(T,{shortcut:`x`,action:`stop`})]}),children:t.status===`failed`&&t.error?(0,Q.jsxs)(k,{color:`error`,children:[`失败原因:`,t.error]}):null})},`workflow-${t.id}`)}case`dream`:return(0,Q.jsx)(Me,{task:t,onDone:()=>e(`Background tasks dialog dismissed`,{display:`system`}),onBack:M,onKill:t.status===`running`?()=>void D(t.id):void 0},`dream-${t.id}`)}}let N=ce(h,e=>e.status===`running`),F=ce(g,e=>e.status===`running`),ie=se([...N>0?[(0,Q.jsxs)(k,{children:[N,` `,N===1?`active shell`:`active shells`]},`shells`)]:[],...F>0?[(0,Q.jsxs)(k,{children:[F,` `,F===1?`active agent`:`active agents`]},`agents`)]:[]],e=>(0,Q.jsx)(k,{children:` · `},`separator-${e}`)),ae=[(0,Q.jsx)(T,{shortcut:`↑/↓`,action:`select`},`upDown`),(0,Q.jsx)(T,{shortcut:`Enter`,action:`view`},`enter`),...(x?.type===`local_bash`||x?.type===`local_agent`||x?.type===`local_workflow`||x?.type===`dream`)&&x.status===`running`?[(0,Q.jsx)(T,{shortcut:`x`,action:`stop`},`kill`)]:[],...g.some(e=>e.status===`running`)?[(0,Q.jsx)(T,{shortcut:o,action:`stop all agents`},`kill-all`)]:[],(0,Q.jsx)(T,{shortcut:`←/Esc`,action:`close`},`esc`)],oe=()=>e(`Background tasks dialog dismissed`,{display:`system`});function I(e){return e.pending?(0,Q.jsxs)(k,{children:[`Press `,e.keyName,` again to exit`]}):(0,Q.jsx)(A,{children:ae})}return(0,Q.jsx)(O,{flexDirection:`column`,tabIndex:0,autoFocus:!0,onKeyDown:S,children:(0,Q.jsx)(P,{title:`Background tasks`,subtitle:ie,onCancel:oe,color:`background`,inputGuide:I,children:y.length===0?(0,Q.jsx)(k,{dimColor:!0,children:`No tasks currently running`}):(0,Q.jsxs)(O,{flexDirection:`column`,children:[h.length>0&&(0,Q.jsxs)(O,{flexDirection:`column`,children:[g.length>0&&(0,Q.jsxs)(k,{dimColor:!0,children:[(0,Q.jsxs)(k,{bold:!0,children:[` `,`Shells`]}),` (`,h.length,`)`]}),(0,Q.jsx)(O,{flexDirection:`column`,children:h.map(e=>(0,Q.jsx)(X,{item:e,isSelected:e.id===x?.id},e.id))})]}),g.length>0&&(0,Q.jsxs)(O,{flexDirection:`column`,marginTop:+(h.length>0),children:[(0,Q.jsxs)(k,{dimColor:!0,children:[(0,Q.jsxs)(k,{bold:!0,children:[` `,`Local agents`]}),` (`,g.length,`)`]}),(0,Q.jsx)(O,{flexDirection:`column`,children:g.map(e=>(0,Q.jsx)(X,{item:e,isSelected:e.id===x?.id},e.id))})]}),_.length>0&&(0,Q.jsxs)(O,{flexDirection:`column`,marginTop:+(h.length>0||g.length>0),children:[(0,Q.jsxs)(k,{dimColor:!0,children:[(0,Q.jsxs)(k,{bold:!0,children:[` `,`Workflows`]}),` (`,_.length,`)`]}),(0,Q.jsx)(O,{flexDirection:`column`,children:_.map(e=>(0,Q.jsx)(X,{item:e,isSelected:e.id===x?.id},e.id))})]}),v.length>0&&(0,Q.jsx)(O,{flexDirection:`column`,marginTop:+(h.length>0||g.length>0||_.length>0),children:(0,Q.jsx)(O,{flexDirection:`column`,children:v.map(e=>(0,Q.jsx)(X,{item:e,isSelected:e.id===x?.id},e.id))})})]})})})}function Ve(e){switch(e.type){case`local_bash`:return{id:e.id,type:`local_bash`,label:e.command,status:e.status,task:e};case`local_agent`:return{id:e.id,type:`local_agent`,label:e.description,status:e.status,task:e};case`local_workflow`:return{id:e.id,type:`local_workflow`,label:e.summary??e.description,status:e.status,task:e};case`dream`:return{id:e.id,type:`dream`,label:e.description,status:e.status,task:e}}}function X({item:e,isSelected:t}){let{columns:n}=M(),i=Math.max(30,n-26);return(0,Q.jsxs)(O,{flexDirection:`row`,children:[(0,Q.jsx)(k,{children:t?`${r.pointer} `:` `}),(0,Q.jsx)(k,{color:t?`suggestion`:void 0,children:(0,Q.jsx)(Ae,{task:e.task,maxActivityWidth:i})})]})}var Z,Q,$,He=e((()=>{n(),Z=t(j(),1),v(),s(),h(),y(),w(),S(),oe(),_e(),N(),C(),x(),De(),je(),Ne(),Re(),m(),Q=F(),$=o}));export{H as a,Ce as i,He as n,B as o,we as r,Be as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DaDcL9Zw.js";import{_i as t,gi as n}from"./loadAgentsDir-B0Anodo0.js";import{I as r,Lt as i,P as a,ai as o,kt as s,t as c,y as l}from"./src-DL3w8VPk.js";import{t as u}from"./jsx-runtime-Bb4Xn-E0.js";import{b as d,h as f}from"./settings-B2jvL8Dp.js";import{n as p,r as m}from"./analytics-DJobLaWP.js";import{t as h}from"./select-DIxfl_VN.js";import{t as g}from"./CustomSelect-wmZ9jz0W.js";var _=e(o(),1);p(),c(),t(),f(),g();var v=u();function y({onAccept:e}){let[t,o]=_.useState(null);_.useEffect(()=>{if(t!==null){let e=t,r=setTimeout(()=>n(e));return()=>clearTimeout(r)}},[t]),_.useEffect(()=>{m(`tengu_bypass_permissions_mode_dialog_shown`,{})},[]);function c(t){switch(t){case`accept`:m(`tengu_bypass_permissions_mode_dialog_accept`,{}),d(`userSettings`,{skipDangerousModePermissionPrompt:!0}),e();break;case`decline`:o(1);break}}let u=(0,_.useCallback)(()=>{o(0)},[]);return t===null?(0,v.jsxs)(l,{title:`WARNING: Work Mate running in Bypass Permissions mode`,color:`error`,onCancel:u,children:[(0,v.jsxs)(r,{flexDirection:`column`,gap:1,children:[(0,v.jsxs)(a,{children:[`In Bypass Permissions mode, Work Mate will not ask for your approval before running potentially dangerous commands.`,(0,v.jsx)(s,{}),`This mode should only be used in a sandboxed container/VM that has restricted internet access and can easily be restored if damaged.`]}),(0,v.jsx)(a,{children:`By proceeding, you accept all responsibility for actions taken while running in Bypass Permissions mode.`}),(0,v.jsx)(i,{url:`https://code.workmate.com/docs/en/security`})]}),(0,v.jsx)(h,{options:[{label:`No, exit`,value:`decline`},{label:`Yes, I accept`,value:`accept`}],onChange:e=>c(e)})]}):null}export{y as BypassPermissionsModeDialog};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-DaDcL9Zw.js";import{n as t}from"./SelectMulti-BQRHed-d.js";import{n}from"./select-DIxfl_VN.js";var r=e((()=>{t(),n()}));export{r as t};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import{n as e,o as t}from"./rolldown-runtime-DaDcL9Zw.js";import{n,t as r}from"./figures-5ThXQEtq.js";import{bb as i,gb as a,hb as o,mb as s,vp as c,yp as l}from"./loadAgentsDir-B0Anodo0.js";import{C as u,Gt as d,I as f,P as p,T as m,ai as h,ot as g,t as _,y as ee}from"./src-DL3w8VPk.js";import{t as v}from"./jsx-runtime-Bb4Xn-E0.js";import{n as y,t as b}from"./cwd-Pa83R95t.js";import{Ir as x,Lr as S,Mr as C,jn as w,jr as T,wn as E}from"./settings-B2jvL8Dp.js";import{i as D,t as O}from"./execFileNoThrow-BTachNBI.js";import{l as k,o as A}from"./stringUtils-C718f5ey.js";import{_ as te,x as ne}from"./startupProfiler-CJdr3SxP.js";import{i as re,t as ie}from"./overlayContext-8--_fbvY.js";import{r as ae}from"./detectRepository-CfX8Lc0A.js";import{join as oe,resolve as j}from"path";import{access as M}from"fs/promises";async function se(){if(!await C()||await P())return null;let{stdout:e,code:t}=await O(x(),[`--no-optional-locks`,`diff`,`HEAD`,`--shortstat`],{timeout:F,preserveOutputOnError:!1});if(t===0){let t=de(e);if(t&&t.filesCount>z)return{stats:t,perFileStats:new Map,hunks:new Map}}let{stdout:n,code:r}=await O(x(),[`--no-optional-locks`,`diff`,`HEAD`,`--numstat`],{timeout:F,preserveOutputOnError:!1});if(r!==0)return null;let{stats:i,perFileStats:a}=le(n),o=I-a.size;if(o>0){let e=await ue(o);if(e){i.filesCount+=e.size;for(let[t,n]of e)a.set(t,n)}}return{stats:i,perFileStats:a,hunks:new Map}}async function ce(){if(!await C()||await P())return new Map;let{stdout:e,code:t}=await O(x(),[`--no-optional-locks`,`diff`,`HEAD`],{timeout:F,preserveOutputOnError:!1});return t===0?N(e):new Map}function le(e){let t=e.trim().split(`
|
|
2
|
-
`).filter(Boolean),n=0,r=0,i=0,a=new Map;for(let e of t){let t=e.split(` `);if(t.length<3)continue;i++;let o=t[0],s=t[1],c=t.slice(2).join(` `),l=o===`-`||s===`-`,u=l?0:parseInt(o??`0`,10)||0,d=l?0:parseInt(s??`0`,10)||0;n+=u,r+=d,a.size<I&&a.set(c,{added:u,removed:d,isBinary:l})}return{stats:{filesCount:i,linesAdded:n,linesRemoved:r},perFileStats:a}}function N(e){let t=new Map;if(!e.trim())return t;let n=e.split(/^diff --git /m).filter(Boolean);for(let e of n){if(t.size>=I)break;if(e.length>L)continue;let n=e.split(`
|
|
3
|
-
`),r=n[0]?.match(/^a\/(.+?) b\/(.+)$/);if(!r)continue;let i=r[2]??r[1]??``,a=[],o=null,s=0;for(let e=1;e<n.length;e++){let t=n[e]??``,r=t.match(/^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/);if(r){o&&a.push(o),o={oldStart:parseInt(r[1]??`0`,10),oldLines:parseInt(r[2]??`1`,10),newStart:parseInt(r[3]??`0`,10),newLines:parseInt(r[4]??`1`,10),lines:[]};continue}if(!(t.startsWith(`index `)||t.startsWith(`---`)||t.startsWith(`+++`)||t.startsWith(`new file`)||t.startsWith(`deleted file`)||t.startsWith(`old mode`)||t.startsWith(`new mode`)||t.startsWith(`Binary files`))&&o&&(t.startsWith(`+`)||t.startsWith(`-`)||t.startsWith(` `)||t===``)){if(s>=R)continue;o.lines.push(`${t}`),s++}}o&&a.push(o),a.length>0&&t.set(i,a)}return t}async function P(){let e=await T(b());return e?(await Promise.all([`MERGE_HEAD`,`REBASE_HEAD`,`CHERRY_PICK_HEAD`,`REVERT_HEAD`].map(t=>M(oe(e,t)).then(()=>!0).catch(()=>!1)))).some(Boolean):!1}async function ue(e){let{stdout:t,code:n}=await O(x(),[`--no-optional-locks`,`ls-files`,`--others`,`--exclude-standard`],{timeout:F,preserveOutputOnError:!1});if(n!==0||!t.trim())return null;let r=t.trim().split(`
|
|
4
|
-
`).filter(Boolean);if(r.length===0)return null;let i=new Map;for(let t of r.slice(0,e))i.set(t,{added:0,removed:0,isBinary:!1,isUntracked:!0});return i}function de(e){let t=e.match(/(\d+)\s+files?\s+changed(?:,\s+(\d+)\s+insertions?\(\+\))?(?:,\s+(\d+)\s+deletions?\(-\))?/);return t?{filesCount:parseInt(t[1]??`0`,10),linesAdded:parseInt(t[2]??`0`,10),linesRemoved:parseInt(t[3]??`0`,10)}:null}var F,I,L,R,z,B=e((()=>{y(),ae(),D(),E(),S(),F=5e3,I=50,L=1e6,R=400,z=500}));function V(){let[e,t]=(0,H.useState)(null),[n,r]=(0,H.useState)(new Map),[i,a]=(0,H.useState)(!0);return(0,H.useEffect)(()=>{let e=!1;async function n(){try{let[n,i]=await Promise.all([se(),ce()]);e||(t(n),r(i),a(!1))}catch{e||(t(null),r(new Map),a(!1))}}return n(),()=>{e=!0}},[]),(0,H.useMemo)(()=>{if(!e)return{stats:null,files:[],hunks:new Map,loading:i};let{stats:t,perFileStats:r}=e,a=[];for(let[e,t]of r){let r=n.get(e),i=t.isUntracked??!1,o=!t.isBinary&&!i&&!r,s=t.added+t.removed,c=!o&&!t.isBinary&&s>U;a.push({path:e,linesAdded:t.added,linesRemoved:t.removed,isBinary:t.isBinary,isLargeFile:o,isTruncated:c,isUntracked:i})}return a.sort((e,t)=>e.path.localeCompare(t.path)),{stats:t,files:a,hunks:n,loading:!1}},[e,n,i])}var H,U,fe=e((()=>{H=t(h(),1),B(),U=400}));function W(e){if(!e||typeof e!=`object`)return!1;let t=e,n=typeof t.filePath==`string`,r=Array.isArray(t.structuredPatch)&&t.structuredPatch.length>0,i=t.type===`create`&&typeof t.content==`string`;return n&&(r||i)}function pe(e){return`type`in e&&(e.type===`create`||e.type===`update`)}function me(e){let t=0,n=0;for(let r of e)for(let e of r.lines)e.startsWith(`+`)?t++:e.startsWith(`-`)&&n++;return{added:t,removed:n}}function he(e){if(e.type!==`user`)return``;let t=e.message.content,n=typeof t==`string`?t:``;return n.length<=30?n:`${n.slice(0,29)}…`}function G(e){let t=0,n=0;for(let r of e.files.values())t+=r.linesAdded,n+=r.linesRemoved;e.stats={filesChanged:e.files.size,linesAdded:t,linesRemoved:n}}function ge(e){let t=(0,K.useRef)({completedTurns:[],currentTurn:null,lastProcessedIndex:0,lastTurnIndex:0});return(0,K.useMemo)(()=>{let n=t.current;e.length<n.lastProcessedIndex&&(n.completedTurns=[],n.currentTurn=null,n.lastProcessedIndex=0,n.lastTurnIndex=0);for(let t=n.lastProcessedIndex;t<e.length;t++){let r=e[t];if(r?.type===`user`){if(!(r.toolUseResult||Array.isArray(r.message.content)&&r.message.content[0]?.type===`tool_result`)&&!r.isMeta)n.currentTurn&&n.currentTurn.files.size>0&&(G(n.currentTurn),n.completedTurns.push(n.currentTurn)),n.lastTurnIndex++,n.currentTurn={turnIndex:n.lastTurnIndex,userPromptPreview:he(r),timestamp:r.timestamp,files:new Map,stats:{filesChanged:0,linesAdded:0,linesRemoved:0}};else if(n.currentTurn&&r.toolUseResult){let e=r.toolUseResult;if(W(e)){let{filePath:t,structuredPatch:r}=e,i=`type`in e&&e.type===`create`,a=n.currentTurn.files.get(t);if(a||(a={filePath:t,hunks:[],isNewFile:i,linesAdded:0,linesRemoved:0},n.currentTurn.files.set(t,a)),i&&r.length===0&&pe(e)){let t=e.content.split(`
|
|
5
|
-
`),n={oldStart:0,oldLines:0,newStart:1,newLines:t.length,lines:t.map(e=>`+${e}`)};a.hunks.push(n),a.linesAdded+=t.length}else{a.hunks.push(...r);let{added:e,removed:t}=me(r);a.linesAdded+=e,a.linesRemoved+=t}i&&(a.isNewFile=!0)}}}}n.lastProcessedIndex=e.length;let r=[...n.completedTurns];return n.currentTurn&&n.currentTurn.files.size>0&&(G(n.currentTurn),r.push(n.currentTurn)),r.reverse()},[e])}var K,_e=e((()=>{K=t(h(),1)}));function ve({filePath:e,hunks:t,isLargeFile:n,isBinary:r,isTruncated:i,isUntracked:a}){let{columns:o}=g(),{firstLine:s,fileContent:l}=(0,q.useMemo)(()=>{if(!e)return{firstLine:null,fileContent:void 0};let t=w(j(b(),e));return{firstLine:t?.split(`
|
|
6
|
-
`)[0]??null,fileContent:t??void 0}},[e]);return a?(0,J.jsxs)(f,{flexDirection:`column`,width:`100%`,children:[(0,J.jsxs)(f,{children:[(0,J.jsx)(p,{bold:!0,children:e}),(0,J.jsx)(p,{dimColor:!0,children:` (untracked)`})]}),(0,J.jsx)(u,{padding:4}),(0,J.jsxs)(f,{flexDirection:`column`,children:[(0,J.jsx)(p,{dimColor:!0,italic:!0,children:`New file not yet staged.`}),(0,J.jsxs)(p,{dimColor:!0,italic:!0,children:["Run `git add ",e,"` to see line counts."]})]})]}):r?(0,J.jsxs)(f,{flexDirection:`column`,width:`100%`,children:[(0,J.jsx)(f,{children:(0,J.jsx)(p,{bold:!0,children:e})}),(0,J.jsx)(u,{padding:4}),(0,J.jsx)(f,{flexDirection:`column`,children:(0,J.jsx)(p,{dimColor:!0,italic:!0,children:`Binary file - cannot display diff`})})]}):n?(0,J.jsxs)(f,{flexDirection:`column`,width:`100%`,children:[(0,J.jsx)(f,{children:(0,J.jsx)(p,{bold:!0,children:e})}),(0,J.jsx)(u,{padding:4}),(0,J.jsx)(f,{flexDirection:`column`,children:(0,J.jsx)(p,{dimColor:!0,italic:!0,children:`Large file - diff exceeds 1 MB limit`})})]}):(0,J.jsxs)(f,{flexDirection:`column`,width:`100%`,children:[(0,J.jsxs)(f,{children:[(0,J.jsx)(p,{bold:!0,children:e}),i&&(0,J.jsx)(p,{dimColor:!0,children:` (truncated)`})]}),(0,J.jsx)(u,{padding:4}),(0,J.jsx)(f,{flexDirection:`column`,children:t.length===0?(0,J.jsx)(p,{dimColor:!0,children:`No diff content`}):t.map((t,n)=>(0,J.jsx)(c,{patch:t,filePath:e,firstLine:s,fileContent:l,dim:!1,width:o-2-2},n))}),i&&(0,J.jsx)(p,{dimColor:!0,italic:!0,children:`… diff truncated (exceeded 400 line limit)`})]})}var q,J,ye=e((()=>{q=t(h(),1),i(),_(),y(),E(),l(),J=v()}));function be({files:e,selectedIndex:t}){let{columns:n}=g(),{startIndex:r,endIndex:i}=(0,Y.useMemo)(()=>{if(e.length===0||e.length<=Z)return{startIndex:0,endIndex:e.length};let n=Math.max(0,t-Math.floor(Z/2)),r=n+Z;return r>e.length&&(r=e.length,n=Math.max(0,r-Z)),{startIndex:n,endIndex:r}},[e.length,t]);if(e.length===0)return(0,X.jsx)(p,{dimColor:!0,children:`No changed files`});let a=e.slice(r,i),o=r>0,s=i<e.length,c=e.length>Z,l=Math.max(20,n-16-3-4);return(0,X.jsxs)(f,{flexDirection:`column`,children:[c&&(0,X.jsx)(p,{dimColor:!0,children:o?` ↑ ${r} more ${k(r,`file`)}`:` `}),a.map((e,n)=>(0,X.jsx)(xe,{file:e,isSelected:r+n===t,maxPathWidth:l},e.path)),c&&(0,X.jsx)(p,{dimColor:!0,children:s?` ↓ ${e.length-i} more ${k(e.length-i,`file`)}`:` `})]})}function xe({file:e,isSelected:t,maxPathWidth:n}){let i=ne(e.path,n),a=`${t?`${r.pointer} `:` `}${i}`;return(0,X.jsxs)(f,{flexDirection:`row`,children:[(0,X.jsx)(p,{bold:t,color:t?`background`:void 0,inverse:t,children:a}),(0,X.jsx)(f,{flexGrow:1}),(0,X.jsx)(Se,{file:e,isSelected:t})]})}function Se({file:e,isSelected:t}){return e.isUntracked?(0,X.jsx)(p,{dimColor:!t,italic:!0,children:`untracked`}):e.isBinary?(0,X.jsx)(p,{dimColor:!t,italic:!0,children:`Binary file`}):e.isLargeFile?(0,X.jsx)(p,{dimColor:!t,italic:!0,children:`Large file modified`}):(0,X.jsxs)(p,{children:[e.linesAdded>0&&(0,X.jsxs)(p,{color:`diffAddedWord`,bold:t,children:[`+`,e.linesAdded]}),e.linesAdded>0&&e.linesRemoved>0&&` `,e.linesRemoved>0&&(0,X.jsxs)(p,{color:`diffRemovedWord`,bold:t,children:[`-`,e.linesRemoved]}),e.isTruncated&&(0,X.jsx)(p,{dimColor:!t,children:` (truncated)`})]})}var Y,X,Z,Ce=e((()=>{n(),Y=t(h(),1),i(),_(),te(),A(),X=v(),Z=5}));function we(e){let t=Array.from(e.files.values()).map(e=>({path:e.filePath,linesAdded:e.linesAdded,linesRemoved:e.linesRemoved,isBinary:!1,isLargeFile:!1,isTruncated:!1,isNewFile:e.isNewFile})).sort((e,t)=>e.path.localeCompare(t.path)),n=new Map;for(let t of e.files.values())n.set(t.filePath,t.hunks);return{stats:{filesCount:e.stats.filesChanged,linesAdded:e.stats.linesAdded,linesRemoved:e.stats.linesRemoved},files:t,hunks:n,loading:!1}}function Te({messages:e,onDone:t}){let n=V(),r=ge(e),[i,o]=(0,Q.useState)(`list`),[s,c]=(0,Q.useState)(0),[l,u]=(0,Q.useState)(0),h=(0,Q.useMemo)(()=>[{type:`current`},...r.map(e=>({type:`turn`,turn:e}))],[r]),g=h[l],_=g?.type===`turn`?g.turn:null,v=(0,Q.useMemo)(()=>_?we(_):n,[_,n]),y=v.files[s],b=(0,Q.useMemo)(()=>y&&v.hunks.get(y.path)||[],[y,v.hunks]);(0,Q.useEffect)(()=>{l>=h.length&&u(Math.max(0,h.length-1))},[h.length,l]);let x=(0,Q.useRef)(l);(0,Q.useEffect)(()=>{x.current!==l&&(c(0),x.current=l)},[l]),re(`diff-dialog`),d({"diff:previousSource":()=>{i===`detail`?o(`list`):i===`list`&&h.length>1&&u(e=>Math.max(0,e-1))},"diff:nextSource":()=>{i===`list`&&h.length>1&&u(e=>Math.min(h.length-1,e+1))},"diff:back":()=>{i===`detail`&&o(`list`)},"diff:viewDetails":()=>{i===`list`&&y&&o(`detail`)},"diff:previousFile":()=>{i===`list`&&c(e=>Math.max(0,e-1))},"diff:nextFile":()=>{i===`list`&&c(e=>Math.min(v.files.length-1,e+1))}},{context:`DiffDialog`});let S=v.stats?(0,$.jsxs)(p,{dimColor:!0,children:[v.stats.filesCount,` `,k(v.stats.filesCount,`file`),` changed`,v.stats.linesAdded>0&&(0,$.jsxs)(p,{color:`diffAddedWord`,children:[` +`,v.stats.linesAdded]}),v.stats.linesRemoved>0&&(0,$.jsxs)(p,{color:`diffRemovedWord`,children:[` -`,v.stats.linesRemoved]})]}):null,C=_?`Turn ${_.turnIndex}`:`Uncommitted changes`,w=_?_.userPromptPreview?`"${_.userPromptPreview}"`:``:`(git diff HEAD)`,T=h.length>1?(0,$.jsxs)(f,{children:[l>0&&(0,$.jsx)(p,{dimColor:!0,children:`◀ `}),h.map((e,t)=>{let n=t===l,r=e.type===`current`?`Current`:`T${e.turn.turnIndex}`;return(0,$.jsxs)(p,{dimColor:!n,bold:n,children:[t>0?` · `:``,r]},t)}),l<h.length-1&&(0,$.jsx)(p,{dimColor:!0,children:` ▶`})]}):null,E=a(`diff:dismiss`,`DiffDialog`,`esc`),D=v.loading?`Loading diff…`:_?`No file changes in this turn`:v.stats&&v.stats.filesCount>0&&v.files.length===0?`Too many files to display details`:`Working tree is clean`,O=(0,$.jsxs)(p,{children:[C,w&&(0,$.jsxs)(p,{dimColor:!0,children:[` `,w]})]});function A(){i===`detail`?o(`list`):t(`Diff dialog dismissed`,{display:`system`})}return(0,$.jsxs)(ee,{title:O,onCancel:A,color:`background`,inputGuide:e=>e.pending?(0,$.jsxs)(p,{children:[`Press `,e.keyName,` again to exit`]}):i===`list`?(0,$.jsxs)(m,{children:[h.length>1&&(0,$.jsx)(p,{children:`←/→ source`}),(0,$.jsx)(p,{children:`↑/↓ select`}),(0,$.jsx)(p,{children:`Enter view`}),(0,$.jsxs)(p,{children:[E,` close`]})]}):(0,$.jsxs)(m,{children:[(0,$.jsx)(p,{children:`← back`}),(0,$.jsxs)(p,{children:[E,` close`]})]}),children:[T,S,v.files.length===0?(0,$.jsx)(f,{marginTop:1,children:(0,$.jsx)(p,{dimColor:!0,children:D})}):i===`list`?(0,$.jsx)(f,{flexDirection:`column`,marginTop:1,children:(0,$.jsx)(be,{files:v.files,selectedIndex:s})}):(0,$.jsx)(f,{flexDirection:`column`,marginTop:1,children:(0,$.jsx)(ve,{filePath:y?.path||``,hunks:b,isLargeFile:y?.isLargeFile,isBinary:y?.isBinary,isTruncated:y?.isTruncated,isUntracked:y?.isUntracked})})]})}var Q,$;e((()=>{Q=t(h(),1),ie(),fe(),_e(),_(),s(),o(),A(),ye(),Ce(),$=v()}))();export{Te as DiffDialog};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,t}from"./Doctor-DqW6j3_B.js";e();export{t as Doctor};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{n as e,o as t}from"./rolldown-runtime-DaDcL9Zw.js";import{i as n,o as r}from"./envUtils-DfkgIdYf.js";import{n as i,t as a}from"./figures-5ThXQEtq.js";import{$b as o,Dh as s,Dl as c,Eh as l,Ip as u,Ji as d,Kx as f,Lp as p,Ol as ee,Qb as m,Xb as te,Yb as ne,Zb as h,__ as g,aw as _,cw as v,gC as y,g_ as b,iw as x,kl as S,mb as re,ow as ie,p_ as C,qi as ae,qx as w,yC as T,y_ as oe}from"./loadAgentsDir-B0Anodo0.js";import{Gt as se,I as E,P as D,ai as ce,t as O,x as k}from"./src-DL3w8VPk.js";import{t as A}from"./jsx-runtime-Bb4Xn-E0.js";import{It as j,J as M}from"./state-B4jiUise.js";import{R as N,V as P,kn as F,wn as I}from"./settings-B2jvL8Dp.js";import{l as L,o as R}from"./stringUtils-C718f5ey.js";import{_t as z,bt as B,d as V,o as H}from"./model-BvQFFOf8.js";import{n as U,t as W}from"./ValidationErrorsList-DgNzJQUP.js";import{n as G,t as le}from"./useExitOnCtrlCDWithKeybindings-BKwzUpgb.js";import{f as ue,g as de,h as fe,i as pe,n as me,o as he,p as ge,r as _e}from"./pidLock-Cm4sW35f.js";import{n as ve,t as ye}from"./McpParsingWarnings-Bff66RtJ.js";import{n as be,t as xe}from"./PressEnterToContinue-DZc_s_pE.js";import{n as Se,t as Ce}from"./useSettingsErrors-SFPWfxsA.js";import{n as we,t as Te}from"./shadowedRuleDetection-Bg_aIc5Z.js";import{n as Ee,r as De,t as K}from"./statusNoticeHelpers-BRQpUIlH.js";import{join as q}from"path";function Oe(){if(!v())return null;let e=x();if(e.length===0)return null;let t=e.filter(e=>e.severity===`error`),n=e.filter(e=>e.severity===`warning`);return(0,J.jsxs)(E,{flexDirection:`column`,marginTop:1,marginBottom:1,children:[(0,J.jsx)(D,{bold:!0,color:t.length>0?`error`:`warning`,children:`Keybinding Configuration Issues`}),(0,J.jsxs)(E,{children:[(0,J.jsx)(D,{dimColor:!0,children:`Location: `}),(0,J.jsx)(D,{dimColor:!0,children:_()})]}),(0,J.jsxs)(E,{marginLeft:1,flexDirection:`column`,marginTop:1,children:[t.map((e,t)=>(0,J.jsxs)(E,{flexDirection:`column`,children:[(0,J.jsxs)(E,{children:[(0,J.jsx)(D,{dimColor:!0,children:`└ `}),(0,J.jsx)(D,{color:`error`,children:`[Error]`}),(0,J.jsxs)(D,{dimColor:!0,children:[` `,e.message]})]}),e.suggestion&&(0,J.jsx)(E,{marginLeft:3,children:(0,J.jsxs)(D,{dimColor:!0,children:[`→ `,e.suggestion]})})]},`error-${t}`)),n.map((e,t)=>(0,J.jsxs)(E,{flexDirection:`column`,children:[(0,J.jsxs)(E,{children:[(0,J.jsx)(D,{dimColor:!0,children:`└ `}),(0,J.jsx)(D,{color:`warning`,children:`[Warning]`}),(0,J.jsxs)(D,{dimColor:!0,children:[` `,e.message]})]}),e.suggestion&&(0,J.jsx)(E,{marginLeft:3,children:(0,J.jsxs)(D,{dimColor:!0,children:[`→ `,e.suggestion]})})]},`warning-${t}`))]})]})}var J,ke=e((()=>{O(),ie(),J=A()}));function Ae(){if(!y.isSupportedPlatform()||!y.isSandboxEnabledInSettings())return null;let e=y.checkDependencies(),t=e.errors.length>0,n=e.warnings.length>0;return!t&&!n?null:(0,Y.jsxs)(E,{flexDirection:`column`,children:[(0,Y.jsx)(D,{bold:!0,children:`Sandbox`}),(0,Y.jsxs)(D,{children:[`└ Status: `,(0,Y.jsx)(D,{color:t?`error`:`warning`,children:t?`Missing dependencies`:`Available (with warnings)`})]}),e.errors.map((e,t)=>(0,Y.jsxs)(D,{color:`error`,children:[`└ `,e]},t)),e.warnings.map((e,t)=>(0,Y.jsxs)(D,{color:`warning`,children:[`└ `,e]},t)),t&&(0,Y.jsx)(D,{dimColor:!0,children:`└ Run /sandbox for install instructions`})]})}var Y,je=e((()=>{O(),T(),Y=A()}));async function Me(){let e=b(await g());if(e.length===0)return null;let t=e.sort((e,t)=>t.content.length-e.content.length).map(e=>`${e.path}: ${e.content.length.toLocaleString()} chars`);return{type:`agentsmd_files`,severity:`warning`,message:e.length===1?`Large AGENTS.md file detected (${e[0].content.length.toLocaleString()} chars > ${C.toLocaleString()})`:`${e.length} large AGENTS.md files detected (each > ${C.toLocaleString()} chars)`,details:t,currentValue:e.length,threshold:C}}async function Ne(e){if(!e)return null;let t=Ee(e);if(t<=15e3)return null;let n=e.activeAgents.filter(e=>e.source!==`built-in`).map(e=>{let t=`${e.agentType}: ${e.whenToUse}`;return{name:e.agentType,tokens:d(t)}}).sort((e,t)=>t.tokens-e.tokens),r=n.slice(0,5).map(e=>`${e.name}: ~${e.tokens.toLocaleString()} tokens`);return n.length>5&&r.push(`(${n.length-5} more custom agents)`),{type:`agent_descriptions`,severity:`warning`,message:`Large agent descriptions (~${t.toLocaleString()} tokens > ${K.toLocaleString()})`,details:r,currentValue:t,threshold:K}}async function X(e,t,n){let r=e.filter(e=>e.isMcp);if(r.length===0)return null;try{let{mcpToolTokens:r,mcpToolDetails:i}=await l(e,t,n,H());if(r<=Z)return null;let a=new Map;for(let e of i){let t=e.name.split(`__`)[1]||`unknown`,n=a.get(t)||{count:0,tokens:0};a.set(t,{count:n.count+1,tokens:n.tokens+e.tokens})}let o=Array.from(a.entries()).sort((e,t)=>t[1].tokens-e[1].tokens),s=o.slice(0,5).map(([e,t])=>`${e}: ${t.count} tools (~${t.tokens.toLocaleString()} tokens)`);return o.length>5&&s.push(`(${o.length-5} more servers)`),{type:`mcp_tools`,severity:`warning`,message:`Large MCP tools context (~${r.toLocaleString()} tokens > ${Z.toLocaleString()})`,details:s,currentValue:r,threshold:Z}}catch{let e=r.reduce((e,t)=>e+d(((t.name?.length||0)+t.description.length).toString()),0);return e<=Z?null:{type:`mcp_tools`,severity:`warning`,message:`Large MCP tools context (~${e.toLocaleString()} tokens estimated > ${Z.toLocaleString()})`,details:[`${r.length} MCP tools detected (token count estimated)`],currentValue:e,threshold:Z}}}async function Pe(e){let t=Te(await e(),{sandboxAutoAllowEnabled:y.isSandboxingEnabled()&&y.isAutoAllowBashIfSandboxedEnabled()});if(t.length===0)return null;let n=t.flatMap(e=>[`${P(e.rule.ruleValue)}: ${e.reason}`,` Fix: ${e.fix}`]);return{type:`unreachable_rules`,severity:`warning`,message:`${t.length} ${L(t.length,`unreachable permission rule`)} detected`,details:n,currentValue:t.length,threshold:0}}async function Fe(e,t,n){let[r,i,a,o]=await Promise.all([Me(),Ne(t),X(e,n,t),Pe(n)]);return{agentsMdWarning:r,agentWarning:i,mcpWarning:a,unreachableRulesWarning:o}}var Z,Ie=e((()=>{ae(),s(),oe(),V(),N(),we(),T(),De(),R(),Z=25e3}));function Le({onDone:e}){let t=p(e=>e.agentDefinitions),r=p(e=>e.mcp.tools),i=p(e=>e.toolPermissionContext),s=p(e=>e.plugins.errors);G();let l=(0,Q.useMemo)(()=>r||[],[r]),[u,d]=(0,Q.useState)(null),[m,h]=(0,Q.useState)(null),[g,_]=(0,Q.useState)(null),[v,y]=(0,Q.useState)(null),b=Se().filter(e=>e.mcpErrorMetadata===void 0),x=(0,Q.useMemo)(()=>[{name:`BASH_MAX_OUTPUT_LENGTH`,default:ne,upperLimit:te},{name:`TASK_MAX_OUTPUT_LENGTH`,default:c,upperLimit:ee},{name:`CLAUDE_CODE_MAX_OUTPUT_TOKENS`,...z(`claude-opus-4-7`)}].map(e=>{let t=process.env[e.name],n=o(e.name,t,e.default,e.upperLimit);return{name:e.name,...n}}).filter(e=>e.status!==`valid`),[]);(0,Q.useEffect)(()=>{fe().then(d),(async()=>{let e=q(n(),`agents`),r=q(M(),`.workmate`,`agents`),{activeAgents:a,allAgents:o,failedFiles:s}=t,[c,u]=await Promise.all([F(e),F(r)]),d={activeAgents:a.map(e=>({agentType:e.agentType,source:e.source})),userAgentsDir:e,projectAgentsDir:r,userDirExists:c,projectDirExists:u,failedFiles:s};h(d);let f=await Fe(l,{activeAgents:a,allAgents:o,failedFiles:s},async()=>i);if(_(f),he()){let e=q(ue(),`claude`,`locks`),t=me(e),n=_e(e);y({enabled:!0,locks:n,locksDir:e,staleLocksCleaned:t})}else y({enabled:!1,locks:[],locksDir:``,staleLocksCleaned:0})})()},[i,l,t]);let S=(0,Q.useCallback)(()=>{e(`Work Mate diagnostics dismissed`,{display:`system`})},[e]);return se({"confirm:yes":S,"confirm:no":S},{context:`Confirmation`}),u?(0,$.jsxs)(k,{children:[(0,$.jsxs)(E,{flexDirection:`column`,children:[(0,$.jsx)(D,{bold:!0,children:`Diagnostics`}),(0,$.jsxs)(D,{children:[`└ Currently running: `,u.installationType,` (`,u.version,`)`]}),u.packageManager&&(0,$.jsxs)(D,{children:[`└ Package manager: `,u.packageManager]}),(0,$.jsxs)(D,{children:[`└ Path: `,u.installationPath]}),(0,$.jsxs)(D,{children:[`└ Invoked: `,u.invokedBinary]}),(0,$.jsxs)(D,{children:[`└ Config install method: `,u.configInstallMethod]}),(0,$.jsxs)(D,{children:[`└ Search: `,u.ripgrepStatus.working?`OK`:`Not working`,` (`,u.ripgrepStatus.mode===`embedded`?`bundled`:u.ripgrepStatus.mode===`builtin`?`vendor`:u.ripgrepStatus.systemPath||`system`,`)`]}),u.ripgrepStatus.note&&(0,$.jsxs)(D,{color:`warning`,children:[`└ Note: `,u.ripgrepStatus.note]}),u.recommendation&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(D,{}),(0,$.jsxs)(D,{color:`warning`,children:[`Recommendation: `,u.recommendation.split(`
|
|
2
|
-
`)[0]]}),(0,$.jsx)(D,{dimColor:!0,children:u.recommendation.split(`
|
|
3
|
-
`)[1]})]}),u.multipleInstallations.length>1&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(D,{}),(0,$.jsx)(D,{color:`warning`,children:`Warning: Multiple installations found`}),u.multipleInstallations.map((e,t)=>(0,$.jsxs)(D,{children:[`└ `,e.type,` at `,e.path]},t))]}),u.warnings.length>0&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(D,{}),u.warnings.map((e,t)=>(0,$.jsxs)(E,{flexDirection:`column`,children:[(0,$.jsxs)(D,{color:`warning`,children:[`Warning: `,e.issue]}),(0,$.jsxs)(D,{children:[`Fix: `,e.fix]})]},t))]}),b.length>0&&(0,$.jsxs)(E,{flexDirection:`column`,marginTop:1,marginBottom:1,children:[(0,$.jsx)(D,{bold:!0,children:`Invalid Settings`}),(0,$.jsx)(W,{errors:b})]})]}),(0,$.jsx)(Ae,{}),(0,$.jsx)(ye,{}),(0,$.jsx)(Oe,{}),x.length>0&&(0,$.jsxs)(E,{flexDirection:`column`,children:[(0,$.jsx)(D,{bold:!0,children:`Environment Variables`}),x.map((e,t)=>(0,$.jsxs)(D,{children:[`└ `,e.name,`:`,` `,(0,$.jsx)(D,{color:e.status===`capped`?`warning`:`error`,children:e.message})]},t))]}),v?.enabled&&(0,$.jsxs)(E,{flexDirection:`column`,children:[(0,$.jsx)(D,{bold:!0,children:`Version Locks`}),v.staleLocksCleaned>0&&(0,$.jsxs)(D,{dimColor:!0,children:[`└ Cleaned `,v.staleLocksCleaned,` stale lock(s)`]}),v.locks.length===0?(0,$.jsx)(D,{dimColor:!0,children:`└ No active version locks`}):v.locks.map((e,t)=>(0,$.jsxs)(D,{children:[`└ `,e.version,`: PID `,e.pid,` `,e.isProcessRunning?(0,$.jsx)(D,{children:`(running)`}):(0,$.jsx)(D,{color:`warning`,children:`(stale)`})]},t))]}),m?.failedFiles&&m.failedFiles.length>0&&(0,$.jsxs)(E,{flexDirection:`column`,children:[(0,$.jsx)(D,{bold:!0,color:`error`,children:`Agent Parse Errors`}),(0,$.jsxs)(D,{color:`error`,children:[`└ Failed to parse `,m.failedFiles.length,` agent file(s):`]}),m.failedFiles.map((e,t)=>(0,$.jsxs)(D,{dimColor:!0,children:[` `,`└ `,e.path,`: `,e.error]},t))]}),s.length>0&&(0,$.jsxs)(E,{flexDirection:`column`,children:[(0,$.jsx)(D,{bold:!0,color:`error`,children:`Plugin Errors`}),(0,$.jsxs)(D,{color:`error`,children:[`└ `,s.length,` plugin error(s) detected:`]}),s.map((e,t)=>(0,$.jsxs)(D,{dimColor:!0,children:[` `,`└ `,e.source||`unknown`,`plugin`in e&&e.plugin?` [${e.plugin}]`:``,`: `,f(e)]},t))]}),g?.unreachableRulesWarning&&(0,$.jsxs)(E,{flexDirection:`column`,children:[(0,$.jsx)(D,{bold:!0,color:`warning`,children:`Unreachable Permission Rules`}),(0,$.jsxs)(D,{children:[`└`,` `,(0,$.jsxs)(D,{color:`warning`,children:[a.warning,` `,g.unreachableRulesWarning.message]})]}),g.unreachableRulesWarning.details.map((e,t)=>(0,$.jsxs)(D,{dimColor:!0,children:[` `,`└ `,e]},t))]}),g&&(g.agentsMdWarning||g.agentWarning||g.mcpWarning)&&(0,$.jsxs)(E,{flexDirection:`column`,children:[(0,$.jsx)(D,{bold:!0,children:`Context Usage Warnings`}),g.agentsMdWarning&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(D,{children:[`└`,` `,(0,$.jsxs)(D,{color:`warning`,children:[a.warning,` `,g.agentsMdWarning.message]})]}),(0,$.jsxs)(D,{children:[` `,`└ Files:`]}),g.agentsMdWarning.details.map((e,t)=>(0,$.jsxs)(D,{dimColor:!0,children:[` `,`└ `,e]},t))]}),g.agentWarning&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(D,{children:[`└`,` `,(0,$.jsxs)(D,{color:`warning`,children:[a.warning,` `,g.agentWarning.message]})]}),(0,$.jsxs)(D,{children:[` `,`└ Top contributors:`]}),g.agentWarning.details.map((e,t)=>(0,$.jsxs)(D,{dimColor:!0,children:[` `,`└ `,e]},t))]}),g.mcpWarning&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(D,{children:[`└`,` `,(0,$.jsxs)(D,{color:`warning`,children:[a.warning,` `,g.mcpWarning.message]})]}),(0,$.jsxs)(D,{children:[` `,`└ MCP servers:`]}),g.mcpWarning.details.map((e,t)=>(0,$.jsxs)(D,{dimColor:!0,children:[` `,`└ `,e]},t))]})]}),(0,$.jsx)(E,{children:(0,$.jsx)(xe,{})})]}):(0,$.jsx)(k,{children:(0,$.jsx)(D,{dimColor:!0,children:`Checking installation status…`})})}var Q,$,Re=e((()=>{i(),Q=t(ce(),1),ke(),ve(),B(),r(),j(),O(),be(),je(),U(),Ce(),le(),re(),u(),w(),Ie(),de(),m(),I(),pe(),h(),S(),ge(),$=A()}));export{Re as n,Le as t};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as e,n as t,o as n}from"./rolldown-runtime-DaDcL9Zw.js";import{AC as r,Aw as i,Ct as a,Nb as o,Pb as s,_i as c,_r as l,dt as u,hi as d,jC as f,kw as p,li as m,vt as h,wt as g,xt as _}from"./loadAgentsDir-B0Anodo0.js";import{I as v,P as y,ai as b,t as x,y as S}from"./src-DL3w8VPk.js";import{t as C}from"./jsx-runtime-Bb4Xn-E0.js";import{c as w,i as T}from"./debug-Bglx1aTu.js";import{i as E,t as D}from"./execFileNoThrow-BTachNBI.js";import{n as O,r as k}from"./analytics-DJobLaWP.js";import{n as A,t as j}from"./select-DIxfl_VN.js";import{r as M,t as N}from"./Spinner-ByQXTvAA.js";function P(){(l(),e(m)).saveWorktreeState(null)}function F({onDone:e,onCancel:t}){let[n,r]=(0,I.useState)(`loading`),[i,o]=(0,I.useState)([]),[c,l]=(0,I.useState)(0),[d,f]=(0,I.useState)(),m=h();if((0,I.useEffect)(()=>{async function e(){let e=[],t=await D(`git`,[`status`,`--porcelain`]);if(t.stdout&&(e=t.stdout.split(`
|
|
2
|
-
`).filter(e=>e.trim()!==``),o(e)),m){let{stdout:t}=await D(`git`,[`rev-list`,`--count`,`${m.originalHeadCommit}..HEAD`]),n=parseInt(t.trim(),10)||0;if(l(n),e.length===0&&n===0){r(`removing`),u().then(()=>{process.chdir(m.originalCwd),s(m.originalCwd),P(),p.cache.clear?.(),f(`Worktree removed (no changes)`)}).catch(e=>{w(`Failed to clean up worktree: ${e}`,{level:`error`}),f(`Worktree cleanup failed, exiting anyway`)}).then(()=>{r(`done`)});return}else r(`asking`)}}e()},[m]),(0,I.useEffect)(()=>{n===`done`&&e(d)},[n,e,d]),!m)return e(`No active worktree session found`,{display:`system`}),null;if(n===`loading`||n===`done`)return null;async function _(e){if(!m)return;let t=!!m.tmuxSessionName;if(e===`keep`||e===`keep-with-tmux`)r(`keeping`),k(`tengu_worktree_kept`,{commits:c,changed_files:i.length}),await a(),process.chdir(m.originalCwd),s(m.originalCwd),P(),p.cache.clear?.(),f(t?`Worktree kept. Your work is saved at ${m.worktreePath} on branch ${m.worktreeBranch}. Reattach to tmux session with: tmux attach -t ${m.tmuxSessionName}`:`Worktree kept. Your work is saved at ${m.worktreePath} on branch ${m.worktreeBranch}`),r(`done`);else if(e===`keep-kill-tmux`)r(`keeping`),k(`tengu_worktree_kept`,{commits:c,changed_files:i.length}),m.tmuxSessionName&&await g(m.tmuxSessionName),await a(),process.chdir(m.originalCwd),s(m.originalCwd),P(),p.cache.clear?.(),f(`Worktree kept at ${m.worktreePath} on branch ${m.worktreeBranch}. Tmux session terminated.`),r(`done`);else if(e===`remove`||e===`remove-with-tmux`){r(`removing`),k(`tengu_worktree_removed`,{commits:c,changed_files:i.length}),m.tmuxSessionName&&await g(m.tmuxSessionName);try{await u(),process.chdir(m.originalCwd),s(m.originalCwd),P(),p.cache.clear?.()}catch(e){w(`Failed to clean up worktree: ${e}`,{level:`error`}),f(`Worktree cleanup failed, exiting anyway`),r(`done`);return}let e=t?` Tmux session terminated.`:``;c>0&&i.length>0?f(`Worktree removed. ${c} ${c===1?`commit`:`commits`} and uncommitted changes were discarded.${e}`):c>0?f(`Worktree removed. ${c} ${c===1?`commit`:`commits`} on ${m.worktreeBranch} ${c===1?`was`:`were`} discarded.${e}`):i.length>0?f(`Worktree removed. Uncommitted changes were discarded.${e}`):f(`Worktree removed.${e}`),r(`done`)}}if(n===`keeping`)return(0,L.jsxs)(v,{flexDirection:`row`,marginY:1,children:[(0,L.jsx)(N,{}),(0,L.jsx)(y,{children:`Keeping worktree…`})]});if(n===`removing`)return(0,L.jsxs)(v,{flexDirection:`row`,marginY:1,children:[(0,L.jsx)(N,{}),(0,L.jsx)(y,{children:`Removing worktree…`})]});let b=m.worktreeBranch,x=i.length>0,C=c>0,T=``;T=x&&C?`You have ${i.length} uncommitted ${i.length===1?`file`:`files`} and ${c} ${c===1?`commit`:`commits`} on ${b}. All will be lost if you remove.`:x?`You have ${i.length} uncommitted ${i.length===1?`file`:`files`}. These will be lost if you remove the worktree.`:C?`You have ${c} ${c===1?`commit`:`commits`} on ${b}. The branch will be deleted if you remove the worktree.`:`You are working in a worktree. Keep it to continue working there, or remove it to clean up.`;function E(){if(t){t();return}_(`keep`)}let O=x||C?`All changes and commits will be lost.`:`Clean up the worktree directory.`,A=!!m.tmuxSessionName,M=A?[{label:`Keep worktree and tmux session`,value:`keep-with-tmux`,description:`Stays at ${m.worktreePath}. Reattach with: tmux attach -t ${m.tmuxSessionName}`},{label:`Keep worktree, kill tmux session`,value:`keep-kill-tmux`,description:`Keeps worktree at ${m.worktreePath}, terminates tmux session.`},{label:`Remove worktree and tmux session`,value:`remove-with-tmux`,description:O}]:[{label:`Keep worktree`,value:`keep`,description:`Stays at ${m.worktreePath}`},{label:`Remove worktree`,value:`remove`,description:O}];return(0,L.jsx)(S,{title:`Exiting worktree session`,subtitle:T,onCancel:E,children:(0,L.jsx)(j,{defaultFocusValue:A?`keep-with-tmux`:`keep`,options:M,onChange:_})})}var I,L,R=t((()=>{I=n(b(),1),O(),T(),x(),E(),i(),o(),_(),A(),M(),L=C()}));function z(){return f(H)??`Goodbye!`}function B({showWorktree:e,onDone:t,onCancel:n}){async function r(e){t(e??z()),await d(0,`prompt_input_exit`)}return e?(0,V.jsx)(F,{onDone:r,onCancel:n}):null}var V,H,U=t((()=>{r(),c(),R(),V=C(),H=[`Goodbye!`,`See ya!`,`Bye!`,`Catch you later!`]}));export{U as n,B as t};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DaDcL9Zw.js";import{D as t,I as n,Lt as r,P as i,T as a,ai as o,t as s,y as c}from"./src-DL3w8VPk.js";import{t as l}from"./jsx-runtime-Bb4Xn-E0.js";import{n as u,r as d}from"./analytics-DJobLaWP.js";import{t as f}from"./select-DIxfl_VN.js";import{i as p,r as m,s as h,t as g}from"./grove-O6qp7ITR.js";import{t as _}from"./CustomSelect-wmZ9jz0W.js";var v=e(o(),1);u(),s(),_();var y=l(),b=` _____________
|
|
2
|
-
| \\ \\
|
|
3
|
-
| NEW TERMS \\__\\
|
|
4
|
-
| |
|
|
5
|
-
| ---------- |
|
|
6
|
-
| ---------- |
|
|
7
|
-
| ---------- |
|
|
8
|
-
| ---------- |
|
|
9
|
-
| ---------- |
|
|
10
|
-
| |
|
|
11
|
-
|______________|`;function x(){return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsxs)(i,{children:[`An update to our Consumer Terms and Privacy Policy will take effect on `,(0,y.jsx)(i,{bold:!0,children:`October 8, 2025`}),`. You can accept the updated terms today.`]}),(0,y.jsxs)(n,{flexDirection:`column`,children:[(0,y.jsx)(i,{children:`What's changing?`}),(0,y.jsx)(n,{paddingLeft:1,children:(0,y.jsxs)(i,{children:[(0,y.jsx)(i,{children:`· `}),(0,y.jsx)(i,{bold:!0,children:`You can help improve Work Mate `}),(0,y.jsxs)(i,{children:[`— Allow the use of your chats and coding sessions to train and improve Claude AI models. Change anytime in your Privacy Settings (`,(0,y.jsx)(r,{url:`https://claude.ai/settings/data-privacy-controls`}),`).`]})]})}),(0,y.jsx)(n,{paddingLeft:1,children:(0,y.jsxs)(i,{children:[(0,y.jsx)(i,{children:`· `}),(0,y.jsx)(i,{bold:!0,children:`Updates to data retention `}),(0,y.jsx)(i,{children:`— To help us improve our AI models and safety protections, we're extending data retention to 5 years.`})]})})]}),(0,y.jsxs)(i,{children:[`Learn more (`,(0,y.jsx)(r,{url:`https://www.anthropic.com/news/updates-to-our-consumer-terms`}),`) or read the updated Consumer Terms (`,(0,y.jsx)(r,{url:`https://anthropic.com/legal/terms`}),`) and Privacy Policy (`,(0,y.jsx)(r,{url:`https://anthropic.com/legal/privacy`}),`)`]})]})}function S(){return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(i,{children:`We've updated our Consumer Terms and Privacy Policy.`}),(0,y.jsxs)(n,{flexDirection:`column`,gap:1,children:[(0,y.jsx)(i,{children:`What's changing?`}),(0,y.jsxs)(n,{flexDirection:`column`,children:[(0,y.jsx)(i,{bold:!0,children:`Help improve Work Mate`}),(0,y.jsx)(i,{children:`Allow the use of your chats and coding sessions to train and improve Claude AI models. You can change this anytime in Privacy Settings`}),(0,y.jsx)(r,{url:`https://claude.ai/settings/data-privacy-controls`})]}),(0,y.jsxs)(n,{flexDirection:`column`,children:[(0,y.jsx)(i,{bold:!0,children:`How this affects data retention`}),(0,y.jsx)(i,{children:`Turning ON the improve Work Mate setting extends data retention from 30 days to 5 years. Turning it OFF keeps the default 30-day data retention. Delete data anytime.`})]})]}),(0,y.jsxs)(i,{children:[`Learn more (`,(0,y.jsx)(r,{url:`https://www.anthropic.com/news/updates-to-our-consumer-terms`}),`) or read the updated Consumer Terms (`,(0,y.jsx)(r,{url:`https://anthropic.com/legal/terms`}),`) and Privacy Policy (`,(0,y.jsx)(r,{url:`https://anthropic.com/legal/privacy`}),`)`]})]})}function C({showIfAlreadyViewed:e,location:r,onDone:o}){let[s,l]=(0,v.useState)(null),[u,_]=(0,v.useState)(null);if((0,v.useEffect)(()=>{async function t(){let[t,n]=await Promise.all([p(),m()]),i=n.success?n.data:null;_(i);let a=g(t,n,e);if(l(a),!a){o(`skip_rendering`);return}d(`tengu_grove_policy_viewed`,{location:r,dismissable:i?.notice_is_grace_period})}t()},[e,r,o]),s===null||!s)return null;async function C(e){switch(e){case`accept_opt_in`:await h(!0),d(`tengu_grove_policy_submitted`,{state:!0,dismissable:u?.notice_is_grace_period});break;case`accept_opt_out`:await h(!1),d(`tengu_grove_policy_submitted`,{state:!1,dismissable:u?.notice_is_grace_period});break;case`defer`:d(`tengu_grove_policy_dismissed`,{state:!0});break;case`escape`:d(`tengu_grove_policy_escaped`,{});break}o(e)}let w=u?.domain_excluded?[{label:`Accept terms · Help improve Work Mate: OFF (for emails with your domain)`,value:`accept_opt_out`}]:[{label:`Accept terms · Help improve Work Mate: ON`,value:`accept_opt_in`},{label:`Accept terms · Help improve Work Mate: OFF`,value:`accept_opt_out`}];function T(){if(u?.notice_is_grace_period){C(`defer`);return}C(`escape`)}return(0,y.jsxs)(c,{title:`Updates to Consumer Terms and Policies`,color:`professionalBlue`,onCancel:T,inputGuide:e=>e.pending?(0,y.jsxs)(i,{children:[`Press `,e.keyName,` again to exit`]}):(0,y.jsxs)(a,{children:[(0,y.jsx)(t,{shortcut:`Enter`,action:`confirm`}),(0,y.jsx)(t,{shortcut:`Esc`,action:`cancel`})]}),children:[(0,y.jsxs)(n,{flexDirection:`row`,children:[(0,y.jsx)(n,{flexDirection:`column`,gap:1,flexGrow:1,children:u?.notice_is_grace_period?(0,y.jsx)(x,{}):(0,y.jsx)(S,{})}),(0,y.jsx)(n,{flexShrink:0,children:(0,y.jsx)(i,{color:`professionalBlue`,children:b})})]}),(0,y.jsxs)(n,{flexDirection:`column`,gap:1,children:[(0,y.jsxs)(n,{flexDirection:`column`,children:[(0,y.jsx)(i,{bold:!0,children:`Please select how you'd like to continue`}),(0,y.jsx)(i,{children:`Your choice takes effect immediately upon confirmation.`})]}),(0,y.jsx)(f,{options:[...w,...u?.notice_is_grace_period?[{label:`Not now`,value:`defer`}]:[]],onChange:e=>C(e),onCancel:T})]})]})}export{C as GroveDialog};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Ip as e,Pp as t}from"./loadAgentsDir-B0Anodo0.js";import{I as n,P as r,kn as i,t as a,y as o}from"./src-DL3w8VPk.js";import{t as s}from"./jsx-runtime-Bb4Xn-E0.js";import{C as c,T as l,x as u}from"./debug-Bglx1aTu.js";import{t as d}from"./KeybindingProviderSetup-D49HHTXD.js";import{t as f}from"./select-DIxfl_VN.js";import{t as p}from"./CustomSelect-wmZ9jz0W.js";import{t as m}from"./renderOptions-DV0dn0IW.js";a(),e(),u(),p();var h=s();function g({filePath:e,errorDescription:t,onExit:i,onReset:a}){return(0,h.jsxs)(o,{title:`Configuration Error`,color:`error`,onCancel:i,children:[(0,h.jsxs)(n,{flexDirection:`column`,gap:1,children:[(0,h.jsxs)(r,{children:[`The configuration file at `,(0,h.jsx)(r,{bold:!0,children:e}),` contains invalid JSON.`]}),(0,h.jsx)(r,{children:t})]}),(0,h.jsxs)(n,{flexDirection:`column`,children:[(0,h.jsx)(r,{bold:!0,children:`Choose an option:`}),(0,h.jsx)(f,{options:[{label:`Exit and fix manually`,value:`exit`},{label:`Reset with default configuration`,value:`reset`}],onChange:e=>{e===`exit`?i():a()},onCancel:i})]})]})}var _=`dark`;async function v({error:e}){let n={...m(!1),theme:_};await new Promise(async r=>{let{unmount:a}=await i((0,h.jsx)(t,{children:(0,h.jsx)(d,{children:(0,h.jsx)(g,{filePath:e.filePath,errorDescription:e.message,onExit:()=>{a(),r(),process.exit(1)},onReset:()=>{l(e.filePath,c(e.defaultConfig,null,2),{flush:!1,encoding:`utf8`}),a(),r(),process.exit(0)}})})}),n)})}export{v as showInvalidConfigDialog};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DaDcL9Zw.js";import{lw as t,ow as n,sw as r,uw as i}from"./loadAgentsDir-B0Anodo0.js";import{Vt as a,ai as o,t as s}from"./src-DL3w8VPk.js";import{t as c}from"./jsx-runtime-Bb4Xn-E0.js";import{c as l,i as u}from"./debug-Bglx1aTu.js";import{Hn as d,Vn as f}from"./settings-B2jvL8Dp.js";import{l as p,o as m}from"./stringUtils-C718f5ey.js";import{n as h,t as g}from"./notifications-Bc6k-Ozy.js";var _=e(o(),1);g(),d(),u(),m(),s(),n();var v=c();function y({children:e}){let{addNotification:n,removeNotification:o}=h();return(0,v.jsx)(a,{loadBindings:t,subscribeToChanges:i,initWatcher:r,onWarnings:(0,_.useCallback)((e,t)=>{let r=`keybinding-config-warning`;if(e.length===0){o(r);return}let i=f(e,e=>e.severity===`error`),a=f(e,e=>e.severity===`warning`),s;s=i>0&&a>0?`Found ${i} keybinding ${p(i,`error`)} and ${a} ${p(a,`warning`)}`:i>0?`Found ${i} keybinding ${p(i,`error`)}`:`Found ${a} keybinding ${p(a,`warning`)}`,s+=` · /doctor for details`,n({key:r,text:s,color:i>0?`error`:`warning`,priority:i>0?`immediate`:`high`,timeoutMs:6e4})},[n,o]),onDebugLog:l,children:e})}export{y as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,o as t}from"./rolldown-runtime-DaDcL9Zw.js";import{$_ as n,By as r,Dv as i,Ev as a,Fy as o,Ip as s,Iy as c,J_ as l,K_ as u,Lp as d,Mv as f,Ov as p,Q_ as m,Qv as ee,Rp as te,X_ as h,Y_ as g,Zv as ne,gv as _,lv as v,rv as y,tv as b,zp as re,zy as x}from"./loadAgentsDir-B0Anodo0.js";import{ai as S}from"./src-DL3w8VPk.js";import{t as C}from"./jsx-runtime-Bb4Xn-E0.js";import{It as w,st as ie}from"./state-B4jiUise.js";import{I as T,M as E,c as D,i as O}from"./debug-Bglx1aTu.js";import{rt as k,tt as A}from"./settings-B2jvL8Dp.js";import{c as j,l as M,o as ae}from"./log-D2TIwHBV.js";import{n as N,r as P}from"./analytics-DJobLaWP.js";import{o as F,t as I}from"./localSearch-BxLYi6w_.js";import{i as L,n as R,r as z,t as B}from"./reject-DtcCfuZV.js";import{n as V,t as H}from"./notifications-Bc6k-Ozy.js";function U(e){let t=`plugin`in e?e.plugin:`no-plugin`;return`${e.type}:${e.source}:${t}`}function W(e,t){t.length!==0&&e(e=>{let n=new Set(e.plugins.errors.map(e=>U(e))),r=t.filter(e=>!n.has(U(e)));return r.length===0?e:{...e,plugins:{...e.plugins,errors:[...e.plugins.errors,...r]}}})}function G(e,t=!1){let n=te(),r=d(e=>e.mcp.pluginReconnectKey),i=re(),s=(0,q.useRef)(new Map),{addNotification:ne}=V(),_=(0,q.useRef)([]),S=(0,q.useRef)(null),C=(0,q.useCallback)(()=>{S.current=null;let e=_.current;e.length!==0&&(_.current=[],i(t=>{let n=t.mcp;for(let t of e){let{tools:e,commands:r,resources:i,...a}=t,o=a.type===`disabled`||a.type===`failed`?e??[]:e,s=a.type===`disabled`||a.type===`failed`?r??[]:r,c=a.type===`disabled`||a.type===`failed`?i??[]:i,l=A(a.name),u=n.clients.findIndex(e=>e.name===a.name)===-1?[...n.clients,a]:n.clients.map(e=>e.name===a.name?a:e),d=o===void 0?n.tools:[...R(n.tools,e=>e.name?.startsWith(l)),...o],f=s===void 0?n.commands:[...R(n.commands,e=>y(e,a.name)),...s],p=c===void 0?n.resources:{...n.resources,...c.length>0?{[a.name]:c}:L(n.resources,a.name)};n={...n,clients:u,tools:d,commands:f,resources:p}}return{...t,mcp:n}}))},[i]),w=(0,q.useCallback)(e=>{_.current.push(e),S.current===null&&(S.current=setTimeout(C,16))},[C]),T=(0,q.useCallback)(({client:e,tools:t,commands:n,resources:r})=>{switch(w({...e,tools:t,commands:n,resources:r}),e.type){case`connected`:ee(e.client,e.name,i),e.client.onclose=()=>{let t=e.config.type??`stdio`;if(u(e.name,e.config).catch(()=>{D(`Failed to invalidate the server cache: ${e.name}`)}),p(e.name)){j(e.name,`Server is disabled, skipping automatic reconnection`);return}if(t!==`stdio`&&t!==`sdk`){let n=K(t);j(e.name,`${n} transport closed/disconnected, attempting automatic reconnection`);let r=s.current.get(e.name);r&&(clearTimeout(r),s.current.delete(e.name)),(async()=>{for(let t=1;t<=J;t++){if(p(e.name)){j(e.name,`Server disabled during reconnection, stopping retry`),s.current.delete(e.name);return}w({...e,type:`pending`,reconnectAttempt:t,maxReconnectAttempts:J});let r=Date.now();try{let i=await b(e.name,e.config),a=Date.now()-r;if(i.client.type===`connected`){j(e.name,`${n} reconnection successful after ${a}ms (attempt ${t})`),s.current.delete(e.name),T(i);return}if(j(e.name,`${n} reconnection attempt ${t} completed with status: ${i.client.type}`),t===J){j(e.name,`Max reconnection attempts (${J}) reached, giving up`),s.current.delete(e.name),T(i);return}}catch(i){let a=Date.now()-r;if(M(e.name,`${n} reconnection attempt ${t} failed after ${a}ms: ${i}`),t===J){j(e.name,`Max reconnection attempts (${J}) reached, giving up`),s.current.delete(e.name),w({...e,type:`failed`});return}}let i=Math.min(Y*2**(t-1),X);j(e.name,`Scheduling reconnection attempt ${t+1} in ${i}ms`),await new Promise(t=>{let n=setTimeout(t,i);s.current.set(e.name,n)})}})()}else w({...e,type:`failed`})},e.capabilities?.tools?.listChanged&&e.client.setNotificationHandler(x,async()=>{j(e.name,`Received tools/list_changed notification, refreshing tools`);try{let t=h.cache.get(e.name);h.cache.delete(e.name);let n=await h(e),r=n.length;t?t.then(e=>{P(`tengu_mcp_list_changed`,{type:`tools`,previousCount:e.length,newCount:r})},()=>{P(`tengu_mcp_list_changed`,{type:`tools`,newCount:r})}):P(`tengu_mcp_list_changed`,{type:`tools`,newCount:r}),w({...e,tools:n})}catch(t){M(e.name,`Failed to refresh tools after list_changed notification: ${E(t)}`)}}),e.capabilities?.prompts?.listChanged&&e.client.setNotificationHandler(o,async()=>{j(e.name,`Received prompts/list_changed notification, refreshing prompts`),P(`tengu_mcp_list_changed`,{type:`prompts`});try{l.cache.delete(e.name);let[t,n]=await Promise.all([l(e),Promise.resolve([])]);w({...e,commands:[...t,...n]}),I()}catch(t){M(e.name,`Failed to refresh prompts after list_changed notification: ${E(t)}`)}}),e.capabilities?.resources?.listChanged&&e.client.setNotificationHandler(c,async()=>{j(e.name,`Received resources/list_changed notification, refreshing resources`),P(`tengu_mcp_list_changed`,{type:`resources`});try{g.cache.delete(e.name);{let t=await g(e);w({...e,resources:t})}}catch(t){M(e.name,`Failed to refresh resources after list_changed notification: ${E(t)}`)}});break;case`needs-auth`:case`failed`:case`pending`:case`disabled`:break}},[w]),O=ie();return(0,q.useEffect)(()=>{async function n(){let{servers:n,errors:r}=t?{servers:{},errors:[]}:await a(e),o={...n,...e};W(i,r),i(e=>{let{stale:t,...n}=v(e.mcp,o);for(let e of t){let t=s.current.get(e.name);t&&(clearTimeout(t),s.current.delete(e.name)),e.type===`connected`&&(e.client.onclose=void 0,u(e.name,e.config).catch(()=>{}))}let r=new Set(n.clients.map(e=>e.name)),i=Object.entries(o).filter(([e])=>!r.has(e)).map(([e,t])=>({name:e,type:p(e)?`disabled`:`pending`,config:t}));return i.length===0&&t.length===0?e:{...e,mcp:{...e.mcp,...n,clients:[...n.clients,...i]}}})}n().catch(e=>{M(`useManageMCPConnections`,`Failed to initialize servers as pending: ${E(e)}`)})},[t,e,i,O,r]),(0,q.useEffect)(()=>{let n=!1;async function r(){let r=Promise.resolve({}),{servers:o,errors:s}=t?{servers:{},errors:[]}:await a(e,r);if(n)return;W(i,s);let c={...o,...e},l=Object.fromEntries(Object.entries(c).filter(([e])=>!p(e)));m(T,l).catch(e=>{M(`useManageMcpConnections`,`Failed to get MCP resources: ${E(e)}`)});let u={},d={...c,...u},f={enterprise:0,global:0,project:0,user:0,plugin:0,claudeai:0};for(let[e,t]of Object.entries(d))t.scope===`enterprise`?f.enterprise++:t.scope===`user`?f.global++:t.scope===`project`?f.project++:t.scope===`local`?f.user++:t.scope===`dynamic`?f.plugin++:t.scope===`claudeai`&&f.claudeai++;P(`tengu_mcp_servers`,{...f})}return r(),()=>{n=!0}},[t,e,T,i,O,r]),(0,q.useEffect)(()=>{let e=s.current;return()=>{for(let t of e.values())clearTimeout(t);e.clear(),S.current!==null&&(clearTimeout(S.current),S.current=null,C())}},[C]),{reconnectMcpServer:(0,q.useCallback)(async e=>{let t=n.getState().mcp.clients.find(t=>t.name===e);if(!t)throw Error(`MCP server ${e} not found`);let r=s.current.get(e);r&&(clearTimeout(r),s.current.delete(e));let i=await b(e,t.config);return T(i),i},[n,T]),toggleMcpServer:(0,q.useCallback)(async e=>{let t=n.getState().mcp.clients.find(t=>t.name===e);if(!t)throw Error(`MCP server ${e} not found`);if(t.type!==`disabled`){let n=s.current.get(e);n&&(clearTimeout(n),s.current.delete(e)),f(e,!1),t.type===`connected`&&await u(e,t.config),w({name:e,type:`disabled`,config:t.config})}else{f(e,!0),w({name:e,type:`pending`,config:t.config});let n=await b(e,t.config);T(n)}},[n,w,T])}}function K(e){switch(e){case`http`:return`HTTP`;case`ws`:case`ws-ide`:return`WebSocket`;default:return`SSE`}}var q,J,Y,X,oe=e((()=>{q=t(S(),1),w(),n(),F(),r(),z(),B(),N(),i(),O(),H(),s(),T(),ae(),ne(),k(),_(),J=5,Y=1e3,X=3e4}));function se(){let e=(0,Z.useContext)($);if(!e)throw Error(`useMcpReconnect must be used within MCPConnectionManager`);return e.reconnectMcpServer}function ce(){let e=(0,Z.useContext)($);if(!e)throw Error(`useMcpToggleEnabled must be used within MCPConnectionManager`);return e.toggleMcpServer}function le({children:e,dynamicMcpConfig:t,isStrictMcpConfig:n}){let{reconnectMcpServer:r,toggleMcpServer:i}=G(t,n),a=(0,Z.useMemo)(()=>({reconnectMcpServer:r,toggleMcpServer:i}),[r,i]);return(0,Q.jsx)($.Provider,{value:a,children:e})}var Z,Q,$,ue=e((()=>{Z=t(S(),1),oe(),Q=C(),$=(0,Z.createContext)(null)}));export{ce as i,ue as n,se as r,le as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,o as t}from"./rolldown-runtime-DaDcL9Zw.js";import{n,t as r}from"./figures-5ThXQEtq.js";import{$_ as i,Dv as a,Ip as o,K_ as s,Lp as c,cv as l,fv as ee,gv as u,iv as te,md as d,pd as f,pv as p,sv as ne,uv as m,wv as h,zp as re}from"./loadAgentsDir-B0Anodo0.js";import{D as g,H as _,I as v,P as y,T as b,ai as x,j as S,t as C,y as w}from"./src-DL3w8VPk.js";import{t as T}from"./jsx-runtime-Bb4Xn-E0.js";import{I as E,M as ie}from"./debug-Bglx1aTu.js";import{$ as D,et as O,rt as k}from"./settings-B2jvL8Dp.js";import{l as A,n as j,o as M}from"./stringUtils-C718f5ey.js";import{n as ae,r as oe}from"./analytics-DJobLaWP.js";import{i as N,n as P,r as F}from"./MCPConnectionManager-Cie77ZAK.js";import{n as I,t as L}from"./useExitOnCtrlCDWithKeybindings-BKwzUpgb.js";import{t as R}from"./select-DIxfl_VN.js";import{r as z,t as B}from"./Spinner-ByQXTvAA.js";import{t as V}from"./CustomSelect-wmZ9jz0W.js";function H({serverToolsCount:e,serverPromptsCount:t,serverResourcesCount:n}){let r=[];return e>0&&r.push(`tools`),n>0&&r.push(`resources`),t>0&&r.push(`prompts`),(0,U.jsxs)(v,{children:[(0,U.jsx)(y,{bold:!0,children:`Capabilities: `}),(0,U.jsx)(y,{color:`text`,children:r.length>0?(0,U.jsx)(b,{children:r}):`none`})]})}var U,W=e((()=>{C(),U=T()}));function G(e,t){switch(e.client.type){case`connected`:return{message:`Reconnected to ${t}.`,success:!0};case`needs-auth`:return{message:`${t} requires authentication. Use the 'Authenticate' option.`,success:!1};case`failed`:return{message:`Failed to reconnect to ${t}.`,success:!1};default:return{message:`Unknown result when reconnecting to ${t}.`,success:!1}}}function K(e,t){return`Error reconnecting to ${t}: ${e instanceof Error?e.message:String(e)}`}var se=e((()=>{}));function ce({server:e,serverToolsCount:t,onViewTools:n,onCancel:i,onComplete:a,borderless:o=!1}){let[u]=_(),d=I(),p=c(e=>e.mcp),h=re(),[x,C]=(0,q.useState)(!1),[w,T]=(0,q.useState)(null),E=F(),D=N(),O=j(String(e.name)),k=ee(p.commands,e.name).length,A=q.useCallback(async()=>{let t=e.client.type!==`disabled`;try{await D(e.name),e.config.type===`claudeai-proxy`&&oe(`tengu_claudeai_mcp_toggle`,{new_state:t?`disabled`:`enabled`}),i()}catch(n){a?.(`Failed to ${t?`disable`:`enable`} MCP server '${e.name}': ${ie(n)}`)}},[e.client.type,e.config.type,e.name,D,i,a]);if(x)return(0,J.jsxs)(v,{flexDirection:`column`,gap:1,padding:1,children:[(0,J.jsxs)(y,{color:`text`,children:[`Connecting to `,(0,J.jsx)(y,{bold:!0,children:e.name}),`…`]}),(0,J.jsxs)(v,{children:[(0,J.jsx)(B,{}),(0,J.jsx)(y,{children:` Establishing connection to MCP server`})]}),(0,J.jsx)(y,{dimColor:!0,children:`This may take a few moments.`})]});let M=[];return e.client.type===`disabled`&&M.push({label:`Enable`,value:`toggle-enabled`}),e.client.type===`connected`&&t>0&&M.push({label:`View tools`,value:`tools`}),e.client.type!==`disabled`&&(e.client.type!==`needs-auth`&&M.push({label:`Reconnect`,value:`reconnectMcpServer`}),M.push({label:`Disable`,value:`toggle-enabled`})),M.length===0&&M.push({label:`Back`,value:`back`}),(0,J.jsxs)(v,{flexDirection:`column`,children:[(0,J.jsxs)(v,{flexDirection:`column`,paddingX:1,borderStyle:o?void 0:`round`,children:[(0,J.jsx)(v,{marginBottom:1,children:(0,J.jsxs)(y,{bold:!0,children:[O,` MCP Server`]})}),(0,J.jsxs)(v,{flexDirection:`column`,gap:0,children:[(0,J.jsxs)(v,{children:[(0,J.jsx)(y,{bold:!0,children:`Status: `}),e.client.type===`disabled`?(0,J.jsxs)(y,{children:[S(`inactive`,u)(r.radioOff),` disabled`]}):e.client.type===`connected`?(0,J.jsxs)(y,{children:[S(`success`,u)(r.tick),` connected`]}):e.client.type===`pending`?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(y,{dimColor:!0,children:r.radioOff}),(0,J.jsx)(y,{children:` connecting…`})]}):e.client.type===`needs-auth`?(0,J.jsxs)(y,{children:[S(`warning`,u)(r.triangleUpOutline),` needs authentication`]}):(0,J.jsxs)(y,{children:[S(`error`,u)(r.cross),` failed`]})]}),(0,J.jsxs)(v,{children:[(0,J.jsx)(y,{bold:!0,children:`URL: `}),(0,J.jsx)(y,{dimColor:!0,children:e.config.url})]}),(0,J.jsxs)(v,{children:[(0,J.jsx)(y,{bold:!0,children:`Config location: `}),(0,J.jsx)(y,{dimColor:!0,children:te(e.scope)})]}),e.client.type===`connected`&&(0,J.jsx)(H,{serverToolsCount:t,serverPromptsCount:k,serverResourcesCount:p.resources[e.name]?.length||0}),e.client.type===`connected`&&t>0&&(0,J.jsxs)(v,{children:[(0,J.jsx)(y,{bold:!0,children:`Tools: `}),(0,J.jsxs)(y,{dimColor:!0,children:[t,` tools`]})]})]}),w&&(0,J.jsx)(v,{marginTop:1,children:(0,J.jsxs)(y,{color:`error`,children:[`Error: `,w]})}),M.length>0&&(0,J.jsx)(v,{marginTop:1,children:(0,J.jsx)(R,{options:M,onChange:async t=>{switch(t){case`tools`:n();break;case`reconnectMcpServer`:C(!0),T(null);try{await s(e.name,{...e.config,scope:e.scope}),h(t=>{let n=t.mcp.clients.map(t=>t.name===e.name?{...t,type:`pending`}:t),r=m(t.mcp.tools,e.name),i=ne(t.mcp.commands,e.name),a=l(t.mcp.resources,e.name);return{...t,mcp:{...t.mcp,clients:n,tools:r,commands:i,resources:a}}});let{message:t}=G(await E(e.name),e.name);a?.(t)}catch(t){a?.(K(t,e.name))}finally{C(!1)}break;case`toggle-enabled`:await A();break;case`back`:i();break}},onCancel:i})})]}),(0,J.jsx)(v,{marginTop:1,children:(0,J.jsx)(y,{dimColor:!0,italic:!0,children:d.pending?(0,J.jsxs)(J.Fragment,{children:[`Press `,d.keyName,` again to exit`]}):(0,J.jsxs)(b,{children:[(0,J.jsx)(g,{shortcut:`↑↓`,action:`navigate`}),(0,J.jsx)(g,{shortcut:`Enter`,action:`select`}),(0,J.jsx)(f,{action:`confirm:no`,context:`Confirmation`,fallback:`Esc`,description:`back`})]})})})]})}var q,J,le=e((()=>{n(),q=t(x(),1),ae(),L(),C(),i(),P(),u(),o(),E(),M(),d(),V(),z(),W(),se(),J=T()}));function ue({server:e,serverToolsCount:t,onViewTools:n,onCancel:i,onComplete:a,borderless:o=!1}){let[s]=_(),l=I(),u=c(e=>e.mcp),d=F(),p=N(),[ne,m]=(0,Y.useState)(!1),re=Y.useCallback(async()=>{let t=e.client.type!==`disabled`;try{await p(e.name),i()}catch(n){a(`Failed to ${t?`disable`:`enable`} MCP server '${e.name}': ${ie(n)}`)}},[e.client.type,e.name,p,i,a]),x=j(String(e.name)),C=ee(u.commands,e.name).length,w=[];return e.client.type!==`disabled`&&t>0&&w.push({label:`View tools`,value:`tools`}),e.client.type!==`disabled`&&w.push({label:`Reconnect`,value:`reconnectMcpServer`}),w.push({label:e.client.type===`disabled`?`Enable`:`Disable`,value:`toggle-enabled`}),w.length===0&&w.push({label:`Back`,value:`back`}),ne?(0,X.jsxs)(v,{flexDirection:`column`,gap:1,padding:1,children:[(0,X.jsxs)(y,{color:`text`,children:[`Reconnecting to `,(0,X.jsx)(y,{bold:!0,children:e.name})]}),(0,X.jsxs)(v,{children:[(0,X.jsx)(B,{}),(0,X.jsx)(y,{children:` Restarting MCP server process`})]}),(0,X.jsx)(y,{dimColor:!0,children:`This may take a few moments.`})]}):(0,X.jsxs)(v,{flexDirection:`column`,children:[(0,X.jsxs)(v,{flexDirection:`column`,paddingX:1,borderStyle:o?void 0:`round`,children:[(0,X.jsx)(v,{marginBottom:1,children:(0,X.jsxs)(y,{bold:!0,children:[x,` MCP Server`]})}),(0,X.jsxs)(v,{flexDirection:`column`,gap:0,children:[(0,X.jsxs)(v,{children:[(0,X.jsx)(y,{bold:!0,children:`Status: `}),e.client.type===`disabled`?(0,X.jsxs)(y,{children:[S(`inactive`,s)(r.radioOff),` disabled`]}):e.client.type===`connected`?(0,X.jsxs)(y,{children:[S(`success`,s)(r.tick),` connected`]}):e.client.type===`pending`?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(y,{dimColor:!0,children:r.radioOff}),(0,X.jsx)(y,{children:` connecting…`})]}):(0,X.jsxs)(y,{children:[S(`error`,s)(r.cross),` failed`]})]}),(0,X.jsxs)(v,{children:[(0,X.jsx)(y,{bold:!0,children:`Command: `}),(0,X.jsx)(y,{dimColor:!0,children:e.config.command})]}),e.config.args&&e.config.args.length>0&&(0,X.jsxs)(v,{children:[(0,X.jsx)(y,{bold:!0,children:`Args: `}),(0,X.jsx)(y,{dimColor:!0,children:e.config.args.join(` `)})]}),(0,X.jsxs)(v,{children:[(0,X.jsx)(y,{bold:!0,children:`Config location: `}),(0,X.jsx)(y,{dimColor:!0,children:te(h(e.name)?.scope??`dynamic`)})]}),e.client.type===`connected`&&(0,X.jsx)(H,{serverToolsCount:t,serverPromptsCount:C,serverResourcesCount:u.resources[e.name]?.length||0}),e.client.type===`connected`&&t>0&&(0,X.jsxs)(v,{children:[(0,X.jsx)(y,{bold:!0,children:`Tools: `}),(0,X.jsxs)(y,{dimColor:!0,children:[t,` tools`]})]})]}),w.length>0&&(0,X.jsx)(v,{marginTop:1,children:(0,X.jsx)(R,{options:w,onChange:async t=>{if(t===`tools`)n();else if(t===`reconnectMcpServer`){m(!0);try{let{message:t}=G(await d(e.name),e.name);a?.(t)}catch(t){a?.(K(t,e.name))}finally{m(!1)}}else t===`toggle-enabled`?await re():t===`back`&&i()},onCancel:i})})]}),(0,X.jsx)(v,{marginTop:1,children:(0,X.jsx)(y,{dimColor:!0,italic:!0,children:l.pending?(0,X.jsxs)(X.Fragment,{children:[`Press `,l.keyName,` again to exit`]}):(0,X.jsxs)(b,{children:[(0,X.jsx)(g,{shortcut:`↑↓`,action:`navigate`}),(0,X.jsx)(g,{shortcut:`Enter`,action:`select`}),(0,X.jsx)(f,{action:`confirm:no`,context:`Confirmation`,fallback:`Esc`,description:`back`})]})})})]})}var Y,X,de=e((()=>{n(),Y=t(x(),1),L(),C(),a(),P(),u(),o(),E(),M(),d(),V(),z(),W(),se(),X=T()}));function fe({tool:e,server:t,onBack:n}){let[r,i]=Z.useState(``),a=O(e.name,t.name),o=D(e.userFacingName?e.userFacingName({}):a),s=e.isReadOnly?.({})??!1,c=e.isDestructive?.({})??!1,l=e.isOpenWorld?.({})??!1;return Z.useEffect(()=>{async function t(){try{let t=await e.description({},{isNonInteractiveSession:!1,toolPermissionContext:{mode:`default`,additionalWorkingDirectories:new Map,alwaysAllowRules:{},alwaysDenyRules:{},alwaysAskRules:{},isBypassPermissionsModeAvailable:!1},tools:[]});i(t)}catch{i(`Failed to load description`)}}t()},[e]),(0,Q.jsx)(w,{title:(0,Q.jsxs)(Q.Fragment,{children:[o,s&&(0,Q.jsx)(y,{color:`success`,children:` [read-only]`}),c&&(0,Q.jsx)(y,{color:`error`,children:` [destructive]`}),l&&(0,Q.jsx)(y,{dimColor:!0,children:` [open-world]`})]}),subtitle:t.name,onCancel:n,inputGuide:e=>e.pending?(0,Q.jsxs)(y,{children:[`Press `,e.keyName,` again to exit`]}):(0,Q.jsx)(f,{action:`confirm:no`,context:`Confirmation`,fallback:`Esc`,description:`go back`}),children:(0,Q.jsxs)(v,{flexDirection:`column`,children:[(0,Q.jsxs)(v,{children:[(0,Q.jsx)(y,{bold:!0,children:`Tool name: `}),(0,Q.jsx)(y,{dimColor:!0,children:a})]}),(0,Q.jsxs)(v,{children:[(0,Q.jsx)(y,{bold:!0,children:`Full name: `}),(0,Q.jsx)(y,{dimColor:!0,children:e.name})]}),r&&(0,Q.jsxs)(v,{flexDirection:`column`,marginTop:1,children:[(0,Q.jsx)(y,{bold:!0,children:`Description:`}),(0,Q.jsx)(y,{wrap:`wrap`,children:r})]}),e.inputJSONSchema?.properties&&Object.keys(e.inputJSONSchema.properties).length>0&&(0,Q.jsxs)(v,{flexDirection:`column`,marginTop:1,children:[(0,Q.jsx)(y,{bold:!0,children:`Parameters:`}),(0,Q.jsx)(v,{marginLeft:2,flexDirection:`column`,children:Object.entries(e.inputJSONSchema.properties).map(([t,n])=>{let r=(e.inputJSONSchema?.required)?.includes(t);return(0,Q.jsxs)(y,{children:[`• `,t,r&&(0,Q.jsx)(y,{dimColor:!0,children:` (required)`}),`:`,` `,(0,Q.jsx)(y,{dimColor:!0,children:typeof n==`object`&&n&&`type`in n?String(n.type):`unknown`}),typeof n==`object`&&n&&`description`in n&&(0,Q.jsxs)(y,{dimColor:!0,children:[` - `,String(n.description)]})]},t)})})]})]})})}var Z,Q,pe=e((()=>{Z=t(x(),1),C(),k(),d(),Q=T()}));function me({server:e,onSelectTool:t,onBack:n}){let r=c(e=>e.mcp.tools),i=he.useMemo(()=>e.client.type===`connected`?p(r,e.name):[],[e,r]),a=i.map((t,n)=>{let r=O(t.name,e.name),i=D(t.userFacingName?t.userFacingName({}):r),a=t.isReadOnly?.({})??!1,o=t.isDestructive?.({})??!1,s=t.isOpenWorld?.({})??!1,c=[];return a&&c.push(`read-only`),o&&c.push(`destructive`),s&&c.push(`open-world`),{label:i,value:n.toString(),description:c.length>0?c.join(`, `):void 0,descriptionColor:o?`error`:a?`success`:void 0}});return(0,$.jsx)(w,{title:`Tools for ${e.name}`,subtitle:`${i.length} ${A(i.length,`tool`)}`,onCancel:n,inputGuide:e=>e.pending?(0,$.jsxs)(y,{children:[`Press `,e.keyName,` again to exit`]}):(0,$.jsxs)(b,{children:[(0,$.jsx)(g,{shortcut:`↑↓`,action:`navigate`}),(0,$.jsx)(g,{shortcut:`Enter`,action:`select`}),(0,$.jsx)(f,{action:`confirm:no`,context:`Confirmation`,fallback:`Esc`,description:`back`})]}),children:i.length===0?(0,$.jsx)(y,{dimColor:!0,children:`No tools available`}):(0,$.jsx)(R,{options:a,onChange:e=>{let n=parseInt(e,10),r=i[n];r&&t(r,n)},onCancel:n})})}var he,$,ge=e((()=>{he=t(x(),1),C(),k(),u(),o(),M(),d(),V(),$=T()}));export{ue as a,le as c,pe as i,ge as n,de as o,fe as r,ce as s,me as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,o as t}from"./rolldown-runtime-DaDcL9Zw.js";import{Dv as n,Tv as r,gv as i,hv as a,iv as o}from"./loadAgentsDir-B0Anodo0.js";import{I as s,Lt as c,P as l,ai as u,t as d}from"./src-DL3w8VPk.js";import{t as f}from"./jsx-runtime-Bb4Xn-E0.js";function p({scope:e,parsingErrors:t,warnings:n}){let r=t.length>0,i=n.length>0;return!r&&!i?null:(0,_.jsxs)(s,{flexDirection:`column`,marginTop:1,children:[(0,_.jsxs)(s,{children:[(r||i)&&(0,_.jsxs)(l,{color:r?`error`:`warning`,children:[`[`,r?`Failed to parse`:`Contains warnings`,`] `]}),(0,_.jsx)(l,{children:a(e)})]}),(0,_.jsxs)(s,{children:[(0,_.jsx)(l,{dimColor:!0,children:`Location: `}),(0,_.jsx)(l,{dimColor:!0,children:o(e)})]}),(0,_.jsxs)(s,{marginLeft:1,flexDirection:`column`,children:[t.map((e,t)=>{let n=e.mcpErrorMetadata?.serverName;return(0,_.jsx)(s,{children:(0,_.jsxs)(l,{children:[(0,_.jsx)(l,{dimColor:!0,children:`└ `}),(0,_.jsx)(l,{color:`error`,children:`[Error]`}),(0,_.jsxs)(l,{dimColor:!0,children:[` `,n&&`[${n}] `,e.path&&e.path!==``?`${e.path}: `:``,e.message]})]})},`error-${t}`)}),n.map((e,t)=>{let n=e.mcpErrorMetadata?.serverName;return(0,_.jsx)(s,{children:(0,_.jsxs)(l,{children:[(0,_.jsx)(l,{dimColor:!0,children:`└ `}),(0,_.jsx)(l,{color:`warning`,children:`[Warning]`}),(0,_.jsxs)(l,{dimColor:!0,children:[` `,n&&`[${n}] `,e.path&&e.path!==``?`${e.path}: `:``,e.message]})]})},`warning-${t}`)})]})]})}function m(){let e=(0,g.useMemo)(()=>[{scope:`user`,config:r(`user`)},{scope:`project`,config:r(`project`)},{scope:`local`,config:r(`local`)},{scope:`enterprise`,config:r(`enterprise`)}],[]),t=e.some(({config:e})=>h(e.errors,`fatal`).length>0),n=e.some(({config:e})=>h(e.errors,`warning`).length>0);return!t&&!n?null:(0,_.jsxs)(s,{flexDirection:`column`,marginTop:1,marginBottom:1,children:[(0,_.jsx)(l,{bold:!0,children:`MCP Config Diagnostics`}),(0,_.jsx)(s,{marginTop:1,children:(0,_.jsxs)(l,{dimColor:!0,children:[`For help configuring MCP servers, see:`,` `,(0,_.jsx)(c,{url:`https://code.workmate.com/docs/en/mcp`,children:`https://code.workmate.com/docs/en/mcp`})]})}),e.map(({scope:e,config:t})=>(0,_.jsx)(p,{scope:e,parsingErrors:h(t.errors,`fatal`),warnings:h(t.errors,`warning`)},e))]})}function h(e,t){return e.filter(e=>e.mcpErrorMetadata?.severity===t)}var g,_,v=e((()=>{g=t(u(),1),n(),i(),d(),_=f()}));export{v as n,m as t};
|