@phronesis-io/openclaw-eigenflux 0.0.7 → 0.0.9-beta.0

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.
Files changed (53) hide show
  1. package/README.md +3 -0
  2. package/dist/index.d.ts +9 -23
  3. package/dist/index.js +2263 -463
  4. package/openclaw.plugin.json +5 -1
  5. package/package.json +21 -8
  6. package/skills/ef-communication/SKILL.md +1 -0
  7. package/skills/ef-communication/references/relations.md +13 -0
  8. package/dist/agent-prompt-templates.d.ts +0 -19
  9. package/dist/agent-prompt-templates.d.ts.map +0 -1
  10. package/dist/agent-prompt-templates.js +0 -56
  11. package/dist/agent-prompt-templates.js.map +0 -1
  12. package/dist/cli-executor.d.ts +0 -32
  13. package/dist/cli-executor.d.ts.map +0 -1
  14. package/dist/cli-executor.js +0 -75
  15. package/dist/cli-executor.js.map +0 -1
  16. package/dist/config.d.ts +0 -83
  17. package/dist/config.d.ts.map +0 -1
  18. package/dist/config.js +0 -226
  19. package/dist/config.js.map +0 -1
  20. package/dist/credentials-loader.d.ts +0 -29
  21. package/dist/credentials-loader.d.ts.map +0 -1
  22. package/dist/credentials-loader.js +0 -117
  23. package/dist/credentials-loader.js.map +0 -1
  24. package/dist/index.d.ts.map +0 -1
  25. package/dist/index.js.map +0 -1
  26. package/dist/logger.d.ts +0 -12
  27. package/dist/logger.d.ts.map +0 -1
  28. package/dist/logger.js +0 -25
  29. package/dist/logger.js.map +0 -1
  30. package/dist/notification-route-resolver.d.ts +0 -43
  31. package/dist/notification-route-resolver.d.ts.map +0 -1
  32. package/dist/notification-route-resolver.js +0 -533
  33. package/dist/notification-route-resolver.js.map +0 -1
  34. package/dist/notifier.d.ts +0 -39
  35. package/dist/notifier.d.ts.map +0 -1
  36. package/dist/notifier.js +0 -340
  37. package/dist/notifier.js.map +0 -1
  38. package/dist/polling-client.d.ts +0 -86
  39. package/dist/polling-client.d.ts.map +0 -1
  40. package/dist/polling-client.js +0 -158
  41. package/dist/polling-client.js.map +0 -1
  42. package/dist/reply-target.d.ts +0 -8
  43. package/dist/reply-target.d.ts.map +0 -1
  44. package/dist/reply-target.js +0 -104
  45. package/dist/reply-target.js.map +0 -1
  46. package/dist/session-route-memory.d.ts +0 -22
  47. package/dist/session-route-memory.d.ts.map +0 -1
  48. package/dist/session-route-memory.js +0 -117
  49. package/dist/session-route-memory.js.map +0 -1
  50. package/dist/stream-client.d.ts +0 -48
  51. package/dist/stream-client.d.ts.map +0 -1
  52. package/dist/stream-client.js +0 -168
  53. package/dist/stream-client.js.map +0 -1
