squidclaw 3.0.13 → 3.0.14
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-PhtBJ8mA.js → accounts-BjEXPlGc.js} +1 -1
- package/dist/{accounts-Xp5W2xrR.js → accounts-CyBVeR-N.js} +1 -1
- package/dist/{accounts-BFC1okn9.js → accounts-D095MOmG.js} +7 -7
- package/dist/{acp-cli-Dt95OPXW.js → acp-cli-Dd2joFFS.js} +8 -8
- package/dist/{agent-scope-tUxfsPYq.js → agent-scope-C1XMay0T.js} +17 -17
- package/dist/{agents.config-DNPisWCH.js → agents.config-CRKsD30n.js} +2 -2
- package/dist/{api-key-rotation-Y59kKrr0.js → api-key-rotation-BcKKu9kK.js} +1 -1
- package/dist/{audio-preflight-DeBM0nTy.js → audio-preflight-g9rsstMv.js} +34 -34
- package/dist/{audio-transcription-runner-B7oPsr3U.js → audio-transcription-runner-Bnl3Ubjo.js} +23 -23
- package/dist/{audit-Bq3iosCf.js → audit-B4s_5Gn1.js} +29 -29
- package/dist/{auth-HYiP0mxx.js → auth-DHSeaNcB.js} +1 -1
- package/dist/{auth-choice-Du_pIfBh.js → auth-choice-C-7c5Td_.js} +13 -13
- package/dist/{auth-choice-CX8TDXmp.js → auth-choice-D7LiN5Ju.js} +11 -11
- package/dist/{auth-choice.apply-helpers-DRfHu1d8.js → auth-choice.apply-helpers-CxO2Wbq-.js} +1 -1
- package/dist/{auth-token-BQRI3c6e.js → auth-token-BxYYHBlc.js} +1 -1
- package/dist/{bonjour-discovery-BenDpM0y.js → bonjour-discovery-mtNewKSx.js} +1 -1
- package/dist/{browser-cli-Et8PyJjA.js → browser-cli-I1fzIVmS.js} +12 -12
- package/dist/build-info.json +2 -2
- package/dist/{call-DbkLm3eP.js → call-DkR5OGhh.js} +10 -10
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-account-context-C_WQRa6U.js → channel-account-context-e4ysObLI.js} +5 -5
- package/dist/{channel-activity-7kixHIgY.js → channel-activity-CCjlTlcN.js} +1 -1
- package/dist/{channel-options-D0TjqxeO.js → channel-options-BL5mHe-R.js} +3 -3
- package/dist/{channel-selection-BwbXcgj2.js → channel-selection-D_20zq3H.js} +1 -1
- package/dist/{channel-web-lfZ3VOOl.js → channel-web-C7Iij0H0.js} +16 -16
- package/dist/{channels-cli-Hr4vekE6.js → channels-cli-BMiEn81Y.js} +92 -92
- package/dist/{channels-status-issues-DeoqSoo-.js → channels-status-issues-N9kzQrD8.js} +1 -1
- package/dist/{chrome-gIqO4t7T.js → chrome-BNfSmFAM.js} +4 -4
- package/dist/{clawbot-cli-C-jGxnTq.js → clawbot-cli-B6-68gsT.js} +11 -11
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-BH62lCfL.js → cli-ByaubO_B.js} +72 -72
- package/dist/{client-CeaUCJtL.js → client-BURktNyH.js} +2 -2
- package/dist/{command-secret-targets-BF4WzaME.js → command-secret-targets-WwcPUFAf.js} +4 -4
- package/dist/{commands-CD6EMOiw.js → commands-CiY9HjRt.js} +1 -1
- package/dist/{commands-registry-DCUj1QOi.js → commands-registry-0bpX7A_Q.js} +3 -3
- package/dist/{completion-cli-BIY_jjYY.js → completion-cli-8PdK97J-.js} +12 -12
- package/dist/{config-cli-DvNViMXW.js → config-cli-ClomIMw7.js} +7 -7
- package/dist/{config-guard-DwgnWjmj.js → config-guard-rLrk7eSS.js} +16 -16
- package/dist/{config-validation-CcqZ--gE.js → config-validation-BQEaXMk7.js} +3 -3
- package/dist/{configure-B5Zuhebc.js → configure-CoXGul3l.js} +17 -17
- package/dist/{control-ui-assets-x69xyZH-.js → control-ui-assets-Bz7TCLpb.js} +1 -1
- package/dist/{cron-cli-Bv-X4msQ.js → cron-cli-C3iKBccc.js} +11 -11
- package/dist/{daemon-cli-B-8-rGND.js → daemon-cli-BVcrlw5o.js} +15 -15
- package/dist/{daemon-install-2y4HHhYl.js → daemon-install-CXDWHEEO.js} +4 -4
- package/dist/{daemon-install-helpers-Cdo6Pryw.js → daemon-install-helpers-a4pGEsbA.js} +11 -11
- package/dist/{deliver-CVl43oM1.js → deliver-B1sllFkh.js} +7 -7
- package/dist/deliver-runtime-CaV7seKv.js +61 -0
- package/dist/deps-send-discord.runtime-DbS5pxta.js +36 -0
- package/dist/deps-send-imessage.runtime-Ji753_F7.js +35 -0
- package/dist/deps-send-signal.runtime-DLJqvPLf.js +34 -0
- package/dist/deps-send-slack.runtime-DrFxeZ1I.js +32 -0
- package/dist/{deps-send-telegram.runtime-C9lz8bf0.js → deps-send-telegram.runtime-CF-Ylrvr.js} +16 -16
- package/dist/deps-send-whatsapp.runtime-BOE0Ke6v.js +118 -0
- package/dist/{devices-cli-BT8K0hdG.js → devices-cli-Dn_norz3.js} +8 -8
- package/dist/{diagnostic-5bqrhGEp.js → diagnostic-CNl71AzW.js} +1 -1
- package/dist/{diagnostics-C0CazfQM.js → diagnostics-DZ99A0EW.js} +5 -5
- package/dist/{directory-cli-BZcT9ie1.js → directory-cli-ZzwXkW89.js} +7 -7
- package/dist/{dns-cli-CPYaeASu.js → dns-cli-DipYQjtY.js} +5 -5
- package/dist/{dock-CVTqzMqE.js → dock-C7N1CmcP.js} +4 -4
- package/dist/{docs-cli-C50vGyDh.js → docs-cli-C-Izm9Tb.js} +4 -4
- package/dist/{doctor-completion-Emprau8v.js → doctor-completion-CGmYWy0n.js} +2 -2
- package/dist/{doctor-config-flow-DSA-JE3n.js → doctor-config-flow-DDWA3Z2D.js} +15 -15
- package/dist/{enable-CAYj5OhY.js → enable-RJyJVP_B.js} +1 -1
- package/dist/{exec-approvals-allowlist-BO4EEQUI.js → exec-approvals-allowlist-Bu_oaDJC.js} +1 -1
- package/dist/{exec-approvals-cli-DSOHdWJR.js → exec-approvals-cli-Csducy9L.js} +16 -16
- package/dist/{exec-safe-bin-runtime-policy-CSnpe1AT.js → exec-safe-bin-runtime-policy-DRQwt8kj.js} +2 -2
- package/dist/{fetch-guard-VcWeni3c.js → fetch-guard-DNykKlIv.js} +1 -1
- package/dist/{fs-safe-CjHYKGbt.js → fs-safe-CKHYu4Vz.js} +24 -24
- package/dist/{gateway-cli-B2fScwuY.js → gateway-cli-CUph5Eqo.js} +152 -152
- package/dist/{gateway-rpc-DpqZnhyz.js → gateway-rpc-DoKw40aG.js} +1 -1
- package/dist/{health-BZcB9SMe.js → health-Cia3g9r1.js} +11 -11
- package/dist/{hooks-cli-BylHgZ52.js → hooks-cli-LDbU3XMU.js} +80 -80
- package/dist/{hooks-status-DqGd74DG.js → hooks-status-Dd_iWcBZ.js} +1 -1
- package/dist/{image-CulZw1up.js → image-D2a7rcK1.js} +5 -5
- package/dist/{image-ops-BpsIdA2j.js → image-ops-BIWika4g.js} +10 -10
- package/dist/image-runtime-DTxVPe7Z.js +55 -0
- package/dist/index.js +82 -82
- package/dist/{inspect-D5T8Bbzl.js → inspect-C3PHuODr.js} +4 -4
- package/dist/{install-safe-path-BoN-MLvX.js → install-safe-path-iCmVuopp.js} +25 -25
- package/dist/{installs-CPHMcmNj.js → installs-CyjlehlR.js} +9 -9
- package/dist/{ipv4-Bwl9ruCP.js → ipv4-CWVOQw5T.js} +1 -1
- package/dist/{ir-xnftdkOo.js → ir-BPM7rQYq.js} +8 -8
- package/dist/{issue-format-8t_ncgFx.js → issue-format-sA05c-6t.js} +1 -1
- package/dist/{json-files-DIEpaxUj.js → json-files-D6M304Qd.js} +8 -8
- package/dist/{lifecycle-core-DKiBjZdv.js → lifecycle-core-DsfZ6965.js} +5 -5
- package/dist/{local-roots-BrxGyJnb.js → local-roots-CMxJ8L4w.js} +3 -3
- package/dist/{login-CxDYXbgx.js → login-BjtBaVVG.js} +3 -3
- package/dist/{login-qr-zf4B1lpU.js → login-qr-JfRlpd7I.js} +6 -6
- package/dist/{logs-cli-CJAe1_dv.js → logs-cli-gv2Ql7GE.js} +9 -9
- package/dist/{manager-DBgRFvYb.js → manager-XeZQ6ws7.js} +14 -14
- package/dist/{manager-runtime-Dl31cGh-.js → manager-runtime-BvGqzQIY.js} +9 -9
- package/dist/{manifest-registry-Cx3mB9zS.js → manifest-registry-BaUPjNKb.js} +1 -1
- package/dist/{memory-cli-Bhoc-n_1.js → memory-cli-BUJHSsW6.js} +12 -12
- package/dist/{model-DYzjrxpA.js → model-Jy6fO59G.js} +2 -2
- package/dist/{model-catalog-kpDOW8eY.js → model-catalog-BfoWgIDd.js} +3 -3
- package/dist/{model-picker-BZwK54QT.js → model-picker-CxmHVCE1.js} +4 -4
- package/dist/{model-selection-ZV3PuYVR.js → model-selection-QgM_TOjC.js} +16 -16
- package/dist/{models-cli-BIxlIOFr.js → models-cli-DlbNL6it.js} +81 -81
- package/dist/{models-config-BLdDYoxi.js → models-config-DOD5jluc.js} +6 -6
- package/dist/{node-cli-6uYJccbd.js → node-cli-uJ5lFzxj.js} +33 -33
- package/dist/{node-command-policy-CKTXVa3D.js → node-command-policy-CwVo8Z1X.js} +1 -1
- package/dist/{node-service-DGPVb5ri.js → node-service-xGYkt3vb.js} +1 -1
- package/dist/{nodes-cli-CXLRfAYx.js → nodes-cli-eauCMbSr.js} +16 -16
- package/dist/{nodes-screen-C-tuRhA1.js → nodes-screen-iR_FzGNs.js} +7 -7
- package/dist/{npm-pack-install-DgSn7djE.js → npm-pack-install-s-mP9K0z.js} +18 -18
- package/dist/{npm-resolution-gw3vFNTB.js → npm-resolution-Ck7yFIM2.js} +4 -4
- package/dist/{onboard-CCaYDSO2.js → onboard-aISMp4Kt.js} +6 -6
- package/dist/{onboard-channels-DQnP5d3Y.js → onboard-channels-CELkEQUS.js} +21 -21
- package/dist/{onboard-custom-CJohrPzT.js → onboard-custom-BmAzWYbD.js} +4 -4
- package/dist/{onboard-helpers-Bcs_1b81.js → onboard-helpers-DRk4Y5uA.js} +10 -10
- package/dist/{onboard-hooks-A23nqe_3.js → onboard-hooks-lk1sMnDf.js} +4 -4
- package/dist/{onboard-remote-Hf9sTDHl.js → onboard-remote-Bj9cR8kF.js} +4 -4
- package/dist/{onboard-skills-Cpc8o6sG.js → onboard-skills-eRpyQ1la.js} +4 -4
- package/dist/{onboarding-wx00blu5.js → onboarding-Bl4RDn6W.js} +14 -14
- package/dist/{onboarding.finalize-B8wqvggG.js → onboarding.finalize-Bm7_INHb.js} +85 -85
- package/dist/{onboarding.gateway-config-CvWq5i_X.js → onboarding.gateway-config-BPyk6gwr.js} +18 -18
- package/dist/{onboarding.secret-input-CIN4p8mg.js → onboarding.secret-input-DlDt-I2O.js} +1 -1
- package/dist/{openai-model-default-BYfJa19m.js → openai-model-default-DnYP1Em1.js} +2 -2
- package/dist/{outbound-B3RZI-ai.js → outbound-BQtnr_z2.js} +3 -3
- package/dist/{outbound-attachment-BATDqOuj.js → outbound-attachment-WnXMTJC4.js} +2 -2
- package/dist/{pairing-cli-FMIw0yL6.js → pairing-cli-BsU-YnVT.js} +8 -8
- package/dist/{pairing-labels-MH31IXn_.js → pairing-labels-BXfoinTP.js} +1 -1
- package/dist/{pairing-store-KII9MIZX.js → pairing-store-C1FvWpDK.js} +3 -3
- package/dist/{path-alias-guards-B7H6jIIw.js → path-alias-guards-CCRXJArp.js} +3 -3
- package/dist/{path-safety-3wUzDqI9.js → path-safety-BWiXz6D4.js} +1 -1
- package/dist/{paths-BguvT84s.js → paths-Bg6h1q3v.js} +9 -9
- package/dist/{pi-embedded-helpers-D8WkqLZt.js → pi-embedded-helpers-DctimJJI.js} +6 -6
- package/dist/{pi-model-discovery-Bfyzj3Lq.js → pi-model-discovery-D63dINOn.js} +1 -1
- package/dist/{pi-model-discovery-runtime-nh-zh_Bp.js → pi-model-discovery-runtime-CcXGQcru.js} +5 -5
- package/dist/{pi-tools.before-tool-call.runtime-D4V6gUzq.js → pi-tools.before-tool-call.runtime-BMb_b90y.js} +5 -5
- package/dist/{pi-tools.policy-DCE9mhtw.js → pi-tools.policy-CXvZtJB7.js} +5 -5
- package/dist/{plugin-auto-enable-BJw5Rcbx.js → plugin-auto-enable-DMABTEO-.js} +3 -3
- package/dist/{plugin-registry-V0H8DaZf.js → plugin-registry-BSlUIHKX.js} +3 -3
- package/dist/plugin-sdk/accounts-B6gye1Jd.js +46 -0
- package/dist/plugin-sdk/accounts-C-BT6Po7.js +288 -0
- package/dist/plugin-sdk/accounts-DQDXV8eB.js +35 -0
- package/dist/plugin-sdk/active-listener-DZCohPuZ.js +50 -0
- package/dist/plugin-sdk/api-key-rotation-CrX0fvDj.js +181 -0
- package/dist/plugin-sdk/audio-preflight-xnWAFqH-.js +69 -0
- package/dist/plugin-sdk/audio-transcription-runner-BDmtq7-q.js +2176 -0
- package/dist/plugin-sdk/audit-membership-runtime-B9b-zRwg.js +58 -0
- package/dist/plugin-sdk/channel-activity-JjLRpUa_.js +94 -0
- package/dist/plugin-sdk/channel-web-DNWsxhYh.js +2256 -0
- package/dist/plugin-sdk/chrome-B5PWOUbr.js +2415 -0
- package/dist/plugin-sdk/commands-registry-BKeyJUxK.js +1125 -0
- package/dist/plugin-sdk/config-FhBFLsNm.js +17911 -0
- package/dist/plugin-sdk/deliver-DEbTlzFy.js +1694 -0
- package/dist/plugin-sdk/deliver-runtime-CO2uP-r9.js +32 -0
- package/dist/plugin-sdk/deps-send-discord.runtime-DIPW0tR4.js +23 -0
- package/dist/plugin-sdk/deps-send-imessage.runtime-ByGjRa1H.js +22 -0
- package/dist/plugin-sdk/deps-send-signal.runtime-Ca1awu4L.js +21 -0
- package/dist/plugin-sdk/deps-send-slack.runtime-CRzWCVkC.js +19 -0
- package/dist/plugin-sdk/deps-send-telegram.runtime-BWyavKp9.js +24 -0
- package/dist/plugin-sdk/deps-send-whatsapp.runtime-cC_XvHV8.js +57 -0
- package/dist/plugin-sdk/diagnostic-Dv9S12vm.js +319 -0
- package/dist/plugin-sdk/errors-B8oJXuCF.js +54 -0
- package/dist/plugin-sdk/fetch-guard-W_A4uSz2.js +156 -0
- package/dist/plugin-sdk/fs-safe-Dqmpk-Fr.js +352 -0
- package/dist/plugin-sdk/image-BSFy8d1M.js +2310 -0
- package/dist/plugin-sdk/image-ops-DN17S88I.js +584 -0
- package/dist/plugin-sdk/image-runtime-5YO31sjU.js +25 -0
- package/dist/plugin-sdk/imessage.js +2 -2
- package/dist/plugin-sdk/index.js +50 -50
- package/dist/plugin-sdk/ir-JaPZ0yKH.js +1296 -0
- package/dist/plugin-sdk/local-roots-BTW3ifco.js +186 -0
- package/dist/plugin-sdk/logger-DDdrdbDu.js +1163 -0
- package/dist/plugin-sdk/login-BXGRny-S.js +57 -0
- package/dist/plugin-sdk/login-qr-DTs92ap8.js +320 -0
- package/dist/plugin-sdk/manager-DzFj9oHX.js +3917 -0
- package/dist/plugin-sdk/manager-runtime-DrpyZvO0.js +15 -0
- package/dist/plugin-sdk/mattermost.js +3 -3
- package/dist/plugin-sdk/outbound-CQ7uBBML.js +212 -0
- package/dist/plugin-sdk/outbound-attachment-dTE6EVdX.js +19 -0
- package/dist/plugin-sdk/path-alias-guards-gBhrAn14.js +43 -0
- package/dist/plugin-sdk/paths-C6W4VHoa.js +166 -0
- package/dist/plugin-sdk/pi-embedded-helpers-CfzQPXDC.js +9627 -0
- package/dist/plugin-sdk/pi-model-discovery-Bt6B0MAj.js +134 -0
- package/dist/plugin-sdk/pi-model-discovery-runtime-BcgXpTmL.js +8 -0
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-DYJQxhuo.js +354 -0
- package/dist/plugin-sdk/plugins-6NxPd6TS.js +864 -0
- package/dist/plugin-sdk/proxy-fetch-ZPEvp58f.js +38 -0
- package/dist/plugin-sdk/pw-ai-BFK39pwE.js +1938 -0
- package/dist/plugin-sdk/qmd-manager-6bozlfFg.js +1448 -0
- package/dist/plugin-sdk/query-expansion-eeVz_aEm.js +1011 -0
- package/dist/plugin-sdk/redact-BoNEjbpF.js +319 -0
- package/dist/plugin-sdk/reply-DgcrQBKL.js +98828 -0
- package/dist/plugin-sdk/resolve-outbound-target-CbaJ-kc2.js +40 -0
- package/dist/plugin-sdk/run-with-concurrency-5DMu9szx.js +1994 -0
- package/dist/plugin-sdk/runtime-whatsapp-login.runtime-jkgyeVsN.js +10 -0
- package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-DdLJJ1YC.js +19 -0
- package/dist/plugin-sdk/send-BSoMbeqA.js +3135 -0
- package/dist/plugin-sdk/send-Byyfc20_.js +503 -0
- package/dist/plugin-sdk/send-CI-xWEs7.js +2587 -0
- package/dist/plugin-sdk/send-DzP9EJqK.js +540 -0
- package/dist/plugin-sdk/send-MlSZ82sA.js +414 -0
- package/dist/plugin-sdk/session-DFy97tfW.js +169 -0
- package/dist/plugin-sdk/signal.js +2 -2
- package/dist/plugin-sdk/skill-commands-yum46YuA.js +342 -0
- package/dist/plugin-sdk/skills-DUphJGKn.js +1428 -0
- package/dist/plugin-sdk/slash-commands.runtime-5UW5KLyR.js +13 -0
- package/dist/plugin-sdk/slash-dispatch.runtime-4oQ2P_qo.js +52 -0
- package/dist/plugin-sdk/slash-skill-commands.runtime-y_mOLyS7.js +16 -0
- package/dist/plugin-sdk/ssrf-B3XRWBsP.js +202 -0
- package/dist/plugin-sdk/store-DFvIhzWZ.js +81 -0
- package/dist/plugin-sdk/subagent-registry-runtime-DtKXhKtl.js +52 -0
- package/dist/plugin-sdk/tables-bDM_jlLP.js +55 -0
- package/dist/{target-errors-DlzVutaL.js → plugin-sdk/target-errors-BVBW25Y3.js} +4 -4
- package/dist/plugin-sdk/thinking-Bu-w5mW5.js +1206 -0
- package/dist/plugin-sdk/tokens-CTIYTLWu.js +52 -0
- package/dist/plugin-sdk/tool-images-D0G_giwP.js +274 -0
- package/dist/plugin-sdk/web-DSXk7XCb.js +56 -0
- package/dist/plugin-sdk/whatsapp-actions-BOyA0Uuj.js +80 -0
- package/dist/{plugins-Cl_3OCyK.js → plugins-H53_4Gxb.js} +2 -2
- package/dist/{plugins-cli-CN2fty5U.js → plugins-cli-CQkxWdnt.js} +82 -82
- package/dist/{ports-Bop51hz6.js → ports-CKXuQJST.js} +2 -2
- package/dist/{ports-6i8smH3e.js → ports-CXjhFS7T.js} +1 -1
- package/dist/{program-context-ehHvCw9L.js → program-context-tphS7xu7.js} +41 -41
- package/dist/{prompt-select-styled-CSMviLJY.js → prompt-select-styled-DL2p1pfi.js} +40 -40
- package/dist/{provider-auth-helpers-CgNWlsqs.js → provider-auth-helpers-BqWiy-r-.js} +5 -5
- package/dist/{proxy-env-CRD7fbqp.js → proxy-env-D1tz4Z6a.js} +1 -1
- package/dist/{push-apns-DoYzx3tH.js → push-apns-C-YdARdy.js} +5 -5
- package/dist/{pw-ai-yKJj32B4.js → pw-ai-SVeR5d2o.js} +18 -18
- package/dist/{qmd-manager-AYDUTXmc.js → qmd-manager-B-XXhWVw.js} +20 -20
- package/dist/{qr-cli-cikAHfYn.js → qr-cli-B4fjHvn1.js} +2 -2
- package/dist/{query-expansion-CV2Z4_mS.js → query-expansion-Bf60ekMj.js} +12 -12
- package/dist/{redact-snapshot-C9T1079O.js → redact-snapshot-DRqM8Vla.js} +1 -1
- package/dist/{register.agent-BlxoyQt0.js → register.agent-BdiM0qkl.js} +97 -97
- package/dist/register.configure-wANXDbzQ.js +164 -0
- package/dist/{register.maintenance-C-Yv2mHK.js → register.maintenance-CMAt3Nl8.js} +93 -93
- package/dist/{register.message-CUNXtFOj.js → register.message-CbxQ5lgi.js} +73 -73
- package/dist/{register.onboard-BKXm1mL7.js → register.onboard-CbiTdKQX.js} +18 -18
- package/dist/{register.setup-DaT9AIAz.js → register.setup-KhsHMx2v.js} +21 -21
- package/dist/{register.status-health-sessions-7yZmSvUL.js → register.status-health-sessions-Bw5YDa_s.js} +86 -86
- package/dist/{reply-CeUYZhWu.js → reply-BWXzPVSJ.js} +149 -149
- package/dist/{rpc-BDpuIniF.js → rpc-DlN_W_L1.js} +1 -1
- package/dist/{runtime-Dw7Yw4OJ.js → runtime-Ci7mtLvH.js} +3 -3
- package/dist/{runtime-config-collectors-jhc1wDBg.js → runtime-config-collectors-CKmGmTQ5.js} +1 -1
- package/dist/{runtime-whatsapp-login.runtime-f293Z_er.js → runtime-whatsapp-login.runtime-Bxqt5jiO.js} +7 -7
- package/dist/runtime-whatsapp-outbound.runtime-B-UsXwvb.js +32 -0
- package/dist/{sandbox-BgsD1lf7.js → sandbox-Cuk1IWYT.js} +18 -18
- package/dist/{sandbox-cli-BnvmhiN9.js → sandbox-cli-BxgFeoAD.js} +25 -25
- package/dist/{secrets-cli-D7-K7P82.js → secrets-cli-DODLX29x.js} +11 -11
- package/dist/{security-cli-BFJAgNYH.js → security-cli-Ch83VrLP.js} +42 -42
- package/dist/{send-BvlkshC1.js → send-BfVgGHK6.js} +6 -6
- package/dist/{send-tK0H9nwq.js → send-Bw8LNCit.js} +5 -5
- package/dist/{send-CDms2FQA.js → send-C9UJKBSM.js} +4 -4
- package/dist/{send-CPFNtAP8.js → send-DX_fR45p.js} +11 -11
- package/dist/{send-C3Aeswif.js → send-FTQaNJPj.js} +8 -8
- package/dist/{server-OfKJG6Bo.js → server-Q9nnn04D.js} +20 -20
- package/dist/{server-context-B-0KzcZE.js → server-context-CX28l04l.js} +12 -12
- package/dist/{server-lifecycle-D6VNKVvQ.js → server-lifecycle-yAUMTJhv.js} +2 -2
- package/dist/{server-middleware-7cXowO4W.js → server-middleware-DIc4WJOS.js} +1 -1
- package/dist/{server-node-events-DWQhNK-0.js → server-node-events-qU3NTncQ.js} +73 -73
- package/dist/{service-Dk-UMipf.js → service-D4y0_Q5Z.js} +15 -15
- package/dist/{session-Da18ilJ0.js → session-CZJ5Ux6-.js} +1 -1
- package/dist/{sessions-CmjcNTJ3.js → sessions-C5H_BZSr.js} +15 -15
- package/dist/{shared-BzY0v0tS.js → shared-CxdBWgym.js} +3 -3
- package/dist/{shared-BcB-feC8.js → shared-DwNtcoQg.js} +1 -1
- package/dist/{skill-commands-BEWkEml_.js → skill-commands-BSRPnzXp.js} +5 -5
- package/dist/{skill-scanner-Bb5SMbCz.js → skill-scanner-rdr9cQew.js} +6 -6
- package/dist/{skills-Rnr7zPen.js → skills-BnBOxX1c.js} +3 -3
- package/dist/{skills-cli-BowIIIzH.js → skills-cli-CUgeYV1y.js} +5 -5
- package/dist/{skills-install-BLNCKuex.js → skills-install-BE04CZ6e.js} +6 -6
- package/dist/{skills-status-BCU-5otB.js → skills-status-DQw98BkG.js} +1 -1
- package/dist/{slash-commands.runtime-BgVgQ-Eh.js → slash-commands.runtime-BPtL2Qev.js} +11 -11
- package/dist/slash-dispatch.runtime-Cf9dq1k6.js +113 -0
- package/dist/{slash-skill-commands.runtime-4dOiU6U0.js → slash-skill-commands.runtime-9BYoANpd.js} +15 -15
- package/dist/{squidclaw-root-BcB7vo9M.js → squidclaw-root-CnE19yKj.js} +8 -8
- package/dist/{status-COTRBaam.js → status-rb5Jz-VU.js} +26 -26
- package/dist/{status.update-BUql4yz-.js → status.update-BNODJGA9.js} +2 -2
- package/dist/{store-aa15VM42.js → store-PDMRmC5Z.js} +5 -5
- package/dist/subagent-registry-runtime-CTiA365B.js +113 -0
- package/dist/{system-cli-CgCUbH_M.js → system-cli-DJYyTO07.js} +9 -9
- package/dist/{system-run-command-Ny1SbbOD.js → system-run-command-BgnCyvrj.js} +1 -1
- package/dist/{systemd-zbKl2Q3E.js → systemd-fP8tz4aL.js} +9 -9
- package/dist/{systemd-hints-C9_7ouv7.js → systemd-hints-BG_t__ZD.js} +6 -6
- package/dist/{systemd-linger-BM6JyzAr.js → systemd-linger-DgK8uuKY.js} +1 -1
- package/dist/{tables-jZMI8hLl.js → tables-DUSFF9-W.js} +1 -1
- package/dist/{tailnet-gTCqUBfJ.js → tailnet-CLkKVwDq.js} +1 -1
- package/dist/target-errors-BxwxgIDk.js +195 -0
- package/dist/{tool-images-DTl_LHMa.js → tool-images-FhSCiY-o.js} +1 -1
- package/dist/{tui-kDK-MAOc.js → tui-BMOMT-ma.js} +6 -6
- package/dist/{tui-cli-Dxy6fKkU.js → tui-cli-kqZ_-2Mz.js} +32 -32
- package/dist/{update-ZUTn6Jsu.js → update-blK9j2ag.js} +3 -3
- package/dist/{update-cli-D_QEiKyz.js → update-cli-gLKrP8UQ.js} +102 -102
- package/dist/{update-runner-DOXPSA_-.js → update-runner-C2UrF4oZ.js} +16 -16
- package/dist/web-VmjeceHS.js +117 -0
- package/dist/{webhooks-cli-D1iehjkP.js → webhooks-cli-BEXPBILa.js} +6 -6
- package/dist/{whatsapp-actions-hN5bwjWU.js → whatsapp-actions-DhiV181U.js} +17 -17
- package/dist/{with-timeout-BjaANd4G.js → with-timeout-BCAfkt03.js} +3 -3
- package/dist/{workspace-BITWyKG4.js → workspace-B-k5DNiQ.js} +1 -1
- package/dist/{workspace-dirs-B7O9BAHp.js → workspace-dirs-B2dNahfe.js} +1 -1
- package/dist/{ws-Bx8lpC1N.js → ws-DKt5HoA5.js} +2 -2
- package/dist/{wsl-wYxPJ8EO.js → wsl-CgxzAzRe.js} +2 -2
- package/package.json +1 -1
- package/dist/deliver-runtime-uwleBPlq.js +0 -61
- package/dist/deps-send-discord.runtime-CuZGpA7H.js +0 -36
- package/dist/deps-send-imessage.runtime-ByVW2alP.js +0 -35
- package/dist/deps-send-signal.runtime-Dl4GaCbQ.js +0 -34
- package/dist/deps-send-slack.runtime-BEV10FHj.js +0 -32
- package/dist/deps-send-whatsapp.runtime-Di0SEPNK.js +0 -118
- package/dist/image-runtime-B5Q4J9w2.js +0 -55
- package/dist/register.configure-CGptmTVZ.js +0 -164
- package/dist/runtime-whatsapp-outbound.runtime-uDhEmWe1.js +0 -32
- package/dist/slash-dispatch.runtime-D83FVeU7.js +0 -113
- package/dist/subagent-registry-runtime-CrT5RSO9.js +0 -113
- package/dist/web-DtSq_aUB.js +0 -117
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
import { J as resolveNodeRequireFromMeta } from "./logger-DDdrdbDu.js";
|
|
2
|
+
|
|
3
|
+
//#region src/security/safe-regex.ts
|
|
4
|
+
const SAFE_REGEX_CACHE_MAX = 256;
|
|
5
|
+
const SAFE_REGEX_TEST_WINDOW = 2048;
|
|
6
|
+
const safeRegexCache = /* @__PURE__ */ new Map();
|
|
7
|
+
function createParseFrame() {
|
|
8
|
+
return {
|
|
9
|
+
lastToken: null,
|
|
10
|
+
containsRepetition: false,
|
|
11
|
+
hasAlternation: false,
|
|
12
|
+
branchMinLength: 0,
|
|
13
|
+
branchMaxLength: 0,
|
|
14
|
+
altMinLength: null,
|
|
15
|
+
altMaxLength: null
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
function addLength(left, right) {
|
|
19
|
+
if (!Number.isFinite(left) || !Number.isFinite(right)) return Number.POSITIVE_INFINITY;
|
|
20
|
+
return left + right;
|
|
21
|
+
}
|
|
22
|
+
function multiplyLength(length, factor) {
|
|
23
|
+
if (!Number.isFinite(length)) return factor === 0 ? 0 : Number.POSITIVE_INFINITY;
|
|
24
|
+
return length * factor;
|
|
25
|
+
}
|
|
26
|
+
function recordAlternative(frame) {
|
|
27
|
+
if (frame.altMinLength === null || frame.altMaxLength === null) {
|
|
28
|
+
frame.altMinLength = frame.branchMinLength;
|
|
29
|
+
frame.altMaxLength = frame.branchMaxLength;
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
frame.altMinLength = Math.min(frame.altMinLength, frame.branchMinLength);
|
|
33
|
+
frame.altMaxLength = Math.max(frame.altMaxLength, frame.branchMaxLength);
|
|
34
|
+
}
|
|
35
|
+
function readQuantifier(source, index) {
|
|
36
|
+
const ch = source[index];
|
|
37
|
+
const consumed = source[index + 1] === "?" ? 2 : 1;
|
|
38
|
+
if (ch === "*") return {
|
|
39
|
+
consumed,
|
|
40
|
+
minRepeat: 0,
|
|
41
|
+
maxRepeat: null
|
|
42
|
+
};
|
|
43
|
+
if (ch === "+") return {
|
|
44
|
+
consumed,
|
|
45
|
+
minRepeat: 1,
|
|
46
|
+
maxRepeat: null
|
|
47
|
+
};
|
|
48
|
+
if (ch === "?") return {
|
|
49
|
+
consumed,
|
|
50
|
+
minRepeat: 0,
|
|
51
|
+
maxRepeat: 1
|
|
52
|
+
};
|
|
53
|
+
if (ch !== "{") return null;
|
|
54
|
+
let i = index + 1;
|
|
55
|
+
while (i < source.length && /\d/.test(source[i])) i += 1;
|
|
56
|
+
if (i === index + 1) return null;
|
|
57
|
+
const minRepeat = Number.parseInt(source.slice(index + 1, i), 10);
|
|
58
|
+
let maxRepeat = minRepeat;
|
|
59
|
+
if (source[i] === ",") {
|
|
60
|
+
i += 1;
|
|
61
|
+
const maxStart = i;
|
|
62
|
+
while (i < source.length && /\d/.test(source[i])) i += 1;
|
|
63
|
+
maxRepeat = i === maxStart ? null : Number.parseInt(source.slice(maxStart, i), 10);
|
|
64
|
+
}
|
|
65
|
+
if (source[i] !== "}") return null;
|
|
66
|
+
i += 1;
|
|
67
|
+
if (source[i] === "?") i += 1;
|
|
68
|
+
if (maxRepeat !== null && maxRepeat < minRepeat) return null;
|
|
69
|
+
return {
|
|
70
|
+
consumed: i - index,
|
|
71
|
+
minRepeat,
|
|
72
|
+
maxRepeat
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
function tokenizePattern(source) {
|
|
76
|
+
const tokens = [];
|
|
77
|
+
let inCharClass = false;
|
|
78
|
+
for (let i = 0; i < source.length; i += 1) {
|
|
79
|
+
const ch = source[i];
|
|
80
|
+
if (ch === "\\") {
|
|
81
|
+
i += 1;
|
|
82
|
+
tokens.push({ kind: "simple-token" });
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
if (inCharClass) {
|
|
86
|
+
if (ch === "]") inCharClass = false;
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
if (ch === "[") {
|
|
90
|
+
inCharClass = true;
|
|
91
|
+
tokens.push({ kind: "simple-token" });
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
if (ch === "(") {
|
|
95
|
+
tokens.push({ kind: "group-open" });
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
if (ch === ")") {
|
|
99
|
+
tokens.push({ kind: "group-close" });
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
if (ch === "|") {
|
|
103
|
+
tokens.push({ kind: "alternation" });
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
const quantifier = readQuantifier(source, i);
|
|
107
|
+
if (quantifier) {
|
|
108
|
+
tokens.push({
|
|
109
|
+
kind: "quantifier",
|
|
110
|
+
quantifier
|
|
111
|
+
});
|
|
112
|
+
i += quantifier.consumed - 1;
|
|
113
|
+
continue;
|
|
114
|
+
}
|
|
115
|
+
tokens.push({ kind: "simple-token" });
|
|
116
|
+
}
|
|
117
|
+
return tokens;
|
|
118
|
+
}
|
|
119
|
+
function analyzeTokensForNestedRepetition(tokens) {
|
|
120
|
+
const frames = [createParseFrame()];
|
|
121
|
+
const emitToken = (token) => {
|
|
122
|
+
const frame = frames[frames.length - 1];
|
|
123
|
+
frame.lastToken = token;
|
|
124
|
+
if (token.containsRepetition) frame.containsRepetition = true;
|
|
125
|
+
frame.branchMinLength = addLength(frame.branchMinLength, token.minLength);
|
|
126
|
+
frame.branchMaxLength = addLength(frame.branchMaxLength, token.maxLength);
|
|
127
|
+
};
|
|
128
|
+
const emitSimpleToken = () => {
|
|
129
|
+
emitToken({
|
|
130
|
+
containsRepetition: false,
|
|
131
|
+
hasAmbiguousAlternation: false,
|
|
132
|
+
minLength: 1,
|
|
133
|
+
maxLength: 1
|
|
134
|
+
});
|
|
135
|
+
};
|
|
136
|
+
for (const token of tokens) {
|
|
137
|
+
if (token.kind === "simple-token") {
|
|
138
|
+
emitSimpleToken();
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
141
|
+
if (token.kind === "group-open") {
|
|
142
|
+
frames.push(createParseFrame());
|
|
143
|
+
continue;
|
|
144
|
+
}
|
|
145
|
+
if (token.kind === "group-close") {
|
|
146
|
+
if (frames.length > 1) {
|
|
147
|
+
const frame = frames.pop();
|
|
148
|
+
if (frame.hasAlternation) recordAlternative(frame);
|
|
149
|
+
const groupMinLength = frame.hasAlternation ? frame.altMinLength ?? 0 : frame.branchMinLength;
|
|
150
|
+
const groupMaxLength = frame.hasAlternation ? frame.altMaxLength ?? 0 : frame.branchMaxLength;
|
|
151
|
+
emitToken({
|
|
152
|
+
containsRepetition: frame.containsRepetition,
|
|
153
|
+
hasAmbiguousAlternation: frame.hasAlternation && frame.altMinLength !== null && frame.altMaxLength !== null && frame.altMinLength !== frame.altMaxLength,
|
|
154
|
+
minLength: groupMinLength,
|
|
155
|
+
maxLength: groupMaxLength
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
continue;
|
|
159
|
+
}
|
|
160
|
+
if (token.kind === "alternation") {
|
|
161
|
+
const frame = frames[frames.length - 1];
|
|
162
|
+
frame.hasAlternation = true;
|
|
163
|
+
recordAlternative(frame);
|
|
164
|
+
frame.branchMinLength = 0;
|
|
165
|
+
frame.branchMaxLength = 0;
|
|
166
|
+
frame.lastToken = null;
|
|
167
|
+
continue;
|
|
168
|
+
}
|
|
169
|
+
const frame = frames[frames.length - 1];
|
|
170
|
+
const previousToken = frame.lastToken;
|
|
171
|
+
if (!previousToken) continue;
|
|
172
|
+
if (previousToken.containsRepetition) return true;
|
|
173
|
+
if (previousToken.hasAmbiguousAlternation && token.quantifier.maxRepeat === null) return true;
|
|
174
|
+
const previousMinLength = previousToken.minLength;
|
|
175
|
+
const previousMaxLength = previousToken.maxLength;
|
|
176
|
+
previousToken.minLength = multiplyLength(previousToken.minLength, token.quantifier.minRepeat);
|
|
177
|
+
previousToken.maxLength = token.quantifier.maxRepeat === null ? Number.POSITIVE_INFINITY : multiplyLength(previousToken.maxLength, token.quantifier.maxRepeat);
|
|
178
|
+
previousToken.containsRepetition = true;
|
|
179
|
+
frame.containsRepetition = true;
|
|
180
|
+
frame.branchMinLength = frame.branchMinLength - previousMinLength + previousToken.minLength;
|
|
181
|
+
frame.branchMaxLength = addLength(Number.isFinite(frame.branchMaxLength) && Number.isFinite(previousMaxLength) ? frame.branchMaxLength - previousMaxLength : Number.POSITIVE_INFINITY, previousToken.maxLength);
|
|
182
|
+
}
|
|
183
|
+
return false;
|
|
184
|
+
}
|
|
185
|
+
function testRegexFromStart(regex, value) {
|
|
186
|
+
regex.lastIndex = 0;
|
|
187
|
+
return regex.test(value);
|
|
188
|
+
}
|
|
189
|
+
function testRegexWithBoundedInput(regex, input, maxWindow = SAFE_REGEX_TEST_WINDOW) {
|
|
190
|
+
if (maxWindow <= 0) return false;
|
|
191
|
+
if (input.length <= maxWindow) return testRegexFromStart(regex, input);
|
|
192
|
+
if (testRegexFromStart(regex, input.slice(0, maxWindow))) return true;
|
|
193
|
+
return testRegexFromStart(regex, input.slice(-maxWindow));
|
|
194
|
+
}
|
|
195
|
+
function hasNestedRepetition(source) {
|
|
196
|
+
return analyzeTokensForNestedRepetition(tokenizePattern(source));
|
|
197
|
+
}
|
|
198
|
+
function compileSafeRegex(source, flags = "") {
|
|
199
|
+
const trimmed = source.trim();
|
|
200
|
+
if (!trimmed) return null;
|
|
201
|
+
const cacheKey = `${flags}::${trimmed}`;
|
|
202
|
+
if (safeRegexCache.has(cacheKey)) return safeRegexCache.get(cacheKey) ?? null;
|
|
203
|
+
let compiled = null;
|
|
204
|
+
if (!hasNestedRepetition(trimmed)) try {
|
|
205
|
+
compiled = new RegExp(trimmed, flags);
|
|
206
|
+
} catch {
|
|
207
|
+
compiled = null;
|
|
208
|
+
}
|
|
209
|
+
safeRegexCache.set(cacheKey, compiled);
|
|
210
|
+
if (safeRegexCache.size > SAFE_REGEX_CACHE_MAX) {
|
|
211
|
+
const oldestKey = safeRegexCache.keys().next().value;
|
|
212
|
+
if (oldestKey) safeRegexCache.delete(oldestKey);
|
|
213
|
+
}
|
|
214
|
+
return compiled;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
//#endregion
|
|
218
|
+
//#region src/logging/redact-bounded.ts
|
|
219
|
+
const REDACT_REGEX_CHUNK_THRESHOLD = 32768;
|
|
220
|
+
const REDACT_REGEX_CHUNK_SIZE = 16384;
|
|
221
|
+
function replacePatternBounded(text, pattern, replacer, options) {
|
|
222
|
+
const chunkThreshold = options?.chunkThreshold ?? REDACT_REGEX_CHUNK_THRESHOLD;
|
|
223
|
+
const chunkSize = options?.chunkSize ?? REDACT_REGEX_CHUNK_SIZE;
|
|
224
|
+
if (chunkThreshold <= 0 || chunkSize <= 0 || text.length <= chunkThreshold) return text.replace(pattern, replacer);
|
|
225
|
+
let output = "";
|
|
226
|
+
for (let index = 0; index < text.length; index += chunkSize) output += text.slice(index, index + chunkSize).replace(pattern, replacer);
|
|
227
|
+
return output;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
//#endregion
|
|
231
|
+
//#region src/logging/redact.ts
|
|
232
|
+
const requireConfig = resolveNodeRequireFromMeta(import.meta.url);
|
|
233
|
+
const DEFAULT_REDACT_MODE = "tools";
|
|
234
|
+
const DEFAULT_REDACT_MIN_LENGTH = 18;
|
|
235
|
+
const DEFAULT_REDACT_KEEP_START = 6;
|
|
236
|
+
const DEFAULT_REDACT_KEEP_END = 4;
|
|
237
|
+
const DEFAULT_REDACT_PATTERNS = [
|
|
238
|
+
String.raw`\b[A-Z0-9_]*(?:KEY|TOKEN|SECRET|PASSWORD|PASSWD)\b\s*[=:]\s*(["']?)([^\s"'\\]+)\1`,
|
|
239
|
+
String.raw`"(?:apiKey|token|secret|password|passwd|accessToken|refreshToken)"\s*:\s*"([^"]+)"`,
|
|
240
|
+
String.raw`--(?:api[-_]?key|token|secret|password|passwd)\s+(["']?)([^\s"']+)\1`,
|
|
241
|
+
String.raw`Authorization\s*[:=]\s*Bearer\s+([A-Za-z0-9._\-+=]+)`,
|
|
242
|
+
String.raw`\bBearer\s+([A-Za-z0-9._\-+=]{18,})\b`,
|
|
243
|
+
String.raw`-----BEGIN [A-Z ]*PRIVATE KEY-----[\s\S]+?-----END [A-Z ]*PRIVATE KEY-----`,
|
|
244
|
+
String.raw`\b(sk-[A-Za-z0-9_-]{8,})\b`,
|
|
245
|
+
String.raw`\b(ghp_[A-Za-z0-9]{20,})\b`,
|
|
246
|
+
String.raw`\b(github_pat_[A-Za-z0-9_]{20,})\b`,
|
|
247
|
+
String.raw`\b(xox[baprs]-[A-Za-z0-9-]{10,})\b`,
|
|
248
|
+
String.raw`\b(xapp-[A-Za-z0-9-]{10,})\b`,
|
|
249
|
+
String.raw`\b(gsk_[A-Za-z0-9_-]{10,})\b`,
|
|
250
|
+
String.raw`\b(AIza[0-9A-Za-z\-_]{20,})\b`,
|
|
251
|
+
String.raw`\b(pplx-[A-Za-z0-9_-]{10,})\b`,
|
|
252
|
+
String.raw`\b(npm_[A-Za-z0-9]{10,})\b`,
|
|
253
|
+
String.raw`\bbot(\d{6,}:[A-Za-z0-9_-]{20,})\b`,
|
|
254
|
+
String.raw`\b(\d{6,}:[A-Za-z0-9_-]{20,})\b`
|
|
255
|
+
];
|
|
256
|
+
function normalizeMode(value) {
|
|
257
|
+
return value === "off" ? "off" : DEFAULT_REDACT_MODE;
|
|
258
|
+
}
|
|
259
|
+
function parsePattern(raw) {
|
|
260
|
+
if (!raw.trim()) return null;
|
|
261
|
+
const match = raw.match(/^\/(.+)\/([gimsuy]*)$/);
|
|
262
|
+
if (match) {
|
|
263
|
+
const flags = match[2].includes("g") ? match[2] : `${match[2]}g`;
|
|
264
|
+
return compileSafeRegex(match[1], flags);
|
|
265
|
+
}
|
|
266
|
+
return compileSafeRegex(raw, "gi");
|
|
267
|
+
}
|
|
268
|
+
function resolvePatterns(value) {
|
|
269
|
+
return (value?.length ? value : DEFAULT_REDACT_PATTERNS).map(parsePattern).filter((re) => Boolean(re));
|
|
270
|
+
}
|
|
271
|
+
function maskToken(token) {
|
|
272
|
+
if (token.length < DEFAULT_REDACT_MIN_LENGTH) return "***";
|
|
273
|
+
return `${token.slice(0, DEFAULT_REDACT_KEEP_START)}…${token.slice(-DEFAULT_REDACT_KEEP_END)}`;
|
|
274
|
+
}
|
|
275
|
+
function redactPemBlock(block) {
|
|
276
|
+
const lines = block.split(/\r?\n/).filter(Boolean);
|
|
277
|
+
if (lines.length < 2) return "***";
|
|
278
|
+
return `${lines[0]}\n…redacted…\n${lines[lines.length - 1]}`;
|
|
279
|
+
}
|
|
280
|
+
function redactMatch(match, groups) {
|
|
281
|
+
if (match.includes("PRIVATE KEY-----")) return redactPemBlock(match);
|
|
282
|
+
const token = groups.filter((value) => typeof value === "string" && value.length > 0).at(-1) ?? match;
|
|
283
|
+
const masked = maskToken(token);
|
|
284
|
+
if (token === match) return masked;
|
|
285
|
+
return match.replace(token, masked);
|
|
286
|
+
}
|
|
287
|
+
function redactText(text, patterns) {
|
|
288
|
+
let next = text;
|
|
289
|
+
for (const pattern of patterns) next = replacePatternBounded(next, pattern, (...args) => redactMatch(args[0], args.slice(1, args.length - 2)));
|
|
290
|
+
return next;
|
|
291
|
+
}
|
|
292
|
+
function resolveConfigRedaction() {
|
|
293
|
+
let cfg;
|
|
294
|
+
try {
|
|
295
|
+
cfg = (requireConfig?.("../config/config.js"))?.loadConfig?.().logging;
|
|
296
|
+
} catch {
|
|
297
|
+
cfg = void 0;
|
|
298
|
+
}
|
|
299
|
+
return {
|
|
300
|
+
mode: normalizeMode(cfg?.redactSensitive),
|
|
301
|
+
patterns: cfg?.redactPatterns
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
function redactSensitiveText(text, options) {
|
|
305
|
+
if (!text) return text;
|
|
306
|
+
const resolved = options ?? resolveConfigRedaction();
|
|
307
|
+
if (normalizeMode(resolved.mode) === "off") return text;
|
|
308
|
+
const patterns = resolvePatterns(resolved.patterns);
|
|
309
|
+
if (!patterns.length) return text;
|
|
310
|
+
return redactText(text, patterns);
|
|
311
|
+
}
|
|
312
|
+
function redactToolDetail(detail) {
|
|
313
|
+
const resolved = resolveConfigRedaction();
|
|
314
|
+
if (normalizeMode(resolved.mode) !== "tools") return detail;
|
|
315
|
+
return redactSensitiveText(detail, resolved);
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
//#endregion
|
|
319
|
+
export { testRegexWithBoundedInput as i, redactToolDetail as n, compileSafeRegex as r, redactSensitiveText as t };
|