claude-code-best 1.10.8 → 1.10.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/{AddWorkspaceDirectory-AyMy4OCD.js → AddWorkspaceDirectory-C6rqijRY.js} +3 -3
- package/dist/chunks/{App-DORYioIb.js → App-Ct9uQHIA.js} +4 -4
- package/dist/chunks/{ApproveApiKey-S_PhcDiO.js → ApproveApiKey-C7xe_ujH.js} +2 -2
- package/dist/chunks/{AssistantSessionChooser-_6CoGrsi.js → AssistantSessionChooser-B0JyDDDZ.js} +3 -3
- package/dist/chunks/{BackgroundTasksDialog-DRXUENfu.js → BackgroundTasksDialog-B5KsOVIe.js} +5 -5
- package/dist/chunks/{BypassPermissionsModeDialog-C_0P04Qi.js → BypassPermissionsModeDialog-DaeQ4xED.js} +2 -2
- package/dist/chunks/{ClaudeInChromeOnboarding-CPgxw3Jd.js → ClaudeInChromeOnboarding-B2GXIglO.js} +2 -2
- package/dist/chunks/{ClaudeMdExternalIncludesDialog-nx6BnDFO.js → ClaudeMdExternalIncludesDialog-D74yYI1i.js} +1 -1
- package/dist/chunks/{ClaudeMdExternalIncludesDialog-HW6hFwga.js → ClaudeMdExternalIncludesDialog-DWmdSx58.js} +2 -2
- package/dist/chunks/ConsoleOAuthFlow-CS4jOcte.js +3 -0
- package/dist/chunks/{DesktopHandoff-DDZW1f4B.js → DesktopHandoff-B9U9U9Tu.js} +2 -2
- package/dist/chunks/{DevChannelsDialog-BxT1gBI-.js → DevChannelsDialog-CzRbeBpk.js} +1 -1
- package/dist/chunks/{DiffDialog-C_M5fcZ1.js → DiffDialog-6AsqISNj.js} +4 -3
- package/dist/chunks/{Doctor-BeFtx51Y.js → Doctor-BxWkLXEe.js} +9 -9
- package/dist/chunks/{ExitFlow-Dol5ZTVp.js → ExitFlow-BfsgW10m.js} +2 -2
- package/dist/chunks/{Feedback-C6XXxkW_.js → Feedback-B_bPT-tv.js} +3 -3
- package/dist/chunks/{Grove-BXGgnmM2.js → Grove-C4feZVOi.js} +1 -1
- package/dist/chunks/{HybridTransport-6KE-2tdG.js → HybridTransport-PhjrDPRB.js} +3 -3
- package/dist/chunks/{ITermBackend-DU4crlJ8.js → ITermBackend-D9qkvBdK.js} +1 -1
- package/dist/chunks/{InvalidConfigDialog-COQp5wx6.js → InvalidConfigDialog-B5iw4BUB.js} +2 -2
- package/dist/chunks/{InvalidSettingsDialog-C4ZqH7ua.js → InvalidSettingsDialog-BxXjuoag.js} +2 -2
- package/dist/chunks/{MCPConnectionManager-Ci26BuqG.js → MCPConnectionManager-CEbFWjqj.js} +4 -4
- package/dist/chunks/{McpParsingWarnings-k4GVGSbD.js → McpParsingWarnings-CSMkQZXu.js} +1 -1
- package/dist/chunks/{MessageSelector-C-OCaW_O.js → MessageSelector-Dw8yVgHn.js} +10 -12
- package/dist/chunks/{Messages-B9hbb5uA.js → Messages-DATTswTy.js} +16 -16
- package/dist/chunks/{Onboarding-BDtHvYTx.js → Onboarding-DgmcqDHa.js} +8 -8
- package/dist/chunks/{OverageCreditUpsell-B4DOf4gh.js → OverageCreditUpsell-D7WHyk87.js} +3 -3
- package/dist/chunks/{PluginSettings-3R1CqSfW.js → PluginSettings-BRylpBE_.js} +13 -13
- package/dist/chunks/{PromptInputFooterSuggestions-CxqTMId_.js → PromptInputFooterSuggestions-Xy2gYy25.js} +2 -2
- package/dist/chunks/{PromptInputHelpMenu-BGgyDIkK.js → PromptInputHelpMenu-AgXLpTa-.js} +3 -3
- package/dist/chunks/{QueryEngine-ChpFG8gv.js → QueryEngine-CNS-KhzZ.js} +6 -6
- package/dist/chunks/{REPL-CG0UgVfl.js → REPL-Cnd4B1po.js} +1248 -2155
- package/dist/chunks/{RemoteCallout-B0VqS1Qt.js → RemoteCallout-CO-koWt4.js} +4 -4
- package/dist/chunks/{RemoteSessionManager-B1roy_8S.js → RemoteSessionManager-Cc5O4Iz6.js} +10 -10
- package/dist/chunks/{ResumeConversation-BWrUge-0.js → ResumeConversation-M4GjMvYr.js} +5 -5
- package/dist/chunks/{SSETransport-C2QsETHl.js → SSETransport-D8gYdijq.js} +2 -2
- package/dist/chunks/{Settings-COOyI14X.js → Settings-Cr-cVWIp.js} +15 -15
- package/dist/chunks/StructuredDiff-B6ZCMWS1.js +347 -0
- package/dist/chunks/{TeleportProgress-qSHTYfot.js → TeleportProgress-4ecw6CPX.js} +1 -1
- package/dist/chunks/{TeleportRepoMismatchDialog-CGsCO8by.js → TeleportRepoMismatchDialog-BSqD_ki7.js} +3 -3
- package/dist/chunks/{TeleportResumeWrapper-DXrpfnNe.js → TeleportResumeWrapper-3HksGDoJ.js} +3 -3
- package/dist/chunks/{ThemePicker-DimvavHs.js → ThemePicker-ChTKqsLP.js} +4 -3
- package/dist/chunks/{TmuxBackend-H0XnczhB.js → TmuxBackend-DfizVpWU.js} +1 -1
- package/dist/chunks/ToolSearchTool-DPT0W6W_.js +3 -0
- package/dist/chunks/{TrustDialog-DeSs6f0D.js → TrustDialog-txz8AgUy.js} +4 -4
- package/dist/chunks/{ValidationErrorsList-C4Km61yv.js → ValidationErrorsList-7hrGjTbU.js} +1 -1
- package/dist/chunks/{WindowsTerminalBackend-Bgv7-JUL.js → WindowsTerminalBackend-DrBBYUeT.js} +1 -1
- package/dist/chunks/{add-dir-CHNcl-5z.js → add-dir-1oTL8NCa.js} +2 -2
- package/dist/chunks/{agentDisplay-BBigvlJ5.js → agentDisplay-DdfH-rjM.js} +2 -2
- package/dist/chunks/{agents-CFvEeCnI.js → agents-CxqqgRQ4.js} +9 -9
- package/dist/chunks/{agents-Bnzh76m3.js → agents-itch4Ogn.js} +2 -2
- package/dist/chunks/{ant-DLe5klM_.js → ant-sNs2IQ4h.js} +2 -2
- package/dist/chunks/{api-Bx57yPja.js → api-B9EiITN3.js} +1 -1
- package/dist/chunks/{api-HJVu8Bgf.js → api-vMRVXAIW.js} +1 -1
- package/dist/chunks/asciicast--W1-QPVl.js +2 -0
- package/dist/chunks/{assistant-BcJ2VyZO.js → assistant-C2gseEKC.js} +4 -4
- package/dist/chunks/{assistant-DKGoLYoz.js → assistant-SUHURrLf.js} +2 -2
- package/dist/chunks/auth-BtsDqF5X.js +3 -0
- package/dist/chunks/{auth-BVoXNOdu.js → auth-CrKy_xfm.js} +1 -1
- package/dist/chunks/{autoMode-BjMFpRPS.js → autoMode-DDehnswW.js} +3 -3
- package/dist/chunks/{autonomy-B142xgn9.js → autonomy-xTW_cDaU.js} +63 -20
- package/dist/chunks/{autonomyPanel-DrItmDJf.js → autonomyPanel-BA8yF42J.js} +2 -2
- package/dist/chunks/{backgroundHousekeeping-DPSnu12B.js → backgroundHousekeeping-D0GmJKrV.js} +6 -6
- package/dist/chunks/{backgroundHousekeeping-xKDy8FkD.js → backgroundHousekeeping-Db_Petsq.js} +1 -1
- package/dist/chunks/{banner-2Io8Jttd.js → banner-C_aWUibC.js} +1 -1
- package/dist/chunks/{bg-D-cs4pwp.js → bg-AZpkHvVY.js} +1 -1
- package/dist/chunks/{bg-2DXXMI4u.js → bg-BhP-16DX.js} +5 -5
- package/dist/chunks/{branch-C70keLeV.js → branch-B9GxhFg0.js} +2 -2
- package/dist/chunks/{bridge-BggvL4iM.js → bridge-Bq6FyAgG.js} +9 -9
- package/dist/chunks/{bridgeConfig-DsVyayv1.js → bridgeConfig-CZGaWsq7.js} +1 -1
- package/dist/chunks/{bridgeConfig-BeCM9dMF.js → bridgeConfig-Dht9PC-Q.js} +1 -1
- package/dist/chunks/{bridgeEnabled-oCT5xVvX.js → bridgeEnabled-CkmoqwG5.js} +1 -1
- package/dist/chunks/{bridgeEnabled-Dj8FWS0e.js → bridgeEnabled-Cu0GsgQC.js} +2 -2
- package/dist/chunks/{bridgeMain-Cnni8EVq.js → bridgeMain-COD0BaPa.js} +36 -36
- package/dist/chunks/{bridgeMessaging-CDla4R6o.js → bridgeMessaging-CMCuOWPg.js} +2 -2
- package/dist/chunks/{btw-BzdgUzJU.js → btw-B0p-2vLR.js} +5 -5
- package/dist/chunks/{buddy-ovy_skht.js → buddy-BPDwW1oK.js} +3 -3
- package/dist/chunks/{bypassPermissionsKillswitch-BJ7iACst.js → bypassPermissionsKillswitch-MrXUBqLu.js} +1 -1
- package/dist/chunks/{caches-B5mZT9E-.js → caches-B46ynuvK.js} +1 -1
- package/dist/chunks/{caches-CBfjkIrn.js → caches-Dga-SWBx.js} +8 -8
- package/dist/chunks/{ccrClient-DKQN014H.js → ccrClient-CErUgaOa.js} +3 -3
- package/dist/chunks/changeDetector-ChRE8fAI.js +3 -0
- package/dist/chunks/{channelNotification-Dgrgm0St.js → channelNotification-CAbX7jUR.js} +2 -2
- package/dist/chunks/{channelNotification-B1HVtfcI.js → channelNotification-kgISVp-m.js} +1 -1
- package/dist/chunks/{chrome-A_IWe_cO.js → chrome-BIHJ7Tiv.js} +3 -3
- package/dist/chunks/{clear-Cv0qvLzE.js → clear-e0qXtR3o.js} +1 -1
- package/dist/chunks/{client-DEQ6taWJ.js → client-jhgOiTrR.js} +1 -1
- package/dist/chunks/{color-rH76d2GW.js → color-DpOfQ6Pe.js} +1 -1
- package/dist/chunks/{commands-BToVM-n_.js → commands-CriEIXca.js} +1 -1
- package/dist/chunks/{commitAttribution-x-Y9qiEw.js → commitAttribution-Bnu7jx7-.js} +1 -1
- package/dist/chunks/{commitAttribution--kWCfiBX.js → commitAttribution-DpIpJU2o.js} +1 -1
- package/dist/chunks/{compact-CuLy_ZmV.js → compact-Bi5Vwnbj.js} +1 -1
- package/dist/chunks/{companion-BserNxZw.js → companion-B8Dlllnk.js} +1 -1
- package/dist/chunks/{config-BbFdCtCZ.js → config-D5JMhZBX.js} +1 -1
- package/dist/chunks/{config-WGaJE2Z-.js → config-Ddbt4ajH.js} +1 -1
- package/dist/chunks/{context-WOOY0FLL.js → context-B3uI7IwH.js} +5 -5
- package/dist/chunks/{context-noninteractive-CS0-TpiN.js → context-noninteractive-DuE_GTL9.js} +4 -4
- package/dist/chunks/{conversation-DZ_UoE8s.js → conversation-DvzAWiiJ.js} +1 -1
- package/dist/chunks/{conversation-LlZkX2yV.js → conversation-gnmmmJnB.js} +4 -4
- package/dist/chunks/{copy-DCXi64ex.js → copy-DAG6O8Dh.js} +2 -2
- package/dist/chunks/{cost-CoxvFCRD.js → cost-DShLvWcl.js} +2 -2
- package/dist/chunks/{createSSHSession-CP9c1m4g.js → createSSHSession-D8Sigb7_.js} +2 -2
- package/dist/chunks/{createSession-Cm7HpHez.js → createSession-BjIarSCO.js} +17 -17
- package/dist/chunks/{cronJitterConfig-DYWTMlRv.js → cronJitterConfig-CGula0w8.js} +4 -4
- package/dist/chunks/{crossProjectResume-DeOsfSF5.js → crossProjectResume-CSxe0Rfb.js} +8 -8
- package/dist/chunks/{daemon-Ci7b5c8J.js → daemon-DLqxYYIA.js} +2 -2
- package/dist/chunks/{datadog-FNzocPlm.js → datadog-CZbjl3Mk.js} +1 -1
- package/dist/chunks/{datadog-CgRauwXn.js → datadog-GQGGjkVH.js} +1 -1
- package/dist/chunks/{desktop-B1EhowRo.js → desktop-CL8H-5XY.js} +1 -1
- package/dist/chunks/{detached-BTZLi_wz.js → detached-BFTAxA_R.js} +1 -1
- package/dist/chunks/{diff-BXAZYSAe.js → diff-CQ9EqGNw.js} +1 -1
- package/dist/chunks/{doctor-2TsPG9x4.js → doctor-DXJAY0op.js} +1 -1
- package/dist/chunks/earlyInput-Dnqlqb0h.js +2 -0
- package/dist/chunks/{effort-DxhwjDgv.js → effort-Bq5WcivT.js} +3 -3
- package/dist/chunks/{entry-B37teFKO.js → entry-DUC38qNm.js} +3 -3
- package/dist/chunks/{envLessBridgeConfig-OzRntxQ7.js → envLessBridgeConfig-zdUL4H6-.js} +2 -2
- package/dist/chunks/{exit-DXwVjHB_.js → exit-DueO_n8-.js} +3 -3
- package/dist/chunks/{export-CUxQmI8I.js → export-BVu_Gpf-.js} +2 -2
- package/dist/chunks/{exportRenderer-BXcHLusv.js → exportRenderer-CaHsMpAb.js} +3 -3
- package/dist/chunks/{extra-usage-D5F2Fab1.js → extra-usage-DVgITuJR.js} +2 -2
- package/dist/chunks/{extra-usage-core-BjMJY05D.js → extra-usage-core-DUTbGs8v.js} +4 -4
- package/dist/chunks/{extra-usage-noninteractive-C1eLncrU.js → extra-usage-noninteractive-BZ_BfWOY.js} +1 -1
- package/dist/chunks/{extraUsage-B3Z9hxVY.js → extraUsage-Mc4ASNJv.js} +3 -3
- package/dist/chunks/{fast-BPAOtiKR.js → fast-BaLftgz2.js} +1 -1
- package/dist/chunks/{fast-vmSBT3wk.js → fast-k6ZhmOIi.js} +4 -4
- package/dist/chunks/{feedback-Bd4KPsMs.js → feedback-5-IPbRVC.js} +1 -1
- package/dist/chunks/{firstPartyEventLogger-DfayOxom.js → firstPartyEventLogger-Bzn8yHDw.js} +1 -1
- package/dist/chunks/{flushGate-CEQ0eFpN.js → flushGate-rpeO-ivG.js} +4 -4
- package/dist/chunks/{fork-Cql3KSxE.js → fork-Byn4vS0q.js} +1 -1
- package/dist/chunks/{gates-CXbe08cU.js → gates-BjSnAoph.js} +1 -1
- package/dist/chunks/{gates-B6dXEO7B.js → gates-UOfj_txz.js} +1 -1
- package/dist/chunks/{gemini-Dc1L8IRS.js → gemini-BWsCIecw.js} +3 -3
- package/dist/chunks/{generateSessionName-DnnfYlVp.js → generateSessionName-L0_s6vCa.js} +3 -3
- package/dist/chunks/{githubRepoPathMapping-7sx6rtjX.js → githubRepoPathMapping-CGEOENtp.js} +1 -1
- package/dist/chunks/{grok-ZGDHie6x.js → grok-p1yEaHVd.js} +4 -4
- package/dist/chunks/{growthbook-Cjl5wOGC.js → growthbook-uhd4CUKp.js} +1 -1
- package/dist/chunks/{heapdump-BtjR8Avz.js → heapdump-D5zORJKA.js} +1 -1
- package/dist/chunks/{help-CnGuF5OL.js → help-BOoThuUb.js} +5 -5
- package/dist/chunks/{hooks-EDuZo8rZ.js → hooks-Dlb--DQI.js} +1 -1
- package/dist/chunks/{hooks-6SfXd_6y.js → hooks-UQ_JSIfy.js} +2 -2
- package/dist/chunks/{hostAdapter-CutcCk0Y.js → hostAdapter-B5yLlQDm.js} +1 -1
- package/dist/chunks/{ide-DN0eFH-I.js → ide-EFY4x5hm.js} +2 -2
- package/dist/chunks/{inboundAttachments-CTBWhskT.js → inboundAttachments-0DCFrfnN.js} +1 -1
- package/dist/chunks/{initReplBridge-BKcPvixd.js → initReplBridge-DvZC3LMj.js} +19 -19
- package/dist/chunks/{insights-BS0ZNRLw.js → insights-9RJ5Khc8.js} +4 -4
- package/dist/chunks/{install-DicMWYKx.js → install-C96be5DE.js} +2 -2
- package/dist/chunks/{install-github-app-DHSeHIaO.js → install-github-app-BzeeFaVG.js} +3 -3
- package/dist/chunks/{install-slack-app-CLHR9i9n.js → install-slack-app-CqDmNYlF.js} +1 -1
- package/dist/chunks/{instrumentation-CUTDZ6VV.js → instrumentation-Bnub8hEj.js} +3 -3
- package/dist/chunks/{job-DKQ89zqd.js → job-DVJCanuD.js} +1 -1
- package/dist/chunks/{keybindings-5wQbz4c8.js → keybindings-BswJ-Uw7.js} +2 -2
- package/dist/chunks/{lang-BTCSHBFu.js → lang-CBJJqxqL.js} +2 -2
- package/dist/chunks/{language-Hl1jowwd.js → language-jmtIakwT.js} +1 -1
- package/dist/chunks/{loadAgentsDir-9z4W5vjy.js → loadAgentsDir-C4NKNvrs.js} +1 -1
- package/dist/chunks/{loadAgentsDir-CKCr6KLl.js → loadAgentsDir-C72eo76O.js} +11619 -5116
- package/dist/chunks/loadPluginHooks-BalGe00r.js +3 -0
- package/dist/chunks/{localSearch-DL5GhpDE.js → localSearch-C7kQiXKp.js} +1 -1
- package/dist/chunks/{localSearch-C5_bOr8q.js → localSearch-CHAR3yF3.js} +1 -1
- package/dist/chunks/{login-D9BtI7Pb.js → login-DKHI8tdJ.js} +1 -1
- package/dist/chunks/{login-DgQJAdug.js → login-cPF2s2Ip.js} +5 -5
- package/dist/chunks/{logoV2Utils-fw-X-t6i.js → logoV2Utils-i9vbvaH-.js} +4 -4
- package/dist/chunks/logout-ZcPro6_H.js +3 -0
- package/dist/chunks/{magicDocs-Crhut7gV.js → magicDocs-oftze6-m.js} +2 -2
- package/dist/chunks/{main-1IxSEB11.js → main-BkjRiKwX.js} +7 -7
- package/dist/chunks/{main-vXOmPUE1.js → main-YzWw6Vi0.js} +132 -134
- package/dist/chunks/{mappers-BCSKRNTR.js → mappers-Bx-2sRzn.js} +1 -1
- package/dist/chunks/{mcp-D1IOUzE7.js → mcp-C2cIgONA.js} +6 -6
- package/dist/chunks/{mcp-Ci0gy5Wm.js → mcp-CxTUyH2v.js} +6 -6
- package/dist/chunks/{mcp-7YXd30Q0.js → mcp-DMV-30LS.js} +3 -3
- package/dist/chunks/{mcpServer-CCvSYftj.js → mcpServer-DvtC6Pl3.js} +5 -5
- package/dist/chunks/{mcpServer-BHppS1ws.js → mcpServer-bGIO5UqI.js} +6 -6
- package/dist/chunks/{memory-IVFsZGbH.js → memory-2CKXpK42.js} +5 -5
- package/dist/chunks/{mobile-DC30stZP.js → mobile-DPxJSzS7.js} +1 -1
- package/dist/chunks/{model-CoZ6jhjM.js → model-18ea6LMg.js} +1 -1
- package/dist/chunks/{model-CtTIthX3.js → model-QMjDXcud.js} +3 -3
- package/dist/chunks/{onChangeAppState-C0crWlUU.js → onChangeAppState-DGOxmmCK.js} +3 -3
- package/dist/chunks/{openai-Bq-tZzdA.js → openai-DWUh0wBx.js} +4 -4
- package/dist/chunks/{overageCreditGrant-DA6Ji27r.js → overageCreditGrant-C4YTj6TG.js} +2 -2
- package/dist/chunks/{passes-CQjMQxDF.js → passes-BGaHP3jn.js} +2 -2
- package/dist/chunks/{paths-DSkEVuBg.js → paths-DvTLULIf.js} +3 -3
- package/dist/chunks/{permissions-bgBNVZj6.js → permissions-kdn0iNwR.js} +8 -8
- package/dist/chunks/pipeTransport-B2LrKe0N.js +78 -0
- package/dist/chunks/{plan-9HtDwIeE.js → plan-tiJVm4x_.js} +3 -3
- package/dist/chunks/{plugin-C2tIIFq9.js → plugin-D1c5Ko5y.js} +1 -1
- package/dist/chunks/{pluginAutoupdate-DZc2hFxf.js → pluginAutoupdate-Dpz5qa0X.js} +4 -4
- package/dist/chunks/{pluginBlocklist-DiS_LOxs.js → pluginBlocklist-BgclgWu5.js} +3 -3
- package/dist/chunks/{pluginCliCommands-BiXap9Fy.js → pluginCliCommands-ClnvND-z.js} +3 -3
- package/dist/chunks/{pluginFlagging-q8gMbkD5.js → pluginFlagging-DoQhFkzp.js} +1 -1
- package/dist/chunks/{pluginOperations-D9ol2ssj.js → pluginOperations-D-PDcILj.js} +4 -4
- package/dist/chunks/{pluginStartupCheck-COh-DcKy.js → pluginStartupCheck-CXt2hPkU.js} +3 -3
- package/dist/chunks/{pluginStartupCheck-CG2qErc7.js → pluginStartupCheck-n-skAjJV.js} +1 -1
- package/dist/chunks/{plugins-BietcZD3.js → plugins-ERB62mGT.js} +8 -8
- package/dist/chunks/policyLimits-DG0yzIIZ.js +3 -0
- package/dist/chunks/{pollConfig-2I_nDHA7.js → pollConfig-Cc-mH8wU.js} +1 -1
- package/dist/chunks/{poor-CB5mtPXL.js → poor-BXZpqueY.js} +1 -1
- package/dist/chunks/{poorMode-BQLnZVIm.js → poorMode-6i7DZvWQ.js} +1 -1
- package/dist/chunks/{poorMode-C7Tv4gyt.js → poorMode-KlsKA4Dw.js} +1 -1
- package/dist/chunks/{print-BWjElYkB.js → print-BdfIoC9c.js} +27 -46
- package/dist/chunks/{privacy-settings-C5mvrXGG.js → privacy-settings-DFtE--Du.js} +2 -2
- package/dist/chunks/{processBashCommand-DJgkl_kf.js → processBashCommand-CR-bUr4z.js} +3 -3
- package/dist/chunks/{processSlashCommand-CvVng3uM.js → processSlashCommand-Cqb-Wbv-.js} +5 -5
- package/dist/chunks/{projectContext-CtnrRecP.js → projectContext-DM5-VTsm.js} +1 -1
- package/dist/chunks/prompt-BamUvYWM.js +3 -0
- package/dist/chunks/prompt-Ny2N2zhC.js +3 -0
- package/dist/chunks/{promptEditor-B7ChKW5Y.js → promptEditor-NuKIAbMA.js} +1 -1
- package/dist/chunks/{protocolHandler-4lEbHJxz.js → protocolHandler-CLqJicyP.js} +5 -5
- package/dist/chunks/{rate-limit-options-BYbGoNeE.js → rate-limit-options-dW_WTcCr.js} +4 -4
- package/dist/chunks/{sessionActivity-BChWrGEw.js → rcDebugLog-4yU5VWxa.js} +28 -28
- package/dist/chunks/{referral-DWjXZbQX.js → referral-D46sEC3u.js} +2 -2
- package/dist/chunks/{refresh-G0J3u5aZ.js → refresh-B354z_gb.js} +1 -1
- package/dist/chunks/{registerProtocol-BOgiAPJV.js → registerProtocol-Crk-V31l.js} +2 -2
- package/dist/chunks/registry-D1PTOuro.js +3 -0
- package/dist/chunks/{release-notes-v3zOCxeU.js → release-notes-_Luv2jq3.js} +1 -1
- package/dist/chunks/{releaseNotes-BDI58OYX.js → releaseNotes-DTsjgjRS.js} +1 -1
- package/dist/chunks/{reload-plugins-CFeA55V6.js → reload-plugins-CIC8uesK.js} +4 -4
- package/dist/chunks/{remote-env-xOJjxQep.js → remote-env-BLZg34hJ.js} +2 -2
- package/dist/chunks/{remoteBridgeCore-C09AjDw1.js → remoteBridgeCore-3nL9TR6N.js} +8 -8
- package/dist/chunks/{remoteControlServer-VNsby-E0.js → remoteControlServer-Dz74gQxU.js} +7 -7
- package/dist/chunks/{rename-DeodVT8f.js → rename-C3phFdf9.js} +4 -4
- package/dist/chunks/{resume-BkdC4Iyi.js → resume-DKjCe4Re.js} +3 -3
- package/dist/chunks/{runtimeObserver-AfLQXrqg.js → runtimeObserver-2OqaSKnL.js} +8 -8
- package/dist/chunks/{runtimeObserver-DFFDac2w.js → runtimeObserver-x4IajJ5I.js} +1 -1
- package/dist/chunks/sandbox-adapter-C86MhZid.js +3 -0
- package/dist/chunks/{sandbox-toggle-KsZ9hetn.js → sandbox-toggle-DGTGln_2.js} +2 -2
- package/dist/chunks/{session-Cl-xCJ8U.js → session-UIhHe6mk.js} +2 -2
- package/dist/chunks/{sessionDiscovery-DMnEeuJg.js → sessionDiscovery-DH7yOz-4.js} +1 -1
- package/dist/chunks/sessionFileAccessHooks-C8xNLlGI.js +3 -0
- package/dist/chunks/{sessionMemory-CVMgpniu.js → sessionMemory-BKbAkl2d.js} +4 -4
- package/dist/chunks/sessionMemoryUtils-BpiV8qzn.js +3 -0
- package/dist/chunks/{sessionObserver-Drmv4DI0.js → sessionObserver-BOmJcunJ.js} +4 -4
- package/dist/chunks/{sessionObserver-DQQGWkXf.js → sessionObserver-DKWmLlNk.js} +1 -1
- package/dist/chunks/{sessionStorage-CcdKJkyn.js → sessionStorage-LOj57lSg.js} +1 -1
- package/dist/chunks/{sessionTitle-CynC1QWH.js → sessionTitle-BiJqks0Y.js} +2 -2
- package/dist/chunks/{sessionTracing-D9s950J5.js → sessionTracing-BsNTXXLM.js} +1 -1
- package/dist/chunks/{settingsSync-CPInbcj7.js → settingsSync-CrBZf0Vo.js} +2 -2
- package/dist/chunks/{setup-oNcnnqr2.js → setup-Cyn4xPeS.js} +15 -18
- package/dist/chunks/{setup-D5on8ibP.js → setup-DIpNQXq3.js} +2 -2
- package/dist/chunks/{setup-m0qLMFD7.js → setup-r_wH3t2q.js} +2 -2
- package/dist/chunks/{shadowedRuleDetection-Drf9u-db.js → shadowedRuleDetection-BWDwVkdP.js} +1 -1
- package/dist/chunks/{sideQuestion-BFd04Hpm.js → sideQuestion-BxdxvzE5.js} +2 -2
- package/dist/chunks/{sink-EtSaBh8E.js → sink-C0qjGZQ7.js} +2 -2
- package/dist/chunks/{sink-wb0QjAm7.js → sink-CwmSKi-f.js} +1 -1
- package/dist/chunks/{sinks-C7QBA6x8.js → sinks-DP4TXrIf.js} +1 -1
- package/dist/chunks/{skill-learning-CshrpvXr.js → skill-learning-BIDUFqPF.js} +7 -7
- package/dist/chunks/{skillChangeDetector-BXcvDT4K.js → skillChangeDetector-CHSWOerw.js} +5 -5
- package/dist/chunks/{skillGapStore-Ctpnj8SE.js → skillGapStore-Qh9JLx3Y.js} +4 -4
- package/dist/chunks/{skillGapStore-B0fBE8ju.js → skillGapStore-hl0-S_zE.js} +1 -1
- package/dist/chunks/{skillGenerator-DxHhQT_d.js → skillGenerator-DcUjuneC.js} +3 -3
- package/dist/chunks/{skillLearning-BQzbxDmM.js → skillLearning-DplYUMQo.js} +9 -9
- package/dist/chunks/{skillPanel-DrqDoWdh.js → skillPanel-DdQKt1IP.js} +5 -5
- package/dist/chunks/{skillSearchPanel-UXTLla11.js → skillSearchPanel-BWLFqREg.js} +2 -2
- package/dist/chunks/{skills-CKx64w0R.js → skills-C-7Qfe0X.js} +3 -3
- package/dist/chunks/{sprites-CmcTBNjG.js → sprites-CKFItufM.js} +1 -1
- package/dist/chunks/{src-Dx8ucMgB.js → src-HVJR0Zo0.js} +2 -2
- package/dist/chunks/{startupProfiler-CommxiJO.js → startupProfiler-CazxVJNo.js} +1 -0
- package/dist/chunks/{startupProfiler-DMJO2xz5.js → startupProfiler-XOIBwlp1.js} +1 -1
- package/dist/chunks/{stats-CUJL6gf6.js → stats-BGscCMCG.js} +4 -4
- package/dist/chunks/{stats-OQSoO8AA.js → stats-CwApMedu.js} +1 -1
- package/dist/chunks/{status-C2JI09Xw.js → status-DZaq2GnB.js} +1 -1
- package/dist/chunks/{statusNoticeHelpers-BGzUypnF.js → statusNoticeHelpers-DMp-bdUR.js} +1 -1
- package/dist/chunks/{tag-D7eNyLsL.js → tag-D0uIhfwI.js} +2 -2
- package/dist/chunks/{tasks-ji7qrtQZ.js → tasks-Dntdj_he.js} +1 -1
- package/dist/chunks/{teamHelpers-wA0wc9x7.js → teamHelpers-CS6BiyXo.js} +1 -1
- package/dist/chunks/{teamHelpers-C1EYvVG8.js → teamHelpers-DZPEdPcj.js} +1 -1
- package/dist/chunks/{teammateModeSnapshot-ChmbBeGY.js → teammateModeSnapshot-DwwGZmxV.js} +1 -1
- package/dist/chunks/{teammateModeSnapshot-D1C3CvY2.js → teammateModeSnapshot-wSzHvqXU.js} +1 -1
- package/dist/chunks/teleport-BgO5XUTS.js +3 -0
- package/dist/chunks/{templateJobs-juuqs5ID.js → templateJobs-By_fIrvy.js} +1 -1
- package/dist/chunks/{terminalSetup-DkW8kzTS.js → terminalSetup-BK7LahH5.js} +1 -1
- package/dist/chunks/{terminalSetup-YfKbBHG2.js → terminalSetup-BQDyPgSq.js} +1 -1
- package/dist/chunks/{theme-BZ0g686m.js → theme-a6ztF_07.js} +1 -1
- package/dist/chunks/{thinkback-BTvAN4SG.js → thinkback-a57hw1Dz.js} +4 -4
- package/dist/chunks/{thinkback-play-BJV9UsS_.js → thinkback-play-guqTStmo.js} +2 -2
- package/dist/chunks/{tmux-b0jmod-m.js → tmux-CqbuPVsI.js} +1 -1
- package/dist/chunks/{toolEventObserver-C0lzru27.js → toolEventObserver-BIoe2MAs.js} +1 -1
- package/dist/chunks/{toolEventObserver-BCMiKOMJ.js → toolEventObserver-D45tPv3F.js} +4 -4
- package/dist/chunks/{toolPool-BFpy26rC.js → toolPool-DdxWg47z.js} +2 -2
- package/dist/chunks/toolSearch-Di3gpeC0.js +3 -0
- package/dist/chunks/{trustedDevice-NWjic61P.js → trustedDevice-CgG7rtkW.js} +1 -1
- package/dist/chunks/{trustedDevice-BwB25RSK.js → trustedDevice-DEjXAOcz.js} +1 -1
- package/dist/chunks/udsClient-C0L2vH6O.js +79 -0
- package/dist/chunks/{ultrareviewCommand-Dm_UZkUI.js → ultrareviewCommand-BmmGo2kq.js} +4 -4
- package/dist/chunks/{undercover-3UBD5GtT.js → undercover-BVICZnNj.js} +2 -2
- package/dist/chunks/{undercover-BOjOeIVa.js → undercover-DQvQQ6yo.js} +1 -1
- package/dist/chunks/{updateCCB-gqr4tTHw.js → updateCCB-CTg-iLDL.js} +1 -1
- package/dist/chunks/{upgrade-D11LGswH.js → upgrade-DD8Sw-Am.js} +2 -2
- package/dist/chunks/{upload-DdAHsTCb.js → upload-BONHB_o1.js} +1 -1
- package/dist/chunks/{usage-BfgmPd0i.js → usage-Bpx-BQ_s.js} +1 -1
- package/dist/chunks/{usage-C-03An_-.js → usage-kee9LG0z.js} +1 -1
- package/dist/chunks/{useMainLoopModel-DYfWygEv.js → useMainLoopModel-Bq3koPFq.js} +2 -2
- package/dist/chunks/{useManagePlugins-D8K7TxOS.js → useManagePlugins-DT4FB9u2.js} +3 -3
- package/dist/chunks/{useMergedTools-JQNt6cB4.js → useMergedTools-ycEaiRuO.js} +2 -2
- package/dist/chunks/{useSearchInput-naZgTeTY.js → useSearchInput-BQwt8lhC.js} +1 -1
- package/dist/chunks/{useSettingsErrors-B_ON2uhq.js → useSettingsErrors-GLYWCTHJ.js} +1 -1
- package/dist/chunks/{useVoice-DjvY6q_C.js → useVoice-BqV1DBt-.js} +5 -5
- package/dist/chunks/{util-BwTRWVrl.js → util-DZxIhLjH.js} +10 -10
- package/dist/chunks/utils-CMcoQXdj.js +3 -0
- package/dist/chunks/{validatePlugin-CMOY-08u.js → validatePlugin-C3RXMbeg.js} +2 -2
- package/dist/chunks/{vim-AaHpII0z.js → vim-C_NuIV2X.js} +1 -1
- package/dist/chunks/{voice-I_niPDYx.js → voice-7aWPe3mC.js} +7 -7
- package/dist/chunks/{voiceModeEnabled-BZsBgRyY.js → voiceModeEnabled-C8WAlYqm.js} +1 -1
- package/dist/chunks/{voiceModeEnabled-DUmAjLGG.js → voiceModeEnabled-Cbo5eLWV.js} +1 -1
- package/dist/chunks/{voiceStreamSTT-B2yBe7t0.js → voiceStreamSTT-BtsMvGHm.js} +1 -1
- package/dist/chunks/{voiceStreamSTT-D78E5v0F.js → voiceStreamSTT-DmNYqjnW.js} +1 -1
- package/dist/chunks/{workerRegistry-RMvzN7sg.js → workerRegistry-fMzqsXVQ.js} +2 -2
- package/dist/chunks/{worktree-TqvDjo2A.js → worktree-C5Z0ICmn.js} +1 -1
- package/dist/chunks/{xml-CsdP7fK7.js → xml-DbZZp8Zy.js} +1 -1
- package/dist/cli.js +33 -33
- package/package.json +1 -1
- package/dist/chunks/ConsoleOAuthFlow-C1-SrEiG.js +0 -3
- package/dist/chunks/ToolSearchTool-BeZUtcX_.js +0 -3
- package/dist/chunks/asciicast-CWc3s8cO.js +0 -2
- package/dist/chunks/attach-CoVSthQI.js +0 -98
- package/dist/chunks/auth-CIEBUWAh.js +0 -3
- package/dist/chunks/changeDetector-BCuzf3ol.js +0 -3
- package/dist/chunks/claim-main-CwcSUu_w.js +0 -58
- package/dist/chunks/detach-0h-NxV2J.js +0 -75
- package/dist/chunks/earlyInput-B_aTbrmS.js +0 -2
- package/dist/chunks/history-vud-Tm1o.js +0 -68
- package/dist/chunks/lanBeacon-B9DUbPm5.js +0 -149
- package/dist/chunks/loadPluginHooks-pUErwUEr.js +0 -3
- package/dist/chunks/logout-D0IWuAdu.js +0 -3
- package/dist/chunks/ndjsonFramer-CKtNKe0_.js +0 -62
- package/dist/chunks/peers-DYT0TJOa.js +0 -46
- package/dist/chunks/pipe-status-BJlhlq2_.js +0 -49
- package/dist/chunks/pipeRegistry-Bqvffg4X.js +0 -316
- package/dist/chunks/pipeTransport-AYEUDuAI.js +0 -405
- package/dist/chunks/pipes-tMCTxKU7.js +0 -190
- package/dist/chunks/policyLimits-lOxwJSgx.js +0 -3
- package/dist/chunks/prompt-BRO4j8aV.js +0 -3
- package/dist/chunks/prompt-BWsbofSc.js +0 -3
- package/dist/chunks/registry-Bf_DxEcr.js +0 -3
- package/dist/chunks/sandbox-adapter-DlVhDXrc.js +0 -3
- package/dist/chunks/send-CCIavh7z.js +0 -85
- package/dist/chunks/sessionFileAccessHooks-CNUVTQ1R.js +0 -3
- package/dist/chunks/sessionMemoryUtils-xpfe6Pev.js +0 -3
- package/dist/chunks/teamDiscovery-BznSf4tS.js +0 -38
- package/dist/chunks/teleport-m6LivPjb.js +0 -3
- package/dist/chunks/toolSearch-CGzGQT9G.js +0 -3
- package/dist/chunks/udsClient-B70nBxvj.js +0 -242
- package/dist/chunks/udsClient-C5ukh5VE.js +0 -3
- package/dist/chunks/udsMessaging-C5P4nSg_.js +0 -3
- package/dist/chunks/udsMessaging-CccGgVgR.js +0 -603
- package/dist/chunks/useMasterMonitor-BQ1QhrlN.js +0 -323
- package/dist/chunks/utils-CxlU_Or6.js +0 -3
- /package/dist/chunks/{Dialog-XEoAY-lo.js → Dialog-Bl_rTts3.js} +0 -0
- /package/dist/chunks/{InProcessTransport-Dq207XBp.js → InProcessTransport-BDjSp8Wo.js} +0 -0
- /package/dist/chunks/{ListItem-BLRpONzN.js → ListItem-D9LLl8Ek.js} +0 -0
- /package/dist/chunks/{PermissionDialog-CGmleW13.js → PermissionDialog-D7UNIOtc.js} +0 -0
- /package/dist/chunks/{PressEnterToContinue-B8M_HSdG.js → PressEnterToContinue-D6AN11Tb.js} +0 -0
- /package/dist/chunks/{SearchBox-iXol4xrV.js → SearchBox-EHswnASB.js} +0 -0
- /package/dist/chunks/{WelcomeV2-BrLgacxm.js → WelcomeV2-oyf_KFt6.js} +0 -0
- /package/dist/chunks/{asciicast-BcRSJueh.js → asciicast-DOtXvlJV.js} +0 -0
- /package/dist/chunks/{attributionHooks-DYfOjXs3.js → attributionHooks-BNo0gNh0.js} +0 -0
- /package/dist/chunks/{attributionTrailer-BRzn4tt-.js → attributionTrailer-CP4i-6R-.js} +0 -0
- /package/dist/chunks/{autoModeDenials-DdxIfUGy.js → autoModeDenials-DR83Ic7k.js} +0 -0
- /package/dist/chunks/{bedrockClient-a4lkLst1.js → bedrockClient-BCB39ib8.js} +0 -0
- /package/dist/chunks/{bridgePointer-D_ikNrjn.js → bridgePointer-BQxAs9Dm.js} +0 -0
- /package/dist/chunks/{capacityWake-D0JN23wy.js → capacityWake-DyITX1TI.js} +0 -0
- /package/dist/chunks/{ccshareResume-DQEqveUy.js → ccshareResume-BEQIzaku.js} +0 -0
- /package/dist/chunks/{chromeNativeHost-Q6-G2bfy.js → chromeNativeHost-PnkUYqVg.js} +0 -0
- /package/dist/chunks/{claudeDesktop-WVwxxFNt.js → claudeDesktop-OsHcw1WR.js} +0 -0
- /package/dist/chunks/{cleanup-fEkK-hKc.js → cleanup-BJtntvv2.js} +0 -0
- /package/dist/chunks/{cliLaunch-CzauAJZe.js → cliLaunch-aWiCQf9j.js} +0 -0
- /package/dist/chunks/{connectHeadless-CCqvGWfL.js → connectHeadless-DOzENfOw.js} +0 -0
- /package/dist/chunks/{controlMessageCompat-DWv-mIPh.js → controlMessageCompat-BRVmRRA9.js} +0 -0
- /package/dist/chunks/{dangerousBackend-MjbASa5S.js → dangerousBackend-BlamCaXf.js} +0 -0
- /package/dist/chunks/{directoryCompletion-B8RCZO2J.js → directoryCompletion-BU0Dlg1v.js} +0 -0
- /package/dist/chunks/{earlyInput-BsKnIDJP.js → earlyInput-CATfkVKA.js} +0 -0
- /package/dist/chunks/{eventLoopStallDetector-C2lxypdX.js → eventLoopStallDetector-PpqOz7LN.js} +0 -0
- /package/dist/chunks/{exit-Bc29hy_j.js → exit-DirA_fuf.js} +0 -0
- /package/dist/chunks/{featureCheck-B9SCC0vN.js → featureCheck-Cv993Ldm.js} +0 -0
- /package/dist/chunks/{files-0Y68WpCS.js → files-CZIxcl4l.js} +0 -0
- /package/dist/chunks/{fpsMetrics-Di0G8OGw.js → fpsMetrics-Cl8mZ9J8.js} +0 -0
- /package/dist/chunks/{fuse-Df9YUVtR.js → fuse-BhjvaeDO.js} +0 -0
- /package/dist/chunks/{instinctParser-Dez-rnKK.js → instinctParser-DCTNGiAi.js} +0 -0
- /package/dist/chunks/{jwtUtils-DgPQR3cZ.js → jwtUtils-DL8L2JPK.js} +0 -0
- /package/dist/chunks/{lib-LxJ6DoZY.js → lib-CnkuCi7e.js} +0 -0
- /package/dist/chunks/{lockfile-D65KX0SH.js → lockfile-CcfaKXD7.js} +0 -0
- /package/dist/chunks/{modalContext-D2kC2GcE.js → modalContext-7wVG_JCR.js} +0 -0
- /package/dist/chunks/{observationStore-DtE97mP4.js → observationStore-BBBlD6y4.js} +0 -0
- /package/dist/chunks/{openai-U_owM0Wc.js → openai-DlVQAfwt.js} +0 -0
- /package/dist/chunks/{operations-ChPHc8e6.js → operations-Dv3d6vA6.js} +0 -0
- /package/dist/chunks/{output-style-BXQs3dnJ.js → output-style-R8UZLOIE.js} +0 -0
- /package/dist/chunks/{parseConnectUrl-MYfoAQ1a.js → parseConnectUrl-B7utf1Ba.js} +0 -0
- /package/dist/chunks/{poller-CJzreIZS.js → poller-BuKApY06.js} +0 -0
- /package/dist/chunks/{postCommitAttribution-DmuxexP6.js → postCommitAttribution-DbNo_b3T.js} +0 -0
- /package/dist/chunks/{projectContext-CEnG2izP.js → projectContext-CWwagotk.js} +0 -0
- /package/dist/chunks/{prompt-BnKv9_mj.js → prompt-rbaI_D5u.js} +0 -0
- /package/dist/chunks/{renderOptions-CHpHxRwl.js → renderOptions-DwPtvyyC.js} +0 -0
- /package/dist/chunks/{rewind-Ddhd2R_A.js → rewind-tscYe98H.js} +0 -0
- /package/dist/chunks/{rollback-Gt4wFMPp.js → rollback-CXcDCnEi.js} +0 -0
- /package/dist/chunks/{sanitization-CYd1OuBT.js → sanitization-DECVPK2r.js} +0 -0
- /package/dist/chunks/{sdkHeapDumpMonitor-BTcjJax2.js → sdkHeapDumpMonitor-D2snXOzY.js} +0 -0
- /package/dist/chunks/{server-DBPAty_m.js → server-ig2-DfTA.js} +0 -0
- /package/dist/chunks/{serverBanner-Bq43BqnP.js → serverBanner-BHbp5t4w.js} +0 -0
- /package/dist/chunks/{serverLog-C1qKA5fJ.js → serverLog-zxAMuJ_O.js} +0 -0
- /package/dist/chunks/{sessionDataUploader-Bnnb2afa.js → sessionDataUploader-FV9CZw0s.js} +0 -0
- /package/dist/chunks/{sessionManager-CprPE_HT.js → sessionManager-CuHQQSdR.js} +0 -0
- /package/dist/chunks/{slashCommandParsing-rs-ERr7C.js → slashCommandParsing-60JH6-d_.js} +0 -0
- /package/dist/chunks/{src-2yhJaeQZ.js → src-4WLsfC8V.js} +0 -0
- /package/dist/chunks/{src-C__qTDYF.js → src-iHiSipnJ.js} +0 -0
- /package/dist/chunks/{state-BVnzrPu7.js → state-DgMvaYzj.js} +0 -0
- /package/dist/chunks/{staticRender-Dhz8mkhA.js → staticRender-BSHQcTCI.js} +0 -0
- /package/dist/chunks/{stdio-CWDcxFu0.js → stdio-CWFOXyFI.js} +0 -0
- /package/dist/chunks/{stickers-4SNqAchz.js → stickers-C_Uob58C.js} +0 -0
- /package/dist/chunks/{systemTheme-Dp21I3Xt.js → systemTheme-A-hRlw_f.js} +0 -0
- /package/dist/chunks/{types-BrlxvD1M.js → types-DsgAHfPE.js} +0 -0
- /package/dist/chunks/{up-C0eEOvrs.js → up-DrjAA1yD.js} +0 -0
- /package/dist/chunks/{upstreamproxy-DoroF8oN.js → upstreamproxy-CYkpYjQW.js} +0 -0
- /package/dist/chunks/{voice-CSkrOZl_.js → voice-CESv02rP.js} +0 -0
- /package/dist/chunks/{workSecret-CMZkIeol.js → workSecret-8KZlvhR2.js} +0 -0
|
@@ -1,603 +0,0 @@
|
|
|
1
|
-
import { n as __esmMin, r as __exportAll } from "./chunk-CyLJMB0t.js";
|
|
2
|
-
import { n as getClaudeConfigHomeDir, s as init_envUtils } from "./envUtils-DVwWVCmJ.js";
|
|
3
|
-
import { E as jsonStringify, J as init_cleanupRegistry, L as errorMessage, T as jsonParse, V as init_errors, Y as registerCleanup, d as logForDebugging, s as init_debug, w as init_slowOperations } from "./debug-CWVskDes.js";
|
|
4
|
-
import { o as init_log, s as logError } from "./log-BtGcZqeW.js";
|
|
5
|
-
import { n as init_ndjsonFramer, t as attachNdjsonFramer } from "./ndjsonFramer-CKtNKe0_.js";
|
|
6
|
-
import { tmpdir } from "os";
|
|
7
|
-
import { dirname, join } from "path";
|
|
8
|
-
import { createHash, randomBytes, timingSafeEqual } from "crypto";
|
|
9
|
-
import { chmod, lstat, mkdir, open, readFile, rename, unlink } from "fs/promises";
|
|
10
|
-
import { createServer } from "net";
|
|
11
|
-
import { StringDecoder } from "node:string_decoder";
|
|
12
|
-
//#region src/utils/udsResponseReader.ts
|
|
13
|
-
function getChunkBytes(chunk) {
|
|
14
|
-
return typeof chunk === "string" ? Buffer.byteLength(chunk, "utf8") : chunk.byteLength;
|
|
15
|
-
}
|
|
16
|
-
function parseResponseLine(line) {
|
|
17
|
-
try {
|
|
18
|
-
return jsonParse(line);
|
|
19
|
-
} catch {
|
|
20
|
-
throw new Error("Invalid UDS response frame");
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
function attachUdsResponseReader(socket, options) {
|
|
24
|
-
let buffer = "";
|
|
25
|
-
let bufferBytes = 0;
|
|
26
|
-
let settled = false;
|
|
27
|
-
const decoder = new StringDecoder("utf8");
|
|
28
|
-
function cleanupListeners() {
|
|
29
|
-
socket.off("data", onData);
|
|
30
|
-
socket.off("error", onError);
|
|
31
|
-
socket.off("end", onEnd);
|
|
32
|
-
socket.off("close", onClose);
|
|
33
|
-
}
|
|
34
|
-
function finish(error) {
|
|
35
|
-
if (settled) return;
|
|
36
|
-
settled = true;
|
|
37
|
-
buffer = "";
|
|
38
|
-
bufferBytes = 0;
|
|
39
|
-
cleanupListeners();
|
|
40
|
-
if (error) socket.destroy();
|
|
41
|
-
else socket.end();
|
|
42
|
-
options.onSettled(error);
|
|
43
|
-
}
|
|
44
|
-
function onData(chunk) {
|
|
45
|
-
const decoded = decoder.write(chunk);
|
|
46
|
-
const decodedBytes = Buffer.byteLength(decoded, "utf8");
|
|
47
|
-
if (bufferBytes + decodedBytes > options.maxFrameBytes) {
|
|
48
|
-
finish(/* @__PURE__ */ new Error("UDS response frame exceeded size limit"));
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
buffer += decoded;
|
|
52
|
-
bufferBytes += decodedBytes;
|
|
53
|
-
let newlineIndex = buffer.indexOf("\n");
|
|
54
|
-
while (newlineIndex !== -1) {
|
|
55
|
-
const line = buffer.slice(0, newlineIndex);
|
|
56
|
-
const consumed = buffer.slice(0, newlineIndex + 1);
|
|
57
|
-
buffer = buffer.slice(newlineIndex + 1);
|
|
58
|
-
bufferBytes -= Buffer.byteLength(consumed, "utf8");
|
|
59
|
-
if (!line.trim()) {
|
|
60
|
-
newlineIndex = buffer.indexOf("\n");
|
|
61
|
-
continue;
|
|
62
|
-
}
|
|
63
|
-
let response;
|
|
64
|
-
try {
|
|
65
|
-
response = parseResponseLine(line);
|
|
66
|
-
} catch (error) {
|
|
67
|
-
finish(error instanceof Error ? error : new Error(errorMessage(error)));
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
if (response.type === "response" || options.acceptPong === true && response.type === "pong") {
|
|
71
|
-
finish();
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
if (response.type === "error") {
|
|
75
|
-
finish(new Error(response.data ?? "UDS receiver rejected message"));
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
newlineIndex = buffer.indexOf("\n");
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
function onError(error) {
|
|
82
|
-
finish(options.formatSocketError?.(error) ?? (error instanceof Error ? error : new Error(errorMessage(error))));
|
|
83
|
-
}
|
|
84
|
-
function onEnd() {
|
|
85
|
-
finish(/* @__PURE__ */ new Error("UDS socket ended before response"));
|
|
86
|
-
}
|
|
87
|
-
function onClose(hadError) {
|
|
88
|
-
if (hadError) return;
|
|
89
|
-
finish(/* @__PURE__ */ new Error("UDS socket closed before response"));
|
|
90
|
-
}
|
|
91
|
-
socket.on("data", onData);
|
|
92
|
-
socket.on("error", onError);
|
|
93
|
-
socket.on("end", onEnd);
|
|
94
|
-
socket.on("close", onClose);
|
|
95
|
-
}
|
|
96
|
-
var init_udsResponseReader = __esmMin((() => {
|
|
97
|
-
init_errors();
|
|
98
|
-
init_slowOperations();
|
|
99
|
-
}));
|
|
100
|
-
//#endregion
|
|
101
|
-
//#region src/utils/udsMessaging.ts
|
|
102
|
-
/**
|
|
103
|
-
* UDS Messaging Layer — Unix Domain Socket IPC for Claude Code instances.
|
|
104
|
-
*
|
|
105
|
-
* Each session auto-creates a UDS server so peer sessions can send messages.
|
|
106
|
-
* Protocol: newline-delimited JSON (NDJSON), one message per line.
|
|
107
|
-
*
|
|
108
|
-
* Socket path defaults to a tmpdir-based path derived from the session PID,
|
|
109
|
-
* but can be overridden via --messaging-socket-path.
|
|
110
|
-
*/
|
|
111
|
-
var udsMessaging_exports = /* @__PURE__ */ __exportAll({
|
|
112
|
-
MAX_UDS_CLIENTS: () => 128,
|
|
113
|
-
MAX_UDS_FRAME_BYTES: () => MAX_UDS_FRAME_BYTES,
|
|
114
|
-
MAX_UDS_INBOX_BYTES: () => MAX_UDS_INBOX_BYTES,
|
|
115
|
-
MAX_UDS_INBOX_ENTRIES: () => MAX_UDS_INBOX_ENTRIES,
|
|
116
|
-
UDS_AUTH_TIMEOUT_MS: () => UDS_AUTH_TIMEOUT_MS,
|
|
117
|
-
UDS_IDLE_TIMEOUT_MS: () => UDS_IDLE_TIMEOUT_MS,
|
|
118
|
-
drainInbox: () => drainInbox,
|
|
119
|
-
formatUdsAddress: () => formatUdsAddress,
|
|
120
|
-
getDefaultUdsSocketPath: () => getDefaultUdsSocketPath,
|
|
121
|
-
getUdsMessagingSocketPath: () => getUdsMessagingSocketPath,
|
|
122
|
-
parseUdsTarget: () => parseUdsTarget,
|
|
123
|
-
readUdsCapabilityToken: () => readUdsCapabilityToken,
|
|
124
|
-
sendUdsMessage: () => sendUdsMessage,
|
|
125
|
-
setOnEnqueue: () => setOnEnqueue,
|
|
126
|
-
startUdsMessaging: () => startUdsMessaging,
|
|
127
|
-
stopUdsMessaging: () => stopUdsMessaging
|
|
128
|
-
});
|
|
129
|
-
/**
|
|
130
|
-
* Default socket path based on PID, placed in a tmpdir subdirectory so it
|
|
131
|
-
* survives across config-home changes and avoids polluting ~/.claude.
|
|
132
|
-
*
|
|
133
|
-
* On Windows, Node.js requires named pipe paths in the `\\.\pipe\` namespace;
|
|
134
|
-
* file-system paths like `C:\...\Temp\x.sock` cause EACCES. Bun handles both
|
|
135
|
-
* transparently, but we use the pipe format on Windows for Node.js compat.
|
|
136
|
-
*/
|
|
137
|
-
function getDefaultUdsSocketPath() {
|
|
138
|
-
if (defaultSocketPath) return defaultSocketPath;
|
|
139
|
-
const nonce = randomBytes(16).toString("hex");
|
|
140
|
-
if (process.platform === "win32") {
|
|
141
|
-
defaultSocketPath = `\\\\.\\pipe\\claude-code-${process.pid}-${nonce}`;
|
|
142
|
-
return defaultSocketPath;
|
|
143
|
-
}
|
|
144
|
-
defaultSocketPath = join(tmpdir(), "claude-code-socks", `${process.pid}-${nonce}`, "messaging.sock");
|
|
145
|
-
return defaultSocketPath;
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
* Returns the socket path of the currently running server, or undefined
|
|
149
|
-
* if the server has not been started.
|
|
150
|
-
*/
|
|
151
|
-
function getUdsMessagingSocketPath() {
|
|
152
|
-
return socketPath ?? void 0;
|
|
153
|
-
}
|
|
154
|
-
function formatUdsAddress(socket) {
|
|
155
|
-
return `uds:${socket}`;
|
|
156
|
-
}
|
|
157
|
-
function parseUdsTarget(target) {
|
|
158
|
-
if (target.includes("#token=")) throw new Error("UDS target must not include an inline auth token; use the ListPeers address");
|
|
159
|
-
return { socketPath: target };
|
|
160
|
-
}
|
|
161
|
-
function getCapabilityDir() {
|
|
162
|
-
return join(getClaudeConfigHomeDir(), "messaging-capabilities");
|
|
163
|
-
}
|
|
164
|
-
function getCapabilityPath(socket) {
|
|
165
|
-
const digest = createHash("sha256").update(socket).digest("hex");
|
|
166
|
-
return join(getCapabilityDir(), `${digest}.json`);
|
|
167
|
-
}
|
|
168
|
-
function isNotFound(error) {
|
|
169
|
-
return typeof error === "object" && error !== null && error.code === "ENOENT";
|
|
170
|
-
}
|
|
171
|
-
async function assertPrivateCapabilityDir(dir) {
|
|
172
|
-
let stat;
|
|
173
|
-
try {
|
|
174
|
-
stat = await lstat(dir);
|
|
175
|
-
} catch (error) {
|
|
176
|
-
if (!isNotFound(error)) throw error;
|
|
177
|
-
await mkdir(dir, {
|
|
178
|
-
recursive: true,
|
|
179
|
-
mode: 448
|
|
180
|
-
});
|
|
181
|
-
stat = await lstat(dir);
|
|
182
|
-
}
|
|
183
|
-
assertPrivateDirectory(stat, dir, "capability directory");
|
|
184
|
-
await chmod(dir, 448);
|
|
185
|
-
}
|
|
186
|
-
function assertPrivateDirectory(stat, dir, label) {
|
|
187
|
-
if (!stat.isDirectory() || stat.isSymbolicLink()) throw new Error(`[udsMessaging] ${label} is not a private directory: ${dir}`);
|
|
188
|
-
if (process.platform !== "win32") {
|
|
189
|
-
if ((Number(stat.mode) & 63) !== 0) throw new Error(`[udsMessaging] ${label} permissions are too broad: ${dir}`);
|
|
190
|
-
if (typeof process.getuid === "function" && Number(stat.uid) !== process.getuid()) throw new Error(`[udsMessaging] ${label} owner does not match current user: ${dir}`);
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
async function writePrivateFileExclusive(path, content) {
|
|
194
|
-
const handle = await open(path, "wx", 384);
|
|
195
|
-
try {
|
|
196
|
-
await handle.writeFile(content, "utf-8");
|
|
197
|
-
} finally {
|
|
198
|
-
await handle.close();
|
|
199
|
-
}
|
|
200
|
-
await chmod(path, 384);
|
|
201
|
-
}
|
|
202
|
-
async function ensureSocketParent(path) {
|
|
203
|
-
const dir = dirname(path);
|
|
204
|
-
try {
|
|
205
|
-
const stat = await lstat(dir);
|
|
206
|
-
if (!stat.isDirectory() || stat.isSymbolicLink()) throw new Error(`[udsMessaging] socket parent is not a directory: ${dir}`);
|
|
207
|
-
assertPrivateDirectory(stat, dir, "socket parent");
|
|
208
|
-
return;
|
|
209
|
-
} catch (error) {
|
|
210
|
-
if (!isNotFound(error)) throw error;
|
|
211
|
-
}
|
|
212
|
-
await mkdir(dir, {
|
|
213
|
-
recursive: true,
|
|
214
|
-
mode: 448
|
|
215
|
-
});
|
|
216
|
-
await chmod(dir, 448);
|
|
217
|
-
}
|
|
218
|
-
async function writeCapabilityFile(socket, token) {
|
|
219
|
-
await assertPrivateCapabilityDir(getCapabilityDir());
|
|
220
|
-
const target = getCapabilityPath(socket);
|
|
221
|
-
const temp = `${target}.${process.pid}.${randomBytes(8).toString("hex")}.tmp`;
|
|
222
|
-
try {
|
|
223
|
-
await writePrivateFileExclusive(temp, jsonStringify({
|
|
224
|
-
socketPath: socket,
|
|
225
|
-
authToken: token
|
|
226
|
-
}));
|
|
227
|
-
await rename(temp, target);
|
|
228
|
-
} catch (error) {
|
|
229
|
-
try {
|
|
230
|
-
await unlink(temp);
|
|
231
|
-
} catch {}
|
|
232
|
-
throw error;
|
|
233
|
-
}
|
|
234
|
-
capabilityFilePath = target;
|
|
235
|
-
}
|
|
236
|
-
async function readUdsCapabilityToken(socket) {
|
|
237
|
-
try {
|
|
238
|
-
const parsed = jsonParse(await readFile(getCapabilityPath(socket), "utf-8"));
|
|
239
|
-
if (parsed.socketPath === socket && typeof parsed.authToken === "string") return parsed.authToken;
|
|
240
|
-
} catch {}
|
|
241
|
-
}
|
|
242
|
-
/**
|
|
243
|
-
* Register a callback invoked whenever a message is enqueued into the inbox.
|
|
244
|
-
* Used by the print/SDK query loop to kick off processing.
|
|
245
|
-
*/
|
|
246
|
-
function setOnEnqueue(cb) {
|
|
247
|
-
onEnqueueCb = cb;
|
|
248
|
-
}
|
|
249
|
-
/**
|
|
250
|
-
* Drain all pending inbox messages and release retained history.
|
|
251
|
-
*/
|
|
252
|
-
function drainInbox() {
|
|
253
|
-
const pending = inbox.splice(0, inbox.length);
|
|
254
|
-
inboxBytes = 0;
|
|
255
|
-
for (const entry of pending) entry.status = "processed";
|
|
256
|
-
return pending;
|
|
257
|
-
}
|
|
258
|
-
function getMessageBytes(message) {
|
|
259
|
-
return Buffer.byteLength(jsonStringify(message), "utf8");
|
|
260
|
-
}
|
|
261
|
-
function enqueueInboxEntry(entry) {
|
|
262
|
-
const entryBytes = getMessageBytes(entry.message);
|
|
263
|
-
if (entryBytes > 65536 || inbox.length >= 1e3 || inboxBytes + entryBytes > 2097152) {
|
|
264
|
-
logError(/* @__PURE__ */ new Error(`[udsMessaging] inbox full (${inbox.length}/${MAX_UDS_INBOX_ENTRIES}, ${inboxBytes}/${MAX_UDS_INBOX_BYTES} bytes); dropping message type=${entry.message.type}`));
|
|
265
|
-
return false;
|
|
266
|
-
}
|
|
267
|
-
inbox.push(entry);
|
|
268
|
-
inboxBytes += entryBytes;
|
|
269
|
-
return true;
|
|
270
|
-
}
|
|
271
|
-
function ensureAuthToken() {
|
|
272
|
-
if (!authToken) authToken = randomBytes(32).toString("hex");
|
|
273
|
-
return authToken;
|
|
274
|
-
}
|
|
275
|
-
function getMessageAuthToken(message) {
|
|
276
|
-
const token = message.meta?.authToken;
|
|
277
|
-
return typeof token === "string" ? token : void 0;
|
|
278
|
-
}
|
|
279
|
-
function isAuthorizedMessage(message) {
|
|
280
|
-
const provided = getMessageAuthToken(message);
|
|
281
|
-
if (!provided || !authToken) return false;
|
|
282
|
-
const providedBuffer = Buffer.from(provided, "utf8");
|
|
283
|
-
const expectedBuffer = Buffer.from(authToken, "utf8");
|
|
284
|
-
if (providedBuffer.length !== expectedBuffer.length) return false;
|
|
285
|
-
return timingSafeEqual(providedBuffer, expectedBuffer);
|
|
286
|
-
}
|
|
287
|
-
function writeSocketMessage(socket, message) {
|
|
288
|
-
if (socket.destroyed) return;
|
|
289
|
-
socket.write(jsonStringify(message) + "\n");
|
|
290
|
-
}
|
|
291
|
-
function writeSocketMessageAndDestroy(socket, message) {
|
|
292
|
-
if (socket.destroyed) return;
|
|
293
|
-
socket.write(jsonStringify(message) + "\n", () => {
|
|
294
|
-
if (!socket.destroyed) socket.destroy();
|
|
295
|
-
});
|
|
296
|
-
}
|
|
297
|
-
function writeSocketErrorAndDestroy(socket, data) {
|
|
298
|
-
writeSocketMessageAndDestroy(socket, {
|
|
299
|
-
type: "error",
|
|
300
|
-
data,
|
|
301
|
-
ts: (/* @__PURE__ */ new Date()).toISOString()
|
|
302
|
-
});
|
|
303
|
-
}
|
|
304
|
-
function unrefTimer(timer) {
|
|
305
|
-
const maybeUnref = timer.unref;
|
|
306
|
-
if (typeof maybeUnref === "function") maybeUnref.call(timer);
|
|
307
|
-
}
|
|
308
|
-
async function closeServer(serverToClose) {
|
|
309
|
-
await new Promise((resolve) => {
|
|
310
|
-
serverToClose.close(() => resolve());
|
|
311
|
-
});
|
|
312
|
-
}
|
|
313
|
-
async function removeSocketPath(path) {
|
|
314
|
-
if (process.platform === "win32") return;
|
|
315
|
-
try {
|
|
316
|
-
await unlink(path);
|
|
317
|
-
} catch {}
|
|
318
|
-
}
|
|
319
|
-
function stripAuthToken(message) {
|
|
320
|
-
const { authToken: _authToken, ...metaWithoutAuth } = message.meta ?? {};
|
|
321
|
-
return {
|
|
322
|
-
...message,
|
|
323
|
-
meta: Object.keys(metaWithoutAuth).length > 0 ? metaWithoutAuth : void 0
|
|
324
|
-
};
|
|
325
|
-
}
|
|
326
|
-
function withRequestAuthToken(message, token) {
|
|
327
|
-
return {
|
|
328
|
-
...message,
|
|
329
|
-
meta: {
|
|
330
|
-
...message.meta,
|
|
331
|
-
authToken: token
|
|
332
|
-
}
|
|
333
|
-
};
|
|
334
|
-
}
|
|
335
|
-
/**
|
|
336
|
-
* Start the UDS messaging server on the given socket path.
|
|
337
|
-
*
|
|
338
|
-
* Exports `CLAUDE_CODE_MESSAGING_SOCKET` into `process.env` so child
|
|
339
|
-
* processes (hooks, spawned agents) can discover and connect back.
|
|
340
|
-
*/
|
|
341
|
-
async function startUdsMessaging(path, opts) {
|
|
342
|
-
if (server) {
|
|
343
|
-
logForDebugging("[udsMessaging] server already running, skipping start");
|
|
344
|
-
return;
|
|
345
|
-
}
|
|
346
|
-
if (process.platform !== "win32") await ensureSocketParent(path);
|
|
347
|
-
if (process.platform !== "win32") try {
|
|
348
|
-
await unlink(path);
|
|
349
|
-
} catch {}
|
|
350
|
-
const token = ensureAuthToken();
|
|
351
|
-
let startedServer = null;
|
|
352
|
-
let exportedSocketEnv = false;
|
|
353
|
-
try {
|
|
354
|
-
await new Promise((resolve, reject) => {
|
|
355
|
-
const srv = createServer((socket) => {
|
|
356
|
-
if (clients.size >= 128) {
|
|
357
|
-
logForDebugging(`[udsMessaging] rejected client: ${clients.size}/128 clients already connected`);
|
|
358
|
-
socket.destroy();
|
|
359
|
-
return;
|
|
360
|
-
}
|
|
361
|
-
clients.add(socket);
|
|
362
|
-
logForDebugging(`[udsMessaging] client connected (total: ${clients.size})`);
|
|
363
|
-
let authenticated = false;
|
|
364
|
-
let closing = false;
|
|
365
|
-
const closeWithError = (data) => {
|
|
366
|
-
if (closing || socket.destroyed) return;
|
|
367
|
-
closing = true;
|
|
368
|
-
socket.pause();
|
|
369
|
-
writeSocketErrorAndDestroy(socket, data);
|
|
370
|
-
};
|
|
371
|
-
const authTimer = setTimeout(() => {
|
|
372
|
-
if (authenticated || socket.destroyed) return;
|
|
373
|
-
logForDebugging("[udsMessaging] closing unauthenticated idle client");
|
|
374
|
-
closeWithError("authentication timeout");
|
|
375
|
-
}, UDS_AUTH_TIMEOUT_MS);
|
|
376
|
-
unrefTimer(authTimer);
|
|
377
|
-
socket.setTimeout(UDS_IDLE_TIMEOUT_MS, () => {
|
|
378
|
-
logForDebugging("[udsMessaging] closing idle client");
|
|
379
|
-
closeWithError("idle timeout");
|
|
380
|
-
});
|
|
381
|
-
attachNdjsonFramer(socket, (msg) => {
|
|
382
|
-
if (!isAuthorizedMessage(msg)) {
|
|
383
|
-
logForDebugging(`[udsMessaging] rejected unauthenticated message type=${msg.type}`);
|
|
384
|
-
closeWithError("unauthorized");
|
|
385
|
-
return;
|
|
386
|
-
}
|
|
387
|
-
if (!authenticated) {
|
|
388
|
-
authenticated = true;
|
|
389
|
-
clearTimeout(authTimer);
|
|
390
|
-
}
|
|
391
|
-
if (msg.type === "ping") {
|
|
392
|
-
writeSocketMessage(socket, {
|
|
393
|
-
type: "pong",
|
|
394
|
-
from: socketPath ?? void 0,
|
|
395
|
-
ts: (/* @__PURE__ */ new Date()).toISOString()
|
|
396
|
-
});
|
|
397
|
-
return;
|
|
398
|
-
}
|
|
399
|
-
const sanitizedMessage = stripAuthToken(msg);
|
|
400
|
-
const entry = {
|
|
401
|
-
id: `uds-${nextId++}`,
|
|
402
|
-
message: sanitizedMessage,
|
|
403
|
-
receivedAt: Date.now(),
|
|
404
|
-
status: "pending"
|
|
405
|
-
};
|
|
406
|
-
if (!enqueueInboxEntry(entry)) {
|
|
407
|
-
closeWithError("inbox full");
|
|
408
|
-
return;
|
|
409
|
-
}
|
|
410
|
-
logForDebugging(`[udsMessaging] enqueued message type=${msg.type} from=${msg.from ?? "unknown"}`);
|
|
411
|
-
writeSocketMessage(socket, {
|
|
412
|
-
type: "response",
|
|
413
|
-
data: "ok",
|
|
414
|
-
ts: (/* @__PURE__ */ new Date()).toISOString(),
|
|
415
|
-
meta: { id: entry.id }
|
|
416
|
-
});
|
|
417
|
-
onEnqueueCb?.();
|
|
418
|
-
}, (text) => jsonParse(text), {
|
|
419
|
-
maxFrameBytes: MAX_UDS_FRAME_BYTES,
|
|
420
|
-
onFrameError: (error) => {
|
|
421
|
-
logForDebugging(`[udsMessaging] ${error.message}`);
|
|
422
|
-
closeWithError(error.message);
|
|
423
|
-
},
|
|
424
|
-
onInvalidFrame: (error) => {
|
|
425
|
-
logForDebugging(`[udsMessaging] invalid client frame: ${errorMessage(error)}`);
|
|
426
|
-
closeWithError("invalid frame");
|
|
427
|
-
},
|
|
428
|
-
destroyOnFrameError: false
|
|
429
|
-
});
|
|
430
|
-
socket.on("close", () => {
|
|
431
|
-
clearTimeout(authTimer);
|
|
432
|
-
clients.delete(socket);
|
|
433
|
-
});
|
|
434
|
-
socket.on("error", (err) => {
|
|
435
|
-
clearTimeout(authTimer);
|
|
436
|
-
clients.delete(socket);
|
|
437
|
-
logForDebugging(`[udsMessaging] client error: ${errorMessage(err)}`);
|
|
438
|
-
});
|
|
439
|
-
});
|
|
440
|
-
const rejectBeforeListen = (error) => {
|
|
441
|
-
reject(error);
|
|
442
|
-
};
|
|
443
|
-
const logRuntimeError = (error) => {
|
|
444
|
-
logForDebugging(`[udsMessaging] server error on ${path}${opts?.isExplicit ? " (explicit)" : ""}: ${errorMessage(error)}`);
|
|
445
|
-
};
|
|
446
|
-
srv.once("error", rejectBeforeListen);
|
|
447
|
-
srv.listen(path, () => {
|
|
448
|
-
(async () => {
|
|
449
|
-
try {
|
|
450
|
-
if (process.platform !== "win32") try {
|
|
451
|
-
await chmod(path, 384);
|
|
452
|
-
} catch (err) {
|
|
453
|
-
if (!(err instanceof Error && err.code === "ENOENT")) throw err;
|
|
454
|
-
logForDebugging(`[udsMessaging] chmod skipped: socket file not yet visible at ${path}`);
|
|
455
|
-
}
|
|
456
|
-
srv.off("error", rejectBeforeListen);
|
|
457
|
-
srv.on("error", logRuntimeError);
|
|
458
|
-
server = srv;
|
|
459
|
-
startedServer = srv;
|
|
460
|
-
resolve();
|
|
461
|
-
} catch (error) {
|
|
462
|
-
srv.off("error", rejectBeforeListen);
|
|
463
|
-
const closeError = error instanceof Error ? error : new Error(errorMessage(error));
|
|
464
|
-
let rejected = false;
|
|
465
|
-
const rejectOnce = () => {
|
|
466
|
-
if (rejected) return;
|
|
467
|
-
rejected = true;
|
|
468
|
-
reject(closeError);
|
|
469
|
-
};
|
|
470
|
-
const fallback = setTimeout(rejectOnce, 1e3);
|
|
471
|
-
unrefTimer(fallback);
|
|
472
|
-
srv.close(() => {
|
|
473
|
-
clearTimeout(fallback);
|
|
474
|
-
rejectOnce();
|
|
475
|
-
});
|
|
476
|
-
}
|
|
477
|
-
})();
|
|
478
|
-
});
|
|
479
|
-
});
|
|
480
|
-
await writeCapabilityFile(path, token);
|
|
481
|
-
socketPath = path;
|
|
482
|
-
process.env.CLAUDE_CODE_MESSAGING_SOCKET = path;
|
|
483
|
-
exportedSocketEnv = true;
|
|
484
|
-
logForDebugging(`[udsMessaging] server listening on ${path}${opts?.isExplicit ? " (explicit)" : ""}`);
|
|
485
|
-
} catch (error) {
|
|
486
|
-
if (capabilityFilePath) {
|
|
487
|
-
try {
|
|
488
|
-
await unlink(capabilityFilePath);
|
|
489
|
-
} catch {}
|
|
490
|
-
capabilityFilePath = null;
|
|
491
|
-
}
|
|
492
|
-
if (startedServer) await closeServer(startedServer);
|
|
493
|
-
if (server === startedServer) server = null;
|
|
494
|
-
await removeSocketPath(path);
|
|
495
|
-
if (exportedSocketEnv) delete process.env.CLAUDE_CODE_MESSAGING_SOCKET;
|
|
496
|
-
socketPath = null;
|
|
497
|
-
defaultSocketPath = null;
|
|
498
|
-
authToken = null;
|
|
499
|
-
throw error;
|
|
500
|
-
}
|
|
501
|
-
registerCleanup(async () => {
|
|
502
|
-
await stopUdsMessaging();
|
|
503
|
-
});
|
|
504
|
-
}
|
|
505
|
-
/**
|
|
506
|
-
* Stop the UDS messaging server and clean up the socket file.
|
|
507
|
-
*/
|
|
508
|
-
async function stopUdsMessaging() {
|
|
509
|
-
defaultSocketPath = null;
|
|
510
|
-
if (!server) return;
|
|
511
|
-
for (const socket of clients) socket.destroy();
|
|
512
|
-
clients.clear();
|
|
513
|
-
await new Promise((resolve) => {
|
|
514
|
-
server.close(() => resolve());
|
|
515
|
-
});
|
|
516
|
-
server = null;
|
|
517
|
-
inbox.length = 0;
|
|
518
|
-
inboxBytes = 0;
|
|
519
|
-
onEnqueueCb = null;
|
|
520
|
-
if (socketPath) {
|
|
521
|
-
await removeSocketPath(socketPath);
|
|
522
|
-
delete process.env.CLAUDE_CODE_MESSAGING_SOCKET;
|
|
523
|
-
logForDebugging(`[udsMessaging] server stopped, socket removed: ${socketPath}`);
|
|
524
|
-
socketPath = null;
|
|
525
|
-
authToken = null;
|
|
526
|
-
}
|
|
527
|
-
if (capabilityFilePath) {
|
|
528
|
-
try {
|
|
529
|
-
await unlink(capabilityFilePath);
|
|
530
|
-
} catch {}
|
|
531
|
-
capabilityFilePath = null;
|
|
532
|
-
}
|
|
533
|
-
}
|
|
534
|
-
/**
|
|
535
|
-
* Send a UDS message to a specific socket path (outbound — used when this
|
|
536
|
-
* session wants to push a message to a peer's server).
|
|
537
|
-
*/
|
|
538
|
-
async function sendUdsMessage(targetSocketPath, message, opts = {}) {
|
|
539
|
-
const { createConnection } = await import("net");
|
|
540
|
-
const token = opts.authToken ?? authToken;
|
|
541
|
-
if (!token) throw new Error("Cannot send UDS message without auth token");
|
|
542
|
-
const outbound = withRequestAuthToken({
|
|
543
|
-
...message,
|
|
544
|
-
from: message.from ?? socketPath ?? void 0,
|
|
545
|
-
ts: message.ts ?? (/* @__PURE__ */ new Date()).toISOString()
|
|
546
|
-
}, token);
|
|
547
|
-
return new Promise((resolve, reject) => {
|
|
548
|
-
let settled = false;
|
|
549
|
-
let conn;
|
|
550
|
-
const finish = (error) => {
|
|
551
|
-
if (settled) return;
|
|
552
|
-
settled = true;
|
|
553
|
-
if (error) {
|
|
554
|
-
conn.destroy(error);
|
|
555
|
-
reject(error);
|
|
556
|
-
} else {
|
|
557
|
-
conn.end();
|
|
558
|
-
resolve();
|
|
559
|
-
}
|
|
560
|
-
};
|
|
561
|
-
conn = createConnection(targetSocketPath, () => {
|
|
562
|
-
conn.write(jsonStringify(outbound) + "\n", (err) => {
|
|
563
|
-
if (err) finish(err);
|
|
564
|
-
});
|
|
565
|
-
});
|
|
566
|
-
attachUdsResponseReader(conn, {
|
|
567
|
-
maxFrameBytes: MAX_UDS_FRAME_BYTES,
|
|
568
|
-
acceptPong: true,
|
|
569
|
-
onSettled: finish
|
|
570
|
-
});
|
|
571
|
-
conn.setTimeout(5e3, () => {
|
|
572
|
-
finish(/* @__PURE__ */ new Error("Connection timed out"));
|
|
573
|
-
});
|
|
574
|
-
});
|
|
575
|
-
}
|
|
576
|
-
var server, socketPath, onEnqueueCb, clients, inbox, nextId, defaultSocketPath, authToken, capabilityFilePath, inboxBytes, MAX_UDS_INBOX_ENTRIES, MAX_UDS_FRAME_BYTES, MAX_UDS_INBOX_BYTES, UDS_AUTH_TIMEOUT_MS, UDS_IDLE_TIMEOUT_MS;
|
|
577
|
-
var init_udsMessaging = __esmMin((() => {
|
|
578
|
-
init_cleanupRegistry();
|
|
579
|
-
init_debug();
|
|
580
|
-
init_errors();
|
|
581
|
-
init_envUtils();
|
|
582
|
-
init_ndjsonFramer();
|
|
583
|
-
init_udsResponseReader();
|
|
584
|
-
init_log();
|
|
585
|
-
init_slowOperations();
|
|
586
|
-
server = null;
|
|
587
|
-
socketPath = null;
|
|
588
|
-
onEnqueueCb = null;
|
|
589
|
-
clients = /* @__PURE__ */ new Set();
|
|
590
|
-
inbox = [];
|
|
591
|
-
nextId = 1;
|
|
592
|
-
defaultSocketPath = null;
|
|
593
|
-
authToken = null;
|
|
594
|
-
capabilityFilePath = null;
|
|
595
|
-
inboxBytes = 0;
|
|
596
|
-
MAX_UDS_INBOX_ENTRIES = 1e3;
|
|
597
|
-
MAX_UDS_FRAME_BYTES = 64 * 1024;
|
|
598
|
-
MAX_UDS_INBOX_BYTES = 2 * 1024 * 1024;
|
|
599
|
-
UDS_AUTH_TIMEOUT_MS = 2e3;
|
|
600
|
-
UDS_IDLE_TIMEOUT_MS = 3e4;
|
|
601
|
-
}));
|
|
602
|
-
//#endregion
|
|
603
|
-
export { udsMessaging_exports as _, UDS_IDLE_TIMEOUT_MS as a, init_udsResponseReader as b, getDefaultUdsSocketPath as c, parseUdsTarget as d, readUdsCapabilityToken as f, stopUdsMessaging as g, startUdsMessaging as h, UDS_AUTH_TIMEOUT_MS as i, getUdsMessagingSocketPath as l, setOnEnqueue as m, MAX_UDS_INBOX_BYTES as n, drainInbox as o, sendUdsMessage as p, MAX_UDS_INBOX_ENTRIES as r, formatUdsAddress as s, MAX_UDS_FRAME_BYTES as t, init_udsMessaging as u, attachUdsResponseReader as v, getChunkBytes as y };
|