@openclaw/irc 2026.11.5-beta.1 → 2026.11.5-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.
@@ -1,6 +1,6 @@
1
- import { t as IrcChannelConfigSchema } from "./config-schema-CQuAQW7O.mjs";
2
- import { n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./secret-contract-0Ccz8X9F.mjs";
3
- import { n as getOptionalIrcRuntime } from "./runtime-CsdAoZex.mjs";
1
+ import { t as IrcChannelConfigSchema } from "./config-schema-CHwjI_aV.mjs";
2
+ import { n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./secret-contract-C5i-29Hz.mjs";
3
+ import { n as getOptionalIrcRuntime } from "./runtime-C_V9tmpk.mjs";
4
4
  import { createAccountListHelpers, describeAccountSnapshot } from "openclaw/plugin-sdk/account-helpers";
5
5
  import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/account-id";
6
6
  import { formatNormalizedAllowFromEntries } from "openclaw/plugin-sdk/allow-from";
@@ -34,7 +34,7 @@ import { requireRuntimeConfig } from "openclaw/plugin-sdk/plugin-config-runtime"
34
34
  import { defineChannelSetupContract } from "openclaw/plugin-sdk/channel-setup";
35
35
  import { DEFAULT_ACCOUNT_ID as DEFAULT_ACCOUNT_ID$1, normalizeAccountId as normalizeAccountId$1 } from "openclaw/plugin-sdk/routing";
36
36
  import { applyAccountNameToChannelSection, createAllowFromSection, createPromptParsedAllowFromForAccount, createSetupInputPresenceValidator, createSetupTranslator, createStandardChannelSetupStatus, createTopLevelChannelAllowFromSetter, createTopLevelChannelDmPolicySetter, formatDocsLink, patchScopedAccountConfig, setSetupChannelEnabled, splitSetupEntries } from "openclaw/plugin-sdk/setup";
37
- // extensions/irc/src/accounts.ts
37
+ //#region extensions/irc/src/accounts.ts
38
38
  const { listAccountIds: listIrcAccountIds, resolveDefaultAccountId: resolveDefaultIrcAccountId, resolveAccountConfig: mergeIrcAccountConfig } = createAccountListHelpers("irc", {
39
39
  normalizeAccountId,
40
40
  omitKeys: ["defaultAccount"],
@@ -186,7 +186,8 @@ function listEnabledIrcAccounts(cfg) {
186
186
  accountId
187
187
  })).filter((account) => account.enabled);
188
188
  }
189
- // extensions/irc/src/control-chars.ts
189
+ //#endregion
190
+ //#region extensions/irc/src/control-chars.ts
190
191
  function isIrcControlChar(charCode) {
191
192
  return charCode <= 31 || charCode === 127;
192
193
  }
@@ -195,7 +196,8 @@ function stripIrcControlChars(value) {
195
196
  for (const char of value) if (!isIrcControlChar(char.charCodeAt(0))) out += char;
196
197
  return out;
197
198
  }
198
- // extensions/irc/src/normalize.ts
199
+ //#endregion
200
+ //#region extensions/irc/src/normalize.ts
199
201
  const IRC_TARGET_PATTERN$1 = /^[^\s:]+$/u;
200
202
  function isChannelTarget(target) {
201
203
  return target.startsWith("#") || target.startsWith("&");
@@ -327,7 +329,8 @@ function createIrcIngressSubject(message) {
327
329
  }
328
330
  };
329
331
  }
330
- // extensions/irc/src/outbound-base.ts
332
+ //#endregion
333
+ //#region extensions/irc/src/outbound-base.ts
331
334
  function sanitizeIrcAssistantText(text) {
332
335
  return sanitizeForPlainText(sanitizeAssistantVisibleText(text));
333
336
  }
@@ -338,7 +341,8 @@ const ircOutboundBaseAdapter = {
338
341
  textChunkLimit: 350,
339
342
  sanitizeText: ({ text }) => sanitizeIrcAssistantText(text)
340
343
  };
