@lumenflow/memory 5.3.2 → 5.4.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.
- package/dist/inbox-view.js +15 -0
- package/dist/inbox-view.js.map +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/mem-signal-core.js +497 -56
- package/dist/mem-signal-core.js.map +1 -1
- package/package.json +5 -3
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// Copyright (c) 2026 Hellmai Ltd
|
|
2
|
+
// SPDX-License-Identifier: LicenseRef-LumenFlow-Proprietary
|
|
3
|
+
export function createInboxSignalView(options) {
|
|
4
|
+
const { signal, receipt, unread = receipt === undefined } = options;
|
|
5
|
+
const pending_ack = signal.requires_ack === true &&
|
|
6
|
+
receipt?.delivery_state !== 'acked' &&
|
|
7
|
+
receipt?.delivery_state !== 'rejected';
|
|
8
|
+
return {
|
|
9
|
+
signal,
|
|
10
|
+
...(receipt ? { receipt } : {}),
|
|
11
|
+
unread,
|
|
12
|
+
pending_ack,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=inbox-view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inbox-view.js","sourceRoot":"","sources":["../src/inbox-view.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,4DAA4D;AAiB5D,MAAM,UAAU,qBAAqB,CAAC,OAAqC;IACzE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,KAAK,SAAS,EAAE,GAAG,OAAO,CAAC;IACpE,MAAM,WAAW,GACf,MAAM,CAAC,YAAY,KAAK,IAAI;QAC5B,OAAO,EAAE,cAAc,KAAK,OAAO;QACnC,OAAO,EAAE,cAAc,KAAK,UAAU,CAAC;IAEzC,OAAO;QACL,MAAM;QACN,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,MAAM;QACN,WAAW;KACZ,CAAC;AACJ,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -14,6 +14,7 @@ export * from './mem-id.js';
|
|
|
14
14
|
export * from './mem-init-core.js';
|
|
15
15
|
export * from './mem-ready-core.js';
|
|
16
16
|
export * from './mem-signal-core.js';
|
|
17
|
+
export * from './inbox-view.js';
|
|
17
18
|
export * from './signal-cleanup-core.js';
|
|
18
19
|
export * from './mem-start-core.js';
|
|
19
20
|
export { filterSummarizableNodes, summarizeWu, getCompactionRatio as getSummarizeCompactionRatio, } from './mem-summarize-core.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,4DAA4D;AAE5D;;;GAGG;AAEH,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,OAAO,EACL,uBAAuB,EACvB,WAAW,EACX,kBAAkB,IAAI,2BAA2B,GAClD,MAAM,yBAAyB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iCAAiC,CAAC;AAChD,cAAc,uBAAuB,CAAC;AAEtC,6CAA6C;AAC7C,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,4DAA4D;AAE5D;;;GAGG;AAEH,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,OAAO,EACL,uBAAuB,EACvB,WAAW,EACX,kBAAkB,IAAI,2BAA2B,GAClD,MAAM,yBAAyB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iCAAiC,CAAC;AAChD,cAAc,uBAAuB,CAAC;AAEtC,6CAA6C;AAC7C,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC"}
|
package/dist/mem-signal-core.js
CHANGED
|
@@ -18,10 +18,13 @@
|
|
|
18
18
|
import { randomBytes } from 'node:crypto';
|
|
19
19
|
import fs from 'node:fs/promises';
|
|
20
20
|
import path from 'node:path';
|
|
21
|
+
import { FILE_EXTENSIONS } from '@lumenflow/core/wu-constants';
|
|
21
22
|
import { createError, ErrorCodes } from '@lumenflow/core/error-handler';
|
|
23
|
+
import { A2A_SCHEMA_VERSION_V1, A2A_SIGNAL_ENTRY_KIND_V1, A2ASignalV1Schema, } from '@lumenflow/control-plane-sdk/a2a';
|
|
22
24
|
import { MEMORY_COORDINATION_SIGNAL_FIELD_NAMES, isNonEmptyCoordinationFieldValue, normalizeCoordinationField, } from '@lumenflow/packs-agent-runtime';
|
|
23
25
|
import { LUMENFLOW_MEMORY_PATHS } from './paths.js';
|
|
24
26
|
import { MEMORY_EVENT_KINDS, buildKernelEventV2, safelyEmitMemoryEvent, } from './memory-emissions.js';
|
|
27
|
+
import { createInboxSignalView } from './inbox-view.js';
|
|
25
28
|
/**
|
|
26
29
|
* Signal file name constant
|
|
27
30
|
*/
|
|
@@ -42,10 +45,14 @@ const WU_ID_PATTERN = /^WU-\d+$/;
|
|
|
42
45
|
* Signal ID prefix
|
|
43
46
|
*/
|
|
44
47
|
const SIGNAL_ID_PREFIX = 'sig-';
|
|
48
|
+
const RECEIPT_ID_PREFIX = 'rcpt-';
|
|
49
|
+
const THREAD_ID_PREFIX = 'thread-';
|
|
45
50
|
/**
|
|
46
51
|
* Number of hex characters in signal ID suffix
|
|
47
52
|
*/
|
|
48
53
|
const SIGNAL_ID_LENGTH = 8;
|
|
54
|
+
const RECEIPT_ID_LENGTH = 8;
|
|
55
|
+
const THREAD_ID_LENGTH = 8;
|
|
49
56
|
/**
|
|
50
57
|
* Error messages for validation
|
|
51
58
|
*/
|
|
@@ -59,6 +66,13 @@ const ERROR_MESSAGES = {
|
|
|
59
66
|
const DEFAULT_SIGNAL_TYPE = 'coordination';
|
|
60
67
|
const DEFAULT_SIGNAL_SENDER = 'system';
|
|
61
68
|
const DEFAULT_SIGNAL_ORIGIN = 'local';
|
|
69
|
+
const DEFAULT_READER_ID = 'local-session';
|
|
70
|
+
const DEFAULT_BROADCAST_INTERRUPT_CLASS = 'advisory';
|
|
71
|
+
const DEFAULT_DIRECTED_INTERRUPT_CLASS = 'priority';
|
|
72
|
+
const LEGACY_GLOBAL_READER_ID = '__legacy_global__';
|
|
73
|
+
const SESSION_DIR_RELATIVE_PATH = '.lumenflow/sessions';
|
|
74
|
+
const SESSION_COMPAT_POINTER_FILE = 'current.json';
|
|
75
|
+
const SESSION_RECORD_EXTENSION = FILE_EXTENSIONS.JSON;
|
|
62
76
|
function normalizeOptionalString(value, fieldName) {
|
|
63
77
|
if (value === undefined) {
|
|
64
78
|
return undefined;
|
|
@@ -83,6 +97,12 @@ function parseStrictSignalRecord(line, lineNumber) {
|
|
|
83
97
|
if (typeof parsed !== 'object' || parsed === null) {
|
|
84
98
|
throw createError(ErrorCodes.VALIDATION_ERROR, `${ERROR_MESSAGES.INVALID_SIGNAL_RECORD} at line ${lineNumber}`);
|
|
85
99
|
}
|
|
100
|
+
if (isRecord(parsed) && parsed.kind === A2A_SIGNAL_ENTRY_KIND_V1) {
|
|
101
|
+
if (!isRecord(parsed.payload)) {
|
|
102
|
+
throw createError(ErrorCodes.VALIDATION_ERROR, `${ERROR_MESSAGES.INVALID_SIGNAL_RECORD} at line ${lineNumber}`);
|
|
103
|
+
}
|
|
104
|
+
return fromA2ASignalPayload(parsed.payload);
|
|
105
|
+
}
|
|
86
106
|
const candidate = parsed;
|
|
87
107
|
if (!isNonEmptyString(candidate.id) ||
|
|
88
108
|
!isNonEmptyString(candidate.message) ||
|
|
@@ -105,14 +125,27 @@ function parseStrictSignalRecord(line, lineNumber) {
|
|
|
105
125
|
throw createError(ErrorCodes.VALIDATION_ERROR, `${ERROR_MESSAGES.INVALID_SIGNAL_RECORD} at line ${lineNumber} (${axisName})`);
|
|
106
126
|
}
|
|
107
127
|
}
|
|
128
|
+
const parsedRecipients = candidate.recipients === undefined
|
|
129
|
+
? undefined
|
|
130
|
+
: Array.isArray(candidate.recipients) &&
|
|
131
|
+
candidate.recipients.every((recipient) => isNonEmptyString(recipient))
|
|
132
|
+
? candidate.recipients
|
|
133
|
+
: null;
|
|
134
|
+
if (parsedRecipients === null) {
|
|
135
|
+
throw createError(ErrorCodes.VALIDATION_ERROR, `${ERROR_MESSAGES.INVALID_SIGNAL_RECORD} at line ${lineNumber} (recipients)`);
|
|
136
|
+
}
|
|
108
137
|
return {
|
|
109
138
|
...candidate,
|
|
110
139
|
id: candidate.id,
|
|
140
|
+
signal_id: candidate.signal_id ?? candidate.id,
|
|
141
|
+
schema_version: candidate.schema_version ?? A2A_SCHEMA_VERSION_V1,
|
|
111
142
|
message: candidate.message,
|
|
112
143
|
created_at: candidate.created_at,
|
|
113
144
|
read: candidate.read,
|
|
114
145
|
type: candidate.type,
|
|
115
146
|
sender: candidate.sender,
|
|
147
|
+
sender_identity: candidate.sender_identity ?? candidate.sender,
|
|
148
|
+
recipients: normalizeRecipientList(parsedRecipients, candidate.target_agent),
|
|
116
149
|
origin: candidate.origin,
|
|
117
150
|
remote_id: candidate.remote_id,
|
|
118
151
|
};
|
|
@@ -130,6 +163,239 @@ function generateSignalId() {
|
|
|
130
163
|
const hex = bytes.toString('hex').slice(0, SIGNAL_ID_LENGTH);
|
|
131
164
|
return `${SIGNAL_ID_PREFIX}${hex}`;
|
|
132
165
|
}
|
|
166
|
+
function generateReceiptId() {
|
|
167
|
+
const bytes = randomBytes(4);
|
|
168
|
+
const hex = bytes.toString('hex').slice(0, RECEIPT_ID_LENGTH);
|
|
169
|
+
return `${RECEIPT_ID_PREFIX}${hex}`;
|
|
170
|
+
}
|
|
171
|
+
function generateThreadId() {
|
|
172
|
+
const bytes = randomBytes(4);
|
|
173
|
+
const hex = bytes.toString('hex').slice(0, THREAD_ID_LENGTH);
|
|
174
|
+
return `${THREAD_ID_PREFIX}${hex}`;
|
|
175
|
+
}
|
|
176
|
+
function isRecord(value) {
|
|
177
|
+
return typeof value === 'object' && value !== null;
|
|
178
|
+
}
|
|
179
|
+
function normalizeA2AOrigin(value) {
|
|
180
|
+
return value === 'remote' ? 'remote' : 'local';
|
|
181
|
+
}
|
|
182
|
+
function normalizeReaderId(readerId) {
|
|
183
|
+
const normalized = readerId?.trim();
|
|
184
|
+
return normalized && normalized.length > 0 ? normalized : DEFAULT_READER_ID;
|
|
185
|
+
}
|
|
186
|
+
function getSessionsPath(baseDir) {
|
|
187
|
+
return path.join(baseDir, SESSION_DIR_RELATIVE_PATH);
|
|
188
|
+
}
|
|
189
|
+
function toReaderSessionRecord(parsed) {
|
|
190
|
+
if (!isRecord(parsed)) {
|
|
191
|
+
return null;
|
|
192
|
+
}
|
|
193
|
+
if (typeof parsed.completed === 'string') {
|
|
194
|
+
return null;
|
|
195
|
+
}
|
|
196
|
+
const sessionId = isNonEmptyString(parsed.session_id) ? parsed.session_id.trim() : undefined;
|
|
197
|
+
if (!sessionId) {
|
|
198
|
+
return null;
|
|
199
|
+
}
|
|
200
|
+
const agentIdentity = isNonEmptyString(parsed.agent_identity)
|
|
201
|
+
? parsed.agent_identity.trim()
|
|
202
|
+
: undefined;
|
|
203
|
+
return {
|
|
204
|
+
sessionId,
|
|
205
|
+
...(agentIdentity ? { agentIdentity } : {}),
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
async function readReaderSessionRecord(filePath) {
|
|
209
|
+
try {
|
|
210
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- CLI tool reads known session files
|
|
211
|
+
const raw = await fs.readFile(filePath, { encoding: 'utf-8' });
|
|
212
|
+
return toReaderSessionRecord(JSON.parse(raw));
|
|
213
|
+
}
|
|
214
|
+
catch {
|
|
215
|
+
return null;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
async function loadReaderSessionRecords(baseDir) {
|
|
219
|
+
const sessionsPath = getSessionsPath(baseDir);
|
|
220
|
+
let entries;
|
|
221
|
+
try {
|
|
222
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- CLI tool reads known session directory
|
|
223
|
+
entries = await fs.readdir(sessionsPath);
|
|
224
|
+
}
|
|
225
|
+
catch {
|
|
226
|
+
return [];
|
|
227
|
+
}
|
|
228
|
+
const records = await Promise.all(entries
|
|
229
|
+
.filter((entry) => entry.endsWith(SESSION_RECORD_EXTENSION))
|
|
230
|
+
.map((entry) => readReaderSessionRecord(path.join(sessionsPath, entry))));
|
|
231
|
+
return records.filter((record) => record !== null);
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Resolve the reader key used for per-recipient signal receipts.
|
|
235
|
+
*
|
|
236
|
+
* Explicit `agent_identity` wins when a session record provides it. This lets
|
|
237
|
+
* restarted or concurrent sessions intentionally share read state. Without an
|
|
238
|
+
* explicit identity, the session_id remains the receipt key.
|
|
239
|
+
*/
|
|
240
|
+
export async function resolveReaderIdentity(baseDir, readerId) {
|
|
241
|
+
const identities = await resolveReaderIdentities(baseDir, readerId);
|
|
242
|
+
return identities[0] ?? normalizeReaderId(readerId);
|
|
243
|
+
}
|
|
244
|
+
export async function resolveReaderIdentities(baseDir, readerId) {
|
|
245
|
+
const normalizedReaderId = normalizeReaderId(readerId);
|
|
246
|
+
if (readerId && readerId.trim().length > 0) {
|
|
247
|
+
const sessions = await loadReaderSessionRecords(baseDir);
|
|
248
|
+
const normalizedTarget = readerId.trim();
|
|
249
|
+
const matchedSessions = sessions.filter((session) => session.sessionId === normalizedTarget || session.agentIdentity === normalizedTarget);
|
|
250
|
+
const identities = matchedSessions.flatMap((session) => [
|
|
251
|
+
...(session.agentIdentity ? [session.agentIdentity] : []),
|
|
252
|
+
session.sessionId,
|
|
253
|
+
]);
|
|
254
|
+
return identities.length > 0 ? Array.from(new Set(identities)) : [normalizedReaderId];
|
|
255
|
+
}
|
|
256
|
+
const currentSession = await readReaderSessionRecord(path.join(getSessionsPath(baseDir), SESSION_COMPAT_POINTER_FILE));
|
|
257
|
+
if (!currentSession) {
|
|
258
|
+
return [normalizedReaderId];
|
|
259
|
+
}
|
|
260
|
+
return Array.from(new Set([
|
|
261
|
+
...(currentSession.agentIdentity ? [currentSession.agentIdentity] : []),
|
|
262
|
+
currentSession.sessionId,
|
|
263
|
+
]));
|
|
264
|
+
}
|
|
265
|
+
function normalizeRecipientList(recipients, targetAgent) {
|
|
266
|
+
const normalizedRecipients = Array.from(new Set((recipients ?? [])
|
|
267
|
+
.map((recipient) => recipient.trim())
|
|
268
|
+
.filter((recipient) => recipient.length > 0)));
|
|
269
|
+
if (normalizedRecipients.length > 0) {
|
|
270
|
+
return normalizedRecipients;
|
|
271
|
+
}
|
|
272
|
+
return targetAgent ? [targetAgent] : [];
|
|
273
|
+
}
|
|
274
|
+
export function getSignalRecipients(signal) {
|
|
275
|
+
return normalizeRecipientList(signal.recipients, signal.target_agent);
|
|
276
|
+
}
|
|
277
|
+
export function isSignalBroadcast(signal) {
|
|
278
|
+
return getSignalRecipients(signal).length === 0;
|
|
279
|
+
}
|
|
280
|
+
export function isSignalAddressedToAny(signal, identities) {
|
|
281
|
+
const identitySet = new Set(identities);
|
|
282
|
+
return getSignalRecipients(signal).some((recipient) => identitySet.has(recipient));
|
|
283
|
+
}
|
|
284
|
+
export function toA2ASignalPayload(signal) {
|
|
285
|
+
const signalOrigin = signal.origin ?? DEFAULT_SIGNAL_ORIGIN;
|
|
286
|
+
const canonicalOrigin = normalizeA2AOrigin(signalOrigin);
|
|
287
|
+
const payload = {
|
|
288
|
+
schema_version: A2A_SCHEMA_VERSION_V1,
|
|
289
|
+
signal_id: signal.signal_id ?? signal.id,
|
|
290
|
+
sender_identity: signal.sender_identity ?? signal.sender ?? DEFAULT_SIGNAL_SENDER,
|
|
291
|
+
recipients: signal.recipients ?? normalizeRecipientList(undefined, signal.target_agent),
|
|
292
|
+
message: signal.message,
|
|
293
|
+
created_at: signal.created_at,
|
|
294
|
+
origin: canonicalOrigin,
|
|
295
|
+
type: signal.type ?? DEFAULT_SIGNAL_TYPE,
|
|
296
|
+
sender: signal.sender ?? signal.sender_identity ?? DEFAULT_SIGNAL_SENDER,
|
|
297
|
+
read: signal.read,
|
|
298
|
+
remote_id: signal.remote_id ?? signal.id,
|
|
299
|
+
};
|
|
300
|
+
if (signalOrigin !== canonicalOrigin)
|
|
301
|
+
payload.origin_context = signalOrigin;
|
|
302
|
+
if (signal.workspace_id)
|
|
303
|
+
payload.workspace_id = signal.workspace_id;
|
|
304
|
+
if (signal.thread_id)
|
|
305
|
+
payload.thread_id = signal.thread_id;
|
|
306
|
+
if (signal.reply_to)
|
|
307
|
+
payload.reply_to = signal.reply_to;
|
|
308
|
+
if (signal.intent)
|
|
309
|
+
payload.intent = signal.intent;
|
|
310
|
+
if (signal.interrupt_class)
|
|
311
|
+
payload.interrupt_class = signal.interrupt_class;
|
|
312
|
+
if (signal.requires_ack !== undefined)
|
|
313
|
+
payload.requires_ack = signal.requires_ack;
|
|
314
|
+
if (signal.idempotency_key)
|
|
315
|
+
payload.idempotency_key = signal.idempotency_key;
|
|
316
|
+
if (signal.wu_id)
|
|
317
|
+
payload.wu_id = signal.wu_id;
|
|
318
|
+
if (signal.initiative)
|
|
319
|
+
payload.initiative = signal.initiative;
|
|
320
|
+
if (signal.lane)
|
|
321
|
+
payload.lane = signal.lane;
|
|
322
|
+
if (signal.role)
|
|
323
|
+
payload.role = signal.role;
|
|
324
|
+
if (signal.target_role)
|
|
325
|
+
payload.target_role = signal.target_role;
|
|
326
|
+
if (signal.delegation_id)
|
|
327
|
+
payload.delegation_id = signal.delegation_id;
|
|
328
|
+
if (signal.target_agent)
|
|
329
|
+
payload.target_agent = signal.target_agent;
|
|
330
|
+
A2ASignalV1Schema.parse(payload);
|
|
331
|
+
return payload;
|
|
332
|
+
}
|
|
333
|
+
function toA2ASignalEntry(signal) {
|
|
334
|
+
const payload = toA2ASignalPayload(signal);
|
|
335
|
+
return {
|
|
336
|
+
id: payload.signal_id,
|
|
337
|
+
kind: A2A_SIGNAL_ENTRY_KIND_V1,
|
|
338
|
+
timestamp: payload.created_at,
|
|
339
|
+
payload,
|
|
340
|
+
origin: payload.origin,
|
|
341
|
+
source_agent_id: payload.sender_identity,
|
|
342
|
+
message: signal.message,
|
|
343
|
+
created_at: signal.created_at,
|
|
344
|
+
read: signal.read,
|
|
345
|
+
signal_id: payload.signal_id,
|
|
346
|
+
schema_version: payload.schema_version,
|
|
347
|
+
type: signal.type,
|
|
348
|
+
sender: signal.sender,
|
|
349
|
+
sender_identity: payload.sender_identity,
|
|
350
|
+
recipients: payload.recipients,
|
|
351
|
+
remote_id: signal.remote_id,
|
|
352
|
+
wu_id: signal.wu_id,
|
|
353
|
+
lane: signal.lane,
|
|
354
|
+
target_agent: signal.target_agent,
|
|
355
|
+
role: signal.role,
|
|
356
|
+
target_role: signal.target_role,
|
|
357
|
+
initiative: signal.initiative,
|
|
358
|
+
delegation_id: signal.delegation_id,
|
|
359
|
+
thread_id: signal.thread_id,
|
|
360
|
+
reply_to: signal.reply_to,
|
|
361
|
+
intent: signal.intent,
|
|
362
|
+
interrupt_class: signal.interrupt_class,
|
|
363
|
+
requires_ack: signal.requires_ack,
|
|
364
|
+
};
|
|
365
|
+
}
|
|
366
|
+
function fromA2ASignalPayload(payload) {
|
|
367
|
+
const parsed = A2ASignalV1Schema.parse(payload);
|
|
368
|
+
const targetAgent = isNonEmptyString(payload.target_agent) && payload.target_agent.trim().length > 0
|
|
369
|
+
? payload.target_agent.trim()
|
|
370
|
+
: parsed.recipients[0];
|
|
371
|
+
const sender = isNonEmptyString(payload.sender) && payload.sender.trim().length > 0
|
|
372
|
+
? payload.sender.trim()
|
|
373
|
+
: parsed.sender_identity;
|
|
374
|
+
const remoteId = isNonEmptyString(payload.remote_id) && payload.remote_id.trim().length > 0
|
|
375
|
+
? payload.remote_id.trim()
|
|
376
|
+
: parsed.signal_id;
|
|
377
|
+
const originContext = isNonEmptyString(payload.origin_context) && payload.origin_context.trim().length > 0
|
|
378
|
+
? payload.origin_context.trim()
|
|
379
|
+
: undefined;
|
|
380
|
+
const type = isNonEmptyString(payload.type) && payload.type.trim().length > 0
|
|
381
|
+
? payload.type.trim()
|
|
382
|
+
: DEFAULT_SIGNAL_TYPE;
|
|
383
|
+
return {
|
|
384
|
+
...parsed,
|
|
385
|
+
id: parsed.signal_id,
|
|
386
|
+
signal_id: parsed.signal_id,
|
|
387
|
+
message: parsed.message,
|
|
388
|
+
created_at: parsed.created_at,
|
|
389
|
+
read: typeof payload.read === 'boolean' ? payload.read : false,
|
|
390
|
+
type,
|
|
391
|
+
sender,
|
|
392
|
+
sender_identity: parsed.sender_identity,
|
|
393
|
+
recipients: parsed.recipients,
|
|
394
|
+
origin: originContext ?? parsed.origin ?? DEFAULT_SIGNAL_ORIGIN,
|
|
395
|
+
remote_id: remoteId,
|
|
396
|
+
...(targetAgent ? { target_agent: targetAgent } : {}),
|
|
397
|
+
};
|
|
398
|
+
}
|
|
133
399
|
// WU-1548: NodeFsError imported from @lumenflow/core/wu-constants (consolidated)
|
|
134
400
|
/**
|
|
135
401
|
* Gets the memory directory path for a project.
|
|
@@ -158,16 +424,38 @@ function getSignalsPath(baseDir) {
|
|
|
158
424
|
function getReceiptsPath(baseDir) {
|
|
159
425
|
return path.join(getMemoryDir(baseDir), SIGNAL_RECEIPTS_FILE_NAME);
|
|
160
426
|
}
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
427
|
+
async function readSignalRecords(baseDir, compatibilityMode = 'strict') {
|
|
428
|
+
const signalsPath = getSignalsPath(baseDir);
|
|
429
|
+
let content;
|
|
430
|
+
try {
|
|
431
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- CLI tool reads signals file
|
|
432
|
+
content = await fs.readFile(signalsPath, { encoding: 'utf-8' });
|
|
433
|
+
}
|
|
434
|
+
catch (err) {
|
|
435
|
+
const error = err;
|
|
436
|
+
if (error.code === 'ENOENT') {
|
|
437
|
+
return [];
|
|
438
|
+
}
|
|
439
|
+
throw error;
|
|
440
|
+
}
|
|
441
|
+
const lines = content.split('\n').filter((line) => line.trim());
|
|
442
|
+
const signals = [];
|
|
443
|
+
for (const [index, line] of lines.entries()) {
|
|
444
|
+
try {
|
|
445
|
+
signals.push(parseStrictSignalRecord(line, index + 1));
|
|
446
|
+
}
|
|
447
|
+
catch (err) {
|
|
448
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
449
|
+
const isLegacySignalError = message.includes(ERROR_MESSAGES.LEGACY_SIGNAL_RECORD);
|
|
450
|
+
if (compatibilityMode === 'skip-legacy' && isLegacySignalError) {
|
|
451
|
+
continue;
|
|
452
|
+
}
|
|
453
|
+
throw err;
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
return signals;
|
|
457
|
+
}
|
|
458
|
+
async function loadSignalReceipts(baseDir) {
|
|
171
459
|
const receiptsPath = getReceiptsPath(baseDir);
|
|
172
460
|
let content;
|
|
173
461
|
try {
|
|
@@ -177,18 +465,116 @@ async function loadReceiptIds(baseDir) {
|
|
|
177
465
|
catch (err) {
|
|
178
466
|
const error = err;
|
|
179
467
|
if (error.code === 'ENOENT') {
|
|
180
|
-
return
|
|
468
|
+
return [];
|
|
181
469
|
}
|
|
182
470
|
throw error;
|
|
183
471
|
}
|
|
184
472
|
const lines = content.split('\n').filter((line) => line.trim());
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
473
|
+
return lines.map((line) => JSON.parse(line));
|
|
474
|
+
}
|
|
475
|
+
function receiptReaderId(receipt) {
|
|
476
|
+
return receipt.reader_id ?? receipt.reader_identity ?? LEGACY_GLOBAL_READER_ID;
|
|
477
|
+
}
|
|
478
|
+
function toA2AReceipt(receipt) {
|
|
479
|
+
const readerIdentity = receipt.reader_identity ?? receipt.reader_id;
|
|
480
|
+
if (!readerIdentity || !receipt.receipt_id || !receipt.delivery_state) {
|
|
481
|
+
return undefined;
|
|
482
|
+
}
|
|
483
|
+
return {
|
|
484
|
+
schema_version: A2A_SCHEMA_VERSION_V1,
|
|
485
|
+
receipt_id: receipt.receipt_id,
|
|
486
|
+
signal_id: receipt.signal_id,
|
|
487
|
+
reader_identity: readerIdentity,
|
|
488
|
+
read_at: receipt.read_at,
|
|
489
|
+
delivery_state: receipt.delivery_state,
|
|
490
|
+
...(receipt.idempotency_key ? { idempotency_key: receipt.idempotency_key } : {}),
|
|
491
|
+
};
|
|
492
|
+
}
|
|
493
|
+
/**
|
|
494
|
+
* Loads read receipts from the receipts file (WU-1472/WU-2912).
|
|
495
|
+
*
|
|
496
|
+
* Returns a map of signal IDs to reader IDs. Legacy receipts without a reader
|
|
497
|
+
* are represented by a sentinel that preserves their historical global-read
|
|
498
|
+
* behavior.
|
|
499
|
+
*
|
|
500
|
+
* @param baseDir - Project base directory
|
|
501
|
+
* @returns Map of signal IDs to reader IDs with read receipts
|
|
502
|
+
*/
|
|
503
|
+
async function loadReceiptIds(baseDir) {
|
|
504
|
+
const receipts = await loadSignalReceipts(baseDir);
|
|
505
|
+
const ids = new Map();
|
|
506
|
+
for (const receipt of receipts) {
|
|
507
|
+
const readers = ids.get(receipt.signal_id) ?? new Set();
|
|
508
|
+
readers.add(receiptReaderId(receipt));
|
|
509
|
+
ids.set(receipt.signal_id, readers);
|
|
189
510
|
}
|
|
190
511
|
return ids;
|
|
191
512
|
}
|
|
513
|
+
function isReadForReader(receiptIds, signalId, readerId) {
|
|
514
|
+
const readers = receiptIds.get(signalId);
|
|
515
|
+
return readers?.has(readerId) === true || readers?.has(LEGACY_GLOBAL_READER_ID) === true;
|
|
516
|
+
}
|
|
517
|
+
function findLatestReceipt(receipts, predicate) {
|
|
518
|
+
for (let index = receipts.length - 1; index >= 0; index -= 1) {
|
|
519
|
+
const receipt = receipts[index];
|
|
520
|
+
if (receipt && predicate(receipt)) {
|
|
521
|
+
return receipt;
|
|
522
|
+
}
|
|
523
|
+
}
|
|
524
|
+
return undefined;
|
|
525
|
+
}
|
|
526
|
+
function findReceiptForReader(receipts, signalId, readerId) {
|
|
527
|
+
const receipt = findLatestReceipt(receipts, (candidate) => {
|
|
528
|
+
return candidate.signal_id === signalId && receiptReaderId(candidate) === readerId;
|
|
529
|
+
}) ??
|
|
530
|
+
findLatestReceipt(receipts, (candidate) => {
|
|
531
|
+
return (candidate.signal_id === signalId && receiptReaderId(candidate) === LEGACY_GLOBAL_READER_ID);
|
|
532
|
+
});
|
|
533
|
+
return receipt ? toA2AReceipt(receipt) : undefined;
|
|
534
|
+
}
|
|
535
|
+
function findReplyThreadContext(signals, replyTo) {
|
|
536
|
+
if (!replyTo) {
|
|
537
|
+
return {};
|
|
538
|
+
}
|
|
539
|
+
const parent = signals.find((signal) => signal.id === replyTo || signal.signal_id === replyTo);
|
|
540
|
+
if (!parent) {
|
|
541
|
+
return {};
|
|
542
|
+
}
|
|
543
|
+
const threadId = parent.thread_id ?? parent.id;
|
|
544
|
+
const root = signals.find((signal) => signal.thread_id === threadId && !signal.reply_to) ?? parent;
|
|
545
|
+
return {
|
|
546
|
+
threadId,
|
|
547
|
+
rootSignalId: root.id,
|
|
548
|
+
};
|
|
549
|
+
}
|
|
550
|
+
function responseDeliveryState(intent) {
|
|
551
|
+
if (intent === 'AGREE') {
|
|
552
|
+
return 'acked';
|
|
553
|
+
}
|
|
554
|
+
if (intent === 'REJECT') {
|
|
555
|
+
return 'rejected';
|
|
556
|
+
}
|
|
557
|
+
return undefined;
|
|
558
|
+
}
|
|
559
|
+
async function appendResponseReceipt(baseDir, input) {
|
|
560
|
+
const receiptId = generateReceiptId();
|
|
561
|
+
const receipt = {
|
|
562
|
+
schema_version: A2A_SCHEMA_VERSION_V1,
|
|
563
|
+
receipt_id: receiptId,
|
|
564
|
+
signal_id: input.signalId,
|
|
565
|
+
reader_id: input.readerIdentity,
|
|
566
|
+
reader_identity: input.readerIdentity,
|
|
567
|
+
read_at: new Date().toISOString(),
|
|
568
|
+
delivery_state: input.deliveryState,
|
|
569
|
+
idempotency_key: `${receiptId}:${input.readerIdentity}:${input.signalId}:${input.deliveryState}`,
|
|
570
|
+
};
|
|
571
|
+
const memoryDir = getMemoryDir(baseDir);
|
|
572
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- CLI tool creates known directory
|
|
573
|
+
await fs.mkdir(memoryDir, { recursive: true });
|
|
574
|
+
const receiptsPath = getReceiptsPath(baseDir);
|
|
575
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- CLI tool writes receipts file
|
|
576
|
+
await fs.appendFile(receiptsPath, `${JSON.stringify(receipt)}\n`, 'utf-8');
|
|
577
|
+
}
|
|
192
578
|
/**
|
|
193
579
|
* Validates a WU ID format.
|
|
194
580
|
*
|
|
@@ -218,7 +604,7 @@ function isValidWuId(wuId) {
|
|
|
218
604
|
* });
|
|
219
605
|
*/
|
|
220
606
|
export async function createSignal(baseDir, options) {
|
|
221
|
-
const { message, wuId, lane, type, sender, target_agent, origin, remote_id, role, target_role, initiative, delegation_id, orgId, eventSink, eventTimestamp, } = options;
|
|
607
|
+
const { message, workspace_id, wuId, lane, type, sender, target_agent, recipients, origin, remote_id, thread_id, reply_to, intent, interrupt_class, requires_ack, idempotency_key, role, target_role, initiative, delegation_id, orgId, eventSink, eventTimestamp, } = options;
|
|
222
608
|
// Validate message is provided and non-empty
|
|
223
609
|
if (!message || typeof message !== 'string' || message.trim().length === 0) {
|
|
224
610
|
throw createError(ErrorCodes.VALIDATION_ERROR, ERROR_MESSAGES.MESSAGE_REQUIRED);
|
|
@@ -232,23 +618,42 @@ export async function createSignal(baseDir, options) {
|
|
|
232
618
|
const normalizedTargetAgent = normalizeOptionalString(target_agent, 'target_agent');
|
|
233
619
|
const normalizedOrigin = normalizeOptionalString(origin, 'origin') ?? DEFAULT_SIGNAL_ORIGIN;
|
|
234
620
|
const normalizedRemoteId = normalizeOptionalString(remote_id, 'remote_id');
|
|
621
|
+
const normalizedWorkspaceId = normalizeOptionalString(workspace_id, 'workspace_id');
|
|
622
|
+
const normalizedThreadId = normalizeOptionalString(thread_id, 'thread_id');
|
|
623
|
+
const normalizedReplyTo = normalizeOptionalString(reply_to, 'reply_to');
|
|
624
|
+
const normalizedIdempotencyKey = normalizeOptionalString(idempotency_key, 'idempotency_key');
|
|
235
625
|
// WU-2755 (ADR-014 extension 3): structured coordination axes. Memory core
|
|
236
626
|
// treats them as opaque non-empty strings; the pack owns vocabulary.
|
|
237
627
|
const normalizedRole = normalizeCoordinationField(role, 'role');
|
|
238
628
|
const normalizedTargetRole = normalizeCoordinationField(target_role, 'target_role');
|
|
239
629
|
const normalizedInitiative = normalizeCoordinationField(initiative, 'initiative');
|
|
240
630
|
const normalizedDelegationId = normalizeCoordinationField(delegation_id, 'delegation_id');
|
|
631
|
+
const normalizedRecipients = normalizeRecipientList(recipients, normalizedTargetAgent);
|
|
632
|
+
const existingSignals = normalizedReplyTo ? await readSignalRecords(baseDir, 'skip-legacy') : [];
|
|
633
|
+
const replyThreadContext = findReplyThreadContext(existingSignals, normalizedReplyTo);
|
|
634
|
+
const finalThreadId = normalizedThreadId ??
|
|
635
|
+
replyThreadContext.threadId ??
|
|
636
|
+
(normalizedRecipients.length > 0 && !normalizedReplyTo ? generateThreadId() : undefined);
|
|
637
|
+
const finalInterruptClass = interrupt_class ??
|
|
638
|
+
(normalizedRecipients.length > 0
|
|
639
|
+
? DEFAULT_DIRECTED_INTERRUPT_CLASS
|
|
640
|
+
: DEFAULT_BROADCAST_INTERRUPT_CLASS);
|
|
241
641
|
// Build signal object
|
|
242
642
|
const signal = {
|
|
243
643
|
id: generateSignalId(),
|
|
644
|
+
schema_version: A2A_SCHEMA_VERSION_V1,
|
|
244
645
|
message: message.trim(),
|
|
245
646
|
created_at: new Date().toISOString(),
|
|
246
647
|
read: false,
|
|
247
648
|
type: normalizedType,
|
|
248
649
|
sender: normalizedSender,
|
|
650
|
+
sender_identity: normalizedSender,
|
|
651
|
+
recipients: normalizedRecipients,
|
|
249
652
|
origin: normalizedOrigin,
|
|
250
653
|
remote_id: '',
|
|
654
|
+
interrupt_class: finalInterruptClass,
|
|
251
655
|
};
|
|
656
|
+
signal.signal_id = signal.id;
|
|
252
657
|
signal.remote_id = normalizedRemoteId ?? signal.id;
|
|
253
658
|
// Add optional fields
|
|
254
659
|
if (wuId) {
|
|
@@ -260,6 +665,24 @@ export async function createSignal(baseDir, options) {
|
|
|
260
665
|
if (normalizedTargetAgent) {
|
|
261
666
|
signal.target_agent = normalizedTargetAgent;
|
|
262
667
|
}
|
|
668
|
+
if (normalizedWorkspaceId) {
|
|
669
|
+
signal.workspace_id = normalizedWorkspaceId;
|
|
670
|
+
}
|
|
671
|
+
if (finalThreadId) {
|
|
672
|
+
signal.thread_id = finalThreadId;
|
|
673
|
+
}
|
|
674
|
+
if (normalizedReplyTo) {
|
|
675
|
+
signal.reply_to = normalizedReplyTo;
|
|
676
|
+
}
|
|
677
|
+
if (intent) {
|
|
678
|
+
signal.intent = intent;
|
|
679
|
+
}
|
|
680
|
+
if (requires_ack !== undefined) {
|
|
681
|
+
signal.requires_ack = requires_ack;
|
|
682
|
+
}
|
|
683
|
+
if (normalizedIdempotencyKey) {
|
|
684
|
+
signal.idempotency_key = normalizedIdempotencyKey;
|
|
685
|
+
}
|
|
263
686
|
// WU-2755 structured ADR-014 axes (additive, optional).
|
|
264
687
|
if (normalizedRole) {
|
|
265
688
|
signal.role = normalizedRole;
|
|
@@ -279,9 +702,18 @@ export async function createSignal(baseDir, options) {
|
|
|
279
702
|
await fs.mkdir(memoryDir, { recursive: true });
|
|
280
703
|
// Append signal to file (append-only for speed)
|
|
281
704
|
const signalsPath = getSignalsPath(baseDir);
|
|
282
|
-
const line = `${JSON.stringify(signal)}\n`;
|
|
705
|
+
const line = `${JSON.stringify(toA2ASignalEntry(signal))}\n`;
|
|
283
706
|
// eslint-disable-next-line security/detect-non-literal-fs-filename -- CLI tool writes signals file
|
|
284
707
|
await fs.appendFile(signalsPath, line, 'utf-8');
|
|
708
|
+
const deliveryState = responseDeliveryState(intent);
|
|
709
|
+
const responseTargetSignalId = replyThreadContext.rootSignalId ?? normalizedReplyTo;
|
|
710
|
+
if (deliveryState && responseTargetSignalId) {
|
|
711
|
+
await appendResponseReceipt(baseDir, {
|
|
712
|
+
signalId: responseTargetSignalId,
|
|
713
|
+
readerIdentity: normalizedSender,
|
|
714
|
+
deliveryState,
|
|
715
|
+
});
|
|
716
|
+
}
|
|
285
717
|
if (orgId && eventSink) {
|
|
286
718
|
const eventKind = normalizedOrigin === 'remote'
|
|
287
719
|
? MEMORY_EVENT_KINDS.SIGNAL_RECEIVED
|
|
@@ -325,42 +757,16 @@ export async function createSignal(baseDir, options) {
|
|
|
325
757
|
* });
|
|
326
758
|
*/
|
|
327
759
|
export async function loadSignals(baseDir, options = {}) {
|
|
328
|
-
const { wuId, lane, unreadOnly, since, compatibilityMode = 'strict', targetRole, initiative, delegationId, targetAgent, } = options;
|
|
329
|
-
const
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
content = await fs.readFile(signalsPath, { encoding: 'utf-8' });
|
|
335
|
-
}
|
|
336
|
-
catch (err) {
|
|
337
|
-
const error = err;
|
|
338
|
-
if (error.code === 'ENOENT') {
|
|
339
|
-
// File doesn't exist - return empty array
|
|
340
|
-
return [];
|
|
341
|
-
}
|
|
342
|
-
throw error;
|
|
343
|
-
}
|
|
344
|
-
// Parse JSONL content
|
|
345
|
-
const lines = content.split('\n').filter((line) => line.trim());
|
|
346
|
-
const signals = [];
|
|
347
|
-
for (const [index, line] of lines.entries()) {
|
|
348
|
-
try {
|
|
349
|
-
signals.push(parseStrictSignalRecord(line, index + 1));
|
|
350
|
-
}
|
|
351
|
-
catch (err) {
|
|
352
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
353
|
-
const isLegacySignalError = message.includes(ERROR_MESSAGES.LEGACY_SIGNAL_RECORD);
|
|
354
|
-
if (compatibilityMode === 'skip-legacy' && isLegacySignalError) {
|
|
355
|
-
continue;
|
|
356
|
-
}
|
|
357
|
-
throw err;
|
|
358
|
-
}
|
|
359
|
-
}
|
|
760
|
+
const { wuId, lane, unreadOnly, since, compatibilityMode = 'strict', targetRole, initiative, delegationId, targetAgent, readerId: providedReaderId, threadId, intents, } = options;
|
|
761
|
+
const readerId = await resolveReaderIdentity(baseDir, providedReaderId);
|
|
762
|
+
const targetAgentIdentities = targetAgent
|
|
763
|
+
? await resolveReaderIdentities(baseDir, targetAgent)
|
|
764
|
+
: [];
|
|
765
|
+
const signals = await readSignalRecords(baseDir, compatibilityMode);
|
|
360
766
|
// Merge receipt-based read state (WU-1472)
|
|
361
767
|
const receiptIds = await loadReceiptIds(baseDir);
|
|
362
768
|
for (const signal of signals) {
|
|
363
|
-
if (!signal.read && receiptIds
|
|
769
|
+
if (!signal.read && isReadForReader(receiptIds, signal.id, readerId)) {
|
|
364
770
|
signal.read = true;
|
|
365
771
|
}
|
|
366
772
|
}
|
|
@@ -390,11 +796,33 @@ export async function loadSignals(baseDir, options = {}) {
|
|
|
390
796
|
filtered = filtered.filter((sig) => sig.delegation_id === delegationId);
|
|
391
797
|
}
|
|
392
798
|
if (targetAgent) {
|
|
393
|
-
filtered = filtered.filter((sig) => sig
|
|
799
|
+
filtered = filtered.filter((sig) => isSignalBroadcast(sig) || isSignalAddressedToAny(sig, targetAgentIdentities));
|
|
800
|
+
}
|
|
801
|
+
if (threadId) {
|
|
802
|
+
filtered = filtered.filter((sig) => sig.thread_id === threadId);
|
|
803
|
+
}
|
|
804
|
+
if (intents && intents.length > 0) {
|
|
805
|
+
const intentSet = new Set(intents);
|
|
806
|
+
filtered = filtered.filter((sig) => sig.intent !== undefined && intentSet.has(sig.intent));
|
|
394
807
|
}
|
|
395
808
|
// Return in chronological order (file order is already chronological due to append-only)
|
|
396
809
|
return filtered;
|
|
397
810
|
}
|
|
811
|
+
export async function loadInboxSignalViews(baseDir, options = {}) {
|
|
812
|
+
const readerId = await resolveReaderIdentity(baseDir, options.readerId);
|
|
813
|
+
const [signals, receipts] = await Promise.all([
|
|
814
|
+
loadSignals(baseDir, { ...options, readerId }),
|
|
815
|
+
loadSignalReceipts(baseDir),
|
|
816
|
+
]);
|
|
817
|
+
return signals.map((signal) => {
|
|
818
|
+
const receipt = findReceiptForReader(receipts, signal.id, readerId);
|
|
819
|
+
return createInboxSignalView({
|
|
820
|
+
signal: toA2ASignalPayload(signal),
|
|
821
|
+
receipt,
|
|
822
|
+
unread: signal.read === false,
|
|
823
|
+
});
|
|
824
|
+
});
|
|
825
|
+
}
|
|
398
826
|
/**
|
|
399
827
|
* Marks signals as read by appending receipts to signal-receipts.jsonl (WU-1472).
|
|
400
828
|
*
|
|
@@ -413,9 +841,10 @@ export async function loadSignals(baseDir, options = {}) {
|
|
|
413
841
|
* const result = await markSignalsAsRead('/project', ['sig-abc12345', 'sig-def67890']);
|
|
414
842
|
* console.log(result.markedCount); // 2
|
|
415
843
|
*/
|
|
416
|
-
export async function markSignalsAsRead(baseDir, signalIds) {
|
|
844
|
+
export async function markSignalsAsRead(baseDir, signalIds, readerId) {
|
|
417
845
|
const signalsPath = getSignalsPath(baseDir);
|
|
418
846
|
const idSet = new Set(signalIds);
|
|
847
|
+
const normalizedReaderId = await resolveReaderIdentity(baseDir, readerId);
|
|
419
848
|
// Read signals file to determine which IDs exist and their inline read state
|
|
420
849
|
let signalContent;
|
|
421
850
|
try {
|
|
@@ -434,8 +863,8 @@ export async function markSignalsAsRead(baseDir, signalIds) {
|
|
|
434
863
|
const lines = signalContent.split('\n').filter((line) => line.trim());
|
|
435
864
|
const inlineReadIds = new Set();
|
|
436
865
|
const existingIds = new Set();
|
|
437
|
-
for (const line of lines) {
|
|
438
|
-
const signal =
|
|
866
|
+
for (const [index, line] of lines.entries()) {
|
|
867
|
+
const signal = parseStrictSignalRecord(line, index + 1);
|
|
439
868
|
existingIds.add(signal.id);
|
|
440
869
|
if (signal.read) {
|
|
441
870
|
inlineReadIds.add(signal.id);
|
|
@@ -448,8 +877,20 @@ export async function markSignalsAsRead(baseDir, signalIds) {
|
|
|
448
877
|
const newReceipts = [];
|
|
449
878
|
for (const id of idSet) {
|
|
450
879
|
// Only create receipt if: signal exists, not already inline read, no existing receipt
|
|
451
|
-
if (existingIds.has(id) &&
|
|
452
|
-
|
|
880
|
+
if (existingIds.has(id) &&
|
|
881
|
+
!inlineReadIds.has(id) &&
|
|
882
|
+
!isReadForReader(existingReceiptIds, id, normalizedReaderId)) {
|
|
883
|
+
const receiptId = generateReceiptId();
|
|
884
|
+
newReceipts.push({
|
|
885
|
+
schema_version: A2A_SCHEMA_VERSION_V1,
|
|
886
|
+
receipt_id: receiptId,
|
|
887
|
+
signal_id: id,
|
|
888
|
+
reader_id: normalizedReaderId,
|
|
889
|
+
reader_identity: normalizedReaderId,
|
|
890
|
+
read_at: now,
|
|
891
|
+
delivery_state: 'delivered',
|
|
892
|
+
idempotency_key: `${receiptId}:${normalizedReaderId}:${id}`,
|
|
893
|
+
});
|
|
453
894
|
}
|
|
454
895
|
}
|
|
455
896
|
// Append receipts (append-only for concurrent safety)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mem-signal-core.js","sourceRoot":"","sources":["../src/mem-signal-core.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mem-signal-core.js","sourceRoot":"","sources":["../src/mem-signal-core.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lumenflow/memory",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.4.0",
|
|
4
4
|
"description": "Memory layer for LumenFlow workflow framework - session tracking, context recovery, and agent coordination",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"lumenflow",
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
"./start": "./dist/mem-start-core.js",
|
|
31
31
|
"./ready": "./dist/mem-ready-core.js",
|
|
32
32
|
"./signal": "./dist/mem-signal-core.js",
|
|
33
|
+
"./inbox-view": "./dist/inbox-view.js",
|
|
33
34
|
"./cleanup": "./dist/mem-cleanup-core.js",
|
|
34
35
|
"./create": "./dist/mem-create-core.js",
|
|
35
36
|
"./summarize": "./dist/mem-summarize-core.js",
|
|
@@ -56,8 +57,9 @@
|
|
|
56
57
|
"ms": "^2.1.3",
|
|
57
58
|
"yaml": "^2.8.2",
|
|
58
59
|
"zod": "^4.3.6",
|
|
59
|
-
"@lumenflow/
|
|
60
|
-
"@lumenflow/packs-agent-runtime": "^5.
|
|
60
|
+
"@lumenflow/control-plane-sdk": "5.4.0",
|
|
61
|
+
"@lumenflow/packs-agent-runtime": "^5.4.0",
|
|
62
|
+
"@lumenflow/core": "5.4.0"
|
|
61
63
|
},
|
|
62
64
|
"devDependencies": {
|
|
63
65
|
"@vitest/coverage-v8": "^4.0.18",
|