@openclaw/sms 2026.7.2-beta.1 → 2026.7.2-beta.2

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.
@@ -10,10 +10,11 @@ import { chunkTextForOutbound, renderMarkdownIRChunksWithinLimit, sanitizeAssist
10
10
  import { DEFAULT_ACCOUNT_ID as DEFAULT_ACCOUNT_ID$1, listCombinedAccountIds, resolveAccountEntry, resolveListedDefaultAccountId, resolveMergedAccountConfig } from "openclaw/plugin-sdk/account-resolution";
11
11
  import { parseStrictInteger } from "openclaw/plugin-sdk/number-runtime";
12
12
  import { buildSecretInputSchema, hasConfiguredSecretInput, normalizeResolvedSecretInputString } from "openclaw/plugin-sdk/secret-input";
13
- import { AllowFromListSchema, DmPolicySchema, buildChannelConfigSchema, requireOpenAllowFrom } from "openclaw/plugin-sdk/channel-config-schema";
13
+ import { AllowFromListSchema, DmPolicySchema, buildChannelConfigSchema, buildMultiAccountChannelSchema, requireOpenAllowFrom } from "openclaw/plugin-sdk/channel-config-schema";
14
14
  import { requireChannelOpenAllowFrom } from "openclaw/plugin-sdk/extension-shared";
15
15
  import { z } from "zod";
16
16
  import { createFixedWindowRateLimiter, readRequestBodyWithLimit, registerPluginHttpRoute, resolveRequestClientIp } from "openclaw/plugin-sdk/webhook-ingress";
17
+ import { runDetachedWebhookWork } from "openclaw/plugin-sdk/webhook-request-guards";
17
18
  import { resolveStableChannelMessageIngress } from "openclaw/plugin-sdk/channel-ingress-runtime";
18
19
  import { createChannelPairingChallengeIssuer } from "openclaw/plugin-sdk/channel-pairing";
19
20
  import { createHmac } from "node:crypto";
@@ -132,7 +133,7 @@ function isSmsAccountConfigured(account) {
132
133
  //#endregion
133
134
  //#region extensions/sms/src/config-schema.ts
134
135
  const SecretInputSchema = buildSecretInputSchema();
135
- const SmsAccountConfigSchema = z.object({
136
+ const SmsChannelConfigSchema = buildChannelConfigSchema(buildMultiAccountChannelSchema(z.object({
136
137
  name: z.string().optional(),
137
138
  enabled: z.boolean().optional(),
138
139
  accountSid: z.string().optional(),
@@ -146,18 +147,17 @@ const SmsAccountConfigSchema = z.object({
146
147
  dmPolicy: DmPolicySchema.optional().default("pairing"),
147
148
  allowFrom: AllowFromListSchema,
148
149
  textChunkLimit: z.number().int().positive().optional()
149
- }).strict().superRefine((value, ctx) => {
150
- requireChannelOpenAllowFrom({
151
- channel: "sms",
152
- policy: value.dmPolicy,
153
- allowFrom: value.allowFrom,
154
- ctx,
155
- requireOpenAllowFrom
156
- });
157
- });
158
- const SmsChannelConfigSchema = buildChannelConfigSchema(SmsAccountConfigSchema.extend({
159
- accounts: z.record(z.string(), SmsAccountConfigSchema.optional()).optional(),
160
- defaultAccount: z.string().optional()
150
+ }).strict(), {
151
+ optionalAccount: true,
152
+ refine: (value, ctx) => {
153
+ requireChannelOpenAllowFrom({
154
+ channel: "sms",
155
+ policy: value.dmPolicy,
156
+ allowFrom: value.allowFrom,
157
+ ctx,
158
+ requireOpenAllowFrom
159
+ });
160
+ }
161
161
  }), { uiHints: {
162
162
  "": {
163
163
  label: "SMS",
@@ -885,13 +885,13 @@ function createSmsWebhookHandler(params) {
885
885
  respondTwiml(res, 429, "Replay cache saturated");
886
886
  return true;
887
887
  }
888
- dispatchSmsInboundEvent({
888
+ runDetachedWebhookWork(() => dispatchSmsInboundEvent({
889
889
  cfg: params.cfg,
890
890
  account: params.account,
891
891
  msg,
892
892
  channelRuntime: params.channelRuntime,
893
893
  log: params.log
894
- }).catch((err) => {
894
+ })).catch((err) => {
895
895
  params.log?.error?.(`SMS webhook dispatch failed: ${err instanceof Error ? err.message : String(err)}`);
896
896
  });
897
897
  respondTwiml(res, 200);
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@openclaw/sms",
3
- "version": "2026.7.2-beta.1",
3
+ "version": "2026.7.2-beta.2",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@openclaw/sms",
9
- "version": "2026.7.2-beta.1",
9
+ "version": "2026.7.2-beta.2",
10
10
  "dependencies": {
11
11
  "zod": "4.4.3"
12
12
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/sms",
3
- "version": "2026.7.2-beta.1",
3
+ "version": "2026.7.2-beta.2",
4
4
  "description": "OpenClaw SMS channel plugin for Twilio text messages.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -26,10 +26,10 @@
26
26
  "quickstartAllowFrom": true
27
27
  },
28
28
  "compat": {
29
- "pluginApi": ">=2026.7.2-beta.1"
29
+ "pluginApi": ">=2026.7.2-beta.2"
30
30
  },
31
31
  "build": {
32
- "openclawVersion": "2026.7.2-beta.1",
32
+ "openclawVersion": "2026.7.2-beta.2",
33
33
  "bundledDist": false
34
34
  },
35
35
  "install": {
@@ -54,7 +54,7 @@
54
54
  "README.md"
55
55
  ],
56
56
  "peerDependencies": {
57
- "openclaw": ">=2026.7.2-beta.1"
57
+ "openclaw": ">=2026.7.2-beta.2"
58
58
  },
59
59
  "peerDependenciesMeta": {
60
60
  "openclaw": {