@openclaw/signal 2026.9.4 → 2026.9.5
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/assets/activity.svg +40 -0
- package/assets/icon.png +0 -0
- package/dist/{accounts-DO4HMqaK.js → .setup/accounts-BV6tDOTc.mjs} +20 -5
- package/dist/.setup/api-Cu01dJRP.mjs +12 -0
- package/dist/.setup/api-DbdeJVQ8.mjs +17 -0
- package/dist/{approval-auth-pNCKKotV.js → .setup/approval-auth-BBI9BTRm.mjs} +3 -3
- package/dist/{approval-handler.runtime-DCPJkIqo.js → .setup/approval-handler.runtime-Clf_1IZj.mjs} +11 -11
- package/dist/{approval-reactions-CjhdkJ8P.js → .setup/approval-reactions-B25QoVJc.mjs} +14 -14
- package/dist/{channel-CyQvEuyA.js → .setup/channel-gMpZmqLx.mjs} +56 -33
- package/dist/{channel.runtime--koF_1H0.js → .setup/channel.runtime-Dqc18A1e.mjs} +3 -3
- package/dist/{client-B3C0ciqU.js → .setup/client-BseAt7F7.mjs} +311 -41
- package/dist/{client-adapter-CNc5wzzs.js → .setup/client-adapter-dvFa47YL.mjs} +1 -1
- package/dist/{config-schema-DfEbpMVQ.js → .setup/config-schema-aQwwMGUj.mjs} +19 -3
- package/dist/{doctor-contract-api-D0SnglP4.js → .setup/doctor-contract-api-Rbq_sRTI.mjs} +79 -15
- package/dist/{install-signal-cli-QlEIfWBv.js → .setup/install-signal-cli-bXeTrTyL.mjs} +3 -4
- package/dist/{monitor-BiNWxMB3.js → .setup/monitor-DAMQw1pZ.mjs} +32 -20
- package/dist/{probe-kOJqyjWz.js → .setup/probe-IKCS9D-z.mjs} +3 -3
- package/dist/{question-reactions-BFR9Mf-O.js → .setup/question-reactions-DSNAD0cd.mjs} +3 -3
- package/dist/{reaction-runtime-api-CWqDv5-q.js → .setup/reaction-runtime-api-BnQGHcrB.mjs} +6 -5
- package/dist/{rpc-context-dXSy4NtF.js → .setup/rpc-context-CwwADZ1b.mjs} +1 -1
- package/dist/{send-Bz0x0JC1.js → .setup/send-CcetN4rk.mjs} +7 -6
- package/dist/{send.runtime-CeV1p7Sq.js → .setup/send.runtime-B7C4IP23.mjs} +1 -1
- package/dist/{transport-detection-Do2pYMAH.js → .setup/transport-detection-CqyR2vG8.mjs} +50 -21
- package/dist/{transport-detection.runtime-QasZp3BE.js → .setup/transport-detection.runtime-CW1lp2d9.mjs} +1 -1
- package/dist/{transport-policy-DxvSMHp9.js → .setup/transport-policy-5VSnj5ma.mjs} +2 -33
- package/dist/.setup/transport-probes.runtime-WprAyBbL.mjs +2 -0
- package/dist/.setup/transport-url-CAC0JcuI.mjs +55 -0
- package/dist/api.js +11 -16
- package/dist/channel-config-api.js +1 -1
- package/dist/channel-plugin-api.js +1 -1
- package/dist/contract-api.js +4 -4
- package/dist/doctor-contract-api.js +1 -1
- package/dist/reaction-runtime-api.js +1 -1
- package/dist/runtime-api.js +9 -9
- package/dist/setup-entry.js +2 -1
- package/node_modules/zod/README.md +27 -0
- package/node_modules/zod/compile.cjs +77 -0
- package/node_modules/zod/compile.d.cts +1 -0
- package/node_modules/zod/compile.d.ts +1 -0
- package/node_modules/zod/compile.js +52 -0
- package/node_modules/zod/index.cjs +2 -2
- package/node_modules/zod/index.d.cts +1 -2
- package/node_modules/zod/index.d.ts +1 -2
- package/node_modules/zod/index.js +5 -2
- package/node_modules/zod/package.json +13 -2
- package/node_modules/zod/src/compile.ts +56 -0
- package/node_modules/zod/src/index.ts +5 -2
- package/node_modules/zod/src/v3/ZodError.ts +22 -12
- package/node_modules/zod/src/v3/tests/error.test.ts +35 -0
- package/node_modules/zod/src/v3/tests/intersection.test.ts +18 -0
- package/node_modules/zod/src/v3/tests/language-server.test.ts +1 -2
- package/node_modules/zod/src/v3/tests/object.test.ts +3 -6
- package/node_modules/zod/src/v3/tests/readonly.test.ts +0 -80
- package/node_modules/zod/src/v3/tests/string.test.ts +6 -0
- package/node_modules/zod/src/v3/types.ts +5 -5
- package/node_modules/zod/src/v4/classic/checks.ts +1 -0
- package/node_modules/zod/src/v4/classic/compat.ts +26 -18
- package/node_modules/zod/src/v4/classic/deep-partial.ts +76 -0
- package/node_modules/zod/src/v4/classic/errors.ts +59 -44
- package/node_modules/zod/src/v4/classic/external.ts +12 -9
- package/node_modules/zod/src/v4/classic/from-json-schema.ts +140 -78
- package/node_modules/zod/src/v4/classic/in-out.ts +45 -0
- package/node_modules/zod/src/v4/classic/index.ts +2 -2
- package/node_modules/zod/src/v4/classic/iso.ts +2 -72
- package/node_modules/zod/src/v4/classic/parse.ts +10 -4
- package/node_modules/zod/src/v4/classic/schemas.ts +452 -262
- package/node_modules/zod/src/v4/classic/tests/apply.test.ts +27 -0
- package/node_modules/zod/src/v4/classic/tests/array.test.ts +2 -2
- package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +135 -0
- package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +30 -1
- package/node_modules/zod/src/v4/classic/tests/catch.test.ts +278 -0
- package/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +1 -2
- package/node_modules/zod/src/v4/classic/tests/codec.test.ts +2 -1
- package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +2 -2
- package/node_modules/zod/src/v4/classic/tests/credit-card.test.ts +76 -0
- package/node_modules/zod/src/v4/classic/tests/cyclic-data.test.ts +720 -0
- package/node_modules/zod/src/v4/classic/tests/date.test.ts +30 -0
- package/node_modules/zod/src/v4/classic/tests/datetime.test.ts +32 -18
- package/node_modules/zod/src/v4/classic/tests/deep-partial.test.ts +380 -0
- package/node_modules/zod/src/v4/classic/tests/default-locale.test.ts +32 -0
- package/node_modules/zod/src/v4/classic/tests/default.test.ts +46 -0
- package/node_modules/zod/src/v4/classic/tests/detached-methods.test.ts +31 -7
- package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +155 -13
- package/node_modules/zod/src/v4/classic/tests/enum.test.ts +11 -0
- package/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +112 -2
- package/node_modules/zod/src/v4/classic/tests/error.test.ts +274 -6
- package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +425 -10
- package/node_modules/zod/src/v4/classic/tests/function.test.ts +31 -0
- package/node_modules/zod/src/v4/classic/tests/global-config.test.ts +2 -9
- package/node_modules/zod/src/v4/classic/tests/hash.test.ts +1 -2
- package/node_modules/zod/src/v4/classic/tests/in-out.test.ts +159 -0
- package/node_modules/zod/src/v4/classic/tests/index.test.ts +21 -2
- package/node_modules/zod/src/v4/classic/tests/instance-footprint.test.ts +281 -0
- package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +47 -0
- package/node_modules/zod/src/v4/classic/tests/intersection.test.ts +136 -0
- package/node_modules/zod/src/v4/classic/tests/issue-schema.test.ts +183 -0
- package/node_modules/zod/src/v4/classic/tests/jitless-allows-eval.test.ts +3 -10
- package/node_modules/zod/src/v4/classic/tests/lazy.test.ts +36 -1
- package/node_modules/zod/src/v4/classic/tests/literal.test.ts +12 -1
- package/node_modules/zod/src/v4/classic/tests/map.test.ts +12 -0
- package/node_modules/zod/src/v4/classic/tests/number.test.ts +46 -9
- package/node_modules/zod/src/v4/classic/tests/object.test.ts +245 -12
- package/node_modules/zod/src/v4/classic/tests/optin-ladder.test.ts +234 -0
- package/node_modules/zod/src/v4/classic/tests/optional.test.ts +49 -16
- package/node_modules/zod/src/v4/classic/tests/partial.test.ts +51 -4
- package/node_modules/zod/src/v4/classic/tests/preprocess-types.test.ts +20 -2
- package/node_modules/zod/src/v4/classic/tests/readonly.test.ts +0 -68
- package/node_modules/zod/src/v4/classic/tests/record.test.ts +186 -18
- package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +33 -2
- package/node_modules/zod/src/v4/classic/tests/redos.test.ts +68 -0
- package/node_modules/zod/src/v4/classic/tests/refine.test.ts +60 -0
- package/node_modules/zod/src/v4/classic/tests/set.test.ts +9 -0
- package/node_modules/zod/src/v4/classic/tests/string.test.ts +127 -5
- package/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +18 -0
- package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +11 -2
- package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +1585 -173
- package/node_modules/zod/src/v4/classic/tests/tuple.test.ts +45 -30
- package/node_modules/zod/src/v4/classic/tests/union.test.ts +39 -2
- package/node_modules/zod/src/v4/classic/tests/validate.test.ts +76 -0
- package/node_modules/zod/src/v4/classic/tests/validations.test.ts +2 -2
- package/node_modules/zod/src/v4/core/api.ts +48 -12
- package/node_modules/zod/src/v4/core/checks.ts +57 -44
- package/node_modules/zod/src/v4/core/compile.ts +2188 -0
- package/node_modules/zod/src/v4/core/core.ts +98 -19
- package/node_modules/zod/src/v4/core/doc.ts +11 -7
- package/node_modules/zod/src/v4/core/errors.ts +115 -24
- package/node_modules/zod/src/v4/core/index.ts +3 -0
- package/node_modules/zod/src/v4/core/json-schema-generator.ts +6 -1
- package/node_modules/zod/src/v4/core/json-schema-processors.ts +257 -93
- package/node_modules/zod/src/v4/core/json-schema.ts +2 -1
- package/node_modules/zod/src/v4/core/memoizer.ts +284 -0
- package/node_modules/zod/src/v4/core/parse.ts +131 -38
- package/node_modules/zod/src/v4/core/regexes.ts +30 -13
- package/node_modules/zod/src/v4/core/registries.ts +2 -2
- package/node_modules/zod/src/v4/core/schemas.ts +759 -461
- package/node_modules/zod/src/v4/core/tests/compile-differential.test.ts +969 -0
- package/node_modules/zod/src/v4/core/tests/compile-global.test.ts +89 -0
- package/node_modules/zod/src/v4/core/tests/compile-off-by-default.test.ts +26 -0
- package/node_modules/zod/src/v4/core/tests/compile-stats.test.ts +34 -0
- package/node_modules/zod/src/v4/core/tests/compile.test.ts +1639 -0
- package/node_modules/zod/src/v4/core/tests/locales/el.test.ts +1 -2
- package/node_modules/zod/src/v4/core/tests/locales/es.test.ts +1 -2
- package/node_modules/zod/src/v4/core/tests/locales/fr.test.ts +3 -3
- package/node_modules/zod/src/v4/core/tests/locales/parity.test.ts +42 -0
- package/node_modules/zod/src/v4/core/tests/locales/tk.test.ts +69 -0
- package/node_modules/zod/src/v4/core/tests/treeshake.test.ts +51 -0
- package/node_modules/zod/src/v4/core/tests/url-no-canparse.test.ts +31 -0
- package/node_modules/zod/src/v4/core/to-json-schema.ts +275 -42
- package/node_modules/zod/src/v4/core/util.ts +268 -42
- package/node_modules/zod/src/v4/core/versions.ts +2 -2
- package/node_modules/zod/src/v4/core/visit.ts +193 -0
- package/node_modules/zod/src/v4/index.ts +3 -3
- package/node_modules/zod/src/v4/locales/ar.ts +3 -0
- package/node_modules/zod/src/v4/locales/az.ts +3 -0
- package/node_modules/zod/src/v4/locales/be.ts +10 -0
- package/node_modules/zod/src/v4/locales/bg.ts +3 -0
- package/node_modules/zod/src/v4/locales/bn.ts +121 -0
- package/node_modules/zod/src/v4/locales/ca.ts +3 -0
- package/node_modules/zod/src/v4/locales/ckb.ts +138 -0
- package/node_modules/zod/src/v4/locales/cs.ts +3 -0
- package/node_modules/zod/src/v4/locales/da.ts +5 -2
- package/node_modules/zod/src/v4/locales/de.ts +3 -0
- package/node_modules/zod/src/v4/locales/el.ts +1 -0
- package/node_modules/zod/src/v4/locales/en.ts +15 -4
- package/node_modules/zod/src/v4/locales/eo.ts +3 -0
- package/node_modules/zod/src/v4/locales/es.ts +2 -0
- package/node_modules/zod/src/v4/locales/fa.ts +3 -0
- package/node_modules/zod/src/v4/locales/fi.ts +3 -0
- package/node_modules/zod/src/v4/locales/fr-CA.ts +3 -0
- package/node_modules/zod/src/v4/locales/fr.ts +19 -14
- package/node_modules/zod/src/v4/locales/gu.ts +121 -0
- package/node_modules/zod/src/v4/locales/he.ts +6 -1
- package/node_modules/zod/src/v4/locales/hi.ts +124 -0
- package/node_modules/zod/src/v4/locales/hr.ts +2 -0
- package/node_modules/zod/src/v4/locales/hu.ts +3 -0
- package/node_modules/zod/src/v4/locales/hy.ts +9 -0
- package/node_modules/zod/src/v4/locales/id.ts +3 -0
- package/node_modules/zod/src/v4/locales/index.ts +10 -0
- package/node_modules/zod/src/v4/locales/is.ts +3 -0
- package/node_modules/zod/src/v4/locales/it.ts +3 -0
- package/node_modules/zod/src/v4/locales/ja.ts +3 -0
- package/node_modules/zod/src/v4/locales/ka.ts +3 -0
- package/node_modules/zod/src/v4/locales/km.ts +3 -0
- package/node_modules/zod/src/v4/locales/kn.ts +124 -0
- package/node_modules/zod/src/v4/locales/ko.ts +3 -0
- package/node_modules/zod/src/v4/locales/lt.ts +2 -0
- package/node_modules/zod/src/v4/locales/mk.ts +3 -0
- package/node_modules/zod/src/v4/locales/ms.ts +3 -0
- package/node_modules/zod/src/v4/locales/ne.ts +126 -0
- package/node_modules/zod/src/v4/locales/nl.ts +3 -0
- package/node_modules/zod/src/v4/locales/nn.ts +119 -0
- package/node_modules/zod/src/v4/locales/no.ts +5 -2
- package/node_modules/zod/src/v4/locales/ota.ts +3 -0
- package/node_modules/zod/src/v4/locales/pl.ts +3 -0
- package/node_modules/zod/src/v4/locales/ps.ts +3 -0
- package/node_modules/zod/src/v4/locales/pt-BR.ts +159 -0
- package/node_modules/zod/src/v4/locales/pt.ts +99 -58
- package/node_modules/zod/src/v4/locales/ro.ts +1 -0
- package/node_modules/zod/src/v4/locales/ru.ts +10 -0
- package/node_modules/zod/src/v4/locales/sk.ts +121 -0
- package/node_modules/zod/src/v4/locales/sl.ts +3 -0
- package/node_modules/zod/src/v4/locales/sv.ts +5 -2
- package/node_modules/zod/src/v4/locales/ta.ts +3 -0
- package/node_modules/zod/src/v4/locales/th.ts +3 -0
- package/node_modules/zod/src/v4/locales/tk.ts +111 -0
- package/node_modules/zod/src/v4/locales/tr.ts +3 -0
- package/node_modules/zod/src/v4/locales/uk.ts +3 -0
- package/node_modules/zod/src/v4/locales/ur.ts +3 -0
- package/node_modules/zod/src/v4/locales/uz.ts +1 -0
- package/node_modules/zod/src/v4/locales/vi.ts +3 -0
- package/node_modules/zod/src/v4/locales/yo.ts +3 -0
- package/node_modules/zod/src/v4/locales/zh-CN.ts +3 -0
- package/node_modules/zod/src/v4/locales/zh-TW.ts +3 -0
- package/node_modules/zod/src/v4/mini/checks.ts +1 -0
- package/node_modules/zod/src/v4/mini/deep-partial.ts +73 -0
- package/node_modules/zod/src/v4/mini/external.ts +10 -1
- package/node_modules/zod/src/v4/mini/in-out.ts +45 -0
- package/node_modules/zod/src/v4/mini/parse.ts +2 -0
- package/node_modules/zod/src/v4/mini/schemas.ts +135 -56
- package/node_modules/zod/src/v4/mini/tests/apply.test.ts +33 -0
- package/node_modules/zod/src/v4/mini/tests/assignability.test.ts +62 -1
- package/node_modules/zod/src/v4/mini/tests/checks.test.ts +14 -0
- package/node_modules/zod/src/v4/mini/tests/codec.test.ts +35 -1
- package/node_modules/zod/src/v4/mini/tests/cyclic-data.test.ts +84 -0
- package/node_modules/zod/src/v4/mini/tests/deep-partial.test.ts +54 -0
- package/node_modules/zod/src/v4/mini/tests/error.test.ts +23 -4
- package/node_modules/zod/src/v4/mini/tests/functions.test.ts +9 -0
- package/node_modules/zod/src/v4/mini/tests/index.test.ts +72 -5
- package/node_modules/zod/src/v4/mini/tests/number.test.ts +14 -0
- package/node_modules/zod/src/v4/mini/tests/object.test.ts +65 -0
- package/node_modules/zod/src/v4/mini/tests/string.test.ts +21 -0
- package/node_modules/zod/v3/ZodError.cjs +22 -12
- package/node_modules/zod/v3/ZodError.d.cts +1 -1
- package/node_modules/zod/v3/ZodError.d.ts +1 -1
- package/node_modules/zod/v3/ZodError.js +22 -12
- package/node_modules/zod/v3/types.cjs +7 -5
- package/node_modules/zod/v3/types.js +7 -5
- package/node_modules/zod/v4/classic/checks.cjs +2 -1
- package/node_modules/zod/v4/classic/checks.d.cts +1 -1
- package/node_modules/zod/v4/classic/checks.d.ts +1 -1
- package/node_modules/zod/v4/classic/checks.js +1 -1
- package/node_modules/zod/v4/classic/compat.d.cts +9 -11
- package/node_modules/zod/v4/classic/compat.d.ts +9 -11
- package/node_modules/zod/v4/classic/deep-partial.cjs +39 -0
- package/node_modules/zod/v4/classic/deep-partial.d.cts +14 -0
- package/node_modules/zod/v4/classic/deep-partial.d.ts +14 -0
- package/node_modules/zod/v4/classic/deep-partial.js +13 -0
- package/node_modules/zod/v4/classic/errors.cjs +43 -34
- package/node_modules/zod/v4/classic/errors.d.cts +3 -4
- package/node_modules/zod/v4/classic/errors.d.ts +3 -4
- package/node_modules/zod/v4/classic/errors.js +43 -34
- package/node_modules/zod/v4/classic/external.cjs +30 -27
- package/node_modules/zod/v4/classic/external.d.cts +5 -2
- package/node_modules/zod/v4/classic/external.d.ts +5 -2
- package/node_modules/zod/v4/classic/external.js +5 -8
- package/node_modules/zod/v4/classic/from-json-schema.cjs +136 -75
- package/node_modules/zod/v4/classic/from-json-schema.js +136 -75
- package/node_modules/zod/v4/classic/in-out.cjs +63 -0
- package/node_modules/zod/v4/classic/in-out.d.cts +8 -0
- package/node_modules/zod/v4/classic/in-out.d.ts +8 -0
- package/node_modules/zod/v4/classic/in-out.js +36 -0
- package/node_modules/zod/v4/classic/index.cjs +2 -2
- package/node_modules/zod/v4/classic/index.d.cts +1 -2
- package/node_modules/zod/v4/classic/index.d.ts +1 -2
- package/node_modules/zod/v4/classic/index.js +2 -2
- package/node_modules/zod/v4/classic/iso.cjs +11 -22
- package/node_modules/zod/v4/classic/iso.d.cts +2 -17
- package/node_modules/zod/v4/classic/iso.d.ts +2 -17
- package/node_modules/zod/v4/classic/iso.js +2 -17
- package/node_modules/zod/v4/classic/parse.cjs +4 -1
- package/node_modules/zod/v4/classic/parse.d.cts +17 -4
- package/node_modules/zod/v4/classic/parse.d.ts +17 -4
- package/node_modules/zod/v4/classic/parse.js +1 -0
- package/node_modules/zod/v4/classic/schemas.cjs +498 -398
- package/node_modules/zod/v4/classic/schemas.d.cts +53 -18
- package/node_modules/zod/v4/classic/schemas.d.ts +53 -18
- package/node_modules/zod/v4/classic/schemas.js +492 -396
- package/node_modules/zod/v4/core/api.cjs +23 -4
- package/node_modules/zod/v4/core/api.d.cts +13 -9
- package/node_modules/zod/v4/core/api.d.ts +13 -9
- package/node_modules/zod/v4/core/api.js +21 -4
- package/node_modules/zod/v4/core/checks.cjs +37 -31
- package/node_modules/zod/v4/core/checks.d.cts +13 -13
- package/node_modules/zod/v4/core/checks.d.ts +13 -13
- package/node_modules/zod/v4/core/checks.js +37 -31
- package/node_modules/zod/v4/core/compile.cjs +1813 -0
- package/node_modules/zod/v4/core/compile.d.cts +51 -0
- package/node_modules/zod/v4/core/compile.d.ts +51 -0
- package/node_modules/zod/v4/core/compile.js +1783 -0
- package/node_modules/zod/v4/core/core.cjs +81 -18
- package/node_modules/zod/v4/core/core.d.cts +16 -4
- package/node_modules/zod/v4/core/core.d.ts +16 -4
- package/node_modules/zod/v4/core/core.js +82 -19
- package/node_modules/zod/v4/core/doc.cjs +5 -7
- package/node_modules/zod/v4/core/doc.d.cts +3 -1
- package/node_modules/zod/v4/core/doc.d.ts +3 -1
- package/node_modules/zod/v4/core/doc.js +5 -7
- package/node_modules/zod/v4/core/errors.cjs +110 -25
- package/node_modules/zod/v4/core/errors.d.cts +4 -0
- package/node_modules/zod/v4/core/errors.d.ts +4 -0
- package/node_modules/zod/v4/core/errors.js +110 -25
- package/node_modules/zod/v4/core/index.cjs +5 -1
- package/node_modules/zod/v4/core/index.d.cts +3 -0
- package/node_modules/zod/v4/core/index.d.ts +3 -0
- package/node_modules/zod/v4/core/index.js +3 -0
- package/node_modules/zod/v4/core/json-schema-generator.cjs +4 -0
- package/node_modules/zod/v4/core/json-schema-generator.d.cts +2 -2
- package/node_modules/zod/v4/core/json-schema-generator.d.ts +2 -2
- package/node_modules/zod/v4/core/json-schema-generator.js +4 -0
- package/node_modules/zod/v4/core/json-schema-processors.cjs +264 -95
- package/node_modules/zod/v4/core/json-schema-processors.js +243 -97
- package/node_modules/zod/v4/core/json-schema.d.cts +2 -1
- package/node_modules/zod/v4/core/json-schema.d.ts +2 -1
- package/node_modules/zod/v4/core/memoizer.cjs +272 -0
- package/node_modules/zod/v4/core/memoizer.d.cts +15 -0
- package/node_modules/zod/v4/core/memoizer.d.ts +15 -0
- package/node_modules/zod/v4/core/memoizer.js +265 -0
- package/node_modules/zod/v4/core/parse.cjs +96 -34
- package/node_modules/zod/v4/core/parse.d.cts +14 -11
- package/node_modules/zod/v4/core/parse.d.ts +14 -11
- package/node_modules/zod/v4/core/parse.js +94 -33
- package/node_modules/zod/v4/core/regexes.cjs +27 -15
- package/node_modules/zod/v4/core/regexes.d.cts +2 -0
- package/node_modules/zod/v4/core/regexes.d.ts +2 -0
- package/node_modules/zod/v4/core/regexes.js +24 -13
- package/node_modules/zod/v4/core/registries.js +2 -2
- package/node_modules/zod/v4/core/schemas.cjs +537 -326
- package/node_modules/zod/v4/core/schemas.d.cts +100 -31
- package/node_modules/zod/v4/core/schemas.d.ts +100 -31
- package/node_modules/zod/v4/core/schemas.js +526 -325
- package/node_modules/zod/v4/core/to-json-schema.cjs +242 -39
- package/node_modules/zod/v4/core/to-json-schema.d.cts +42 -3
- package/node_modules/zod/v4/core/to-json-schema.d.ts +42 -3
- package/node_modules/zod/v4/core/to-json-schema.js +241 -39
- package/node_modules/zod/v4/core/util.cjs +212 -31
- package/node_modules/zod/v4/core/util.d.cts +58 -1
- package/node_modules/zod/v4/core/util.d.ts +58 -1
- package/node_modules/zod/v4/core/util.js +202 -30
- package/node_modules/zod/v4/core/versions.cjs +2 -2
- package/node_modules/zod/v4/core/versions.d.cts +1 -1
- package/node_modules/zod/v4/core/versions.d.ts +1 -1
- package/node_modules/zod/v4/core/versions.js +2 -2
- package/node_modules/zod/v4/core/visit.cjs +195 -0
- package/node_modules/zod/v4/core/visit.d.cts +30 -0
- package/node_modules/zod/v4/core/visit.d.ts +30 -0
- package/node_modules/zod/v4/core/visit.js +169 -0
- package/node_modules/zod/v4/index.cjs +15 -5
- package/node_modules/zod/v4/index.d.cts +2 -2
- package/node_modules/zod/v4/index.d.ts +2 -2
- package/node_modules/zod/v4/index.js +3 -2
- package/node_modules/zod/v4/locales/ar.cjs +3 -0
- package/node_modules/zod/v4/locales/ar.js +3 -0
- package/node_modules/zod/v4/locales/az.cjs +3 -0
- package/node_modules/zod/v4/locales/az.js +3 -0
- package/node_modules/zod/v4/locales/be.cjs +10 -0
- package/node_modules/zod/v4/locales/be.js +10 -0
- package/node_modules/zod/v4/locales/bg.cjs +3 -0
- package/node_modules/zod/v4/locales/bg.js +3 -0
- package/node_modules/zod/v4/locales/bn.cjs +138 -0
- package/node_modules/zod/v4/locales/bn.d.cts +5 -0
- package/node_modules/zod/v4/locales/bn.d.ts +4 -0
- package/node_modules/zod/v4/locales/bn.js +111 -0
- package/node_modules/zod/v4/locales/ca.cjs +3 -0
- package/node_modules/zod/v4/locales/ca.js +3 -0
- package/node_modules/zod/v4/locales/ckb.cjs +158 -0
- package/node_modules/zod/v4/locales/ckb.d.cts +5 -0
- package/node_modules/zod/v4/locales/ckb.d.ts +4 -0
- package/node_modules/zod/v4/locales/ckb.js +131 -0
- package/node_modules/zod/v4/locales/cs.cjs +3 -0
- package/node_modules/zod/v4/locales/cs.js +3 -0
- package/node_modules/zod/v4/locales/da.cjs +5 -2
- package/node_modules/zod/v4/locales/da.js +5 -2
- package/node_modules/zod/v4/locales/de.cjs +3 -0
- package/node_modules/zod/v4/locales/de.js +3 -0
- package/node_modules/zod/v4/locales/el.cjs +1 -0
- package/node_modules/zod/v4/locales/el.js +1 -0
- package/node_modules/zod/v4/locales/en.cjs +14 -4
- package/node_modules/zod/v4/locales/en.js +14 -4
- package/node_modules/zod/v4/locales/eo.cjs +3 -0
- package/node_modules/zod/v4/locales/eo.js +3 -0
- package/node_modules/zod/v4/locales/es.cjs +2 -0
- package/node_modules/zod/v4/locales/es.js +2 -0
- package/node_modules/zod/v4/locales/fa.cjs +3 -0
- package/node_modules/zod/v4/locales/fa.js +3 -0
- package/node_modules/zod/v4/locales/fi.cjs +3 -0
- package/node_modules/zod/v4/locales/fi.js +3 -0
- package/node_modules/zod/v4/locales/fr-CA.cjs +3 -0
- package/node_modules/zod/v4/locales/fr-CA.js +3 -0
- package/node_modules/zod/v4/locales/fr.cjs +16 -14
- package/node_modules/zod/v4/locales/fr.js +16 -14
- package/node_modules/zod/v4/locales/gu.cjs +138 -0
- package/node_modules/zod/v4/locales/gu.d.cts +5 -0
- package/node_modules/zod/v4/locales/gu.d.ts +4 -0
- package/node_modules/zod/v4/locales/gu.js +111 -0
- package/node_modules/zod/v4/locales/he.cjs +5 -0
- package/node_modules/zod/v4/locales/he.js +5 -0
- package/node_modules/zod/v4/locales/hi.cjs +136 -0
- package/node_modules/zod/v4/locales/hi.d.cts +5 -0
- package/node_modules/zod/v4/locales/hi.d.ts +4 -0
- package/node_modules/zod/v4/locales/hi.js +109 -0
- package/node_modules/zod/v4/locales/hr.cjs +2 -0
- package/node_modules/zod/v4/locales/hr.js +2 -0
- package/node_modules/zod/v4/locales/hu.cjs +3 -0
- package/node_modules/zod/v4/locales/hu.js +3 -0
- package/node_modules/zod/v4/locales/hy.cjs +9 -0
- package/node_modules/zod/v4/locales/hy.js +9 -0
- package/node_modules/zod/v4/locales/id.cjs +3 -0
- package/node_modules/zod/v4/locales/id.js +3 -0
- package/node_modules/zod/v4/locales/index.cjs +22 -2
- package/node_modules/zod/v4/locales/index.d.cts +10 -0
- package/node_modules/zod/v4/locales/index.d.ts +10 -0
- package/node_modules/zod/v4/locales/index.js +10 -0
- package/node_modules/zod/v4/locales/is.cjs +3 -0
- package/node_modules/zod/v4/locales/is.js +3 -0
- package/node_modules/zod/v4/locales/it.cjs +3 -0
- package/node_modules/zod/v4/locales/it.js +3 -0
- package/node_modules/zod/v4/locales/ja.cjs +3 -0
- package/node_modules/zod/v4/locales/ja.js +3 -0
- package/node_modules/zod/v4/locales/ka.cjs +3 -0
- package/node_modules/zod/v4/locales/ka.js +3 -0
- package/node_modules/zod/v4/locales/km.cjs +3 -0
- package/node_modules/zod/v4/locales/km.js +3 -0
- package/node_modules/zod/v4/locales/kn.cjs +141 -0
- package/node_modules/zod/v4/locales/kn.d.cts +5 -0
- package/node_modules/zod/v4/locales/kn.d.ts +4 -0
- package/node_modules/zod/v4/locales/kn.js +114 -0
- package/node_modules/zod/v4/locales/ko.cjs +3 -0
- package/node_modules/zod/v4/locales/ko.js +3 -0
- package/node_modules/zod/v4/locales/lt.cjs +2 -0
- package/node_modules/zod/v4/locales/lt.js +2 -0
- package/node_modules/zod/v4/locales/mk.cjs +3 -0
- package/node_modules/zod/v4/locales/mk.js +3 -0
- package/node_modules/zod/v4/locales/ms.cjs +3 -0
- package/node_modules/zod/v4/locales/ms.js +3 -0
- package/node_modules/zod/v4/locales/ne.cjs +136 -0
- package/node_modules/zod/v4/locales/ne.d.cts +5 -0
- package/node_modules/zod/v4/locales/ne.d.ts +4 -0
- package/node_modules/zod/v4/locales/ne.js +109 -0
- package/node_modules/zod/v4/locales/nl.cjs +3 -0
- package/node_modules/zod/v4/locales/nl.js +3 -0
- package/node_modules/zod/v4/locales/nn.cjs +138 -0
- package/node_modules/zod/v4/locales/nn.d.cts +5 -0
- package/node_modules/zod/v4/locales/nn.d.ts +4 -0
- package/node_modules/zod/v4/locales/nn.js +111 -0
- package/node_modules/zod/v4/locales/no.cjs +5 -2
- package/node_modules/zod/v4/locales/no.js +5 -2
- package/node_modules/zod/v4/locales/ota.cjs +3 -0
- package/node_modules/zod/v4/locales/ota.js +3 -0
- package/node_modules/zod/v4/locales/pl.cjs +3 -0
- package/node_modules/zod/v4/locales/pl.js +3 -0
- package/node_modules/zod/v4/locales/ps.cjs +3 -0
- package/node_modules/zod/v4/locales/ps.js +3 -0
- package/node_modules/zod/v4/locales/pt-BR.cjs +168 -0
- package/node_modules/zod/v4/locales/pt-BR.d.cts +5 -0
- package/node_modules/zod/v4/locales/pt-BR.d.ts +4 -0
- package/node_modules/zod/v4/locales/pt-BR.js +141 -0
- package/node_modules/zod/v4/locales/pt.cjs +87 -55
- package/node_modules/zod/v4/locales/pt.js +87 -55
- package/node_modules/zod/v4/locales/ro.cjs +1 -0
- package/node_modules/zod/v4/locales/ro.js +1 -0
- package/node_modules/zod/v4/locales/ru.cjs +10 -0
- package/node_modules/zod/v4/locales/ru.js +10 -0
- package/node_modules/zod/v4/locales/sk.cjs +141 -0
- package/node_modules/zod/v4/locales/sk.d.cts +5 -0
- package/node_modules/zod/v4/locales/sk.d.ts +4 -0
- package/node_modules/zod/v4/locales/sk.js +114 -0
- package/node_modules/zod/v4/locales/sl.cjs +3 -0
- package/node_modules/zod/v4/locales/sl.js +3 -0
- package/node_modules/zod/v4/locales/sv.cjs +5 -2
- package/node_modules/zod/v4/locales/sv.js +5 -2
- package/node_modules/zod/v4/locales/ta.cjs +3 -0
- package/node_modules/zod/v4/locales/ta.js +3 -0
- package/node_modules/zod/v4/locales/th.cjs +3 -0
- package/node_modules/zod/v4/locales/th.js +3 -0
- package/node_modules/zod/v4/locales/tk.cjs +132 -0
- package/node_modules/zod/v4/locales/tk.d.cts +5 -0
- package/node_modules/zod/v4/locales/tk.d.ts +4 -0
- package/node_modules/zod/v4/locales/tk.js +105 -0
- package/node_modules/zod/v4/locales/tr.cjs +3 -0
- package/node_modules/zod/v4/locales/tr.js +3 -0
- package/node_modules/zod/v4/locales/uk.cjs +3 -0
- package/node_modules/zod/v4/locales/uk.js +3 -0
- package/node_modules/zod/v4/locales/ur.cjs +3 -0
- package/node_modules/zod/v4/locales/ur.js +3 -0
- package/node_modules/zod/v4/locales/uz.cjs +1 -0
- package/node_modules/zod/v4/locales/uz.js +1 -0
- package/node_modules/zod/v4/locales/vi.cjs +3 -0
- package/node_modules/zod/v4/locales/vi.js +3 -0
- package/node_modules/zod/v4/locales/yo.cjs +3 -0
- package/node_modules/zod/v4/locales/yo.js +3 -0
- package/node_modules/zod/v4/locales/zh-CN.cjs +3 -0
- package/node_modules/zod/v4/locales/zh-CN.js +3 -0
- package/node_modules/zod/v4/locales/zh-TW.cjs +3 -0
- package/node_modules/zod/v4/locales/zh-TW.js +3 -0
- package/node_modules/zod/v4/mini/checks.cjs +2 -1
- package/node_modules/zod/v4/mini/checks.d.cts +1 -1
- package/node_modules/zod/v4/mini/checks.d.ts +1 -1
- package/node_modules/zod/v4/mini/checks.js +1 -1
- package/node_modules/zod/v4/mini/deep-partial.cjs +39 -0
- package/node_modules/zod/v4/mini/deep-partial.d.cts +14 -0
- package/node_modules/zod/v4/mini/deep-partial.d.ts +14 -0
- package/node_modules/zod/v4/mini/deep-partial.js +13 -0
- package/node_modules/zod/v4/mini/external.cjs +12 -1
- package/node_modules/zod/v4/mini/external.d.cts +5 -2
- package/node_modules/zod/v4/mini/external.d.ts +5 -2
- package/node_modules/zod/v4/mini/external.js +3 -1
- package/node_modules/zod/v4/mini/in-out.cjs +63 -0
- package/node_modules/zod/v4/mini/in-out.d.cts +8 -0
- package/node_modules/zod/v4/mini/in-out.d.ts +8 -0
- package/node_modules/zod/v4/mini/in-out.js +36 -0
- package/node_modules/zod/v4/mini/parse.cjs +3 -1
- package/node_modules/zod/v4/mini/parse.d.cts +1 -1
- package/node_modules/zod/v4/mini/parse.d.ts +1 -1
- package/node_modules/zod/v4/mini/parse.js +1 -1
- package/node_modules/zod/v4/mini/schemas.cjs +75 -47
- package/node_modules/zod/v4/mini/schemas.d.cts +43 -13
- package/node_modules/zod/v4/mini/schemas.d.ts +43 -13
- package/node_modules/zod/v4/mini/schemas.js +71 -45
- package/openclaw.plugin.json +35 -42
- package/package.json +8 -6
- package/dist/transport-probes.runtime-DV7x4VWu.js +0 -2
- package/node_modules/zod/src/v4/core/config.ts +0 -15
- /package/dist/{identity-YXPmgFMu.js → .setup/identity-YXPmgFMu.mjs} +0 -0
- /package/dist/{normalize-l_b99hap.js → .setup/normalize-l_b99hap.mjs} +0 -0
- /package/dist/{rolldown-runtime-8H4AJuhK.js → .setup/rolldown-runtime-8H4AJuhK.mjs} +0 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { a as
|
|
2
|
-
import {
|
|
1
|
+
import { a as normalizeSignalTransportUrl, r as buildSignalTransportHttpUrl, s as resolveSignalAccountKey, t as assertSignalSocketTransport } from "./transport-url-CAC0JcuI.mjs";
|
|
2
|
+
import { a as isSignalManagedNativeConnectionUrlForBind, i as assignSignalManagedNativePort, o as isValidSignalManagedNativePort, r as allocateSignalManagedNativePort, s as resolveLocalSignalTransportPort } from "./transport-policy-5VSnj5ma.mjs";
|
|
3
|
+
import { isRecord, normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
3
4
|
import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/account-resolution";
|
|
4
5
|
import { defineChannelAliasMigration } from "openclaw/plugin-sdk/runtime-doctor-migrations";
|
|
5
6
|
//#region extensions/signal/src/config-compat.ts
|
|
@@ -22,6 +23,11 @@ const PENDING_LEGACY_CONTAINER_ACCOUNT_WARNING = "- channels.signal: legacy cont
|
|
|
22
23
|
function isSignalTransportConfig(value) {
|
|
23
24
|
if (!isRecord(value)) return false;
|
|
24
25
|
if (value.kind === "managed-native") {
|
|
26
|
+
try {
|
|
27
|
+
assertSignalSocketTransport(value);
|
|
28
|
+
} catch {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
25
31
|
if (value.httpPort !== void 0 && !isValidSignalManagedNativePort(value.httpPort)) return false;
|
|
26
32
|
if (value.url === void 0) return true;
|
|
27
33
|
if (typeof value.url !== "string") return false;
|
|
@@ -173,13 +179,15 @@ function signalAccountIds(entries) {
|
|
|
173
179
|
const accounts = isRecord(entries[0]?.accounts) ? entries[0].accounts : {};
|
|
174
180
|
return Object.entries(accounts).filter(([, entry]) => isRecord(entry)).map(([accountId]) => accountId);
|
|
175
181
|
}
|
|
182
|
+
function resolveNestedDefaultEntryIndex(entries) {
|
|
183
|
+
const accounts = isRecord(entries[0]?.accounts) ? entries[0].accounts : {};
|
|
184
|
+
const key = resolveSignalAccountKey(accounts, DEFAULT_ACCOUNT_ID);
|
|
185
|
+
const offset = signalAccountIds(entries).findIndex((accountId) => accountId === key);
|
|
186
|
+
return offset >= 0 ? offset + 1 : void 0;
|
|
187
|
+
}
|
|
176
188
|
function isDefaultSignalAccountId(accountId) {
|
|
177
189
|
return Boolean(accountId?.trim()) && normalizeAccountId(accountId) === DEFAULT_ACCOUNT_ID;
|
|
178
190
|
}
|
|
179
|
-
function resolveSignalAccountKey(accounts, accountId) {
|
|
180
|
-
const normalizedAccountId = normalizeAccountId(accountId);
|
|
181
|
-
return Object.keys(accounts).find((key) => Boolean(key.trim()) && normalizeAccountId(key) === normalizedAccountId);
|
|
182
|
-
}
|
|
183
191
|
function nestedDefaultOwnsEffectiveTransport(entries) {
|
|
184
192
|
const accounts = isRecord(entries[0]?.accounts) ? entries[0].accounts : {};
|
|
185
193
|
const nestedDefaultKey = resolveSignalAccountKey(accounts, DEFAULT_ACCOUNT_ID);
|
|
@@ -188,7 +196,7 @@ function nestedDefaultOwnsEffectiveTransport(entries) {
|
|
|
188
196
|
}
|
|
189
197
|
function isDiscardedTransportEntry(entries, index) {
|
|
190
198
|
if (index === 0) return !hasRootSignalAccount(entries) || nestedDefaultOwnsEffectiveTransport(entries);
|
|
191
|
-
return
|
|
199
|
+
return index === resolveNestedDefaultEntryIndex(entries) && isSignalTransportConfig(entries[0]?.transport);
|
|
192
200
|
}
|
|
193
201
|
function shouldMaterializeTransport(entries, index) {
|
|
194
202
|
if (isDiscardedTransportEntry(entries, index)) return false;
|
|
@@ -221,10 +229,11 @@ function clearLegacySignalTransportFieldsForAccount(params) {
|
|
|
221
229
|
function allocateMigratedManagedPorts(params) {
|
|
222
230
|
const reservedPorts = /* @__PURE__ */ new Set();
|
|
223
231
|
const rootIsAccount = hasRootSignalAccount(params.entries);
|
|
224
|
-
const
|
|
225
|
-
const canonicalDefaultIndex = isSignalTransportConfig(params.entries[0]?.transport) ? 0 :
|
|
232
|
+
const nestedDefaultIndex = resolveNestedDefaultEntryIndex(params.entries);
|
|
233
|
+
const canonicalDefaultIndex = isSignalTransportConfig(params.entries[0]?.transport) ? 0 : nestedDefaultIndex !== void 0 ? nestedDefaultIndex : rootIsAccount ? 0 : void 0;
|
|
226
234
|
for (const [index, transport] of params.transports.entries()) {
|
|
227
235
|
if (!transport || index === 0 && canonicalDefaultIndex !== 0) continue;
|
|
236
|
+
if (transport.kind === "managed-native" && transport.socketPath !== void 0) continue;
|
|
228
237
|
if (transport.kind !== "managed-native") {
|
|
229
238
|
const localPort = resolveLocalSignalTransportPort(transport.url);
|
|
230
239
|
if (localPort !== void 0) reservedPorts.add(localPort);
|
|
@@ -238,7 +247,7 @@ function allocateMigratedManagedPorts(params) {
|
|
|
238
247
|
}
|
|
239
248
|
return params.transports.map((transport, index) => {
|
|
240
249
|
if (!transport || index === 0 && canonicalDefaultIndex !== 0) return transport;
|
|
241
|
-
if (transport.kind !== "managed-native") return transport;
|
|
250
|
+
if (transport.kind !== "managed-native" || transport.socketPath !== void 0) return transport;
|
|
242
251
|
if (isRecord(params.entries[index]?.transport) || index === canonicalDefaultIndex) return transport;
|
|
243
252
|
const rawPreferredPort = params.entries[index]?.httpPort;
|
|
244
253
|
const preferredPort = typeof rawPreferredPort === "number" ? rawPreferredPort : transport.httpPort;
|
|
@@ -254,13 +263,13 @@ function applyMigratedSignalTransports(params) {
|
|
|
254
263
|
const next = structuredClone(params.cfg);
|
|
255
264
|
const nextSignal = next.channels?.signal;
|
|
256
265
|
if (!isRecord(nextSignal)) return;
|
|
257
|
-
const
|
|
266
|
+
const nestedDefaultIndex = resolveNestedDefaultEntryIndex(params.entries);
|
|
258
267
|
const nextAccounts = isRecord(nextSignal.accounts) ? nextSignal.accounts : {};
|
|
259
268
|
const nextEntries = [nextSignal, ...Object.values(nextAccounts).filter(isRecord)];
|
|
260
269
|
const rootIsAccount = hasRootSignalAccount(params.entries);
|
|
261
270
|
const canonicalRootTransport = isSignalTransportConfig(params.entries[0]?.transport) ? params.entries[0].transport : void 0;
|
|
262
271
|
for (const [index, entry] of nextEntries.entries()) {
|
|
263
|
-
if (
|
|
272
|
+
if (index === nestedDefaultIndex) {
|
|
264
273
|
const defaultTransport = canonicalRootTransport ?? params.transports[index];
|
|
265
274
|
if (defaultTransport) nextSignal.transport = defaultTransport;
|
|
266
275
|
else delete nextSignal.transport;
|
|
@@ -306,6 +315,11 @@ function prepareLegacySignalTransportMigration(cfg) {
|
|
|
306
315
|
};
|
|
307
316
|
const apiMode = signal.apiMode;
|
|
308
317
|
const entries = [signal, ...Object.values(accounts).filter(isRecord)];
|
|
318
|
+
if (entries.some((entry) => isRecord(entry.transport) && Object.hasOwn(entry.transport, "socketPath") && (entry.transport.kind !== "managed-native" || !isSignalTransportConfig(entry.transport)))) return {
|
|
319
|
+
config: cfg,
|
|
320
|
+
changes: [],
|
|
321
|
+
warnings: ["- channels.signal: invalid transport.socketPath configuration; correct the socket path and remove conflicting HTTP or receiveMode on-start options, then run openclaw doctor --fix."]
|
|
322
|
+
};
|
|
309
323
|
const legacyResolutionEntries = entries.filter((_, index) => shouldMaterializeTransport(entries, index)).filter((entry) => !isSignalTransportConfig(entry.transport));
|
|
310
324
|
const invalidDerivedEndpoint = findInvalidLegacyDerivedEndpoint(legacyResolutionEntries, signal);
|
|
311
325
|
if (invalidDerivedEndpoint) return {
|
|
@@ -390,6 +404,51 @@ function migrateLegacySignalTransportConfigSync(cfg) {
|
|
|
390
404
|
}));
|
|
391
405
|
}
|
|
392
406
|
//#endregion
|
|
407
|
+
//#region extensions/signal/src/account-key-repair.ts
|
|
408
|
+
function repairSignalAccountKeys({ cfg }) {
|
|
409
|
+
const signal = cfg.channels?.signal;
|
|
410
|
+
const accounts = signal?.accounts;
|
|
411
|
+
if (!accounts) return {
|
|
412
|
+
config: cfg,
|
|
413
|
+
changes: []
|
|
414
|
+
};
|
|
415
|
+
const groups = /* @__PURE__ */ new Map();
|
|
416
|
+
for (const key of Object.keys(accounts)) if (key) {
|
|
417
|
+
const id = normalizeAccountId(key);
|
|
418
|
+
groups.set(id, [...groups.get(id) ?? [], key]);
|
|
419
|
+
}
|
|
420
|
+
const moves = /* @__PURE__ */ new Map();
|
|
421
|
+
const warnings = [];
|
|
422
|
+
for (const [id, keys] of groups) {
|
|
423
|
+
if (keys.length > 1) {
|
|
424
|
+
warnings.push(`Signal account keys ${keys.map((key) => JSON.stringify(key)).join(", ")} resolve to "${id}". Doctor preserved them; rename them so each account has a unique normalized key.`);
|
|
425
|
+
continue;
|
|
426
|
+
}
|
|
427
|
+
for (const key of keys) if (normalizeLowercaseStringOrEmpty(key) !== id) {
|
|
428
|
+
if (resolveSignalAccountKey(accounts, id) !== key) {
|
|
429
|
+
warnings.push(`Signal account "${key}" is listed as "${id}" but currently uses the channel defaults. Doctor preserved it to avoid changing a working account; check its settings before renaming the key to "${id}".`);
|
|
430
|
+
continue;
|
|
431
|
+
}
|
|
432
|
+
moves.set(key, id);
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
const repaired = Object.fromEntries(Object.entries(accounts).map(([key, entry]) => [moves.get(key) ?? key, entry]));
|
|
436
|
+
return {
|
|
437
|
+
config: moves.size ? {
|
|
438
|
+
...cfg,
|
|
439
|
+
channels: {
|
|
440
|
+
...cfg.channels,
|
|
441
|
+
signal: {
|
|
442
|
+
...signal,
|
|
443
|
+
accounts: repaired
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
} : cfg,
|
|
447
|
+
changes: [...moves].map(([from, to]) => `Moved Signal account "${from}" to channels.signal.accounts.${to}.`),
|
|
448
|
+
warnings
|
|
449
|
+
};
|
|
450
|
+
}
|
|
451
|
+
//#endregion
|
|
393
452
|
//#region extensions/signal/config-doctor-api.ts
|
|
394
453
|
const RETIRED_SIGNAL_ACCOUNT_TRANSPORT_FIELDS = [
|
|
395
454
|
"configPath",
|
|
@@ -434,13 +493,18 @@ const legacyConfigRules = [
|
|
|
434
493
|
}
|
|
435
494
|
];
|
|
436
495
|
function normalizeCompatibilityConfig({ cfg }) {
|
|
437
|
-
const
|
|
496
|
+
const accountKeys = repairSignalAccountKeys({ cfg });
|
|
497
|
+
const streaming = streamingAliasMigration.normalizeChannelConfig({ cfg: accountKeys.config });
|
|
438
498
|
const transport = migrateLegacySignalTransportConfigSync(streaming.config);
|
|
439
499
|
return {
|
|
440
500
|
config: transport.config,
|
|
441
|
-
changes: [
|
|
501
|
+
changes: [
|
|
502
|
+
...accountKeys.changes,
|
|
503
|
+
...streaming.changes,
|
|
504
|
+
...transport.changes
|
|
505
|
+
],
|
|
442
506
|
...transport.warnings?.length ? { warnings: transport.warnings } : {}
|
|
443
507
|
};
|
|
444
508
|
}
|
|
445
509
|
//#endregion
|
|
446
|
-
export { migrateLegacySignalTransportConfig as i, normalizeCompatibilityConfig as n,
|
|
510
|
+
export { migrateLegacySignalTransportConfig as a, clearLegacySignalTransportFieldsForAccount as i, normalizeCompatibilityConfig as n, repairSignalAccountKeys as r, legacyConfigRules as t };
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { isRecord, normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
2
|
+
import path from "node:path";
|
|
2
3
|
import { truncateUtf16Safe } from "openclaw/plugin-sdk/text-utility-runtime";
|
|
3
4
|
import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
|
|
4
|
-
import
|
|
5
|
+
import fs from "node:fs/promises";
|
|
5
6
|
import { CONFIG_DIR, extractArchive, resolveBrewExecutable } from "openclaw/plugin-sdk/setup-tools";
|
|
6
7
|
import { createWriteStream } from "node:fs";
|
|
7
|
-
import fs from "node:fs/promises";
|
|
8
8
|
import { Readable, Transform } from "node:stream";
|
|
9
9
|
import { pipeline } from "node:stream/promises";
|
|
10
10
|
import { readProviderJsonObjectResponse } from "openclaw/plugin-sdk/provider-http";
|
|
@@ -13,7 +13,6 @@ import { fetchWithSsrFGuard } from "openclaw/plugin-sdk/ssrf-runtime";
|
|
|
13
13
|
import { withTempDownloadPath } from "openclaw/plugin-sdk/temp-path";
|
|
14
14
|
//#region extensions/signal/src/install-signal-cli.ts
|
|
15
15
|
const MAX_SIGNAL_CLI_ARCHIVE_BYTES = 268435456;
|
|
16
|
-
/** @internal Exported for testing. */
|
|
17
16
|
const MAX_SIGNAL_CLI_EXTRACTED_BYTES = 402653184;
|
|
18
17
|
const SIGNAL_CLI_DOWNLOAD_TIMEOUT_MS = 3e5;
|
|
19
18
|
const SIGNAL_CLI_RELEASE_INFO_TIMEOUT_MS = 3e4;
|
|
@@ -290,4 +289,4 @@ async function installSignalCli(runtime) {
|
|
|
290
289
|
return installSignalCliViaBrew(runtime);
|
|
291
290
|
}
|
|
292
291
|
//#endregion
|
|
293
|
-
export {
|
|
292
|
+
export { looksLikeArchive as a, installSignalCliFromRelease as i, extractSignalCliArchive as n, pickAsset as o, installSignalCli as r, downloadToFile as t };
|
|
@@ -1,26 +1,28 @@
|
|
|
1
|
-
import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.
|
|
2
|
-
import {
|
|
3
|
-
import { i as resolveSignalAccount, o as resolveSignalReplyToMode } from "./accounts-
|
|
4
|
-
import { n as normalizeSignalMessagingTarget } from "./normalize-l_b99hap.
|
|
5
|
-
import { a as normalizeSignalAllowRecipient, c as resolveSignalSender, i as isSignalSenderAllowed, l as looksLikeUuid, n as formatSignalSenderDisplay, o as resolveSignalPeerId, r as formatSignalSenderId, s as resolveSignalRecipient, t as formatSignalPairingIdLine } from "./identity-YXPmgFMu.
|
|
6
|
-
import { c as resolveSignalReactionLevel, f as isSignalNativeApprovalHandlerConfigured, i as getOptionalSignalRuntime, l as formatSignalMediaText, n as registerSignalReplyContext, o as materializeSignalPresentationFallback } from "./transport-detection-
|
|
7
|
-
import { t as SignalSseRejectionError } from "./client-
|
|
8
|
-
import { n as signalRpcRequest, r as streamSignalEvents, t as signalCheck } from "./client-adapter-
|
|
9
|
-
import { n as sendReactionSignal } from "./reaction-runtime-api-
|
|
10
|
-
import { i as maybeResolveSignalApprovalReaction, o as registerSignalApprovalReactionTargetForDeliveredPayload, s as resolveSignalApprovalConversationKey, t as addSignalApprovalReactionHintToStructuredPayload } from "./approval-reactions-
|
|
11
|
-
import { r as registerSignalQuestionReactionTargetForDeliveredPayload, t as maybeResolveSignalQuestionReaction } from "./question-reactions-
|
|
12
|
-
import { n as sendReadReceiptSignal, r as sendTypingSignal, t as sendMessageSignal } from "./send-
|
|
1
|
+
import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.mjs";
|
|
2
|
+
import { i as normalizeSignalTransportHost } from "./transport-url-CAC0JcuI.mjs";
|
|
3
|
+
import { i as resolveSignalAccount, o as resolveSignalReplyToMode } from "./accounts-BV6tDOTc.mjs";
|
|
4
|
+
import { n as normalizeSignalMessagingTarget } from "./normalize-l_b99hap.mjs";
|
|
5
|
+
import { a as normalizeSignalAllowRecipient, c as resolveSignalSender, i as isSignalSenderAllowed, l as looksLikeUuid, n as formatSignalSenderDisplay, o as resolveSignalPeerId, r as formatSignalSenderId, s as resolveSignalRecipient, t as formatSignalPairingIdLine } from "./identity-YXPmgFMu.mjs";
|
|
6
|
+
import { c as resolveSignalReactionLevel, f as isSignalNativeApprovalHandlerConfigured, i as getOptionalSignalRuntime, l as formatSignalMediaText, n as registerSignalReplyContext, o as materializeSignalPresentationFallback } from "./transport-detection-CqyR2vG8.mjs";
|
|
7
|
+
import { a as prepareSignalSocketPath, t as SignalSseRejectionError } from "./client-BseAt7F7.mjs";
|
|
8
|
+
import { n as signalRpcRequest, r as streamSignalEvents, t as signalCheck } from "./client-adapter-dvFa47YL.mjs";
|
|
9
|
+
import { n as sendReactionSignal } from "./reaction-runtime-api-BnQGHcrB.mjs";
|
|
10
|
+
import { i as maybeResolveSignalApprovalReaction, o as registerSignalApprovalReactionTargetForDeliveredPayload, s as resolveSignalApprovalConversationKey, t as addSignalApprovalReactionHintToStructuredPayload } from "./approval-reactions-B25QoVJc.mjs";
|
|
11
|
+
import { r as registerSignalQuestionReactionTargetForDeliveredPayload, t as maybeResolveSignalQuestionReaction } from "./question-reactions-DSNAD0cd.mjs";
|
|
12
|
+
import { n as sendReadReceiptSignal, r as sendTypingSignal, t as sendMessageSignal } from "./send-CcetN4rk.mjs";
|
|
13
13
|
import { bindIngressLifecycleToReplyOptions, createChannelIngressError, createChannelIngressMonitor, createChannelMessageReplyPipeline, resolveChannelStreamingBlockEnabled } from "openclaw/plugin-sdk/channel-outbound";
|
|
14
14
|
import { createChannelPairingChallengeIssuer } from "openclaw/plugin-sdk/channel-pairing";
|
|
15
15
|
import { resolveAgentRoute, resolveInboundLastRouteSessionKey } from "openclaw/plugin-sdk/routing";
|
|
16
16
|
import { asPositiveSafeInteger, isRecord, normalizeNullableString, normalizeOptionalString, normalizeStringEntries } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
17
|
+
import path from "node:path";
|
|
17
18
|
import { CHANNEL_APPROVAL_NATIVE_RUNTIME_CONTEXT_CAPABILITY } from "openclaw/plugin-sdk/approval-handler-adapter-runtime";
|
|
18
19
|
import { normalizeE164, truncateUtf16Safe } from "openclaw/plugin-sdk/text-utility-runtime";
|
|
19
20
|
import { buildChannelInboundEventContext, buildMentionRegexes, createChannelInboundDebouncer, filterChannelInboundQuoteContext, formatInboundEnvelope, formatInboundFromLabel, formatInboundMediaUnavailableText, hasVisibleInboundReplyDispatch, logInboundDrop, matchesMentionPatterns, readAgentRunTerminalOutcome, resolveEnvelopeFormatOptions, resolveInboundDebounceMs, resolveInboundMentionDecision, resolveInboundSupplementalSenderAllowed, runChannelInboundEvent, shouldDebounceTextInbound, toHistoryMediaEntries, toInboundMediaFactsWithMetadata } from "openclaw/plugin-sdk/channel-inbound";
|
|
20
21
|
import { canonicalizeBase64, detectMime, estimateBase64DecodedBytes, kindFromMime, saveMediaBuffer } from "openclaw/plugin-sdk/media-runtime";
|
|
21
22
|
import { collectErrorGraphCandidates, formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
|
|
22
23
|
import { ensurePortAvailable, extractErrorCode, formatErrorMessage as formatErrorMessage$1, resolvePinnedMainDmOwnerFromAllowlist } from "openclaw/plugin-sdk/security-runtime";
|
|
23
|
-
import
|
|
24
|
+
import { spawn } from "node:child_process";
|
|
25
|
+
import os from "node:os";
|
|
24
26
|
import { resolveChannelGroupPolicy, resolveChannelGroupRequireMention, resolveChannelGroups, resolveChannelGroupsConfigPath } from "openclaw/plugin-sdk/channel-policy";
|
|
25
27
|
import { registerChannelRuntimeContext } from "openclaw/plugin-sdk/channel-runtime-context";
|
|
26
28
|
import { DEFAULT_GROUP_HISTORY_LIMIT, createChannelHistoryWindow } from "openclaw/plugin-sdk/reply-history";
|
|
@@ -30,8 +32,6 @@ import { createRuntimeConfigReader, getRuntimeConfig } from "openclaw/plugin-sdk
|
|
|
30
32
|
import { computeBackoff, createNonExitingRuntime, danger, logVerbose, shouldLogVerbose, sleepWithAbort } from "openclaw/plugin-sdk/runtime-env";
|
|
31
33
|
import { resolveAllowlistProviderRuntimeGroupPolicy, resolveDefaultGroupPolicy, warnMissingProviderGroupPolicyFallbackOnce } from "openclaw/plugin-sdk/runtime-group-policy";
|
|
32
34
|
import { waitForTransportReady } from "openclaw/plugin-sdk/transport-ready-runtime";
|
|
33
|
-
import { spawn } from "node:child_process";
|
|
34
|
-
import os from "node:os";
|
|
35
35
|
import { createInterface } from "node:readline";
|
|
36
36
|
import { setTimeout as setTimeout$1 } from "node:timers/promises";
|
|
37
37
|
import { resolveHumanDelayConfig } from "openclaw/plugin-sdk/agent-runtime";
|
|
@@ -56,6 +56,12 @@ function formatSignalDaemonEndpoint(httpHost, httpPort) {
|
|
|
56
56
|
return `${httpHost.includes(":") ? `[${httpHost}]` : httpHost}:${httpPort}`;
|
|
57
57
|
}
|
|
58
58
|
async function assertSignalDaemonEndpointAvailable(params) {
|
|
59
|
+
if (params.socketPath) {
|
|
60
|
+
params.abortSignal?.throwIfAborted();
|
|
61
|
+
await prepareSignalSocketPath(params.socketPath, params.abortSignal);
|
|
62
|
+
params.abortSignal?.throwIfAborted();
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
59
65
|
try {
|
|
60
66
|
await ensurePortAvailable(params.httpPort, params.httpHost, params.abortSignal);
|
|
61
67
|
} catch (error) {
|
|
@@ -123,9 +129,11 @@ function buildDaemonArgs(opts) {
|
|
|
123
129
|
if (opts.configPath?.trim()) args.push("--config", resolveSignalCliConfigPath(opts.configPath));
|
|
124
130
|
if (opts.account) args.push("-a", opts.account);
|
|
125
131
|
args.push("daemon");
|
|
126
|
-
args.push("--
|
|
132
|
+
if (opts.socketPath) args.push("--socket", opts.socketPath);
|
|
133
|
+
else args.push("--http", `${opts.httpHost}:${opts.httpPort}`);
|
|
127
134
|
args.push("--no-receive-stdout");
|
|
128
|
-
if (opts.
|
|
135
|
+
if (opts.socketPath) args.push("--receive-mode", "manual");
|
|
136
|
+
else if (opts.receiveMode) args.push("--receive-mode", opts.receiveMode);
|
|
129
137
|
if (opts.ignoreAttachments) args.push("--ignore-attachments");
|
|
130
138
|
if (opts.ignoreStories) args.push("--ignore-stories");
|
|
131
139
|
if (opts.sendReadReceipts) args.push("--send-read-receipts");
|
|
@@ -1559,9 +1567,9 @@ function createSignalEventHandler(deps) {
|
|
|
1559
1567
|
}
|
|
1560
1568
|
//#endregion
|
|
1561
1569
|
//#region extensions/signal/src/reaction-targets.ts
|
|
1562
|
-
function registerSignalReactionTargetsForDeliveredPayload(params) {
|
|
1570
|
+
async function registerSignalReactionTargetsForDeliveredPayload(params) {
|
|
1563
1571
|
registerSignalQuestionReactionTargetForDeliveredPayload(params);
|
|
1564
|
-
registerSignalApprovalReactionTargetForDeliveredPayload(params);
|
|
1572
|
+
await registerSignalApprovalReactionTargetForDeliveredPayload(params);
|
|
1565
1573
|
}
|
|
1566
1574
|
//#endregion
|
|
1567
1575
|
//#region extensions/signal/src/signal-ingress.ts
|
|
@@ -1919,7 +1927,7 @@ async function deliverReplies(params) {
|
|
|
1919
1927
|
sendText: send,
|
|
1920
1928
|
sendMedia: ({ mediaUrl, caption }) => send(caption ?? "", mediaUrl)
|
|
1921
1929
|
}) !== "empty") {
|
|
1922
|
-
registerSignalReactionTargetsForDeliveredPayload({
|
|
1930
|
+
await registerSignalReactionTargetsForDeliveredPayload({
|
|
1923
1931
|
cfg: params.cfg,
|
|
1924
1932
|
target: {
|
|
1925
1933
|
channel: "signal",
|
|
@@ -1968,6 +1976,8 @@ async function monitorSignalProvider(opts = {}) {
|
|
|
1968
1976
|
const mediaMaxBytes = (opts.mediaMaxMb ?? accountInfo.config.mediaMaxMb ?? 8) * 1024 * 1024;
|
|
1969
1977
|
const transportKind = accountInfo.transport.kind;
|
|
1970
1978
|
const managedTransport = accountInfo.transport.kind === "managed-native" ? accountInfo.transport : void 0;
|
|
1979
|
+
const socketPath = managedTransport?.socketPath;
|
|
1980
|
+
if (socketPath && (opts.baseUrl !== void 0 || opts.httpHost !== void 0 || opts.httpPort !== void 0)) throw new Error("Signal socket transport cannot be combined with HTTP endpoint overrides");
|
|
1971
1981
|
const ignoreAttachments = opts.ignoreAttachments ?? accountInfo.config.ignoreAttachments ?? false;
|
|
1972
1982
|
const sendReadReceipts = Boolean(opts.sendReadReceipts ?? accountInfo.config.sendReadReceipts);
|
|
1973
1983
|
const waitForTransportReadyFn = opts.waitForTransportReady ?? waitForTransportReady;
|
|
@@ -1990,6 +2000,7 @@ async function monitorSignalProvider(opts = {}) {
|
|
|
1990
2000
|
await assertSignalDaemonEndpointAvailable({
|
|
1991
2001
|
httpHost,
|
|
1992
2002
|
httpPort,
|
|
2003
|
+
...socketPath ? { socketPath } : {},
|
|
1993
2004
|
abortSignal: endpointProbeSignal
|
|
1994
2005
|
});
|
|
1995
2006
|
} catch (error) {
|
|
@@ -2005,6 +2016,7 @@ async function monitorSignalProvider(opts = {}) {
|
|
|
2005
2016
|
account,
|
|
2006
2017
|
httpHost,
|
|
2007
2018
|
httpPort,
|
|
2019
|
+
...socketPath ? { socketPath } : {},
|
|
2008
2020
|
receiveMode: opts.receiveMode ?? managedTransport?.receiveMode,
|
|
2009
2021
|
ignoreAttachments: opts.ignoreAttachments ?? accountInfo.config.ignoreAttachments,
|
|
2010
2022
|
ignoreStories: opts.ignoreStories ?? managedTransport?.ignoreStories,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.
|
|
2
|
-
import { t as detectSignalTransport } from "./transport-detection-
|
|
3
|
-
import { n as signalRpcRequest, t as signalCheck } from "./client-adapter-
|
|
1
|
+
import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.mjs";
|
|
2
|
+
import { t as detectSignalTransport } from "./transport-detection-CqyR2vG8.mjs";
|
|
3
|
+
import { n as signalRpcRequest, t as signalCheck } from "./client-adapter-dvFa47YL.mjs";
|
|
4
4
|
import { runChannelProbe } from "openclaw/plugin-sdk/text-utility-runtime";
|
|
5
5
|
import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
|
|
6
6
|
//#region extensions/signal/src/probe.ts
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.
|
|
2
|
-
import { i as resolveSignalDeliveredConversationKey } from "./approval-auth-
|
|
3
|
-
import { c as resolveSignalApprovalTargetAuthorKeys } from "./approval-reactions-
|
|
1
|
+
import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.mjs";
|
|
2
|
+
import { i as resolveSignalDeliveredConversationKey } from "./approval-auth-BBI9BTRm.mjs";
|
|
3
|
+
import { c as resolveSignalApprovalTargetAuthorKeys } from "./approval-reactions-B25QoVJc.mjs";
|
|
4
4
|
import { createQuestionReactionTargetStore, questionGatewayRuntime } from "openclaw/plugin-sdk/question-gateway-runtime";
|
|
5
5
|
import { normalizeAccountId } from "openclaw/plugin-sdk/routing";
|
|
6
6
|
//#region extensions/signal/src/question-reactions.ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { i as resolveSignalAccount } from "./accounts-
|
|
2
|
-
import { r as normalizeSignalReactionRecipient } from "./normalize-l_b99hap.
|
|
3
|
-
import { n as signalRpcRequest } from "./client-adapter-
|
|
4
|
-
import { t as resolveSignalRpcContext } from "./rpc-context-
|
|
1
|
+
import { i as resolveSignalAccount } from "./accounts-BV6tDOTc.mjs";
|
|
2
|
+
import { r as normalizeSignalReactionRecipient } from "./normalize-l_b99hap.mjs";
|
|
3
|
+
import { n as signalRpcRequest } from "./client-adapter-dvFa47YL.mjs";
|
|
4
|
+
import { t as resolveSignalRpcContext } from "./rpc-context-CwwADZ1b.mjs";
|
|
5
5
|
import { requireRuntimeConfig } from "openclaw/plugin-sdk/plugin-config-runtime";
|
|
6
6
|
//#region extensions/signal/src/send-reactions.ts
|
|
7
7
|
async function sendReactionSignalCore(params) {
|
|
@@ -38,7 +38,8 @@ async function sendReactionSignalCore(params) {
|
|
|
38
38
|
timestamp: (await signalRpcRequest("sendReaction", requestParams, {
|
|
39
39
|
baseUrl,
|
|
40
40
|
timeoutMs: params.opts.timeoutMs,
|
|
41
|
-
transportKind: params.opts.transportKind ?? accountInfo.transport.kind
|
|
41
|
+
transportKind: params.opts.transportKind ?? accountInfo.transport.kind,
|
|
42
|
+
assertDirectAdapterHandoff: params.opts.assertDirectAdapterHandoff
|
|
42
43
|
}))?.timestamp
|
|
43
44
|
};
|
|
44
45
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { i as resolveSignalAccount } from "./accounts-
|
|
2
|
-
import { n as normalizeSignalMessagingTarget } from "./normalize-l_b99hap.
|
|
3
|
-
import { n as registerSignalReplyContext, u as markdownToSignalText } from "./transport-detection-
|
|
4
|
-
import { n as signalRpcRequest } from "./client-adapter-
|
|
5
|
-
import { t as resolveSignalRpcContext } from "./rpc-context-
|
|
1
|
+
import { i as resolveSignalAccount } from "./accounts-BV6tDOTc.mjs";
|
|
2
|
+
import { n as normalizeSignalMessagingTarget } from "./normalize-l_b99hap.mjs";
|
|
3
|
+
import { n as registerSignalReplyContext, u as markdownToSignalText } from "./transport-detection-CqyR2vG8.mjs";
|
|
4
|
+
import { n as signalRpcRequest } from "./client-adapter-dvFa47YL.mjs";
|
|
5
|
+
import { t as resolveSignalRpcContext } from "./rpc-context-CwwADZ1b.mjs";
|
|
6
6
|
import { createMessageReceiptFromOutboundResults } from "openclaw/plugin-sdk/channel-outbound";
|
|
7
7
|
import { resolveMarkdownTableMode } from "openclaw/plugin-sdk/markdown-table-runtime";
|
|
8
8
|
import { normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
@@ -189,7 +189,8 @@ async function sendMessageSignal(to, text, opts) {
|
|
|
189
189
|
baseUrl,
|
|
190
190
|
timeoutMs: opts.timeoutMs,
|
|
191
191
|
transportKind: opts.transportKind ?? accountInfo.transport.kind,
|
|
192
|
-
maxAttachmentBytes: maxBytes
|
|
192
|
+
maxAttachmentBytes: maxBytes,
|
|
193
|
+
assertDirectAdapterHandoff: opts.assertDirectAdapterHandoff
|
|
193
194
|
};
|
|
194
195
|
let nativeReplyStatus;
|
|
195
196
|
let result;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { r as sendTypingSignal, t as sendMessageSignal } from "./send-
|
|
1
|
+
import { r as sendTypingSignal, t as sendMessageSignal } from "./send-CcetN4rk.mjs";
|
|
2
2
|
export { sendMessageSignal, sendTypingSignal };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { i as resolveSignalAccount, n as listSignalAccountIds, r as resolveDefaultSignalAccountId, t as listEnabledSignalAccounts } from "./accounts-
|
|
3
|
-
import { n as normalizeSignalMessagingTarget, r as normalizeSignalReactionRecipient } from "./normalize-l_b99hap.
|
|
4
|
-
import { n as signalApprovalAuth, t as getSignalApprovalApprovers } from "./approval-auth-
|
|
5
|
-
import { n as sendReactionSignal, t as removeReactionSignal } from "./reaction-runtime-api-
|
|
1
|
+
import { a as normalizeSignalTransportUrl } from "./transport-url-CAC0JcuI.mjs";
|
|
2
|
+
import { i as resolveSignalAccount, n as listSignalAccountIds, r as resolveDefaultSignalAccountId, t as listEnabledSignalAccounts } from "./accounts-BV6tDOTc.mjs";
|
|
3
|
+
import { n as normalizeSignalMessagingTarget, r as normalizeSignalReactionRecipient } from "./normalize-l_b99hap.mjs";
|
|
4
|
+
import { n as signalApprovalAuth, t as getSignalApprovalApprovers } from "./approval-auth-BBI9BTRm.mjs";
|
|
5
|
+
import { n as sendReactionSignal, t as removeReactionSignal } from "./reaction-runtime-api-BnQGHcrB.mjs";
|
|
6
6
|
import { DEFAULT_ACCOUNT_ID } from "openclaw/plugin-sdk/account-id";
|
|
7
7
|
import { questionGatewayRuntime } from "openclaw/plugin-sdk/question-gateway-runtime";
|
|
8
8
|
import { parseAgentSessionKey } from "openclaw/plugin-sdk/routing";
|
|
@@ -74,7 +74,7 @@ const signalApproval = createApproverRestrictedNativeApprovalCapabilityFromForwa
|
|
|
74
74
|
approvalKind,
|
|
75
75
|
request
|
|
76
76
|
}),
|
|
77
|
-
load: async () => (await import("./approval-handler.runtime-
|
|
77
|
+
load: async () => (await import("./approval-handler.runtime-Clf_1IZj.mjs")).signalApprovalNativeRuntime
|
|
78
78
|
})
|
|
79
79
|
});
|
|
80
80
|
const signalApprovalRouting = signalApproval.routing;
|
|
@@ -170,6 +170,7 @@ function markdownToSignalText(markdown, options = {}) {
|
|
|
170
170
|
}
|
|
171
171
|
function markdownToSignalTextChunks(markdown, limit, options = {}) {
|
|
172
172
|
const ir = markdownToSignalIR(markdown, options);
|
|
173
|
+
if (ir.listItems && ir.text.length > limit) ir.listItems = ir.listItems.map((item) => ({ ...item }));
|
|
173
174
|
return renderMarkdownIRChunksWithinLimit({
|
|
174
175
|
ir,
|
|
175
176
|
limit,
|
|
@@ -235,7 +236,8 @@ async function mutateSignalReaction(params) {
|
|
|
235
236
|
accountId: params.accountId,
|
|
236
237
|
groupId: params.target.groupId,
|
|
237
238
|
targetAuthor: params.targetAuthor,
|
|
238
|
-
targetAuthorUuid: params.targetAuthorUuid
|
|
239
|
+
targetAuthorUuid: params.targetAuthorUuid,
|
|
240
|
+
...params.assertDirectAdapterHandoff ? { assertDirectAdapterHandoff: params.assertDirectAdapterHandoff } : {}
|
|
239
241
|
};
|
|
240
242
|
await (params.remove ? removeReactionSignal : sendReactionSignal)(params.target.recipient ?? "", params.timestamp, params.emoji, options);
|
|
241
243
|
return jsonResult({
|
|
@@ -264,7 +266,7 @@ const signalMessageActions = {
|
|
|
264
266
|
replyToId: normalizedReplyToId
|
|
265
267
|
};
|
|
266
268
|
},
|
|
267
|
-
handleAction: async ({ action, params, cfg, accountId, toolContext }) => {
|
|
269
|
+
handleAction: async ({ action, params, cfg, accountId, toolContext, assertDirectAdapterHandoff }) => {
|
|
268
270
|
if (action === "send") throw new Error("Send should be handled by outbound, not actions handler.");
|
|
269
271
|
if (action === "react") {
|
|
270
272
|
const account = resolveSignalAccount({
|
|
@@ -306,7 +308,8 @@ const signalMessageActions = {
|
|
|
306
308
|
emoji,
|
|
307
309
|
remove: Boolean(remove),
|
|
308
310
|
targetAuthor,
|
|
309
|
-
targetAuthorUuid
|
|
311
|
+
targetAuthorUuid,
|
|
312
|
+
assertDirectAdapterHandoff
|
|
310
313
|
});
|
|
311
314
|
}
|
|
312
315
|
throw new Error(`Action ${action} not supported for ${providerId}.`);
|
|
@@ -405,6 +408,7 @@ function resolveSourceTimestamp(value) {
|
|
|
405
408
|
function mergeReplyContext(current, next) {
|
|
406
409
|
if (!current) return next;
|
|
407
410
|
if (current.kind === "ambiguous") return current;
|
|
411
|
+
if (next.kind === "ambiguous") return next;
|
|
408
412
|
if (current.author !== next.author) {
|
|
409
413
|
const { author: _author, body: _body, media: _media, ...identity } = next;
|
|
410
414
|
return {
|
|
@@ -450,7 +454,8 @@ async function registerSignalReplyContext(params) {
|
|
|
450
454
|
pruneMemoryReplyContexts(registeredAt);
|
|
451
455
|
return;
|
|
452
456
|
}
|
|
453
|
-
|
|
457
|
+
const usesComparisons = Boolean(store.observe && store.compareAndApply);
|
|
458
|
+
if (!store.update && !usesComparisons) {
|
|
454
459
|
const next = mergeReplyContext(memoryReplyContexts.get(key), record);
|
|
455
460
|
memoryReplyContexts.set(key, {
|
|
456
461
|
...next,
|
|
@@ -464,18 +469,46 @@ async function registerSignalReplyContext(params) {
|
|
|
464
469
|
}).warn("Signal persistent reply author state lacks atomic updates");
|
|
465
470
|
return;
|
|
466
471
|
}
|
|
472
|
+
const cachedBeforeUpdate = memoryReplyContexts.get(key);
|
|
473
|
+
const cacheReplyContext = (next) => {
|
|
474
|
+
const current = memoryReplyContexts.get(key);
|
|
475
|
+
const changedDuringUpdate = usesComparisons && current !== cachedBeforeUpdate;
|
|
476
|
+
if (!next) {
|
|
477
|
+
if (!changedDuringUpdate) memoryReplyContexts.delete(key);
|
|
478
|
+
return;
|
|
479
|
+
}
|
|
480
|
+
const concurrent = changedDuringUpdate && current && current.expiresAt > registeredAt ? current : void 0;
|
|
481
|
+
memoryReplyContexts.set(key, {
|
|
482
|
+
...concurrent ? mergeReplyContext(concurrent, next) : next,
|
|
483
|
+
expiresAt: Math.max(expiresAt, concurrent?.expiresAt ?? expiresAt)
|
|
484
|
+
});
|
|
485
|
+
};
|
|
467
486
|
let updateEvaluated = false;
|
|
468
487
|
let nextRecord;
|
|
469
488
|
try {
|
|
470
|
-
|
|
489
|
+
let updated = false;
|
|
490
|
+
if (store.observe && store.compareAndApply) {
|
|
491
|
+
let observation = await store.observe(key);
|
|
492
|
+
for (;;) {
|
|
493
|
+
updateEvaluated = true;
|
|
494
|
+
nextRecord = mergeReplyContext(observation.value, record);
|
|
495
|
+
const result = await store.compareAndApply(key, observation.comparison, {
|
|
496
|
+
operation: "update",
|
|
497
|
+
action: "set",
|
|
498
|
+
value: nextRecord
|
|
499
|
+
});
|
|
500
|
+
if (result.status !== "conflict") {
|
|
501
|
+
updated = result.status === "applied";
|
|
502
|
+
break;
|
|
503
|
+
}
|
|
504
|
+
observation = result.current;
|
|
505
|
+
}
|
|
506
|
+
} else if (store.update) updated = await store.update(key, (current) => {
|
|
471
507
|
updateEvaluated = true;
|
|
472
508
|
nextRecord = mergeReplyContext(current, record);
|
|
473
509
|
return nextRecord;
|
|
474
|
-
}) && nextRecord) memoryReplyContexts.set(key, {
|
|
475
|
-
...nextRecord,
|
|
476
|
-
expiresAt
|
|
477
510
|
});
|
|
478
|
-
|
|
511
|
+
cacheReplyContext(updated ? nextRecord : void 0);
|
|
479
512
|
pruneMemoryReplyContexts(registeredAt);
|
|
480
513
|
} catch (error) {
|
|
481
514
|
if (!updateEvaluated) try {
|
|
@@ -484,11 +517,7 @@ async function registerSignalReplyContext(params) {
|
|
|
484
517
|
nextRecord = void 0;
|
|
485
518
|
}
|
|
486
519
|
const next = nextRecord;
|
|
487
|
-
if (next)
|
|
488
|
-
...next,
|
|
489
|
-
expiresAt
|
|
490
|
-
});
|
|
491
|
-
else if (updateEvaluated) memoryReplyContexts.delete(key);
|
|
520
|
+
if (next || updateEvaluated) cacheReplyContext(next);
|
|
492
521
|
pruneMemoryReplyContexts(registeredAt);
|
|
493
522
|
getOptionalSignalRuntime()?.logging.getChildLogger({
|
|
494
523
|
plugin: "signal",
|
|
@@ -523,7 +552,7 @@ const DEFAULT_PROBE_TIMEOUT_MS = 1e4;
|
|
|
523
552
|
async function detectSignalTransport(params) {
|
|
524
553
|
const url = normalizeSignalTransportUrl(params.url);
|
|
525
554
|
const timeoutMs = params.timeoutMs ?? DEFAULT_PROBE_TIMEOUT_MS;
|
|
526
|
-
const probes = params.probeNative && params.probeContainer ? void 0 : await import("./transport-probes.runtime-
|
|
555
|
+
const probes = params.probeNative && params.probeContainer ? void 0 : await import("./transport-probes.runtime-WprAyBbL.mjs");
|
|
527
556
|
const probeNative = params.probeNative ?? probes?.nativeCheck;
|
|
528
557
|
const probeContainer = params.probeContainer ?? probes?.containerCheck;
|
|
529
558
|
if (!probeNative || !probeContainer) throw new Error("Signal transport probes are unavailable");
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as detectSignalTransport } from "./transport-detection-
|
|
1
|
+
import { t as detectSignalTransport } from "./transport-detection-CqyR2vG8.mjs";
|
|
2
2
|
export { detectSignalTransport };
|
|
@@ -1,35 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
//#region extensions/signal/src/transport-url.ts
|
|
3
|
-
function normalizeSignalTransportUrl(value) {
|
|
4
|
-
const trimmed = value.trim();
|
|
5
|
-
if (!trimmed) throw new Error("Signal transport URL is required");
|
|
6
|
-
if (/^https?:/i.test(trimmed) && !/^https?:\/\/[^/]/i.test(trimmed)) throw new Error("Signal transport URL has a malformed HTTP scheme");
|
|
7
|
-
const explicitScheme = /^([a-z][a-z0-9+.-]*):\/\//i.exec(trimmed)?.[1]?.toLowerCase();
|
|
8
|
-
if (explicitScheme && explicitScheme !== "http" && explicitScheme !== "https") throw new Error(`Signal transport URL unsupported protocol: ${explicitScheme}:`);
|
|
9
|
-
const parsed = new URL(/^https?:\/\//i.test(trimmed) ? trimmed : `http://${trimmed}`);
|
|
10
|
-
if (parsed.protocol !== "http:" && parsed.protocol !== "https:") throw new Error(`Signal transport URL unsupported protocol: ${parsed.protocol}`);
|
|
11
|
-
if (parsed.username || parsed.password) throw new Error("Signal transport URL must not include credentials");
|
|
12
|
-
const pathname = parsed.pathname === "/" ? "" : parsed.pathname.replace(/\/+$/, "");
|
|
13
|
-
return `${parsed.protocol}//${parsed.host}${pathname}`;
|
|
14
|
-
}
|
|
15
|
-
function normalizeSignalTransportHost(host) {
|
|
16
|
-
const trimmedHost = host.trim();
|
|
17
|
-
const hasOpeningBracket = trimmedHost.startsWith("[");
|
|
18
|
-
if (hasOpeningBracket !== trimmedHost.endsWith("]")) throw new Error("Signal transport host has mismatched IPv6 brackets");
|
|
19
|
-
const normalizedHost = hasOpeningBracket ? trimmedHost.slice(1, -1) : trimmedHost;
|
|
20
|
-
if (!normalizedHost || /[\s/\\?#@]/.test(normalizedHost)) throw new Error("Signal transport host must be a hostname or IP address");
|
|
21
|
-
if (isIP(normalizedHost) === 0) {
|
|
22
|
-
const hostname = normalizedHost.endsWith(".") ? normalizedHost.slice(0, -1) : normalizedHost;
|
|
23
|
-
const labels = hostname.split(".");
|
|
24
|
-
if (hostname.length > 253 || labels.some((label) => !label || label.length > 63 || !/^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i.test(label))) throw new Error("Signal transport host must be a hostname or IP address");
|
|
25
|
-
}
|
|
26
|
-
return normalizedHost;
|
|
27
|
-
}
|
|
28
|
-
function buildSignalTransportHttpUrl(host, port) {
|
|
29
|
-
const normalizedHost = normalizeSignalTransportHost(host);
|
|
30
|
-
return normalizeSignalTransportUrl(`http://${normalizedHost.includes(":") ? `[${normalizedHost}]` : normalizedHost}:${port}`);
|
|
31
|
-
}
|
|
32
|
-
//#endregion
|
|
1
|
+
import { a as normalizeSignalTransportUrl } from "./transport-url-CAC0JcuI.mjs";
|
|
33
2
|
//#region extensions/signal/src/transport-policy.ts
|
|
34
3
|
const DEFAULT_SIGNAL_MANAGED_NATIVE_PORT = 8080;
|
|
35
4
|
const DEFAULT_SIGNAL_MANAGED_NATIVE_HOST = "127.0.0.1";
|
|
@@ -96,4 +65,4 @@ function assignSignalManagedNativePort(transport, httpPort) {
|
|
|
96
65
|
};
|
|
97
66
|
}
|
|
98
67
|
//#endregion
|
|
99
|
-
export { isSignalManagedNativeConnectionUrlForBind as a,
|
|
68
|
+
export { isSignalManagedNativeConnectionUrlForBind as a, assignSignalManagedNativePort as i, DEFAULT_SIGNAL_MANAGED_NATIVE_PORT as n, isValidSignalManagedNativePort as o, allocateSignalManagedNativePort as r, resolveLocalSignalTransportPort as s, DEFAULT_SIGNAL_MANAGED_NATIVE_HOST as t };
|