@lawpath-tech/openclaw 2026.2.21-4 → 2026.2.21-6
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/{accounts-CQT5u65w.js → accounts-CJEDkyd7.js} +1 -1
- package/dist/{accounts-DFrH9IVU.js → accounts-CaJg9v7D.js} +1 -1
- package/dist/{accounts-C8m4ADkw.js → accounts-DQo5uGA3.js} +14 -14
- package/dist/{active-listener-BKTctYlH.js → active-listener-Bhmh-BBe.js} +1 -1
- package/dist/{agent-scope-D-SlG1bQ.js → agent-scope-CKu-vMMp.js} +3 -3
- package/dist/{agents-BtqLW18n.js → agents-5gS4Morq.js} +4 -4
- package/dist/{agents.config-B-tuPgrg.js → agents.config-DGVdd0H4.js} +1 -1
- package/dist/{agents.config-ICVDwC0C.js → agents.config-Dy2Tojo2.js} +1 -1
- package/dist/{audio-preflight-BAupR5wm.js → audio-preflight-BoDf-OA5.js} +4 -4
- package/dist/{audio-preflight-DSln0Zsg.js → audio-preflight-yQKupU0M.js} +29 -29
- package/dist/{auth-choice-BjZRva43.js → auth-choice-CujjjpDj.js} +1 -1
- package/dist/{auth-choice-6iuXqwcN.js → auth-choice-CyeueHh0.js} +1 -1
- package/dist/{banner-B3WC17dn.js → banner-BB3Z8Akj.js} +1 -1
- package/dist/{bindings-DL-vZcXK.js → bindings-pn9FkE0Z.js} +2 -2
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +53 -53
- package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
- package/dist/bundled/command-logger/handler.js +1 -1
- package/dist/bundled/session-memory/handler.js +53 -53
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-activity-BgsTqLau.js → channel-activity-pOw1s-fe.js} +1 -1
- package/dist/{channel-options-BDj65ZyO.js → channel-options-C1Z6nQwx.js} +1 -1
- package/dist/{channel-options-G8V1c6AS.js → channel-options-DxnRn3HQ.js} +1 -1
- package/dist/{channel-web-B_ZYKCEQ.js → channel-web-Bkp-VxtT.js} +1 -1
- package/dist/{channels-cli-raxsTCN2.js → channels-cli-B7GOmHwj.js} +4 -4
- package/dist/{channels-cli-DqFbn6qS.js → channels-cli-DGUKSzax.js} +4 -4
- package/dist/{chrome-_026ohiG.js → chrome-Bnq0CyY4.js} +20 -20
- package/dist/{chrome-CzHty2tf.js → chrome-CQlDoNNk.js} +7 -7
- package/dist/{chunk-fZrBDWYg.js → chunk-BkGjWi6P.js} +1 -1
- package/dist/{cli-E0T5u43Z.js → cli-DSVcE01B.js} +1 -1
- package/dist/{cli-CR9BTL9c.js → cli-RMmIna0L.js} +1 -1
- package/dist/{command-format-BOHIfoCX.js → command-format-CM0AxuCk.js} +1 -1
- package/dist/{command-registry-BmpWsMTW.js → command-registry-C8m3qBQR.js} +9 -9
- package/dist/{commands-registry-3kTkR4r1.js → commands-registry-BoKLuuwG.js} +4 -4
- package/dist/{completion-cli-S4G6qt8g.js → completion-cli-DDqcpVLn.js} +1 -1
- package/dist/{completion-cli-ilRVVz-z.js → completion-cli-Dto_ttBF.js} +2 -2
- package/dist/{config-CScuPNjn.js → config-D0UwRKru.js} +12 -12
- package/dist/{config-cli-Cko5ncf5.js → config-cli-5dIx4eBy.js} +1 -1
- package/dist/{config-cli-WbPlELKk.js → config-cli-daCg9d8E.js} +1 -1
- package/dist/{configure-B-GCDUGh.js → configure-C8s3_7RF.js} +3 -3
- package/dist/{configure-BBkx0Gee.js → configure-DOvWFudD.js} +3 -3
- package/dist/{deliver-CChv42uL.js → deliver--EhsFXv7.js} +20 -20
- package/dist/{deliver-IOU5_B6z.js → deliver-DXUDTvJu.js} +1 -1
- package/dist/{diagnostic-DriDPU6M.js → diagnostic-DTfVTKJM.js} +1 -1
- package/dist/{doctor-completion-7mRw3cHh.js → doctor-completion-Dwy9h3mp.js} +1 -1
- package/dist/{doctor-completion-CJKoQcYI.js → doctor-completion-PJG8ramM.js} +1 -1
- package/dist/entry.js +1 -1
- package/dist/extensionAPI.js +6 -6
- package/dist/{frontmatter-CdkBcBAo.js → frontmatter-Dab6NVCF.js} +2 -2
- package/dist/{gateway-cli-CmSTW0ue.js → gateway-cli-08bLT4Lm.js} +14 -9
- package/dist/{gateway-cli-AhPjzNqQ.js → gateway-cli-Y7MMw6f2.js} +14 -9
- package/dist/{gemini-auth-cD8BrH5d.js → gemini-auth-jiCC1_gO.js} +1 -1
- package/dist/{github-copilot-token-Dgb9dAHW.js → github-copilot-token-DAycnoAs.js} +7 -7
- package/dist/{health-ADwLM-Or.js → health-BuZYFEjf.js} +1 -1
- package/dist/{health-fiXB0fGK.js → health-C47gv6Ik.js} +1 -1
- package/dist/{hooks-cli-DRoJbg8P.js → hooks-cli-COO_JTQt.js} +2 -2
- package/dist/{hooks-cli-XfbsybsC.js → hooks-cli-D0f1i-sv.js} +2 -2
- package/dist/{image-CdTrSqaH.js → image-BHIZnUgU.js} +1 -1
- package/dist/{image-B9TdLqUC.js → image-Bxlb76-w.js} +4 -4
- package/dist/{image-ops-DSHe7MDO.js → image-ops-Bgwps3ZY.js} +1 -1
- package/dist/index.js +6 -6
- package/dist/{ir-p6xtdC2E.js → ir-C12Waxsc.js} +4 -4
- package/dist/llm-slug-generator.js +53 -53
- package/dist/{local-roots-DxIZcL-f.js → local-roots-BXHtS1lV.js} +5 -5
- package/dist/{login-D1xDylNg.js → login-CSOqZ7U4.js} +7 -7
- package/dist/{login-qr-DuFTjxNo.js → login-qr-C0P5yf2R.js} +12 -12
- package/dist/{manager-CHKGgP5H.js → manager-iCRgH8LP.js} +13 -13
- package/dist/{manifest-registry-Dhk4A5vb.js → manifest-registry-D31TP66o.js} +19 -19
- package/dist/{markdown-tables-_e0OifWF.js → markdown-tables-DfvQjS1F.js} +1 -1
- package/dist/{message-channel-CHYSjmbr.js → message-channel-BckS8bQ9.js} +1 -1
- package/dist/{model-auth-3yb_4VXX.js → model-auth-4U7dwHzy.js} +9 -9
- package/dist/{models-2tG63q_V.js → models-DogF-UP8.js} +2 -2
- package/dist/{models-cli-CR_SMGJ0.js → models-cli-DIDuJyRY.js} +2 -2
- package/dist/{models-cli-BWxHuaVU.js → models-cli-hTpwPgdx.js} +3 -3
- package/dist/{onboard-DBSlZhzk.js → onboard-CAaMOWVz.js} +2 -2
- package/dist/{onboard-a3lJkMHB.js → onboard-Dnbsa0t_.js} +2 -2
- package/dist/{onboard-channels-B8j2CJsJ.js → onboard-channels-Ck5vewaM.js} +1 -1
- package/dist/{onboard-channels-BUE80D3V.js → onboard-channels-CxXKKyqy.js} +1 -1
- package/dist/{onboarding-vEEafQpu.js → onboarding-CiHD_RlU.js} +3 -3
- package/dist/{onboarding-BPiYCwYW.js → onboarding-CoiWlTdt.js} +3 -3
- package/dist/{onboarding.finalize-ASGzuJ_m.js → onboarding.finalize-DsFwibvU.js} +6 -6
- package/dist/{onboarding.finalize-C7185nuS.js → onboarding.finalize-dcJBGnBz.js} +5 -5
- package/dist/{outbound-BqU-pis3.js → outbound-CyTM7y9i.js} +7 -7
- package/dist/{outbound-attachment-D9iNB8-3.js → outbound-attachment-egG5Hv4A.js} +2 -2
- package/dist/{paths-CyR9Pa1R.js → paths-CkkDESQ2.js} +5 -5
- package/dist/{paths-BEAbheM8.js → paths-Cv2Q0cX2.js} +1 -1
- package/dist/{pi-auth-json-B22wYwcC.js → pi-auth-json-DPksdYT4.js} +8 -8
- package/dist/{pi-embedded-DtVM2K0j.js → pi-embedded-CrYPeE2s.js} +53 -19
- package/dist/{pi-embedded-BfX7An0n.js → pi-embedded-DRWWBoNo.js} +199 -165
- package/dist/{pi-embedded-helpers-Mzn8kkGx.js → pi-embedded-helpers-BxT45zZ8.js} +52 -52
- package/dist/{pi-embedded-helpers-DChC7Q7D.js → pi-embedded-helpers-F2YKLBnV.js} +4 -4
- package/dist/{plugin-registry-CDCLBIsW.js → plugin-registry-BJ7SMd60.js} +1 -1
- package/dist/{plugin-registry-DAvWT8O2.js → plugin-registry-BvNBkzNY.js} +1 -1
- package/dist/plugin-sdk/{accounts-fnLsjAOi.js → accounts-Ciwy7Yxd.js} +3 -3
- package/dist/plugin-sdk/{accounts-BcQo4OUu.js → accounts-DUBJHEgi.js} +1 -1
- package/dist/plugin-sdk/{accounts-DEsAwvaZ.js → accounts-wSu5JyDM.js} +1 -1
- package/dist/plugin-sdk/{active-listener-CeaKSm29.js → active-listener-Bnau4oiu.js} +1 -1
- package/dist/plugin-sdk/{agent-scope-DSex4wfg.js → agent-scope-B_K0lnIZ.js} +2 -2
- package/dist/plugin-sdk/{api-key-rotation-DVRFDYWE.js → api-key-rotation-ubwcEE3L.js} +1 -1
- package/dist/plugin-sdk/{audio-preflight-rT8tAkD-.js → audio-preflight-BS8n82KZ.js} +24 -24
- package/dist/plugin-sdk/{bindings-DeKqzYUw.js → bindings-y5ob6sm3.js} +2 -2
- package/dist/plugin-sdk/{channel-activity-WgE8Z4Bb.js → channel-activity-CCnr-9bS.js} +1 -1
- package/dist/plugin-sdk/{channel-web-D7oXjz9F.js → channel-web-C6TCmDNo.js} +22 -22
- package/dist/plugin-sdk/{chrome-CmTDPHBP.js → chrome-BY2jt7nz.js} +3 -3
- package/dist/plugin-sdk/{chunk-CQk9vawA.js → chunk-DyzO7IVo.js} +1 -1
- package/dist/plugin-sdk/{command-format-DHXa0Clc.js → command-format-DcBXOX9Z.js} +1 -1
- package/dist/plugin-sdk/{commands-registry-lvrJ62DW.js → commands-registry-BlifvuiT.js} +4 -4
- package/dist/plugin-sdk/{config-BT7sZurc.js → config-c9LTBVr8.js} +9 -9
- package/dist/plugin-sdk/{deliver-CJxTyTAX.js → deliver-B0aMj415.js} +10 -10
- package/dist/plugin-sdk/{diagnostic-Up1aMyxZ.js → diagnostic-DKyVS3IK.js} +1 -1
- package/dist/plugin-sdk/{image-DN02b1Un.js → image-C2wTkNPw.js} +4 -4
- package/dist/plugin-sdk/{image-ops-CZqefviF.js → image-ops-DvH046F-.js} +1 -1
- package/dist/plugin-sdk/index.js +53 -53
- package/dist/plugin-sdk/{ir-B7rkHLE2.js → ir-CKLBdoDN.js} +4 -4
- package/dist/plugin-sdk/{local-roots-BQE1Ebnw.js → local-roots-Com8GhnT.js} +3 -3
- package/dist/plugin-sdk/{login-De0S3iEe.js → login-Bg_WVfHE.js} +7 -7
- package/dist/plugin-sdk/{login-qr-DbAmVoVd.js → login-qr-0RXOeFuV.js} +9 -9
- package/dist/plugin-sdk/{manager-NrAHkxhT.js → manager-0ITt6KKN.js} +8 -8
- package/dist/plugin-sdk/{manifest-registry-DvEm2HHf.js → manifest-registry-sgHvjA6E.js} +1 -1
- package/dist/plugin-sdk/{markdown-tables-FPKU-GAf.js → markdown-tables-CTgITejf.js} +1 -1
- package/dist/plugin-sdk/{message-channel-DY9wVB2A.js → message-channel-DmB4bGFh.js} +1 -1
- package/dist/plugin-sdk/{model-selection-D74TGHOt.js → model-selection-eaUqWB9v.js} +4 -4
- package/dist/plugin-sdk/{outbound-hovTyykv.js → outbound-YogvVnLx.js} +7 -7
- package/dist/plugin-sdk/{outbound-attachment-t84PRHhe.js → outbound-attachment-DFlJJUUs.js} +2 -2
- package/dist/plugin-sdk/{pi-auth-json-3M5ZaNhl.js → pi-auth-json-BNYV9v5Z.js} +5 -5
- package/dist/plugin-sdk/{pi-embedded-helpers-HEdGJVz9.js → pi-embedded-helpers-D-zgah-f.js} +17 -17
- package/dist/plugin-sdk/{plugins-a8_TtkpO.js → plugins-Bi3zjb1D.js} +4 -4
- package/dist/plugin-sdk/{pw-ai-CBpL2WWS.js → pw-ai-D17TBpla.js} +8 -8
- package/dist/plugin-sdk/{qmd-manager-Hv8FbJlj.js → qmd-manager-C5jlBI8H.js} +4 -4
- package/dist/plugin-sdk/{registry-DL-33c9X.js → registry-O1yza0Vh.js} +2 -2
- package/dist/{replies-AytmsAUn.js → plugin-sdk/replies-Bi2MUExf.js} +3 -3
- package/dist/plugin-sdk/{reply-CcZVzbxJ.js → reply-DRhWRalB.js} +115 -81
- package/dist/plugin-sdk/{reply-prefix-DNtb4_wd.js → reply-prefix-D9Vp9XsI.js} +1 -1
- package/dist/plugin-sdk/{resolve-outbound-target-EACA6DIF.js → resolve-outbound-target-4LJSOI03.js} +2 -2
- package/dist/plugin-sdk/{resolve-route-Cqj4b_M3.js → resolve-route-DGSGaQkJ.js} +3 -3
- package/dist/plugin-sdk/{retry-5P3d0rYw.js → retry-JFNwfUew.js} +1 -1
- package/dist/plugin-sdk/{runner-CF0Vfhdz.js → runner-DVSsxWbK.js} +9 -9
- package/dist/plugin-sdk/{send-jhlw6FJR.js → send-7v9Tg-1N.js} +10 -10
- package/dist/plugin-sdk/{send-4EuOqK3R.js → send-CuVP5yhW.js} +7 -7
- package/dist/plugin-sdk/{send-B3LOEv4r.js → send-Cy2TYbta.js} +6 -6
- package/dist/plugin-sdk/{send-Cz-EZBfd.js → send-e4x0TcgT.js} +10 -10
- package/dist/plugin-sdk/{send-Czuwer1y.js → send-iHZz9oKf.js} +6 -6
- package/dist/plugin-sdk/{session-BjNuud8u.js → session-CHV-qoDA.js} +4 -4
- package/dist/plugin-sdk/{skill-commands-B5t3dEA3.js → skill-commands-uBEgxRtL.js} +5 -5
- package/dist/plugin-sdk/{skills-n6vXaMPn.js → skills-CIpuy3Vv.js} +7 -7
- package/dist/plugin-sdk/{sqlite-ulpcowfN.js → sqlite-DUu0dwic.js} +1 -1
- package/dist/plugin-sdk/{store-CLotPIp_.js → store-BVL3fS5q.js} +2 -2
- package/dist/plugin-sdk/{subsystem-C9WnrKN8.js → subsystem-C4Rh0kdL.js} +1 -1
- package/dist/plugin-sdk/{tables-7y86aoG1.js → tables-DHwGo-4a.js} +1 -1
- package/dist/{target-errors-1-pM-0-N.js → plugin-sdk/target-errors-DGfjmC5j.js} +2 -2
- package/dist/plugin-sdk/{thinking-b64dDuH9.js → thinking-D3o92jol.js} +5 -5
- package/dist/plugin-sdk/{tokens-2475WU2Z.js → tokens-K9ITCatc.js} +1 -1
- package/dist/plugin-sdk/{tool-images-CbUjCJCh.js → tool-images-zxFUoVW3.js} +2 -2
- package/dist/plugin-sdk/{tool-loop-detection-D0ADW0h2.js → tool-loop-detection-BBRtoox8.js} +2 -2
- package/dist/plugin-sdk/web-Ct7mP_gq.js +65 -0
- package/dist/plugin-sdk/{whatsapp-actions-DrC9AVN9.js → whatsapp-actions-DdqYVOos.js} +21 -21
- package/dist/{plugins-BfEZesgD.js → plugins-9d8EqI-y.js} +9 -9
- package/dist/{plugins-cli-ekc2VJ2E.js → plugins-cli--LHZoYj1.js} +2 -2
- package/dist/{plugins-cli-BUojFAGL.js → plugins-cli-C_3vwAkb.js} +2 -2
- package/dist/{program-C6lY3-78.js → program-Da_x_bot.js} +7 -7
- package/dist/{program-context-Cf4DLb4D.js → program-context-Cx1Qh1rs.js} +17 -17
- package/dist/{prompt-select-styled-BB0toldS.js → prompt-select-styled-Bymthwby.js} +4 -4
- package/dist/{prompt-select-styled-DZrDBBvM.js → prompt-select-styled-CW0DXnqy.js} +4 -4
- package/dist/{provider-auth-helpers-DzLX-hrT.js → provider-auth-helpers-BVl_Luuc.js} +1 -1
- package/dist/{provider-auth-helpers-BmRtSzv1.js → provider-auth-helpers-CtRweZXm.js} +1 -1
- package/dist/{push-apns-DRicQb8n.js → push-apns-DUaQ63kJ.js} +1 -1
- package/dist/{push-apns-BoavuUl1.js → push-apns-ekX9ZTw-.js} +1 -1
- package/dist/{pw-ai-BE9RDOQB.js → pw-ai-CbID-iUw.js} +11 -11
- package/dist/{pw-ai-CpnhdYBs.js → pw-ai-DrpEVs06.js} +1 -1
- package/dist/{qmd-manager-ClbsWpec.js → qmd-manager-Cf7kXRay.js} +7 -7
- package/dist/{register.agent-Ddx0H8cv.js → register.agent-CNVcqBdt.js} +6 -6
- package/dist/{register.agent-BmmgT0mN.js → register.agent-DIsFvRR6.js} +5 -5
- package/dist/{register.configure-DJnHqk6O.js → register.configure-BIJfddKS.js} +6 -6
- package/dist/{register.configure-CQU6KgeW.js → register.configure-CJoWBabk.js} +6 -6
- package/dist/{register.maintenance-Cqc5yCQG.js → register.maintenance-BRek-1ya.js} +7 -7
- package/dist/{register.maintenance-BV1xriuR.js → register.maintenance-Cz2zQo7V.js} +8 -8
- package/dist/{register.message-Ihec9Qhj.js → register.message-BXmCfdH1.js} +2 -2
- package/dist/{register.message-CNpNd0Ap.js → register.message-Ctt3_FvF.js} +2 -2
- package/dist/{register.onboard-DIwP9ira.js → register.onboard-461jnfmp.js} +4 -4
- package/dist/{register.onboard-CL9W60Ru.js → register.onboard-MafRy-YC.js} +4 -4
- package/dist/{register.setup-CsdexgyX.js → register.setup-B00v-7zz.js} +4 -4
- package/dist/{register.setup-2GCiWxqM.js → register.setup-DWTcsKRx.js} +4 -4
- package/dist/{register.status-health-sessions-GhqBz76y.js → register.status-health-sessions-GbMD4jFP.js} +3 -3
- package/dist/{register.status-health-sessions-CZoLCevz.js → register.status-health-sessions-X9_7OJkB.js} +3 -3
- package/dist/{register.subclis-B4o6BJ2N.js → register.subclis-u7MHey8m.js} +9 -9
- package/dist/{registry-DpeZG5fo.js → registry-wimgwqAA.js} +18 -18
- package/dist/{plugin-sdk/replies-BsiP6hrm.js → replies-Byh9FfWs.js} +3 -3
- package/dist/{reply-CebOfFpO.js → reply-DMk4EZm4.js} +39 -5
- package/dist/{reply-prefix-CssWitTj.js → reply-prefix-gRdjPOm5.js} +1 -1
- package/dist/{resolve-route-DSDE-n34.js → resolve-route-CyHelKQ0.js} +4 -4
- package/dist/{retry-Bdu4_ZcT.js → retry-DwLEH9x4.js} +1 -1
- package/dist/{run-main-Dhw3C-_j.js → run-main-B7R_5UKA.js} +14 -14
- package/dist/{runner-B-q1xy9_.js → runner-CHDFbZ9T.js} +1 -1
- package/dist/{runner-DU6rPdbF.js → runner-CJ_5xc_x.js} +9 -9
- package/dist/{send-d8Q5AJj9.js → send-BQ-4ogN3.js} +18 -18
- package/dist/{send-CT34cBxw.js → send-DB9VeUuY.js} +10 -10
- package/dist/{send-B0jdgPgL.js → send-DRUbeUiJ.js} +6 -6
- package/dist/{send-DbL1jVFV.js → send-DU-5eFpT.js} +7 -7
- package/dist/{send-CcqTwaor.js → send-DWg2VUt0.js} +6 -6
- package/dist/{server-node-events-Cx6vpHYY.js → server-node-events-BOFr19ex.js} +2 -2
- package/dist/{server-node-events-Cd_Um0Ih.js → server-node-events-CmEqVERQ.js} +2 -2
- package/dist/{session-B17teh6u.js → session-B3K56SrZ.js} +8 -8
- package/dist/{session-dirs-D1JZtaFB.js → session-dirs-B9BYJOI3.js} +1 -1
- package/dist/{session-dirs-BksC_ZJx.js → session-dirs-Dbcjy8I0.js} +1 -1
- package/dist/{skill-commands-BTCEJgtW.js → skill-commands-qdiEBLa5.js} +9 -9
- package/dist/{skills-DgwYCNoi.js → skills-YvF_jQ7u.js} +21 -21
- package/dist/{sqlite-C3XxSzBN.js → sqlite-B6SD9PTM.js} +4 -4
- package/dist/{status-CadxgcYe.js → status-7mnD_0oy.js} +2 -2
- package/dist/{status-BcZRY3RM.js → status-BphM--I6.js} +1 -1
- package/dist/{status-vxjEMgge.js → status-CfB8C1S5.js} +1 -1
- package/dist/{status-UO6LTko9.js → status-OhqCGfGI.js} +2 -2
- package/dist/{store-JuIN_QG_.js → store-Bb9yEhl9.js} +2 -2
- package/dist/{subagent-registry-DxAANdOO.js → subagent-registry-DfNgHH_n.js} +39 -5
- package/dist/{subsystem-BF9jT_Nw.js → subsystem-BEdh_1O5.js} +1 -1
- package/dist/{tables-3Vjm1My5.js → tables-D0LXVaNN.js} +1 -1
- package/dist/{plugin-sdk/target-errors-Bu2PpCSS.js → target-errors-BLDmuN_6.js} +2 -2
- package/dist/{thinking-CYyGFSWd.js → thinking-THRIcxDi.js} +5 -5
- package/dist/{tokens-B-c56SkM.js → tokens-GCiqN5mi.js} +1 -1
- package/dist/{tool-images-i5cb4-nX.js → tool-images-D4n7jwYR.js} +2 -2
- package/dist/{tool-loop-detection-Bu3OGskw.js → tool-loop-detection-BPAeTbUj.js} +3 -3
- package/dist/{update-cli-CidTQDU8.js → update-cli-CjpoNUkt.js} +8 -8
- package/dist/{update-cli-CqsOKfGt.js → update-cli-DLD4tZtd.js} +7 -7
- package/dist/{web-BBMLIpu1.js → web-CN6HZzwn.js} +57 -57
- package/dist/{web-IgO1--qh.js → web-DG1eHpeH.js} +2 -2
- package/dist/{web-IvoqYVGl.js → web-gYLnj19G.js} +6 -6
- package/dist/{web-CxJJ94q0.js → web-ifWeOB6N.js} +1 -1
- package/dist/{whatsapp-actions-55P6E6cS.js → whatsapp-actions-BKmhU2Qu.js} +23 -23
- package/dist/{workspace-D-fnhRGM.js → workspace-BjFHGrDX.js} +6 -6
- package/package.json +1 -1
- package/dist/plugin-sdk/web-DKcOGlkN.js +0 -65
|
@@ -1,75 +1,75 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
|
-
import { c as expandHomePrefix, i as resolveGatewayPort, n as resolveConfigPath, s as resolveStateDir, t as STATE_DIR, u as resolveRequiredHomeDir } from "./paths-
|
|
2
|
+
import { c as expandHomePrefix, i as resolveGatewayPort, n as resolveConfigPath, s as resolveStateDir, t as STATE_DIR, u as resolveRequiredHomeDir } from "./paths-CkkDESQ2.js";
|
|
3
3
|
import { _ as isCronSessionKey, b as resolveThreadParentSessionKey, c as normalizeMainKey, d as sanitizeAgentId, f as DEFAULT_ACCOUNT_ID, g as isAcpSessionKey, h as getSubagentDepth, l as resolveAgentIdFromSessionKey, o as classifySessionKeyShape, p as normalizeAccountId$2, r as buildAgentMainSessionKey, s as normalizeAgentId, t as DEFAULT_AGENT_ID, u as resolveThreadSessionKeys, v as isSubagentSessionKey, y as parseAgentSessionKey } from "./session-key-BCzIW1Y2.js";
|
|
4
|
-
import { $ as warn, B as sleep$1, D as escapeRegExp, E as ensureDir$3, G as danger, I as resolveUserPath, J as logVerbose, M as normalizeE164, O as formatTerminalLink, R as shortenHomeInString, S as CONFIG_DIR, U as truncateUtf16Safe, V as sliceUtf16Safe, W as isPlainObject, X as setVerbose, Z as shouldLogVerbose, _ as matchPluginCommand, a as normalizeAnyChannelId, d as createPluginRegistry, dt as resolvePreferredOpenClawTmpDir, et as colorize, f as normalizePluginHttpPath, g as listPluginCommands, h as getPluginCommandSpecs, k as isRecord$1, l as requireActivePluginRegistry, lt as normalizeLogLevel, m as executePluginCommand, n as CHAT_CHANNEL_ORDER, nt as theme, o as normalizeChannelId, p as clearPluginCommands, r as DEFAULT_CHAT_CHANNEL, rt as getChildLogger, tt as isRich, u as setActivePluginRegistry, v as createInternalHookEvent, w as clampInt, x as triggerInternalHook, z as shortenHomePath } from "./registry-
|
|
5
|
-
import { a as resolveAgentModelPrimary, c as resolveDefaultAgentId, d as resolveSessionAgentIds, i as resolveAgentModelFallbacksOverride, l as resolveEffectiveModelFallbacks, n as resolveAgentConfig, o as resolveAgentSkillsFilter, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, u as resolveSessionAgentId } from "./agent-scope-
|
|
6
|
-
import { a as registerActiveProgressLine, i as clearActiveProgressLine, n as createNonExitingRuntime, o as unregisterActiveProgressLine, r as defaultRuntime, t as createSubsystemLogger } from "./subsystem-
|
|
7
|
-
import { S as logWarn, _ as runExec, a as DEFAULT_IDENTITY_FILENAME, b as logError, f as loadWorkspaceBootstrapFiles, g as runCommandWithTimeout, l as ensureAgentWorkspace, m as resolveOpenClawPackageRoot, n as DEFAULT_AGENT_WORKSPACE_DIR, r as DEFAULT_BOOTSTRAP_FILENAME, u as filterBootstrapFilesForSession, v as spawnWithFallback, x as logInfo, y as logDebug } from "./workspace-
|
|
8
|
-
import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN, r as isSilentReplyPrefixText, t as HEARTBEAT_TOKEN } from "./tokens-
|
|
9
|
-
import { _ as resolveDiscordAccount, a as normalizeWhatsAppTarget, c as listTelegramAccountIds, d as resolveSlackAccount, g as listEnabledDiscordAccounts, h as createDiscordActionGate, i as isWhatsAppGroupJid, l as resolveTelegramAccount, m as resolveSlackBotToken, n as listChannelPlugins, o as createTelegramActionGate, p as resolveSlackAppToken, r as normalizeChannelId$1, s as listEnabledTelegramAccounts, t as getChannelPlugin, u as resolveTelegramToken, v as normalizeDiscordToken } from "./plugins-
|
|
10
|
-
import { a as logoutWeb, i as logWebSelfId, l as readWebSelfId, p as webAuthExists, r as getWebAuthAgeMs, t as resolveWhatsAppAccount } from "./accounts-
|
|
4
|
+
import { $ as warn, B as sleep$1, D as escapeRegExp, E as ensureDir$3, G as danger, I as resolveUserPath, J as logVerbose, M as normalizeE164, O as formatTerminalLink, R as shortenHomeInString, S as CONFIG_DIR, U as truncateUtf16Safe, V as sliceUtf16Safe, W as isPlainObject, X as setVerbose, Z as shouldLogVerbose, _ as matchPluginCommand, a as normalizeAnyChannelId, d as createPluginRegistry, dt as resolvePreferredOpenClawTmpDir, et as colorize, f as normalizePluginHttpPath, g as listPluginCommands, h as getPluginCommandSpecs, k as isRecord$1, l as requireActivePluginRegistry, lt as normalizeLogLevel, m as executePluginCommand, n as CHAT_CHANNEL_ORDER, nt as theme, o as normalizeChannelId, p as clearPluginCommands, r as DEFAULT_CHAT_CHANNEL, rt as getChildLogger, tt as isRich, u as setActivePluginRegistry, v as createInternalHookEvent, w as clampInt, x as triggerInternalHook, z as shortenHomePath } from "./registry-wimgwqAA.js";
|
|
5
|
+
import { a as resolveAgentModelPrimary, c as resolveDefaultAgentId, d as resolveSessionAgentIds, i as resolveAgentModelFallbacksOverride, l as resolveEffectiveModelFallbacks, n as resolveAgentConfig, o as resolveAgentSkillsFilter, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, u as resolveSessionAgentId } from "./agent-scope-CKu-vMMp.js";
|
|
6
|
+
import { a as registerActiveProgressLine, i as clearActiveProgressLine, n as createNonExitingRuntime, o as unregisterActiveProgressLine, r as defaultRuntime, t as createSubsystemLogger } from "./subsystem-BEdh_1O5.js";
|
|
7
|
+
import { S as logWarn, _ as runExec, a as DEFAULT_IDENTITY_FILENAME, b as logError, f as loadWorkspaceBootstrapFiles, g as runCommandWithTimeout, l as ensureAgentWorkspace, m as resolveOpenClawPackageRoot, n as DEFAULT_AGENT_WORKSPACE_DIR, r as DEFAULT_BOOTSTRAP_FILENAME, u as filterBootstrapFilesForSession, v as spawnWithFallback, x as logInfo, y as logDebug } from "./workspace-BjFHGrDX.js";
|
|
8
|
+
import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN, r as isSilentReplyPrefixText, t as HEARTBEAT_TOKEN } from "./tokens-GCiqN5mi.js";
|
|
9
|
+
import { _ as resolveDiscordAccount, a as normalizeWhatsAppTarget, c as listTelegramAccountIds, d as resolveSlackAccount, g as listEnabledDiscordAccounts, h as createDiscordActionGate, i as isWhatsAppGroupJid, l as resolveTelegramAccount, m as resolveSlackBotToken, n as listChannelPlugins, o as createTelegramActionGate, p as resolveSlackAppToken, r as normalizeChannelId$1, s as listEnabledTelegramAccounts, t as getChannelPlugin, u as resolveTelegramToken, v as normalizeDiscordToken } from "./plugins-9d8EqI-y.js";
|
|
10
|
+
import { a as logoutWeb, i as logWebSelfId, l as readWebSelfId, p as webAuthExists, r as getWebAuthAgeMs, t as resolveWhatsAppAccount } from "./accounts-DQo5uGA3.js";
|
|
11
11
|
import { t as normalizeChatType } from "./chat-type-C_KiWNAH.js";
|
|
12
12
|
import { t as parseBooleanValue$1 } from "./boolean-B8-BqKGQ.js";
|
|
13
|
-
import { n as resolveCliName, r as isTruthyEnvValue, t as formatCliCommand } from "./command-format-
|
|
14
|
-
import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, o as parseSlackBlocksInput, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-
|
|
15
|
-
import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-
|
|
16
|
-
import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver
|
|
17
|
-
import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-
|
|
13
|
+
import { n as resolveCliName, r as isTruthyEnvValue, t as formatCliCommand } from "./command-format-CM0AxuCk.js";
|
|
14
|
+
import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, o as parseSlackBlocksInput, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-DWg2VUt0.js";
|
|
15
|
+
import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-DB9VeUuY.js";
|
|
16
|
+
import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver--EhsFXv7.js";
|
|
17
|
+
import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-DTfVTKJM.js";
|
|
18
18
|
import { r as getDiagnosticSessionState } from "./diagnostic-session-state-Bxo4UHOL.js";
|
|
19
|
-
import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-
|
|
20
|
-
import { $ as isVoiceCompatibleAudio, A as extractTelegramLocation, B as normalizeAllowFromWithStore$1, C as buildTelegramGroupFrom, D as buildTypingThreadParams, E as buildTelegramThreadParams, F as resolveTelegramMediaPlaceholder, G as formatLocationText, H as firstDefined$1, I as resolveTelegramReplyId, J as readChannelAllowFromStore, K as toLocationContext, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, Q as listPairingChannels, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as isSenderIdAllowed, V as resolveSenderAllowMatch, W as mergeAllowFromSources, X as upsertChannelPairingRequest, Y as removeChannelAllowFromStoreEntry, Z as getPairingAdapter, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildGroupLabel, c as sendStickerTelegram, d as wasSentByBot, et as parseTelegramTarget, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as hasBotMention, k as expandTextLinks, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as addChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as resolveTelegramTargetChatType, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-
|
|
21
|
-
import { d as detectMime, f as extensionForMime, g as isGifMedia, h as isAudioFileName, i as getImageMetadata, m as imageMimeFromFormat, s as resizeToJpeg, x as mediaKindFromMime, y as MAX_IMAGE_BYTES } from "./image-ops-
|
|
22
|
-
import { A as normalizeProviderId, C as buildAllowedModelSet, D as isCliProvider, E as findNormalizedProviderValue, F as resolveSubagentSpawnModelSelection, G as DEFAULT_MODEL, H as OLLAMA_NATIVE_BASE_URL, I as resolveThinkingDefault, J as normalizeSecretInput, K as DEFAULT_PROVIDER, M as resolveConfiguredModelRef, N as resolveDefaultModelForAgent, O as modelKey, P as resolveModelRefFromString, T as buildModelAliasIndex, U as createOllamaStreamFn, W as DEFAULT_CONTEXT_TOKENS, Y as getShellPathFromLoginShell, Z as resolveShellEnvFallbackTimeoutMs, _ as ensureAuthProfileStore, a as resolveEnvApiKey, b as withFileLock, c as resolveAuthProfileOrder, d as markAuthProfileFailure, f as markAuthProfileUsed, g as markAuthProfileGood, h as listProfilesForProvider, i as resolveApiKeyForProvider, k as normalizeModelRef$2, l as getSoonestCooldownExpiry, m as dedupeProfileIds, n as getCustomProviderApiKey, o as resolveModelAuthMode, p as resolveApiKeyForProfile, q as resolveAuthProfileDisplayLabel, r as requireApiKey, t as getApiKeyForModel, u as isProfileInCooldown, v as resolveAuthStorePathForDisplay, w as buildConfiguredAllowlistKeys, y as resolveOpenClawAgentDir } from "./model-auth-
|
|
23
|
-
import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-
|
|
19
|
+
import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-CJEDkyd7.js";
|
|
20
|
+
import { $ as isVoiceCompatibleAudio, A as extractTelegramLocation, B as normalizeAllowFromWithStore$1, C as buildTelegramGroupFrom, D as buildTypingThreadParams, E as buildTelegramThreadParams, F as resolveTelegramMediaPlaceholder, G as formatLocationText, H as firstDefined$1, I as resolveTelegramReplyId, J as readChannelAllowFromStore, K as toLocationContext, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, Q as listPairingChannels, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as isSenderIdAllowed, V as resolveSenderAllowMatch, W as mergeAllowFromSources, X as upsertChannelPairingRequest, Y as removeChannelAllowFromStoreEntry, Z as getPairingAdapter, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildGroupLabel, c as sendStickerTelegram, d as wasSentByBot, et as parseTelegramTarget, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as hasBotMention, k as expandTextLinks, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as addChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as resolveTelegramTargetChatType, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-BQ-4ogN3.js";
|
|
21
|
+
import { d as detectMime, f as extensionForMime, g as isGifMedia, h as isAudioFileName, i as getImageMetadata, m as imageMimeFromFormat, s as resizeToJpeg, x as mediaKindFromMime, y as MAX_IMAGE_BYTES } from "./image-ops-Bgwps3ZY.js";
|
|
22
|
+
import { A as normalizeProviderId, C as buildAllowedModelSet, D as isCliProvider, E as findNormalizedProviderValue, F as resolveSubagentSpawnModelSelection, G as DEFAULT_MODEL, H as OLLAMA_NATIVE_BASE_URL, I as resolveThinkingDefault, J as normalizeSecretInput, K as DEFAULT_PROVIDER, M as resolveConfiguredModelRef, N as resolveDefaultModelForAgent, O as modelKey, P as resolveModelRefFromString, T as buildModelAliasIndex, U as createOllamaStreamFn, W as DEFAULT_CONTEXT_TOKENS, Y as getShellPathFromLoginShell, Z as resolveShellEnvFallbackTimeoutMs, _ as ensureAuthProfileStore, a as resolveEnvApiKey, b as withFileLock, c as resolveAuthProfileOrder, d as markAuthProfileFailure, f as markAuthProfileUsed, g as markAuthProfileGood, h as listProfilesForProvider, i as resolveApiKeyForProvider, k as normalizeModelRef$2, l as getSoonestCooldownExpiry, m as dedupeProfileIds, n as getCustomProviderApiKey, o as resolveModelAuthMode, p as resolveApiKeyForProfile, q as resolveAuthProfileDisplayLabel, r as requireApiKey, t as getApiKeyForModel, u as isProfileInCooldown, v as resolveAuthStorePathForDisplay, w as buildConfiguredAllowlistKeys, y as resolveOpenClawAgentDir } from "./model-auth-4U7dwHzy.js";
|
|
23
|
+
import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-DAycnoAs.js";
|
|
24
24
|
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-DaNAekda.js";
|
|
25
|
-
import { a as isMarkdownCapableMessageChannel, c as resolveGatewayMessageChannel, d as GATEWAY_CLIENT_MODES, f as GATEWAY_CLIENT_NAMES, i as isInternalMessageChannel, l as resolveMessageChannel, n as isDeliverableMessageChannel, o as listDeliverableMessageChannels, r as isGatewayMessageChannel, s as normalizeMessageChannel, t as INTERNAL_MESSAGE_CHANNEL, u as GATEWAY_CLIENT_IDS } from "./message-channel-
|
|
26
|
-
import { $ as normalizeDeliveryContext, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, G as updateLastRoute, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as isCacheEnabled, Jt as ensureSessionHeader, K as updateSessionStore, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as mergeDeliveryContext, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as deliveryContextFromSession, Xt as resolveBootstrapTotalMaxChars, Y as resolveCacheTtlMs$1, Yt as resolveBootstrapMaxChars, Z as deliveryContextKey, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as resolveFreshSessionTotalTokens, a as isMessagingToolDuplicateNormalized, at as extractToolCallNames, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as hasInterSessionUserProvenance, d as isAntigravityClaude, dt as evaluateSessionFreshness, et as normalizeSessionDeliveryFields, f as isGoogleModelApi, ft as resolveChannelResetConfig, g as formatBillingErrorMessage, gt as DEFAULT_RESET_TRIGGERS, h as formatAssistantErrorText, ht as resolveThreadFlag, it as countToolResults, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as normalizeInputProvenance, m as classifyFailoverReason, mt as resolveSessionResetType, n as validateGeminiTurns, nt as archiveSessionTranscripts, o as normalizeTextForComparison, ot as INPUT_PROVENANCE_KIND_VALUES, p as BILLING_ERROR_USER_MESSAGE, pt as resolveSessionResetPolicy, q as updateSessionStoreEntry, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as capArrayByJsonBytes, s as sanitizeSessionMessagesImages, st as applyInputProvenanceToUserMessage, t as validateAnthropicTurns, tt as normalizeAccountId$3, u as downgradeOpenAIReasoningBlocks, ut as resolveSessionKey, v as getApiErrorPayloadFingerprint, vt as canonicalizeMainSessionAlias, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-
|
|
27
|
-
import { A as VERSION, C as getConfigValueAtPath, D as isSafeExecutableValue, E as unsetConfigValueAtPath, O as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, S as unsetConfigOverride, T as setConfigValueAtPath, _ as parseDurationMs, a as writeConfigFile, b as resetConfigOverrides, c as TELEGRAM_COMMAND_NAME_PATTERN, f as isInboundPathAllowed, g as normalizeScpRemoteHost, h as resolveIMessageRemoteAttachmentRoots, i as resolveConfigSnapshotHash, k as resolveAgentMaxConcurrent, l as normalizeTelegramCommandName, m as resolveIMessageAttachmentRoots, n as loadConfig, o as validateConfigObjectWithPlugins, r as readConfigFileSnapshot, u as resolveTelegramCustomCommands, v as validateJsonSchemaValue, w as parseConfigPath, x as setConfigOverride, y as getConfigOverrides } from "./config-
|
|
28
|
-
import { a as applyTestPluginDefaults, c as resolveMemorySlotDecision, d as isDangerousHostEnvVarName, i as safeStatSync, n as discoverOpenClawPlugins, o as normalizePluginsConfig, r as isPathInside, s as resolveEnableState, t as loadPluginManifestRegistry, u as isPathInsideWithRealpath } from "./manifest-registry-
|
|
29
|
-
import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-
|
|
30
|
-
import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-
|
|
25
|
+
import { a as isMarkdownCapableMessageChannel, c as resolveGatewayMessageChannel, d as GATEWAY_CLIENT_MODES, f as GATEWAY_CLIENT_NAMES, i as isInternalMessageChannel, l as resolveMessageChannel, n as isDeliverableMessageChannel, o as listDeliverableMessageChannels, r as isGatewayMessageChannel, s as normalizeMessageChannel, t as INTERNAL_MESSAGE_CHANNEL, u as GATEWAY_CLIENT_IDS } from "./message-channel-BckS8bQ9.js";
|
|
26
|
+
import { $ as normalizeDeliveryContext, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, G as updateLastRoute, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as isCacheEnabled, Jt as ensureSessionHeader, K as updateSessionStore, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as mergeDeliveryContext, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as deliveryContextFromSession, Xt as resolveBootstrapTotalMaxChars, Y as resolveCacheTtlMs$1, Yt as resolveBootstrapMaxChars, Z as deliveryContextKey, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as resolveFreshSessionTotalTokens, a as isMessagingToolDuplicateNormalized, at as extractToolCallNames, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as hasInterSessionUserProvenance, d as isAntigravityClaude, dt as evaluateSessionFreshness, et as normalizeSessionDeliveryFields, f as isGoogleModelApi, ft as resolveChannelResetConfig, g as formatBillingErrorMessage, gt as DEFAULT_RESET_TRIGGERS, h as formatAssistantErrorText, ht as resolveThreadFlag, it as countToolResults, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as normalizeInputProvenance, m as classifyFailoverReason, mt as resolveSessionResetType, n as validateGeminiTurns, nt as archiveSessionTranscripts, o as normalizeTextForComparison, ot as INPUT_PROVENANCE_KIND_VALUES, p as BILLING_ERROR_USER_MESSAGE, pt as resolveSessionResetPolicy, q as updateSessionStoreEntry, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as capArrayByJsonBytes, s as sanitizeSessionMessagesImages, st as applyInputProvenanceToUserMessage, t as validateAnthropicTurns, tt as normalizeAccountId$3, u as downgradeOpenAIReasoningBlocks, ut as resolveSessionKey, v as getApiErrorPayloadFingerprint, vt as canonicalizeMainSessionAlias, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-BxT45zZ8.js";
|
|
27
|
+
import { A as VERSION, C as getConfigValueAtPath, D as isSafeExecutableValue, E as unsetConfigValueAtPath, O as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, S as unsetConfigOverride, T as setConfigValueAtPath, _ as parseDurationMs, a as writeConfigFile, b as resetConfigOverrides, c as TELEGRAM_COMMAND_NAME_PATTERN, f as isInboundPathAllowed, g as normalizeScpRemoteHost, h as resolveIMessageRemoteAttachmentRoots, i as resolveConfigSnapshotHash, k as resolveAgentMaxConcurrent, l as normalizeTelegramCommandName, m as resolveIMessageAttachmentRoots, n as loadConfig, o as validateConfigObjectWithPlugins, r as readConfigFileSnapshot, u as resolveTelegramCustomCommands, v as validateJsonSchemaValue, w as parseConfigPath, x as setConfigOverride, y as getConfigOverrides } from "./config-D0UwRKru.js";
|
|
28
|
+
import { a as applyTestPluginDefaults, c as resolveMemorySlotDecision, d as isDangerousHostEnvVarName, i as safeStatSync, n as discoverOpenClawPlugins, o as normalizePluginsConfig, r as isPathInside, s as resolveEnableState, t as loadPluginManifestRegistry, u as isPathInsideWithRealpath } from "./manifest-registry-D31TP66o.js";
|
|
29
|
+
import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-Bnq0CyY4.js";
|
|
30
|
+
import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-YvF_jQ7u.js";
|
|
31
31
|
import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-BoQgnc8X.js";
|
|
32
32
|
import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-BTMDZjHT.js";
|
|
33
|
-
import { n as getMediaDir, r as saveMediaBuffer } from "./store-
|
|
34
|
-
import { _ as normalizeAtHashSlug, a as normalizeReasoningLevel, b as normalizeStringEntriesLower, c as normalizeVerboseLevel, d as getChannelDock, f as listChannelDocks, g as resolveChannelGroupToolsPolicy, h as resolveChannelGroupRequireMention, i as normalizeElevatedLevel, l as resolveResponseUsageMode, m as resolveChannelGroupPolicy, n as formatXHighModelHint, o as normalizeThinkLevel, p as normalizeSignalMessagingTarget, s as normalizeUsageDisplay, t as formatThinkingLevels, u as supportsXHighThinking, v as normalizeHyphenSlug, y as normalizeStringEntries } from "./thinking-
|
|
33
|
+
import { n as getMediaDir, r as saveMediaBuffer } from "./store-Bb9yEhl9.js";
|
|
34
|
+
import { _ as normalizeAtHashSlug, a as normalizeReasoningLevel, b as normalizeStringEntriesLower, c as normalizeVerboseLevel, d as getChannelDock, f as listChannelDocks, g as resolveChannelGroupToolsPolicy, h as resolveChannelGroupRequireMention, i as normalizeElevatedLevel, l as resolveResponseUsageMode, m as resolveChannelGroupPolicy, n as formatXHighModelHint, o as normalizeThinkLevel, p as normalizeSignalMessagingTarget, s as normalizeUsageDisplay, t as formatThinkingLevels, u as supportsXHighThinking, v as normalizeHyphenSlug, y as normalizeStringEntries } from "./thinking-THRIcxDi.js";
|
|
35
35
|
import { n as resolveConversationLabel } from "./conversation-label-DXUkoKcB.js";
|
|
36
|
-
import { t as resolveIMessageAccount } from "./accounts-
|
|
37
|
-
import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-
|
|
36
|
+
import { t as resolveIMessageAccount } from "./accounts-CaJg9v7D.js";
|
|
37
|
+
import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-Cv2Q0cX2.js";
|
|
38
38
|
import { t as emitSessionTranscriptUpdate } from "./transcript-events-DDYvbmRV.js";
|
|
39
|
-
import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-
|
|
40
|
-
import { S as ensureOpenClawModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-
|
|
41
|
-
import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-
|
|
42
|
-
import { n as resolveMemorySearchConfig } from "./manager-
|
|
43
|
-
import { d as listMemoryFiles, f as normalizeExtraMemoryPaths, g as runTasksWithConcurrency } from "./sqlite-
|
|
44
|
-
import { n as retryAsync } from "./retry-
|
|
45
|
-
import { a as createActionGate, c as jsonResult, d as readReactionParams, f as readStringArrayParam, l as parseAvailableTags, m as readStringParam, n as missingTargetError, o as imageResult, p as readStringOrNumberParam, r as unknownTargetError, s as imageResultFromFile, t as ambiguousTargetError, u as readNumberParam } from "./target-errors-
|
|
46
|
-
import { a as chunkText, c as resolveChunkMode, d as isSafeFenceBreak, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, o as chunkTextWithMode, r as chunkMarkdownText, t as chunkByNewline, u as findFenceSpanAt } from "./chunk-
|
|
47
|
-
import { n as resolveMarkdownTableMode } from "./markdown-tables-
|
|
39
|
+
import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-D4n7jwYR.js";
|
|
40
|
+
import { S as ensureOpenClawModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-Bxlb76-w.js";
|
|
41
|
+
import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-gRdjPOm5.js";
|
|
42
|
+
import { n as resolveMemorySearchConfig } from "./manager-iCRgH8LP.js";
|
|
43
|
+
import { d as listMemoryFiles, f as normalizeExtraMemoryPaths, g as runTasksWithConcurrency } from "./sqlite-B6SD9PTM.js";
|
|
44
|
+
import { n as retryAsync } from "./retry-DwLEH9x4.js";
|
|
45
|
+
import { a as createActionGate, c as jsonResult, d as readReactionParams, f as readStringArrayParam, l as parseAvailableTags, m as readStringParam, n as missingTargetError, o as imageResult, p as readStringOrNumberParam, r as unknownTargetError, s as imageResultFromFile, t as ambiguousTargetError, u as readNumberParam } from "./target-errors-BLDmuN_6.js";
|
|
46
|
+
import { a as chunkText, c as resolveChunkMode, d as isSafeFenceBreak, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, o as chunkTextWithMode, r as chunkMarkdownText, t as chunkByNewline, u as findFenceSpanAt } from "./chunk-BkGjWi6P.js";
|
|
47
|
+
import { n as resolveMarkdownTableMode } from "./markdown-tables-DfvQjS1F.js";
|
|
48
48
|
import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-DL3f_O53.js";
|
|
49
|
-
import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, t as getAgentScopedMediaLocalRoots } from "./local-roots-
|
|
50
|
-
import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-
|
|
51
|
-
import { _ as resolveNativeCommandsEnabled, a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, g as isRestartEnabled, h as isNativeCommandsExplicitlyDisabled, i as listChatCommands, l as parseCommandArgs, m as isCommandFlagEnabled, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices, v as resolveNativeSkillsEnabled } from "./commands-registry-
|
|
52
|
-
import { c as getSkillsSnapshotVersion, d as createAsyncLock, f as readJsonFile, i as resolveSkillCommandInvocation, l as pruneExpiredPending, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as writeJsonAtomic, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as resolvePairingPaths } from "./skill-commands-
|
|
49
|
+
import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, t as getAgentScopedMediaLocalRoots } from "./local-roots-BXHtS1lV.js";
|
|
50
|
+
import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-C12Waxsc.js";
|
|
51
|
+
import { _ as resolveNativeCommandsEnabled, a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, g as isRestartEnabled, h as isNativeCommandsExplicitlyDisabled, i as listChatCommands, l as parseCommandArgs, m as isCommandFlagEnabled, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices, v as resolveNativeSkillsEnabled } from "./commands-registry-BoKLuuwG.js";
|
|
52
|
+
import { c as getSkillsSnapshotVersion, d as createAsyncLock, f as readJsonFile, i as resolveSkillCommandInvocation, l as pruneExpiredPending, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as writeJsonAtomic, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as resolvePairingPaths } from "./skill-commands-qdiEBLa5.js";
|
|
53
53
|
import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-BlHX0H3E.js";
|
|
54
|
-
import { _ as resolveMediaUnderstandingScope, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as normalizeMediaUnderstandingChatType, h as resolveTimeoutMs$1, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveConcurrency, n as createMediaAttachmentCache, o as runCapability, p as registerUnhandledRejectionHandler, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as CLI_OUTPUT_MAX_BUFFER, y as applyTemplate } from "./runner-
|
|
54
|
+
import { _ as resolveMediaUnderstandingScope, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as normalizeMediaUnderstandingChatType, h as resolveTimeoutMs$1, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveConcurrency, n as createMediaAttachmentCache, o as runCapability, p as registerUnhandledRejectionHandler, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as CLI_OUTPUT_MAX_BUFFER, y as applyTemplate } from "./runner-CJ_5xc_x.js";
|
|
55
55
|
import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-DtI0mtzx.js";
|
|
56
56
|
import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-Bup9wS1y.js";
|
|
57
|
-
import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-
|
|
57
|
+
import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-pOw1s-fe.js";
|
|
58
58
|
import { n as normalizePollInput } from "./polls-CCuCaqgv.js";
|
|
59
|
-
import { t as convertMarkdownTables } from "./tables-
|
|
60
|
-
import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-
|
|
61
|
-
import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-
|
|
62
|
-
import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-
|
|
59
|
+
import { t as convertMarkdownTables } from "./tables-D0LXVaNN.js";
|
|
60
|
+
import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-DRUbeUiJ.js";
|
|
61
|
+
import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-DU-5eFpT.js";
|
|
62
|
+
import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-CyHelKQ0.js";
|
|
63
63
|
import { t as makeProxyFetch } from "./proxy-CBJ1upuz.js";
|
|
64
|
-
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-
|
|
65
|
-
import { t as getActiveWebListener } from "./active-listener-
|
|
64
|
+
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-Byh9FfWs.js";
|
|
65
|
+
import { t as getActiveWebListener } from "./active-listener-Bhmh-BBe.js";
|
|
66
66
|
import { createRequire } from "node:module";
|
|
67
|
-
import * as fs$
|
|
67
|
+
import * as fs$1 from "node:fs/promises";
|
|
68
68
|
import fs from "node:fs/promises";
|
|
69
69
|
import os, { homedir } from "node:os";
|
|
70
70
|
import * as path$1 from "node:path";
|
|
71
71
|
import path from "node:path";
|
|
72
|
-
import
|
|
72
|
+
import fsSync, { existsSync, mkdirSync, mkdtempSync, readFileSync, renameSync, rmSync, statSync, unlinkSync, writeFileSync } from "node:fs";
|
|
73
73
|
import JSON5 from "json5";
|
|
74
74
|
import { execFile, execFileSync, spawn, spawnSync } from "node:child_process";
|
|
75
75
|
import { inspect, promisify } from "node:util";
|
|
@@ -81,7 +81,7 @@ import { EdgeTTS } from "node-edge-tts";
|
|
|
81
81
|
import AjvPkg from "ajv";
|
|
82
82
|
import { createServer } from "node:http";
|
|
83
83
|
import { ProxyAgent, fetch as fetch$1 } from "undici";
|
|
84
|
-
import WebSocket, { WebSocket
|
|
84
|
+
import WebSocket$1, { WebSocket } from "ws";
|
|
85
85
|
import { Buffer as Buffer$1 } from "node:buffer";
|
|
86
86
|
import { createJiti } from "jiti";
|
|
87
87
|
import { Type } from "@sinclair/typebox";
|
|
@@ -3144,7 +3144,7 @@ async function resolveOpenClawDocsPath(params) {
|
|
|
3144
3144
|
const workspaceDir = params.workspaceDir?.trim();
|
|
3145
3145
|
if (workspaceDir) {
|
|
3146
3146
|
const workspaceDocs = path.join(workspaceDir, "docs");
|
|
3147
|
-
if (
|
|
3147
|
+
if (fsSync.existsSync(workspaceDocs)) return workspaceDocs;
|
|
3148
3148
|
}
|
|
3149
3149
|
const packageRoot = await resolveOpenClawPackageRoot({
|
|
3150
3150
|
cwd: params.cwd,
|
|
@@ -3153,7 +3153,7 @@ async function resolveOpenClawDocsPath(params) {
|
|
|
3153
3153
|
});
|
|
3154
3154
|
if (!packageRoot) return null;
|
|
3155
3155
|
const packageDocs = path.join(packageRoot, "docs");
|
|
3156
|
-
return
|
|
3156
|
+
return fsSync.existsSync(packageDocs) ? packageDocs : null;
|
|
3157
3157
|
}
|
|
3158
3158
|
|
|
3159
3159
|
//#endregion
|
|
@@ -3462,7 +3462,7 @@ async function getMemorySearchManager(params) {
|
|
|
3462
3462
|
if (cached) return { manager: cached };
|
|
3463
3463
|
}
|
|
3464
3464
|
try {
|
|
3465
|
-
const { QmdMemoryManager } = await import("./qmd-manager-
|
|
3465
|
+
const { QmdMemoryManager } = await import("./qmd-manager-Cf7kXRay.js");
|
|
3466
3466
|
const primary = await QmdMemoryManager.create({
|
|
3467
3467
|
cfg: params.cfg,
|
|
3468
3468
|
agentId: params.agentId,
|
|
@@ -3474,7 +3474,7 @@ async function getMemorySearchManager(params) {
|
|
|
3474
3474
|
const wrapper = new FallbackMemoryManager({
|
|
3475
3475
|
primary,
|
|
3476
3476
|
fallbackFactory: async () => {
|
|
3477
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
3477
|
+
const { MemoryIndexManager } = await import("./manager-iCRgH8LP.js").then((n) => n.t);
|
|
3478
3478
|
return await MemoryIndexManager.get(params);
|
|
3479
3479
|
}
|
|
3480
3480
|
}, () => QMD_MANAGER_CACHE.delete(cacheKey));
|
|
@@ -3487,7 +3487,7 @@ async function getMemorySearchManager(params) {
|
|
|
3487
3487
|
}
|
|
3488
3488
|
}
|
|
3489
3489
|
try {
|
|
3490
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
3490
|
+
const { MemoryIndexManager } = await import("./manager-iCRgH8LP.js").then((n) => n.t);
|
|
3491
3491
|
return { manager: await MemoryIndexManager.get(params) };
|
|
3492
3492
|
} catch (err) {
|
|
3493
3493
|
return {
|
|
@@ -4175,7 +4175,7 @@ function resolveDefaultIdentityPath() {
|
|
|
4175
4175
|
return path.join(resolveStateDir(), "identity", "device.json");
|
|
4176
4176
|
}
|
|
4177
4177
|
function ensureDir$2(filePath) {
|
|
4178
|
-
|
|
4178
|
+
fsSync.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
4179
4179
|
}
|
|
4180
4180
|
const ED25519_SPKI_PREFIX = Buffer.from("302a300506032b6570032100", "hex");
|
|
4181
4181
|
function base64UrlEncode(buf) {
|
|
@@ -4211,8 +4211,8 @@ function generateIdentity() {
|
|
|
4211
4211
|
}
|
|
4212
4212
|
function loadOrCreateDeviceIdentity(filePath = resolveDefaultIdentityPath()) {
|
|
4213
4213
|
try {
|
|
4214
|
-
if (
|
|
4215
|
-
const raw =
|
|
4214
|
+
if (fsSync.existsSync(filePath)) {
|
|
4215
|
+
const raw = fsSync.readFileSync(filePath, "utf8");
|
|
4216
4216
|
const parsed = JSON.parse(raw);
|
|
4217
4217
|
if (parsed?.version === 1 && typeof parsed.deviceId === "string" && typeof parsed.publicKeyPem === "string" && typeof parsed.privateKeyPem === "string") {
|
|
4218
4218
|
const derivedId = fingerprintPublicKey(parsed.publicKeyPem);
|
|
@@ -4221,9 +4221,9 @@ function loadOrCreateDeviceIdentity(filePath = resolveDefaultIdentityPath()) {
|
|
|
4221
4221
|
...parsed,
|
|
4222
4222
|
deviceId: derivedId
|
|
4223
4223
|
};
|
|
4224
|
-
|
|
4224
|
+
fsSync.writeFileSync(filePath, `${JSON.stringify(updated, null, 2)}\n`, { mode: 384 });
|
|
4225
4225
|
try {
|
|
4226
|
-
|
|
4226
|
+
fsSync.chmodSync(filePath, 384);
|
|
4227
4227
|
} catch {}
|
|
4228
4228
|
return {
|
|
4229
4229
|
deviceId: derivedId,
|
|
@@ -4248,9 +4248,9 @@ function loadOrCreateDeviceIdentity(filePath = resolveDefaultIdentityPath()) {
|
|
|
4248
4248
|
privateKeyPem: identity.privateKeyPem,
|
|
4249
4249
|
createdAtMs: Date.now()
|
|
4250
4250
|
};
|
|
4251
|
-
|
|
4251
|
+
fsSync.writeFileSync(filePath, `${JSON.stringify(stored, null, 2)}\n`, { mode: 384 });
|
|
4252
4252
|
try {
|
|
4253
|
-
|
|
4253
|
+
fsSync.chmodSync(filePath, 384);
|
|
4254
4254
|
} catch {}
|
|
4255
4255
|
return identity;
|
|
4256
4256
|
}
|
|
@@ -4400,8 +4400,8 @@ function resolveDeviceAuthPath(env = process.env) {
|
|
|
4400
4400
|
}
|
|
4401
4401
|
function readStore(filePath) {
|
|
4402
4402
|
try {
|
|
4403
|
-
if (!
|
|
4404
|
-
const raw =
|
|
4403
|
+
if (!fsSync.existsSync(filePath)) return null;
|
|
4404
|
+
const raw = fsSync.readFileSync(filePath, "utf8");
|
|
4405
4405
|
const parsed = JSON.parse(raw);
|
|
4406
4406
|
if (parsed?.version !== 1 || typeof parsed.deviceId !== "string") return null;
|
|
4407
4407
|
if (!parsed.tokens || typeof parsed.tokens !== "object") return null;
|
|
@@ -4411,10 +4411,10 @@ function readStore(filePath) {
|
|
|
4411
4411
|
}
|
|
4412
4412
|
}
|
|
4413
4413
|
function writeStore(filePath, store) {
|
|
4414
|
-
|
|
4415
|
-
|
|
4414
|
+
fsSync.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
4415
|
+
fsSync.writeFileSync(filePath, `${JSON.stringify(store, null, 2)}\n`, { mode: 384 });
|
|
4416
4416
|
try {
|
|
4417
|
-
|
|
4417
|
+
fsSync.chmodSync(filePath, 384);
|
|
4418
4418
|
} catch {}
|
|
4419
4419
|
}
|
|
4420
4420
|
function loadDeviceAuthToken(params) {
|
|
@@ -5715,7 +5715,7 @@ var GatewayClient = class {
|
|
|
5715
5715
|
if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
|
|
5716
5716
|
});
|
|
5717
5717
|
}
|
|
5718
|
-
this.ws = new WebSocket
|
|
5718
|
+
this.ws = new WebSocket(url, wsOptions);
|
|
5719
5719
|
this.ws.on("open", () => {
|
|
5720
5720
|
if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
|
|
5721
5721
|
const tlsError = this.validateTlsFingerprint();
|
|
@@ -5934,7 +5934,7 @@ var GatewayClient = class {
|
|
|
5934
5934
|
return null;
|
|
5935
5935
|
}
|
|
5936
5936
|
async request(method, params, opts) {
|
|
5937
|
-
if (!this.ws || this.ws.readyState !== WebSocket
|
|
5937
|
+
if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
|
|
5938
5938
|
const id = randomUUID();
|
|
5939
5939
|
const frame = {
|
|
5940
5940
|
type: "req",
|
|
@@ -7198,7 +7198,7 @@ async function routeReply(params) {
|
|
|
7198
7198
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
7199
7199
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
7200
7200
|
try {
|
|
7201
|
-
const { deliverOutboundPayloads } = await import("./deliver
|
|
7201
|
+
const { deliverOutboundPayloads } = await import("./deliver--EhsFXv7.js").then((n) => n.n);
|
|
7202
7202
|
return {
|
|
7203
7203
|
ok: true,
|
|
7204
7204
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -7594,7 +7594,7 @@ function normalizeSessionKey(value) {
|
|
|
7594
7594
|
}
|
|
7595
7595
|
function readSessionStore(storePath) {
|
|
7596
7596
|
try {
|
|
7597
|
-
const raw =
|
|
7597
|
+
const raw = fsSync.readFileSync(storePath, "utf-8");
|
|
7598
7598
|
const parsed = JSON5.parse(raw);
|
|
7599
7599
|
if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) return parsed;
|
|
7600
7600
|
} catch {}
|
|
@@ -12651,7 +12651,7 @@ async function createModelSelectionState(params) {
|
|
|
12651
12651
|
}
|
|
12652
12652
|
}
|
|
12653
12653
|
if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
|
|
12654
|
-
const { ensureAuthProfileStore } = await import("./model-auth-
|
|
12654
|
+
const { ensureAuthProfileStore } = await import("./model-auth-4U7dwHzy.js").then((n) => n.s);
|
|
12655
12655
|
const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
|
|
12656
12656
|
const providerKey = normalizeProviderId(provider);
|
|
12657
12657
|
if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
|
|
@@ -15024,8 +15024,8 @@ const DEFAULT_SAFE_BINS = [
|
|
|
15024
15024
|
];
|
|
15025
15025
|
function isExecutableFile(filePath) {
|
|
15026
15026
|
try {
|
|
15027
|
-
if (!
|
|
15028
|
-
if (process.platform !== "win32")
|
|
15027
|
+
if (!fsSync.statSync(filePath).isFile()) return false;
|
|
15028
|
+
if (process.platform !== "win32") fsSync.accessSync(filePath, fsSync.constants.X_OK);
|
|
15029
15029
|
return true;
|
|
15030
15030
|
} catch {
|
|
15031
15031
|
return false;
|
|
@@ -15063,7 +15063,7 @@ function normalizeMatchTarget(value) {
|
|
|
15063
15063
|
}
|
|
15064
15064
|
function tryRealpath(value) {
|
|
15065
15065
|
try {
|
|
15066
|
-
return
|
|
15066
|
+
return fsSync.realpathSync(value);
|
|
15067
15067
|
} catch {
|
|
15068
15068
|
return null;
|
|
15069
15069
|
}
|
|
@@ -16295,7 +16295,7 @@ function mergeLegacyAgent(current, legacy) {
|
|
|
16295
16295
|
}
|
|
16296
16296
|
function ensureDir$1(filePath) {
|
|
16297
16297
|
const dir = path.dirname(filePath);
|
|
16298
|
-
|
|
16298
|
+
fsSync.mkdirSync(dir, { recursive: true });
|
|
16299
16299
|
}
|
|
16300
16300
|
function coerceAllowlistEntries(allowlist) {
|
|
16301
16301
|
if (!Array.isArray(allowlist) || allowlist.length === 0) return Array.isArray(allowlist) ? allowlist : void 0;
|
|
@@ -16365,11 +16365,11 @@ function generateToken() {
|
|
|
16365
16365
|
function loadExecApprovals() {
|
|
16366
16366
|
const filePath = resolveExecApprovalsPath();
|
|
16367
16367
|
try {
|
|
16368
|
-
if (!
|
|
16368
|
+
if (!fsSync.existsSync(filePath)) return normalizeExecApprovals({
|
|
16369
16369
|
version: 1,
|
|
16370
16370
|
agents: {}
|
|
16371
16371
|
});
|
|
16372
|
-
const raw =
|
|
16372
|
+
const raw = fsSync.readFileSync(filePath, "utf8");
|
|
16373
16373
|
const parsed = JSON.parse(raw);
|
|
16374
16374
|
if (parsed?.version !== 1) return normalizeExecApprovals({
|
|
16375
16375
|
version: 1,
|
|
@@ -16386,9 +16386,9 @@ function loadExecApprovals() {
|
|
|
16386
16386
|
function saveExecApprovals(file) {
|
|
16387
16387
|
const filePath = resolveExecApprovalsPath();
|
|
16388
16388
|
ensureDir$1(filePath);
|
|
16389
|
-
|
|
16389
|
+
fsSync.writeFileSync(filePath, `${JSON.stringify(file, null, 2)}\n`, { mode: 384 });
|
|
16390
16390
|
try {
|
|
16391
|
-
|
|
16391
|
+
fsSync.chmodSync(filePath, 384);
|
|
16392
16392
|
} catch {}
|
|
16393
16393
|
}
|
|
16394
16394
|
function ensureExecApprovals() {
|
|
@@ -16709,7 +16709,7 @@ function resolvePowerShellPath() {
|
|
|
16709
16709
|
const systemRoot = process.env.SystemRoot || process.env.WINDIR;
|
|
16710
16710
|
if (systemRoot) {
|
|
16711
16711
|
const candidate = path.join(systemRoot, "System32", "WindowsPowerShell", "v1.0", "powershell.exe");
|
|
16712
|
-
if (
|
|
16712
|
+
if (fsSync.existsSync(candidate)) return candidate;
|
|
16713
16713
|
}
|
|
16714
16714
|
return "powershell.exe";
|
|
16715
16715
|
}
|
|
@@ -16747,7 +16747,7 @@ function resolveShellFromPath(name) {
|
|
|
16747
16747
|
for (const entry of entries) {
|
|
16748
16748
|
const candidate = path.join(entry, name);
|
|
16749
16749
|
try {
|
|
16750
|
-
|
|
16750
|
+
fsSync.accessSync(candidate, fsSync.constants.X_OK);
|
|
16751
16751
|
return candidate;
|
|
16752
16752
|
} catch {}
|
|
16753
16753
|
}
|
|
@@ -19860,7 +19860,7 @@ function walkUpFrom(startDir, opts, resolveAtDir) {
|
|
|
19860
19860
|
function hasGitMarker(repoRoot) {
|
|
19861
19861
|
const gitPath = path.join(repoRoot, ".git");
|
|
19862
19862
|
try {
|
|
19863
|
-
const stat =
|
|
19863
|
+
const stat = fsSync.statSync(gitPath);
|
|
19864
19864
|
return stat.isDirectory() || stat.isFile();
|
|
19865
19865
|
} catch {
|
|
19866
19866
|
return false;
|
|
@@ -19872,10 +19872,10 @@ function findGitRoot(startDir, opts = {}) {
|
|
|
19872
19872
|
function resolveGitDirFromMarker(repoRoot) {
|
|
19873
19873
|
const gitPath = path.join(repoRoot, ".git");
|
|
19874
19874
|
try {
|
|
19875
|
-
const stat =
|
|
19875
|
+
const stat = fsSync.statSync(gitPath);
|
|
19876
19876
|
if (stat.isDirectory()) return gitPath;
|
|
19877
19877
|
if (!stat.isFile()) return null;
|
|
19878
|
-
const match =
|
|
19878
|
+
const match = fsSync.readFileSync(gitPath, "utf-8").match(/gitdir:\s*(.+)/i);
|
|
19879
19879
|
if (!match?.[1]) return null;
|
|
19880
19880
|
return path.resolve(repoRoot, match[1].trim());
|
|
19881
19881
|
} catch {
|
|
@@ -19942,7 +19942,7 @@ const resolveCommitHash = (options = {}) => {
|
|
|
19942
19942
|
cachedCommit = null;
|
|
19943
19943
|
return cachedCommit;
|
|
19944
19944
|
}
|
|
19945
|
-
const head =
|
|
19945
|
+
const head = fsSync.readFileSync(headPath, "utf-8").trim();
|
|
19946
19946
|
if (!head) {
|
|
19947
19947
|
cachedCommit = null;
|
|
19948
19948
|
return cachedCommit;
|
|
@@ -19950,7 +19950,7 @@ const resolveCommitHash = (options = {}) => {
|
|
|
19950
19950
|
if (head.startsWith("ref:")) {
|
|
19951
19951
|
const ref = head.replace(/^ref:\s*/i, "").trim();
|
|
19952
19952
|
const refPath = path.resolve(path.dirname(headPath), ref);
|
|
19953
|
-
cachedCommit = formatCommit(
|
|
19953
|
+
cachedCommit = formatCommit(fsSync.readFileSync(refPath, "utf-8").trim());
|
|
19954
19954
|
return cachedCommit;
|
|
19955
19955
|
}
|
|
19956
19956
|
cachedCommit = formatCommit(head);
|
|
@@ -20154,9 +20154,9 @@ const readUsageFromSessionLog = (sessionId, sessionEntry, agentId, sessionKey, s
|
|
|
20154
20154
|
} catch {
|
|
20155
20155
|
return;
|
|
20156
20156
|
}
|
|
20157
|
-
if (!
|
|
20157
|
+
if (!fsSync.existsSync(logPath)) return;
|
|
20158
20158
|
try {
|
|
20159
|
-
const lines =
|
|
20159
|
+
const lines = fsSync.readFileSync(logPath, "utf-8").split(/\n+/);
|
|
20160
20160
|
let input = 0;
|
|
20161
20161
|
let output = 0;
|
|
20162
20162
|
let promptTokens = 0;
|
|
@@ -21396,7 +21396,7 @@ function resolveRepoRoot(params) {
|
|
|
21396
21396
|
const configured = params.config?.agents?.defaults?.repoRoot?.trim();
|
|
21397
21397
|
if (configured) try {
|
|
21398
21398
|
const resolved = path.resolve(configured);
|
|
21399
|
-
if (
|
|
21399
|
+
if (fsSync.statSync(resolved).isDirectory()) return resolved;
|
|
21400
21400
|
} catch {}
|
|
21401
21401
|
const candidates = [params.workspaceDir, params.cwd].map((value) => value?.trim()).filter(Boolean);
|
|
21402
21402
|
const seen = /* @__PURE__ */ new Set();
|
|
@@ -22158,7 +22158,7 @@ async function buildContextReply(params) {
|
|
|
22158
22158
|
//#region src/auto-reply/reply/commands-export-session.ts
|
|
22159
22159
|
const EXPORT_HTML_DIR = path.join(path.dirname(fileURLToPath(import.meta.url)), "export-html");
|
|
22160
22160
|
function loadTemplate(fileName) {
|
|
22161
|
-
return
|
|
22161
|
+
return fsSync.readFileSync(path.join(EXPORT_HTML_DIR, fileName), "utf-8");
|
|
22162
22162
|
}
|
|
22163
22163
|
function generateHtml(sessionData) {
|
|
22164
22164
|
const template = loadTemplate("template.html");
|
|
@@ -22232,7 +22232,7 @@ async function buildExportSessionReply(params) {
|
|
|
22232
22232
|
} catch (err) {
|
|
22233
22233
|
return { text: `❌ Failed to resolve session file: ${err instanceof Error ? err.message : String(err)}` };
|
|
22234
22234
|
}
|
|
22235
|
-
if (!
|
|
22235
|
+
if (!fsSync.existsSync(sessionFile)) return { text: `❌ Session file not found: ${sessionFile}` };
|
|
22236
22236
|
const sessionManager = SessionManager.open(sessionFile);
|
|
22237
22237
|
const entries = sessionManager.getEntries();
|
|
22238
22238
|
const header = sessionManager.getHeader();
|
|
@@ -22253,8 +22253,8 @@ async function buildExportSessionReply(params) {
|
|
|
22253
22253
|
const defaultFileName = `openclaw-session-${entry.sessionId.slice(0, 8)}-${timestamp}.html`;
|
|
22254
22254
|
const outputPath = args.outputPath ? path.resolve(args.outputPath.startsWith("~") ? args.outputPath.replace("~", process.env.HOME ?? "") : args.outputPath) : path.join(params.workspaceDir, defaultFileName);
|
|
22255
22255
|
const outputDir = path.dirname(outputPath);
|
|
22256
|
-
if (!
|
|
22257
|
-
|
|
22256
|
+
if (!fsSync.existsSync(outputDir)) fsSync.mkdirSync(outputDir, { recursive: true });
|
|
22257
|
+
fsSync.writeFileSync(outputPath, html, "utf-8");
|
|
22258
22258
|
const relativePath = path.relative(params.workspaceDir, outputPath);
|
|
22259
22259
|
return { text: [
|
|
22260
22260
|
"✅ Session exported!",
|
|
@@ -22368,8 +22368,8 @@ function resolveZaiApiKey() {
|
|
|
22368
22368
|
}
|
|
22369
22369
|
try {
|
|
22370
22370
|
const authPath = path.join(os.homedir(), ".pi", "agent", "auth.json");
|
|
22371
|
-
if (!
|
|
22372
|
-
const data = JSON.parse(
|
|
22371
|
+
if (!fsSync.existsSync(authPath)) return;
|
|
22372
|
+
const data = JSON.parse(fsSync.readFileSync(authPath, "utf-8"));
|
|
22373
22373
|
return data["z-ai"]?.access || data.zai?.access;
|
|
22374
22374
|
} catch {
|
|
22375
22375
|
return;
|
|
@@ -23934,7 +23934,7 @@ function shouldPersistAnyBindingState() {
|
|
|
23934
23934
|
}
|
|
23935
23935
|
function shouldPersistBindingMutations() {
|
|
23936
23936
|
if (shouldPersistAnyBindingState()) return true;
|
|
23937
|
-
return
|
|
23937
|
+
return fsSync.existsSync(resolveThreadBindingsPath());
|
|
23938
23938
|
}
|
|
23939
23939
|
function saveBindingsToDisk(params = {}) {
|
|
23940
23940
|
if (!params.force && !shouldPersistAnyBindingState()) return;
|
|
@@ -24922,7 +24922,7 @@ const applyCostTotal = (totals, costTotal) => {
|
|
|
24922
24922
|
totals.totalCost += costTotal;
|
|
24923
24923
|
};
|
|
24924
24924
|
async function* readJsonlRecords(filePath) {
|
|
24925
|
-
const fileStream =
|
|
24925
|
+
const fileStream = fsSync.createReadStream(filePath, { encoding: "utf-8" });
|
|
24926
24926
|
const rl = readline.createInterface({
|
|
24927
24927
|
input: fileStream,
|
|
24928
24928
|
crlfDelay: Infinity
|
|
@@ -24994,10 +24994,10 @@ async function loadCostUsageSummary(params) {
|
|
|
24994
24994
|
const dailyMap = /* @__PURE__ */ new Map();
|
|
24995
24995
|
const totals = emptyTotals();
|
|
24996
24996
|
const sessionsDir = resolveSessionTranscriptsDirForAgent(params?.agentId);
|
|
24997
|
-
const entries = await
|
|
24997
|
+
const entries = await fsSync.promises.readdir(sessionsDir, { withFileTypes: true }).catch(() => []);
|
|
24998
24998
|
const files = (await Promise.all(entries.filter((entry) => entry.isFile() && entry.name.endsWith(".jsonl")).map(async (entry) => {
|
|
24999
24999
|
const filePath = path.join(sessionsDir, entry.name);
|
|
25000
|
-
const stats = await
|
|
25000
|
+
const stats = await fsSync.promises.stat(filePath).catch(() => null);
|
|
25001
25001
|
if (!stats) return null;
|
|
25002
25002
|
if (stats.mtimeMs < sinceTime) return null;
|
|
25003
25003
|
return filePath;
|
|
@@ -25030,7 +25030,7 @@ async function loadCostUsageSummary(params) {
|
|
|
25030
25030
|
}
|
|
25031
25031
|
async function loadSessionCostSummary(params) {
|
|
25032
25032
|
const sessionFile = params.sessionFile ?? (params.sessionId ? resolveSessionFilePath(params.sessionId, params.sessionEntry, { agentId: params.agentId }) : void 0);
|
|
25033
|
-
if (!sessionFile || !
|
|
25033
|
+
if (!sessionFile || !fsSync.existsSync(sessionFile)) return null;
|
|
25034
25034
|
const totals = emptyTotals();
|
|
25035
25035
|
let firstActivity;
|
|
25036
25036
|
let lastActivity;
|
|
@@ -29236,7 +29236,7 @@ function asBoolean(value) {
|
|
|
29236
29236
|
}
|
|
29237
29237
|
function resolveTempPathParts(opts) {
|
|
29238
29238
|
const tmpDir = opts.tmpDir ?? resolvePreferredOpenClawTmpDir();
|
|
29239
|
-
if (!opts.tmpDir)
|
|
29239
|
+
if (!opts.tmpDir) fsSync.mkdirSync(tmpDir, {
|
|
29240
29240
|
recursive: true,
|
|
29241
29241
|
mode: 448
|
|
29242
29242
|
});
|
|
@@ -29302,7 +29302,7 @@ async function writeUrlToFile(filePath, url) {
|
|
|
29302
29302
|
if (typeof contentLength === "number" && Number.isFinite(contentLength) && contentLength > MAX_CAMERA_URL_DOWNLOAD_BYTES) throw new Error(`writeUrlToFile: content-length ${contentLength} exceeds max ${MAX_CAMERA_URL_DOWNLOAD_BYTES}`);
|
|
29303
29303
|
const body = res.body;
|
|
29304
29304
|
if (!body) throw new Error(`failed to download ${url}: empty response body`);
|
|
29305
|
-
const fileHandle = await fs$
|
|
29305
|
+
const fileHandle = await fs$1.open(filePath, "w");
|
|
29306
29306
|
let bytes = 0;
|
|
29307
29307
|
let thrown;
|
|
29308
29308
|
try {
|
|
@@ -29321,7 +29321,7 @@ async function writeUrlToFile(filePath, url) {
|
|
|
29321
29321
|
await fileHandle.close();
|
|
29322
29322
|
}
|
|
29323
29323
|
if (thrown) {
|
|
29324
|
-
await fs$
|
|
29324
|
+
await fs$1.unlink(filePath).catch(() => {});
|
|
29325
29325
|
throw thrown;
|
|
29326
29326
|
}
|
|
29327
29327
|
return {
|
|
@@ -29331,7 +29331,7 @@ async function writeUrlToFile(filePath, url) {
|
|
|
29331
29331
|
}
|
|
29332
29332
|
async function writeBase64ToFile(filePath, base64) {
|
|
29333
29333
|
const buf = Buffer.from(base64, "base64");
|
|
29334
|
-
await fs$
|
|
29334
|
+
await fs$1.writeFile(filePath, buf);
|
|
29335
29335
|
return {
|
|
29336
29336
|
path: filePath,
|
|
29337
29337
|
bytes: buf.length
|
|
@@ -34695,7 +34695,7 @@ function listExistingAgentIdsFromDisk() {
|
|
|
34695
34695
|
const root = resolveStateDir();
|
|
34696
34696
|
const agentsDir = path.join(root, "agents");
|
|
34697
34697
|
try {
|
|
34698
|
-
return
|
|
34698
|
+
return fsSync.readdirSync(agentsDir, { withFileTypes: true }).filter((entry) => entry.isDirectory()).map((entry) => normalizeAgentId(entry.name)).filter(Boolean);
|
|
34699
34699
|
} catch {
|
|
34700
34700
|
return [];
|
|
34701
34701
|
}
|
|
@@ -39730,7 +39730,7 @@ async function runAgentTurnWithFallback(params) {
|
|
|
39730
39730
|
if (corruptedSessionId) {
|
|
39731
39731
|
const transcriptPath = resolveSessionTranscriptPath(corruptedSessionId);
|
|
39732
39732
|
try {
|
|
39733
|
-
|
|
39733
|
+
fsSync.unlinkSync(transcriptPath);
|
|
39734
39734
|
} catch {}
|
|
39735
39735
|
}
|
|
39736
39736
|
delete params.activeSessionStore[sessionKey];
|
|
@@ -40435,9 +40435,9 @@ function auditPostCompactionReads(readFilePaths, workspaceDir, requiredReads = D
|
|
|
40435
40435
|
* Returns messages from the last N lines (default 100).
|
|
40436
40436
|
*/
|
|
40437
40437
|
function readSessionMessages(sessionFile, maxLines = 100) {
|
|
40438
|
-
if (!
|
|
40438
|
+
if (!fsSync.existsSync(sessionFile)) return [];
|
|
40439
40439
|
try {
|
|
40440
|
-
const recentLines =
|
|
40440
|
+
const recentLines = fsSync.readFileSync(sessionFile, "utf-8").trim().split("\n").slice(-maxLines);
|
|
40441
40441
|
const messages = [];
|
|
40442
40442
|
for (const line of recentLines) try {
|
|
40443
40443
|
const entry = JSON.parse(line);
|
|
@@ -40478,8 +40478,8 @@ const MAX_CONTEXT_CHARS = 3e3;
|
|
|
40478
40478
|
async function readPostCompactionContext(workspaceDir) {
|
|
40479
40479
|
const agentsPath = path.join(workspaceDir, "AGENTS.md");
|
|
40480
40480
|
try {
|
|
40481
|
-
if (!
|
|
40482
|
-
const sections = extractSections(await
|
|
40481
|
+
if (!fsSync.existsSync(agentsPath)) return null;
|
|
40482
|
+
const sections = extractSections(await fsSync.promises.readFile(agentsPath, "utf-8"), ["Session Startup", "Red Lines"]);
|
|
40483
40483
|
if (sections.length === 0) return null;
|
|
40484
40484
|
const combined = sections.join("\n\n");
|
|
40485
40485
|
return "[Post-compaction context refresh]\n\nSession was just compacted. The conversation summary above is a hint, NOT a substitute for your startup sequence. Execute your Session Startup sequence now — read the required files before responding to the user.\n\nCritical rules from AGENTS.md:\n\n" + (combined.length > MAX_CONTEXT_CHARS ? combined.slice(0, MAX_CONTEXT_CHARS) + "\n...[truncated]..." : combined);
|
|
@@ -40683,7 +40683,7 @@ async function runReplyAgent(params) {
|
|
|
40683
40683
|
if (resolved) transcriptCandidates.add(resolved);
|
|
40684
40684
|
transcriptCandidates.add(resolveSessionTranscriptPath(prevSessionId, agentId));
|
|
40685
40685
|
for (const candidate of transcriptCandidates) try {
|
|
40686
|
-
|
|
40686
|
+
fsSync.unlinkSync(candidate);
|
|
40687
40687
|
} catch {}
|
|
40688
40688
|
}
|
|
40689
40689
|
return true;
|
|
@@ -41571,7 +41571,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
41571
41571
|
return;
|
|
41572
41572
|
}
|
|
41573
41573
|
try {
|
|
41574
|
-
const { deliverOutboundPayloads } = await import("./deliver
|
|
41574
|
+
const { deliverOutboundPayloads } = await import("./deliver--EhsFXv7.js").then((n) => n.n);
|
|
41575
41575
|
await deliverOutboundPayloads({
|
|
41576
41576
|
cfg: params.cfg,
|
|
41577
41577
|
channel,
|
|
@@ -41597,7 +41597,7 @@ function forkSessionFromParent(params) {
|
|
|
41597
41597
|
agentId: params.agentId,
|
|
41598
41598
|
sessionsDir: params.sessionsDir
|
|
41599
41599
|
});
|
|
41600
|
-
if (!parentSessionFile || !
|
|
41600
|
+
if (!parentSessionFile || !fsSync.existsSync(parentSessionFile)) return null;
|
|
41601
41601
|
try {
|
|
41602
41602
|
const manager = SessionManager.open(parentSessionFile);
|
|
41603
41603
|
const leafId = manager.getLeafId();
|
|
@@ -41621,7 +41621,7 @@ function forkSessionFromParent(params) {
|
|
|
41621
41621
|
cwd: manager.getCwd(),
|
|
41622
41622
|
parentSession: parentSessionFile
|
|
41623
41623
|
};
|
|
41624
|
-
|
|
41624
|
+
fsSync.writeFileSync(sessionFile, `${JSON.stringify(header)}\n`, "utf-8");
|
|
41625
41625
|
return {
|
|
41626
41626
|
sessionId,
|
|
41627
41627
|
sessionFile
|
|
@@ -45014,7 +45014,7 @@ async function describeStickerImage(params) {
|
|
|
45014
45014
|
logVerbose(`telegram: describing sticker with ${provider}/${model}`);
|
|
45015
45015
|
try {
|
|
45016
45016
|
const buffer = await fs.readFile(imagePath);
|
|
45017
|
-
const { describeImageWithModel } = await import("./image-
|
|
45017
|
+
const { describeImageWithModel } = await import("./image-Bxlb76-w.js").then((n) => n.n);
|
|
45018
45018
|
return (await describeImageWithModel({
|
|
45019
45019
|
buffer,
|
|
45020
45020
|
fileName: "sticker.webp",
|
|
@@ -45437,7 +45437,7 @@ function createWhatsAppLoginTool() {
|
|
|
45437
45437
|
force: Type.Optional(Type.Boolean())
|
|
45438
45438
|
}),
|
|
45439
45439
|
execute: async (_toolCallId, args) => {
|
|
45440
|
-
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-
|
|
45440
|
+
const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-C0P5yf2R.js");
|
|
45441
45441
|
if ((args?.action ?? "start") === "wait") {
|
|
45442
45442
|
const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
|
|
45443
45443
|
return {
|
|
@@ -45719,7 +45719,7 @@ async function withMemoryManagerForAgent(params) {
|
|
|
45719
45719
|
}
|
|
45720
45720
|
async function checkReadableFile(pathname) {
|
|
45721
45721
|
try {
|
|
45722
|
-
await fs.access(pathname,
|
|
45722
|
+
await fs.access(pathname, fsSync.constants.R_OK);
|
|
45723
45723
|
return { exists: true };
|
|
45724
45724
|
} catch (err) {
|
|
45725
45725
|
const code = err.code;
|
|
@@ -45778,7 +45778,7 @@ async function scanMemoryFiles(workspaceDir, extraPaths = []) {
|
|
|
45778
45778
|
}
|
|
45779
45779
|
let dirReadable = null;
|
|
45780
45780
|
try {
|
|
45781
|
-
await fs.access(memoryDir,
|
|
45781
|
+
await fs.access(memoryDir, fsSync.constants.R_OK);
|
|
45782
45782
|
dirReadable = true;
|
|
45783
45783
|
} catch (err) {
|
|
45784
45784
|
const code = err.code;
|
|
@@ -47475,7 +47475,7 @@ async function preflightDiscordMessage(params) {
|
|
|
47475
47475
|
let preflightTranscript;
|
|
47476
47476
|
const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
|
|
47477
47477
|
if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
|
|
47478
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
47478
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-yQKupU0M.js");
|
|
47479
47479
|
const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
|
|
47480
47480
|
if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
|
|
47481
47481
|
ctx: {
|
|
@@ -48438,7 +48438,7 @@ function identityHasValues(identity) {
|
|
|
48438
48438
|
}
|
|
48439
48439
|
function loadIdentityFromFile(identityPath) {
|
|
48440
48440
|
try {
|
|
48441
|
-
const parsed = parseIdentityMarkdown(
|
|
48441
|
+
const parsed = parseIdentityMarkdown(fsSync.readFileSync(identityPath, "utf-8"));
|
|
48442
48442
|
if (!identityHasValues(parsed)) return null;
|
|
48443
48443
|
return parsed;
|
|
48444
48444
|
} catch {
|
|
@@ -48477,7 +48477,7 @@ function isDataAvatar(value) {
|
|
|
48477
48477
|
}
|
|
48478
48478
|
function resolveExistingPath(value) {
|
|
48479
48479
|
try {
|
|
48480
|
-
return
|
|
48480
|
+
return fsSync.realpathSync(value);
|
|
48481
48481
|
} catch {
|
|
48482
48482
|
return path.resolve(value);
|
|
48483
48483
|
}
|
|
@@ -48501,7 +48501,7 @@ function resolveLocalAvatarPath(params) {
|
|
|
48501
48501
|
reason: "unsupported_extension"
|
|
48502
48502
|
};
|
|
48503
48503
|
try {
|
|
48504
|
-
if (!
|
|
48504
|
+
if (!fsSync.statSync(realPath).isFile()) return {
|
|
48505
48505
|
ok: false,
|
|
48506
48506
|
reason: "missing"
|
|
48507
48507
|
};
|
|
@@ -49364,7 +49364,7 @@ function sanitizeRecentModels(models, limit) {
|
|
|
49364
49364
|
}
|
|
49365
49365
|
async function readJsonFileWithFallback(filePath, fallback) {
|
|
49366
49366
|
try {
|
|
49367
|
-
const raw = await
|
|
49367
|
+
const raw = await fsSync.promises.readFile(filePath, "utf-8");
|
|
49368
49368
|
return {
|
|
49369
49369
|
value: JSON.parse(raw),
|
|
49370
49370
|
exists: true
|
|
@@ -49382,14 +49382,14 @@ async function readJsonFileWithFallback(filePath, fallback) {
|
|
|
49382
49382
|
}
|
|
49383
49383
|
async function writeJsonFileAtomically(filePath, value) {
|
|
49384
49384
|
const dir = path.dirname(filePath);
|
|
49385
|
-
await
|
|
49385
|
+
await fsSync.promises.mkdir(dir, {
|
|
49386
49386
|
recursive: true,
|
|
49387
49387
|
mode: 448
|
|
49388
49388
|
});
|
|
49389
49389
|
const tmp = path.join(dir, `${path.basename(filePath)}.${crypto.randomUUID()}.tmp`);
|
|
49390
|
-
await
|
|
49391
|
-
await
|
|
49392
|
-
await
|
|
49390
|
+
await fsSync.promises.writeFile(tmp, `${JSON.stringify(value, null, 2)}\n`, "utf-8");
|
|
49391
|
+
await fsSync.promises.chmod(tmp, 384);
|
|
49392
|
+
await fsSync.promises.rename(tmp, filePath);
|
|
49393
49393
|
}
|
|
49394
49394
|
async function readPreferencesStore(filePath) {
|
|
49395
49395
|
const { value } = await readJsonFileWithFallback(filePath, {
|
|
@@ -51481,27 +51481,27 @@ function isVoiceChannelType(type) {
|
|
|
51481
51481
|
function createDefaultDeps() {
|
|
51482
51482
|
return {
|
|
51483
51483
|
sendMessageWhatsApp: async (...args) => {
|
|
51484
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
51484
|
+
const { sendMessageWhatsApp } = await import("./web-CN6HZzwn.js");
|
|
51485
51485
|
return await sendMessageWhatsApp(...args);
|
|
51486
51486
|
},
|
|
51487
51487
|
sendMessageTelegram: async (...args) => {
|
|
51488
|
-
const { sendMessageTelegram } = await import("./send-
|
|
51488
|
+
const { sendMessageTelegram } = await import("./send-BQ-4ogN3.js").then((n) => n.l);
|
|
51489
51489
|
return await sendMessageTelegram(...args);
|
|
51490
51490
|
},
|
|
51491
51491
|
sendMessageDiscord: async (...args) => {
|
|
51492
|
-
const { sendMessageDiscord } = await import("./send-
|
|
51492
|
+
const { sendMessageDiscord } = await import("./send-DB9VeUuY.js").then((n) => n.t);
|
|
51493
51493
|
return await sendMessageDiscord(...args);
|
|
51494
51494
|
},
|
|
51495
51495
|
sendMessageSlack: async (...args) => {
|
|
51496
|
-
const { sendMessageSlack } = await import("./send-
|
|
51496
|
+
const { sendMessageSlack } = await import("./send-DWg2VUt0.js").then((n) => n.n);
|
|
51497
51497
|
return await sendMessageSlack(...args);
|
|
51498
51498
|
},
|
|
51499
51499
|
sendMessageSignal: async (...args) => {
|
|
51500
|
-
const { sendMessageSignal } = await import("./send-
|
|
51500
|
+
const { sendMessageSignal } = await import("./send-DRUbeUiJ.js").then((n) => n.i);
|
|
51501
51501
|
return await sendMessageSignal(...args);
|
|
51502
51502
|
},
|
|
51503
51503
|
sendMessageIMessage: async (...args) => {
|
|
51504
|
-
const { sendMessageIMessage } = await import("./send-
|
|
51504
|
+
const { sendMessageIMessage } = await import("./send-DU-5eFpT.js").then((n) => n.n);
|
|
51505
51505
|
return await sendMessageIMessage(...args);
|
|
51506
51506
|
}
|
|
51507
51507
|
};
|
|
@@ -54394,7 +54394,7 @@ function createDiscordGatewayPlugin(params) {
|
|
|
54394
54394
|
super(options);
|
|
54395
54395
|
}
|
|
54396
54396
|
createWebSocket(url) {
|
|
54397
|
-
return new WebSocket(url, { agent });
|
|
54397
|
+
return new WebSocket$1(url, { agent });
|
|
54398
54398
|
}
|
|
54399
54399
|
}
|
|
54400
54400
|
return new ProxyGatewayPlugin();
|
|
@@ -56388,7 +56388,7 @@ async function monitorIMessageProvider(opts = {}) {
|
|
|
56388
56388
|
function readFileIfExists(filePath) {
|
|
56389
56389
|
if (!filePath) return;
|
|
56390
56390
|
try {
|
|
56391
|
-
return
|
|
56391
|
+
return fsSync.readFileSync(filePath, "utf-8").trim();
|
|
56392
56392
|
} catch {
|
|
56393
56393
|
return;
|
|
56394
56394
|
}
|
|
@@ -56949,7 +56949,7 @@ async function downloadLineMedia(messageId, channelAccessToken, maxBytes = 10 *
|
|
|
56949
56949
|
prefix: "line-media",
|
|
56950
56950
|
extension: getExtensionForContentType(contentType)
|
|
56951
56951
|
});
|
|
56952
|
-
await
|
|
56952
|
+
await fsSync.promises.writeFile(filePath, buffer);
|
|
56953
56953
|
logVerbose(`line: downloaded media ${messageId} to ${filePath} (${buffer.length} bytes)`);
|
|
56954
56954
|
return {
|
|
56955
56955
|
path: filePath,
|
|
@@ -60272,7 +60272,10 @@ function registerSlackMessageEvents(params) {
|
|
|
60272
60272
|
ctx.app.event("app_mention", async ({ event, body }) => {
|
|
60273
60273
|
try {
|
|
60274
60274
|
if (ctx.shouldDropMismatchedSlackEvent(body)) return;
|
|
60275
|
-
|
|
60275
|
+
const mention = event;
|
|
60276
|
+
const channelType = mention.channel_type;
|
|
60277
|
+
if (channelType === "im" || channelType === "mpim") return;
|
|
60278
|
+
await handleSlackMessage(mention, {
|
|
60276
60279
|
source: "app_mention",
|
|
60277
60280
|
wasMentioned: true
|
|
60278
60281
|
});
|
|
@@ -61808,6 +61811,11 @@ function createSlackThreadTsResolver(params) {
|
|
|
61808
61811
|
|
|
61809
61812
|
//#endregion
|
|
61810
61813
|
//#region src/slack/monitor/message-handler.ts
|
|
61814
|
+
const APP_MENTION_RETRY_TTL_MS = 6e4;
|
|
61815
|
+
function buildSeenMessageKey(channelId, ts) {
|
|
61816
|
+
if (!channelId || !ts) return null;
|
|
61817
|
+
return `${channelId}:${ts}`;
|
|
61818
|
+
}
|
|
61811
61819
|
function createSlackMessageHandler(params) {
|
|
61812
61820
|
const { ctx, account } = params;
|
|
61813
61821
|
const debounceMs = resolveInboundDebounceMs({
|
|
@@ -61815,6 +61823,21 @@ function createSlackMessageHandler(params) {
|
|
|
61815
61823
|
channel: "slack"
|
|
61816
61824
|
});
|
|
61817
61825
|
const threadTsResolver = createSlackThreadTsResolver({ client: ctx.app.client });
|
|
61826
|
+
const appMentionRetryKeys = /* @__PURE__ */ new Map();
|
|
61827
|
+
const pruneAppMentionRetryKeys = (now) => {
|
|
61828
|
+
for (const [key, expiresAt] of appMentionRetryKeys) if (expiresAt <= now) appMentionRetryKeys.delete(key);
|
|
61829
|
+
};
|
|
61830
|
+
const rememberAppMentionRetryKey = (key) => {
|
|
61831
|
+
const now = Date.now();
|
|
61832
|
+
pruneAppMentionRetryKeys(now);
|
|
61833
|
+
appMentionRetryKeys.set(key, now + APP_MENTION_RETRY_TTL_MS);
|
|
61834
|
+
};
|
|
61835
|
+
const consumeAppMentionRetryKey = (key) => {
|
|
61836
|
+
pruneAppMentionRetryKeys(Date.now());
|
|
61837
|
+
if (!appMentionRetryKeys.has(key)) return false;
|
|
61838
|
+
appMentionRetryKeys.delete(key);
|
|
61839
|
+
return true;
|
|
61840
|
+
};
|
|
61818
61841
|
const debouncer = createInboundDebouncer({
|
|
61819
61842
|
debounceMs,
|
|
61820
61843
|
buildKey: (entry) => {
|
|
@@ -61847,7 +61870,14 @@ function createSlackMessageHandler(params) {
|
|
|
61847
61870
|
wasMentioned: combinedMentioned || last.opts.wasMentioned
|
|
61848
61871
|
}
|
|
61849
61872
|
});
|
|
61850
|
-
|
|
61873
|
+
const seenMessageKey = buildSeenMessageKey(last.message.channel, last.message.ts);
|
|
61874
|
+
if (!prepared) {
|
|
61875
|
+
const hasMessageSource = entries.some((entry) => entry.opts.source === "message");
|
|
61876
|
+
const hasAppMentionSource = entries.some((entry) => entry.opts.source === "app_mention");
|
|
61877
|
+
if (seenMessageKey && hasMessageSource && !hasAppMentionSource) rememberAppMentionRetryKey(seenMessageKey);
|
|
61878
|
+
return;
|
|
61879
|
+
}
|
|
61880
|
+
if (seenMessageKey) appMentionRetryKeys.delete(seenMessageKey);
|
|
61851
61881
|
if (entries.length > 1) {
|
|
61852
61882
|
const ids = entries.map((entry) => entry.message.ts).filter(Boolean);
|
|
61853
61883
|
if (ids.length > 0) {
|
|
@@ -61865,7 +61895,10 @@ function createSlackMessageHandler(params) {
|
|
|
61865
61895
|
return async (message, opts) => {
|
|
61866
61896
|
if (opts.source === "message" && message.type !== "message") return;
|
|
61867
61897
|
if (opts.source === "message" && message.subtype && message.subtype !== "file_share" && message.subtype !== "bot_message") return;
|
|
61868
|
-
|
|
61898
|
+
const seenMessageKey = buildSeenMessageKey(message.channel, message.ts);
|
|
61899
|
+
if (seenMessageKey && ctx.markMessageSeen(message.channel, message.ts)) {
|
|
61900
|
+
if (opts.source !== "app_mention" || !consumeAppMentionRetryKey(seenMessageKey)) return;
|
|
61901
|
+
}
|
|
61869
61902
|
const resolvedMessage = await threadTsResolver.resolve({
|
|
61870
61903
|
message,
|
|
61871
61904
|
source: opts.source
|
|
@@ -61936,7 +61969,7 @@ function readSlackExternalArgMenuToken(raw) {
|
|
|
61936
61969
|
}
|
|
61937
61970
|
let commandsRegistry;
|
|
61938
61971
|
async function getCommandsRegistry() {
|
|
61939
|
-
if (!commandsRegistry) commandsRegistry = await import("./commands-registry-
|
|
61972
|
+
if (!commandsRegistry) commandsRegistry = await import("./commands-registry-BoKLuuwG.js").then((n) => n.n);
|
|
61940
61973
|
return commandsRegistry;
|
|
61941
61974
|
}
|
|
61942
61975
|
function encodeSlackCommandArgValue(parts) {
|
|
@@ -62278,11 +62311,11 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
62278
62311
|
const channelName = channelInfo?.name;
|
|
62279
62312
|
const roomLabel = channelName ? `#${channelName}` : `#${command.channel_id}`;
|
|
62280
62313
|
const [{ resolveAgentRoute }, { finalizeInboundContext }, { dispatchReplyWithDispatcher }] = await Promise.all([
|
|
62281
|
-
import("./resolve-route-
|
|
62314
|
+
import("./resolve-route-CyHelKQ0.js").then((n) => n.r),
|
|
62282
62315
|
import("./inbound-context-BlHX0H3E.js").then((n) => n.n),
|
|
62283
62316
|
Promise.resolve().then(() => provider_dispatcher_exports)
|
|
62284
62317
|
]);
|
|
62285
|
-
const [{ resolveConversationLabel }, { createReplyPrefixOptions }] = await Promise.all([import("./conversation-label-DXUkoKcB.js").then((n) => n.t), import("./reply-prefix-
|
|
62318
|
+
const [{ resolveConversationLabel }, { createReplyPrefixOptions }] = await Promise.all([import("./conversation-label-DXUkoKcB.js").then((n) => n.t), import("./reply-prefix-gRdjPOm5.js").then((n) => n.n)]);
|
|
62286
62319
|
const route = resolveAgentRoute({
|
|
62287
62320
|
cfg,
|
|
62288
62321
|
channel: "slack",
|
|
@@ -62339,9 +62372,9 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
62339
62372
|
});
|
|
62340
62373
|
const deliverSlashPayloads = async (replies) => {
|
|
62341
62374
|
const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
|
|
62342
|
-
import("./replies-
|
|
62343
|
-
import("./chunk-
|
|
62344
|
-
import("./markdown-tables-
|
|
62375
|
+
import("./replies-Byh9FfWs.js").then((n) => n.r),
|
|
62376
|
+
import("./chunk-BkGjWi6P.js").then((n) => n.s),
|
|
62377
|
+
import("./markdown-tables-DfvQjS1F.js").then((n) => n.t)
|
|
62345
62378
|
]);
|
|
62346
62379
|
await deliverSlackSlashReplies({
|
|
62347
62380
|
replies,
|
|
@@ -62394,7 +62427,7 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
62394
62427
|
let nativeCommands = [];
|
|
62395
62428
|
if (nativeEnabled) {
|
|
62396
62429
|
reg = await getCommandsRegistry();
|
|
62397
|
-
const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-
|
|
62430
|
+
const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-qdiEBLa5.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
|
|
62398
62431
|
nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
|
|
62399
62432
|
skillCommands,
|
|
62400
62433
|
provider: "slack"
|
|
@@ -64612,7 +64645,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
|
|
|
64612
64645
|
const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
|
|
64613
64646
|
let preflightTranscript;
|
|
64614
64647
|
if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
|
|
64615
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
64648
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-yQKupU0M.js");
|
|
64616
64649
|
preflightTranscript = await transcribeFirstAudio({
|
|
64617
64650
|
ctx: {
|
|
64618
64651
|
MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
|
|
@@ -66757,23 +66790,23 @@ let webLoginQrPromise = null;
|
|
|
66757
66790
|
let webChannelPromise = null;
|
|
66758
66791
|
let whatsappActionsPromise = null;
|
|
66759
66792
|
function loadWebOutbound() {
|
|
66760
|
-
webOutboundPromise ??= import("./outbound-
|
|
66793
|
+
webOutboundPromise ??= import("./outbound-CyTM7y9i.js").then((n) => n.t);
|
|
66761
66794
|
return webOutboundPromise;
|
|
66762
66795
|
}
|
|
66763
66796
|
function loadWebLogin() {
|
|
66764
|
-
webLoginPromise ??= import("./login-
|
|
66797
|
+
webLoginPromise ??= import("./login-CSOqZ7U4.js").then((n) => n.n);
|
|
66765
66798
|
return webLoginPromise;
|
|
66766
66799
|
}
|
|
66767
66800
|
function loadWebLoginQr() {
|
|
66768
|
-
webLoginQrPromise ??= import("./login-qr-
|
|
66801
|
+
webLoginQrPromise ??= import("./login-qr-C0P5yf2R.js");
|
|
66769
66802
|
return webLoginQrPromise;
|
|
66770
66803
|
}
|
|
66771
66804
|
function loadWebChannel() {
|
|
66772
|
-
webChannelPromise ??= import("./web-
|
|
66805
|
+
webChannelPromise ??= import("./web-CN6HZzwn.js");
|
|
66773
66806
|
return webChannelPromise;
|
|
66774
66807
|
}
|
|
66775
66808
|
function loadWhatsAppActions() {
|
|
66776
|
-
whatsappActionsPromise ??= import("./whatsapp-actions-
|
|
66809
|
+
whatsappActionsPromise ??= import("./whatsapp-actions-BKmhU2Qu.js");
|
|
66777
66810
|
return whatsappActionsPromise;
|
|
66778
66811
|
}
|
|
66779
66812
|
function createPluginRuntime() {
|
|
@@ -66994,7 +67027,7 @@ const resolvePluginSdkAliasFile = (params) => {
|
|
|
66994
67027
|
const srcCandidate = path.join(cursor, "src", "plugin-sdk", params.srcFile);
|
|
66995
67028
|
const distCandidate = path.join(cursor, "dist", "plugin-sdk", params.distFile);
|
|
66996
67029
|
const orderedCandidates = isTest ? [distCandidate, srcCandidate] : [distCandidate];
|
|
66997
|
-
for (const candidate of orderedCandidates) if (
|
|
67030
|
+
for (const candidate of orderedCandidates) if (fsSync.existsSync(candidate)) return candidate;
|
|
66998
67031
|
const parent = path.dirname(cursor);
|
|
66999
67032
|
if (parent === cursor) break;
|
|
67000
67033
|
cursor = parent;
|
|
@@ -68052,7 +68085,7 @@ async function recordLoopOutcome(args) {
|
|
|
68052
68085
|
if (!args.ctx?.sessionKey) return;
|
|
68053
68086
|
try {
|
|
68054
68087
|
const { getDiagnosticSessionState } = await import("./diagnostic-session-state-Bxo4UHOL.js").then((n) => n.n);
|
|
68055
|
-
const { recordToolCallOutcome } = await import("./tool-loop-detection-
|
|
68088
|
+
const { recordToolCallOutcome } = await import("./tool-loop-detection-BPAeTbUj.js");
|
|
68056
68089
|
recordToolCallOutcome(getDiagnosticSessionState({
|
|
68057
68090
|
sessionKey: args.ctx.sessionKey,
|
|
68058
68091
|
sessionId: args.ctx?.agentId
|
|
@@ -68073,8 +68106,8 @@ async function runBeforeToolCallHook(args) {
|
|
|
68073
68106
|
const params = args.params;
|
|
68074
68107
|
if (args.ctx?.sessionKey) {
|
|
68075
68108
|
const { getDiagnosticSessionState } = await import("./diagnostic-session-state-Bxo4UHOL.js").then((n) => n.n);
|
|
68076
|
-
const { logToolLoopAction } = await import("./diagnostic-
|
|
68077
|
-
const { detectToolCallLoop, recordToolCall } = await import("./tool-loop-detection-
|
|
68109
|
+
const { logToolLoopAction } = await import("./diagnostic-DTfVTKJM.js").then((n) => n.n);
|
|
68110
|
+
const { detectToolCallLoop, recordToolCall } = await import("./tool-loop-detection-BPAeTbUj.js");
|
|
68078
68111
|
const sessionState = getDiagnosticSessionState({
|
|
68079
68112
|
sessionKey: args.ctx.sessionKey,
|
|
68080
68113
|
sessionId: args.ctx?.agentId
|
|
@@ -70603,8 +70636,8 @@ async function readWorkspaceContextForSummary() {
|
|
|
70603
70636
|
const workspaceDir = process.cwd();
|
|
70604
70637
|
const agentsPath = path.join(workspaceDir, "AGENTS.md");
|
|
70605
70638
|
try {
|
|
70606
|
-
if (!
|
|
70607
|
-
const sections = extractSections(await
|
|
70639
|
+
if (!fsSync.existsSync(agentsPath)) return "";
|
|
70640
|
+
const sections = extractSections(await fsSync.promises.readFile(agentsPath, "utf-8"), ["Session Startup", "Red Lines"]);
|
|
70608
70641
|
if (sections.length === 0) return "";
|
|
70609
70642
|
const combined = sections.join("\n\n");
|
|
70610
70643
|
return `\n\n<workspace-critical-rules>\n${combined.length > MAX_SUMMARY_CONTEXT_CHARS ? combined.slice(0, MAX_SUMMARY_CONTEXT_CHARS) + "\n...[truncated]..." : combined}\n</workspace-critical-rules>`;
|
|
@@ -71558,6 +71591,7 @@ function resolveSessionLane(key) {
|
|
|
71558
71591
|
}
|
|
71559
71592
|
function resolveGlobalLane(lane) {
|
|
71560
71593
|
const cleaned = lane?.trim();
|
|
71594
|
+
if (cleaned === CommandLane.Cron) return CommandLane.Nested;
|
|
71561
71595
|
return cleaned ? cleaned : CommandLane.Main;
|
|
71562
71596
|
}
|
|
71563
71597
|
function resolveEmbeddedSessionLane(key) {
|
|
@@ -71935,7 +71969,7 @@ async function compactEmbeddedPiSessionDirect(params) {
|
|
|
71935
71969
|
if (!apiKeyInfo.apiKey) {
|
|
71936
71970
|
if (apiKeyInfo.mode !== "aws-sdk") throw new Error(`No API key resolved for provider "${model.provider}" (auth mode: ${apiKeyInfo.mode}).`);
|
|
71937
71971
|
} else if (model.provider === "github-copilot") {
|
|
71938
|
-
const { resolveCopilotApiToken } = await import("./github-copilot-token-
|
|
71972
|
+
const { resolveCopilotApiToken } = await import("./github-copilot-token-DAycnoAs.js").then((n) => n.n);
|
|
71939
71973
|
const copilotToken = await resolveCopilotApiToken({ githubToken: apiKeyInfo.apiKey });
|
|
71940
71974
|
authStorage.setRuntimeApiKey(model.provider, copilotToken.token);
|
|
71941
71975
|
} else authStorage.setRuntimeApiKey(model.provider, apiKeyInfo.apiKey);
|
|
@@ -73155,11 +73189,11 @@ function appendRawStream(payload) {
|
|
|
73155
73189
|
if (!rawStreamReady) {
|
|
73156
73190
|
rawStreamReady = true;
|
|
73157
73191
|
try {
|
|
73158
|
-
|
|
73192
|
+
fsSync.mkdirSync(path.dirname(RAW_STREAM_PATH), { recursive: true });
|
|
73159
73193
|
} catch {}
|
|
73160
73194
|
}
|
|
73161
73195
|
try {
|
|
73162
|
-
|
|
73196
|
+
fsSync.promises.appendFile(RAW_STREAM_PATH, `${JSON.stringify(payload)}\n`);
|
|
73163
73197
|
} catch {}
|
|
73164
73198
|
}
|
|
73165
73199
|
|
|
@@ -76379,7 +76413,7 @@ async function runEmbeddedPiAgent(params) {
|
|
|
76379
76413
|
return;
|
|
76380
76414
|
}
|
|
76381
76415
|
if (model.provider === "github-copilot") {
|
|
76382
|
-
const { resolveCopilotApiToken } = await import("./github-copilot-token-
|
|
76416
|
+
const { resolveCopilotApiToken } = await import("./github-copilot-token-DAycnoAs.js").then((n) => n.n);
|
|
76383
76417
|
const copilotToken = await resolveCopilotApiToken({ githubToken: apiKeyInfo.apiKey });
|
|
76384
76418
|
authStorage.setRuntimeApiKey(model.provider, copilotToken.token);
|
|
76385
76419
|
} else authStorage.setRuntimeApiKey(model.provider, apiKeyInfo.apiKey);
|