@@ -1,533 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.findSessionRouteForBinding = findSessionRouteForBinding;
37
- exports.resolveNotificationRoute = resolveNotificationRoute;
38
- const fs = __importStar(require("fs"));
39
- const os = __importStar(require("os"));
40
- const path = __importStar(require("path"));
41
- const reply_target_1 = require("./reply-target");
42
- const session_route_memory_1 = require("./session-route-memory");
43
- const INTERNAL_CHANNELS = new Set(['webchat']);
44
- function getDefaultOpenClawStateDir() {
45
- return path.join(os.homedir(), '.openclaw');
46
- }
47
- function readNonEmptyString(value) {
48
- if (typeof value !== 'string') {
49
- return undefined;
50
- }
51
- const trimmed = value.trim();
52
- return trimmed.length > 0 ? trimmed : undefined;
53
- }
54
- function normalizeChannel(value) {
55
- return readNonEmptyString(value)?.toLowerCase();
56
- }
57
- function normalizeUpdatedAt(value) {
58
- if (typeof value === 'number' && Number.isFinite(value)) {
59
- return value;
60
- }
61
- return 0;
62
- }
63
- function createRouteOverrides(overrides) {
64
- return {
65
- sessionKey: overrides?.sessionKey === true,
66
- agentId: overrides?.agentId === true,
67
- replyChannel: overrides?.replyChannel === true,
68
- replyTo: overrides?.replyTo === true,
69
- replyAccountId: overrides?.replyAccountId === true,
70
- };
71
- }
72
- function isAnyRouteOverrideEnabled(overrides) {
73
- return Object.values(overrides).some(Boolean);
74
- }
75
- function isInternalSessionKey(sessionKey) {
76
- const trimmed = readNonEmptyString(sessionKey);
77
- if (!trimmed) {
78
- return true;
79
- }
80
- if (trimmed === 'main') {
81
- return true;
82
- }
83
- const parts = trimmed.split(':').filter((part) => part.length > 0);
84
- return parts[0]?.toLowerCase() === 'agent' && parts[2]?.toLowerCase() === 'main';
85
- }
86
- function isExternalChannel(channel) {
87
- return Boolean(channel && !INTERNAL_CHANNELS.has(channel));
88
- }
89
- function isDirectSessionKey(sessionKey) {
90
- const parts = sessionKey.toLowerCase().split(':').filter(Boolean);
91
- return parts.includes('direct') || parts.includes('dm');
92
- }
93
- function isSessionPeerShape(value) {
94
- const normalized = value?.trim().toLowerCase();
95
- return (normalized === 'direct' ||
96
- normalized === 'dm' ||
97
- normalized === 'group' ||
98
- normalized === 'channel' ||
99
- normalized === 'room');
100
- }
101
- function routeTargetMatches(actual, expected) {
102
- if (!expected) {
103
- return true;
104
- }
105
- if (!actual) {
106
- return false;
107
- }
108
- return actual === expected || actual.endsWith(`:${expected}`) || expected.endsWith(`:${actual}`);
109
- }
110
- function routeMatchesPreferred(route, preferred) {
111
- if (!preferred) {
112
- return true;
113
- }
114
- if (preferred.channel && route.replyChannel !== preferred.channel) {
115
- return false;
116
- }
117
- if (!routeTargetMatches(route.replyTo, preferred.to)) {
118
- return false;
119
- }
120
- if (preferred.accountId && route.replyAccountId !== preferred.accountId) {
121
- return false;
122
- }
123
- return true;
124
- }
125
- function deriveAgentIdFromSessionKey(sessionKey) {
126
- const trimmed = readNonEmptyString(sessionKey);
127
- if (!trimmed) {
128
- return undefined;
129
- }
130
- const parts = trimmed.split(':').filter((part) => part.length > 0);
131
- if (parts[0]?.toLowerCase() !== 'agent') {
132
- return undefined;
133
- }
134
- return readNonEmptyString(parts[1]);
135
- }
136
- function deriveReplyTargetKindFromSessionKey(sessionKey) {
137
- const trimmed = readNonEmptyString(sessionKey);
138
- if (!trimmed) {
139
- return undefined;
140
- }
141
- const parts = trimmed.split(':').filter((part) => part.length > 0);
142
- if (parts[0]?.toLowerCase() !== 'agent') {
143
- return undefined;
144
- }
145
- const channel = readNonEmptyString(parts[2])?.toLowerCase();
146
- const peerShape = parts.length >= 6 && isSessionPeerShape(parts[4])
147
- ? parts[4].toLowerCase()
148
- : parts.length >= 5 && isSessionPeerShape(parts[3])
149
- ? parts[3].toLowerCase()
150
- : undefined;
151
- switch (channel) {
152
- case 'feishu':
153
- if (peerShape === 'direct' || peerShape === 'dm') {
154
- return 'user';
155
- }
156
- if (peerShape === 'group') {
157
- return 'chat';
158
- }
159
- return undefined;
160
- case 'discord':
161
- if (peerShape === 'direct' || peerShape === 'dm') {
162
- return 'user';
163
- }
164
- if (peerShape === 'channel') {
165
- return 'channel';
166
- }
167
- return undefined;
168
- default:
169
- return undefined;
170
- }
171
- }
172
- function normalizeSessionStoreTarget(value, channel, sessionKey) {
173
- const trimmed = readNonEmptyString(value);
174
- if (!trimmed) {
175
- return undefined;
176
- }
177
- const derivedKind = deriveReplyTargetKindFromSessionKey(sessionKey);
178
- if (derivedKind && !/^(user|chat|channel|room):/u.test(trimmed)) {
179
- return `${derivedKind}:${trimmed}`;
180
- }
181
- return (0, reply_target_1.normalizeReplyTarget)(trimmed, {
182
- channel,
183
- sessionKey,
184
- });
185
- }
186
- function deriveChannelFromSessionKey(sessionKey) {
187
- const parts = sessionKey.split(':').filter(Boolean);
188
- if (parts[0]?.toLowerCase() !== 'agent') {
189
- return undefined;
190
- }
191
- return normalizeChannel(parts[2]);
192
- }
193
- function deriveTargetFromSessionKey(sessionKey, channel) {
194
- const parts = sessionKey.split(':').filter(Boolean);
195
- if (parts[0]?.toLowerCase() !== 'agent') {
196
- return undefined;
197
- }
198
- // Layout: agent:<agentId>:<channel>:<peerShape>:<target>[:<extra>]
199
- // or: agent:<agentId>:<channel>:<peerShape>:<accountId>:<target>
200
- if (parts.length < 5 || !isSessionPeerShape(parts[3])) {
201
- return undefined;
202
- }
203
- const rawTarget = parts.length >= 6 ? parts[5] : parts[4];
204
- if (!readNonEmptyString(rawTarget)) {
205
- return undefined;
206
- }
207
- return normalizeSessionStoreTarget(rawTarget, channel, sessionKey);
208
- }
209
- function extractRouteFromEntry(sessionKey, entry) {
210
- if (!entry) {
211
- return undefined;
212
- }
213
- const replyChannel = normalizeChannel(entry.deliveryContext?.channel) ??
214
- normalizeChannel(entry.origin?.provider) ??
215
- deriveChannelFromSessionKey(sessionKey);
216
- const replyTo = normalizeSessionStoreTarget(entry.deliveryContext?.to, replyChannel, sessionKey) ??
217
- normalizeSessionStoreTarget(entry.lastTo, replyChannel, sessionKey) ??
218
- normalizeSessionStoreTarget(entry.origin?.to, replyChannel, sessionKey) ??
219
- deriveTargetFromSessionKey(sessionKey, replyChannel);
220
- const replyAccountId = readNonEmptyString(entry.deliveryContext?.accountId) ??
221
- readNonEmptyString(entry.lastAccountId) ??
222
- readNonEmptyString(entry.origin?.accountId);
223
- if (!replyChannel || !replyTo) {
224
- return undefined;
225
- }
226
- return {
227
- sessionKey,
228
- agentId: deriveAgentIdFromSessionKey(sessionKey) ?? 'main',
229
- replyChannel,
230
- replyTo,
231
- replyAccountId,
232
- };
233
- }
234
- function tryDeriveAgentIdFromStorePath(sessionStorePath) {
235
- const normalized = path.normalize(sessionStorePath);
236
- const parts = normalized.split(path.sep).filter(Boolean);
237
- const agentsIndex = parts.lastIndexOf('agents');
238
- if (agentsIndex === -1) {
239
- return undefined;
240
- }
241
- return readNonEmptyString(parts[agentsIndex + 1]);
242
- }
243
- function listSessionStorePaths(explicitPath, baseAgentId) {
244
- const candidates = [];
245
- const seen = new Set();
246
- const addPath = (candidate) => {
247
- const trimmed = readNonEmptyString(candidate);
248
- if (!trimmed) {
249
- return;
250
- }
251
- const normalized = path.normalize(trimmed);
252
- if (seen.has(normalized)) {
253
- return;
254
- }
255
- seen.add(normalized);
256
- candidates.push(normalized);
257
- };
258
- addPath(explicitPath);
259
- if (candidates.length > 0) {
260
- return candidates;
261
- }
262
- const defaultOpenClawStateDir = getDefaultOpenClawStateDir();
263
- addPath(path.join(defaultOpenClawStateDir, 'agents', baseAgentId, 'sessions', 'sessions.json'));
264
- const agentsRoot = path.join(defaultOpenClawStateDir, 'agents');
265
- try {
266
- if (fs.existsSync(agentsRoot)) {
267
- for (const entry of fs.readdirSync(agentsRoot, { withFileTypes: true })) {
268
- if (!entry.isDirectory()) {
269
- continue;
270
- }
271
- addPath(path.join(agentsRoot, entry.name, 'sessions', 'sessions.json'));
272
- }
273
- }
274
- }
275
- catch {
276
- // Ignore directory scan failures; we will still try explicit/default paths.
277
- }
278
- return candidates;
279
- }
280
- function readSessionStore(sessionStorePath, logger) {
281
- try {
282
- if (!fs.existsSync(sessionStorePath)) {
283
- return undefined;
284
- }
285
- const raw = fs.readFileSync(sessionStorePath, 'utf-8');
286
- const parsed = JSON.parse(raw);
287
- if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
288
- return undefined;
289
- }
290
- return parsed;
291
- }
292
- catch (error) {
293
- logger.debug(`Failed to read session store ${sessionStorePath}: ${error instanceof Error ? error.message : String(error)}`);
294
- return undefined;
295
- }
296
- }
297
- function readSessionStores(sessionStorePath, baseAgentId, logger) {
298
- const snapshots = [];
299
- const candidates = listSessionStorePaths(sessionStorePath, baseAgentId);
300
- logger.info(`Session store scan candidates: base_agent_id=${baseAgentId}, explicit_path=${sessionStorePath ?? 'n/a'}, candidates=${JSON.stringify(candidates)}`);
301
- for (const candidate of candidates) {
302
- const store = readSessionStore(candidate, logger);
303
- if (store) {
304
- const keys = Object.keys(store);
305
- logger.info(`Session store loaded: path=${candidate}, entries=${keys.length}, session_keys=${JSON.stringify(keys)}`);
306
- snapshots.push({ path: candidate, store });
307
- }
308
- }
309
- return snapshots;
310
- }
311
- function buildPreferredRoute(route) {
312
- if (!route.replyChannel && !route.replyTo && !route.replyAccountId) {
313
- return undefined;
314
- }
315
- return {
316
- channel: route.replyChannel,
317
- to: route.replyTo,
318
- accountId: route.replyAccountId,
319
- };
320
- }
321
- function mergeRoute(base, resolved, overrides, allowSessionOverride) {
322
- const nextSessionKey = allowSessionOverride && !overrides.sessionKey ? resolved.sessionKey : base.sessionKey;
323
- return {
324
- sessionKey: nextSessionKey,
325
- agentId: overrides.agentId === true
326
- ? base.agentId
327
- : resolved.agentId ?? deriveAgentIdFromSessionKey(nextSessionKey) ?? base.agentId,
328
- replyChannel: overrides.replyChannel === true ? base.replyChannel : resolved.replyChannel ?? base.replyChannel,
329
- replyTo: overrides.replyTo === true ? base.replyTo : resolved.replyTo ?? base.replyTo,
330
- replyAccountId: overrides.replyAccountId === true
331
- ? base.replyAccountId
332
- : resolved.replyAccountId ?? base.replyAccountId,
333
- };
334
- }
335
- function selectExactRoute(snapshots, sessionKey) {
336
- let best;
337
- for (const snapshot of snapshots) {
338
- const entry = snapshot.store[sessionKey];
339
- const route = extractRouteFromEntry(sessionKey, entry);
340
- if (!route || !isExternalChannel(route.replyChannel)) {
341
- continue;
342
- }
343
- const updatedAt = normalizeUpdatedAt(entry?.updatedAt);
344
- if (!best || updatedAt > best.updatedAt) {
345
- best = { route, updatedAt };
346
- }
347
- }
348
- return best;
349
- }
350
- /**
351
- * Picks the best session route from recent conversation history.
352
- *
353
- * Preference order (each tier only falls back if the prior tier is empty):
354
- * 1. External channel (not in INTERNAL_CHANNELS) over internal channel.
355
- * 2. Direct/DM session (sessionKey contains `direct`/`dm`) over non-direct.
356
- * 3. Most recent `updatedAt`.
357
- */
358
- function selectBestRoute(snapshots, preferred, preferredAgentId) {
359
- const candidates = [];
360
- for (const snapshot of snapshots) {
361
- const pathAgentId = tryDeriveAgentIdFromStorePath(snapshot.path);
362
- for (const [sessionKey, entry] of Object.entries(snapshot.store)) {
363
- if (sessionKey.includes(':subagent:')) {
364
- continue;
365
- }
366
- const route = extractRouteFromEntry(sessionKey, entry);
367
- if (!route || !routeMatchesPreferred(route, preferred)) {
368
- continue;
369
- }
370
- if (preferredAgentId && route.agentId !== preferredAgentId && pathAgentId !== preferredAgentId) {
371
- continue;
372
- }
373
- candidates.push({
374
- route,
375
- updatedAt: normalizeUpdatedAt(entry.updatedAt),
376
- isExternal: isExternalChannel(route.replyChannel),
377
- isDirect: isDirectSessionKey(sessionKey),
378
- });
379
- }
380
- }
381
- if (candidates.length === 0) {
382
- return undefined;
383
- }
384
- const externalPool = candidates.filter((c) => c.isExternal);
385
- const channelPool = externalPool.length > 0 ? externalPool : candidates;
386
- const directPool = channelPool.filter((c) => c.isDirect);
387
- const finalPool = directPool.length > 0 ? directPool : channelPool;
388
- const chosen = finalPool.reduce((best, c) => (c.updatedAt > best.updatedAt ? c : best));
389
- return { route: chosen.route, updatedAt: chosen.updatedAt };
390
- }
391
- /**
392
- * Find a session route that matches the given binding (channel + to + optional
393
- * account). Used by `/eigenflux here` to pin delivery to the current conversation.
394
- * Falls back through the same external-first / direct-first tiers as startup
395
- * discovery.
396
- */
397
- function findSessionRouteForBinding(options, logger) {
398
- const channel = normalizeChannel(options.channel);
399
- const to = (0, reply_target_1.normalizeReplyTarget)(options.to, { channel });
400
- const accountId = readNonEmptyString(options.accountId);
401
- const agentId = readNonEmptyString(options.agentId) ?? 'main';
402
- if (!channel || !to) {
403
- return undefined;
404
- }
405
- const snapshots = readSessionStores(options.sessionStorePath, agentId, logger);
406
- const best = selectBestRoute(snapshots, { channel, to, accountId }, agentId);
407
- if (best) {
408
- return best.route;
409
- }
410
- // Fallback: synthesize a sessionKey from agentId + channel + peer shape + target
411
- // so `/eigenflux here` can pin the conversation even without a session-store hit.
412
- const peerShape = inferPeerShape(channel, to);
413
- const targetLocal = stripTargetPrefix(to);
414
- if (!peerShape || !targetLocal) {
415
- return undefined;
416
- }
417
- return {
418
- sessionKey: `agent:${agentId}:${channel}:${peerShape}:${targetLocal}`,
419
- agentId,
420
- replyChannel: channel,
421
- replyTo: to,
422
- replyAccountId: accountId,
423
- };
424
- }
425
- function inferPeerShape(channel, to) {
426
- const kind = to.split(':', 1)[0]?.toLowerCase();
427
- switch (kind) {
428
- case 'user':
429
- return 'direct';
430
- case 'chat':
431
- return channel === 'feishu' ? 'group' : 'direct';
432
- case 'channel':
433
- return 'channel';
434
- case 'room':
435
- return 'group';
436
- default:
437
- return undefined;
438
- }
439
- }
440
- function stripTargetPrefix(to) {
441
- const idx = to.indexOf(':');
442
- if (idx === -1) {
443
- return readNonEmptyString(to);
444
- }
445
- return readNonEmptyString(to.slice(idx + 1));
446
- }
447
- async function resolveNotificationRoute(config, logger, options = {}) {
448
- const overrides = createRouteOverrides(config.routeOverrides);
449
- const configRoute = {
450
- sessionKey: readNonEmptyString(config.sessionKey) ?? 'main',
451
- agentId: readNonEmptyString(config.agentId) ??
452
- deriveAgentIdFromSessionKey(config.sessionKey) ??
453
- 'main',
454
- replyChannel: normalizeChannel(config.replyChannel),
455
- replyTo: (0, reply_target_1.normalizeReplyTarget)(config.replyTo, {
456
- channel: normalizeChannel(config.replyChannel),
457
- sessionKey: config.sessionKey,
458
- }),
459
- replyAccountId: readNonEmptyString(config.replyAccountId),
460
- };
461
- logger.info(`Route resolve start: session_key=${configRoute.sessionKey}, agent_id=${configRoute.agentId}, channel=${configRoute.replyChannel ?? 'n/a'}, to=${configRoute.replyTo ?? 'n/a'}, account=${configRoute.replyAccountId ?? 'n/a'}, overrides=${JSON.stringify(overrides)}, ignore_remembered=${options.ignoreRemembered === true}`);
462
- // 1. Explicit config values win.
463
- // Triggered by any of:
464
- // - routeOverrides flag set on a field (plugin config marks user-provided fields)
465
- // - non-internal sessionKey provided directly
466
- // - both replyChannel and replyTo provided directly
467
- const hasExplicitConfig = isAnyRouteOverrideEnabled(overrides) ||
468
- !isInternalSessionKey(configRoute.sessionKey) ||
469
- Boolean(configRoute.replyChannel && configRoute.replyTo);
470
- if (hasExplicitConfig) {
471
- const snapshots = readSessionStores(config.sessionStorePath, configRoute.agentId, logger);
472
- // Try exact sessionKey match first. If config sessionKey is internal but
473
- // channel+to are pinned, fall back to peer-shape match to enrich accountId
474
- // (and pick up the real sessionKey) from the session store.
475
- let enriched = selectExactRoute(snapshots, configRoute.sessionKey)?.route;
476
- if (!enriched && configRoute.replyChannel && configRoute.replyTo) {
477
- enriched = selectBestRoute(snapshots, {
478
- channel: configRoute.replyChannel,
479
- to: configRoute.replyTo,
480
- accountId: configRoute.replyAccountId,
481
- }, undefined)?.route;
482
- }
483
- const resolved = enriched
484
- ? mergeRoute(configRoute, enriched, overrides, isInternalSessionKey(configRoute.sessionKey))
485
- : configRoute;
486
- logger.info(`Route resolve final (config): session_key=${resolved.sessionKey}, agent_id=${resolved.agentId}, channel=${resolved.replyChannel ?? 'n/a'}, to=${resolved.replyTo ?? 'n/a'}, account=${resolved.replyAccountId ?? 'n/a'}`);
487
- return { route: resolved, source: 'config' };
488
- }
489
- const snapshots = readSessionStores(config.sessionStorePath, configRoute.agentId, logger);
490
- // 2. Remembered route (openclaw_deliver_session CLI config).
491
- if (options.ignoreRemembered !== true) {
492
- const remembered = await (0, session_route_memory_1.readStoredNotificationRoute)(config.eigenfluxBin, config.serverName, logger);
493
- if (remembered) {
494
- logger.info(`Route resolve remembered: session_key=${remembered.sessionKey}, agent_id=${remembered.agentId}, channel=${remembered.replyChannel ?? 'n/a'}, to=${remembered.replyTo ?? 'n/a'}, account=${remembered.replyAccountId ?? 'n/a'}`);
495
- // Use remembered replyChannel+replyTo as a peer-shape anchor against
496
- // session stores so we resolve the real sessionKey even if remembered
497
- // was stored with a stale/internal key.
498
- const preferred = remembered.replyChannel && remembered.replyTo
499
- ? {
500
- channel: remembered.replyChannel,
501
- to: remembered.replyTo,
502
- accountId: remembered.replyAccountId,
503
- }
504
- : undefined;
505
- const peerMatch = selectBestRoute(snapshots, preferred, undefined);
506
- if (peerMatch) {
507
- return { route: peerMatch.route, source: 'remembered' };
508
- }
509
- if (!isInternalSessionKey(remembered.sessionKey)) {
510
- return {
511
- route: {
512
- sessionKey: remembered.sessionKey,
513
- agentId: remembered.agentId,
514
- replyChannel: remembered.replyChannel,
515
- replyTo: remembered.replyTo,
516
- replyAccountId: remembered.replyAccountId,
517
- },
518
- source: 'remembered',
519
- };
520
- }
521
- logger.warn(`Remembered route has internal session_key=${remembered.sessionKey} and no peer match; falling through to session-store scan.`);
522
- }
523
- }
524
- // 3. Scan recent conversation history.
525
- const best = selectBestRoute(snapshots, undefined, undefined);
526
- if (best) {
527
- logger.info(`Route resolve from session store: session_key=${best.route.sessionKey}, agent_id=${best.route.agentId}, channel=${best.route.replyChannel ?? 'n/a'}, to=${best.route.replyTo ?? 'n/a'}, account=${best.route.replyAccountId ?? 'n/a'}, updated_at=${best.updatedAt}`);
528
- return { route: best.route, source: 'session-store' };
529
- }
530
- logger.warn(`Route resolve fell back to config default: session_key=${configRoute.sessionKey}, agent_id=${configRoute.agentId}`);
531
- return { route: configRoute, source: 'default' };
532
- }
533
- //# sourceMappingURL=notification-route-resolver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"notification-route-resolver.js","sourceRoot":"","sources":["../src/notification-route-resolver.ts"],"names":[],"mappings":"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"}
@@ -1,39 +0,0 @@
1
- import type { OpenClawPluginApi } from 'openclaw/plugin-sdk';
2
- import { type NotificationRouteOverrides } from './config';
3
- import { Logger } from './logger';
4
- export type EigenFluxNotifierConfig = {
5
- eigenfluxBin?: string;
6
- serverName?: string;
7
- sessionKey: string;
8
- agentId: string;
9
- replyChannel?: string;
10
- replyTo?: string;
11
- replyAccountId?: string;
12
- openclawCliBin: string;
13
- sessionStorePath?: string;
14
- routeOverrides?: NotificationRouteOverrides;
15
- };
16
- export declare class EigenFluxNotifier {
17
- private readonly api;
18
- private readonly logger;
19
- private readonly config;
20
- constructor(api: OpenClawPluginApi, logger: Logger, config: EigenFluxNotifierConfig);
21
- deliver(message: string): Promise<boolean>;
22
- private attemptDelivery;
23
- private tryNotifyViaRuntimeSubagent;
24
- private tryNotifyViaRuntimeCommandAgent;
25
- private tryNotifyViaRuntimeHeartbeat;
26
- private tryNotifyViaRuntimeCommandHeartbeat;
27
- private runRuntimeCommand;
28
- private buildAgentCliArgs;
29
- private buildHeartbeatCliArgs;
30
- private resolveHeartbeatDeliveryContext;
31
- private resolveRoute;
32
- /**
33
- * Persist the successful route to the eigenflux CLI config unless it came from
34
- * the remembered config already (no-op when unchanged).
35
- */
36
- private rememberRouteIfChanged;
37
- private logDispatch;
38
- }
39
- //# sourceMappingURL=notifier.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"notifier.d.ts","sourceRoot":"","sources":["../src/notifier.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAiBlC,MAAM,MAAM,uBAAuB,GAAG;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,0BAA0B,CAAC;CAC7C,CAAC;AAqBF,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAoB;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;gBAErC,GAAG,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,uBAAuB;IAM7E,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YA8ClC,eAAe;YAwCf,2BAA2B;YA0E3B,+BAA+B;YAW/B,4BAA4B;YAuE5B,mCAAmC;YASnC,iBAAiB;IAgD/B,OAAO,CAAC,iBAAiB;IAwBzB,OAAO,CAAC,qBAAqB;IAY7B,OAAO,CAAC,+BAA+B;YAoBzB,YAAY;IAU1B;;;OAGG;YACW,sBAAsB;IAwBpC,OAAO,CAAC,WAAW;CAWpB"}