@openclaw/synology-chat 2026.5.14-beta.1 → 2026.5.16-beta.1

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/api.js CHANGED
@@ -1,3 +1,3 @@
1
- import { n as setSynologyRuntime, t as synologyChatPlugin } from "./channel-DAIaEPbO.js";
1
+ import { n as setSynologyRuntime, t as synologyChatPlugin } from "./channel-Df_bkk4u.js";
2
2
  import { t as collectSynologyChatSecurityAuditFindings } from "./security-audit-Zu_nkF2x.js";
3
3
  export { collectSynologyChatSecurityAuditFindings, setSynologyRuntime, synologyChatPlugin };
@@ -1,4 +1,4 @@
1
- import { i as resolveAccount, n as synologyChatSetupWizard, r as listAccountIds, t as synologyChatSetupAdapter } from "./setup-surface-M48VQ4Kr.js";
1
+ import { i as resolveAccount, n as synologyChatSetupWizard, r as listAccountIds, t as synologyChatSetupAdapter } from "./setup-surface-t-SRfK2q.js";
2
2
  import { t as collectSynologyChatSecurityAuditFindings } from "./security-audit-Zu_nkF2x.js";
3
3
  import { DEFAULT_ACCOUNT_ID } from "openclaw/plugin-sdk/account-id";
4
4
  import { createHybridChannelConfigAdapter, createScopedDmSecurityResolver } from "openclaw/plugin-sdk/channel-config-helpers";
@@ -1,2 +1,2 @@
1
- import { t as synologyChatPlugin } from "./channel-DAIaEPbO.js";
1
+ import { t as synologyChatPlugin } from "./channel-Df_bkk4u.js";
2
2
  export { synologyChatPlugin };
package/dist/setup-api.js CHANGED
@@ -1,2 +1,2 @@
1
- import { n as synologyChatSetupWizard, t as synologyChatSetupAdapter } from "./setup-surface-M48VQ4Kr.js";
1
+ import { n as synologyChatSetupWizard, t as synologyChatSetupAdapter } from "./setup-surface-t-SRfK2q.js";
2
2
  export { synologyChatSetupAdapter, synologyChatSetupWizard };
@@ -1,7 +1,7 @@
1
1
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
2
2
  import { DEFAULT_ACCOUNT_ID, listCombinedAccountIds, resolveMergedAccountConfig } from "openclaw/plugin-sdk/account-resolution";
3
3
  import { resolveDangerousNameMatchingEnabled } from "openclaw/plugin-sdk/dangerous-name-runtime";
4
- import { DEFAULT_ACCOUNT_ID as DEFAULT_ACCOUNT_ID$1, createAllowFromSection, createStandardChannelSetupStatus, formatDocsLink, mergeAllowFromEntries, normalizeAccountId, setSetupChannelEnabled, splitSetupEntries } from "openclaw/plugin-sdk/setup";
4
+ import { DEFAULT_ACCOUNT_ID as DEFAULT_ACCOUNT_ID$1, createAllowFromSection, createSetupTranslator, createStandardChannelSetupStatus, formatDocsLink, mergeAllowFromEntries, normalizeAccountId, setSetupChannelEnabled, splitSetupEntries } from "openclaw/plugin-sdk/setup";
5
5
  //#region extensions/synology-chat/src/accounts.ts
