@noxsoft/anima 2.0.2 → 2.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1260 -28
- package/dist/accounts-Bth3PpPD.js +260 -0
- package/dist/accounts-D8CPKNkN.js +259 -0
- package/dist/acp-cli-ByK6lS6c.js +1081 -0
- package/dist/acp-cli-CaQCjIw4.js +1084 -0
- package/dist/agent-BgIkqd3F.js +725 -0
- package/dist/agent-N5BDcge4.js +725 -0
- package/dist/agent-events-COH7NDW2.js +182 -0
- package/dist/agent-scope-CPphqq-U.js +452 -0
- package/dist/agent-scope-DZgptr9J.js +452 -0
- package/dist/agent-scope-cj2QCT6R.js +112 -0
- package/dist/agents-NEudYMdg.js +774 -0
- package/dist/agents.config-Bujs-NIy.js +182 -0
- package/dist/agents.config-jp7OLssr.js +182 -0
- package/dist/argv-BMZMiW7v.js +73 -0
- package/dist/audit-C-UJhfdv.js +2401 -0
- package/dist/audit-CeCO7SK5.js +2401 -0
- package/dist/auth-BNZsOHGF.js +648 -0
- package/dist/auth-DMPZWzEa.js +639 -0
- package/dist/auth-choice-5VnaGMD-.js +2681 -0
- package/dist/auth-choice-DA2k4vs8.js +2681 -0
- package/dist/auth-health-B7FqA26_.js +149 -0
- package/dist/auth-health-VO_MPqVX.js +149 -0
- package/dist/auth-profiles-BDrNYX_n.js +1564 -0
- package/dist/auth-profiles-CxSHydjn.js +2689 -0
- package/dist/banner-BtDZPRzi.js +294 -0
- package/dist/browser-cli-8yQMpxb8.js +1679 -0
- package/dist/browser-cli-Czg3JtDH.js +1676 -0
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +16 -16
- package/dist/bundled/bootstrap-extra-files/handler.js +4 -4
- package/dist/bundled/command-logger/handler.js +1 -1
- package/dist/bundled/session-memory/handler.js +5 -5
- package/dist/call-BIzCaKZb.js +282 -0
- package/dist/call-BYDpTVCZ.js +282 -0
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/catalog-CqKiUgu6.js +185 -0
- package/dist/catalog-DMfEg-oK.js +185 -0
- package/dist/channel-options-BrtCtyrT.js +32 -0
- package/dist/channel-options-CO21Gl8p.js +33 -0
- package/dist/channel-selection-Bbm1lq3P.js +51 -0
- package/dist/channel-selection-CqcX7Ocw.js +51 -0
- package/dist/channel-web-DrsT6OAE.js +2162 -0
- package/dist/channels-cli-Juyh1S6n.js +1304 -0
- package/dist/channels-cli-zNvi1m5c.js +1306 -0
- package/dist/channels-status-issues-CqzqshW4.js +18 -0
- package/dist/channels-status-issues-DdJdO866.js +18 -0
- package/dist/chrome-C4dOMO8z.js +1601 -0
- package/dist/chrome-DdcDzAtH.js +1629 -0
- package/dist/chrome-U3DRzjJD.js +1601 -0
- package/dist/chunk-D2nLsrEW.js +348 -0
- package/dist/clack-prompter-BI3RDW5w.js +92 -0
- package/dist/clack-prompter-Dwr1m_IZ.js +92 -0
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/cli-C3cpDaz8.js +99 -0
- package/dist/cli-CjWUGdGC.js +101 -0
- package/dist/cli-session-BVjY_XrW.js +5463 -0
- package/dist/cli-session-gtuYN2Iq.js +5408 -0
- package/dist/client-Dswwze5_.js +1692 -0
- package/dist/client-LRKFjo4A.js +1692 -0
- package/dist/clipboard-BZKS9O1u.js +31 -0
- package/dist/clipboard-DES8b1AM.js +31 -0
- package/dist/command-format-CP1YTNCl.js +52 -0
- package/dist/command-format-CVL4K5cj.js +52 -0
- package/dist/command-format-G6N2zghg.js +38 -0
- package/dist/command-registry-BBvNvysr.js +248 -0
- package/dist/commands-AZ3n8Y2c.js +726 -0
- package/dist/commands-BMnD_QRY.js +726 -0
- package/dist/commands-registry-cFqZ6Ib4.js +766 -0
- package/dist/commands-registry-q13H7ng5.js +766 -0
- package/dist/common-CX5458fH.js +287 -0
- package/dist/common-DJbnT8ws.js +287 -0
- package/dist/completion-cli-BADRBcIl.js +432 -0
- package/dist/completion-cli-DMQgiObF.js +431 -0
- package/dist/config-CU-Axg8P.js +5704 -0
- package/dist/config-DaqbUdkI.js +5705 -0
- package/dist/config-cli-BPlbwiuA.js +244 -0
- package/dist/config-cli-DXgZJkPU.js +247 -0
- package/dist/config-guard-Ba49JNds.js +76 -0
- package/dist/config-guard-Cu0qMKZJ.js +93 -0
- package/dist/config-kVVm5EYV.js +6523 -0
- package/dist/config-sync-CzLnLTXt.js +91 -0
- package/dist/config-sync-DuydxPWx.js +91 -0
- package/dist/configure-CHgacLyi.js +960 -0
- package/dist/configure-DfHXDa1L.js +959 -0
- package/dist/context-DzgXOckU.js +60 -0
- package/dist/control-service-8_wKHwBa.js +72 -0
- package/dist/control-service-BtL1Jto_.js +72 -0
- package/dist/cron-cli-BCzSR2c0.js +448 -0
- package/dist/cron-cli-CCWNkykU.js +451 -0
- package/dist/daemon-cli-Bjkbu9Vy.js +565 -0
- package/dist/daemon-cli-CmlHcC1J.js +566 -0
- package/dist/daemon-cli.js +16 -16
- package/dist/daemon-runtime-C0tz7VAC.js +460 -0
- package/dist/daemon-runtime-rUTqCVwJ.js +460 -0
- package/dist/deliver-BBggsviM.js +1097 -0
- package/dist/deliver-CePITOl8.js +1162 -0
- package/dist/deliver-DFnVaetP.js +1097 -0
- package/dist/delivery-queue-BJQK3oh5.js +220 -0
- package/dist/deps-CeEKhrp7.js +42 -0
- package/dist/devices-cli-DQrDMrZH.js +198 -0
- package/dist/devices-cli-Oe-A1Dv0.js +195 -0
- package/dist/diagnostics-DxMFrBLO.js +35 -0
- package/dist/diagnostics-m79ZlMmZ.js +35 -0
- package/dist/directory-cli-BL6h8cGF.js +246 -0
- package/dist/directory-cli-Cjgmi_sj.js +243 -0
- package/dist/dispatcher-DAFbQM-c.js +100 -0
- package/dist/dispatcher-DNd40gUn.js +100 -0
- package/dist/dist-CqDI82ei.js +929 -0
- package/dist/dist-DnHRxR5U.js +929 -0
- package/dist/dns-cli-CFtV3BXK.js +200 -0
- package/dist/dns-cli-NyIHvQ5S.js +197 -0
- package/dist/dock-BdXLb5oY.js +753 -0
- package/dist/dock-jYICmNcI.js +753 -0
- package/dist/docs-cli-CrOaIK_H.js +161 -0
- package/dist/docs-cli-D_cmJDSr.js +159 -0
- package/dist/doctor-BpGxKrBl.js +1815 -0
- package/dist/doctor-D12wNQPU.js +1813 -0
- package/dist/doctor-completion-DeOfofek.js +92 -0
- package/dist/doctor-completion-DwjqdEcK.js +92 -0
- package/dist/doctor-config-flow-BI3mpkbd.js +1232 -0
- package/dist/doctor-config-flow-wMHheFkC.js +1232 -0
- package/dist/engine-BCtL-AMw.js +563 -0
- package/dist/engine-Bk_UT413.js +563 -0
- package/dist/entry.js +5 -5
- package/dist/env-v6411I8h.js +32 -0
- package/dist/exec-B7sUS164.js +1167 -0
- package/dist/exec-approvals-CroGJRUg.js +1221 -0
- package/dist/exec-approvals-cli-BTxF_RsH.js +371 -0
- package/dist/exec-approvals-cli-n1gyGwH2.js +368 -0
- package/dist/exec-mhSykkaa.js +255 -0
- package/dist/extensionAPI.js +3 -3
- package/dist/frontmatter-BmHq0vRD.js +204 -0
- package/dist/gateway-cli-DDBadlrS.js +19971 -0
- package/dist/gateway-cli-IZNkOMBe.js +19972 -0
- package/dist/gateway-rpc-Dtx8HN-n.js +28 -0
- package/dist/gateway-rpc-L2PVSqGj.js +28 -0
- package/dist/github-copilot-auth-DKyqDaGU.js +1418 -0
- package/dist/github-copilot-auth-DXpOMSd3.js +1418 -0
- package/dist/gmail-setup-utils-BKNczIJ9.js +428 -0
- package/dist/gmail-setup-utils-co0ppccC.js +428 -0
- package/dist/health-Bm8ZTvC3.js +1253 -0
- package/dist/health-DUf1gt4E.js +1258 -0
- package/dist/health-format-BksT6F68.js +208 -0
- package/dist/health-format-uzh1xYLD.js +208 -0
- package/dist/heartbeat-visibility-1TJb1Zao.js +98 -0
- package/dist/heartbeat-visibility-CwodtdcX.js +98 -0
- package/dist/help-format-C6cv_aZp.js +17 -0
- package/dist/helpers-N-uSFKOn.js +10 -0
- package/dist/hooks-cli-1POsXqOl.js +993 -0
- package/dist/hooks-cli-BGjILbze.js +991 -0
- package/dist/hooks-status-DE07n5RC.js +356 -0
- package/dist/hooks-status-Du-d1jde.js +356 -0
- package/dist/image-ops-B_AYV3tp.js +541 -0
- package/dist/image-ops-Bp0C6Mvr.js +541 -0
- package/dist/index.js +82 -82
- package/dist/init-9A0s7bWG.js +122 -0
- package/dist/init-DoyCHJDC.js +122 -0
- package/dist/installs-D1C9wHAq.js +383 -0
- package/dist/installs-Dh4dHayM.js +383 -0
- package/dist/ipv4-DCItfaJo.js +1964 -0
- package/dist/ipv4-DSOUVx0i.js +1964 -0
- package/dist/lanes-BvSnHq2h.js +232 -0
- package/dist/lifecycle-core-BY4WIf9g.js +388 -0
- package/dist/lifecycle-core-TQKyXO-6.js +387 -0
- package/dist/links-CNu_8RZl.js +15 -0
- package/dist/links-D2tt2ouh.js +15 -0
- package/dist/llm-slug-generator.js +4 -4
- package/dist/logging-BIeRw0WR.js +15 -0
- package/dist/logging-C7lb3Vjc.js +15 -0
- package/dist/login-DXWKewA2.js +59 -0
- package/dist/login-Fhh4uWmf.js +61 -0
- package/dist/login-pPs3UO38.js +61 -0
- package/dist/login-qr-CevLD8cV.js +326 -0
- package/dist/login-qr-GF2JMIy-.js +323 -0
- package/dist/login-qr-ZYYKD6Yt.js +321 -0
- package/dist/logs-cli-CzXbX8HZ.js +242 -0
- package/dist/logs-cli-D9ngH9PF.js +245 -0
- package/dist/manager-BD5rA3w0.js +3244 -0
- package/dist/manager-BDPgBQSH.js +3246 -0
- package/dist/manager-DRWMWM--.js +3244 -0
- package/dist/manifest-registry-DbvPaBXY.js +748 -0
- package/dist/manifest-registry-kHX_MFa1.js +748 -0
- package/dist/markdown-tables-CqwihY2m.js +347 -0
- package/dist/markdown-tables-DJV7eAJZ.js +348 -0
- package/dist/media-lUqN-0O9.js +1342 -0
- package/dist/memory-cli-BLXSpgnN.js +868 -0
- package/dist/memory-cli-BcGVkkRJ.js +869 -0
- package/dist/message-channel-D_jIO87f.js +110 -0
- package/dist/migrate-BpVOar4L.js +157 -0
- package/dist/migrate-CkgGDkWy.js +157 -0
- package/dist/model-selection-Cqt6aJ0G.js +2691 -0
- package/dist/models-CExsNQPH.js +2510 -0
- package/dist/models-cli-Ba3Jmwev.js +2739 -0
- package/dist/models-cli-iDAlsbL2.js +258 -0
- package/dist/net-0A_zcaQD.js +218 -0
- package/dist/node-cli-ATmwCXIk.js +1319 -0
- package/dist/node-cli-DYFR_V25.js +1322 -0
- package/dist/node-service-CN4LqR1A.js +67 -0
- package/dist/node-service-CWt3MdSC.js +67 -0
- package/dist/nodes-cli-BeVmhTz3.js +1197 -0
- package/dist/nodes-cli-QeJIfa18.js +1200 -0
- package/dist/nodes-screen-DHyWAlla.js +234 -0
- package/dist/nodes-screen-qs3jRBPk.js +234 -0
- package/dist/note-CSlg2BnB.js +73 -0
- package/dist/note-Ctvglhp1.js +73 -0
- package/dist/npm-registry-spec-DQd4M22q.js +351 -0
- package/dist/npm-registry-spec-PxisIMts.js +351 -0
- package/dist/onboard-DeruD10m.js +1166 -0
- package/dist/onboard-SAcu5N6N.js +1165 -0
- package/dist/onboard-channels-C4iSfFXR.js +672 -0
- package/dist/onboard-channels-oVTVgoyg.js +672 -0
- package/dist/onboard-helpers-B8roRwLP.js +365 -0
- package/dist/onboard-helpers-Dgh26hgP.js +365 -0
- package/dist/onboarding-Bi-ac8we.js +911 -0
- package/dist/onboarding-C2gjB2u8.js +910 -0
- package/dist/orchestrator-DlbAYMQP.js +357 -0
- package/dist/orchestrator-DlwVRVDA.js +357 -0
- package/dist/outbound-CkKgc6iR.js +2062 -0
- package/dist/outbound-Vfm5yDh3.js +214 -0
- package/dist/outbound-bs_VK51X.js +214 -0
- package/dist/outbound-send-deps-DDjiMfEL.js +55 -0
- package/dist/pairing-cli-CJYeuEik.js +118 -0
- package/dist/pairing-cli-mqopHI8s.js +121 -0
- package/dist/pairing-store-BsXzUDPv.js +388 -0
- package/dist/pairing-store-DoNj00-X.js +388 -0
- package/dist/path-env-C_xpiG8l.js +89 -0
- package/dist/path-env-DSSMHu5A.js +89 -0
- package/dist/paths-B1vRVCad.js +126 -0
- package/dist/paths-BMuHNFxg.js +238 -0
- package/dist/paths-BXQQzXGQ.js +129 -0
- package/dist/paths-Buw_geoe.js +54 -0
- package/dist/paths-DA9WYabg.js +222 -0
- package/dist/paths-DfQGx0_k.js +129 -0
- package/dist/pi-auth-json-DOPW3e4X.js +78 -0
- package/dist/pi-auth-json-MruLmI_X.js +82 -0
- package/dist/pi-auth-json-lae_wwwo.js +80 -0
- package/dist/pi-model-discovery-7q0GxMrp.js +3 -0
- package/dist/pi-tools.policy-Csmla32P.js +200 -0
- package/dist/pi-tools.policy-xYdDLEv9.js +200 -0
- package/dist/plugin-auto-enable-CViVVWgg.js +282 -0
- package/dist/plugin-auto-enable-CjZ238UI.js +282 -0
- package/dist/plugin-registry-B4Aw2hzq.js +32 -0
- package/dist/plugin-registry-DW81arxW.js +32 -0
- package/dist/plugin-sdk/cli/cli-name.d.ts +1 -1
- package/dist/plugin-sdk/config/paths.d.ts +2 -2
- package/dist/plugin-sdk/index.js +7 -7
- package/dist/plugins-DhcGAPDB.js +38 -0
- package/dist/plugins-DtghNRtM.js +168 -0
- package/dist/plugins-cli-4vWTmOAb.js +736 -0
- package/dist/plugins-cli-CdTMbP0X.js +734 -0
- package/dist/polls-D6eCdatA.js +1343 -0
- package/dist/ports-BtZx-JKD.js +96 -0
- package/dist/ports-C8bKN8s0.js +96 -0
- package/dist/ports-DHiKnPRX.js +344 -0
- package/dist/ports-vd93M_Pt.js +317 -0
- package/dist/program-CX3aUVeb.js +176 -0
- package/dist/program-context-BPos0ivo.js +496 -0
- package/dist/progress-oiAjiiNi.js +133 -0
- package/dist/prompt-style-Cm4wOtKm.js +9 -0
- package/dist/pw-ai-4QbK5YFe.js +1865 -0
- package/dist/pw-ai-BWz3Cxt7.js +1868 -0
- package/dist/pw-ai-C83HBue2.js +1867 -0
- package/dist/qmd-manager-BcMeZiGD.js +938 -0
- package/dist/qmd-manager-CPypGJ0P.js +935 -0
- package/dist/qmd-manager-CRrSkfia.js +937 -0
- package/dist/register.agent-DDY8KJhn.js +265 -0
- package/dist/register.agent-DKawm-9d.js +1003 -0
- package/dist/register.anima-CEWUo29k.js +193 -0
- package/dist/register.anima-DBWz2rk_.js +193 -0
- package/dist/register.configure-BX67qV8k.js +103 -0
- package/dist/register.configure-CWsySuiq.js +101 -0
- package/dist/register.maintenance-0k-ZNhDg.js +543 -0
- package/dist/register.maintenance-BIwx1fzX.js +543 -0
- package/dist/register.message-CXPsoakA.js +657 -0
- package/dist/register.message-DA3jvfgI.js +660 -0
- package/dist/register.onboard-C4HG7Hqv.js +170 -0
- package/dist/register.onboard-GOpdif-j.js +170 -0
- package/dist/register.setup-B17vZT7C.js +175 -0
- package/dist/register.setup-GJyUDCqh.js +175 -0
- package/dist/register.status-health-sessions-D5876dGx.js +313 -0
- package/dist/register.status-health-sessions-lOewVIZR.js +142 -0
- package/dist/register.subclis-Dwnujj5C.js +255 -0
- package/dist/reply-CR5T_oQJ.js +32212 -0
- package/dist/reply-prefix-BcrS4Umd.js +100 -0
- package/dist/reply-prefix-Btb5o2NH.js +100 -0
- package/dist/reply-r089HuRA.js +32212 -0
- package/dist/routes-B4czFzIb.js +1820 -0
- package/dist/routes-ucJWAk5O.js +1820 -0
- package/dist/rpc-BnKxnQ0v.js +70 -0
- package/dist/rpc-DgE-xnyx.js +70 -0
- package/dist/run-main-B74kv84C.js +371 -0
- package/dist/runtime-guard-CKFdts2L.js +60 -0
- package/dist/sandbox-CJTS3er6.js +858 -0
- package/dist/sandbox-DBSiVHt_.js +859 -0
- package/dist/sandbox-cli-CrkjyU5M.js +461 -0
- package/dist/sandbox-cli-D1r5y6Sz.js +458 -0
- package/dist/security-cli-BZUdnkhn.js +462 -0
- package/dist/security-cli-DS09ebvA.js +465 -0
- package/dist/server-context-C0xZbYhg.js +824 -0
- package/dist/server-context-DVh2z7om.js +824 -0
- package/dist/server-node-events-bu9lpkMH.js +233 -0
- package/dist/server-node-events-i1Rrww31.js +231 -0
- package/dist/service-CJJwLEor.js +642 -0
- package/dist/service-DxLxBhaU.js +642 -0
- package/dist/service-audit-DB4Y3Ekp.js +488 -0
- package/dist/service-audit-M8y4TXVb.js +488 -0
- package/dist/session-CGxOLFs2.js +179 -0
- package/dist/session-DTTbdKb0.js +181 -0
- package/dist/session-cost-usage-FcdJl9c3.js +600 -0
- package/dist/session-cost-usage-qdfsGU2a.js +600 -0
- package/dist/session-yOhWcsD2.js +181 -0
- package/dist/sessions-B-Cu7JZq.js +1296 -0
- package/dist/sessions-BgLN4KFr.js +180 -0
- package/dist/sessions-CnRjwdVr.js +1296 -0
- package/dist/sessions-wRKla1Qh.js +2038 -0
- package/dist/shared-DS3UaJSP.js +66 -0
- package/dist/shared-DxNHzky3.js +77 -0
- package/dist/shared-Qpt4hUDi.js +66 -0
- package/dist/shared-kzrojZ1B.js +77 -0
- package/dist/skill-scanner-DLJji5Ye.js +263 -0
- package/dist/skills-BWFIEp4j.js +807 -0
- package/dist/skills-DV4zKdCx.js +808 -0
- package/dist/skills-cli-BY53ILm2.js +289 -0
- package/dist/skills-cli-CO3gxl8A.js +286 -0
- package/dist/skills-status-DX5pcqY3.js +166 -0
- package/dist/skills-status-zhcKzGkp.js +166 -0
- package/dist/sqlite-B6MojU1I.js +321 -0
- package/dist/sqlite-CuprTGR7.js +453 -0
- package/dist/sqlite-dzD-jMjs.js +368 -0
- package/dist/start-Cu3aLoSf.js +297 -0
- package/dist/start-Dz7tMAl8.js +296 -0
- package/dist/status-CaSxhxfV.js +2132 -0
- package/dist/status-D2C0JCX3.js +2137 -0
- package/dist/status-DlFMsQzh.js +27 -0
- package/dist/status-G0CITnKR.js +27 -0
- package/dist/status.update-CHjhVxJY.js +79 -0
- package/dist/status.update-DVFelehi.js +79 -0
- package/dist/subagent-registry-3Xb4el-8.js +14 -0
- package/dist/subagent-registry-CdSjz14I.js +2760 -0
- package/dist/subagent-registry-DNDhbHWi.js +2759 -0
- package/dist/subsystem-DfKstnEK.js +860 -0
- package/dist/system-cli-B5mt0FWa.js +82 -0
- package/dist/system-cli-Dg3UQ3Zz.js +79 -0
- package/dist/systemd-B43AvOGx.js +452 -0
- package/dist/systemd-RpPE0XGg.js +452 -0
- package/dist/systemd-hints-DMJT-Bbc.js +36 -0
- package/dist/systemd-hints-vRInKcz9.js +36 -0
- package/dist/systemd-linger-Dzyxqsod.js +75 -0
- package/dist/systemd-linger-EujbmI5A.js +75 -0
- package/dist/table-DhXHfRX2.js +279 -0
- package/dist/table-bWCLW-3P.js +279 -0
- package/dist/timeout-Ddn-5kAO.js +232 -0
- package/dist/tokens-3psI_Qk2.js +14 -0
- package/dist/tokens-BaM53PEx.js +14 -0
- package/dist/trash-Bmxs1Rnm.js +23 -0
- package/dist/trash-C39a6hKA.js +23 -0
- package/dist/tui-BHgBWhHE.js +3894 -0
- package/dist/tui-cli-B9Sq5-cC.js +50 -0
- package/dist/tui-cli-Dw7v4JoJ.js +47 -0
- package/dist/tui-mUwDwqvd.js +3894 -0
- package/dist/update-DF0GHG0j.js +317 -0
- package/dist/update-DoZLVjva.js +317 -0
- package/dist/update-check-Bt1dVPVN.js +400 -0
- package/dist/update-check-D5qAKes7.js +400 -0
- package/dist/update-cli-BNu2Oi7H.js +1105 -0
- package/dist/update-cli-D36AmALA.js +1105 -0
- package/dist/update-runner-CNQQaTwA.js +894 -0
- package/dist/update-runner-CvxZmbu-.js +894 -0
- package/dist/usage-BGCwNnjk.js +4516 -0
- package/dist/utils-DZ8pnOD5.js +243 -0
- package/dist/web-B5QG839O.js +46842 -0
- package/dist/web-Cmnvk9v0.js +2203 -0
- package/dist/web-Cv2KnTnL.js +63 -0
- package/dist/webhooks-cli-B6y89Pj_.js +319 -0
- package/dist/webhooks-cli-BDzHON4w.js +316 -0
- package/dist/whatsapp-actions-C_5MwVxM.js +45 -0
- package/dist/whatsapp-actions-hgYA12To.js +53 -0
- package/dist/whatsapp-actions-zTiVOoOV.js +49 -0
- package/dist/widearea-dns-BeIdnISJ.js +127 -0
- package/dist/widearea-dns-CF1gxpJ-.js +127 -0
- package/dist/workspace-DLna1IxR.js +649 -0
- package/dist/ws-log-Q4wO1Ztb.js +267 -0
- package/dist/ws-log-xF0kxDzp.js +267 -0
- package/package.json +1 -2
- package/dist/accounts-Cc5E4IDO.js +0 -260
- package/dist/accounts-CcVrwKqv.js +0 -259
- package/dist/acp-cli-DvphOKuh.js +0 -1081
- package/dist/acp-cli-p28pQ65a.js +0 -1084
- package/dist/agent-Cj7uDJaZ.js +0 -725
- package/dist/agent-Cuj9-2sT.js +0 -725
- package/dist/agent-events-BEBQsyE5.js +0 -182
- package/dist/agent-scope-BVf4aSwY.js +0 -112
- package/dist/agent-scope-OZi7lb8S.js +0 -452
- package/dist/agent-scope-V1bi9OYL.js +0 -452
- package/dist/agents-BUWqn_Ui.js +0 -774
- package/dist/agents.config-Dvo2ULxs.js +0 -182
- package/dist/agents.config-d6H0_3oj.js +0 -182
- package/dist/argv-DqUHKf0o.js +0 -73
- package/dist/audit-C6okOOSh.js +0 -2401
- package/dist/audit-VWjIdwC7.js +0 -2401
- package/dist/auth-91o2YM96.js +0 -648
- package/dist/auth-choice-CAmACV13.js +0 -2681
- package/dist/auth-choice-p3SeHPj2.js +0 -2681
- package/dist/auth-health-B_jXrWe6.js +0 -149
- package/dist/auth-health-DCicUKYR.js +0 -149
- package/dist/auth-lZ26wsbN.js +0 -639
- package/dist/auth-profiles-CCDD56dU.js +0 -1564
- package/dist/auth-profiles-DxI8L7bs.js +0 -2689
- package/dist/banner-Cohn04J6.js +0 -294
- package/dist/browser-cli-DANzjztE.js +0 -1676
- package/dist/browser-cli-WjsVH741.js +0 -1679
- package/dist/call-BAHvlu2G.js +0 -282
- package/dist/call-Ct7EGP_L.js +0 -282
- package/dist/catalog-BAayBt1L.js +0 -185
- package/dist/catalog-BNsf97BM.js +0 -185
- package/dist/channel-options-Dx9nPlX8.js +0 -33
- package/dist/channel-options-ZdvXrTGs.js +0 -32
- package/dist/channel-selection-CujyiWGM.js +0 -51
- package/dist/channel-selection-DfGpCyh2.js +0 -51
- package/dist/channel-web-CC0hkgkR.js +0 -2162
- package/dist/channels-cli-D7lNBpIb.js +0 -1304
- package/dist/channels-cli-DUPG8WDv.js +0 -1306
- package/dist/channels-status-issues-DBc1pU_R.js +0 -18
- package/dist/channels-status-issues-DjO9MHIG.js +0 -18
- package/dist/chrome-Bi6iZ5sG.js +0 -1601
- package/dist/chrome-DNSv7Cpy.js +0 -1629
- package/dist/chrome-DScZx4Lk.js +0 -1601
- package/dist/chunk-mxPVo000.js +0 -348
- package/dist/clack-prompter-B0kl7shw.js +0 -92
- package/dist/clack-prompter-B1YxZdRy.js +0 -92
- package/dist/cli-CfHUkOD0.js +0 -101
- package/dist/cli-ClMrIh6l.js +0 -99
- package/dist/cli-session-BkPTd9Pk.js +0 -5463
- package/dist/cli-session-Dd8DKb5a.js +0 -5408
- package/dist/client-C1avc0vD.js +0 -1692
- package/dist/client-CC94YZrT.js +0 -1692
- package/dist/clipboard-B2fBy8tG.js +0 -31
- package/dist/clipboard-BbGnZskJ.js +0 -31
- package/dist/command-format-Clp46jkj.js +0 -38
- package/dist/command-format-DELazozB.js +0 -52
- package/dist/command-format-SkzzRqR1.js +0 -52
- package/dist/command-registry-DZ4hkmA0.js +0 -248
- package/dist/commands-DtYZJSPn.js +0 -568
- package/dist/commands-Dujk1JmY.js +0 -568
- package/dist/commands-registry-Bd0xbvwG.js +0 -766
- package/dist/commands-registry-DYfRSVF3.js +0 -766
- package/dist/common-D6bu0zHC.js +0 -287
- package/dist/common-zW9Y2P1B.js +0 -287
- package/dist/completion-cli-tSe7Pmqm.js +0 -431
- package/dist/completion-cli-vn4IScs5.js +0 -432
- package/dist/config-C8rUDJXY.js +0 -5704
- package/dist/config-CLZ_XGVw.js +0 -6523
- package/dist/config-SY8M0kM_.js +0 -5705
- package/dist/config-cli-1V7D2Wsw.js +0 -247
- package/dist/config-cli-CjWEC81L.js +0 -244
- package/dist/config-guard-BW2gpKj_.js +0 -93
- package/dist/config-guard-BvxuzHpo.js +0 -76
- package/dist/config-sync-CoIIbEOe.js +0 -91
- package/dist/config-sync-DvAttep0.js +0 -91
- package/dist/configure-Bf0oupCE.js +0 -959
- package/dist/configure-DRM-7zFf.js +0 -960
- package/dist/context-D5iEFzv9.js +0 -60
- package/dist/control-service-C8m8F9pr.js +0 -72
- package/dist/control-service-DKotCWCg.js +0 -72
- package/dist/cron-cli-DB_FLYHD.js +0 -448
- package/dist/cron-cli-bxm5lrrO.js +0 -451
- package/dist/daemon-cli-1LsOnICv.js +0 -566
- package/dist/daemon-cli-CC2NrJ7a.js +0 -565
- package/dist/daemon-runtime-BXZhtBL9.js +0 -460
- package/dist/daemon-runtime-DW4USC7r.js +0 -460
- package/dist/deliver-B4HuPwJA.js +0 -1162
- package/dist/deliver-LiY5oL52.js +0 -1097
- package/dist/deliver-xrmk7xjh.js +0 -1097
- package/dist/delivery-queue-TnQykYsg.js +0 -220
- package/dist/deps-CMMOiOsF.js +0 -42
- package/dist/devices-cli-Be5he2SA.js +0 -195
- package/dist/devices-cli-z6ecoFe9.js +0 -198
- package/dist/diagnostics-Dj75aEHN.js +0 -35
- package/dist/diagnostics-DlIw6fqD.js +0 -35
- package/dist/directory-cli-CEy-0nxj.js +0 -243
- package/dist/directory-cli-DpzKcigr.js +0 -246
- package/dist/dispatcher-10Shiuz3.js +0 -100
- package/dist/dispatcher-3Jae6AiW.js +0 -100
- package/dist/dns-cli-Bat1pkc-.js +0 -200
- package/dist/dns-cli-NohNyEo0.js +0 -197
- package/dist/dock-DbxBBv30.js +0 -753
- package/dist/dock-cPBY4qGl.js +0 -753
- package/dist/docs-cli-BWp6p-Tq.js +0 -161
- package/dist/docs-cli-x22FnZfL.js +0 -159
- package/dist/doctor-BrT5m_on.js +0 -1815
- package/dist/doctor-Pp2HVnjM.js +0 -1813
- package/dist/doctor-completion-DNTimX9o.js +0 -92
- package/dist/doctor-completion-ylN9QAJ6.js +0 -92
- package/dist/doctor-config-flow-D1w3700T.js +0 -1232
- package/dist/doctor-config-flow-Dq50iE1R.js +0 -1232
- package/dist/engine-B9avUJL5.js +0 -563
- package/dist/engine-BiUQ25D4.js +0 -563
- package/dist/env-0lJfCPsw.js +0 -32
- package/dist/exec-BenD3A5l.js +0 -1167
- package/dist/exec-Bv3pyjeM.js +0 -255
- package/dist/exec-approvals-CdLmKX2R.js +0 -1221
- package/dist/exec-approvals-cli-DXfV6G8H.js +0 -368
- package/dist/exec-approvals-cli-J2cZs10o.js +0 -371
- package/dist/frontmatter-YijVi0FQ.js +0 -204
- package/dist/gateway-cli-DOAbA0pc.js +0 -19972
- package/dist/gateway-cli-QpWtBhQy.js +0 -19971
- package/dist/gateway-rpc-DJKBil9s.js +0 -28
- package/dist/gateway-rpc-DVterpLP.js +0 -28
- package/dist/github-copilot-auth-4IUFp669.js +0 -1418
- package/dist/github-copilot-auth-C9E0IROs.js +0 -1418
- package/dist/gmail-setup-utils-BPo_LkKI.js +0 -428
- package/dist/gmail-setup-utils-D3Yqgor7.js +0 -428
- package/dist/health-BeZnqp6m.js +0 -1258
- package/dist/health-Cn2OoVWZ.js +0 -1253
- package/dist/health-format-CdP99j3Y.js +0 -208
- package/dist/health-format-JEChH08S.js +0 -208
- package/dist/heartbeat-visibility-BL3WAchI.js +0 -98
- package/dist/heartbeat-visibility-CQ9QimI7.js +0 -98
- package/dist/help-format-Dl4bsrLI.js +0 -17
- package/dist/helpers-ZKNRexvX.js +0 -10
- package/dist/hooks-cli-D99hXt7K.js +0 -991
- package/dist/hooks-cli-DMB8RiEO.js +0 -993
- package/dist/hooks-status-B-e96dZj.js +0 -356
- package/dist/hooks-status-C_9sE0ox.js +0 -356
- package/dist/image-ops-Dlt3T7th.js +0 -541
- package/dist/image-ops-omlvdfah.js +0 -541
- package/dist/init-Bm04RagW.js +0 -122
- package/dist/init-CaJBf4p1.js +0 -122
- package/dist/installs-C2iMRBVz.js +0 -383
- package/dist/installs-D-cPGdCw.js +0 -383
- package/dist/ipv4-Bf7NS3QU.js +0 -1964
- package/dist/ipv4-wWNs8IH_.js +0 -1964
- package/dist/lanes-CNxj3tit.js +0 -232
- package/dist/lifecycle-core-B_7XRcvF.js +0 -388
- package/dist/lifecycle-core-By83PVAK.js +0 -387
- package/dist/links-BfjHVTB_.js +0 -15
- package/dist/links-DPGe0OHw.js +0 -15
- package/dist/logging-DB6BQmhi.js +0 -15
- package/dist/logging-mcb66J0p.js +0 -15
- package/dist/login-BDCg6D0N.js +0 -61
- package/dist/login-BDfnbjnZ.js +0 -59
- package/dist/login-BqH1itcg.js +0 -61
- package/dist/login-qr-CyOw3R4r.js +0 -321
- package/dist/login-qr-D8ECtb72.js +0 -323
- package/dist/login-qr-RnR7e4Bw.js +0 -326
- package/dist/logs-cli--j89L74J.js +0 -245
- package/dist/logs-cli-DpEMg_Gq.js +0 -242
- package/dist/manager-B4OyvcxT.js +0 -3244
- package/dist/manager-Cqc1CeH7.js +0 -3246
- package/dist/manager-DUyQPFvj.js +0 -3244
- package/dist/manifest-registry-CW1zCyRF.js +0 -748
- package/dist/manifest-registry-D4lM2RdV.js +0 -748
- package/dist/markdown-tables-BT1X6jqH.js +0 -347
- package/dist/markdown-tables-DHgOK2vI.js +0 -348
- package/dist/media-THyainiE.js +0 -1342
- package/dist/memory-cli-BKocCWXM.js +0 -868
- package/dist/memory-cli-Jmma-xI_.js +0 -869
- package/dist/message-channel-dSTVVCyX.js +0 -110
- package/dist/migrate-BR6iAIjO.js +0 -157
- package/dist/migrate-D0EcMs0f.js +0 -157
- package/dist/model-selection-YcSr9CgC.js +0 -2691
- package/dist/models-1vUQBVfw.js +0 -2510
- package/dist/models-cli-BK3BwUhL.js +0 -2739
- package/dist/models-cli-DECrM8oA.js +0 -258
- package/dist/net-B5lXhYLV.js +0 -218
- package/dist/node-cli-cLHUNpPD.js +0 -1319
- package/dist/node-cli-fO7Y132S.js +0 -1322
- package/dist/node-service-BFxHJsno.js +0 -67
- package/dist/node-service-DUnan4uK.js +0 -67
- package/dist/nodes-cli-BCq35E6N.js +0 -1200
- package/dist/nodes-cli-vD7MwAKP.js +0 -1197
- package/dist/nodes-screen-1YiLkqr5.js +0 -234
- package/dist/nodes-screen-DZeD8hE5.js +0 -234
- package/dist/note-Bi8Wb8DV.js +0 -73
- package/dist/note-uiuPxhyX.js +0 -73
- package/dist/npm-registry-spec-B-XIShkB.js +0 -351
- package/dist/npm-registry-spec-za3itb5Y.js +0 -351
- package/dist/onboard-Ds6w_sWo.js +0 -1165
- package/dist/onboard-SAVx3bp4.js +0 -1166
- package/dist/onboard-channels-Cg_EkBa4.js +0 -672
- package/dist/onboard-channels-D7NbA55V.js +0 -672
- package/dist/onboard-helpers-DO_hgZb9.js +0 -365
- package/dist/onboard-helpers-_XgJgeqh.js +0 -365
- package/dist/onboarding-3hLmDd0r.js +0 -911
- package/dist/onboarding-B4LKLsbU.js +0 -910
- package/dist/orchestrator-BKzmyBWy.js +0 -357
- package/dist/orchestrator-BN3QCz2s.js +0 -357
- package/dist/outbound-BgA9hNlP.js +0 -2062
- package/dist/outbound-CjdvVhUI.js +0 -214
- package/dist/outbound-DOGe6qb2.js +0 -214
- package/dist/outbound-send-deps-Du5aBpd7.js +0 -55
- package/dist/pairing-cli-2vnyg_Nd.js +0 -118
- package/dist/pairing-cli-BH1KQtNV.js +0 -121
- package/dist/pairing-store-DJz_9Gv0.js +0 -388
- package/dist/pairing-store-DmOzxcuk.js +0 -388
- package/dist/path-env-Bu6k0jDQ.js +0 -89
- package/dist/path-env-C0zQSjw8.js +0 -89
- package/dist/paths-BTc4nk-6.js +0 -126
- package/dist/paths-BgUi2Z2G.js +0 -54
- package/dist/paths-C6VCWKo3.js +0 -238
- package/dist/paths-CCxa0o9c.js +0 -222
- package/dist/paths-CxRf2rBG.js +0 -129
- package/dist/paths-hcX1Gqg5.js +0 -129
- package/dist/pi-auth-json-B68R7q7_.js +0 -82
- package/dist/pi-auth-json-CR0jXAgq.js +0 -78
- package/dist/pi-auth-json-ZYzi3nxs.js +0 -80
- package/dist/pi-model-discovery-Cxs4pvC2.js +0 -3
- package/dist/pi-tools.policy-D81U5xy0.js +0 -200
- package/dist/pi-tools.policy-DSHkkb5b.js +0 -200
- package/dist/plugin-auto-enable-CxF4bpDN.js +0 -282
- package/dist/plugin-auto-enable-jNaAeyEh.js +0 -282
- package/dist/plugin-registry-C7XWotZG.js +0 -32
- package/dist/plugin-registry-DcUCbGax.js +0 -32
- package/dist/plugins-B362e77G.js +0 -168
- package/dist/plugins-CmSUIUNi.js +0 -38
- package/dist/plugins-cli-BsCEnoQ7.js +0 -734
- package/dist/plugins-cli-QSIsMUG7.js +0 -736
- package/dist/polls-CItfB1H8.js +0 -1343
- package/dist/ports-BVLMN1Sr.js +0 -96
- package/dist/ports-CqLSlU6Z.js +0 -317
- package/dist/ports-D94CwCrv.js +0 -344
- package/dist/ports-D_NHthOz.js +0 -96
- package/dist/program-DkJHjI0R.js +0 -176
- package/dist/program-context-DnyGM2SC.js +0 -496
- package/dist/progress-Bek_GyWS.js +0 -133
- package/dist/prompt-style-lu0clOOE.js +0 -9
- package/dist/pw-ai-BLVMuSLv.js +0 -1867
- package/dist/pw-ai-DZJWEF_f.js +0 -1865
- package/dist/pw-ai-dzf-ptcn.js +0 -1868
- package/dist/qmd-manager-Cur_Ekn0.js +0 -937
- package/dist/qmd-manager-DNAUuwjK.js +0 -938
- package/dist/qmd-manager-DepEoASu.js +0 -935
- package/dist/register.agent-CSWvzOkR.js +0 -265
- package/dist/register.agent-UeH2NXmH.js +0 -1003
- package/dist/register.anima-DOdee0dh.js +0 -193
- package/dist/register.anima-HHDWsz6r.js +0 -193
- package/dist/register.configure-CSJFxdz9.js +0 -103
- package/dist/register.configure-D84Fvcz4.js +0 -101
- package/dist/register.maintenance-B3pvNbZb.js +0 -543
- package/dist/register.maintenance-BKVOwkw6.js +0 -543
- package/dist/register.message-BAO6CPl2.js +0 -657
- package/dist/register.message-OXoOKE_6.js +0 -660
- package/dist/register.onboard-BK_ixVmD.js +0 -170
- package/dist/register.onboard-cfCaPx6j.js +0 -170
- package/dist/register.setup-BGfDnzph.js +0 -175
- package/dist/register.setup-Y-Q74M-0.js +0 -175
- package/dist/register.status-health-sessions-CT14eitH.js +0 -142
- package/dist/register.status-health-sessions-TfZMzAUn.js +0 -313
- package/dist/register.subclis-BZwdlNHC.js +0 -255
- package/dist/reply-mlsExaZm.js +0 -32212
- package/dist/reply-prefix-B0CfR4bM.js +0 -100
- package/dist/reply-prefix-w4a39ybC.js +0 -100
- package/dist/reply-qalRISe_.js +0 -32212
- package/dist/routes-CENsHJyg.js +0 -1820
- package/dist/routes-DO0HqW2e.js +0 -1820
- package/dist/rpc-C0pjNhBi.js +0 -70
- package/dist/rpc-DZ44PIXE.js +0 -70
- package/dist/run-main-BMpKw8Mp.js +0 -371
- package/dist/runtime-guard-BSUFiAQV.js +0 -60
- package/dist/sandbox-BIGfMYEI.js +0 -858
- package/dist/sandbox-DxP3IpUP.js +0 -859
- package/dist/sandbox-cli-DtLGH8sL.js +0 -461
- package/dist/sandbox-cli-_Tg7lfJ_.js +0 -458
- package/dist/security-cli-BRwgbedo.js +0 -462
- package/dist/security-cli-D3bSuyZt.js +0 -465
- package/dist/server-context-49XFFxFg.js +0 -824
- package/dist/server-context-LrlgrZzS.js +0 -824
- package/dist/server-node-events-Dm52i7NW.js +0 -231
- package/dist/server-node-events-QX523UyF.js +0 -233
- package/dist/service-BNVpYcQe.js +0 -642
- package/dist/service-D56aMXUB.js +0 -642
- package/dist/service-audit-D0X_XAB2.js +0 -488
- package/dist/service-audit-qmf6XMmP.js +0 -488
- package/dist/session-CrQQLLhx.js +0 -179
- package/dist/session-LocsOOWJ.js +0 -181
- package/dist/session-Vlce2BAT.js +0 -181
- package/dist/session-cost-usage-BwiTZuKl.js +0 -600
- package/dist/session-cost-usage-DT9YNXTJ.js +0 -600
- package/dist/sessions-BfV53TbG.js +0 -1296
- package/dist/sessions-BimpX_km.js +0 -180
- package/dist/sessions-DcXpzig0.js +0 -1296
- package/dist/sessions-Wd18dukK.js +0 -2038
- package/dist/shared-Bsr69u_7.js +0 -77
- package/dist/shared-Cgly1vPb.js +0 -66
- package/dist/shared-JOo05hST.js +0 -66
- package/dist/shared-f7dvQsi7.js +0 -77
- package/dist/skill-scanner-CkaVLABv.js +0 -263
- package/dist/skills-B-G7UHOa.js +0 -808
- package/dist/skills-B5LQx4lT.js +0 -807
- package/dist/skills-cli-DUGe2ZWW.js +0 -286
- package/dist/skills-cli-DtOk0bvK.js +0 -289
- package/dist/skills-status-Clq9ZnYu.js +0 -166
- package/dist/skills-status-JQluhU-P.js +0 -166
- package/dist/sqlite-BukcjdJa.js +0 -321
- package/dist/sqlite-CGcOZZ0C.js +0 -368
- package/dist/sqlite-Ck6f9KWc.js +0 -453
- package/dist/start--xmSFepB.js +0 -372
- package/dist/start-BdlZbqrr.js +0 -371
- package/dist/status-BgoeFm6g.js +0 -2137
- package/dist/status-BjjDrUq7.js +0 -27
- package/dist/status-Ct0DgOZ-.js +0 -2132
- package/dist/status-RA_uNmK0.js +0 -27
- package/dist/status.update-BjOH3GlS.js +0 -79
- package/dist/status.update-DLU1qBf0.js +0 -79
- package/dist/subagent-registry-9RLdKxES.js +0 -2760
- package/dist/subagent-registry-Byuex3zp.js +0 -2759
- package/dist/subagent-registry-DOBunBYS.js +0 -14
- package/dist/subsystem-Dowf8fSU.js +0 -860
- package/dist/system-cli-C5oBpzni.js +0 -79
- package/dist/system-cli-DXNKD_Id.js +0 -82
- package/dist/systemd-BSrHDyeU.js +0 -452
- package/dist/systemd-By5xdSB4.js +0 -452
- package/dist/systemd-hints-BtjL_5Rh.js +0 -36
- package/dist/systemd-hints-sJmr6cjb.js +0 -36
- package/dist/systemd-linger-CTmV2Gci.js +0 -75
- package/dist/systemd-linger-CmyqQkeC.js +0 -75
- package/dist/table-BL0lJzsm.js +0 -279
- package/dist/table-DoiRPsn0.js +0 -279
- package/dist/timeout-CswI_K-U.js +0 -232
- package/dist/tokens-C-X7wDKj.js +0 -14
- package/dist/tokens-DkvqA72p.js +0 -14
- package/dist/trash-BJLK1vMn.js +0 -23
- package/dist/trash-_x5UZ94k.js +0 -23
- package/dist/tui-BHjxDFZC.js +0 -3894
- package/dist/tui-CgOocwN8.js +0 -3894
- package/dist/tui-cli-5ANH8dE5.js +0 -47
- package/dist/tui-cli-BQ4P-JW_.js +0 -50
- package/dist/update-LFgxHHPd.js +0 -317
- package/dist/update-TxptCqk7.js +0 -317
- package/dist/update-check-CWc7YXmc.js +0 -400
- package/dist/update-check-IhlWaui6.js +0 -400
- package/dist/update-cli-PtXU62w7.js +0 -1105
- package/dist/update-cli-Va0EtETG.js +0 -1105
- package/dist/update-runner-BLeKFkiB.js +0 -894
- package/dist/update-runner-Iuzpc-_y.js +0 -894
- package/dist/usage-ApGvBLVg.js +0 -4516
- package/dist/utils-Bsw__U-F.js +0 -243
- package/dist/web-B6_Ky60G.js +0 -63
- package/dist/web-EZLQEWXY.js +0 -46842
- package/dist/web-pec8YJUX.js +0 -2203
- package/dist/webhooks-cli-BYQKTHTp.js +0 -319
- package/dist/webhooks-cli-C2_xtsUQ.js +0 -316
- package/dist/whatsapp-actions-C72VCq8f.js +0 -49
- package/dist/whatsapp-actions-Ck9Uv0Nw.js +0 -45
- package/dist/whatsapp-actions-D0reTj2k.js +0 -53
- package/dist/widearea-dns-B6ocX23x.js +0 -127
- package/dist/widearea-dns-NsEUNYwz.js +0 -127
- package/dist/workspace-Dcfoy5JJ.js +0 -649
- package/dist/ws-log-N8R5MvGE.js +0 -267
- package/dist/ws-log-gwFxPxj5.js +0 -267
- /package/dist/{auto-update-CUeF99gI.js → auto-update-CpF0fycd.js} +0 -0
- /package/dist/{auto-update-cgkp9ZTJ.js → auto-update-DNWdO7uF.js} +0 -0
- /package/dist/{brew-CVZkr0GU.js → brew-nqf_MiE4.js} +0 -0
- /package/dist/{budget-DxYQSekw.js → budget-CPedI-qW.js} +0 -0
- /package/dist/{budget-BWBp8Res.js → budget-CRpvqDRX.js} +0 -0
- /package/dist/{cli-utils-DtAxdCte.js → cli-utils-C1YHVD4o.js} +0 -0
- /package/dist/{command-options-CSbuuqHr.js → command-options-BbponVnw.js} +0 -0
- /package/dist/{command-options-Cp1tf96a.js → command-options-s0gnvXnS.js} +0 -0
- /package/dist/{constants-O8yBqCBv.js → constants-Dhb6zSIV.js} +0 -0
- /package/dist/{dangerous-tools-5ObDWy1N.js → dangerous-tools-DGTtJ_JR.js} +0 -0
- /package/dist/{dangerous-tools-Jwr7jqNw.js → dangerous-tools-DxrfTOfT.js} +0 -0
- /package/dist/{delivery-queue-B6IHz4Ry.js → delivery-queue-Bxm0nzw7.js} +0 -0
- /package/dist/{display-BDOsXu8F.js → display-Jy3UdGzA.js} +0 -0
- /package/dist/{errors-CHow2wtt.js → errors-CKaCqKga.js} +0 -0
- /package/dist/{exec-BizYYQgP.js → exec-DDmuVVNq.js} +0 -0
- /package/dist/{format-Mq6iU0_5.js → format-ByEjgyTF.js} +0 -0
- /package/dist/{format-duration-DhWzz_5b.js → format-duration-Aaj5tjJd.js} +0 -0
- /package/dist/{format-relative-C6kUHuOj.js → format-relative-79_Y1n2Y.js} +0 -0
- /package/dist/{help-format-DUBI91Ti.js → help-format-BMKzarov.js} +0 -0
- /package/dist/{helpers-eJFa4K6r.js → helpers-DpEB9Mh0.js} +0 -0
- /package/dist/{helpers-DLgbkcEn.js → helpers-FMld9sBT.js} +0 -0
- /package/dist/{input-provenance-DJBdpeKk.js → input-provenance-Cy_KnBlP.js} +0 -0
- /package/dist/{is-main-Dt9DTcH1.js → is-main-yjaVwMtJ.js} +0 -0
- /package/dist/{loader-l2OBdJ8x.js → loader-Br7Vr0zn.js} +0 -0
- /package/dist/{loader-BoYxRfcW.js → loader-CkmOrXcC.js} +0 -0
- /package/dist/{logging-BdnOSVPD.js → logging-CY-Q5cwf.js} +0 -0
- /package/dist/{message-channel-w4F2b2F6.js → message-channel-dua8OOGJ.js} +0 -0
- /package/dist/{mime-B1ZoR53M.js → mime-CBg4KybI.js} +0 -0
- /package/dist/{model-param-b-DPwyNGn8.js → model-param-b-DW9f0NN8.js} +0 -0
- /package/dist/{node-match-8XZnaid6.js → node-match-BV8bTBd4.js} +0 -0
- /package/dist/{normalize-GDK8JTNW.js → normalize-_lmlBOW9.js} +0 -0
- /package/dist/{openclaw-root-C85WMnVV.js → openclaw-root-JPvmPTf7.js} +0 -0
- /package/dist/{outbound-send-deps-ANnAhImn.js → outbound-send-deps-BfUvuWGa.js} +0 -0
- /package/dist/{parse-6-2MDhdT.js → parse-CZRwKocn.js} +0 -0
- /package/dist/{parse-log-line-Bqh1SSzC.js → parse-log-line-CvrZEK6A.js} +0 -0
- /package/dist/{parse-log-line-DUZCjXbl.js → parse-log-line-mLdat0AH.js} +0 -0
- /package/dist/{parse-port-BKB9Exlg.js → parse-port-BSOOdo7I.js} +0 -0
- /package/dist/{parse-port-DrfvwwiL.js → parse-port-Y0NK62x1.js} +0 -0
- /package/dist/{parse-timeout-Di_tcEmi.js → parse-timeout-DVPQ3n9j.js} +0 -0
- /package/dist/{paths-DcVEkYX5.js → paths-DHjlJ6cn.js} +0 -0
- /package/dist/{pi-model-discovery-DsRqYJLy.js → pi-model-discovery-DzEIEgHL.js} +0 -0
- /package/dist/{plugins-CDJw924T.js → plugins-D6PBOdkn.js} +0 -0
- /package/dist/{program-context-Bvn8046-.js → program-context-Q1hkT73c.js} +0 -0
- /package/dist/{progress-CbZ2D53A.js → progress-C9Ha1NJh.js} +0 -0
- /package/dist/{prompt-style-DKy6qQxR.js → prompt-style-DQi8j03a.js} +0 -0
- /package/dist/{prompts-BI__va99.js → prompts-BEHxUC3w.js} +0 -0
- /package/dist/{prompts-_dDWkCAz.js → prompts-CSOhuiqe.js} +0 -0
- /package/dist/{queue-D_u34pbL.js → queue-BJGo7kAB.js} +0 -0
- /package/dist/{queue-PG591iID.js → queue-DYgUbdoq.js} +0 -0
- /package/dist/{redact-ClVwO7Nn.js → redact-CyKvdFrg.js} +0 -0
- /package/dist/{registry-Bs_DJK9E.js → registry-C5MAYD4V.js} +0 -0
- /package/dist/{registry-D_zlP1U-.js → registry-CRrXXVs0.js} +0 -0
- /package/dist/{requirements-BzZxj2Wu.js → requirements-CGkxTCu4.js} +0 -0
- /package/dist/{requirements-DIW1svgA.js → requirements-CIDaOcbO.js} +0 -0
- /package/dist/{runtime-guard-DeOXA_86.js → runtime-guard-nL3Lp8T-.js} +0 -0
- /package/dist/{secret-equal-Dghy3xsA.js → secret-equal-DJpmLXlG.js} +0 -0
- /package/dist/{send-BhAfdGII.js → send-CTcxgDDU.js} +0 -0
- /package/dist/{send-ga9udK1_.js → send-DPezUR3-.js} +0 -0
- /package/dist/{send-C2t9xpXI.js → send-DZQTaG7-.js} +0 -0
- /package/dist/{send-DigO-i9j.js → send-VDff2gra.js} +0 -0
- /package/dist/{send-Dz2BDHll.js → send-bgQNV8d1.js} +0 -0
- /package/dist/{session-key-BGiG_JcT.js → session-key-CQT-NR6w.js} +0 -0
- /package/dist/{shell-argv-CAq1mLa2.js → shell-argv-n9IueeJQ.js} +0 -0
- /package/dist/{skill-scanner-Coo4QoCd.js → skill-scanner-o6NgVMD9.js} +0 -0
- /package/dist/{status-CMnlcBVc.js → status-C53kTIXF.js} +0 -0
- /package/dist/{status-tDZPwewW.js → status-CZDDA_Sy.js} +0 -0
- /package/dist/{system-run-command-X9lDJIy0.js → system-run-command-BCjUffN9.js} +0 -0
- /package/dist/{system-run-command-DGk7dwQP.js → system-run-command-CqAqKL9K.js} +0 -0
- /package/dist/{tailnet-CuiNECdL.js → tailnet-Ciwjv243.js} +0 -0
- /package/dist/{templates-CeYJjVzw.js → templates-37RKpACb.js} +0 -0
- /package/dist/{templates-I3Z0xplD.js → templates-DPalk30o.js} +0 -0
- /package/dist/{thinking-BXEswx1X.js → thinking-2hxwmvTl.js} +0 -0
- /package/dist/{transcript-events-C1hdue6u.js → transcript-events-Bp7fGnwv.js} +0 -0
- /package/dist/{transcript-tools-DuyYOkUq.js → transcript-tools-D4Lbxlka.js} +0 -0
- /package/dist/{usage-format-BAirWUSO.js → usage-format-6Uar63S0.js} +0 -0
- /package/dist/{utils-C9sj30YY.js → utils-DT8uXjFS.js} +0 -0
- /package/dist/{wsl-CqyuRvtM.js → wsl-CrPvx2kZ.js} +0 -0
- /package/dist/{wsl-ymJYvc9Q.js → wsl-UvJ5dHah.js} +0 -0
|
@@ -0,0 +1,347 @@
|
|
|
1
|
+
import { C as normalizeAccountId } from "./workspace-DLna1IxR.js";
|
|
2
|
+
import { f as INTERNAL_MESSAGE_CHANNEL, r as normalizeChannelId } from "./plugins-DtghNRtM.js";
|
|
3
|
+
|
|
4
|
+
//#region src/markdown/fences.ts
|
|
5
|
+
function parseFenceSpans(buffer) {
|
|
6
|
+
const spans = [];
|
|
7
|
+
let open;
|
|
8
|
+
let offset = 0;
|
|
9
|
+
while (offset <= buffer.length) {
|
|
10
|
+
const nextNewline = buffer.indexOf("\n", offset);
|
|
11
|
+
const lineEnd = nextNewline === -1 ? buffer.length : nextNewline;
|
|
12
|
+
const line = buffer.slice(offset, lineEnd);
|
|
13
|
+
const match = line.match(/^( {0,3})(`{3,}|~{3,})(.*)$/);
|
|
14
|
+
if (match) {
|
|
15
|
+
const indent = match[1];
|
|
16
|
+
const marker = match[2];
|
|
17
|
+
const markerChar = marker[0];
|
|
18
|
+
const markerLen = marker.length;
|
|
19
|
+
if (!open) open = {
|
|
20
|
+
start: offset,
|
|
21
|
+
markerChar,
|
|
22
|
+
markerLen,
|
|
23
|
+
openLine: line,
|
|
24
|
+
marker,
|
|
25
|
+
indent
|
|
26
|
+
};
|
|
27
|
+
else if (open.markerChar === markerChar && markerLen >= open.markerLen) {
|
|
28
|
+
const end = lineEnd;
|
|
29
|
+
spans.push({
|
|
30
|
+
start: open.start,
|
|
31
|
+
end,
|
|
32
|
+
openLine: open.openLine,
|
|
33
|
+
marker: open.marker,
|
|
34
|
+
indent: open.indent
|
|
35
|
+
});
|
|
36
|
+
open = void 0;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
if (nextNewline === -1) break;
|
|
40
|
+
offset = nextNewline + 1;
|
|
41
|
+
}
|
|
42
|
+
if (open) spans.push({
|
|
43
|
+
start: open.start,
|
|
44
|
+
end: buffer.length,
|
|
45
|
+
openLine: open.openLine,
|
|
46
|
+
marker: open.marker,
|
|
47
|
+
indent: open.indent
|
|
48
|
+
});
|
|
49
|
+
return spans;
|
|
50
|
+
}
|
|
51
|
+
function findFenceSpanAt(spans, index) {
|
|
52
|
+
return spans.find((span) => index > span.start && index < span.end);
|
|
53
|
+
}
|
|
54
|
+
function isSafeFenceBreak(spans, index) {
|
|
55
|
+
return !findFenceSpanAt(spans, index);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
//#endregion
|
|
59
|
+
//#region src/auto-reply/chunk.ts
|
|
60
|
+
const DEFAULT_CHUNK_LIMIT = 4e3;
|
|
61
|
+
const DEFAULT_CHUNK_MODE = "length";
|
|
62
|
+
function resolveChunkLimitForProvider(cfgSection, accountId) {
|
|
63
|
+
if (!cfgSection) return;
|
|
64
|
+
const normalizedAccountId = normalizeAccountId(accountId);
|
|
65
|
+
const accounts = cfgSection.accounts;
|
|
66
|
+
if (accounts && typeof accounts === "object") {
|
|
67
|
+
const direct = accounts[normalizedAccountId];
|
|
68
|
+
if (typeof direct?.textChunkLimit === "number") return direct.textChunkLimit;
|
|
69
|
+
const matchKey = Object.keys(accounts).find((key) => key.toLowerCase() === normalizedAccountId.toLowerCase());
|
|
70
|
+
const match = matchKey ? accounts[matchKey] : void 0;
|
|
71
|
+
if (typeof match?.textChunkLimit === "number") return match.textChunkLimit;
|
|
72
|
+
}
|
|
73
|
+
return cfgSection.textChunkLimit;
|
|
74
|
+
}
|
|
75
|
+
function resolveTextChunkLimit(cfg, provider, accountId, opts) {
|
|
76
|
+
const fallback = typeof opts?.fallbackLimit === "number" && opts.fallbackLimit > 0 ? opts.fallbackLimit : DEFAULT_CHUNK_LIMIT;
|
|
77
|
+
const providerOverride = (() => {
|
|
78
|
+
if (!provider || provider === INTERNAL_MESSAGE_CHANNEL) return;
|
|
79
|
+
return resolveChunkLimitForProvider((cfg?.channels)?.[provider] ?? cfg?.[provider], accountId);
|
|
80
|
+
})();
|
|
81
|
+
if (typeof providerOverride === "number" && providerOverride > 0) return providerOverride;
|
|
82
|
+
return fallback;
|
|
83
|
+
}
|
|
84
|
+
function resolveChunkModeForProvider(cfgSection, accountId) {
|
|
85
|
+
if (!cfgSection) return;
|
|
86
|
+
const normalizedAccountId = normalizeAccountId(accountId);
|
|
87
|
+
const accounts = cfgSection.accounts;
|
|
88
|
+
if (accounts && typeof accounts === "object") {
|
|
89
|
+
const direct = accounts[normalizedAccountId];
|
|
90
|
+
if (direct?.chunkMode) return direct.chunkMode;
|
|
91
|
+
const matchKey = Object.keys(accounts).find((key) => key.toLowerCase() === normalizedAccountId.toLowerCase());
|
|
92
|
+
const match = matchKey ? accounts[matchKey] : void 0;
|
|
93
|
+
if (match?.chunkMode) return match.chunkMode;
|
|
94
|
+
}
|
|
95
|
+
return cfgSection.chunkMode;
|
|
96
|
+
}
|
|
97
|
+
function resolveChunkMode(cfg, provider, accountId) {
|
|
98
|
+
if (!provider || provider === INTERNAL_MESSAGE_CHANNEL) return DEFAULT_CHUNK_MODE;
|
|
99
|
+
return resolveChunkModeForProvider((cfg?.channels)?.[provider] ?? cfg?.[provider], accountId) ?? DEFAULT_CHUNK_MODE;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Split text on newlines, trimming line whitespace.
|
|
103
|
+
* Blank lines are folded into the next non-empty line as leading "\n" prefixes.
|
|
104
|
+
* Long lines can be split by length (default) or kept intact via splitLongLines:false.
|
|
105
|
+
*/
|
|
106
|
+
function chunkByNewline(text, maxLineLength, opts) {
|
|
107
|
+
if (!text) return [];
|
|
108
|
+
if (maxLineLength <= 0) return text.trim() ? [text] : [];
|
|
109
|
+
const splitLongLines = opts?.splitLongLines !== false;
|
|
110
|
+
const trimLines = opts?.trimLines !== false;
|
|
111
|
+
const lines = splitByNewline(text, opts?.isSafeBreak);
|
|
112
|
+
const chunks = [];
|
|
113
|
+
let pendingBlankLines = 0;
|
|
114
|
+
for (const line of lines) {
|
|
115
|
+
const trimmed = line.trim();
|
|
116
|
+
if (!trimmed) {
|
|
117
|
+
pendingBlankLines += 1;
|
|
118
|
+
continue;
|
|
119
|
+
}
|
|
120
|
+
const maxPrefix = Math.max(0, maxLineLength - 1);
|
|
121
|
+
const cappedBlankLines = pendingBlankLines > 0 ? Math.min(pendingBlankLines, maxPrefix) : 0;
|
|
122
|
+
const prefix = cappedBlankLines > 0 ? "\n".repeat(cappedBlankLines) : "";
|
|
123
|
+
pendingBlankLines = 0;
|
|
124
|
+
const lineValue = trimLines ? trimmed : line;
|
|
125
|
+
if (!splitLongLines || lineValue.length + prefix.length <= maxLineLength) {
|
|
126
|
+
chunks.push(prefix + lineValue);
|
|
127
|
+
continue;
|
|
128
|
+
}
|
|
129
|
+
const firstLimit = Math.max(1, maxLineLength - prefix.length);
|
|
130
|
+
const first = lineValue.slice(0, firstLimit);
|
|
131
|
+
chunks.push(prefix + first);
|
|
132
|
+
const remaining = lineValue.slice(firstLimit);
|
|
133
|
+
if (remaining) chunks.push(...chunkText(remaining, maxLineLength));
|
|
134
|
+
}
|
|
135
|
+
if (pendingBlankLines > 0 && chunks.length > 0) chunks[chunks.length - 1] += "\n".repeat(pendingBlankLines);
|
|
136
|
+
return chunks;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Split text into chunks on paragraph boundaries (blank lines), preserving lists and
|
|
140
|
+
* single-newline line wraps inside paragraphs.
|
|
141
|
+
*
|
|
142
|
+
* - Only breaks at paragraph separators ("\n\n" or more, allowing whitespace on blank lines)
|
|
143
|
+
* - Packs multiple paragraphs into a single chunk up to `limit`
|
|
144
|
+
* - Falls back to length-based splitting when a single paragraph exceeds `limit`
|
|
145
|
+
* (unless `splitLongParagraphs` is disabled)
|
|
146
|
+
*/
|
|
147
|
+
function chunkByParagraph(text, limit, opts) {
|
|
148
|
+
if (!text) return [];
|
|
149
|
+
if (limit <= 0) return [text];
|
|
150
|
+
const splitLongParagraphs = opts?.splitLongParagraphs !== false;
|
|
151
|
+
const normalized = text.replace(/\r\n?/g, "\n");
|
|
152
|
+
if (!/\n[\t ]*\n+/.test(normalized)) {
|
|
153
|
+
if (normalized.length <= limit) return [normalized];
|
|
154
|
+
if (!splitLongParagraphs) return [normalized];
|
|
155
|
+
return chunkText(normalized, limit);
|
|
156
|
+
}
|
|
157
|
+
const spans = parseFenceSpans(normalized);
|
|
158
|
+
const parts = [];
|
|
159
|
+
const re = /\n[\t ]*\n+/g;
|
|
160
|
+
let lastIndex = 0;
|
|
161
|
+
for (const match of normalized.matchAll(re)) {
|
|
162
|
+
const idx = match.index ?? 0;
|
|
163
|
+
if (!isSafeFenceBreak(spans, idx)) continue;
|
|
164
|
+
parts.push(normalized.slice(lastIndex, idx));
|
|
165
|
+
lastIndex = idx + match[0].length;
|
|
166
|
+
}
|
|
167
|
+
parts.push(normalized.slice(lastIndex));
|
|
168
|
+
const chunks = [];
|
|
169
|
+
for (const part of parts) {
|
|
170
|
+
const paragraph = part.replace(/\s+$/g, "");
|
|
171
|
+
if (!paragraph.trim()) continue;
|
|
172
|
+
if (paragraph.length <= limit) chunks.push(paragraph);
|
|
173
|
+
else if (!splitLongParagraphs) chunks.push(paragraph);
|
|
174
|
+
else chunks.push(...chunkText(paragraph, limit));
|
|
175
|
+
}
|
|
176
|
+
return chunks;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Unified chunking function that dispatches based on mode.
|
|
180
|
+
*/
|
|
181
|
+
function chunkTextWithMode(text, limit, mode) {
|
|
182
|
+
if (mode === "newline") return chunkByParagraph(text, limit);
|
|
183
|
+
return chunkText(text, limit);
|
|
184
|
+
}
|
|
185
|
+
function chunkMarkdownTextWithMode(text, limit, mode) {
|
|
186
|
+
if (mode === "newline") {
|
|
187
|
+
const paragraphChunks = chunkByParagraph(text, limit, { splitLongParagraphs: false });
|
|
188
|
+
const out = [];
|
|
189
|
+
for (const chunk of paragraphChunks) {
|
|
190
|
+
const nested = chunkMarkdownText(chunk, limit);
|
|
191
|
+
if (!nested.length && chunk) out.push(chunk);
|
|
192
|
+
else out.push(...nested);
|
|
193
|
+
}
|
|
194
|
+
return out;
|
|
195
|
+
}
|
|
196
|
+
return chunkMarkdownText(text, limit);
|
|
197
|
+
}
|
|
198
|
+
function splitByNewline(text, isSafeBreak = () => true) {
|
|
199
|
+
const lines = [];
|
|
200
|
+
let start = 0;
|
|
201
|
+
for (let i = 0; i < text.length; i++) if (text[i] === "\n" && isSafeBreak(i)) {
|
|
202
|
+
lines.push(text.slice(start, i));
|
|
203
|
+
start = i + 1;
|
|
204
|
+
}
|
|
205
|
+
lines.push(text.slice(start));
|
|
206
|
+
return lines;
|
|
207
|
+
}
|
|
208
|
+
function chunkText(text, limit) {
|
|
209
|
+
if (!text) return [];
|
|
210
|
+
if (limit <= 0) return [text];
|
|
211
|
+
if (text.length <= limit) return [text];
|
|
212
|
+
const chunks = [];
|
|
213
|
+
let remaining = text;
|
|
214
|
+
while (remaining.length > limit) {
|
|
215
|
+
const { lastNewline, lastWhitespace } = scanParenAwareBreakpoints(remaining.slice(0, limit));
|
|
216
|
+
let breakIdx = lastNewline > 0 ? lastNewline : lastWhitespace;
|
|
217
|
+
if (breakIdx <= 0) breakIdx = limit;
|
|
218
|
+
const chunk = remaining.slice(0, breakIdx).trimEnd();
|
|
219
|
+
if (chunk.length > 0) chunks.push(chunk);
|
|
220
|
+
const brokeOnSeparator = breakIdx < remaining.length && /\s/.test(remaining[breakIdx]);
|
|
221
|
+
const nextStart = Math.min(remaining.length, breakIdx + (brokeOnSeparator ? 1 : 0));
|
|
222
|
+
remaining = remaining.slice(nextStart).trimStart();
|
|
223
|
+
}
|
|
224
|
+
if (remaining.length) chunks.push(remaining);
|
|
225
|
+
return chunks;
|
|
226
|
+
}
|
|
227
|
+
function chunkMarkdownText(text, limit) {
|
|
228
|
+
if (!text) return [];
|
|
229
|
+
if (limit <= 0) return [text];
|
|
230
|
+
if (text.length <= limit) return [text];
|
|
231
|
+
const chunks = [];
|
|
232
|
+
let remaining = text;
|
|
233
|
+
while (remaining.length > limit) {
|
|
234
|
+
const spans = parseFenceSpans(remaining);
|
|
235
|
+
const softBreak = pickSafeBreakIndex(remaining.slice(0, limit), spans);
|
|
236
|
+
let breakIdx = softBreak > 0 ? softBreak : limit;
|
|
237
|
+
const initialFence = isSafeFenceBreak(spans, breakIdx) ? void 0 : findFenceSpanAt(spans, breakIdx);
|
|
238
|
+
let fenceToSplit = initialFence;
|
|
239
|
+
if (initialFence) {
|
|
240
|
+
const closeLine = `${initialFence.indent}${initialFence.marker}`;
|
|
241
|
+
const maxIdxIfNeedNewline = limit - (closeLine.length + 1);
|
|
242
|
+
if (maxIdxIfNeedNewline <= 0) {
|
|
243
|
+
fenceToSplit = void 0;
|
|
244
|
+
breakIdx = limit;
|
|
245
|
+
} else {
|
|
246
|
+
const minProgressIdx = Math.min(remaining.length, initialFence.start + initialFence.openLine.length + 2);
|
|
247
|
+
const maxIdxIfAlreadyNewline = limit - closeLine.length;
|
|
248
|
+
let pickedNewline = false;
|
|
249
|
+
let lastNewline = remaining.lastIndexOf("\n", Math.max(0, maxIdxIfAlreadyNewline - 1));
|
|
250
|
+
while (lastNewline !== -1) {
|
|
251
|
+
const candidateBreak = lastNewline + 1;
|
|
252
|
+
if (candidateBreak < minProgressIdx) break;
|
|
253
|
+
const candidateFence = findFenceSpanAt(spans, candidateBreak);
|
|
254
|
+
if (candidateFence && candidateFence.start === initialFence.start) {
|
|
255
|
+
breakIdx = Math.max(1, candidateBreak);
|
|
256
|
+
pickedNewline = true;
|
|
257
|
+
break;
|
|
258
|
+
}
|
|
259
|
+
lastNewline = remaining.lastIndexOf("\n", lastNewline - 1);
|
|
260
|
+
}
|
|
261
|
+
if (!pickedNewline) if (minProgressIdx > maxIdxIfAlreadyNewline) {
|
|
262
|
+
fenceToSplit = void 0;
|
|
263
|
+
breakIdx = limit;
|
|
264
|
+
} else breakIdx = Math.max(minProgressIdx, maxIdxIfNeedNewline);
|
|
265
|
+
}
|
|
266
|
+
const fenceAtBreak = findFenceSpanAt(spans, breakIdx);
|
|
267
|
+
fenceToSplit = fenceAtBreak && fenceAtBreak.start === initialFence.start ? fenceAtBreak : void 0;
|
|
268
|
+
}
|
|
269
|
+
let rawChunk = remaining.slice(0, breakIdx);
|
|
270
|
+
if (!rawChunk) break;
|
|
271
|
+
const brokeOnSeparator = breakIdx < remaining.length && /\s/.test(remaining[breakIdx]);
|
|
272
|
+
const nextStart = Math.min(remaining.length, breakIdx + (brokeOnSeparator ? 1 : 0));
|
|
273
|
+
let next = remaining.slice(nextStart);
|
|
274
|
+
if (fenceToSplit) {
|
|
275
|
+
const closeLine = `${fenceToSplit.indent}${fenceToSplit.marker}`;
|
|
276
|
+
rawChunk = rawChunk.endsWith("\n") ? `${rawChunk}${closeLine}` : `${rawChunk}\n${closeLine}`;
|
|
277
|
+
next = `${fenceToSplit.openLine}\n${next}`;
|
|
278
|
+
} else next = stripLeadingNewlines(next);
|
|
279
|
+
chunks.push(rawChunk);
|
|
280
|
+
remaining = next;
|
|
281
|
+
}
|
|
282
|
+
if (remaining.length) chunks.push(remaining);
|
|
283
|
+
return chunks;
|
|
284
|
+
}
|
|
285
|
+
function stripLeadingNewlines(value) {
|
|
286
|
+
let i = 0;
|
|
287
|
+
while (i < value.length && value[i] === "\n") i++;
|
|
288
|
+
return i > 0 ? value.slice(i) : value;
|
|
289
|
+
}
|
|
290
|
+
function pickSafeBreakIndex(window, spans) {
|
|
291
|
+
const { lastNewline, lastWhitespace } = scanParenAwareBreakpoints(window, (index) => isSafeFenceBreak(spans, index));
|
|
292
|
+
if (lastNewline > 0) return lastNewline;
|
|
293
|
+
if (lastWhitespace > 0) return lastWhitespace;
|
|
294
|
+
return -1;
|
|
295
|
+
}
|
|
296
|
+
function scanParenAwareBreakpoints(window, isAllowed = () => true) {
|
|
297
|
+
let lastNewline = -1;
|
|
298
|
+
let lastWhitespace = -1;
|
|
299
|
+
let depth = 0;
|
|
300
|
+
for (let i = 0; i < window.length; i++) {
|
|
301
|
+
if (!isAllowed(i)) continue;
|
|
302
|
+
const char = window[i];
|
|
303
|
+
if (char === "(") {
|
|
304
|
+
depth += 1;
|
|
305
|
+
continue;
|
|
306
|
+
}
|
|
307
|
+
if (char === ")" && depth > 0) {
|
|
308
|
+
depth -= 1;
|
|
309
|
+
continue;
|
|
310
|
+
}
|
|
311
|
+
if (depth !== 0) continue;
|
|
312
|
+
if (char === "\n") lastNewline = i;
|
|
313
|
+
else if (/\s/.test(char)) lastWhitespace = i;
|
|
314
|
+
}
|
|
315
|
+
return {
|
|
316
|
+
lastNewline,
|
|
317
|
+
lastWhitespace
|
|
318
|
+
};
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
//#endregion
|
|
322
|
+
//#region src/config/markdown-tables.ts
|
|
323
|
+
const DEFAULT_TABLE_MODES = new Map([["signal", "bullets"], ["whatsapp", "bullets"]]);
|
|
324
|
+
const isMarkdownTableMode = (value) => value === "off" || value === "bullets" || value === "code";
|
|
325
|
+
function resolveMarkdownModeFromSection(section, accountId) {
|
|
326
|
+
if (!section) return;
|
|
327
|
+
const normalizedAccountId = normalizeAccountId(accountId);
|
|
328
|
+
const accounts = section.accounts;
|
|
329
|
+
if (accounts && typeof accounts === "object") {
|
|
330
|
+
const directMode = accounts[normalizedAccountId]?.markdown?.tables;
|
|
331
|
+
if (isMarkdownTableMode(directMode)) return directMode;
|
|
332
|
+
const matchKey = Object.keys(accounts).find((key) => key.toLowerCase() === normalizedAccountId.toLowerCase());
|
|
333
|
+
const matchMode = (matchKey ? accounts[matchKey] : void 0)?.markdown?.tables;
|
|
334
|
+
if (isMarkdownTableMode(matchMode)) return matchMode;
|
|
335
|
+
}
|
|
336
|
+
const sectionMode = section.markdown?.tables;
|
|
337
|
+
return isMarkdownTableMode(sectionMode) ? sectionMode : void 0;
|
|
338
|
+
}
|
|
339
|
+
function resolveMarkdownTableMode(params) {
|
|
340
|
+
const channel = normalizeChannelId(params.channel);
|
|
341
|
+
const defaultMode = channel ? DEFAULT_TABLE_MODES.get(channel) ?? "code" : "code";
|
|
342
|
+
if (!channel || !params.cfg) return defaultMode;
|
|
343
|
+
return resolveMarkdownModeFromSection(params.cfg.channels?.[channel] ?? params.cfg?.[channel], params.accountId) ?? defaultMode;
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
//#endregion
|
|
347
|
+
export { chunkMarkdownTextWithMode as a, resolveChunkMode as c, chunkMarkdownText as i, resolveTextChunkLimit as l, chunkByNewline as n, chunkText as o, chunkByParagraph as r, chunkTextWithMode as s, resolveMarkdownTableMode as t, parseFenceSpans as u };
|
|
@@ -0,0 +1,348 @@
|
|
|
1
|
+
import { c as normalizeAccountId } from "./session-key-DxcgHezu.js";
|
|
2
|
+
import { t as INTERNAL_MESSAGE_CHANNEL } from "./message-channel-D_jIO87f.js";
|
|
3
|
+
import { r as normalizeChannelId } from "./plugins-DhcGAPDB.js";
|
|
4
|
+
|
|
5
|
+
//#region src/markdown/fences.ts
|
|
6
|
+
function parseFenceSpans(buffer) {
|
|
7
|
+
const spans = [];
|
|
8
|
+
let open;
|
|
9
|
+
let offset = 0;
|
|
10
|
+
while (offset <= buffer.length) {
|
|
11
|
+
const nextNewline = buffer.indexOf("\n", offset);
|
|
12
|
+
const lineEnd = nextNewline === -1 ? buffer.length : nextNewline;
|
|
13
|
+
const line = buffer.slice(offset, lineEnd);
|
|
14
|
+
const match = line.match(/^( {0,3})(`{3,}|~{3,})(.*)$/);
|
|
15
|
+
if (match) {
|
|
16
|
+
const indent = match[1];
|
|
17
|
+
const marker = match[2];
|
|
18
|
+
const markerChar = marker[0];
|
|
19
|
+
const markerLen = marker.length;
|
|
20
|
+
if (!open) open = {
|
|
21
|
+
start: offset,
|
|
22
|
+
markerChar,
|
|
23
|
+
markerLen,
|
|
24
|
+
openLine: line,
|
|
25
|
+
marker,
|
|
26
|
+
indent
|
|
27
|
+
};
|
|
28
|
+
else if (open.markerChar === markerChar && markerLen >= open.markerLen) {
|
|
29
|
+
const end = lineEnd;
|
|
30
|
+
spans.push({
|
|
31
|
+
start: open.start,
|
|
32
|
+
end,
|
|
33
|
+
openLine: open.openLine,
|
|
34
|
+
marker: open.marker,
|
|
35
|
+
indent: open.indent
|
|
36
|
+
});
|
|
37
|
+
open = void 0;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
if (nextNewline === -1) break;
|
|
41
|
+
offset = nextNewline + 1;
|
|
42
|
+
}
|
|
43
|
+
if (open) spans.push({
|
|
44
|
+
start: open.start,
|
|
45
|
+
end: buffer.length,
|
|
46
|
+
openLine: open.openLine,
|
|
47
|
+
marker: open.marker,
|
|
48
|
+
indent: open.indent
|
|
49
|
+
});
|
|
50
|
+
return spans;
|
|
51
|
+
}
|
|
52
|
+
function findFenceSpanAt(spans, index) {
|
|
53
|
+
return spans.find((span) => index > span.start && index < span.end);
|
|
54
|
+
}
|
|
55
|
+
function isSafeFenceBreak(spans, index) {
|
|
56
|
+
return !findFenceSpanAt(spans, index);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
//#endregion
|
|
60
|
+
//#region src/auto-reply/chunk.ts
|
|
61
|
+
const DEFAULT_CHUNK_LIMIT = 4e3;
|
|
62
|
+
const DEFAULT_CHUNK_MODE = "length";
|
|
63
|
+
function resolveChunkLimitForProvider(cfgSection, accountId) {
|
|
64
|
+
if (!cfgSection) return;
|
|
65
|
+
const normalizedAccountId = normalizeAccountId(accountId);
|
|
66
|
+
const accounts = cfgSection.accounts;
|
|
67
|
+
if (accounts && typeof accounts === "object") {
|
|
68
|
+
const direct = accounts[normalizedAccountId];
|
|
69
|
+
if (typeof direct?.textChunkLimit === "number") return direct.textChunkLimit;
|
|
70
|
+
const matchKey = Object.keys(accounts).find((key) => key.toLowerCase() === normalizedAccountId.toLowerCase());
|
|
71
|
+
const match = matchKey ? accounts[matchKey] : void 0;
|
|
72
|
+
if (typeof match?.textChunkLimit === "number") return match.textChunkLimit;
|
|
73
|
+
}
|
|
74
|
+
return cfgSection.textChunkLimit;
|
|
75
|
+
}
|
|
76
|
+
function resolveTextChunkLimit(cfg, provider, accountId, opts) {
|
|
77
|
+
const fallback = typeof opts?.fallbackLimit === "number" && opts.fallbackLimit > 0 ? opts.fallbackLimit : DEFAULT_CHUNK_LIMIT;
|
|
78
|
+
const providerOverride = (() => {
|
|
79
|
+
if (!provider || provider === INTERNAL_MESSAGE_CHANNEL) return;
|
|
80
|
+
return resolveChunkLimitForProvider((cfg?.channels)?.[provider] ?? cfg?.[provider], accountId);
|
|
81
|
+
})();
|
|
82
|
+
if (typeof providerOverride === "number" && providerOverride > 0) return providerOverride;
|
|
83
|
+
return fallback;
|
|
84
|
+
}
|
|
85
|
+
function resolveChunkModeForProvider(cfgSection, accountId) {
|
|
86
|
+
if (!cfgSection) return;
|
|
87
|
+
const normalizedAccountId = normalizeAccountId(accountId);
|
|
88
|
+
const accounts = cfgSection.accounts;
|
|
89
|
+
if (accounts && typeof accounts === "object") {
|
|
90
|
+
const direct = accounts[normalizedAccountId];
|
|
91
|
+
if (direct?.chunkMode) return direct.chunkMode;
|
|
92
|
+
const matchKey = Object.keys(accounts).find((key) => key.toLowerCase() === normalizedAccountId.toLowerCase());
|
|
93
|
+
const match = matchKey ? accounts[matchKey] : void 0;
|
|
94
|
+
if (match?.chunkMode) return match.chunkMode;
|
|
95
|
+
}
|
|
96
|
+
return cfgSection.chunkMode;
|
|
97
|
+
}
|
|
98
|
+
function resolveChunkMode(cfg, provider, accountId) {
|
|
99
|
+
if (!provider || provider === INTERNAL_MESSAGE_CHANNEL) return DEFAULT_CHUNK_MODE;
|
|
100
|
+
return resolveChunkModeForProvider((cfg?.channels)?.[provider] ?? cfg?.[provider], accountId) ?? DEFAULT_CHUNK_MODE;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Split text on newlines, trimming line whitespace.
|
|
104
|
+
* Blank lines are folded into the next non-empty line as leading "\n" prefixes.
|
|
105
|
+
* Long lines can be split by length (default) or kept intact via splitLongLines:false.
|
|
106
|
+
*/
|
|
107
|
+
function chunkByNewline(text, maxLineLength, opts) {
|
|
108
|
+
if (!text) return [];
|
|
109
|
+
if (maxLineLength <= 0) return text.trim() ? [text] : [];
|
|
110
|
+
const splitLongLines = opts?.splitLongLines !== false;
|
|
111
|
+
const trimLines = opts?.trimLines !== false;
|
|
112
|
+
const lines = splitByNewline(text, opts?.isSafeBreak);
|
|
113
|
+
const chunks = [];
|
|
114
|
+
let pendingBlankLines = 0;
|
|
115
|
+
for (const line of lines) {
|
|
116
|
+
const trimmed = line.trim();
|
|
117
|
+
if (!trimmed) {
|
|
118
|
+
pendingBlankLines += 1;
|
|
119
|
+
continue;
|
|
120
|
+
}
|
|
121
|
+
const maxPrefix = Math.max(0, maxLineLength - 1);
|
|
122
|
+
const cappedBlankLines = pendingBlankLines > 0 ? Math.min(pendingBlankLines, maxPrefix) : 0;
|
|
123
|
+
const prefix = cappedBlankLines > 0 ? "\n".repeat(cappedBlankLines) : "";
|
|
124
|
+
pendingBlankLines = 0;
|
|
125
|
+
const lineValue = trimLines ? trimmed : line;
|
|
126
|
+
if (!splitLongLines || lineValue.length + prefix.length <= maxLineLength) {
|
|
127
|
+
chunks.push(prefix + lineValue);
|
|
128
|
+
continue;
|
|
129
|
+
}
|
|
130
|
+
const firstLimit = Math.max(1, maxLineLength - prefix.length);
|
|
131
|
+
const first = lineValue.slice(0, firstLimit);
|
|
132
|
+
chunks.push(prefix + first);
|
|
133
|
+
const remaining = lineValue.slice(firstLimit);
|
|
134
|
+
if (remaining) chunks.push(...chunkText(remaining, maxLineLength));
|
|
135
|
+
}
|
|
136
|
+
if (pendingBlankLines > 0 && chunks.length > 0) chunks[chunks.length - 1] += "\n".repeat(pendingBlankLines);
|
|
137
|
+
return chunks;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Split text into chunks on paragraph boundaries (blank lines), preserving lists and
|
|
141
|
+
* single-newline line wraps inside paragraphs.
|
|
142
|
+
*
|
|
143
|
+
* - Only breaks at paragraph separators ("\n\n" or more, allowing whitespace on blank lines)
|
|
144
|
+
* - Packs multiple paragraphs into a single chunk up to `limit`
|
|
145
|
+
* - Falls back to length-based splitting when a single paragraph exceeds `limit`
|
|
146
|
+
* (unless `splitLongParagraphs` is disabled)
|
|
147
|
+
*/
|
|
148
|
+
function chunkByParagraph(text, limit, opts) {
|
|
149
|
+
if (!text) return [];
|
|
150
|
+
if (limit <= 0) return [text];
|
|
151
|
+
const splitLongParagraphs = opts?.splitLongParagraphs !== false;
|
|
152
|
+
const normalized = text.replace(/\r\n?/g, "\n");
|
|
153
|
+
if (!/\n[\t ]*\n+/.test(normalized)) {
|
|
154
|
+
if (normalized.length <= limit) return [normalized];
|
|
155
|
+
if (!splitLongParagraphs) return [normalized];
|
|
156
|
+
return chunkText(normalized, limit);
|
|
157
|
+
}
|
|
158
|
+
const spans = parseFenceSpans(normalized);
|
|
159
|
+
const parts = [];
|
|
160
|
+
const re = /\n[\t ]*\n+/g;
|
|
161
|
+
let lastIndex = 0;
|
|
162
|
+
for (const match of normalized.matchAll(re)) {
|
|
163
|
+
const idx = match.index ?? 0;
|
|
164
|
+
if (!isSafeFenceBreak(spans, idx)) continue;
|
|
165
|
+
parts.push(normalized.slice(lastIndex, idx));
|
|
166
|
+
lastIndex = idx + match[0].length;
|
|
167
|
+
}
|
|
168
|
+
parts.push(normalized.slice(lastIndex));
|
|
169
|
+
const chunks = [];
|
|
170
|
+
for (const part of parts) {
|
|
171
|
+
const paragraph = part.replace(/\s+$/g, "");
|
|
172
|
+
if (!paragraph.trim()) continue;
|
|
173
|
+
if (paragraph.length <= limit) chunks.push(paragraph);
|
|
174
|
+
else if (!splitLongParagraphs) chunks.push(paragraph);
|
|
175
|
+
else chunks.push(...chunkText(paragraph, limit));
|
|
176
|
+
}
|
|
177
|
+
return chunks;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Unified chunking function that dispatches based on mode.
|
|
181
|
+
*/
|
|
182
|
+
function chunkTextWithMode(text, limit, mode) {
|
|
183
|
+
if (mode === "newline") return chunkByParagraph(text, limit);
|
|
184
|
+
return chunkText(text, limit);
|
|
185
|
+
}
|
|
186
|
+
function chunkMarkdownTextWithMode(text, limit, mode) {
|
|
187
|
+
if (mode === "newline") {
|
|
188
|
+
const paragraphChunks = chunkByParagraph(text, limit, { splitLongParagraphs: false });
|
|
189
|
+
const out = [];
|
|
190
|
+
for (const chunk of paragraphChunks) {
|
|
191
|
+
const nested = chunkMarkdownText(chunk, limit);
|
|
192
|
+
if (!nested.length && chunk) out.push(chunk);
|
|
193
|
+
else out.push(...nested);
|
|
194
|
+
}
|
|
195
|
+
return out;
|
|
196
|
+
}
|
|
197
|
+
return chunkMarkdownText(text, limit);
|
|
198
|
+
}
|
|
199
|
+
function splitByNewline(text, isSafeBreak = () => true) {
|
|
200
|
+
const lines = [];
|
|
201
|
+
let start = 0;
|
|
202
|
+
for (let i = 0; i < text.length; i++) if (text[i] === "\n" && isSafeBreak(i)) {
|
|
203
|
+
lines.push(text.slice(start, i));
|
|
204
|
+
start = i + 1;
|
|
205
|
+
}
|
|
206
|
+
lines.push(text.slice(start));
|
|
207
|
+
return lines;
|
|
208
|
+
}
|
|
209
|
+
function chunkText(text, limit) {
|
|
210
|
+
if (!text) return [];
|
|
211
|
+
if (limit <= 0) return [text];
|
|
212
|
+
if (text.length <= limit) return [text];
|
|
213
|
+
const chunks = [];
|
|
214
|
+
let remaining = text;
|
|
215
|
+
while (remaining.length > limit) {
|
|
216
|
+
const { lastNewline, lastWhitespace } = scanParenAwareBreakpoints(remaining.slice(0, limit));
|
|
217
|
+
let breakIdx = lastNewline > 0 ? lastNewline : lastWhitespace;
|
|
218
|
+
if (breakIdx <= 0) breakIdx = limit;
|
|
219
|
+
const chunk = remaining.slice(0, breakIdx).trimEnd();
|
|
220
|
+
if (chunk.length > 0) chunks.push(chunk);
|
|
221
|
+
const brokeOnSeparator = breakIdx < remaining.length && /\s/.test(remaining[breakIdx]);
|
|
222
|
+
const nextStart = Math.min(remaining.length, breakIdx + (brokeOnSeparator ? 1 : 0));
|
|
223
|
+
remaining = remaining.slice(nextStart).trimStart();
|
|
224
|
+
}
|
|
225
|
+
if (remaining.length) chunks.push(remaining);
|
|
226
|
+
return chunks;
|
|
227
|
+
}
|
|
228
|
+
function chunkMarkdownText(text, limit) {
|
|
229
|
+
if (!text) return [];
|
|
230
|
+
if (limit <= 0) return [text];
|
|
231
|
+
if (text.length <= limit) return [text];
|
|
232
|
+
const chunks = [];
|
|
233
|
+
let remaining = text;
|
|
234
|
+
while (remaining.length > limit) {
|
|
235
|
+
const spans = parseFenceSpans(remaining);
|
|
236
|
+
const softBreak = pickSafeBreakIndex(remaining.slice(0, limit), spans);
|
|
237
|
+
let breakIdx = softBreak > 0 ? softBreak : limit;
|
|
238
|
+
const initialFence = isSafeFenceBreak(spans, breakIdx) ? void 0 : findFenceSpanAt(spans, breakIdx);
|
|
239
|
+
let fenceToSplit = initialFence;
|
|
240
|
+
if (initialFence) {
|
|
241
|
+
const closeLine = `${initialFence.indent}${initialFence.marker}`;
|
|
242
|
+
const maxIdxIfNeedNewline = limit - (closeLine.length + 1);
|
|
243
|
+
if (maxIdxIfNeedNewline <= 0) {
|
|
244
|
+
fenceToSplit = void 0;
|
|
245
|
+
breakIdx = limit;
|
|
246
|
+
} else {
|
|
247
|
+
const minProgressIdx = Math.min(remaining.length, initialFence.start + initialFence.openLine.length + 2);
|
|
248
|
+
const maxIdxIfAlreadyNewline = limit - closeLine.length;
|
|
249
|
+
let pickedNewline = false;
|
|
250
|
+
let lastNewline = remaining.lastIndexOf("\n", Math.max(0, maxIdxIfAlreadyNewline - 1));
|
|
251
|
+
while (lastNewline !== -1) {
|
|
252
|
+
const candidateBreak = lastNewline + 1;
|
|
253
|
+
if (candidateBreak < minProgressIdx) break;
|
|
254
|
+
const candidateFence = findFenceSpanAt(spans, candidateBreak);
|
|
255
|
+
if (candidateFence && candidateFence.start === initialFence.start) {
|
|
256
|
+
breakIdx = Math.max(1, candidateBreak);
|
|
257
|
+
pickedNewline = true;
|
|
258
|
+
break;
|
|
259
|
+
}
|
|
260
|
+
lastNewline = remaining.lastIndexOf("\n", lastNewline - 1);
|
|
261
|
+
}
|
|
262
|
+
if (!pickedNewline) if (minProgressIdx > maxIdxIfAlreadyNewline) {
|
|
263
|
+
fenceToSplit = void 0;
|
|
264
|
+
breakIdx = limit;
|
|
265
|
+
} else breakIdx = Math.max(minProgressIdx, maxIdxIfNeedNewline);
|
|
266
|
+
}
|
|
267
|
+
const fenceAtBreak = findFenceSpanAt(spans, breakIdx);
|
|
268
|
+
fenceToSplit = fenceAtBreak && fenceAtBreak.start === initialFence.start ? fenceAtBreak : void 0;
|
|
269
|
+
}
|
|
270
|
+
let rawChunk = remaining.slice(0, breakIdx);
|
|
271
|
+
if (!rawChunk) break;
|
|
272
|
+
const brokeOnSeparator = breakIdx < remaining.length && /\s/.test(remaining[breakIdx]);
|
|
273
|
+
const nextStart = Math.min(remaining.length, breakIdx + (brokeOnSeparator ? 1 : 0));
|
|
274
|
+
let next = remaining.slice(nextStart);
|
|
275
|
+
if (fenceToSplit) {
|
|
276
|
+
const closeLine = `${fenceToSplit.indent}${fenceToSplit.marker}`;
|
|
277
|
+
rawChunk = rawChunk.endsWith("\n") ? `${rawChunk}${closeLine}` : `${rawChunk}\n${closeLine}`;
|
|
278
|
+
next = `${fenceToSplit.openLine}\n${next}`;
|
|
279
|
+
} else next = stripLeadingNewlines(next);
|
|
280
|
+
chunks.push(rawChunk);
|
|
281
|
+
remaining = next;
|
|
282
|
+
}
|
|
283
|
+
if (remaining.length) chunks.push(remaining);
|
|
284
|
+
return chunks;
|
|
285
|
+
}
|
|
286
|
+
function stripLeadingNewlines(value) {
|
|
287
|
+
let i = 0;
|
|
288
|
+
while (i < value.length && value[i] === "\n") i++;
|
|
289
|
+
return i > 0 ? value.slice(i) : value;
|
|
290
|
+
}
|
|
291
|
+
function pickSafeBreakIndex(window, spans) {
|
|
292
|
+
const { lastNewline, lastWhitespace } = scanParenAwareBreakpoints(window, (index) => isSafeFenceBreak(spans, index));
|
|
293
|
+
if (lastNewline > 0) return lastNewline;
|
|
294
|
+
if (lastWhitespace > 0) return lastWhitespace;
|
|
295
|
+
return -1;
|
|
296
|
+
}
|
|
297
|
+
function scanParenAwareBreakpoints(window, isAllowed = () => true) {
|
|
298
|
+
let lastNewline = -1;
|
|
299
|
+
let lastWhitespace = -1;
|
|
300
|
+
let depth = 0;
|
|
301
|
+
for (let i = 0; i < window.length; i++) {
|
|
302
|
+
if (!isAllowed(i)) continue;
|
|
303
|
+
const char = window[i];
|
|
304
|
+
if (char === "(") {
|
|
305
|
+
depth += 1;
|
|
306
|
+
continue;
|
|
307
|
+
}
|
|
308
|
+
if (char === ")" && depth > 0) {
|
|
309
|
+
depth -= 1;
|
|
310
|
+
continue;
|
|
311
|
+
}
|
|
312
|
+
if (depth !== 0) continue;
|
|
313
|
+
if (char === "\n") lastNewline = i;
|
|
314
|
+
else if (/\s/.test(char)) lastWhitespace = i;
|
|
315
|
+
}
|
|
316
|
+
return {
|
|
317
|
+
lastNewline,
|
|
318
|
+
lastWhitespace
|
|
319
|
+
};
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
//#endregion
|
|
323
|
+
//#region src/config/markdown-tables.ts
|
|
324
|
+
const DEFAULT_TABLE_MODES = new Map([["signal", "bullets"], ["whatsapp", "bullets"]]);
|
|
325
|
+
const isMarkdownTableMode = (value) => value === "off" || value === "bullets" || value === "code";
|
|
326
|
+
function resolveMarkdownModeFromSection(section, accountId) {
|
|
327
|
+
if (!section) return;
|
|
328
|
+
const normalizedAccountId = normalizeAccountId(accountId);
|
|
329
|
+
const accounts = section.accounts;
|
|
330
|
+
if (accounts && typeof accounts === "object") {
|
|
331
|
+
const directMode = accounts[normalizedAccountId]?.markdown?.tables;
|
|
332
|
+
if (isMarkdownTableMode(directMode)) return directMode;
|
|
333
|
+
const matchKey = Object.keys(accounts).find((key) => key.toLowerCase() === normalizedAccountId.toLowerCase());
|
|
334
|
+
const matchMode = (matchKey ? accounts[matchKey] : void 0)?.markdown?.tables;
|
|
335
|
+
if (isMarkdownTableMode(matchMode)) return matchMode;
|
|
336
|
+
}
|
|
337
|
+
const sectionMode = section.markdown?.tables;
|
|
338
|
+
return isMarkdownTableMode(sectionMode) ? sectionMode : void 0;
|
|
339
|
+
}
|
|
340
|
+
function resolveMarkdownTableMode(params) {
|
|
341
|
+
const channel = normalizeChannelId(params.channel);
|
|
342
|
+
const defaultMode = channel ? DEFAULT_TABLE_MODES.get(channel) ?? "code" : "code";
|
|
343
|
+
if (!channel || !params.cfg) return defaultMode;
|
|
344
|
+
return resolveMarkdownModeFromSection(params.cfg.channels?.[channel] ?? params.cfg?.[channel], params.accountId) ?? defaultMode;
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
//#endregion
|
|
348
|
+
export { chunkMarkdownTextWithMode as a, resolveChunkMode as c, chunkMarkdownText as i, resolveTextChunkLimit as l, chunkByNewline as n, chunkText as o, chunkByParagraph as r, chunkTextWithMode as s, resolveMarkdownTableMode as t, parseFenceSpans as u };
|