@openclaw/nextcloud-talk 2026.10.10-beta.5 → 2026.11.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.
@@ -0,0 +1,2 @@
1
+ export { t as nextcloudTalkPlugin } from "./channel-BfPCgEGM.mjs";
2
+ import "../api.js";
@@ -1,7 +1,7 @@
1
- import { a as __exportAll, n as legacyConfigRules, o as __reExport, r as normalizeCompatibilityConfig } from "./doctor-contract-DwH950tH.mjs";
1
+ import { a as __exportAll, n as legacyConfigRules, o as __reExport, r as normalizeCompatibilityConfig } from "./doctor-contract-CkWQa5uZ.mjs";
2
2
  import { listNextcloudTalkAccountIds, mergeNextcloudTalkAccountConfig, resolveDefaultNextcloudTalkAccountId } from "../configured-state.js";
3
- import { a as logInboundDrop, c as warnMissingProviderGroupPolicyFallbackOnce, i as fetchWithSsrFGuard, l as getNextcloudTalkRuntime, n as createChannelPairingController, o as resolveAllowlistProviderRuntimeGroupPolicy, r as deliverFormattedTextWithAttachments, s as resolveDefaultGroupPolicy, t as GROUP_POLICY_BLOCKED_LABEL, u as getOptionalNextcloudTalkRuntime } from "./runtime-api-DVkVOUSo.mjs";
4
- import { n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./secret-contract-Bvm0PmP3.mjs";
3
+ import { a as logInboundDrop, c as warnMissingProviderGroupPolicyFallbackOnce, i as fetchWithSsrFGuard, l as getNextcloudTalkRuntime, n as createChannelPairingController, o as resolveAllowlistProviderRuntimeGroupPolicy, r as deliverFormattedTextWithAttachments, s as resolveDefaultGroupPolicy, t as GROUP_POLICY_BLOCKED_LABEL, u as getOptionalNextcloudTalkRuntime } from "./runtime-api-DSz4xBAm.mjs";
4
+ import { n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./secret-contract-yjCLewtg.mjs";
5
5
  import { describeWebhookAccountSnapshot } from "openclaw/plugin-sdk/account-helpers";
6
6
  import { buildChannelOutboundSessionRoute, createChatChannelPlugin } from "openclaw/plugin-sdk/channel-core";
7
7
  import { createLoggedPairingApprovalNotifier, createPairingPrefixStripper } from "openclaw/plugin-sdk/channel-pairing";
@@ -52,7 +52,7 @@ import { defineChannelSetupContract } from "openclaw/plugin-sdk/channel-setup";
52
52
  import { applyAccountNameToChannelSection, baseUrlTextInput, createPromptParsedAllowFromForAccount, createSetupTranslator, createStandardChannelSetupStatus, defineTokenCredential, formatDocsLink, patchScopedAccountConfig, setSetupChannelEnabled } from "openclaw/plugin-sdk/setup";
53
53
  import { createSetupInputPresenceValidator, createSetupTranslator as createSetupTranslator$1, mergeAllowFromEntries } from "openclaw/plugin-sdk/setup-runtime";
54
54
  import { formatDocsLink as formatDocsLink$1 } from "openclaw/plugin-sdk/setup-tools";
55
- //#region extensions/nextcloud-talk/src/api-credentials.ts
55
+ // extensions/nextcloud-talk/src/api-credentials.ts
56
56
  function resolveNextcloudTalkApiCredentialsResult(params) {
57
57
  const apiUser = params.apiUser?.trim();
58
58
  if (!apiUser) return { status: "missing" };
@@ -84,8 +84,7 @@ function resolveNextcloudTalkApiCredentials(params) {
84
84
  const result = resolveNextcloudTalkApiCredentialsResult(params);
85
85
  return result.status === "available" ? result.value : void 0;
86
86
  }
87
- //#endregion
88
- //#region extensions/nextcloud-talk/src/accounts.ts
87
+ // extensions/nextcloud-talk/src/accounts.ts
89
88
  function resolveNextcloudTalkSecret(accountId, merged) {
90
89
  const configuredSecret = resolveSecretInputString({
91
90
  value: merged.botSecret,
@@ -178,8 +177,7 @@ function inspectNextcloudTalkAccount(params) {
178
177
  function isNextcloudTalkAccountConfigured(account) {
179
178
  return Boolean(account.tokenStatus !== "missing" && account.baseUrl?.trim());
180
179
  }
181
- //#endregion
182
- //#region extensions/nextcloud-talk/src/approval-auth.ts
180
+ // extensions/nextcloud-talk/src/approval-auth.ts
183
181
  function normalizeNextcloudTalkApproverId(value) {
184
182
  return normalizeOptionalLowercaseString(String(value).trim().replace(/^(nextcloud-talk|nc-talk|nc):/i, ""));
185
183
  }
@@ -193,8 +191,7 @@ const nextcloudTalkApprovalAuth = createChannelApprovalAuth({
193
191
  },
194
192
  normalizeApprover: normalizeNextcloudTalkApproverId
195
193
  }).approvalAuth;
196
- //#endregion
197
- //#region extensions/nextcloud-talk/src/guarded-response.ts
194
+ // extensions/nextcloud-talk/src/guarded-response.ts
198
195
  async function readNextcloudTalkErrorBody(response, ...credentials) {
199
196
  try {
200
197
  let body = await readProviderTextResponse(response, "Nextcloud Talk error", {
@@ -207,8 +204,7 @@ async function readNextcloudTalkErrorBody(response, ...credentials) {
207
204
  return "";
208
205
  }
209
206
  }
210
- //#endregion
211
- //#region extensions/nextcloud-talk/src/signature.ts
207
+ // extensions/nextcloud-talk/src/signature.ts
212
208
  const SIGNATURE_HEADER = "x-nextcloud-talk-signature";
213
209
  const RANDOM_HEADER = "x-nextcloud-talk-random";
214
210
  const BACKEND_HEADER = "x-nextcloud-talk-backend";
@@ -245,8 +241,7 @@ function generateNextcloudTalkSignature(params) {
245
241
  signature: createHmac("sha256", secret).update(random + body).digest("hex")
246
242
  };
247
243
  }
248
- //#endregion
249
- //#region extensions/nextcloud-talk/src/bot-preflight.ts
244
+ // extensions/nextcloud-talk/src/bot-preflight.ts
250
245
  const BOT_FEATURE_RESPONSE = 2;
251
246
  function normalizeUrlForMatch(value) {
252
247
  const trimmed = value?.trim() ?? "";
@@ -347,8 +342,7 @@ async function probeNextcloudTalkBotResponseFeature(params) {
347
342
  };
348
343
  }
349
344
  }
350
- //#endregion
351
- //#region extensions/nextcloud-talk/src/channel.adapters.ts
345
+ // extensions/nextcloud-talk/src/channel.adapters.ts
352
346
  const nextcloudTalkConfigAdapter = createScopedChannelConfigAdapter({
353
347
  sectionKey: "nextcloud-talk",
354
348
  listAccountIds: listNextcloudTalkAccountIds,
@@ -388,8 +382,7 @@ const nextcloudTalkPairingTextAdapter = {
388
382
  message: "OpenClaw: your access has been approved.",
389
383
  normalizeAllowEntry: createPairingPrefixStripper(/^(nextcloud-talk|nc-talk|nc):/i, (entry) => normalizeLowercaseStringOrEmpty(entry))
390
384
  };
391
- //#endregion
392
- //#region extensions/nextcloud-talk/src/config-schema.ts
385
+ // extensions/nextcloud-talk/src/config-schema.ts
393
386
  const NextcloudTalkRoomSchema = buildGroupEntrySchema({ allowFrom: z.array(z.string()).optional() }).omit({ toolsBySender: true });
394
387
  const NextcloudTalkNetworkSchema = z.object({
395
388
  /** Dangerous opt-in for self-hosted Nextcloud Talk on trusted private/internal hosts. */
@@ -433,8 +426,7 @@ const NextcloudTalkConfigSchema = buildMultiAccountChannelSchema(NextcloudTalkAc
433
426
  });
434
427
  }
435
428
  });
436
- //#endregion
437
- //#region src/gateway/gateway-http-route-contracts.ts
429
+ // src/gateway/gateway-http-route-contracts.ts
438
430
  const GATEWAY_PROBE_ROUTES = /* @__PURE__ */ new Map([
439
431
  ["/health", "live"],
440
432
  ["/healthz", "live"],
@@ -450,8 +442,7 @@ function classifyGatewayProbePath(pathname) {
450
442
  }
451
443
  return "outside";
452
444
  }
453
- //#endregion
454
- //#region packages/normalization-core/src/string-coerce.ts
445
+ // packages/normalization-core/src/string-coerce.ts
455
446
  /** Trims string input and returns null for non-strings or empty strings. */
456
447
  function normalizeNullableString(value) {
457
448
  if (typeof value !== "string") return null;
@@ -470,13 +461,11 @@ function normalizeOptionalLowercaseString$1(value) {
470
461
  function normalizeLowercaseStringOrEmpty$1(value) {
471
462
  return normalizeOptionalLowercaseString$1(value) ?? "";
472
463
  }
473
- //#endregion
474
- //#region src/plugins/http-path-prefix.ts
464
+ // src/plugins/http-path-prefix.ts
475
465
  function prefixMatchPath(pathname, prefix) {
476
466
  return pathname === prefix || pathname.startsWith(`${prefix}/`) || pathname.startsWith(`${prefix}%`);
477
467
  }
478
- //#endregion
479
- //#region src/gateway/security-path.ts
468
+ // src/gateway/security-path.ts
480
469
  const MAX_PATH_DECODE_PASSES = 32;
481
470
  function normalizePathSeparators(pathname) {
482
471
  const collapsed = pathname.replace(/\/{2,}/g, "/");
@@ -529,8 +518,7 @@ function canonicalizePathForSecurity(pathname) {
529
518
  };
530
519
  }
531
520
  const PROTECTED_PLUGIN_ROUTE_PREFIXES = ["/api/channels"];
532
- //#endregion
533
- //#region src/gateway/server/plugins-http/path-context.ts
521
+ // src/gateway/server/plugins-http/path-context.ts
534
522
  function normalizeProtectedPrefix(prefix) {
535
523
  const collapsed = normalizeLowercaseStringOrEmpty$1(prefix).replace(/\/{2,}/g, "/");
536
524
  if (collapsed.length <= 1) return collapsed || "/";
@@ -556,8 +544,7 @@ function resolvePluginRoutePathContext(pathname) {
556
544
  rawNormalizedPath: canonical.rawNormalizedPath
557
545
  };
558
546
  }
559
- //#endregion
560
- //#region \0openclaw:bundled-sdk:openclaw/plugin-sdk/gateway-config-runtime
547
+ // \0openclaw:bundled-sdk:openclaw/plugin-sdk/gateway-config-runtime
561
548
  var gateway_config_runtime_exports = /* @__PURE__ */ __exportAll({
562
549
  classifyGatewayProbePath: () => classifyGatewayProbePath,
563
550
  isProtectedPluginRoutePathFromContext: () => isProtectedPluginRoutePathFromContext,
@@ -565,8 +552,7 @@ var gateway_config_runtime_exports = /* @__PURE__ */ __exportAll({
565
552
  });
566
553
  import * as import_openclaw_plugin_sdk_gateway_config_runtime from "openclaw/plugin-sdk/gateway-config-runtime";
567
554
  __reExport(gateway_config_runtime_exports, import_openclaw_plugin_sdk_gateway_config_runtime);
568
- //#endregion
569
- //#region extensions/nextcloud-talk/src/webhook-route.ts
555
+ // extensions/nextcloud-talk/src/webhook-route.ts
570
556
  const DEFAULT_NEXTCLOUD_TALK_WEBHOOK_PATH = "/nextcloud-talk-webhook";
571
557
  function resolveNextcloudTalkLegacyWebhook(config) {
572
558
  const listener = config.legacyWebhook;
@@ -582,8 +568,7 @@ function describeNextcloudTalkWebhookRouteConflict(path, gatewayPort) {
582
568
  if (!reason) return;
583
569
  return `Webhook path "${path}" ${reason} and cannot receive Nextcloud callbacks on the Gateway port. Set webhookPath to "${DEFAULT_NEXTCLOUD_TALK_WEBHOOK_PATH}" and update the Nextcloud bot callback and reverse-proxy upstream to Gateway port ${gatewayPort}${DEFAULT_NEXTCLOUD_TALK_WEBHOOK_PATH}.`;
584
570
  }
585
- //#endregion
586
- //#region extensions/nextcloud-talk/src/doctor.ts
571
+ // extensions/nextcloud-talk/src/doctor.ts
587
572
  function sanitizeLegacyReplaySegment(value) {
588
573
  const trimmed = value.trim();
589
574
  if (!trimmed) return "default";
@@ -646,8 +631,7 @@ const nextcloudTalkDoctor = {
646
631
  };
647
632
  }
648
633
  };
649
- //#endregion
650
- //#region extensions/nextcloud-talk/src/policy.ts
634
+ // extensions/nextcloud-talk/src/policy.ts
651
635
  function normalizeNextcloudTalkAllowEntry(raw) {
652
636
  return raw.trim().replace(/^(nextcloud-talk|nc-talk|nc):/i, "").toLowerCase();
653
637
  }
@@ -726,8 +710,7 @@ function resolveNextcloudTalkGroupRequireMention(params) {
726
710
  path: exactPath
727
711
  });
728
712
  }
729
- //#endregion
730
- //#region extensions/nextcloud-talk/src/room-info.ts
713
+ // extensions/nextcloud-talk/src/room-info.ts
731
714
  const ROOM_CACHE_TTL_MS = 3e5;
732
715
  const ROOM_CACHE_ERROR_TTL_MS = 3e4;
733
716
  const ROOM_CACHE_MAX_ENTRIES = 1e3;
@@ -805,8 +788,7 @@ async function resolveNextcloudTalkRoomKind(params) {
805
788
  await release();
806
789
  }
807
790
  }
808
- //#endregion
809
- //#region extensions/nextcloud-talk/src/normalize.ts
791
+ // extensions/nextcloud-talk/src/normalize.ts
810
792
  function stripNextcloudTalkTargetPrefix(raw) {
811
793
  return raw.trim().replace(/^(nextcloud-talk|nc-talk|nc):/i, "").trim().replace(/^room:/i, "").trim() || void 0;
812
794
  }
@@ -820,8 +802,7 @@ function looksLikeNextcloudTalkTargetId(raw) {
820
802
  if (/^(nextcloud-talk|nc-talk|nc|room):/i.test(trimmed)) return true;
821
803
  return /^[a-z0-9]{8,}$/i.test(trimmed);
822
804
  }
823
- //#endregion
824
- //#region extensions/nextcloud-talk/src/send.ts
805
+ // extensions/nextcloud-talk/src/send.ts
825
806
  const NEXTCLOUD_TALK_ERROR_SNIPPET_MAX_CHARS = 200;
826
807
  const NEXTCLOUD_TALK_SEND_TIMEOUT_MS = 3e4;
827
808
  /** Collapses and caps an already-redacted error body for display. */
@@ -967,8 +948,7 @@ async function sendReactionNextcloudTalk(roomToken, messageId, reaction, opts) {
967
948
  await release();
968
949
  }
969
950
  }
970
- //#endregion
971
- //#region extensions/nextcloud-talk/src/inbound.ts
951
+ // extensions/nextcloud-talk/src/inbound.ts
972
952
  const CHANNEL_ID = "nextcloud-talk";
973
953
  function hasAllowEntries(entries) {
974
954
  return normalizeNextcloudTalkAllowlist(entries).length > 0;
@@ -1332,8 +1312,7 @@ async function migrateNextcloudTalkLegacyReplayState(params) {
1332
1312
  await params.store.clear();
1333
1313
  return migrated;
1334
1314
  }
1335
- //#endregion
1336
- //#region extensions/nextcloud-talk/src/monitor.ts
1315
+ // extensions/nextcloud-talk/src/monitor.ts
1337
1316
  const PREAUTH_WEBHOOK_MAX_BODY_BYTES = 65536;
1338
1317
  const NEXTCLOUD_TALK_WEBHOOK_ACCEPTED_HEADER = "x-openclaw-delivery-accepted";
1339
1318
  const NEXTCLOUD_TALK_WEBHOOK_ACCEPTED_VALUE = "durable";
@@ -1555,8 +1534,7 @@ function registerNextcloudTalkWebhook(target) {
1555
1534
  throw error;
1556
1535
  }
1557
1536
  }
1558
- //#endregion
1559
- //#region extensions/nextcloud-talk/src/webhook-spool.ts
1537
+ // extensions/nextcloud-talk/src/webhook-spool.ts
1560
1538
  const NEXTCLOUD_TALK_INGRESS_POLL_INTERVAL_MS = 500;
1561
1539
  function describeIgnoredWebhookEvent(rawEvent) {
1562
1540
  const envelope = parseRawObject(rawEvent);
@@ -1713,8 +1691,7 @@ function createNextcloudTalkWebhookSpool(options) {
1713
1691
  }
1714
1692
  };
1715
1693
  }
1716
- //#endregion
1717
- //#region extensions/nextcloud-talk/src/monitor-runtime.ts
1694
+ // extensions/nextcloud-talk/src/monitor-runtime.ts
1718
1695
  function normalizeOrigin(value) {
1719
1696
  return URL.parse(value)?.origin.toLowerCase() ?? null;
1720
1697
  }
@@ -1808,8 +1785,7 @@ async function monitorNextcloudTalkProvider(opts) {
1808
1785
  if (legacyListener) logger.info(`[nextcloud-talk:${account.accountId}] legacy webhook listener ${legacyListener.host}:${legacyListener.port} forwards to the Gateway route. After verifying the callback or proxy upstream uses the Gateway port, remove the legacyWebhook pin; use legacyWebhook: false to override an inherited endpoint.`);
1809
1786
  return { stop };
1810
1787
  }
1811
- //#endregion
1812
- //#region extensions/nextcloud-talk/src/gateway.ts
1788
+ // extensions/nextcloud-talk/src/gateway.ts
1813
1789
  const nextcloudTalkGatewayAdapter = {
1814
1790
  startAccount: async (ctx) => {
1815
1791
  const account = ctx.account;
@@ -1855,8 +1831,7 @@ const nextcloudTalkGatewayAdapter = {
1855
1831
  };
1856
1832
  }
1857
1833
  };
1858
- //#endregion
1859
- //#region extensions/nextcloud-talk/src/message-actions.ts
1834
+ // extensions/nextcloud-talk/src/message-actions.ts
1860
1835
  const providerId = "nextcloud-talk";
1861
1836
  function isAccountConfigured(account) {
1862
1837
  return Boolean(account.enabled && account.secret?.trim() && account.baseUrl?.trim());
@@ -1909,8 +1884,7 @@ const nextcloudTalkMessageActions = {
1909
1884
  throw new Error(`Action ${action} not supported for ${providerId}.`);
1910
1885
  }
1911
1886
  };
1912
- //#endregion
1913
- //#region extensions/nextcloud-talk/src/message-adapter.ts
1887
+ // extensions/nextcloud-talk/src/message-adapter.ts
1914
1888
  function sendNextcloudTalkMessage(ctx, text = ctx.text) {
1915
1889
  return sendMessageNextcloudTalk(ctx.to, text, {
1916
1890
  accountId: ctx.accountId ?? void 0,
@@ -1932,8 +1906,7 @@ const nextcloudTalkMessageAdapter = defineChannelMessageAdapter({
1932
1906
  media: (ctx) => sendNextcloudTalkMessage(ctx, ctx.mediaUrl ? `${ctx.text}\n\nAttachment: ${ctx.mediaUrl}` : ctx.text)
1933
1907
  }
1934
1908
  });
1935
- //#endregion
1936
- //#region extensions/nextcloud-talk/src/session-route.ts
1909
+ // extensions/nextcloud-talk/src/session-route.ts
1937
1910
  function resolveNextcloudTalkOutboundSessionRoute(params) {
1938
1911
  const roomId = stripNextcloudTalkTargetPrefix(params.target);
1939
1912
  if (!roomId) return null;
@@ -1952,8 +1925,7 @@ function resolveNextcloudTalkOutboundSessionRoute(params) {
1952
1925
  to: `nextcloud-talk:${roomId}`
1953
1926
  });
1954
1927
  }
1955
- //#endregion
1956
- //#region extensions/nextcloud-talk/src/setup-core.ts
1928
+ // extensions/nextcloud-talk/src/setup-core.ts
1957
1929
  const t$1 = createSetupTranslator$1();
1958
1930
  const channel$1 = "nextcloud-talk";
1959
1931
  function normalizeNextcloudTalkBaseUrl(value) {
@@ -2114,8 +2086,7 @@ const nextcloudTalkSetupContract = defineChannelSetupContract({
2114
2086
  },
2115
2087
  legacyAdapter: nextcloudTalkSetupAdapter
2116
2088
  });
2117
- //#endregion
2118
- //#region extensions/nextcloud-talk/src/setup-surface.ts
2089
+ // extensions/nextcloud-talk/src/setup-surface.ts
2119
2090
  const t = createSetupTranslator();
2120
2091
  const channel = "nextcloud-talk";
2121
2092
  const CONFIGURE_API_FLAG = "__nextcloudTalkConfigureApiCredentials";
@@ -2243,8 +2214,7 @@ const nextcloudTalkSetupWizard = {
2243
2214
  dmPolicy: nextcloudTalkDmPolicy,
2244
2215
  disable: (cfg) => setSetupChannelEnabled(cfg, channel, false)
2245
2216
  };
2246
- //#endregion
2247
- //#region extensions/nextcloud-talk/src/channel.ts
2217
+ // extensions/nextcloud-talk/src/channel.ts
2248
2218
  const meta = {
2249
2219
  id: "nextcloud-talk",
2250
2220
  label: "Nextcloud Talk",
@@ -2397,5 +2367,4 @@ const nextcloudTalkPlugin = createChatChannelPlugin({
2397
2367
  }
2398
2368
  }
2399
2369
  });
2400
- //#endregion
2401
2370
  export { nextcloudTalkPlugin as t };
@@ -1,5 +1,5 @@
1
1
  import { hasConfiguredNextcloudTalkChannelState, listNextcloudTalkAccountIds, mergeNextcloudTalkAccountConfig } from "../configured-state.js";
2
- //#region \0rolldown/runtime.js
2
+ // \0rolldown/runtime.js
3
3
  var __defProp = Object.defineProperty;
4
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -24,8 +24,7 @@ var __copyProps = (to, from, except, desc) => {
24
24
  return to;
25
25
  };
26
26
  var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
27
- //#endregion
28
- //#region packages/normalization-core/src/record-coerce.ts
27
+ // packages/normalization-core/src/record-coerce.ts
29
28
  /** Type guard for non-array object records at browser-safe boundaries. */
30
29
  function isRecord(value) {
31
30
  return value !== null && typeof value === "object" && !Array.isArray(value);
@@ -34,8 +33,7 @@ function isRecord(value) {
34
33
  function asNullableRecord(value) {
35
34
  return isRecord(value) ? value : null;
36
35
  }
37
- //#endregion
38
- //#region src/config/channel-config-normalization.ts
36
+ // src/config/channel-config-normalization.ts
39
37
  /** Applies one channel-specific doctor migration to every object-shaped account. */
40
38
  function normalizeChannelAccounts(params) {
41
39
  const rawAccounts = asNullableRecord(params.entry.accounts);
@@ -111,8 +109,7 @@ function normalizeChannelConfigEntries(params) {
111
109
  changes
112
110
  };
113
111
  }
114
- //#endregion
115
- //#region src/plugin-sdk/legacy-webhook-listener-migration.ts
112
+ // src/plugin-sdk/legacy-webhook-listener-migration.ts
116
113
  /** Preserve explicitly configured webhook listeners while moving ingress onto Gateway routes. */
117
114
  function createLegacyWebhookListenerDoctorContract(params) {
118
115
  const portKey = params.portKey ?? "webhookPort";
@@ -182,13 +179,11 @@ function createLegacyWebhookListenerDoctorContract(params) {
182
179
  }
183
180
  };
184
181
  }
185
- //#endregion
186
- //#region \0openclaw:bundled-sdk:openclaw/plugin-sdk/runtime-doctor-migrations
182
+ // \0openclaw:bundled-sdk:openclaw/plugin-sdk/runtime-doctor-migrations
187
183
  var runtime_doctor_migrations_exports = /* @__PURE__ */ __exportAll({ createLegacyWebhookListenerDoctorContract: () => createLegacyWebhookListenerDoctorContract });
188
184
  import * as import_openclaw_plugin_sdk_runtime_doctor_migrations from "openclaw/plugin-sdk/runtime-doctor-migrations";
189
185
  __reExport(runtime_doctor_migrations_exports, import_openclaw_plugin_sdk_runtime_doctor_migrations);
190
- //#endregion
191
- //#region extensions/nextcloud-talk/src/doctor-contract.ts
186
+ // extensions/nextcloud-talk/src/doctor-contract.ts
192
187
  const webhookContract = createLegacyWebhookListenerDoctorContract({
193
188
  channelKey: "nextcloud-talk",
194
189
  defaultHost: "0.0.0.0",
@@ -220,5 +215,4 @@ function normalizeCompatibilityConfig({ cfg }) {
220
215
  historicalWebhookAccountIds: webhook.historicalWebhookAccountIds
221
216
  };
222
217
  }
223
- //#endregion
224
218
  export { __exportAll as a, normalizeHistoricalWebhookConfig as i, legacyConfigRules as n, __reExport as o, normalizeCompatibilityConfig as r, historicalWebhookListener as t };
@@ -4,10 +4,9 @@ import { GROUP_POLICY_BLOCKED_LABEL, resolveAllowlistProviderRuntimeGroupPolicy,
4
4
  import { deliverFormattedTextWithAttachments } from "openclaw/plugin-sdk/reply-payload";
5
5
  import { fetchWithSsrFGuard } from "openclaw/plugin-sdk/ssrf-runtime";
6
6
  import { createPluginRuntimeStore } from "openclaw/plugin-sdk/runtime-store";
7
- //#region extensions/nextcloud-talk/src/runtime.ts
7
+ // extensions/nextcloud-talk/src/runtime.ts
8
8
  const { setRuntime: setNextcloudTalkRuntime, getRuntime: getNextcloudTalkRuntime, tryGetRuntime: getOptionalNextcloudTalkRuntime } = createPluginRuntimeStore({
9
9
  pluginId: "nextcloud-talk",
10
10
  errorMessage: "Nextcloud Talk runtime not initialized"
11
11
  });
12
- //#endregion
13
12
  export { logInboundDrop as a, warnMissingProviderGroupPolicyFallbackOnce as c, setNextcloudTalkRuntime as d, fetchWithSsrFGuard as i, getNextcloudTalkRuntime as l, createChannelPairingController as n, resolveAllowlistProviderRuntimeGroupPolicy as o, deliverFormattedTextWithAttachments as r, resolveDefaultGroupPolicy as s, GROUP_POLICY_BLOCKED_LABEL as t, getOptionalNextcloudTalkRuntime as u };
@@ -1,2 +1,2 @@
1
- export { t as channelSecrets, n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./secret-contract-Bvm0PmP3.mjs";
1
+ export { t as channelSecrets, n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./secret-contract-yjCLewtg.mjs";
2
2
  import "../secret-contract-api.js";
@@ -0,0 +1,19 @@
1
+ import { hasConfiguredNextcloudAccount } from "../configured-state.js";
2
+ import { collectSimpleChannelFieldAssignments, createChannelSecretContract } from "openclaw/plugin-sdk/channel-secret-basic-runtime";
3
+ // extensions/nextcloud-talk/src/secret-contract.ts
4
+ const channelSecrets = createChannelSecretContract({
5
+ channelKey: "nextcloud-talk",
6
+ account: ["apiPassword", "botSecret"],
7
+ channel: ["apiPassword", "botSecret"],
8
+ hasImplicitDefaultAccount: ({ context }) => hasConfiguredNextcloudAccount(context.sourceConfig.channels?.["nextcloud-talk"], context.env),
9
+ collect(params) {
10
+ for (const field of ["botSecret", "apiPassword"]) collectSimpleChannelFieldAssignments({
11
+ ...params,
12
+ field,
13
+ topInactiveReason: `no enabled Nextcloud Talk surface inherits this top-level ${field}.`,
14
+ accountInactiveReason: "Nextcloud Talk account is disabled."
15
+ });
16
+ }
17
+ });
18
+ const { secretTargetRegistryEntries, collectRuntimeConfigAssignments } = channelSecrets;
19
+ export { collectRuntimeConfigAssignments as n, secretTargetRegistryEntries as r, channelSecrets as t };
@@ -1 +1 @@
1
- {"version":3,"entries":[{"output":"api.js","source":"extensions/nextcloud-talk/api.ts"},{"output":"channel-plugin-api.js","source":"extensions/nextcloud-talk/channel-plugin-api.ts"},{"output":"configured-state.js","source":"extensions/nextcloud-talk/configured-state.ts"},{"output":"doctor-contract-api.js","source":"extensions/nextcloud-talk/doctor-contract-api.ts"},{"output":"index.js","source":"extensions/nextcloud-talk/index.ts"},{"output":"runtime-api.js","source":"extensions/nextcloud-talk/runtime-api.ts"},{"output":"secret-contract-api.js","source":"extensions/nextcloud-talk/secret-contract-api.ts"},{"output":"setup-entry.js","source":"extensions/nextcloud-talk/setup-entry.ts"}],"chunks":[{"output":".setup/api-BmNQoi-o.mjs","sha256":"2bc270280c12867279785c00677d286e883e393cc47d4da2a7201006ea89320a","facadeSource":"extensions/nextcloud-talk/api.ts","sources":[]},{"output":".setup/channel-B8-CvvK1.mjs","sha256":"ea3865dc7fd8c75112f517da40fcd855f95f65e66ec36fd90b035ed0ea1f92c6","facadeSource":null,"sources":["extensions/nextcloud-talk/src/accounts.ts","extensions/nextcloud-talk/src/api-credentials.ts","extensions/nextcloud-talk/src/approval-auth.ts","extensions/nextcloud-talk/src/bot-preflight.ts","extensions/nextcloud-talk/src/channel.adapters.ts","extensions/nextcloud-talk/src/channel.ts","extensions/nextcloud-talk/src/config-schema.ts","extensions/nextcloud-talk/src/doctor.ts","extensions/nextcloud-talk/src/gateway.ts","extensions/nextcloud-talk/src/guarded-response.ts","extensions/nextcloud-talk/src/inbound.ts","extensions/nextcloud-talk/src/message-actions.ts","extensions/nextcloud-talk/src/message-adapter.ts","extensions/nextcloud-talk/src/monitor-runtime.ts","extensions/nextcloud-talk/src/monitor.ts","extensions/nextcloud-talk/src/normalize.ts","extensions/nextcloud-talk/src/policy.ts","extensions/nextcloud-talk/src/replay-migration-contract.ts","extensions/nextcloud-talk/src/room-info.ts","extensions/nextcloud-talk/src/send.ts","extensions/nextcloud-talk/src/session-route.ts","extensions/nextcloud-talk/src/setup-core.ts","extensions/nextcloud-talk/src/setup-surface.ts","extensions/nextcloud-talk/src/signature.ts","extensions/nextcloud-talk/src/webhook-route.ts","extensions/nextcloud-talk/src/webhook-spool-state.ts","extensions/nextcloud-talk/src/webhook-spool.ts","packages/normalization-core/src/string-coerce.ts","src/gateway/gateway-http-route-contracts.ts","src/gateway/security-path.ts","src/gateway/server/plugins-http/path-context.ts","src/plugins/http-path-prefix.ts"]},{"output":".setup/doctor-contract-DwH950tH.mjs","sha256":"fc92feebc8e348bacba027cadbf2fd4e510c557abe00e20ff2ee80bab76c0e8a","facadeSource":null,"sources":["extensions/nextcloud-talk/src/doctor-contract.ts","packages/normalization-core/src/record-coerce.ts","src/config/channel-config-normalization.ts","src/plugin-sdk/legacy-webhook-listener-migration.ts"]},{"output":".setup/runtime-api-DVkVOUSo.mjs","sha256":"7f9187eb96ed6d031f63c3a480653fef48d5b9c581f18008598feeee27345cdc","facadeSource":null,"sources":["extensions/nextcloud-talk/src/runtime.ts"]},{"output":".setup/secret-contract-api-DoyAH9bS.mjs","sha256":"f28083e02a867734bc44bdc6a690bba3e7c9dd61e4ee7efe65bf90c7d820caec","facadeSource":"extensions/nextcloud-talk/secret-contract-api.ts","sources":[]},{"output":".setup/secret-contract-Bvm0PmP3.mjs","sha256":"88393e46f2f5b42d8868d36c1b0c85a275dd01472601f757005052fa6dfcf051","facadeSource":null,"sources":["extensions/nextcloud-talk/src/secret-contract.ts"]},{"output":"api.js","sha256":"59b284727af55cf3a9b549405c5b9811e829dca1f9a08492bdb1f6004770bff6","facadeSource":"extensions/nextcloud-talk/api.ts","sources":[]},{"output":"channel-plugin-api.js","sha256":"59b284727af55cf3a9b549405c5b9811e829dca1f9a08492bdb1f6004770bff6","facadeSource":"extensions/nextcloud-talk/channel-plugin-api.ts","sources":[]},{"output":"configured-state.js","sha256":"ac8ee085fd929e3644c33b516f94891205f915591811d8f541ca443d175a74b5","facadeSource":"extensions/nextcloud-talk/configured-state.ts","sources":["extensions/nextcloud-talk/configured-state.ts"]},{"output":"doctor-contract-api.js","sha256":"8bc6b0c8254cfb5f79b7516d18d4bbf6bf862e3a3deba033e037d481b6ff9114","facadeSource":"extensions/nextcloud-talk/doctor-contract-api.ts","sources":[]},{"output":"index.js","sha256":"eaac1b676ea855c0ce9ea0a8e3157564c7a38f956ace23c22b0c28667dc0b424","facadeSource":"extensions/nextcloud-talk/index.ts","sources":["extensions/nextcloud-talk/index.ts"]},{"output":"runtime-api.js","sha256":"f4b2341101e63c59f0086c5738b3d798f1718e7cf7c0ec1dfb70b9f172821f67","facadeSource":"extensions/nextcloud-talk/runtime-api.ts","sources":[]},{"output":"secret-contract-api.js","sha256":"70acb59d3d1c1e0a74dcd8a1090740d6361943e32c9776bcc4e1fc2630ddd860","facadeSource":"extensions/nextcloud-talk/secret-contract-api.ts","sources":[]},{"output":"setup-entry.js","sha256":"085ddebc5687f8394702f895486ad994cdbf703c204c71e74e02b33782282823","facadeSource":"extensions/nextcloud-talk/setup-entry.ts","sources":["extensions/nextcloud-talk/setup-entry.ts"]}],"unrenderedSources":["extensions/nextcloud-talk/api.ts","extensions/nextcloud-talk/channel-plugin-api.ts","extensions/nextcloud-talk/config-doctor-api.ts","extensions/nextcloud-talk/doctor-contract-api.ts","extensions/nextcloud-talk/runtime-api.ts","extensions/nextcloud-talk/secret-contract-api.ts","extensions/nextcloud-talk/src/channel-api.ts","extensions/nextcloud-talk/src/send.runtime.ts"]}
1
+ {"version":3,"entries":[{"output":"api.js","source":"extensions/nextcloud-talk/api.ts"},{"output":"channel-plugin-api.js","source":"extensions/nextcloud-talk/channel-plugin-api.ts"},{"output":"configured-state.js","source":"extensions/nextcloud-talk/configured-state.ts"},{"output":"doctor-contract-api.js","source":"extensions/nextcloud-talk/doctor-contract-api.ts"},{"output":"index.js","source":"extensions/nextcloud-talk/index.ts"},{"output":"runtime-api.js","source":"extensions/nextcloud-talk/runtime-api.ts"},{"output":"secret-contract-api.js","source":"extensions/nextcloud-talk/secret-contract-api.ts"},{"output":"setup-entry.js","source":"extensions/nextcloud-talk/setup-entry.ts"}],"chunks":[{"output":".setup/api-nq0ntALJ.mjs","sha256":"7d0025a71acd12faebdfdce419a79b53e3d2f51d81b52fcbea410c0d0e9c50dc","facadeSource":"extensions/nextcloud-talk/api.ts","sources":[]},{"output":".setup/channel-BfPCgEGM.mjs","sha256":"c62dde30a5b355d824733a93afd360403c57f89042188bc6f381c8c457fd7c5e","facadeSource":null,"sources":["extensions/nextcloud-talk/src/accounts.ts","extensions/nextcloud-talk/src/api-credentials.ts","extensions/nextcloud-talk/src/approval-auth.ts","extensions/nextcloud-talk/src/bot-preflight.ts","extensions/nextcloud-talk/src/channel.adapters.ts","extensions/nextcloud-talk/src/channel.ts","extensions/nextcloud-talk/src/config-schema.ts","extensions/nextcloud-talk/src/doctor.ts","extensions/nextcloud-talk/src/gateway.ts","extensions/nextcloud-talk/src/guarded-response.ts","extensions/nextcloud-talk/src/inbound.ts","extensions/nextcloud-talk/src/message-actions.ts","extensions/nextcloud-talk/src/message-adapter.ts","extensions/nextcloud-talk/src/monitor-runtime.ts","extensions/nextcloud-talk/src/monitor.ts","extensions/nextcloud-talk/src/normalize.ts","extensions/nextcloud-talk/src/policy.ts","extensions/nextcloud-talk/src/replay-migration-contract.ts","extensions/nextcloud-talk/src/room-info.ts","extensions/nextcloud-talk/src/send.ts","extensions/nextcloud-talk/src/session-route.ts","extensions/nextcloud-talk/src/setup-core.ts","extensions/nextcloud-talk/src/setup-surface.ts","extensions/nextcloud-talk/src/signature.ts","extensions/nextcloud-talk/src/webhook-route.ts","extensions/nextcloud-talk/src/webhook-spool-state.ts","extensions/nextcloud-talk/src/webhook-spool.ts","packages/normalization-core/src/string-coerce.ts","src/gateway/gateway-http-route-contracts.ts","src/gateway/security-path.ts","src/gateway/server/plugins-http/path-context.ts","src/plugins/http-path-prefix.ts"]},{"output":".setup/doctor-contract-CkWQa5uZ.mjs","sha256":"b580887eb445ab10c67ee1a057982cd3be79d68e2c3440b3f2a46f2a8852c55b","facadeSource":null,"sources":["extensions/nextcloud-talk/src/doctor-contract.ts","packages/normalization-core/src/record-coerce.ts","src/config/channel-config-normalization.ts","src/plugin-sdk/legacy-webhook-listener-migration.ts"]},{"output":".setup/runtime-api-DSz4xBAm.mjs","sha256":"79e7b7e7515c5d1f25e7b68e5414e33205303525bab418b7c6dc5e213fd0720c","facadeSource":null,"sources":["extensions/nextcloud-talk/src/runtime.ts"]},{"output":".setup/secret-contract-api-QMihLdr1.mjs","sha256":"0a2531895db3b16212c29ea87314c04021173a1bde49b58fbfd29fed181b4f15","facadeSource":"extensions/nextcloud-talk/secret-contract-api.ts","sources":[]},{"output":".setup/secret-contract-yjCLewtg.mjs","sha256":"183e7de729d242a63a7b607f3d353a5712f19eaea4ca24525cd96cc93bb63ffc","facadeSource":null,"sources":["extensions/nextcloud-talk/src/secret-contract.ts"]},{"output":"api.js","sha256":"0caec76a7a7b072243fae5b0204456e3a724e9029938fd9523fc859c84b6cc92","facadeSource":"extensions/nextcloud-talk/api.ts","sources":[]},{"output":"channel-plugin-api.js","sha256":"0caec76a7a7b072243fae5b0204456e3a724e9029938fd9523fc859c84b6cc92","facadeSource":"extensions/nextcloud-talk/channel-plugin-api.ts","sources":[]},{"output":"configured-state.js","sha256":"a45a34efe4339d78b7fcc92b8d09f8ad60d19c4a4e3a9754104c7f658be278d0","facadeSource":"extensions/nextcloud-talk/configured-state.ts","sources":["extensions/nextcloud-talk/configured-state.ts"]},{"output":"doctor-contract-api.js","sha256":"71237fb5c510be1302851b9fb7b264dd4e0d0095be206e50ffce4b5890ace54f","facadeSource":"extensions/nextcloud-talk/doctor-contract-api.ts","sources":[]},{"output":"index.js","sha256":"16bcc875626f7dd3bc4c1195210f856deaa9c3757abe5cea2a1d90cb2877cd22","facadeSource":"extensions/nextcloud-talk/index.ts","sources":["extensions/nextcloud-talk/index.ts"]},{"output":"runtime-api.js","sha256":"9dc767e1c55c58a1e7abbefa444b966bd60321a9bd0d23a8707d49dbdd847aee","facadeSource":"extensions/nextcloud-talk/runtime-api.ts","sources":[]},{"output":"secret-contract-api.js","sha256":"34c4d2c917c364f14b73bb8f51db22a8f24d047246358f543ab3aa0abfa78202","facadeSource":"extensions/nextcloud-talk/secret-contract-api.ts","sources":[]},{"output":"setup-entry.js","sha256":"cf4aa8a618601f926513877e3277d105f52772ac42aaaddf9a4f1ac88e105701","facadeSource":"extensions/nextcloud-talk/setup-entry.ts","sources":["extensions/nextcloud-talk/setup-entry.ts"]}],"unrenderedSources":["extensions/nextcloud-talk/api.ts","extensions/nextcloud-talk/channel-plugin-api.ts","extensions/nextcloud-talk/config-doctor-api.ts","extensions/nextcloud-talk/doctor-contract-api.ts","extensions/nextcloud-talk/runtime-api.ts","extensions/nextcloud-talk/secret-contract-api.ts","extensions/nextcloud-talk/src/channel-api.ts","extensions/nextcloud-talk/src/send.runtime.ts"]}
package/dist/api.js CHANGED
@@ -1 +1 @@
1
- export { t as nextcloudTalkPlugin } from "./.setup/channel-B8-CvvK1.mjs";
1
+ export { t as nextcloudTalkPlugin } from "./.setup/channel-BfPCgEGM.mjs";
@@ -1 +1 @@
1
- export { t as nextcloudTalkPlugin } from "./.setup/channel-B8-CvvK1.mjs";
1
+ export { t as nextcloudTalkPlugin } from "./.setup/channel-BfPCgEGM.mjs";
@@ -1,12 +1,9 @@
1
1
  import { DEFAULT_ACCOUNT_ID, createAccountListHelpers, hasConfiguredAccountValue, normalizeAccountId } from "openclaw/plugin-sdk/account-core";
2
- //#region extensions/nextcloud-talk/configured-state.ts
2
+ // extensions/nextcloud-talk/configured-state.ts
3
3
  const { listAccountIds: listNextcloudTalkAccountIds, resolveDefaultAccountId: resolveDefaultNextcloudTalkAccountId, resolveAccountConfig: mergeNextcloudTalkAccountConfig } = createAccountListHelpers("nextcloud-talk", {
4
4
  normalizeAccountId,
5
5
  omitKeys: ["defaultAccount"],
6
- hasImplicitDefaultAccount: (cfg) => {
7
- const channel = cfg.channels?.["nextcloud-talk"];
8
- return Boolean(channel?.baseUrl?.trim() && (hasConfiguredAccountValue(channel.botSecret) || channel.botSecretFile?.trim() || process.env.NEXTCLOUD_TALK_BOT_SECRET?.trim()));
9
- }
6
+ hasImplicitDefaultAccount: (cfg) => hasConfiguredNextcloudAccount(cfg.channels?.["nextcloud-talk"], process.env)
10
7
  });
11
8
  function hasConfiguredNextcloudAccount(account, env) {
12
9
  return Boolean(account?.baseUrl?.trim() && (hasConfiguredAccountValue(account.botSecret) || hasConfiguredAccountValue(account.botSecretFile) || hasConfiguredAccountValue(env.NEXTCLOUD_TALK_BOT_SECRET)));
@@ -20,5 +17,4 @@ function hasConfiguredNextcloudTalkChannelState(params) {
20
17
  }
21
18
  return Object.entries(channel?.accounts ?? {}).some(([accountId, account]) => accountId !== DEFAULT_ACCOUNT_ID && account.enabled !== false && hasConfiguredNextcloudAccount(mergeNextcloudTalkAccountConfig(params.cfg, accountId), {}));
22
19
  }
23
- //#endregion
24
- export { hasConfiguredNextcloudTalkChannelState, listNextcloudTalkAccountIds, mergeNextcloudTalkAccountConfig, resolveDefaultNextcloudTalkAccountId };
20
+ export { hasConfiguredNextcloudAccount, hasConfiguredNextcloudTalkChannelState, listNextcloudTalkAccountIds, mergeNextcloudTalkAccountConfig, resolveDefaultNextcloudTalkAccountId };
@@ -1 +1 @@
1
- export { t as historicalWebhookListener, n as legacyConfigRules, r as normalizeCompatibilityConfig, i as normalizeHistoricalWebhookConfig } from "./.setup/doctor-contract-DwH950tH.mjs";
1
+ export { t as historicalWebhookListener, n as legacyConfigRules, r as normalizeCompatibilityConfig, i as normalizeHistoricalWebhookConfig } from "./.setup/doctor-contract-CkWQa5uZ.mjs";
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { defineBundledChannelEntry } from "openclaw/plugin-sdk/channel-entry-contract";
2
- //#region extensions/nextcloud-talk/index.ts
2
+ // extensions/nextcloud-talk/index.ts
3
3
  var nextcloud_talk_default = defineBundledChannelEntry({
4
4
  id: "nextcloud-talk",
5
5
  name: "Nextcloud Talk",
@@ -18,5 +18,4 @@ var nextcloud_talk_default = defineBundledChannelEntry({
18
18
  exportName: "setNextcloudTalkRuntime"
19
19
  }
20
20
  });
21
- //#endregion
22
21
  export { nextcloud_talk_default as default };
@@ -1 +1 @@
1
- export { t as GROUP_POLICY_BLOCKED_LABEL, n as createChannelPairingController, r as deliverFormattedTextWithAttachments, i as fetchWithSsrFGuard, a as logInboundDrop, o as resolveAllowlistProviderRuntimeGroupPolicy, s as resolveDefaultGroupPolicy, d as setNextcloudTalkRuntime, c as warnMissingProviderGroupPolicyFallbackOnce } from "./.setup/runtime-api-DVkVOUSo.mjs";
1
+ export { t as GROUP_POLICY_BLOCKED_LABEL, n as createChannelPairingController, r as deliverFormattedTextWithAttachments, i as fetchWithSsrFGuard, a as logInboundDrop, o as resolveAllowlistProviderRuntimeGroupPolicy, s as resolveDefaultGroupPolicy, d as setNextcloudTalkRuntime, c as warnMissingProviderGroupPolicyFallbackOnce } from "./.setup/runtime-api-DSz4xBAm.mjs";
@@ -1 +1 @@
1
- export { t as channelSecrets, n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./.setup/secret-contract-Bvm0PmP3.mjs";
1
+ export { t as channelSecrets, n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./.setup/secret-contract-yjCLewtg.mjs";
@@ -1,16 +1,15 @@
1
1
  import { defineBundledChannelSetupEntry } from "openclaw/plugin-sdk/channel-entry-contract";
2
2
  import { fileURLToPath } from "node:url";
3
- //#region extensions/nextcloud-talk/setup-entry.ts
3
+ // extensions/nextcloud-talk/setup-entry.ts
4
4
  var setup_entry_default = defineBundledChannelSetupEntry({
5
5
  importMetaUrl: import.meta.url,
6
6
  plugin: {
7
- specifier: fileURLToPath(new URL(".setup/api-BmNQoi-o.mjs", import.meta.url).href),
7
+ specifier: fileURLToPath(new URL(".setup/api-nq0ntALJ.mjs", import.meta.url).href),
8
8
  exportName: "nextcloudTalkPlugin"
9
9
  },
10
10
  secrets: {
11
- specifier: fileURLToPath(new URL(".setup/secret-contract-api-DoyAH9bS.mjs", import.meta.url).href),
11
+ specifier: fileURLToPath(new URL(".setup/secret-contract-api-QMihLdr1.mjs", import.meta.url).href),
12
12
  exportName: "channelSecrets"
13
13
  }
14
14
  });
15
- //#endregion
16
15
  export { setup_entry_default as default };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/nextcloud-talk",
3
- "version": "2026.10.10-beta.5",
3
+ "version": "2026.11.1",
4
4
  "description": "OpenClaw Nextcloud Talk channel plugin for conversations.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -8,7 +8,7 @@
8
8
  },
9
9
  "type": "module",
10
10
  "peerDependencies": {
11
- "openclaw": ">=2026.10.10-beta.5"
11
+ "openclaw": ">=2026.11.1"
12
12
  },
13
13
  "peerDependenciesMeta": {
14
14
  "openclaw": {
@@ -130,10 +130,10 @@
130
130
  "minHostVersion": ">=2026.4.10"
131
131
  },
132
132
  "compat": {
133
- "pluginApi": ">=2026.10.10-beta.5"
133
+ "pluginApi": ">=2026.11.1"
134
134
  },
135
135
  "build": {
136
- "openclawVersion": "2026.10.10-beta.5"
136
+ "openclawVersion": "2026.11.1"
137
137
  },
138
138
  "release": {
139
139
  "publishToClawHub": true,
@@ -1,2 +0,0 @@
1
- export { t as nextcloudTalkPlugin } from "./channel-B8-CvvK1.mjs";
2
- import "../api.js";
@@ -1,15 +0,0 @@
1
- import { createSimpleChannelSecretContract } from "openclaw/plugin-sdk/channel-secret-basic-runtime";
2
- //#region extensions/nextcloud-talk/src/secret-contract.ts
3
- const channelSecrets = createSimpleChannelSecretContract({
4
- channelKey: "nextcloud-talk",
5
- label: "Nextcloud Talk",
6
- accountFields: ["apiPassword", "botSecret"],
7
- channelFields: ["apiPassword", "botSecret"],
8
- mode: {
9
- kind: "surface-inheritance",
10
- collectionFields: ["botSecret", "apiPassword"]
11
- }
12
- });
13
- const { secretTargetRegistryEntries, collectRuntimeConfigAssignments } = channelSecrets;
14
- //#endregion
15
- export { collectRuntimeConfigAssignments as n, secretTargetRegistryEntries as r, channelSecrets as t };