claude-code-best 2.8.2 → 2.8.3
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/README.md +1 -1
- package/dist/chunks/{AddWorkspaceDirectory-BCCbaWoh.js → AddWorkspaceDirectory-CM5PYqoF.js} +1 -1
- package/dist/chunks/{App-BIAYUFvT.js → App-BLLQEMkd.js} +1 -1
- package/dist/chunks/ApproveApiKey-AMXQPmfE.js +1 -0
- package/dist/chunks/{ApproveApiKey-DRARgWX3.js → ApproveApiKey-DrflOSA-.js} +1 -1
- package/dist/chunks/{AssistantSessionChooser-eUrEGDlX.js → AssistantSessionChooser-SlRne98s.js} +1 -1
- package/dist/chunks/BackgroundTasksDialog-Cciww_FF.js +2 -0
- package/dist/chunks/{BypassPermissionsModeDialog-8z7R5EpU.js → BypassPermissionsModeDialog-HaciDdx0.js} +1 -1
- package/dist/chunks/{ClaudeInChromeOnboarding-B7mDm5Hb.js → ClaudeInChromeOnboarding-EA3k_q2M.js} +1 -1
- package/dist/chunks/ClaudeMdExternalIncludesDialog-C-T8G8O7.js +1 -0
- package/dist/chunks/{ClaudeMdExternalIncludesDialog-DE9dpWtg.js → ClaudeMdExternalIncludesDialog-xBclyqKk.js} +1 -1
- package/dist/chunks/ConsoleOAuthFlow-BTN62PKj.js +1 -0
- package/dist/chunks/{DesktopHandoff-Ce0nE7D6.js → DesktopHandoff-BhY_F3Ob.js} +1 -1
- package/dist/chunks/{DevChannelsDialog-mt0lA5wR.js → DevChannelsDialog-DU5komVT.js} +1 -1
- package/dist/chunks/DiffDialog-D_-znREV.js +3 -0
- package/dist/chunks/Doctor-BhrEYzPO.js +3 -0
- package/dist/chunks/Doctor-CjnUU1CY.js +1 -0
- package/dist/chunks/{ExitFlow-C3BGvwv-.js → ExitFlow-cRfxceuS.js} +2 -2
- package/dist/chunks/{Feedback-BtZb1A8b.js → Feedback-BMv8Kt05.js} +2 -2
- package/dist/chunks/Grove-CRAZGlvf.js +1 -0
- package/dist/chunks/{Grove-HpMLktXp.js → Grove-CjfR7Acp.js} +1 -1
- package/dist/chunks/{HybridTransport-COk7jAC7.js → HybridTransport-D32dn9xc.js} +1 -1
- package/dist/chunks/{ITermBackend-BlwyeN8U.js → ITermBackend-BxjzkptA.js} +1 -1
- package/dist/chunks/{InvalidConfigDialog-QVIRDXwA.js → InvalidConfigDialog-CnCOCqMT.js} +1 -1
- package/dist/chunks/{InvalidSettingsDialog-CZRZm0oa.js → InvalidSettingsDialog-CLOgpfR2.js} +1 -1
- package/dist/chunks/MCPConnectionManager-BhbT4Sah.js +1 -0
- package/dist/chunks/{McpParsingWarnings-DWMO0bV6.js → McpParsingWarnings-B5X5HVnQ.js} +1 -1
- package/dist/chunks/MessageSelector-DLofsxam.js +3 -0
- package/dist/chunks/Messages-D1-i4MMT.js +11 -0
- package/dist/chunks/{Onboarding-CHcND5Tt.js → Onboarding-Co5P3gZs.js} +1 -1
- package/dist/chunks/{OverageCreditUpsell-CMBqZrnz.js → OverageCreditUpsell-DjgcfVt2.js} +1 -1
- package/dist/chunks/PluginSettings-NB-Wod-9.js +17 -0
- package/dist/chunks/{PromptInputHelpMenu-CAwbW7z2.js → PromptInputHelpMenu-BDI5IF1s.js} +1 -1
- package/dist/chunks/QueryEngine-B217mLel.js +1 -0
- package/dist/chunks/REPL-BfprHNDt.js +1 -0
- package/dist/chunks/{REPL-Dx3SPe95.js → REPL-DCm_BFr_.js} +36 -36
- package/dist/chunks/{RemoteCallout-CwI1mLQ9.js → RemoteCallout-dGnKRIDB.js} +1 -1
- package/dist/chunks/{RemoteSessionManager-BXMBhfQD.js → RemoteSessionManager-BidAIOqZ.js} +2 -2
- package/dist/chunks/ResumeConversation-SDRT6hO3.js +1 -0
- package/dist/chunks/{SSETransport-Co-0nMlR.js → SSETransport-BM2xz03M.js} +1 -1
- package/dist/chunks/SearchExtraToolsTool-DCSReOsq.js +1 -0
- package/dist/chunks/{SentryErrorBoundary-kEgE7qeH.js → SentryErrorBoundary-D5niZGEU.js} +1 -1
- package/dist/chunks/SentryErrorBoundary-DzwCuftg.js +1 -0
- package/dist/chunks/Settings-D3ds_WCz.js +2 -0
- package/dist/chunks/{TeleportProgress--n-u7MYY.js → TeleportProgress-Dg6HcEO9.js} +1 -1
- package/dist/chunks/{TeleportRepoMismatchDialog-CzQzdYb2.js → TeleportRepoMismatchDialog-BUKNU2jx.js} +1 -1
- package/dist/chunks/{TeleportResumeWrapper-CtANoO1Z.js → TeleportResumeWrapper-5FTzA9R_.js} +1 -1
- package/dist/chunks/{ThemePicker-kBt6obJb.js → ThemePicker-Bdm12PmJ.js} +1 -1
- package/dist/chunks/{TmuxBackend-Q5xdOkW4.js → TmuxBackend-CYx3Hdf1.js} +2 -2
- package/dist/chunks/{TrustDialog-CoCFqyRD.js → TrustDialog-DGKf4iwh.js} +1 -1
- package/dist/chunks/{ValidationErrorsList-CL42YlaS.js → ValidationErrorsList-BP7vG1uX.js} +1 -1
- package/dist/chunks/{WelcomeV2-B0d9sH1c.js → WelcomeV2-k_969SnB.js} +1 -1
- package/dist/chunks/{WindowsTerminalBackend-CLSeqqHh.js → WindowsTerminalBackend-K_zVZBSP.js} +2 -2
- package/dist/chunks/{add-dir-IrADCHV-.js → add-dir-DnfUkb1n.js} +1 -1
- package/dist/chunks/{agentDisplay-BUXpQhYh.js → agentDisplay-DT04Kqdm.js} +1 -1
- package/dist/chunks/{agents-Cx0f6suK.js → agents-ELZyUElQ.js} +7 -7
- package/dist/chunks/{agents-BqQtaTaM.js → agents-hh7Zcqm6.js} +1 -1
- package/dist/chunks/{ant-BUkS8Em4.js → ant-CuQC6xHS.js} +1 -1
- package/dist/chunks/api-BY3NFL4L.js +1 -0
- package/dist/chunks/{api-Cy1N7XAQ.js → api-C-KY7A3r.js} +1 -1
- package/dist/chunks/asciicast-BeEmDIKr.js +1 -0
- package/dist/chunks/{asciicast-C_1Pi99k.js → asciicast-C0fPsv7_.js} +1 -1
- package/dist/chunks/assistant-C669PK45.js +1 -0
- package/dist/chunks/{assistant-C3dP-BSJ.js → assistant-DbtrknMt.js} +1 -1
- package/dist/chunks/{assistant-BGzd9a5x.js → assistant-Z-xFHPiY.js} +1 -1
- package/dist/chunks/{auth-DVtMm7Hj.js → auth-Bo_eeRO9.js} +1 -1
- package/dist/chunks/auth-C-rD91K7.js +1 -0
- package/dist/chunks/{autoMode-ThlM20qr.js → autoMode-BhsFtU8_.js} +6 -6
- package/dist/chunks/{autonomy-B637YdCF.js → autonomy-B-d3Xamr.js} +1 -1
- package/dist/chunks/{autonomy-B_vxYZbV.js → autonomy-C5wE-5B8.js} +12 -12
- package/dist/chunks/{autonomyPanel-BM2VhTsn.js → autonomyPanel-CMy4Zs1a.js} +1 -1
- package/dist/chunks/backgroundHousekeeping-YAOGWoo4.js +17 -0
- package/dist/chunks/backgroundHousekeeping-xFmPDL7y.js +1 -0
- package/dist/chunks/{branch-BlH5WYNu.js → branch-DoV3sEJf.js} +2 -2
- package/dist/chunks/{bridge-QRFJRzVG.js → bridge-8RYx23zW.js} +2 -2
- package/dist/chunks/{bridgeConfig-Di9LziJ3.js → bridgeConfig-C8tQXEsd.js} +1 -1
- package/dist/chunks/bridgeConfig-D5awYlvd.js +1 -0
- package/dist/chunks/bridgeEnabled-0tZw2TlM.js +1 -0
- package/dist/chunks/{bridgeEnabled-z1fPRzzV.js → bridgeEnabled-B3KTIVe4.js} +1 -1
- package/dist/chunks/bridgeMain-DKkE8RYG.js +1 -0
- package/dist/chunks/bridgeMain-Ssp8HRcV.js +68 -0
- package/dist/chunks/{bridgeMessaging-BG8fNZac.js → bridgeMessaging-DGTm_wDk.js} +1 -1
- package/dist/chunks/{btw-DpeWZQbf.js → btw-Du0mHeiD.js} +1 -1
- package/dist/chunks/{buddy-Bni2g0Km.js → buddy-D04AYSW6.js} +1 -1
- package/dist/chunks/{bypassPermissionsKillswitch-7e56Rquc.js → bypassPermissionsKillswitch-CRYkShwu.js} +1 -1
- package/dist/chunks/caches-Byd8SjTZ.js +1 -0
- package/dist/chunks/{caches-CzEBsMvP.js → caches-DYf69-N9.js} +2 -2
- package/dist/chunks/{ccrClient-iR6zwGb1.js → ccrClient-CDrBxSox.js} +1 -1
- package/dist/chunks/changeDetector-CGzGs92S.js +1 -0
- package/dist/chunks/{channelNotification-CSmLgwtO.js → channelNotification-CtA9HHFW.js} +1 -1
- package/dist/chunks/channelNotification-DOvTvOGt.js +1 -0
- package/dist/chunks/{chrome-BO1vbvZ0.js → chrome-BHbT4cc4.js} +1 -1
- package/dist/chunks/clear-BGLxPs_B.js +1 -0
- package/dist/chunks/client-CtOmoNuQ.js +1 -0
- package/dist/chunks/color-MOZYZ1cM.js +1 -0
- package/dist/chunks/commands-B3XpQmEm.js +1 -0
- package/dist/chunks/{commitAttribution-Djh1ZpYH.js → commitAttribution-BTtCTr8c.js} +1 -1
- package/dist/chunks/commitAttribution-CXNK79GW.js +1 -0
- package/dist/chunks/compact-CMqxm2yG.js +3 -0
- package/dist/chunks/{companion-C-jfFhlz.js → companion-ChxkOPHB.js} +1 -1
- package/dist/chunks/{config-DwsIX0hc.js → config-cRyRIPI7.js} +1 -1
- package/dist/chunks/{config-CloXpblh.js → config-wvQYYbwU.js} +1 -1
- package/dist/chunks/{context-DdwMoH4j.js → context-7ds9guuJ.js} +1 -1
- package/dist/chunks/{context-noninteractive-BWbEqad6.js → context-noninteractive-CISZymIU.js} +2 -2
- package/dist/chunks/context-noninteractive-CwJBBF8h.js +1 -0
- package/dist/chunks/conversation-Bgsdn99n.js +1 -0
- package/dist/chunks/conversation-D30CU_jS.js +1 -0
- package/dist/chunks/{copy-tl-41wwU.js → copy-Dvz2Mge4.js} +2 -2
- package/dist/chunks/{createSSHSession-B_IyqOll.js → createSSHSession-Befx8LiM.js} +1 -1
- package/dist/chunks/createSession-Cp0KTjPL.js +1 -0
- package/dist/chunks/{createSession-Csaqw8kb.js → createSession-CsZGoika.js} +1 -1
- package/dist/chunks/{cronJitterConfig-2sHTXBLu.js → cronJitterConfig-Dfl7iZqE.js} +3 -3
- package/dist/chunks/{crossProjectResume-C1I0X__e.js → crossProjectResume-DK8nt_cn.js} +3 -3
- package/dist/chunks/{datadog-BzkFYNcv.js → datadog-2vPhbh6g.js} +1 -1
- package/dist/chunks/datadog-DLTYg-S2.js +1 -0
- package/dist/chunks/{desktop-oTXppB2O.js → desktop-DY9Nw2Fi.js} +1 -1
- package/dist/chunks/{diff-B23DUoT8.js → diff-Ci6rs6S6.js} +1 -1
- package/dist/chunks/{directoryCompletion-DqtWZsoW.js → directoryCompletion-DLxCFk_m.js} +1 -1
- package/dist/chunks/{doctor-o2MJvjAE.js → doctor-DBYGgS-y.js} +1 -1
- package/dist/chunks/{effort-B1X_S_oa.js → effort-Bi_t4J_o.js} +2 -2
- package/dist/chunks/{entry-BAXMpXJ0.js → entry-p_5l64_p.js} +4 -4
- package/dist/chunks/{envLessBridgeConfig-YNTOVEqU.js → envLessBridgeConfig-C_sqoGX6.js} +1 -1
- package/dist/chunks/envLessBridgeConfig-Cfbqwjew.js +1 -0
- package/dist/chunks/exit-Bc8L5oQT.js +1 -0
- package/dist/chunks/{export-CqbYdFmJ.js → export-kvnEu9Iw.js} +1 -1
- package/dist/chunks/{exportRenderer-DP_z8YD1.js → exportRenderer-DmpMgUiv.js} +1 -1
- package/dist/chunks/extra-usage-BnO6knuC.js +1 -0
- package/dist/chunks/{extra-usage-BQ5Z1wJb.js → extra-usage-CmP6V7HX.js} +1 -1
- package/dist/chunks/{extra-usage-core-B1oJoxYa.js → extra-usage-core-BqJClmf4.js} +1 -1
- package/dist/chunks/{extra-usage-noninteractive-BV_6cpdd.js → extra-usage-noninteractive-BWyPFx53.js} +1 -1
- package/dist/chunks/extraUsage-DgMspmL4.js +1 -0
- package/dist/chunks/extractMemories-uQJS_i6E.js +1 -0
- package/dist/chunks/fast-Bunl4ivM.js +1 -0
- package/dist/chunks/{fast-BJMGfO_S.js → fast-Dd2jZVF-.js} +1 -1
- package/dist/chunks/{feedback-O0Gushxg.js → feedback-8UeDx3Yc.js} +1 -1
- package/dist/chunks/{firstPartyEventLogger-0s2WJ6SR.js → firstPartyEventLogger-cKEuzfyR.js} +1 -1
- package/dist/chunks/{flushGate-CLjpgnG6.js → flushGate-B3upNVdV.js} +1 -1
- package/dist/chunks/{gates-C5y8P5t9.js → gates-lWoKqpJ1.js} +1 -1
- package/dist/chunks/gates-uo2owWkc.js +1 -0
- package/dist/chunks/{gemini-D6lfJRGH.js → gemini-DDSP4ArG.js} +1 -1
- package/dist/chunks/{generateRecap-AYujRzfu.js → generateRecap-DCBzHqag.js} +1 -1
- package/dist/chunks/{generateSessionName-CXg1uVLN.js → generateSessionName-Db5pZ3cL.js} +1 -1
- package/dist/chunks/{githubRepoPathMapping-CdjkMIX3.js → githubRepoPathMapping-v_U9b0Fe.js} +1 -1
- package/dist/chunks/{goal-BGr-SlcA.js → goal-EZCOCHZa.js} +3 -3
- package/dist/chunks/{grok-DxyRt4Jq.js → grok-H8K_fDKF.js} +1 -1
- package/dist/chunks/{growthbook-D93ZmHUL.js → growthbook-mMD0jkbu.js} +1 -1
- package/dist/chunks/{heapdump-DZz5qnZg.js → heapdump-CbVvtQuH.js} +1 -1
- package/dist/chunks/{help-C8HhaC70.js → help-Bq4jxCSJ.js} +1 -1
- package/dist/chunks/hooks-CVlFJfV0.js +1 -0
- package/dist/chunks/{hooks-De2yBPig.js → hooks-DbKUS0fN.js} +2 -2
- package/dist/chunks/{hostAdapter-CZdJUeS1.js → hostAdapter-BhVpIn1Y.js} +1 -1
- package/dist/chunks/{ide-GnSLasRI.js → ide-DZJheXyl.js} +2 -2
- package/dist/chunks/{inboundAttachments-C8y3D5mp.js → inboundAttachments-B9NxWIDx.js} +1 -1
- package/dist/chunks/inboundAttachments-_vhgWPEL.js +1 -0
- package/dist/chunks/initReplBridge-BCIaWf78.js +1 -0
- package/dist/chunks/{insights-23tyPxXV.js → insights-D1BFvhw_.js} +68 -68
- package/dist/chunks/{install-BXi4d63r.js → install-D_xm-9s1.js} +1 -1
- package/dist/chunks/{install-github-app-D2X7BgzJ.js → install-github-app-CUEACXdr.js} +2 -2
- package/dist/chunks/{install-slack-app-_J1t0kSP.js → install-slack-app-DGV6l9wy.js} +1 -1
- package/dist/chunks/{instrumentation-C9WDRy-K.js → instrumentation-CEfWNakt.js} +3 -3
- package/dist/chunks/{job-DXX7dNN_.js → job-BeeAFieV.js} +1 -1
- package/dist/chunks/{keybindings-CChhkkE0.js → keybindings-CeYhuE5G.js} +2 -2
- package/dist/chunks/{lang-COIVItM_.js → lang-BmwAsgo1.js} +1 -1
- package/dist/chunks/{language-DzWvcLCu.js → language-BcWiv2lr.js} +1 -1
- package/dist/chunks/language-BnQye2Mx.js +1 -0
- package/dist/chunks/{launchAgentsPlatform-Du_WvKeU.js → launchAgentsPlatform-DqQzwcqV.js} +1 -1
- package/dist/chunks/{launchAutofixPr-CypNniKH.js → launchAutofixPr-XltBpICW.js} +3 -3
- package/dist/chunks/{launchLocalMemory-GkqB_Gcr.js → launchLocalMemory-CHSU4_or.js} +2 -2
- package/dist/chunks/{launchLocalVault-CBihJDzq.js → launchLocalVault-CnvCdQ1M.js} +3 -3
- package/dist/chunks/{launchMemoryStores-BkK0wwq0.js → launchMemoryStores-DD2duIDU.js} +1 -1
- package/dist/chunks/{launchOnboarding-BubTG5vY.js → launchOnboarding-JTKef_jU.js} +1 -1
- package/dist/chunks/{launchSchedule-CkV6Ai-0.js → launchSchedule-BVtfNQtS.js} +1 -1
- package/dist/chunks/{launchSkillStore-DIrFg_WZ.js → launchSkillStore-TisTmZ3O.js} +1 -1
- package/dist/chunks/{launchTeleport-DFrgN9sU.js → launchTeleport-BO_V6ggj.js} +3 -3
- package/dist/chunks/{launchVault-CIiNsg91.js → launchVault-Civro2KB.js} +1 -1
- package/dist/chunks/{loadAgentsDir-DC4jN6-f.js → loadAgentsDir-BfEZacjM.js} +740 -690
- package/dist/chunks/loadAgentsDir-rYxb2igq.js +1 -0
- package/dist/chunks/loadPluginHooks-Cniyh-tZ.js +1 -0
- package/dist/chunks/localSearch-C0J7ETJQ.js +1 -0
- package/dist/chunks/{localSearch-But4wyLg.js → localSearch-COJcqOWl.js} +1 -1
- package/dist/chunks/login-B4wjtpEU.js +1 -0
- package/dist/chunks/{login-ajsn1Sg7.js → login-SuUxFLIY.js} +1 -1
- package/dist/chunks/{logoV2Utils-CpeUvaOM.js → logoV2Utils-DvjpZkyF.js} +1 -1
- package/dist/chunks/logout-o16yNWNB.js +1 -0
- package/dist/chunks/{magicDocs-TF6U6QoB.js → magicDocs-BZBrH9zB.js} +2 -2
- package/dist/chunks/{main-bjQRqaUr.js → main-p9Tke3lb.js} +90 -63
- package/dist/chunks/{mappers-Bg-xtimK.js → mappers-BcXg_fI3.js} +1 -1
- package/dist/chunks/mcp-BFxLEf3X.js +1 -0
- package/dist/chunks/{mcp-i8lqdWTr.js → mcp-CIJL0PTq.js} +2 -2
- package/dist/chunks/mcp-DfuQ1MJu.js +6 -0
- package/dist/chunks/{mcpServer-CuqaXxiJ.js → mcpServer-D2kI_m2H.js} +1 -1
- package/dist/chunks/{mcpServer-Dr9UfcEd.js → mcpServer-DPk-oJOU.js} +1 -1
- package/dist/chunks/{memory-DVJxsbcO.js → memory-CJOtY_Uv.js} +1 -1
- package/dist/chunks/{mode-C9yWWppB.js → mode-DkpKiyTE.js} +1 -1
- package/dist/chunks/{model-Dq-13vaB.js → model-DZyzd39E.js} +1 -1
- package/dist/chunks/model-De0AGQ3F.js +1 -0
- package/dist/chunks/{onChangeAppState-Cc4zOnqx.js → onChangeAppState-CvtxqUDG.js} +1 -1
- package/dist/chunks/{openai-DMCGGZts.js → openai-B888nVou.js} +3 -3
- package/dist/chunks/{overageCreditGrant-CzkWDmsQ.js → overageCreditGrant-BOSyVk3U.js} +1 -1
- package/dist/chunks/{panelCall-D36EWzwF.js → panelCall-BVdu8oii.js} +1 -1
- package/dist/chunks/{passes-CPAwB9_F.js → passes-DeSsjipz.js} +1 -1
- package/dist/chunks/{path-BE28AJwZ.js → path-Cit7LKW-.js} +1 -1
- package/dist/chunks/{paths-CEAy4QCs.js → paths-nIHVpTn2.js} +3 -3
- package/dist/chunks/permissions-DGdr-wOj.js +3 -0
- package/dist/chunks/{pipeTransport-7auNUakO.js → pipeTransport-ClZYq1sd.js} +1 -1
- package/dist/chunks/{plan-pCEs76NM.js → plan-D9bnkDwv.js} +1 -1
- package/dist/chunks/{plugin-BSC-7wQh.js → plugin-BE0r1g1g.js} +1 -1
- package/dist/chunks/{pluginAutoupdate-Cre72Rtf.js → pluginAutoupdate-xyXksEJv.js} +1 -1
- package/dist/chunks/pluginBlocklist-Dd7XBe8U.js +1 -0
- package/dist/chunks/{pluginCliCommands-CTxmCPph.js → pluginCliCommands-8MJCk1nq.js} +1 -1
- package/dist/chunks/{pluginFlagging-C5EGcjZe.js → pluginFlagging-7zuXXBD5.js} +1 -1
- package/dist/chunks/pluginOperations-DFzbASMD.js +2 -0
- package/dist/chunks/{pluginStartupCheck-B3QqfRt6.js → pluginStartupCheck-BC5npqdw.js} +1 -1
- package/dist/chunks/pluginStartupCheck-C6IH0haF.js +1 -0
- package/dist/chunks/plugins-Bhc2pbAj.js +4 -0
- package/dist/chunks/policyLimits-CfrU0rIR.js +1 -0
- package/dist/chunks/{pollConfig-CyO4Ycwc.js → pollConfig-B3hNYQ_n.js} +1 -1
- package/dist/chunks/{poor-eRoBwI0Z.js → poor-BjTGCuqc.js} +1 -1
- package/dist/chunks/{poorMode-BdNsLBQ-.js → poorMode-CGVMMLlz.js} +1 -1
- package/dist/chunks/poorMode-DWLhTldO.js +1 -0
- package/dist/chunks/{print-Ogibzjap.js → print-BJkyuCzw.js} +11 -11
- package/dist/chunks/{privacy-settings-Dd7PtKbY.js → privacy-settings-BDVjqVcX.js} +1 -1
- package/dist/chunks/processBashCommand-DnzyTwtS.js +1 -0
- package/dist/chunks/processSlashCommand-BGBRvSCA.js +6 -0
- package/dist/chunks/prompt-BXrvaHyx.js +1 -0
- package/dist/chunks/{prompt-BHI7PZe4.js → prompt-DgIuTC6Q.js} +1 -1
- package/dist/chunks/prompt-Fax-fxAf.js +1 -0
- package/dist/chunks/{promptEditor-DoJ-xPi4.js → promptEditor-BkHY_Vzb.js} +2 -2
- package/dist/chunks/{protocolHandler-Dgzu5UWb.js → protocolHandler-CrXWRkxh.js} +1 -1
- package/dist/chunks/rate-limit-options-skMSi19l.js +1 -0
- package/dist/chunks/{rcDebugLog-C0Bam8V9.js → rcDebugLog-Bv_x5w_B.js} +1 -1
- package/dist/chunks/{referral-B10JtHMk.js → referral-DfKWr4Jf.js} +1 -1
- package/dist/chunks/refresh-zosTlttX.js +1 -0
- package/dist/chunks/{registerProtocol-CQjmvg7a.js → registerProtocol-De6y1iOi.js} +1 -1
- package/dist/chunks/registry-C8JbYbJI.js +1 -0
- package/dist/chunks/{release-notes-dxng0ob_.js → release-notes-Su1UPyE4.js} +1 -1
- package/dist/chunks/{releaseNotes-CS5L5W0H.js → releaseNotes-C7-JnhrH.js} +2 -2
- package/dist/chunks/{reload-plugins-CgzAjBDp.js → reload-plugins-C8lWCq8M.js} +1 -1
- package/dist/chunks/{remote-env-BasfU8Ra.js → remote-env-tQuvJmrt.js} +1 -1
- package/dist/chunks/{remoteBridgeCore-IJI5koHz.js → remoteBridgeCore-CwOTDmNP.js} +1 -1
- package/dist/chunks/{remoteControlServer-BBCt7ySV.js → remoteControlServer-DIKi-0lr.js} +2 -2
- package/dist/chunks/rename-Trg9EHjT.js +1 -0
- package/dist/chunks/{resume-DjnfattK.js → resume-Nt_EbjKh.js} +2 -2
- package/dist/chunks/{runtimeObserver-ByTBtmBf.js → runtimeObserver-CyWhTJpz.js} +4 -4
- package/dist/chunks/{runtimeObserver-COpkJmg-.js → runtimeObserver-T9QERJ_O.js} +1 -1
- package/dist/chunks/sandbox-adapter-BDGhDrPl.js +1 -0
- package/dist/chunks/{sandbox-toggle-CQohaYND.js → sandbox-toggle-C6v31S7-.js} +1 -1
- package/dist/chunks/searchExtraTools-C8ehknh0.js +1 -0
- package/dist/chunks/{sentry-C0bQlih_.js → sentry-CK_GHX79.js} +1 -1
- package/dist/chunks/{session-Dx_ODOHl.js → session-Ys3KvmQ0.js} +1 -1
- package/dist/chunks/{sessionDiscovery-DAqs0Ra6.js → sessionDiscovery-Cg3X2fKe.js} +1 -1
- package/dist/chunks/sessionFileAccessHooks-vthxapHk.js +1 -0
- package/dist/chunks/sessionMemory-ek1SfYG_.js +1 -0
- package/dist/chunks/sessionMemory-l-S0jpuk.js +1 -0
- package/dist/chunks/sessionMemoryUtils-BGJeJyKn.js +1 -0
- package/dist/chunks/sessionObserver-COTvvM3Z.js +1 -0
- package/dist/chunks/{sessionObserver-rd6RRTzc.js → sessionObserver-DvAdG6vQ.js} +2 -2
- package/dist/chunks/sessionStorage-GKe4ALVr.js +1 -0
- package/dist/chunks/{sessionTitle-1k_2BhFL.js → sessionTitle-DJMmUKBJ.js} +2 -2
- package/dist/chunks/{sessionTracing-DNSDPYdR.js → sessionTracing-DuQ3kbq6.js} +1 -1
- package/dist/chunks/{settingsSync-3xG2A_wN.js → settingsSync-1mhDakFG.js} +1 -1
- package/dist/chunks/{setup-Hlga8GJ_.js → setup-CAy0HkI3.js} +1 -1
- package/dist/chunks/setup-CGxUKG8x.js +3 -0
- package/dist/chunks/{setup-CY808VaY.js → setup-D5ioKRsS.js} +1 -1
- package/dist/chunks/{shadowedRuleDetection-BdBNo5eP.js → shadowedRuleDetection-Cq0y9pLR.js} +1 -1
- package/dist/chunks/{sideQuestion-DWOCUKMh.js → sideQuestion-ZII6LMSM.js} +3 -3
- package/dist/chunks/{sink-DCh0VJ4g.js → sink-Cd5g6Qqh.js} +1 -1
- package/dist/chunks/sink-Df9tds-b.js +1 -0
- package/dist/chunks/sinks-C4DwU8Xs.js +1 -0
- package/dist/chunks/{sinks-_9T2oPB_.js → sinks-DZlIEjLZ.js} +2 -2
- package/dist/chunks/{skill-learning-CzZFGFZO.js → skill-learning-DO21PjpF.js} +1 -1
- package/dist/chunks/skillChangeDetector-B6tL2yC9.js +1 -0
- package/dist/chunks/{skillGapStore-DJm3SULe.js → skillGapStore-B_xv3GUy.js} +1 -1
- package/dist/chunks/{skillGapStore-Bz_qbwI1.js → skillGapStore-CTD8MYTx.js} +2 -2
- package/dist/chunks/{skillGenerator-BcNv-VZ5.js → skillGenerator-CO9r-gft.js} +2 -2
- package/dist/chunks/skillLearning-BJS4lsNk.js +1 -0
- package/dist/chunks/skillLearning-C2NmdcYQ.js +1 -0
- package/dist/chunks/{skillPanel-Q85P-Gg4.js → skillPanel-DSumFGKN.js} +3 -3
- package/dist/chunks/{skillSearchPanel-CMCQDAcX.js → skillSearchPanel-SqkfYBjV.js} +4 -4
- package/dist/chunks/{skills-D3eUg3HG.js → skills-Bj3g5apl.js} +1 -1
- package/dist/chunks/{sprites-ChoMSqpa.js → sprites-CxMz3tIE.js} +1 -1
- package/dist/chunks/{stats-DdhEa_6-.js → stats-D1wYx84O.js} +1 -1
- package/dist/chunks/{status-CX7Kgn21.js → status-BWCqbeJ3.js} +1 -1
- package/dist/chunks/statusNoticeHelpers-DY0Cblkd.js +1 -0
- package/dist/chunks/{tag-BJ_u3aJm.js → tag-Hc7nOYm5.js} +2 -2
- package/dist/chunks/{tasks-DeEWOchP.js → tasks-BSqecqVm.js} +1 -1
- package/dist/chunks/{teamHelpers-WmWa_h3B.js → teamHelpers-BOmVFTLS.js} +1 -1
- package/dist/chunks/teamHelpers-BueGmQcw.js +1 -0
- package/dist/chunks/{teammateModeSnapshot-DZ6ulELC.js → teammateModeSnapshot-DhXjREuo.js} +1 -1
- package/dist/chunks/teammateModeSnapshot-_MCm6NGJ.js +1 -0
- package/dist/chunks/teleport-W2iPwivh.js +1 -0
- package/dist/chunks/{templateJobs-nFBp68za.js → templateJobs-1oMC9yLQ.js} +1 -1
- package/dist/chunks/{terminalSetup-DULcnnWe.js → terminalSetup-Bkml3uSP.js} +1 -1
- package/dist/chunks/{terminalSetup-BORjK3qH.js → terminalSetup-DJX1hqKs.js} +1 -1
- package/dist/chunks/{theme-Bf2QD0ja.js → theme-ia4cIc4d.js} +1 -1
- package/dist/chunks/thinkback-1NYskewu.js +1 -0
- package/dist/chunks/{thinkback-DZEhr3Ii.js → thinkback-DWLUXUQC.js} +1 -1
- package/dist/chunks/thinkback-play-DZmXMRtq.js +1 -0
- package/dist/chunks/{toolEventObserver-DMdrez6V.js → toolEventObserver-Ci0BECRu.js} +1 -1
- package/dist/chunks/{toolEventObserver-CNZy5TpN.js → toolEventObserver-nPwMQ5Vf.js} +1 -1
- package/dist/chunks/toolPool-ByCdlOak.js +1 -0
- package/dist/chunks/toolPool-IkNWjuk2.js +1 -0
- package/dist/chunks/{trustedDevice-Dw2crViN.js → trustedDevice-BynTLVs4.js} +1 -1
- package/dist/chunks/{trustedDevice-DWb5CPB_.js → trustedDevice-CtL2IGDX.js} +1 -1
- package/dist/chunks/{ultrareviewCommand-BfN25zni.js → ultrareviewCommand-DN-QhQ-f.js} +2 -2
- package/dist/chunks/undercover-CqJzV_Ar.js +1 -0
- package/dist/chunks/{undercover-rcR56jZx.js → undercover-DLr5xI3K.js} +1 -1
- package/dist/chunks/{updateCCB-DlTAqQJq.js → updateCCB-C6Ov8SNx.js} +4 -4
- package/dist/chunks/{upgrade-ClLcX7zy.js → upgrade-CVM1ffhq.js} +1 -1
- package/dist/chunks/upgrade-d40dVpDc.js +1 -0
- package/dist/chunks/{upload-BqEzK59v.js → upload-DSNwGLNd.js} +1 -1
- package/dist/chunks/{usage-BgKDh8pQ.js → usage-BRv8mBDf.js} +1 -1
- package/dist/chunks/{usage-DW-akzSR.js → usage-GMw8NiO_.js} +1 -1
- package/dist/chunks/{useMainLoopModel-BTpZ8k3k.js → useMainLoopModel-CEM_50a0.js} +1 -1
- package/dist/chunks/{useManagePlugins-z0qezP5r.js → useManagePlugins-hCqb5F5n.js} +1 -1
- package/dist/chunks/{useMergedTools-B78rAreW.js → useMergedTools-DxvRmxVF.js} +1 -1
- package/dist/chunks/{useSearchInput-CwxF3CHN.js → useSearchInput-BCErnYur.js} +1 -1
- package/dist/chunks/useSettingsErrors-BwNeCSA6.js +1 -0
- package/dist/chunks/{useVoice-X5WSnyed.js → useVoice-Cu39ifSa.js} +1 -1
- package/dist/chunks/{util-CP-_gsEO.js → util-DYuasrIE.js} +1 -1
- package/dist/chunks/utils-DSGFJaZ_.js +1 -0
- package/dist/chunks/{validatePlugin-DUuaprqR.js → validatePlugin-b1ec7M7n.js} +1 -1
- package/dist/chunks/{vim-BfmsdxOa.js → vim-CrAzv4cM.js} +1 -1
- package/dist/chunks/{voice-B3GIfFlB.js → voice-DKG3SYqi.js} +2 -2
- package/dist/chunks/{voiceModeEnabled-C1Q9j5q6.js → voiceModeEnabled-By2qa3A2.js} +1 -1
- package/dist/chunks/voiceModeEnabled-DwYcj-FH.js +1 -0
- package/dist/chunks/voiceStreamSTT-DD8ulbg1.js +1 -0
- package/dist/chunks/{voiceStreamSTT-BguyxdrW.js → voiceStreamSTT-DEV82xnN.js} +1 -1
- package/dist/chunks/{web-tools-qf_VwWRn.js → web-tools-8QRyE7va.js} +1 -1
- package/dist/chunks/windowsPaths-CRq9Bt5c.js +1 -0
- package/dist/chunks/windowsPaths-jbJ-skB_.js +1 -0
- package/dist/chunks/{workerRegistry-SbiLJIsG.js → workerRegistry-S7pO5khK.js} +1 -1
- package/dist/chunks/worktree-CfXrXsQ2.js +1 -0
- package/dist/chunks/{xml-D7-jJqSA.js → xml-CPJXOUFt.js} +1 -1
- package/dist/cli.js +1 -1
- package/package.json +1 -1
- package/dist/chunks/ApproveApiKey-Do-Qth0X.js +0 -1
- package/dist/chunks/BackgroundTasksDialog-DSeAqhMC.js +0 -2
- package/dist/chunks/ClaudeMdExternalIncludesDialog-DTZS-dek.js +0 -1
- package/dist/chunks/ConsoleOAuthFlow-UcQCmIWd.js +0 -1
- package/dist/chunks/DiffDialog-BfSnz8L-.js +0 -3
- package/dist/chunks/Doctor-BOVjkAKn.js +0 -3
- package/dist/chunks/Doctor-osWC5WVY.js +0 -1
- package/dist/chunks/Grove-DyC_Wrfx.js +0 -1
- package/dist/chunks/MCPConnectionManager-2Fulnp8q.js +0 -1
- package/dist/chunks/MessageSelector-B4jJQ-KQ.js +0 -3
- package/dist/chunks/Messages-ltcn1Qkf.js +0 -11
- package/dist/chunks/PluginSettings-DIS_qrVA.js +0 -17
- package/dist/chunks/QueryEngine-BQs519Rb.js +0 -1
- package/dist/chunks/REPL-DJh_wVWI.js +0 -1
- package/dist/chunks/ResumeConversation-BK7L_YBI.js +0 -1
- package/dist/chunks/SearchExtraToolsTool-DVi-ggud.js +0 -1
- package/dist/chunks/SentryErrorBoundary-DLML64E_.js +0 -1
- package/dist/chunks/Settings-DOve7mW1.js +0 -2
- package/dist/chunks/api-CoBZPEi-.js +0 -1
- package/dist/chunks/asciicast-DA6TudSH.js +0 -1
- package/dist/chunks/assistant-B2_c5C4T.js +0 -1
- package/dist/chunks/auth-CRVuUNwf.js +0 -1
- package/dist/chunks/backgroundHousekeeping-BWAfdRVf.js +0 -1
- package/dist/chunks/backgroundHousekeeping-Cll7XHG1.js +0 -17
- package/dist/chunks/bridgeConfig-pVTHa_ED.js +0 -1
- package/dist/chunks/bridgeEnabled-c_BeJX3S.js +0 -1
- package/dist/chunks/bridgeMain-CHk_DCxy.js +0 -1
- package/dist/chunks/bridgeMain-DVoobI7G.js +0 -68
- package/dist/chunks/caches-3byHT6VF.js +0 -1
- package/dist/chunks/changeDetector-Cg75mKOu.js +0 -1
- package/dist/chunks/channelNotification-BSmZprUZ.js +0 -1
- package/dist/chunks/clear-CTOCrXv_.js +0 -1
- package/dist/chunks/client-BgdjJNnC.js +0 -1
- package/dist/chunks/color-BP4FmcMn.js +0 -1
- package/dist/chunks/commands-CkfOhzGE.js +0 -1
- package/dist/chunks/commitAttribution-DKvggTZx.js +0 -1
- package/dist/chunks/compact-BtAvCkY0.js +0 -3
- package/dist/chunks/context-noninteractive-DNOyQYnM.js +0 -1
- package/dist/chunks/conversation-DR4MFYYi.js +0 -1
- package/dist/chunks/conversation-DVhyJA1O.js +0 -1
- package/dist/chunks/createSession-CIM50iEU.js +0 -1
- package/dist/chunks/datadog-vQKKqB6Z.js +0 -1
- package/dist/chunks/envLessBridgeConfig-Dj0umjOo.js +0 -1
- package/dist/chunks/exit-CwGJifQF.js +0 -1
- package/dist/chunks/extra-usage-1FUBiJOE.js +0 -1
- package/dist/chunks/extraUsage-Ca_6qcke.js +0 -1
- package/dist/chunks/extractMemories-B-yrLjpP.js +0 -1
- package/dist/chunks/fast-CFtN26up.js +0 -1
- package/dist/chunks/gates-4fq2Ws2D.js +0 -1
- package/dist/chunks/hooks-CmW7bdtz.js +0 -1
- package/dist/chunks/inboundAttachments-DZiITyN8.js +0 -1
- package/dist/chunks/initReplBridge-YGXqLbNZ.js +0 -1
- package/dist/chunks/language-CiMwEWO-.js +0 -1
- package/dist/chunks/loadAgentsDir-CjhNkoq0.js +0 -1
- package/dist/chunks/loadPluginHooks-DukITDP2.js +0 -1
- package/dist/chunks/localSearch-D8FFon8N.js +0 -1
- package/dist/chunks/login-B3TV33p4.js +0 -1
- package/dist/chunks/logout-BqbTEPv9.js +0 -1
- package/dist/chunks/mcp-DtHGTZUo.js +0 -1
- package/dist/chunks/mcp-Vj0ijoSq.js +0 -6
- package/dist/chunks/model-BYSyXf9-.js +0 -1
- package/dist/chunks/permissions-B39hfy0O.js +0 -3
- package/dist/chunks/pluginBlocklist-D2Cj4TR2.js +0 -1
- package/dist/chunks/pluginOperations-DDI1CG0K.js +0 -2
- package/dist/chunks/pluginStartupCheck-DYC8CWxw.js +0 -1
- package/dist/chunks/plugins-Bz7JxD43.js +0 -4
- package/dist/chunks/policyLimits-C-oHygGe.js +0 -1
- package/dist/chunks/poorMode-D2-4vRxb.js +0 -1
- package/dist/chunks/processBashCommand-BjdUo_Na.js +0 -1
- package/dist/chunks/processSlashCommand-tetvMLMl.js +0 -6
- package/dist/chunks/prompt-DZ1EAUlC.js +0 -1
- package/dist/chunks/prompt-DeRHlPn1.js +0 -1
- package/dist/chunks/rate-limit-options-B6QH2-xn.js +0 -1
- package/dist/chunks/refresh-DmEsCaJ0.js +0 -1
- package/dist/chunks/registry-CLaXh4Gk.js +0 -1
- package/dist/chunks/rename-eEdSZsJ2.js +0 -1
- package/dist/chunks/sandbox-adapter-DagBhoTC.js +0 -1
- package/dist/chunks/searchExtraTools-kk-wV-cC.js +0 -1
- package/dist/chunks/sessionFileAccessHooks-C-Ic-0Ry.js +0 -1
- package/dist/chunks/sessionMemory-BMtFup-Y.js +0 -1
- package/dist/chunks/sessionMemory-Bq3ECr1S.js +0 -1
- package/dist/chunks/sessionMemoryUtils-BU7N_IQG.js +0 -1
- package/dist/chunks/sessionObserver-BwAfzGUg.js +0 -1
- package/dist/chunks/sessionStorage-X2u45U9z.js +0 -1
- package/dist/chunks/setup-C2V4elOv.js +0 -3
- package/dist/chunks/sink-nZmawD5W.js +0 -1
- package/dist/chunks/sinks-BTZnXPr_.js +0 -1
- package/dist/chunks/skillChangeDetector-345QNWDp.js +0 -1
- package/dist/chunks/skillLearning-BJAfTX2G.js +0 -1
- package/dist/chunks/skillLearning-DPhuKS4j.js +0 -1
- package/dist/chunks/statusNoticeHelpers-AibXOONm.js +0 -1
- package/dist/chunks/teamHelpers-CxoQp7OY.js +0 -1
- package/dist/chunks/teammateModeSnapshot-KWxn1jxl.js +0 -1
- package/dist/chunks/teleport-CuDXJj_f.js +0 -1
- package/dist/chunks/thinkback-C1nnGg5r.js +0 -1
- package/dist/chunks/thinkback-play-BtEBESXM.js +0 -1
- package/dist/chunks/toolPool-DDj2TbY6.js +0 -1
- package/dist/chunks/toolPool-DHQyHmDY.js +0 -1
- package/dist/chunks/undercover-DSp7SB7e.js +0 -1
- package/dist/chunks/upgrade-kf1QWUo7.js +0 -1
- package/dist/chunks/useSettingsErrors-CjDaon07.js +0 -1
- package/dist/chunks/utils-CULcnflj.js +0 -1
- package/dist/chunks/voiceModeEnabled-BrA5ZhH4.js +0 -1
- package/dist/chunks/voiceStreamSTT-Dmp7Vm1S.js +0 -1
- package/dist/chunks/windowsPaths-BeDSnJ23.js +0 -2
- package/dist/chunks/windowsPaths-ttHiMKpR.js +0 -1
- package/dist/chunks/worktree-Djga1wtm.js +0 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import{n as e}from"./chunk-DR8-3Aex.js";import{n as t,s as n}from"./envUtils-BWeoiL4Y.js";import{Ko as r,Pr as i,Tr as a}from"./paths-
|
|
2
|
-
`)+1)}let t=o.command||``;t.includes(`git commit`)&&r++,t.includes(`git push`)&&i++}}}}if(
|
|
3
|
-
`)}async function
|
|
1
|
+
import{n as e}from"./chunk-DR8-3Aex.js";import{n as t,s as n}from"./envUtils-BWeoiL4Y.js";import{Ko as r,Pr as i,Tr as a}from"./paths-nIHVpTn2.js";import{D as o,E as s,J as c,O as l,U as u}from"./debug-otxXY3j-.js";import{o as d,s as f}from"./log-DSV4Ht5l.js";import{r as p,t as m}from"./execFileNoThrow-azCkYhmF.js";import{o as h,r as g}from"./stringUtils-KZoO4GUd.js";import{Er as _,Go as v,Kr as y,Lr as b,Or as x,_A as S,gA as C,it as w,jo as T,kr as ee,tt as te,uk as ne}from"./loadAgentsDir-BfEZacjM.js";import{n as E,r as re}from"./xml-CPJXOUFt.js";import{X as D}from"./rcDebugLog-Bv_x5w_B.js";import{tmpdir as ie}from"os";import{extname as ae,join as O}from"path";import{constants as oe}from"fs";import{copyFile as se,mkdir as k,mkdtemp as ce,readFile as A,readdir as j,rm as le,unlink as ue,writeFile as M}from"fs/promises";import{execFileSync as de}from"child_process";function N(){return a()}function fe(){return a()}function P(){return O(t(),`usage-data`)}function F(){return O(P(),`facets`)}function I(){return O(P(),`session-meta`)}function pe(e){return q[ae(e).toLowerCase()]||null}function me(e){let t={},n={},r=0,i=0,a=0,o=0,s=0,c=[],l=0,u={},d=!1,f=0,p=0,m=new Set,h=[],_=[],v=!1,y=!1,b=!1,x=null;for(let C of e.messages){let e=C.timestamp;if(C.type===`assistant`&&C.message){e&&(x=e);let s=C.message.usage;s&&(a+=s.input_tokens||0,o+=s.output_tokens||0);let c=C.message.content;if(Array.isArray(c)){for(let e of c)if(e.type===`tool_use`&&`name`in e){let a=e.name;t[a]=(t[a]||0)+1,(a===`Agent`||a===`Task`)&&(d=!0),a.startsWith(`mcp__`)&&(v=!0),a===`WebSearch`&&(y=!0),a===`WebFetch`&&(b=!0);let o=e.input;if(o){let e=o.file_path||``;if(e){let t=pe(e);t&&(n[t]=(n[t]||0)+1),(a===`Edit`||a===`Write`)&&m.add(e)}if(a===`Edit`){let e=o.old_string||``,t=o.new_string||``;for(let n of S(e,t))n.added&&(f+=n.count||0),n.removed&&(p+=n.count||0)}if(a===`Write`){let e=o.content||``;e&&(f+=g(e,`
|
|
2
|
+
`)+1)}let t=o.command||``;t.includes(`git commit`)&&r++,t.includes(`git push`)&&i++}}}}if(C.type===`user`&&C.message){let t=C.message.content,n=!1;if(typeof t==`string`&&t.trim())n=!0;else if(Array.isArray(t)){for(let e of t)if(e.type===`text`&&`text`in e){n=!0;break}}if(n){if(e)try{let t=new Date(e).getHours();h.push(t),_.push(e)}catch{}if(x&&e){let t=new Date(x).getTime(),n=(new Date(e).getTime()-t)/1e3;n>2&&n<3600&&c.push(n)}}if(Array.isArray(t)){for(let e of t)if(e.type===`tool_result`&&`content`in e&&e.is_error){l++;let t=e.content,n=`Other`;if(typeof t==`string`){let e=t.toLowerCase();e.includes(`exit code`)?n=`Command Failed`:e.includes(`rejected`)||e.includes(`doesn't want`)?n=`User Rejected`:e.includes(`string to replace not found`)||e.includes(`no changes`)?n=`Edit Failed`:e.includes(`modified since read`)?n=`File Changed`:e.includes(`exceeds maximum`)||e.includes(`too large`)?n=`File Too Large`:(e.includes(`file not found`)||e.includes(`does not exist`))&&(n=`File Not Found`)}u[n]=(u[n]||0)+1}}if(typeof t==`string`)t.includes(`[Request interrupted by user`)&&s++;else if(Array.isArray(t)){for(let e of t)if(e.type===`text`&&`text`in e&&e.text.includes(`[Request interrupted by user`)){s++;break}}}}return{toolCounts:t,languages:n,gitCommits:r,gitPushes:i,inputTokens:a,outputTokens:o,userInterruptions:s,userResponseTimes:c,toolErrors:l,toolErrorCategories:u,usesTaskAgent:d,usesMcp:v,usesWebSearch:y,usesWebFetch:b,linesAdded:f,linesRemoved:p,filesModified:m,messageHours:h,userMessageTimestamps:_}}function he(e){return!Number.isNaN(e.created.getTime())&&!Number.isNaN(e.modified.getTime())}function L(e){let t=me(e),n=ee(e)||`unknown`,r=e.created.toISOString(),i=Math.round((e.modified.getTime()-e.created.getTime())/1e3/60),a=0,o=0;for(let t of e.messages)if(t.type===`assistant`&&o++,t.type===`user`&&t.message){let e=t.message.content,n=!1;if(typeof e==`string`&&e.trim())n=!0;else if(Array.isArray(e)){for(let t of e)if(t.type===`text`&&`text`in t){n=!0;break}}n&&a++}return{session_id:n,project_path:e.projectPath||``,start_time:r,duration_minutes:i,user_message_count:a,assistant_message_count:o,tool_counts:t.toolCounts,languages:t.languages,git_commits:t.gitCommits,git_pushes:t.gitPushes,input_tokens:t.inputTokens,output_tokens:t.outputTokens,first_prompt:e.firstPrompt||``,summary:e.summary,user_interruptions:t.userInterruptions,user_response_times:t.userResponseTimes,tool_errors:t.toolErrors,tool_error_categories:t.toolErrorCategories,uses_task_agent:t.usesTaskAgent,uses_mcp:t.usesMcp,uses_web_search:t.usesWebSearch,uses_web_fetch:t.usesWebFetch,lines_added:t.linesAdded,lines_removed:t.linesRemoved,files_modified:t.filesModified.size,message_hours:t.messageHours,user_message_timestamps:t.userMessageTimestamps}}function ge(e){let t=[],n=L(e);t.push(`Session: ${n.session_id.slice(0,8)}`),t.push(`Date: ${n.start_time}`),t.push(`Project: ${n.project_path}`),t.push(`Duration: ${n.duration_minutes} min`),t.push(``);for(let n of e.messages)if(n.type===`user`&&n.message){let e=n.message.content;if(typeof e==`string`)t.push(`[User]: ${e.slice(0,500)}`);else if(Array.isArray(e))for(let n of e)n.type===`text`&&`text`in n&&t.push(`[User]: ${n.text.slice(0,500)}`)}else if(n.type===`assistant`&&n.message){let e=n.message.content;if(Array.isArray(e))for(let n of e)n.type===`text`&&`text`in n?t.push(`[Assistant]: ${n.text.slice(0,300)}`):n.type===`tool_use`&&`name`in n&&t.push(`[Tool: ${n.name}]`)}return t.join(`
|
|
3
|
+
`)}async function _e(e){try{return T((await w({systemPrompt:D([]),userPrompt:X+e,signal:new AbortController().signal,options:{model:N(),querySource:`insights`,agents:[],isNonInteractiveSession:!0,hasAppendSystemPrompt:!1,mcpTools:[],maxOutputTokensOverride:500}})).message.content)||e.slice(0,2e3)}catch{return e.slice(0,2e3)}}async function ve(e){let t=ge(e);if(t.length<=3e4)return t;let n=25e3,r=[];for(let e=0;e<t.length;e+=n)r.push(t.slice(e,e+n));let i=await Promise.all(r.map(_e)),a=L(e);return[`Session: ${a.session_id.slice(0,8)}`,`Date: ${a.start_time}`,`Project: ${a.project_path}`,`Duration: ${a.duration_minutes} min`,`[Long session - ${r.length} parts summarized]`,``].join(`
|
|
4
4
|
`)+i.join(`
|
|
5
5
|
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
`)}async function
|
|
8
|
+
`)}async function ye(e){let t=O(F(),`${e}.json`);try{let e=o(await A(t,{encoding:`utf-8`}));if(!H(e)){try{await ue(t)}catch{}return null}return e}catch{return null}}async function be(e){try{await k(F(),{recursive:!0})}catch{}await M(O(F(),`${e.session_id}.json`),l(e,null,2),{encoding:`utf-8`,mode:384})}async function xe(e){let t=O(I(),`${e}.json`);try{return o(await A(t,{encoding:`utf-8`}))}catch{return null}}async function Se(e){try{await k(I(),{recursive:!0})}catch{}await M(O(I(),`${e.session_id}.json`),l(e,null,2),{encoding:`utf-8`,mode:384})}async function Ce(e,t){try{let n=`${Y}${await ve(e)}
|
|
9
9
|
|
|
10
10
|
RESPOND WITH ONLY A VALID JSON OBJECT matching this schema:
|
|
11
11
|
{
|
|
@@ -19,10 +19,10 @@ RESPOND WITH ONLY A VALID JSON OBJECT matching this schema:
|
|
|
19
19
|
"friction_detail": "One sentence describing friction or empty",
|
|
20
20
|
"primary_success": "none|fast_accurate_search|correct_code_edits|good_explanations|proactive_help|multi_file_changes|good_debugging",
|
|
21
21
|
"brief_summary": "One sentence: what user wanted and whether they got it"
|
|
22
|
-
}`,r=
|
|
22
|
+
}`,r=T((await w({systemPrompt:D([]),userPrompt:n,signal:new AbortController().signal,options:{model:N(),querySource:`insights`,agents:[],isNonInteractiveSession:!0,hasAppendSystemPrompt:!1,mcpTools:[],maxOutputTokensOverride:4096}})).message.content).match(/\{[\s\S]*\}/);if(!r)return null;let i=o(r[0]);return H(i)?{...i,session_id:t}:null}catch(e){return f(Error(`Facet extraction failed: ${c(e).message}`)),null}}function we(e){let t=[];for(let n of e)for(let e of n.user_message_timestamps)try{let r=new Date(e).getTime();t.push({ts:r,sessionId:n.session_id})}catch{}t.sort((e,t)=>e.ts-t.ts);let n=new Set,r=new Set,i=0,a=new Map;for(let e=0;e<t.length;e++){let o=t[e];for(;i<e&&o.ts-t[i].ts>18e5;){let e=t[i];a.get(e.sessionId)===i&&a.delete(e.sessionId),i++}let s=a.get(o.sessionId);if(s!==void 0)for(let i=s+1;i<e;i++){let e=t[i];if(e.sessionId!==o.sessionId){let i=[o.sessionId,e.sessionId].sort().join(`:`);n.add(i),r.add(`${t[s].ts}:${o.sessionId}`),r.add(`${e.ts}:${e.sessionId}`),r.add(`${o.ts}:${o.sessionId}`);break}}a.set(o.sessionId,e)}let o=new Set;for(let e of n){let[t,n]=e.split(`:`);t&&o.add(t),n&&o.add(n)}return{overlap_events:n.size,sessions_involved:o.size,user_messages_during:r.size}}function Te(e,t){let n={total_sessions:e.length,sessions_with_facets:t.size,date_range:{start:``,end:``},total_messages:0,total_duration_hours:0,total_input_tokens:0,total_output_tokens:0,tool_counts:{},languages:{},git_commits:0,git_pushes:0,projects:{},goal_categories:{},outcomes:{},satisfaction:{},helpfulness:{},session_types:{},friction:{},success:{},session_summaries:[],total_interruptions:0,total_tool_errors:0,tool_error_categories:{},user_response_times:[],median_response_time:0,avg_response_time:0,sessions_using_task_agent:0,sessions_using_mcp:0,sessions_using_web_search:0,sessions_using_web_fetch:0,total_lines_added:0,total_lines_removed:0,total_files_modified:0,days_active:0,messages_per_day:0,message_hours:[],multi_clauding:{overlap_events:0,sessions_involved:0,user_messages_during:0}},r=[],i=[],a=[];for(let o of e){r.push(o.start_time),n.total_messages+=o.user_message_count,n.total_duration_hours+=o.duration_minutes/60,n.total_input_tokens+=o.input_tokens,n.total_output_tokens+=o.output_tokens,n.git_commits+=o.git_commits,n.git_pushes+=o.git_pushes,n.total_interruptions+=o.user_interruptions,n.total_tool_errors+=o.tool_errors;for(let[e,t]of Object.entries(o.tool_error_categories))n.tool_error_categories[e]=(n.tool_error_categories[e]||0)+t;i.push(...o.user_response_times),o.uses_task_agent&&n.sessions_using_task_agent++,o.uses_mcp&&n.sessions_using_mcp++,o.uses_web_search&&n.sessions_using_web_search++,o.uses_web_fetch&&n.sessions_using_web_fetch++,n.total_lines_added+=o.lines_added,n.total_lines_removed+=o.lines_removed,n.total_files_modified+=o.files_modified,a.push(...o.message_hours);for(let[e,t]of Object.entries(o.tool_counts))n.tool_counts[e]=(n.tool_counts[e]||0)+t;for(let[e,t]of Object.entries(o.languages))n.languages[e]=(n.languages[e]||0)+t;o.project_path&&(n.projects[o.project_path]=(n.projects[o.project_path]||0)+1);let e=t.get(o.session_id);if(e){for(let[t,r]of V(e.goal_categories))r>0&&(n.goal_categories[t]=(n.goal_categories[t]||0)+r);n.outcomes[e.outcome]=(n.outcomes[e.outcome]||0)+1;for(let[t,r]of V(e.user_satisfaction_counts))r>0&&(n.satisfaction[t]=(n.satisfaction[t]||0)+r);n.helpfulness[e.claude_helpfulness]=(n.helpfulness[e.claude_helpfulness]||0)+1,n.session_types[e.session_type]=(n.session_types[e.session_type]||0)+1;for(let[t,r]of V(e.friction_counts))r>0&&(n.friction[t]=(n.friction[t]||0)+r);e.primary_success!==`none`&&(n.success[e.primary_success]=(n.success[e.primary_success]||0)+1)}n.session_summaries.length<50&&n.session_summaries.push({id:o.session_id.slice(0,8),date:o.start_time.split(`T`)[0]||``,summary:o.summary||o.first_prompt.slice(0,100),goal:e?.underlying_goal})}if(r.sort(),n.date_range.start=r[0]?.split(`T`)[0]||``,n.date_range.end=r[r.length-1]?.split(`T`)[0]||``,n.user_response_times=i,i.length>0){let e=[...i].sort((e,t)=>e-t);n.median_response_time=e[Math.floor(e.length/2)]||0,n.avg_response_time=i.reduce((e,t)=>e+t,0)/i.length}return n.days_active=new Set(r.map(e=>e.split(`T`)[0])).size,n.messages_per_day=n.days_active>0?Math.round(n.total_messages/n.days_active*10)/10:0,n.message_hours=a,n.multi_clauding=we(e),n}async function R(e,t){try{let n=T((await w({systemPrompt:D([]),userPrompt:e.prompt+`
|
|
23
23
|
|
|
24
24
|
DATA:
|
|
25
|
-
`+t,signal:new AbortController().signal,options:{model:
|
|
25
|
+
`+t,signal:new AbortController().signal,options:{model:fe(),querySource:`insights`,agents:[],isNonInteractiveSession:!0,hasAppendSystemPrompt:!1,mcpTools:[],maxOutputTokensOverride:e.maxTokens}})).message.content);if(n){let t=n.match(/\{[\s\S]*\}/);if(t)try{return{name:e.name,result:o(t[0])}}catch{return{name:e.name,result:null}}}return{name:e.name,result:null}}catch(t){return f(Error(`${e.name} failed: ${c(t).message}`)),{name:e.name,result:null}}}async function Ee(e,t){let n=Array.from(t.values()).slice(0,50).map(e=>`- ${e.brief_summary} (${e.outcome}, ${e.claude_helpfulness})`).join(`
|
|
26
26
|
`),r=Array.from(t.values()).filter(e=>e.friction_detail).slice(0,20).map(e=>`- ${e.friction_detail}`).join(`
|
|
27
27
|
`),i=Array.from(t.values()).flatMap(e=>e.user_instructions_to_claude||[]).slice(0,15).map(e=>`- ${e}`).join(`
|
|
28
28
|
`),a=l({sessions:e.total_sessions,analyzed:e.sessions_with_facets,date_range:e.date_range,messages:e.total_messages,hours:Math.round(e.total_duration_hours),commits:e.git_commits,top_tools:Object.entries(e.tool_counts).sort((e,t)=>t[1]-e[1]).slice(0,8),top_goals:Object.entries(e.goal_categories).sort((e,t)=>t[1]-e[1]).slice(0,8),outcomes:e.outcomes,satisfaction:e.satisfaction,friction:e.friction,success:e.success,languages:e.languages},null,2)+`
|
|
@@ -34,7 +34,7 @@ FRICTION DETAILS:
|
|
|
34
34
|
`+r+`
|
|
35
35
|
|
|
36
36
|
USER INSTRUCTIONS TO CLAUDE:
|
|
37
|
-
`+(i||`None captured`),o=await Promise.all(
|
|
37
|
+
`+(i||`None captured`),o=await Promise.all(Z.map(e=>R(e,a))),s={};for(let{name:e,result:t}of o)t&&(s[e]=t);let c=await R({name:`at_a_glance`,prompt:`You're writing an "At a Glance" summary for a Claude Code usage insights report for Claude Code users. The goal is to help them understand their usage and improve how they can use Claude better, especially as models improve.
|
|
38
38
|
|
|
39
39
|
Use this 4-part structure:
|
|
40
40
|
|
|
@@ -81,33 +81,33 @@ ${s.suggestions?.usage_patterns?.map(e=>`- ${e.title}: ${e.suggestion}`).join(`
|
|
|
81
81
|
|
|
82
82
|
## On the Horizon (ambitious workflows for better models)
|
|
83
83
|
${s.on_the_horizon?.opportunities?.map(e=>`- ${e.title}: ${e.whats_possible}`).join(`
|
|
84
|
-
`)||``}`,maxTokens:8192},``);return c.result&&(s.at_a_glance=c.result),s}function
|
|
85
|
-
<div class="bar-label">${
|
|
84
|
+
`)||``}`,maxTokens:8192},``);return c.result&&(s.at_a_glance=c.result),s}function z(e){return E(e).replace(/\*\*(.+?)\*\*/g,`<strong>$1</strong>`)}function B(e,t,n=6,r){let i;if(i=r?r.filter(t=>t in e&&(e[t]??0)>0).map(t=>[t,e[t]??0]):Object.entries(e).sort((e,t)=>t[1]-e[1]).slice(0,n),i.length===0)return`<p class="empty">No data</p>`;let a=Math.max(...i.map(e=>e[1]));return i.map(([e,n])=>{let r=n/a*100;return`<div class="bar-row">
|
|
85
|
+
<div class="bar-label">${E(J[e]||e.replace(/_/g,` `).replace(/\b\w/g,e=>e.toUpperCase()))}</div>
|
|
86
86
|
<div class="bar-track"><div class="bar-fill" style="width:${r}%;background:${t}"></div></div>
|
|
87
87
|
<div class="bar-value">${n}</div>
|
|
88
88
|
</div>`}).join(`
|
|
89
|
-
`)}function
|
|
89
|
+
`)}function De(e){if(e.length===0)return`<p class="empty">No response time data</p>`;let t={"2-10s":0,"10-30s":0,"30s-1m":0,"1-2m":0,"2-5m":0,"5-15m":0,">15m":0};for(let n of e)n<10?t[`2-10s`]=(t[`2-10s`]??0)+1:n<30?t[`10-30s`]=(t[`10-30s`]??0)+1:n<60?t[`30s-1m`]=(t[`30s-1m`]??0)+1:n<120?t[`1-2m`]=(t[`1-2m`]??0)+1:n<300?t[`2-5m`]=(t[`2-5m`]??0)+1:n<900?t[`5-15m`]=(t[`5-15m`]??0)+1:t[`>15m`]=(t[`>15m`]??0)+1;let n=Math.max(...Object.values(t));return n===0?`<p class="empty">No response time data</p>`:Object.entries(t).map(([e,t])=>`<div class="bar-row">
|
|
90
90
|
<div class="bar-label">${e}</div>
|
|
91
91
|
<div class="bar-track"><div class="bar-fill" style="width:${t/n*100}%;background:#6366f1"></div></div>
|
|
92
92
|
<div class="bar-value">${t}</div>
|
|
93
93
|
</div>`).join(`
|
|
94
|
-
`)}function
|
|
94
|
+
`)}function Oe(e){if(e.length===0)return`<p class="empty">No time data</p>`;let t=[{label:`Morning (6-12)`,range:[6,7,8,9,10,11]},{label:`Afternoon (12-18)`,range:[12,13,14,15,16,17]},{label:`Evening (18-24)`,range:[18,19,20,21,22,23]},{label:`Night (0-6)`,range:[0,1,2,3,4,5]}],n={};for(let t of e)n[t]=(n[t]||0)+1;let r=t.map(e=>({label:e.label,count:e.range.reduce((e,t)=>e+(n[t]||0),0)})),i=Math.max(...r.map(e=>e.count))||1;return`<div id="hour-histogram">${r.map(e=>`
|
|
95
95
|
<div class="bar-row">
|
|
96
96
|
<div class="bar-label">${e.label}</div>
|
|
97
97
|
<div class="bar-track"><div class="bar-fill" style="width:${e.count/i*100}%;background:#8b5cf6"></div></div>
|
|
98
98
|
<div class="bar-value">${e.count}</div>
|
|
99
99
|
</div>`).join(`
|
|
100
|
-
`)}</div>`}function
|
|
100
|
+
`)}</div>`}function ke(e){let t={};for(let n of e)t[n]=(t[n]||0)+1;return l(t)}function Ae(e,t){let n=e=>e?e.split(`
|
|
101
101
|
|
|
102
|
-
`).map(e=>{let t=
|
|
102
|
+
`).map(e=>{let t=E(e);return t=t.replace(/\*\*(.+?)\*\*/g,`<strong>$1</strong>`),t=t.replace(/^- /gm,`• `),t=t.replace(/\n/g,`<br>`),`<p>${t}</p>`}).join(`
|
|
103
103
|
`):``,r=t.at_a_glance,i=r?`
|
|
104
104
|
<div class="at-a-glance">
|
|
105
105
|
<div class="glance-title">At a Glance</div>
|
|
106
106
|
<div class="glance-sections">
|
|
107
|
-
${r.whats_working?`<div class="glance-section"><strong>What's working:</strong> ${
|
|
108
|
-
${r.whats_hindering?`<div class="glance-section"><strong>What's hindering you:</strong> ${
|
|
109
|
-
${r.quick_wins?`<div class="glance-section"><strong>Quick wins to try:</strong> ${
|
|
110
|
-
${r.ambitious_workflows?`<div class="glance-section"><strong>Ambitious workflows:</strong> ${
|
|
107
|
+
${r.whats_working?`<div class="glance-section"><strong>What's working:</strong> ${z(r.whats_working)} <a href="#section-wins" class="see-more">Impressive Things You Did →</a></div>`:``}
|
|
108
|
+
${r.whats_hindering?`<div class="glance-section"><strong>What's hindering you:</strong> ${z(r.whats_hindering)} <a href="#section-friction" class="see-more">Where Things Go Wrong →</a></div>`:``}
|
|
109
|
+
${r.quick_wins?`<div class="glance-section"><strong>Quick wins to try:</strong> ${z(r.quick_wins)} <a href="#section-features" class="see-more">Features to Try →</a></div>`:``}
|
|
110
|
+
${r.ambitious_workflows?`<div class="glance-section"><strong>Ambitious workflows:</strong> ${z(r.ambitious_workflows)} <a href="#section-horizon" class="see-more">On the Horizon →</a></div>`:``}
|
|
111
111
|
</div>
|
|
112
112
|
</div>
|
|
113
113
|
`:``,a=t.project_areas?.areas||[],o=a.length>0?`
|
|
@@ -116,10 +116,10 @@ ${s.on_the_horizon?.opportunities?.map(e=>`- ${e.title}: ${e.whats_possible}`).j
|
|
|
116
116
|
${a.map(e=>`
|
|
117
117
|
<div class="project-area">
|
|
118
118
|
<div class="area-header">
|
|
119
|
-
<span class="area-name">${
|
|
119
|
+
<span class="area-name">${E(e.name)}</span>
|
|
120
120
|
<span class="area-count">~${e.session_count} sessions</span>
|
|
121
121
|
</div>
|
|
122
|
-
<div class="area-desc">${
|
|
122
|
+
<div class="area-desc">${E(e.description)}</div>
|
|
123
123
|
</div>
|
|
124
124
|
`).join(``)}
|
|
125
125
|
</div>
|
|
@@ -127,28 +127,28 @@ ${s.on_the_horizon?.opportunities?.map(e=>`- ${e.title}: ${e.whats_possible}`).j
|
|
|
127
127
|
<h2 id="section-usage">How You Use Claude Code</h2>
|
|
128
128
|
<div class="narrative">
|
|
129
129
|
${n(s.narrative)}
|
|
130
|
-
${s.key_pattern?`<div class="key-insight"><strong>Key pattern:</strong> ${
|
|
130
|
+
${s.key_pattern?`<div class="key-insight"><strong>Key pattern:</strong> ${E(s.key_pattern)}</div>`:``}
|
|
131
131
|
</div>
|
|
132
132
|
`:``,l=t.what_works,u=l?.impressive_workflows&&l.impressive_workflows.length>0?`
|
|
133
133
|
<h2 id="section-wins">Impressive Things You Did</h2>
|
|
134
|
-
${l.intro?`<p class="section-intro">${
|
|
134
|
+
${l.intro?`<p class="section-intro">${E(l.intro)}</p>`:``}
|
|
135
135
|
<div class="big-wins">
|
|
136
136
|
${l.impressive_workflows.map(e=>`
|
|
137
137
|
<div class="big-win">
|
|
138
|
-
<div class="big-win-title">${
|
|
139
|
-
<div class="big-win-desc">${
|
|
138
|
+
<div class="big-win-title">${E(e.title||``)}</div>
|
|
139
|
+
<div class="big-win-desc">${E(e.description||``)}</div>
|
|
140
140
|
</div>
|
|
141
141
|
`).join(``)}
|
|
142
142
|
</div>
|
|
143
143
|
`:``,d=t.friction_analysis,f=d?.categories&&d.categories.length>0?`
|
|
144
144
|
<h2 id="section-friction">Where Things Go Wrong</h2>
|
|
145
|
-
${d.intro?`<p class="section-intro">${
|
|
145
|
+
${d.intro?`<p class="section-intro">${E(d.intro)}</p>`:``}
|
|
146
146
|
<div class="friction-categories">
|
|
147
147
|
${d.categories.map(e=>`
|
|
148
148
|
<div class="friction-category">
|
|
149
|
-
<div class="friction-title">${
|
|
150
|
-
<div class="friction-desc">${
|
|
151
|
-
${e.examples?`<ul class="friction-examples">${e.examples.map(e=>`<li>${
|
|
149
|
+
<div class="friction-title">${E(e.category||``)}</div>
|
|
150
|
+
<div class="friction-desc">${E(e.description||``)}</div>
|
|
151
|
+
${e.examples?`<ul class="friction-examples">${e.examples.map(e=>`<li>${E(e)}</li>`).join(``)}</ul>`:``}
|
|
152
152
|
</div>
|
|
153
153
|
`).join(``)}
|
|
154
154
|
</div>
|
|
@@ -163,12 +163,12 @@ ${s.on_the_horizon?.opportunities?.map(e=>`- ${e.title}: ${e.whats_possible}`).j
|
|
|
163
163
|
</div>
|
|
164
164
|
${p.claude_md_additions.map((e,t)=>`
|
|
165
165
|
<div class="claude-md-item">
|
|
166
|
-
<input type="checkbox" id="cmd-${t}" class="cmd-checkbox" checked data-text="${
|
|
166
|
+
<input type="checkbox" id="cmd-${t}" class="cmd-checkbox" checked data-text="${E(e.prompt_scaffold||e.where||`Add to CLAUDE.md`)}\\n\\n${E(e.addition)}">
|
|
167
167
|
<label for="cmd-${t}">
|
|
168
|
-
<code class="cmd-code">${
|
|
168
|
+
<code class="cmd-code">${E(e.addition)}</code>
|
|
169
169
|
<button class="copy-btn" onclick="copyCmdItem(${t})">Copy</button>
|
|
170
170
|
</label>
|
|
171
|
-
<div class="cmd-why">${
|
|
171
|
+
<div class="cmd-why">${E(e.why)}</div>
|
|
172
172
|
</div>
|
|
173
173
|
`).join(``)}
|
|
174
174
|
</div>
|
|
@@ -178,14 +178,14 @@ ${s.on_the_horizon?.opportunities?.map(e=>`- ${e.title}: ${e.whats_possible}`).j
|
|
|
178
178
|
<div class="features-section">
|
|
179
179
|
${p.features_to_try.map(e=>`
|
|
180
180
|
<div class="feature-card">
|
|
181
|
-
<div class="feature-title">${
|
|
182
|
-
<div class="feature-oneliner">${
|
|
183
|
-
<div class="feature-why"><strong>Why for you:</strong> ${
|
|
181
|
+
<div class="feature-title">${E(e.feature||``)}</div>
|
|
182
|
+
<div class="feature-oneliner">${E(e.one_liner||``)}</div>
|
|
183
|
+
<div class="feature-why"><strong>Why for you:</strong> ${E(e.why_for_you||``)}</div>
|
|
184
184
|
${e.example_code?`
|
|
185
185
|
<div class="feature-examples">
|
|
186
186
|
<div class="feature-example">
|
|
187
187
|
<div class="example-code-row">
|
|
188
|
-
<code class="example-code">${
|
|
188
|
+
<code class="example-code">${E(e.example_code)}</code>
|
|
189
189
|
<button class="copy-btn" onclick="copyText(this)">Copy</button>
|
|
190
190
|
</div>
|
|
191
191
|
</div>
|
|
@@ -201,14 +201,14 @@ ${s.on_the_horizon?.opportunities?.map(e=>`- ${e.title}: ${e.whats_possible}`).j
|
|
|
201
201
|
<div class="patterns-section">
|
|
202
202
|
${p.usage_patterns.map(e=>`
|
|
203
203
|
<div class="pattern-card">
|
|
204
|
-
<div class="pattern-title">${
|
|
205
|
-
<div class="pattern-summary">${
|
|
206
|
-
${e.detail?`<div class="pattern-detail">${
|
|
204
|
+
<div class="pattern-title">${E(e.title||``)}</div>
|
|
205
|
+
<div class="pattern-summary">${E(e.suggestion||``)}</div>
|
|
206
|
+
${e.detail?`<div class="pattern-detail">${E(e.detail)}</div>`:``}
|
|
207
207
|
${e.copyable_prompt?`
|
|
208
208
|
<div class="copyable-prompt-section">
|
|
209
209
|
<div class="prompt-label">Paste into Claude Code:</div>
|
|
210
210
|
<div class="copyable-prompt-row">
|
|
211
|
-
<code class="copyable-prompt">${
|
|
211
|
+
<code class="copyable-prompt">${E(e.copyable_prompt)}</code>
|
|
212
212
|
<button class="copy-btn" onclick="copyText(this)">Copy</button>
|
|
213
213
|
</div>
|
|
214
214
|
</div>
|
|
@@ -219,14 +219,14 @@ ${s.on_the_horizon?.opportunities?.map(e=>`- ${e.title}: ${e.whats_possible}`).j
|
|
|
219
219
|
`:``}
|
|
220
220
|
`:``,h=t.on_the_horizon,g=h?.opportunities&&h.opportunities.length>0?`
|
|
221
221
|
<h2 id="section-horizon">On the Horizon</h2>
|
|
222
|
-
${h.intro?`<p class="section-intro">${
|
|
222
|
+
${h.intro?`<p class="section-intro">${E(h.intro)}</p>`:``}
|
|
223
223
|
<div class="horizon-section">
|
|
224
224
|
${h.opportunities.map(e=>`
|
|
225
225
|
<div class="horizon-card">
|
|
226
|
-
<div class="horizon-title">${
|
|
227
|
-
<div class="horizon-possible">${
|
|
228
|
-
${e.how_to_try?`<div class="horizon-tip"><strong>Getting started:</strong> ${
|
|
229
|
-
${e.copyable_prompt?`<div class="pattern-prompt"><div class="prompt-label">Paste into Claude Code:</div><code>${
|
|
226
|
+
<div class="horizon-title">${E(e.title||``)}</div>
|
|
227
|
+
<div class="horizon-possible">${E(e.whats_possible||``)}</div>
|
|
228
|
+
${e.how_to_try?`<div class="horizon-tip"><strong>Getting started:</strong> ${E(e.how_to_try)}</div>`:``}
|
|
229
|
+
${e.copyable_prompt?`<div class="pattern-prompt"><div class="prompt-label">Paste into Claude Code:</div><code>${E(e.copyable_prompt)}</code><button class="copy-btn" onclick="copyText(this)">Copy</button></div>`:``}
|
|
230
230
|
</div>
|
|
231
231
|
`).join(``)}
|
|
232
232
|
</div>
|
|
@@ -243,9 +243,9 @@ ${s.on_the_horizon?.opportunities?.map(e=>`- ${e.title}: ${e.whats_possible}`).j
|
|
|
243
243
|
<div class="suggestions-section">
|
|
244
244
|
${_.map(e=>`
|
|
245
245
|
<div class="feedback-card team-card">
|
|
246
|
-
<div class="feedback-title">${
|
|
247
|
-
<div class="feedback-detail">${
|
|
248
|
-
${e.evidence?`<div class="feedback-evidence"><em>Evidence:</em> ${
|
|
246
|
+
<div class="feedback-title">${E(e.title||``)}</div>
|
|
247
|
+
<div class="feedback-detail">${E(e.detail||``)}</div>
|
|
248
|
+
${e.evidence?`<div class="feedback-evidence"><em>Evidence:</em> ${E(e.evidence)}</div>`:``}
|
|
249
249
|
</div>
|
|
250
250
|
`).join(``)}
|
|
251
251
|
</div>
|
|
@@ -262,9 +262,9 @@ ${s.on_the_horizon?.opportunities?.map(e=>`- ${e.title}: ${e.whats_possible}`).j
|
|
|
262
262
|
<div class="suggestions-section">
|
|
263
263
|
${v.map(e=>`
|
|
264
264
|
<div class="feedback-card model-card">
|
|
265
|
-
<div class="feedback-title">${
|
|
266
|
-
<div class="feedback-detail">${
|
|
267
|
-
${e.evidence?`<div class="feedback-evidence"><em>Evidence:</em> ${
|
|
265
|
+
<div class="feedback-title">${E(e.title||``)}</div>
|
|
266
|
+
<div class="feedback-detail">${E(e.detail||``)}</div>
|
|
267
|
+
${e.evidence?`<div class="feedback-evidence"><em>Evidence:</em> ${E(e.evidence)}</div>`:``}
|
|
268
268
|
</div>
|
|
269
269
|
`).join(``)}
|
|
270
270
|
</div>
|
|
@@ -273,8 +273,8 @@ ${s.on_the_horizon?.opportunities?.map(e=>`- ${e.title}: ${e.whats_possible}`).j
|
|
|
273
273
|
`:``}
|
|
274
274
|
`:``,b=t.fun_ending,x=b?.headline?`
|
|
275
275
|
<div class="fun-ending">
|
|
276
|
-
<div class="fun-headline">"${
|
|
277
|
-
${b.detail?`<div class="fun-detail">${
|
|
276
|
+
<div class="fun-headline">"${E(b.headline)}"</div>
|
|
277
|
+
${b.detail?`<div class="fun-detail">${E(b.detail)}</div>`:``}
|
|
278
278
|
</div>
|
|
279
279
|
`:``,S=`
|
|
280
280
|
function toggleCollapsible(header) {
|
|
@@ -316,7 +316,7 @@ ${s.on_the_horizon?.opportunities?.map(e=>`- ${e.title}: ${e.whats_possible}`).j
|
|
|
316
316
|
}
|
|
317
317
|
}
|
|
318
318
|
// Timezone selector for time of day chart (data is from our own analytics, not user input)
|
|
319
|
-
const rawHourCounts = ${
|
|
319
|
+
const rawHourCounts = ${ke(e.message_hours)};
|
|
320
320
|
function updateHourHistogram(offsetFromPT) {
|
|
321
321
|
const periods = [
|
|
322
322
|
{ label: "Morning (6-12)", range: [6,7,8,9,10,11] },
|
|
@@ -521,22 +521,22 @@ ${s.on_the_horizon?.opportunities?.map(e=>`- ${e.title}: ${e.whats_possible}`).j
|
|
|
521
521
|
<div class="charts-row">
|
|
522
522
|
<div class="chart-card">
|
|
523
523
|
<div class="chart-title">What You Wanted</div>
|
|
524
|
-
${
|
|
524
|
+
${B(e.goal_categories,`#2563eb`)}
|
|
525
525
|
</div>
|
|
526
526
|
<div class="chart-card">
|
|
527
527
|
<div class="chart-title">Top Tools Used</div>
|
|
528
|
-
${
|
|
528
|
+
${B(e.tool_counts,`#0891b2`)}
|
|
529
529
|
</div>
|
|
530
530
|
</div>
|
|
531
531
|
|
|
532
532
|
<div class="charts-row">
|
|
533
533
|
<div class="chart-card">
|
|
534
534
|
<div class="chart-title">Languages</div>
|
|
535
|
-
${
|
|
535
|
+
${B(e.languages,`#10b981`)}
|
|
536
536
|
</div>
|
|
537
537
|
<div class="chart-card">
|
|
538
538
|
<div class="chart-title">Session Types</div>
|
|
539
|
-
${
|
|
539
|
+
${B(e.session_types||{},`#8b5cf6`)}
|
|
540
540
|
</div>
|
|
541
541
|
</div>
|
|
542
542
|
|
|
@@ -545,7 +545,7 @@ ${s.on_the_horizon?.opportunities?.map(e=>`- ${e.title}: ${e.whats_possible}`).j
|
|
|
545
545
|
<!-- Response Time Distribution -->
|
|
546
546
|
<div class="chart-card" style="margin: 24px 0;">
|
|
547
547
|
<div class="chart-title">User Response Time Distribution</div>
|
|
548
|
-
${
|
|
548
|
+
${De(e.user_response_times)}
|
|
549
549
|
<div style="font-size: 12px; color: #64748b; margin-top: 8px;">
|
|
550
550
|
Median: ${e.median_response_time.toFixed(1)}s • Average: ${e.avg_response_time.toFixed(1)}s
|
|
551
551
|
</div>
|
|
@@ -595,11 +595,11 @@ ${s.on_the_horizon?.opportunities?.map(e=>`- ${e.title}: ${e.whats_possible}`).j
|
|
|
595
595
|
</select>
|
|
596
596
|
<input type="number" id="custom-offset" placeholder="UTC offset" style="display: none; width: 80px; font-size: 12px; padding: 4px; border-radius: 4px; border: 1px solid #e2e8f0;">
|
|
597
597
|
</div>
|
|
598
|
-
${
|
|
598
|
+
${Oe(e.message_hours)}
|
|
599
599
|
</div>
|
|
600
600
|
<div class="chart-card">
|
|
601
601
|
<div class="chart-title">Tool Errors Encountered</div>
|
|
602
|
-
${Object.keys(e.tool_error_categories).length>0?
|
|
602
|
+
${Object.keys(e.tool_error_categories).length>0?B(e.tool_error_categories,`#dc2626`):`<p class="empty">No tool errors</p>`}
|
|
603
603
|
</div>
|
|
604
604
|
</div>
|
|
605
605
|
|
|
@@ -608,11 +608,11 @@ ${s.on_the_horizon?.opportunities?.map(e=>`- ${e.title}: ${e.whats_possible}`).j
|
|
|
608
608
|
<div class="charts-row">
|
|
609
609
|
<div class="chart-card">
|
|
610
610
|
<div class="chart-title">What Helped Most (Claude's Capabilities)</div>
|
|
611
|
-
${
|
|
611
|
+
${B(e.success,`#16a34a`)}
|
|
612
612
|
</div>
|
|
613
613
|
<div class="chart-card">
|
|
614
614
|
<div class="chart-title">Outcomes</div>
|
|
615
|
-
${
|
|
615
|
+
${B(e.outcomes,`#8b5cf6`,6,Pe)}
|
|
616
616
|
</div>
|
|
617
617
|
</div>
|
|
618
618
|
|
|
@@ -621,11 +621,11 @@ ${s.on_the_horizon?.opportunities?.map(e=>`- ${e.title}: ${e.whats_possible}`).j
|
|
|
621
621
|
<div class="charts-row">
|
|
622
622
|
<div class="chart-card">
|
|
623
623
|
<div class="chart-title">Primary Friction Types</div>
|
|
624
|
-
${
|
|
624
|
+
${B(e.friction,`#dc2626`)}
|
|
625
625
|
</div>
|
|
626
626
|
<div class="chart-card">
|
|
627
627
|
<div class="chart-title">Inferred Satisfaction (model-estimated)</div>
|
|
628
|
-
${
|
|
628
|
+
${B(e.satisfaction,`#eab308`,6,Q)}
|
|
629
629
|
</div>
|
|
630
630
|
</div>
|
|
631
631
|
|
|
@@ -639,7 +639,7 @@ ${s.on_the_horizon?.opportunities?.map(e=>`- ${e.title}: ${e.whats_possible}`).j
|
|
|
639
639
|
</div>
|
|
640
640
|
<script>${S}<\/script>
|
|
641
641
|
</body>
|
|
642
|
-
</html>`}async function
|
|
642
|
+
</html>`}async function je(){let e=_(),t;try{t=await j(e,{withFileTypes:!0})}catch{return[]}let n=t.filter(e=>e.isDirectory()).map(t=>O(e,t.name)),r=[];for(let e=0;e<n.length;e++){let t=await x(n[e]);for(let[e,n]of t)r.push({sessionId:e,path:n.path,mtime:n.mtime,size:n.size});e%10==9&&await new Promise(e=>setImmediate(e))}return r.sort((e,t)=>t.mtime-e.mtime),r}async function Me(e){let n;if(process.env.USER_TYPE===`ant`&&e?.collectRemote){let{hosts:e,totalCopied:r}=await K(O(t(),`projects`));n={hosts:e,totalCopied:r}}let r=await je(),i=r.length,a=[],o=[];for(let e=0;e<r.length;e+=50){let t=r.slice(e,e+50),n=await Promise.all(t.map(async e=>({sessionInfo:e,cached:await xe(e.sessionId)})));for(let{sessionInfo:e,cached:t}of n)t?a.push(t):o.length<200&&o.push(e)}let s=new Map,c=e=>{for(let t of e.messages.slice(0,5))if(t.type===`user`&&t.message){let e=t.message.content;if(typeof e==`string`&&(e.includes(`RESPOND WITH ONLY A VALID JSON OBJECT`)||e.includes(`record_facets`)))return!0}return!1};for(let e=0;e<o.length;e+=10){let t=o.slice(e,e+10),n=await Promise.all(t.map(async e=>{try{return await y(e.path)}catch{return[]}})),r=[];for(let e of n)for(let t of e){if(c(t)||!he(t))continue;let e=L(t);a.push(e),r.push(e),s.set(e.session_id,t)}await Promise.all(r.map(e=>Se(e)))}let l=new Map;for(let e of a){let t=l.get(e.session_id);(!t||e.user_message_count>t.user_message_count||e.user_message_count===t.user_message_count&&e.duration_minutes>t.duration_minutes)&&l.set(e.session_id,e)}let u=new Set(l.keys());a=[...l.values()];for(let e of s.keys())u.has(e)||s.delete(e);a.sort((e,t)=>t.start_time.localeCompare(e.start_time));let d=a.filter(e=>!(e.user_message_count<2||e.duration_minutes<1)),f=new Map,p=[],m=await Promise.all(d.map(async e=>({sessionId:e.session_id,cached:await ye(e.session_id)})));for(let{sessionId:e,cached:t}of m)if(t)f.set(e,t);else{let t=s.get(e);t&&p.length<50&&p.push({log:t,sessionId:e})}for(let e=0;e<p.length;e+=50){let t=p.slice(e,e+50),n=await Promise.all(t.map(async({log:e,sessionId:t})=>({sessionId:t,newFacets:await Ce(e,t)}))),r=[];for(let{sessionId:e,newFacets:t}of n)t&&(f.set(e,t),r.push(t));await Promise.all(r.map(e=>be(e)))}let h=e=>{let t=f.get(e);if(!t)return!1;let n=t.goal_categories,r=Ne(n).filter(e=>(n[e]??0)>0);return r.length===1&&r[0]===`warmup_minimal`},g=d.filter(e=>!h(e.session_id)),_=new Map;for(let[e,t]of f)h(e)||_.set(e,t);let v=Te(g,_);v.total_sessions_scanned=i;let b=await Ee(v,f),x=Ae(v,b);try{await k(P(),{recursive:!0})}catch{}let S=O(P(),`report.html`);return await M(S,x,{encoding:`utf-8`,mode:384}),{insights:b,htmlPath:S,data:v,remoteStats:n,facets:_}}function V(e){return e?Object.entries(e):[]}function Ne(e){return e?Object.keys(e):[]}function H(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.underlying_goal==`string`&&typeof t.outcome==`string`&&typeof t.brief_summary==`string`&&t.goal_categories!==null&&typeof t.goal_categories==`object`&&t.user_satisfaction_counts!==null&&typeof t.user_satisfaction_counts==`object`&&t.friction_counts!==null&&typeof t.friction_counts==`object`}var U,W,G,K,q,J,Y,X,Z,Q,Pe,$;e((()=>{C(),te(),r(),n(),u(),p(),d(),v(),i(),b(),s(),h(),ne(),re(),U=process.env.USER_TYPE===`ant`?async()=>{let{stdout:e,code:t}=await m(`coder`,[`list`,`-o`,`json`],{timeout:3e4});if(t!==0)return[];try{return o(e).filter(e=>e.latest_build?.status===`running`).map(e=>e.name)}catch{return[]}}:async()=>[],W=process.env.USER_TYPE===`ant`?async e=>{let{stdout:t,code:n}=await m(`ssh`,[`${e}.coder`,`find /root/.claude/projects -name "*.jsonl" 2>/dev/null | wc -l`],{timeout:3e4});return n===0&&parseInt(t.trim(),10)||0}:async()=>0,G=process.env.USER_TYPE===`ant`?async(e,t)=>{let n={copied:0,skipped:0},r=await ce(O(ie(),`claude-hs-`));try{if((await m(`scp`,[`-rq`,`${e}.coder:/root/.claude/projects/`,r],{timeout:3e5})).code!==0)return n;let i=O(r,`projects`),a;try{a=await j(i,{withFileTypes:!0})}catch{return n}await Promise.all(a.map(async r=>{let a=r.name,o=O(i,a);if(!r.isDirectory())return;let s=O(t,`${a}__${e}`);try{await k(s,{recursive:!0})}catch{}let c;try{c=await j(o,{withFileTypes:!0})}catch{return}await Promise.all(c.map(async e=>{let t=e.name;if(!t.endsWith(`.jsonl`))return;let r=O(o,t),i=O(s,t);try{await se(r,i,oe.COPYFILE_EXCL),n.copied++}catch{n.skipped++}}))}))}finally{try{await le(r,{recursive:!0,force:!0})}catch{}}return n}:async()=>({copied:0,skipped:0}),K=process.env.USER_TYPE===`ant`?async e=>{let t=await U(),n=[],r=0,i=0,a=await Promise.all(t.map(async t=>{let n=await W(t);if(n>0){let{copied:r,skipped:i}=await G(t,e);return{name:t,sessionCount:n,copied:r,skipped:i}}return{name:t,sessionCount:n,copied:0,skipped:0}}));for(let e of a)n.push({name:e.name,sessionCount:e.sessionCount}),r+=e.copied,i+=e.skipped;return{hosts:n,totalCopied:r,totalSkipped:i}}:async()=>({hosts:[],totalCopied:0,totalSkipped:0}),q={".ts":`TypeScript`,".tsx":`TypeScript`,".js":`JavaScript`,".jsx":`JavaScript`,".py":`Python`,".rb":`Ruby`,".go":`Go`,".rs":`Rust`,".java":`Java`,".md":`Markdown`,".json":`JSON`,".yaml":`YAML`,".yml":`YAML`,".sh":`Shell`,".css":`CSS`,".html":`HTML`},J={debug_investigate:`Debug/Investigate`,implement_feature:`Implement Feature`,fix_bug:`Fix Bug`,write_script_tool:`Write Script/Tool`,refactor_code:`Refactor Code`,configure_system:`Configure System`,create_pr_commit:`Create PR/Commit`,analyze_data:`Analyze Data`,understand_codebase:`Understand Codebase`,write_tests:`Write Tests`,write_docs:`Write Docs`,deploy_infra:`Deploy/Infra`,warmup_minimal:`Cache Warmup`,fast_accurate_search:`Fast/Accurate Search`,correct_code_edits:`Correct Code Edits`,good_explanations:`Good Explanations`,proactive_help:`Proactive Help`,multi_file_changes:`Multi-file Changes`,handled_complexity:`Multi-file Changes`,good_debugging:`Good Debugging`,misunderstood_request:`Misunderstood Request`,wrong_approach:`Wrong Approach`,buggy_code:`Buggy Code`,user_rejected_action:`User Rejected Action`,claude_got_blocked:`Claude Got Blocked`,user_stopped_early:`User Stopped Early`,wrong_file_or_location:`Wrong File/Location`,excessive_changes:`Excessive Changes`,slow_or_verbose:`Slow/Verbose`,tool_failed:`Tool Failed`,user_unclear:`User Unclear`,external_issue:`External Issue`,frustrated:`Frustrated`,dissatisfied:`Dissatisfied`,likely_satisfied:`Likely Satisfied`,satisfied:`Satisfied`,happy:`Happy`,unsure:`Unsure`,neutral:`Neutral`,delighted:`Delighted`,single_task:`Single Task`,multi_task:`Multi Task`,iterative_refinement:`Iterative Refinement`,exploration:`Exploration`,quick_question:`Quick Question`,fully_achieved:`Fully Achieved`,mostly_achieved:`Mostly Achieved`,partially_achieved:`Partially Achieved`,not_achieved:`Not Achieved`,unclear_from_transcript:`Unclear`,unhelpful:`Unhelpful`,slightly_helpful:`Slightly Helpful`,moderately_helpful:`Moderately Helpful`,very_helpful:`Very Helpful`,essential:`Essential`},Y=`Analyze this Claude Code session and extract structured facets.
|
|
643
643
|
|
|
644
644
|
CRITICAL GUIDELINES:
|
|
645
645
|
|
|
@@ -665,7 +665,7 @@ CRITICAL GUIDELINES:
|
|
|
665
665
|
4. If very short or just warmup, use warmup_minimal for goal_category
|
|
666
666
|
|
|
667
667
|
SESSION:
|
|
668
|
-
`,
|
|
668
|
+
`,X=`Summarize this portion of a Claude Code session transcript. Focus on:
|
|
669
669
|
1. What the user asked for
|
|
670
670
|
2. What Claude did (tools used, files modified)
|
|
671
671
|
3. Any friction or issues
|
|
@@ -674,7 +674,7 @@ SESSION:
|
|
|
674
674
|
Keep it concise - 3-5 sentences. Preserve specific details like file names, error messages, and user feedback.
|
|
675
675
|
|
|
676
676
|
TRANSCRIPT CHUNK:
|
|
677
|
-
`,
|
|
677
|
+
`,Z=[{name:`project_areas`,prompt:`Analyze this Claude Code usage data and identify project areas.
|
|
678
678
|
|
|
679
679
|
RESPOND WITH ONLY A VALID JSON OBJECT:
|
|
680
680
|
{
|
|
@@ -783,7 +783,7 @@ RESPOND WITH ONLY A VALID JSON OBJECT:
|
|
|
783
783
|
"detail": "Brief context about when/where this happened"
|
|
784
784
|
}
|
|
785
785
|
|
|
786
|
-
Find something genuinely interesting or amusing from the session summaries.`,maxTokens:8192}],
|
|
786
|
+
Find something genuinely interesting or amusing from the session summaries.`,maxTokens:8192}],Q=[`frustrated`,`dissatisfied`,`likely_satisfied`,`satisfied`,`happy`,`unsure`],Pe=[`not_achieved`,`partially_achieved`,`mostly_achieved`,`fully_achieved`,`unclear_from_transcript`],$={type:`prompt`,name:`insights`,description:`Generate a report analyzing your Claude Code sessions`,contentLength:0,progressMessage:`analyzing your sessions`,source:`builtin`,async getPromptForCommand(e){let t=!1,n=[],r=!1;process.env.USER_TYPE===`ant`&&(t=e?.includes(`--homespaces`)??!1,n=await U(),r=n.length>0,t&&r&&console.error(`Collecting sessions from ${n.length} homespace(s): ${n.join(`, `)}...`));let{insights:i,htmlPath:a,data:o,remoteStats:s}=await Me({collectRemote:t}),c=`file://${a}`,u=``;if(process.env.USER_TYPE===`ant`){let e=new Date().toISOString().replace(/[-:]/g,``).replace(`T`,`_`).slice(0,15),t=`${process.env.SAFEUSER||process.env.USER||`unknown`}_insights_${e}.html`,n=`s3://anthropic-serve/atamkin/cc-user-reports/${t}`,r=`https://s3-frontend.infra.ant.dev/anthropic-serve/atamkin/cc-user-reports/${t}`;c=r;try{de(`ff`,[`cp`,a,n],{timeout:6e4,stdio:`pipe`})}catch{c=`file://${a}`,u=`\nAutomatic upload failed. Are you on the boron namespace? Try \`use-bo\` and ensure you've run \`sso\`.
|
|
787
787
|
To share, run: ff cp ${a} ${n}
|
|
788
788
|
Then access at: ${r}`}}let d=[o.total_sessions_scanned&&o.total_sessions_scanned>o.total_sessions?`${o.total_sessions_scanned.toLocaleString()} sessions total · ${o.total_sessions} analyzed`:`${o.total_sessions} sessions`,`${o.total_messages.toLocaleString()} messages`,`${Math.round(o.total_duration_hours)}h`,`${o.git_commits} commits`].join(` · `),f=``;if(process.env.USER_TYPE===`ant`)if(s&&s.totalCopied>0){let e=s.hosts.filter(e=>e.sessionCount>0).map(e=>e.name).join(`, `);f=`\n_Collected ${s.totalCopied} new sessions from: ${e}_\n`}else !t&&r&&(f=`\n_Tip: Run \`/insights --homespaces\` to include sessions from your ${n.length} running homespace(s)_\n`);let p=i.at_a_glance,m=p?`## At a Glance
|
|
789
789
|
|
|
@@ -807,7 +807,7 @@ ${l(i,null,2)}
|
|
|
807
807
|
|
|
808
808
|
Report URL: ${c}
|
|
809
809
|
HTML file: ${a}
|
|
810
|
-
Facets directory: ${
|
|
810
|
+
Facets directory: ${F()}
|
|
811
811
|
|
|
812
812
|
Here is what the user sees:
|
|
813
813
|
${h}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-DR8-3Aex.js";import{Mt as t,Rn as n,b as r,o as i,t as a,x as o}from"./src-Di342QoJ.js";import{t as s}from"./jsx-runtime-D-D469L8.js";import{Ka as c,lo as l,oo as u}from"./paths-
|
|
1
|
+
import{o as e}from"./chunk-DR8-3Aex.js";import{Mt as t,Rn as n,b as r,o as i,t as a,x as o}from"./src-Di342QoJ.js";import{t as s}from"./jsx-runtime-D-D469L8.js";import{Ka as c,lo as l,oo as u}from"./paths-nIHVpTn2.js";import{U as d,l as f,p,z as m}from"./debug-otxXY3j-.js";import{n as h,r as g}from"./analytics-DqMQntaB.js";import{a as _,n as v}from"./env-C2A9gV_G.js";import{_x as y,fx as b,gx as x,mx as S,px as C}from"./loadAgentsDir-BfEZacjM.js";import{join as w}from"node:path";import{homedir as T}from"node:os";var E=e(n(),1);h(),a(),f(),_(),d(),b(),u();var D=s();function O(){let e=v.platform===`win32`,t=T();return e?w(t,`.local`,`bin`,`claude.exe`).replace(/\//g,`\\`):`~/.local/bin/claude`}function k({messages:e}){return e.length===0?null:(0,D.jsxs)(o,{flexDirection:`column`,gap:0,marginBottom:1,children:[(0,D.jsx)(o,{children:(0,D.jsxs)(r,{color:`warning`,children:[(0,D.jsx)(i,{status:`warning`,withSpace:!0}),`Setup notes:`]})}),e.map((e,t)=>(0,D.jsx)(o,{marginLeft:2,children:(0,D.jsxs)(r,{dimColor:!0,children:[`• `,e]})},t))]})}function A({onDone:e,force:t,target:n}){let[a,s]=(0,E.useState)({type:`checking`});return(0,E.useEffect)(()=>{async function e(){try{p(`Install: Starting installation process (force=${t}, target=${n})`);let e=n||c()?.autoUpdatesChannel||`latest`;s({type:`installing`,version:e}),p(`Install: Calling installLatest(channelOrVersion=${e}, forceReinstall=${t})`);let r=await y(e,t);if(p(`Install: installLatest returned version=${r.latestVersion}, wasUpdated=${r.wasUpdated}, lockFailed=${r.lockFailed}`),r.lockFailed)throw Error(`Could not install - another process is currently installing Claude. Please try again in a moment.`);r.latestVersion||p(`Install: Failed to retrieve version information during install`,{level:`error`}),r.wasUpdated||p(`Install: Already up to date`),s({type:`setting-up`});let i=await C(!0);p(`Install: Setup launcher completed with ${i.length} messages`),i.length>0&&i.forEach(e=>p(`Install: Setup message: ${e.message}`)),p(`Install: Cleaning up npm installations after successful install`);let{removed:a,errors:o,warnings:u}=await S();a>0&&p(`Cleaned up ${a} npm installation(s)`),o.length>0&&p(`Cleanup errors: ${o.join(`, `)}`);let d=await x();d.length>0&&p(`Shell alias cleanup: ${d.map(e=>e.message).join(`; `)}`),g(`tengu_claude_install_command`,{has_version:+!!r.latestVersion,forced:+!!t}),(n===`latest`||n===`stable`)&&(l(`userSettings`,{autoUpdatesChannel:n}),p(`Install: Saved autoUpdatesChannel=${n} to user settings`));let f=[...u,...d.map(e=>e.message)];i.length>0?(s({type:`set-up`,messages:i.map(e=>e.message)}),setTimeout(s,2e3,{type:`success`,version:r.latestVersion||`current`,setupMessages:[...i.map(e=>e.message),...f]})):(p(`Install: Shell PATH already configured`),s({type:`success`,version:r.latestVersion||`current`,setupMessages:f.length>0?f:void 0}))}catch(e){p(`Install command failed: ${e}`,{level:`error`}),s({type:`error`,message:m(e)})}}e()},[t,n]),(0,E.useEffect)(()=>{a.type===`success`?setTimeout(e,2e3,`Claude Code installation completed successfully`,{display:`system`}):a.type===`error`&&setTimeout(e,3e3,`Claude Code installation failed`,{display:`system`})},[a,e]),(0,D.jsxs)(o,{flexDirection:`column`,marginTop:1,children:[a.type===`checking`&&(0,D.jsx)(r,{color:`claude`,children:`Checking installation status...`}),a.type===`cleaning-npm`&&(0,D.jsx)(r,{color:`warning`,children:`Cleaning up old npm installations...`}),a.type===`installing`&&(0,D.jsxs)(r,{color:`claude`,children:[`Installing Claude Code native build `,a.version,`...`]}),a.type===`setting-up`&&(0,D.jsx)(r,{color:`claude`,children:`Setting up launcher and shell integration...`}),a.type===`set-up`&&(0,D.jsx)(k,{messages:a.messages}),a.type===`success`&&(0,D.jsxs)(o,{flexDirection:`column`,gap:1,children:[(0,D.jsxs)(o,{children:[(0,D.jsx)(i,{status:`success`,withSpace:!0}),(0,D.jsx)(r,{color:`success`,bold:!0,children:`Claude Code successfully installed!`})]}),(0,D.jsxs)(o,{marginLeft:2,flexDirection:`column`,gap:1,children:[a.version!==`current`&&(0,D.jsxs)(o,{children:[(0,D.jsx)(r,{dimColor:!0,children:`Version: `}),(0,D.jsx)(r,{color:`claude`,children:a.version})]}),(0,D.jsxs)(o,{children:[(0,D.jsx)(r,{dimColor:!0,children:`Location: `}),(0,D.jsx)(r,{color:`text`,children:O()})]})]}),(0,D.jsx)(o,{marginLeft:2,flexDirection:`column`,gap:1,children:(0,D.jsxs)(o,{marginTop:1,children:[(0,D.jsx)(r,{dimColor:!0,children:`Next: Run `}),(0,D.jsx)(r,{color:`claude`,bold:!0,children:`claude --help`}),(0,D.jsx)(r,{dimColor:!0,children:` to get started`})]})}),a.setupMessages&&(0,D.jsx)(k,{messages:a.setupMessages})]}),a.type===`error`&&(0,D.jsxs)(o,{flexDirection:`column`,gap:1,children:[(0,D.jsxs)(o,{children:[(0,D.jsx)(i,{status:`error`,withSpace:!0}),(0,D.jsx)(r,{color:`error`,children:`Installation failed`})]}),(0,D.jsx)(r,{color:`error`,children:a.message}),(0,D.jsx)(o,{marginTop:1,children:(0,D.jsx)(r,{dimColor:!0,children:`Try running with --force to override checks`})})]})]})}var j={type:`local-jsx`,name:`install`,description:`Install Claude Code native build`,argumentHint:`[options]`,async call(e,n,r){let i=r.includes(`--force`),a=r.filter(e=>!e.startsWith(`--`))[0],{unmount:o}=await t((0,D.jsx)(A,{onDone:(t,n)=>{o(),e(t,n)},force:i,target:a}))}};export{j as install};
|