341
- // extensions/irc/src/policy.ts
344
+ //#endregion
345
+ //#region extensions/irc/src/policy.ts
342
346
  function resolveIrcGroupScope(params) {
343
347
  const { "*": wildcard, ...groups } = params.groups ?? {};
344
348
  const project = (entry) => ({
@@ -381,7 +385,8 @@ function resolveIrcGroupToolPolicy(params) {
381
385
  path
382
386
  });
383
387
  }
384
- // packages/normalization-core/src/utf16-slice.ts
388
+ //#endregion
389
+ //#region packages/normalization-core/src/utf16-slice.ts
385
390
  function isHighSurrogate(codeUnit) {
386
391
  return codeUnit >= 55296 && codeUnit <= 56319;
387
392
  }
@@ -394,7 +399,8 @@ function avoidTrailingHighSurrogateBreak(text, start, end) {
394
399
  const adjusted = end - 1;
395
400
  return adjusted > start ? adjusted : end + 1;
396
401
  }
397
- // packages/normalization-core/src/grapheme.ts
402
+ //#endregion
403
+ //#region packages/normalization-core/src/grapheme.ts
398
404
  let graphemeSegmenter;
399
405
  function getGraphemeSegmenter() {
400
406
  graphemeSegmenter ??= new Intl.Segmenter(void 0, { granularity: "grapheme" });
@@ -418,7 +424,8 @@ function findGraphemeChunkEnd(text, start, maxEnd, preferredEnd = maxEnd, allowP
418
424
  if (end <= start && preferred < hardEnd) end = hardEnd === text.length ? hardEnd : segments.containing(hardEnd)?.index ?? hardEnd;
419
425
  return end > start ? end : allowPartial ? avoidTrailingHighSurrogateBreak(text, start, hardEnd) : start;
420
426
  }
421
- // extensions/irc/src/protocol.ts
427
+ //#endregion
428
+ //#region extensions/irc/src/protocol.ts
422
429
  const IRC_TARGET_PATTERN = /^[^\s:]+$/u;
423
430
  function parseIrcLine(line) {
424
431
  const raw = line.replace(/[\r\n]+/g, "").trim();
@@ -489,7 +496,8 @@ function sanitizeIrcTarget(raw) {
489
496
  if (raw !== raw.trim() || hasIrcControlChars(raw) || !IRC_TARGET_PATTERN.test(raw)) throw new Error(`Invalid IRC target: ${raw}`);
490
497
  return raw;
491
498
  }
492
- // extensions/irc/src/client.ts
499
+ //#endregion
500
+ //#region extensions/irc/src/client.ts
493
501
  const IRC_ERROR_CODES = /* @__PURE__ */ new Set([
494
502
  "432",
495
503
  "464",
@@ -809,7 +817,8 @@ async function connectIrcClient(options) {
809
817
  close
810
818
  };
811
819
  }
812
- // extensions/irc/src/connect-options.ts
820
+ //#endregion
821
+ //#region extensions/irc/src/connect-options.ts
813
822
  function buildIrcConnectOptions(account, overrides = {}) {
814
823
  assertSecretOwnerAvailable("account", `irc:${account.accountId}`);
815
824
  if (account.tokenStatus === "configured_unavailable") throw new Error(`IRC credentials for account "${account.accountId}" are configured but unavailable.`);
@@ -825,7 +834,8 @@ function buildIrcConnectOptions(account, overrides = {}) {
825
834
  ...overrides
826
835
  };
827
836
  }
828
- // extensions/irc/src/probe.ts
837
+ //#endregion
838
+ //#region extensions/irc/src/probe.ts
829
839
  async function probeIrc(cfg, opts) {
830
840
  const account = resolveIrcAccount({
831
841
  cfg,
@@ -859,7 +869,8 @@ async function probeIrc(cfg, opts) {
859
869
  };
860
870
  }
861
871
  }
862
- // extensions/irc/src/send.ts
872
+ //#endregion
873
+ //#region extensions/irc/src/send.ts
863
874
  async function sendIrcMessages(to, text, opts, planMessages = (preparedText) => [{
864
875
  text: preparedText,
865
876
  replyTo: opts.replyTo
@@ -955,7 +966,8 @@ async function sendMessageIrc(to, text, opts) {
955
966
  if (!result) throw new Error("Message must be non-empty for IRC sends");
956
967
  return result;
957
968
  }
958
- // extensions/irc/src/setup-core.ts
969
+ //#endregion
970
+ //#region extensions/irc/src/setup-core.ts
959
971
  const channel$1 = "irc";
960
972
  const setIrcDmPolicy = createTopLevelChannelDmPolicySetter({ channel: channel$1 });
961
973
  const setIrcAllowFrom = createTopLevelChannelAllowFromSetter({ channel: channel$1 });
@@ -1104,7 +1116,8 @@ const ircSetupContract = defineChannelSetupContract({
1104
1116
  },
1105
1117
  legacyAdapter: ircSetupAdapter
1106
1118
  });
1107
- // extensions/irc/src/setup-surface.ts
1119
+ //#endregion
1120
+ //#region extensions/irc/src/setup-surface.ts
1108
1121
  const t = createSetupTranslator();
1109
1122
  const channel = "irc";
1110
1123
  const USE_ENV_FLAG = "__ircUseEnv";
@@ -1414,7 +1427,8 @@ const ircSetupWizard = {
1414
1427
  dmPolicy: ircDmPolicy,
1415
1428
  disable: (cfg) => setSetupChannelEnabled(cfg, channel, false)
1416
1429
  };
1417
- // extensions/irc/src/channel.ts
1430
+ //#endregion
1431
+ //#region extensions/irc/src/channel.ts
1418
1432
  function ircAccountDetails(account) {
1419
1433
  return {
1420
1434
  host: account.host,
@@ -1708,7 +1722,7 @@ const ircPlugin = createChatChannelPlugin({
1708
1722
  const statusSink = createAccountStatusSink(ctx);
1709
1723
  if (!account.configured) throw new Error(`IRC is not configured for account "${account.accountId}" (need host and nick in channels.irc).`);
1710
1724
  ctx.log?.info?.(`[${account.accountId}] starting IRC provider (${account.host}:${account.port}${account.tls ? " tls" : ""})`);
1711
- const { monitorIrcProvider } = await import("./channel-runtime-D2sqTm8e.mjs");
1725
+ const { monitorIrcProvider } = await import("./channel-runtime-D4vKt7TE.mjs");
1712
1726
  await runPassiveAccountLifecycle({
1713
1727
  abortSignal: ctx.abortSignal,
1714
1728
  start: async () => await monitorIrcProvider({
@@ -1731,7 +1745,7 @@ const ircPlugin = createChatChannelPlugin({
1731
1745
  notify: async ({ cfg, id, message, accountId }) => {
1732
1746
  const target = normalizePairingTarget(id);
1733
1747
  if (!target) throw new Error(`invalid IRC pairing id: ${id}`);
1734
- const { sendMessageIrc } = await import("./channel-runtime-D2sqTm8e.mjs");
1748
+ const { sendMessageIrc } = await import("./channel-runtime-D4vKt7TE.mjs");
1735
1749
  await sendMessageIrc(target, message, {
1736
1750
  cfg,
1737
1751
  accountId
@@ -1757,4 +1771,5 @@ const ircPlugin = createChatChannelPlugin({
1757
1771
  }
1758
1772
  }
1759
1773
  });
1774
+ //#endregion
1760
1775
  export { listIrcAccountIds as _, buildIrcConnectOptions as a, parseIrcPrefix as c, sanitizeIrcAssistantText as d, createIrcIngressSubject as f, listEnabledIrcAccounts as g, normalizeIrcAllowEntry as h, sendMessageIrc as i, resolveIrcGroupMatch as l, isChannelTarget as m, ircSetupWizard as n, connectIrcClient as o, ircIngressIdentity as p, ircSetupAdapter as r, parseIrcLine as s, ircPlugin as t, resolveIrcGroupRequireMention as u, resolveDefaultIrcAccountId as v, resolveIrcAccount as y };
@@ -0,0 +1,2 @@
1
+ export { t as ircPlugin } from "./channel-DgvKz42q.mjs";
2
+ import "../channel-plugin-api.js";
@@ -1,5 +1,5 @@
1
- import { a as buildIrcConnectOptions, c as parseIrcPrefix, d as sanitizeIrcAssistantText, f as createIrcIngressSubject, h as normalizeIrcAllowEntry, i as sendMessageIrc, l as resolveIrcGroupMatch, m as isChannelTarget, o as connectIrcClient, p as ircIngressIdentity, s as parseIrcLine, u as resolveIrcGroupRequireMention, y as resolveIrcAccount } from "./channel-DRdPa321.mjs";
2
- import { t as getIrcRuntime } from "./runtime-CsdAoZex.mjs";
1
+ import { a as buildIrcConnectOptions, c as parseIrcPrefix, d as sanitizeIrcAssistantText, f as createIrcIngressSubject, h as normalizeIrcAllowEntry, i as sendMessageIrc, l as resolveIrcGroupMatch, m as isChannelTarget, o as connectIrcClient, p as ircIngressIdentity, s as parseIrcLine, u as resolveIrcGroupRequireMention, y as resolveIrcAccount } from "./channel-DgvKz42q.mjs";
2
+ import { t as getIrcRuntime } from "./runtime-C_V9tmpk.mjs";
3
3
  import { channelIngressRoutes } from "openclaw/plugin-sdk/channel-ingress-runtime";
4
4
  import { bindIngressLifecycleToReplyOptions, createChannelIngressError, createChannelIngressMonitor, resolveChannelStreamingBlockEnabled } from "openclaw/plugin-sdk/channel-outbound";
5
5
  import { computeBackoff } from "openclaw/plugin-sdk/runtime-env";
@@ -14,7 +14,7 @@ import { channelReadyPatch } from "openclaw/plugin-sdk/gateway-runtime";
14
14
  import { deliverFormattedTextWithAttachments } from "openclaw/plugin-sdk/reply-payload";
15
15
  import { GROUP_POLICY_BLOCKED_LABEL, resolveAllowlistProviderRuntimeGroupPolicy, resolveDefaultGroupPolicy, warnMissingProviderGroupPolicyFallbackOnce } from "openclaw/plugin-sdk/runtime-group-policy";
16
16
  import { escapeRegExp } from "openclaw/plugin-sdk/text-utility-runtime";
17
- // extensions/irc/src/irc-ingress.ts
17
+ //#region extensions/irc/src/irc-ingress.ts
18
18
  const IRC_INGRESS_PAYLOAD_VERSION = 1;
19
19
  const IRC_INGRESS_POLL_INTERVAL_MS = 1e3;
20
20
  const IrcIngressPayloadError = createChannelIngressError("IrcIngressPayloadError");
@@ -146,7 +146,8 @@ function createIrcIngressMonitor(options) {
146
146
  waitForIdle: monitor.waitForIdle
147
147
  };
148
148
  }
149
- // extensions/irc/src/reconnect-backoff.ts
149
+ //#endregion
150
+ //#region extensions/irc/src/reconnect-backoff.ts
150
151
  const IRC_RECONNECT_BACKOFF = {
151
152
  initialMs: 1e3,
152
153
  maxMs: 3e4,
@@ -169,7 +170,8 @@ function createIrcReconnectBackoff() {
169
170
  }
170
171
  };
171
172
  }
172
- // extensions/irc/src/monitor.ts
173
+ //#endregion
174
+ //#region extensions/irc/src/monitor.ts
173
175
  const CHANNEL_ID = "irc";
174
176
  const IRC_NICK_CHARACTER = String.raw`[A-Za-z0-9_\-\[\]\\\x60^{}|~]`;
175
177
  const IRC_RFC1459_CASE_EQUIVALENTS = /* @__PURE__ */ new Map([
@@ -576,4 +578,5 @@ async function monitorIrcProvider(opts) {
576
578
  return stopTask;
577
579
  } };
578
580
  }
581
+ //#endregion
579
582
  export { monitorIrcProvider, sendMessageIrc };
@@ -1,7 +1,7 @@
1
1
  import { createChannelConfigUiHints } from "openclaw/plugin-sdk/channel-core";
2
2
  import { ChannelGroupEntrySchema, DmPolicySchema, GroupPolicySchema, MarkdownConfigSchema, ReplyRuntimeConfigSchemaShape, ReplyToModeSchema, buildChannelConfigSchema, buildMultiAccountChannelSchema, requireOpenAllowFrom } from "openclaw/plugin-sdk/channel-config-schema";
3
3
  import { z } from "zod";
4
- // extensions/irc/src/config-schema.ts
4
+ //#region extensions/irc/src/config-schema.ts
5
5
  const ircChannelConfigUiHints = {
6
6
  "": {
7
7
  label: "IRC",
@@ -93,4 +93,5 @@ const IrcConfigSchema = buildMultiAccountChannelSchema(IrcAccountSchemaBase, {
93
93
  }
94
94
  });
95
95
  const IrcChannelConfigSchema = buildChannelConfigSchema(IrcConfigSchema, { uiHints: ircChannelConfigUiHints });
96
+ //#endregion
96
97
  export { IrcChannelConfigSchema as t };
@@ -1,7 +1,8 @@
1
1
  import { createPluginRuntimeStore } from "openclaw/plugin-sdk/runtime-store";
2
- // extensions/irc/src/runtime.ts
2
+ //#region extensions/irc/src/runtime.ts
3
3
  const { setRuntime: setIrcRuntime, getRuntime: getIrcRuntime, tryGetRuntime: getOptionalIrcRuntime } = createPluginRuntimeStore({
4
4
  pluginId: "irc",
5
5
  errorMessage: "IRC runtime not initialized"
6
6
  });
7
+ //#endregion
7
8
  export { getOptionalIrcRuntime as n, setIrcRuntime as r, getIrcRuntime as t };
@@ -1,5 +1,5 @@
1
1
  import { collectNestedChannelFieldAssignments, collectSimpleChannelFieldAssignments, createChannelSecretContract, isBaseFieldActiveForChannelSurface, isEnabledFlag, isRecord } from "openclaw/plugin-sdk/channel-secret-basic-runtime";
2
- // extensions/irc/src/secret-contract.ts
2
+ //#region extensions/irc/src/secret-contract.ts
3
3
  const channelSecrets = createChannelSecretContract({
4
4
  channelKey: "irc",
5
5
  account: ["nickserv.password", "password"],
@@ -25,4 +25,5 @@ const channelSecrets = createChannelSecretContract({
25
25
  }
26
26
  });
27
27
  const { secretTargetRegistryEntries, collectRuntimeConfigAssignments } = channelSecrets;
28
+ //#endregion
28
29
  export { collectRuntimeConfigAssignments as n, secretTargetRegistryEntries as r, channelSecrets as t };
@@ -1,2 +1,2 @@
1
- export { t as channelSecrets, n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./secret-contract-0Ccz8X9F.mjs";
1
+ export { t as channelSecrets, n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./secret-contract-C5i-29Hz.mjs";
2
2
  import "../secret-contract-api.js";
@@ -1 +1 @@
1
- {"version":3,"entries":[{"output":"api.js","source":"extensions/irc/api.ts"},{"output":"channel-config-api.js","source":"extensions/irc/channel-config-api.ts"},{"output":"channel-plugin-api.js","source":"extensions/irc/channel-plugin-api.ts"},{"output":"doctor-contract-api.js","source":"extensions/irc/doctor-contract-api.ts"},{"output":"index.js","source":"extensions/irc/index.ts"},{"output":"runtime-api.js","source":"extensions/irc/runtime-api.ts"},{"output":"secret-contract-api.js","source":"extensions/irc/secret-contract-api.ts"},{"output":"setup-entry.js","source":"extensions/irc/setup-entry.ts"}],"chunks":[{"output":".setup/channel-DRdPa321.mjs","sha256":"38bc0a4bed895c3d8887640d7ccb0d3fbc4f77050e17f47e6badd61a88d8b188","facadeSource":null,"sources":["extensions/irc/src/accounts.ts","extensions/irc/src/channel.ts","extensions/irc/src/client.ts","extensions/irc/src/connect-options.ts","extensions/irc/src/control-chars.ts","extensions/irc/src/ingress-identity.ts","extensions/irc/src/normalize.ts","extensions/irc/src/outbound-base.ts","extensions/irc/src/policy.ts","extensions/irc/src/probe.ts","extensions/irc/src/protocol.ts","extensions/irc/src/send.ts","extensions/irc/src/setup-core.ts","extensions/irc/src/setup-surface.ts","packages/normalization-core/src/grapheme.ts","packages/normalization-core/src/utf16-slice.ts"]},{"output":".setup/channel-plugin-api-DFjxQCOi.mjs","sha256":"f377ed5103dacadfbf9e7c419ee4db1dbf1c1ccc28992f585519f3de19901482","facadeSource":"extensions/irc/channel-plugin-api.ts","sources":[]},{"output":".setup/channel-runtime-D2sqTm8e.mjs","sha256":"00b338b21502782ae1ff34d2921388eaa0dc0a8016f6afc555cfc73830c2fb73","facadeSource":"extensions/irc/src/channel-runtime.ts","sources":["extensions/irc/src/irc-ingress.ts","extensions/irc/src/monitor.ts","extensions/irc/src/reconnect-backoff.ts"]},{"output":".setup/config-schema-CQuAQW7O.mjs","sha256":"34c888b0637a2718940b5bfb88a79e2db75a2b9dd1eb4acb6d7dd7761d086833","facadeSource":null,"sources":["extensions/irc/src/config-schema.ts"]},{"output":".setup/runtime-CsdAoZex.mjs","sha256":"b482d973b5d4bf23cc5ec66bdc228ee7151794a36eec497e57ad9e9e27aa48b0","facadeSource":null,"sources":["extensions/irc/src/runtime.ts"]},{"output":".setup/secret-contract-0Ccz8X9F.mjs","sha256":"a2107dd2d2a2f07298fa31d9228fba57db3af18a0cf3f2e8039db0f6cbe9de15","facadeSource":null,"sources":["extensions/irc/src/secret-contract.ts"]},{"output":".setup/secret-contract-api-BabNUhhB.mjs","sha256":"f6810408d2a21938d4e2b0e823f443859ca71d84723d877f9497b6a7221c5c0d","facadeSource":"extensions/irc/secret-contract-api.ts","sources":[]},{"output":"api.js","sha256":"e602c3ac3be5f7dcfce8eed4a98e153a4fe6046f9d01df171c8573bd1390d1cb","facadeSource":"extensions/irc/api.ts","sources":[]},{"output":"channel-config-api.js","sha256":"1061f098b8a9134951ec7da5160fcf080c11b461550739c197b93d6ec6063122","facadeSource":"extensions/irc/channel-config-api.ts","sources":[]},{"output":"channel-plugin-api.js","sha256":"61b8334b8b68eec51976781b8ac6a6cce6361ad60fc6cda87dc242de9ad24830","facadeSource":"extensions/irc/channel-plugin-api.ts","sources":[]},{"output":"doctor-contract-api.js","sha256":"8b0484eda902108365f4548d42566303c6dcbb3ccfc89ba0e06a8633a6864819","facadeSource":"extensions/irc/doctor-contract-api.ts","sources":["extensions/irc/config-doctor-api.ts","packages/normalization-core/src/record-coerce.ts","src/config/channel-config-normalization.ts","src/plugin-sdk/legacy-webhook-listener-migration.ts"]},{"output":"index.js","sha256":"c399885749c923bf11c27c34eb67cc4f07def79ee3610b899d92db1a75e944f6","facadeSource":"extensions/irc/index.ts","sources":["extensions/irc/index.ts"]},{"output":"runtime-api.js","sha256":"71a18976cee49bc28f82b6e930e758f6efe6ea5527dff725f7cac5a823600190","facadeSource":"extensions/irc/runtime-api.ts","sources":[]},{"output":"secret-contract-api.js","sha256":"01ed5e83bd4b44f756a0591ab306fb1f569fe95d78d19671a9c41e48a0a4857d","facadeSource":"extensions/irc/secret-contract-api.ts","sources":[]},{"output":"setup-entry.js","sha256":"53c37b74b627efa52fb5397bcdb4a4510af8a084cd738704afc62c8825254f35","facadeSource":"extensions/irc/setup-entry.ts","sources":["extensions/irc/setup-entry.ts"]}],"unrenderedSources":["extensions/irc/api.ts","extensions/irc/channel-config-api.ts","extensions/irc/channel-plugin-api.ts","extensions/irc/doctor-contract-api.ts","extensions/irc/runtime-api.ts","extensions/irc/secret-contract-api.ts","extensions/irc/src/channel-runtime.ts","src/plugin-sdk/text-grapheme.ts"]}
1
+ {"version":3,"entries":[{"output":"api.js","source":"extensions/irc/api.ts"},{"output":"channel-config-api.js","source":"extensions/irc/channel-config-api.ts"},{"output":"channel-plugin-api.js","source":"extensions/irc/channel-plugin-api.ts"},{"output":"doctor-contract-api.js","source":"extensions/irc/doctor-contract-api.ts"},{"output":"index.js","source":"extensions/irc/index.ts"},{"output":"runtime-api.js","source":"extensions/irc/runtime-api.ts"},{"output":"secret-contract-api.js","source":"extensions/irc/secret-contract-api.ts"},{"output":"setup-entry.js","source":"extensions/irc/setup-entry.ts"}],"chunks":[{"output":".setup/channel-DgvKz42q.mjs","sha256":"25591c4dd4dd69f60fa4ec7fb6dfb02cf282ba5be0799468d473d702a3b8f3cd","facadeSource":null,"sources":["extensions/irc/src/accounts.ts","extensions/irc/src/channel.ts","extensions/irc/src/client.ts","extensions/irc/src/connect-options.ts","extensions/irc/src/control-chars.ts","extensions/irc/src/ingress-identity.ts","extensions/irc/src/normalize.ts","extensions/irc/src/outbound-base.ts","extensions/irc/src/policy.ts","extensions/irc/src/probe.ts","extensions/irc/src/protocol.ts","extensions/irc/src/send.ts","extensions/irc/src/setup-core.ts","extensions/irc/src/setup-surface.ts","packages/normalization-core/src/grapheme.ts","packages/normalization-core/src/utf16-slice.ts"]},{"output":".setup/channel-plugin-api-WXJUjGsf.mjs","sha256":"ca1568fb3e79aaa3202eb330be13621927d7bd736cc66a5411dcdbc2d5685f86","facadeSource":"extensions/irc/channel-plugin-api.ts","sources":[]},{"output":".setup/channel-runtime-D4vKt7TE.mjs","sha256":"5b95ec28cfc745c4e41e4b77e218ab7d7fc0faac6f5f8c363e1ca8469eccc789","facadeSource":"extensions/irc/src/channel-runtime.ts","sources":["extensions/irc/src/irc-ingress.ts","extensions/irc/src/monitor.ts","extensions/irc/src/reconnect-backoff.ts"]},{"output":".setup/config-schema-CHwjI_aV.mjs","sha256":"283bc2145f0751e110cc8e2c2657c6ee4a408fe856cc321f42d5d5773db2cabf","facadeSource":null,"sources":["extensions/irc/src/config-schema.ts"]},{"output":".setup/runtime-C_V9tmpk.mjs","sha256":"3f1f1b4d7ee63152a339b6a4614a28f57972bf655c73e0e7083c837370bc094c","facadeSource":null,"sources":["extensions/irc/src/runtime.ts"]},{"output":".setup/secret-contract-api-4IT9_EK6.mjs","sha256":"8d9275ff824f6c76b94e80dc043be8a12df9c8b3dc7203faa58bd2fc1bf3c244","facadeSource":"extensions/irc/secret-contract-api.ts","sources":[]},{"output":".setup/secret-contract-C5i-29Hz.mjs","sha256":"2eb99571f8fac572bc6d2a7cafe7bf7f2d864101256eb7b5aa6876fd031ee914","facadeSource":null,"sources":["extensions/irc/src/secret-contract.ts"]},{"output":"api.js","sha256":"4b63dc79a62e56af35b35dc398424d255aa86619e69c90baf657f8d3ec4ff666","facadeSource":"extensions/irc/api.ts","sources":[]},{"output":"channel-config-api.js","sha256":"3aa7303e9a7129099c9a8f9d644213f440902cd4748ce379f54484a9b523f544","facadeSource":"extensions/irc/channel-config-api.ts","sources":[]},{"output":"channel-plugin-api.js","sha256":"301f596faba5b2ec8be4314e9cf464f8f32c4eb9cf7639c1994cf77c9758aff5","facadeSource":"extensions/irc/channel-plugin-api.ts","sources":[]},{"output":"doctor-contract-api.js","sha256":"de1a30eb327e6de2799b8b84a8b4bd0f607d90051a2ab67f6a08ed3d29a54505","facadeSource":"extensions/irc/doctor-contract-api.ts","sources":["extensions/irc/config-doctor-api.ts","packages/normalization-core/src/record-coerce.ts","src/config/channel-config-normalization.ts","src/plugin-sdk/legacy-webhook-listener-migration.ts"]},{"output":"index.js","sha256":"26465ab4a608138b3cec93e4593f91f076be42b0fea9edad110953d71ec2e78c","facadeSource":"extensions/irc/index.ts","sources":["extensions/irc/index.ts"]},{"output":"runtime-api.js","sha256":"52b1074caae3be2b4f35e6ab34f26576c94d3a970587212b24eb8d9ac501720c","facadeSource":"extensions/irc/runtime-api.ts","sources":[]},{"output":"secret-contract-api.js","sha256":"ba5440395ed290e6115b9fa94429ffd9302dad0a9077f89307928fdc106fa4f0","facadeSource":"extensions/irc/secret-contract-api.ts","sources":[]},{"output":"setup-entry.js","sha256":"06a83942b5b52847b2f5dd9b0a5a9edcbc52a39457309b49c31e02986c7f63d2","facadeSource":"extensions/irc/setup-entry.ts","sources":["extensions/irc/setup-entry.ts"]}],"unrenderedSources":["extensions/irc/api.ts","extensions/irc/channel-config-api.ts","extensions/irc/channel-plugin-api.ts","extensions/irc/doctor-contract-api.ts","extensions/irc/runtime-api.ts","extensions/irc/secret-contract-api.ts","extensions/irc/src/channel-runtime.ts","src/plugin-sdk/text-grapheme.ts"]}
package/dist/api.js CHANGED
@@ -1,3 +1,3 @@
1
- import { _ as listIrcAccountIds, g as listEnabledIrcAccounts, n as ircSetupWizard, r as ircSetupAdapter, t as ircPlugin, v as resolveDefaultIrcAccountId, y as resolveIrcAccount } from "./.setup/channel-DRdPa321.mjs";
2
- import { r as setIrcRuntime } from "./.setup/runtime-CsdAoZex.mjs";
1
+ import { _ as listIrcAccountIds, g as listEnabledIrcAccounts, n as ircSetupWizard, r as ircSetupAdapter, t as ircPlugin, v as resolveDefaultIrcAccountId, y as resolveIrcAccount } from "./.setup/channel-DgvKz42q.mjs";
2
+ import { r as setIrcRuntime } from "./.setup/runtime-C_V9tmpk.mjs";
3
3
  export { ircPlugin, ircSetupAdapter, ircSetupWizard, listEnabledIrcAccounts, listIrcAccountIds, resolveDefaultIrcAccountId, resolveIrcAccount, setIrcRuntime };
@@ -1 +1 @@
1
- export { t as IrcChannelConfigSchema } from "./.setup/config-schema-CQuAQW7O.mjs";
1
+ export { t as IrcChannelConfigSchema } from "./.setup/config-schema-CHwjI_aV.mjs";
@@ -1 +1 @@
1
- export { t as ircPlugin } from "./.setup/channel-DRdPa321.mjs";
1
+ export { t as ircPlugin } from "./.setup/channel-DgvKz42q.mjs";
@@ -1,4 +1,4 @@
1
- // \0rolldown/runtime.js
1
+ //#region \0rolldown/runtime.js
2
2
  var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -23,7 +23,8 @@ var __copyProps = (to, from, except, desc) => {
23
23
  return to;
24
24
  };
25
25
  var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
26
- // packages/normalization-core/src/record-coerce.ts
26
+ //#endregion
27
+ //#region packages/normalization-core/src/record-coerce.ts
27
28
  /** Type guard for non-array object records at browser-safe boundaries. */
28
29
  function isRecord(value) {
29
30
  return value !== null && typeof value === "object" && !Array.isArray(value);
@@ -32,7 +33,8 @@ function isRecord(value) {
32
33
  function asNullableRecord(value) {
33
34
  return isRecord(value) ? value : null;
34
35
  }
35
- // src/config/channel-config-normalization.ts
36
+ //#endregion
37
+ //#region src/config/channel-config-normalization.ts
36
38
  /** Applies one channel-specific doctor migration to every object-shaped account. */
37
39
  function normalizeChannelAccounts(params) {
38
40
  const rawAccounts = asNullableRecord(params.entry.accounts);
@@ -108,7 +110,8 @@ function normalizeChannelConfigEntries(params) {
108
110
  changes
109
111
  };
110
112
  }
111
- // src/plugin-sdk/legacy-webhook-listener-migration.ts
113
+ //#endregion
114
+ //#region src/plugin-sdk/legacy-webhook-listener-migration.ts
112
115
  /** Preserve explicitly configured webhook listeners while moving ingress onto Gateway routes. */
113
116
  function createLegacyWebhookListenerDoctorContract(params) {
114
117
  const portKey = params.portKey ?? "webhookPort";
@@ -178,11 +181,13 @@ function createLegacyWebhookListenerDoctorContract(params) {
178
181
  }
179
182
  };
180
183
  }
181
- // \0openclaw:bundled-sdk:openclaw/plugin-sdk/runtime-doctor-migrations
184
+ //#endregion
185
+ //#region \0openclaw:bundled-sdk:openclaw/plugin-sdk/runtime-doctor-migrations
182
186
  var runtime_doctor_migrations_exports = /* @__PURE__ */ __exportAll({ createLegacyWebhookListenerDoctorContract: () => createLegacyWebhookListenerDoctorContract });
183
187
  import * as import_openclaw_plugin_sdk_runtime_doctor_migrations from "openclaw/plugin-sdk/runtime-doctor-migrations";
184
188
  __reExport(runtime_doctor_migrations_exports, import_openclaw_plugin_sdk_runtime_doctor_migrations);
185
- // extensions/irc/config-doctor-api.ts
189
+ //#endregion
190
+ //#region extensions/irc/config-doctor-api.ts
186
191
  const streamingAliasMigration = (0, runtime_doctor_migrations_exports.defineChannelAliasMigration)({
187
192
  channelId: "irc",
188
193
  streaming: {
@@ -225,4 +230,5 @@ function normalizeCompatibilityConfig({ cfg }) {
225
230
  changes
226
231
  };
227
232
  }
233
+ //#endregion
228
234
  export { legacyConfigRules, normalizeCompatibilityConfig };
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { defineBundledChannelEntry } from "openclaw/plugin-sdk/channel-entry-contract";
2
- // extensions/irc/index.ts
2
+ //#region extensions/irc/index.ts
3
3
  var irc_default = defineBundledChannelEntry({
4
4
  id: "irc",
5
5
  name: "IRC",
@@ -18,4 +18,5 @@ var irc_default = defineBundledChannelEntry({
18
18
  exportName: "setIrcRuntime"
19
19
  }
20
20
  });
21
+ //#endregion
21
22
  export { irc_default as default };
@@ -1 +1 @@
1
- export { r as setIrcRuntime } from "./.setup/runtime-CsdAoZex.mjs";
1
+ export { r as setIrcRuntime } from "./.setup/runtime-C_V9tmpk.mjs";
@@ -1 +1 @@
1
- export { t as channelSecrets, n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./.setup/secret-contract-0Ccz8X9F.mjs";
1
+ export { t as channelSecrets, n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./.setup/secret-contract-C5i-29Hz.mjs";
@@ -1,15 +1,16 @@
1
1
  import { defineBundledChannelSetupEntry } from "openclaw/plugin-sdk/channel-entry-contract";
2
2
  import { fileURLToPath } from "node:url";
3
- // extensions/irc/setup-entry.ts
3
+ //#region extensions/irc/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/channel-plugin-api-DFjxQCOi.mjs", import.meta.url).href),
7
+ specifier: fileURLToPath(new URL(".setup/channel-plugin-api-WXJUjGsf.mjs", import.meta.url).href),
8
8
  exportName: "ircPlugin"
9
9
  },
10
10
  secrets: {
11
- specifier: fileURLToPath(new URL(".setup/secret-contract-api-BabNUhhB.mjs", import.meta.url).href),
11
+ specifier: fileURLToPath(new URL(".setup/secret-contract-api-4IT9_EK6.mjs", import.meta.url).href),
12
12
  exportName: "channelSecrets"
13
13
  }
14
14
  });
15
+ //#endregion
15
16
  export { setup_entry_default as default };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/irc",
3
- "version": "2026.11.5-beta.1",
3
+ "version": "2026.11.5-beta.2",
4
4
  "description": "OpenClaw IRC channel plugin",
5
5
  "type": "module",
6
6
  "openclaw": {
@@ -121,10 +121,10 @@
121
121
  }
122
122
  },
123
123
  "compat": {
124
- "pluginApi": ">=2026.11.5-beta.1"
124
+ "pluginApi": ">=2026.11.5-beta.2"
125
125
  },
126
126
  "build": {
127
- "openclawVersion": "2026.11.5-beta.1",
127
+ "openclawVersion": "2026.11.5-beta.2",
128
128
  "bundledDist": false
129
129
  },
130
130
  "release": {
@@ -151,7 +151,7 @@
151
151
  "assets/activity.svg"
152
152
  ],
153
153
  "peerDependencies": {
154
- "openclaw": ">=2026.11.5-beta.1"
154
+ "openclaw": ">=2026.11.5-beta.2"
155
155
  },
156
156
  "peerDependenciesMeta": {
157
157
  "openclaw": {
@@ -1,2 +0,0 @@
1
- export { t as ircPlugin } from "./channel-DRdPa321.mjs";
2
- import "../channel-plugin-api.js";