6
6
  /**
7
7
  * Account resolution: reads config from channels.synology-chat,
@@ -98,21 +98,22 @@ function resolveAccount(cfg, accountId) {
98
98
  }
99
99
  //#endregion
100
100
  //#region extensions/synology-chat/src/setup-surface.ts
101
+ const t = createSetupTranslator();
101
102
  const channel = "synology-chat";
102
103
  const DEFAULT_WEBHOOK_PATH = "/webhook/synology";
103
104
  const SYNOLOGY_SETUP_HELP_LINES = [
104
- "1) Create an incoming webhook in Synology Chat and copy its URL",
105
- "2) Create an outgoing webhook and copy its secret token",
106
- `3) Point the outgoing webhook to https://<gateway-host>${DEFAULT_WEBHOOK_PATH}`,
107
- "4) Keep allowed user IDs handy for DM allowlisting",
105
+ t("wizard.synologyChat.helpIncomingWebhook"),
106
+ t("wizard.synologyChat.helpOutgoingWebhook"),
107
+ t("wizard.synologyChat.helpPointWebhook", { path: DEFAULT_WEBHOOK_PATH }),
108
+ t("wizard.synologyChat.helpAllowedUsers"),
108
109
  `Docs: ${formatDocsLink("/channels/synology-chat", "channels/synology-chat")}`
109
110
  ];
110
111
  const SYNOLOGY_ALLOW_FROM_HELP_LINES = [
111
- "Allowlist Synology Chat DMs by numeric user id.",
112
- "Examples:",
112
+ t("wizard.synologyChat.allowlistIntro"),
113
+ t("wizard.synologyChat.examples"),
113
114
  "- 123456",
114
115
  "- synology-chat:123456",
115
- "Multiple entries: comma-separated.",
116
+ t("wizard.synologyChat.multipleEntries"),
116
117
  `Docs: ${formatDocsLink("/channels/synology-chat", "channels/synology-chat")}`
117
118
  ];
118
119
  function getChannelConfig(cfg) {
@@ -217,10 +218,10 @@ const synologyChatSetupWizard = {
217
218
  channel,
218
219
  status: createStandardChannelSetupStatus({
219
220
  channelLabel: "Synology Chat",
220
- configuredLabel: "configured",
221
- unconfiguredLabel: "needs token + incoming webhook",
222
- configuredHint: "configured",
223
- unconfiguredHint: "needs token + incoming webhook",
221
+ configuredLabel: t("wizard.channels.statusConfigured"),
222
+ unconfiguredLabel: t("wizard.channels.statusNeedsTokenIncomingWebhook"),
223
+ configuredHint: t("wizard.channels.statusConfigured"),
224
+ unconfiguredHint: t("wizard.channels.statusNeedsTokenIncomingWebhook"),
224
225
  configuredScore: 1,
225
226
  unconfiguredScore: 0,
226
227
  includeStatusLine: true,
@@ -228,7 +229,7 @@ const synologyChatSetupWizard = {
228
229
  resolveExtraStatusLines: ({ cfg }) => [`Accounts: ${listAccountIds(cfg).length || 0}`]
229
230
  }),
230
231
  introNote: {
231
- title: "Synology Chat webhook setup",
232
+ title: t("wizard.synologyChat.setupTitle"),
232
233
  lines: SYNOLOGY_SETUP_HELP_LINES
233
234
  },
234
235
  credentials: [{
@@ -236,11 +237,11 @@ const synologyChatSetupWizard = {
236
237
  providerHint: channel,
237
238
  credentialLabel: "outgoing webhook token",
238
239
  preferredEnvVar: "SYNOLOGY_CHAT_TOKEN",
239
- helpTitle: "Synology Chat webhook token",
240
+ helpTitle: t("wizard.synologyChat.webhookTokenTitle"),
240
241
  helpLines: SYNOLOGY_SETUP_HELP_LINES,
241
- envPrompt: "SYNOLOGY_CHAT_TOKEN detected. Use env var?",
242
- keepPrompt: "Synology Chat webhook token already configured. Keep it?",
243
- inputPrompt: "Enter Synology Chat outgoing webhook token",
242
+ envPrompt: t("wizard.synologyChat.tokenEnvPrompt"),
243
+ keepPrompt: t("wizard.synologyChat.tokenKeep"),
244
+ inputPrompt: t("wizard.synologyChat.tokenInput"),
244
245
  allowEnv: ({ accountId }) => accountId === DEFAULT_ACCOUNT_ID$1,
245
246
  inspect: ({ cfg, accountId }) => {
246
247
  const account = resolveAccount(cfg, accountId);
@@ -268,12 +269,12 @@ const synologyChatSetupWizard = {
268
269
  }],
269
270
  textInputs: [{
270
271
  inputKey: "url",
271
- message: "Incoming webhook URL",
272
+ message: t("wizard.synologyChat.incomingWebhookUrlPrompt"),
272
273
  placeholder: "https://nas.example.com/webapi/entry.cgi?api=SYNO.Chat.External&method=incoming...",
273
- helpTitle: "Synology Chat incoming webhook",
274
- helpLines: ["Use the incoming webhook URL from Synology Chat integrations.", "This is the URL OpenClaw uses to send replies back to Chat."],
274
+ helpTitle: t("wizard.synologyChat.incomingWebhookTitle"),
275
+ helpLines: [t("wizard.synologyChat.incomingWebhookHelpUseUrl"), t("wizard.synologyChat.incomingWebhookHelpReplies")],
275
276
  currentValue: ({ cfg, accountId }) => getRawAccountConfig(cfg, accountId).incomingUrl?.trim(),
276
- keepPrompt: (value) => `Incoming webhook URL set (${value}). Keep it?`,
277
+ keepPrompt: (value) => t("wizard.synologyChat.incomingWebhookKeep", { value }),
277
278
  validate: ({ value }) => validateWebhookUrl(value),
278
279
  applySet: async ({ cfg, accountId, value }) => patchSynologyChatAccountConfig({
279
280
  cfg,
@@ -283,14 +284,14 @@ const synologyChatSetupWizard = {
283
284
  })
284
285
  }, {
285
286
  inputKey: "webhookPath",
286
- message: "Outgoing webhook path (optional)",
287
+ message: t("wizard.synologyChat.outgoingWebhookPathPrompt"),
287
288
  placeholder: DEFAULT_WEBHOOK_PATH,
288
289
  required: false,
289
290
  applyEmptyValue: true,
290
- helpTitle: "Synology Chat outgoing webhook path",
291
- helpLines: [`Default path: ${DEFAULT_WEBHOOK_PATH}`, "Change this only if you need multiple Synology Chat webhook routes."],
291
+ helpTitle: t("wizard.synologyChat.outgoingWebhookPathTitle"),
292
+ helpLines: [t("wizard.synologyChat.defaultPath", { path: DEFAULT_WEBHOOK_PATH }), t("wizard.synologyChat.outgoingWebhookPathHelp")],
292
293
  currentValue: ({ cfg, accountId }) => getRawAccountConfig(cfg, accountId).webhookPath?.trim(),
293
- keepPrompt: (value) => `Outgoing webhook path set (${value}). Keep it?`,
294
+ keepPrompt: (value) => t("wizard.synologyChat.outgoingWebhookPathKeep", { value }),
294
295
  validate: ({ value }) => validateWebhookPath(value),
295
296
  applySet: async ({ cfg, accountId, value }) => patchSynologyChatAccountConfig({
296
297
  cfg,
@@ -301,11 +302,11 @@ const synologyChatSetupWizard = {
301
302
  })
302
303
  }],
303
304
  allowFrom: createAllowFromSection({
304
- helpTitle: "Synology Chat allowlist",
305
+ helpTitle: t("wizard.synologyChat.allowlistTitle"),
305
306
  helpLines: SYNOLOGY_ALLOW_FROM_HELP_LINES,
306
- message: "Allowed Synology Chat user ids",
307
+ message: t("wizard.synologyChat.allowedUserIdsPrompt"),
307
308
  placeholder: "123456, 987654",
308
- invalidWithoutCredentialNote: "Synology Chat user ids must be numeric.",
309
+ invalidWithoutCredentialNote: t("wizard.synologyChat.allowedUserIdsInvalid"),
309
310
  parseInputs: splitSetupEntries,
310
311
  parseId: parseSynologyUserId,
311
312
  apply: async ({ cfg, accountId, allowFrom }) => patchSynologyChatAccountConfig({
@@ -319,7 +320,7 @@ const synologyChatSetupWizard = {
319
320
  })
320
321
  }),
321
322
  completionNote: {
322
- title: "Synology Chat access control",
323
+ title: t("wizard.synologyChat.accessControlTitle"),
323
324
  lines: [
324
325
  `Default outgoing webhook path: ${DEFAULT_WEBHOOK_PATH}`,
325
326
  "Set allowed user IDs, or manually switch `channels.synology-chat.dmPolicy` to `\"open\"` with `allowedUserIds: [\"*\"]` for public DMs.",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/synology-chat",
3
- "version": "2026.5.14-beta.1",
3
+ "version": "2026.5.16-beta.1",
4
4
  "description": "Synology Chat channel plugin for OpenClaw",
5
5
  "repository": {
6
6
  "type": "git",
@@ -30,10 +30,10 @@
30
30
  "minHostVersion": ">=2026.4.10"
31
31
  },
32
32
  "compat": {
33
- "pluginApi": ">=2026.5.14-beta.1"
33
+ "pluginApi": ">=2026.5.16-beta.1"
34
34
  },
35
35
  "build": {
36
- "openclawVersion": "2026.5.14-beta.1"
36
+ "openclawVersion": "2026.5.16-beta.1"
37
37
  },
38
38
  "release": {
39
39
  "publishToClawHub": true,
@@ -52,7 +52,7 @@
52
52
  "openclaw.plugin.json"
53
53
  ],
54
54
  "peerDependencies": {
55
- "openclaw": ">=2026.5.14-beta.1"
55
+ "openclaw": ">=2026.5.16-beta.1"
56
56
  },
57
57
  "peerDependenciesMeta": {
58
58
  "openclaw": {