@openclaw/nextcloud-talk 2026.10.10 → 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
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
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-BHyPrmz3.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";
@@ -1,2 +1,2 @@
1
- export { t as channelSecrets, n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./secret-contract-BHyPrmz3.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-BgnUYkO3.mjs","sha256":"945cc048854654a4ada1853cc1aed051db4abccd2daabf3096f074f9e81fd970","facadeSource":"extensions/nextcloud-talk/api.ts","sources":[]},{"output":".setup/channel-D9tHRtkv.mjs","sha256":"899d4001d61c145d8eb353d4b5e91260c9c3ef8f1f4cc885c76486dd6e73d5d0","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-CKCDZ3m8.mjs","sha256":"933a73cbc5f8e153d60c80ea144877ff4103c0c6b5f4d2fb06597a1cb8714297","facadeSource":"extensions/nextcloud-talk/secret-contract-api.ts","sources":[]},{"output":".setup/secret-contract-BHyPrmz3.mjs","sha256":"5f6db1b8c1dca4ba0353e9ab2c801f210de8e341d9d4b766f0dfda338024bd71","facadeSource":null,"sources":["extensions/nextcloud-talk/src/secret-contract.ts"]},{"output":"api.js","sha256":"62e2b17453728f9567dc0394c6ae4b5bba68a906a7f4f63071ad317d2c9d8c5c","facadeSource":"extensions/nextcloud-talk/api.ts","sources":[]},{"output":"channel-plugin-api.js","sha256":"62e2b17453728f9567dc0394c6ae4b5bba68a906a7f4f63071ad317d2c9d8c5c","facadeSource":"extensions/nextcloud-talk/channel-plugin-api.ts","sources":[]},{"output":"configured-state.js","sha256":"6b5a8e74636ef9d9248d993b87f8fc2086b5407fb6bd94e02be183293db99a2d","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":"79a0a9fc59d00a3c7d8a9ccdd12ae4d7679ef97821b50bd5e40cbdb0de7a814a","facadeSource":"extensions/nextcloud-talk/secret-contract-api.ts","sources":[]},{"output":"setup-entry.js","sha256":"e8dae8c12575ca86353d6476dd9a685d4befa32fe948d12a69a89f970d1329d8","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-D9tHRtkv.mjs";
1
+ export { t as nextcloudTalkPlugin } from "./.setup/channel-BfPCgEGM.mjs";
@@ -1 +1 @@
1
- export { t as nextcloudTalkPlugin } from "./.setup/channel-D9tHRtkv.mjs";
1
+ export { t as nextcloudTalkPlugin } from "./.setup/channel-BfPCgEGM.mjs";
@@ -3,10 +3,7 @@ import { DEFAULT_ACCOUNT_ID, createAccountListHelpers, hasConfiguredAccountValue
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,4 +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
- export { hasConfiguredNextcloudTalkChannelState, listNextcloudTalkAccountIds, mergeNextcloudTalkAccountConfig, resolveDefaultNextcloudTalkAccountId };
20
+ export { hasConfiguredNextcloudAccount, hasConfiguredNextcloudTalkChannelState, listNextcloudTalkAccountIds, mergeNextcloudTalkAccountConfig, resolveDefaultNextcloudTalkAccountId };
@@ -1 +1 @@
1
- export { t as channelSecrets, n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./.setup/secret-contract-BHyPrmz3.mjs";
1
+ export { t as channelSecrets, n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./.setup/secret-contract-yjCLewtg.mjs";
@@ -4,11 +4,11 @@ import { fileURLToPath } from "node:url";
4
4
  var setup_entry_default = defineBundledChannelSetupEntry({
5
5
  importMetaUrl: import.meta.url,
6
6
  plugin: {
7
- specifier: fileURLToPath(new URL(".setup/api-BgnUYkO3.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-CKCDZ3m8.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
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/nextcloud-talk",
3
- "version": "2026.10.10",
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"
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"
133
+ "pluginApi": ">=2026.11.1"
134
134
  },
135
135
  "build": {
136
- "openclawVersion": "2026.10.10"
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-D9tHRtkv.mjs";
2
- import "../api.js";
@@ -1,14 +0,0 @@
1
- import { createSimpleChannelSecretContract } from "openclaw/plugin-sdk/channel-secret-basic-runtime";
2
- // 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
- export { collectRuntimeConfigAssignments as n, secretTargetRegistryEntries as r, channelSecrets as t };