@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.
- package/dist/.setup/{channel-DRdPa321.mjs → channel-DgvKz42q.mjs} +35 -20
- package/dist/.setup/channel-plugin-api-WXJUjGsf.mjs +2 -0
- package/dist/.setup/{channel-runtime-D2sqTm8e.mjs → channel-runtime-D4vKt7TE.mjs} +8 -5
- package/dist/.setup/{config-schema-CQuAQW7O.mjs → config-schema-CHwjI_aV.mjs} +2 -1
- package/dist/.setup/{runtime-CsdAoZex.mjs → runtime-C_V9tmpk.mjs} +2 -1
- package/dist/.setup/{secret-contract-0Ccz8X9F.mjs → secret-contract-C5i-29Hz.mjs} +2 -1
- package/dist/.setup/{secret-contract-api-BabNUhhB.mjs → secret-contract-api-4IT9_EK6.mjs} +1 -1
- package/dist/.source-module-urls/4751df78f545ae971ceb22b6e4bff6086f63313240899a1d9884b970424a305e.json +1 -1
- package/dist/api.js +2 -2
- package/dist/channel-config-api.js +1 -1
- package/dist/channel-plugin-api.js +1 -1
- package/dist/doctor-contract-api.js +12 -6
- package/dist/index.js +2 -1
- package/dist/runtime-api.js +1 -1
- package/dist/secret-contract-api.js +1 -1
- package/dist/setup-entry.js +4 -3
- package/package.json +4 -4
- package/dist/.setup/channel-plugin-api-DFjxQCOi.mjs +0 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { t as IrcChannelConfigSchema } from "./config-schema-
|
|
2
|
-
import { n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./secret-contract-
|
|
3
|
-
import { n as getOptionalIrcRuntime } from "./runtime-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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-
|
|
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-
|
|
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 };
|
|
@@ -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-
|
|
2
|
-
import { t as getIrcRuntime } from "./runtime-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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-
|
|
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-
|
|
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-
|
|
2
|
-
import { r as setIrcRuntime } from "./.setup/runtime-
|
|
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-
|
|
1
|
+
export { t as IrcChannelConfigSchema } from "./.setup/config-schema-CHwjI_aV.mjs";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { t as ircPlugin } from "./.setup/channel-
|
|
1
|
+
export { t as ircPlugin } from "./.setup/channel-DgvKz42q.mjs";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 };
|
package/dist/runtime-api.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { r as setIrcRuntime } from "./.setup/runtime-
|
|
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-
|
|
1
|
+
export { t as channelSecrets, n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./.setup/secret-contract-C5i-29Hz.mjs";
|
package/dist/setup-entry.js
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { defineBundledChannelSetupEntry } from "openclaw/plugin-sdk/channel-entry-contract";
|
|
2
2
|
import { fileURLToPath } from "node:url";
|
|
3
|
-
|
|
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-
|
|
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-
|
|
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.
|
|
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.
|
|
124
|
+
"pluginApi": ">=2026.11.5-beta.2"
|
|
125
125
|
},
|
|
126
126
|
"build": {
|
|
127
|
-
"openclawVersion": "2026.11.5-beta.
|
|
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.
|
|
154
|
+
"openclaw": ">=2026.11.5-beta.2"
|
|
155
155
|
},
|
|
156
156
|
"peerDependenciesMeta": {
|
|
157
157
|
"openclaw": {
|