@openclaw/irc 2026.10.5-beta.3 → 2026.10.5
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-BXrFfvr6.mjs → channel-BUxLmWSQ.mjs} +17 -2
- package/dist/.setup/channel-plugin-api-BVB1wJle.mjs +2 -0
- package/dist/.setup/{channel-runtime-FNBqToAo.mjs → channel-runtime-CD33S4SX.mjs} +1 -1
- package/dist/.setup/secret-contract-api-4IT9_EK6.mjs +2 -0
- package/dist/api.js +1 -1
- package/dist/channel-config-api.js +1 -2
- package/dist/channel-plugin-api.js +1 -2
- package/dist/runtime-api.js +1 -2
- package/dist/secret-contract-api.js +1 -2
- package/dist/setup-entry.js +2 -2
- package/package.json +4 -4
- package/dist/.setup/channel-plugin-api-tb7ep4Ml.mjs +0 -3
- package/dist/.setup/secret-contract-api-ClqD0Rpm.mjs +0 -3
|
@@ -207,7 +207,7 @@ async function startIrcGatewayAccount(ctx) {
|
|
|
207
207
|
});
|
|
208
208
|
if (!account.configured) throw new Error(`IRC is not configured for account "${account.accountId}" (need host and nick in channels.irc).`);
|
|
209
209
|
ctx.log?.info?.(`[${account.accountId}] starting IRC provider (${account.host}:${account.port}${account.tls ? " tls" : ""})`);
|
|
210
|
-
const { monitorIrcProvider } = await import("./channel-runtime-
|
|
210
|
+
const { monitorIrcProvider } = await import("./channel-runtime-CD33S4SX.mjs");
|
|
211
211
|
await runPassiveAccountLifecycle({
|
|
212
212
|
abortSignal: ctx.abortSignal,
|
|
213
213
|
start: async () => await monitorIrcProvider({
|
|
@@ -513,6 +513,7 @@ const IRC_MAX_LINE_BYTES = 512;
|
|
|
513
513
|
const IRC_MAX_RELAY_USER_BYTES = 11;
|
|
514
514
|
const IRC_MAX_RELAY_HOST_BYTES = 63;
|
|
515
515
|
const IRC_MAX_INBOUND_LINE_LENGTH = 16384;
|
|
516
|
+
const IRC_LIVENESS_TIMEOUT_MS = 24e4;
|
|
516
517
|
function takeIrcPrivmsgChunk(text, maxChars, maxBytes) {
|
|
517
518
|
let end = 0;
|
|
518
519
|
let bytes = 0;
|
|
@@ -652,9 +653,20 @@ async function connectIrcClient(options) {
|
|
|
652
653
|
throw error;
|
|
653
654
|
});
|
|
654
655
|
};
|
|
656
|
+
let lastReceivedAt = Date.now();
|
|
657
|
+
const livenessTimer = setInterval(() => {
|
|
658
|
+
if (!ready || closed) return;
|
|
659
|
+
const silentMs = Date.now() - lastReceivedAt;
|
|
660
|
+
if (silentMs >= IRC_LIVENESS_TIMEOUT_MS) {
|
|
661
|
+
fail(/* @__PURE__ */ new Error(`IRC server sent nothing for ${Math.round(silentMs / 1e3)}s; reconnecting`));
|
|
662
|
+
socket.destroy();
|
|
663
|
+
} else if (silentMs >= IRC_LIVENESS_TIMEOUT_MS / 2) sendRaw("PING :openclaw");
|
|
664
|
+
}, 3e4);
|
|
665
|
+
livenessTimer.unref();
|
|
655
666
|
const quit = (reason) => {
|
|
656
667
|
if (closed) return;
|
|
657
668
|
closed = true;
|
|
669
|
+
clearInterval(livenessTimer);
|
|
658
670
|
removeAbortListener?.();
|
|
659
671
|
removeAbortListener = null;
|
|
660
672
|
const safeReason = sanitizeIrcOutboundText(reason ?? "bye");
|
|
@@ -667,6 +679,7 @@ async function connectIrcClient(options) {
|
|
|
667
679
|
const close = () => {
|
|
668
680
|
if (closed) return;
|
|
669
681
|
closed = true;
|
|
682
|
+
clearInterval(livenessTimer);
|
|
670
683
|
removeAbortListener?.();
|
|
671
684
|
removeAbortListener = null;
|
|
672
685
|
socket.destroy();
|
|
@@ -681,6 +694,7 @@ async function connectIrcClient(options) {
|
|
|
681
694
|
};
|
|
682
695
|
socket.on("data", (chunk) => {
|
|
683
696
|
if (receiveOverflowed) return;
|
|
697
|
+
lastReceivedAt = Date.now();
|
|
684
698
|
buffer += chunk;
|
|
685
699
|
let idx = buffer.indexOf("\n");
|
|
686
700
|
while (idx !== -1) {
|
|
@@ -768,6 +782,7 @@ async function connectIrcClient(options) {
|
|
|
768
782
|
fail(err);
|
|
769
783
|
});
|
|
770
784
|
socket.once("close", () => {
|
|
785
|
+
clearInterval(livenessTimer);
|
|
771
786
|
if (!closed) {
|
|
772
787
|
closed = true;
|
|
773
788
|
removeAbortListener?.();
|
|
@@ -1779,7 +1794,7 @@ const ircPlugin = createChatChannelPlugin({
|
|
|
1779
1794
|
notify: async ({ cfg, id, message, accountId }) => {
|
|
1780
1795
|
const target = normalizePairingTarget(id);
|
|
1781
1796
|
if (!target) throw new Error(`invalid IRC pairing id: ${id}`);
|
|
1782
|
-
const { sendMessageIrc } = await import("./channel-runtime-
|
|
1797
|
+
const { sendMessageIrc } = await import("./channel-runtime-CD33S4SX.mjs");
|
|
1783
1798
|
await sendMessageIrc(target, message, {
|
|
1784
1799
|
cfg,
|
|
1785
1800
|
accountId
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as resolveIrcGroupRequireMention, c as connectIrcClient, d as sanitizeIrcAssistantText, f as createIrcIngressSubject, h as normalizeIrcAllowEntry, i as resolveIrcGroupMatch, l as parseIrcLine, m as isChannelTarget, o as sendMessageIrc, p as ircIngressIdentity, s as buildIrcConnectOptions, u as parseIrcPrefix, y as resolveIrcAccount } from "./channel-
|
|
1
|
+
import { a as resolveIrcGroupRequireMention, c as connectIrcClient, d as sanitizeIrcAssistantText, f as createIrcIngressSubject, h as normalizeIrcAllowEntry, i as resolveIrcGroupMatch, l as parseIrcLine, m as isChannelTarget, o as sendMessageIrc, p as ircIngressIdentity, s as buildIrcConnectOptions, u as parseIrcPrefix, y as resolveIrcAccount } from "./channel-BUxLmWSQ.mjs";
|
|
2
2
|
import { t as getIrcRuntime } from "./runtime-C_V9tmpk.mjs";
|
|
3
3
|
import { channelIngressRoutes } from "openclaw/plugin-sdk/channel-ingress-runtime";
|
|
4
4
|
import { computeBackoff } from "openclaw/plugin-sdk/runtime-env";
|
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-
|
|
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-BUxLmWSQ.mjs";
|
|
2
2
|
import { r as setIrcRuntime } from "./.setup/runtime-C_V9tmpk.mjs";
|
|
3
3
|
export { ircPlugin, ircSetupAdapter, ircSetupWizard, listEnabledIrcAccounts, listIrcAccountIds, resolveDefaultIrcAccountId, resolveIrcAccount, setIrcRuntime };
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { IrcChannelConfigSchema };
|
|
1
|
+
export { t as IrcChannelConfigSchema } from "./.setup/config-schema-Cy9tItsu.mjs";
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { ircPlugin };
|
|
1
|
+
export { t as ircPlugin } from "./.setup/channel-BUxLmWSQ.mjs";
|
package/dist/runtime-api.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { setIrcRuntime };
|
|
1
|
+
export { r as setIrcRuntime } from "./.setup/runtime-C_V9tmpk.mjs";
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { channelSecrets, collectRuntimeConfigAssignments, secretTargetRegistryEntries };
|
|
1
|
+
export { t as channelSecrets, n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./.setup/secret-contract-C5i-29Hz.mjs";
|
package/dist/setup-entry.js
CHANGED
|
@@ -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/channel-plugin-api-
|
|
7
|
+
specifier: fileURLToPath(new URL(".setup/channel-plugin-api-BVB1wJle.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
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openclaw/irc",
|
|
3
|
-
"version": "2026.10.5
|
|
3
|
+
"version": "2026.10.5",
|
|
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.10.5
|
|
124
|
+
"pluginApi": ">=2026.10.5"
|
|
125
125
|
},
|
|
126
126
|
"build": {
|
|
127
|
-
"openclawVersion": "2026.10.5
|
|
127
|
+
"openclawVersion": "2026.10.5",
|
|
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.10.5
|
|
154
|
+
"openclaw": ">=2026.10.5"
|
|
155
155
|
},
|
|
156
156
|
"peerDependenciesMeta": {
|
|
157
157
|
"openclaw": {
|