agent-inbox 0.2.2 → 0.2.4
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/AGENTS.md +18 -0
- package/CLAUDE.md +92 -1
- package/README.md +73 -6
- package/bench/inbox-growth.bench.ts +224 -0
- package/dist/federation/connection-manager.d.ts +8 -0
- package/dist/federation/connection-manager.d.ts.map +1 -1
- package/dist/federation/connection-manager.js +12 -0
- package/dist/federation/connection-manager.js.map +1 -1
- package/dist/federation/delivery-queue.d.ts +11 -3
- package/dist/federation/delivery-queue.d.ts.map +1 -1
- package/dist/federation/delivery-queue.js +38 -8
- package/dist/federation/delivery-queue.js.map +1 -1
- package/dist/federation/queue-store.d.ts +42 -0
- package/dist/federation/queue-store.d.ts.map +1 -0
- package/dist/federation/queue-store.js +87 -0
- package/dist/federation/queue-store.js.map +1 -0
- package/dist/index.d.mts +2 -0
- package/dist/index.d.ts +29 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +124 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -0
- package/dist/index.mjs.map +1 -0
- package/dist/jsonrpc/mail-push-types.d.ts +9 -0
- package/dist/jsonrpc/mail-push-types.d.ts.map +1 -1
- package/dist/jsonrpc/mail-push-types.js +1 -0
- package/dist/jsonrpc/mail-push-types.js.map +1 -1
- package/dist/jsonrpc/mail-server.d.ts +8 -1
- package/dist/jsonrpc/mail-server.d.ts.map +1 -1
- package/dist/jsonrpc/mail-server.js +42 -1
- package/dist/jsonrpc/mail-server.js.map +1 -1
- package/dist/mail/address-book.d.ts +43 -0
- package/dist/mail/address-book.d.ts.map +1 -0
- package/dist/mail/address-book.js +95 -0
- package/dist/mail/address-book.js.map +1 -0
- package/dist/mail/attachment-store.d.ts +31 -0
- package/dist/mail/attachment-store.d.ts.map +1 -0
- package/dist/mail/attachment-store.js +74 -0
- package/dist/mail/attachment-store.js.map +1 -0
- package/dist/mail/email-mapper.d.ts +41 -0
- package/dist/mail/email-mapper.d.ts.map +1 -0
- package/dist/mail/email-mapper.js +216 -0
- package/dist/mail/email-mapper.js.map +1 -0
- package/dist/mail/fs-attachment-store.d.ts +38 -0
- package/dist/mail/fs-attachment-store.d.ts.map +1 -0
- package/dist/mail/fs-attachment-store.js +165 -0
- package/dist/mail/fs-attachment-store.js.map +1 -0
- package/dist/mail/mail-gateway.d.ts +114 -0
- package/dist/mail/mail-gateway.d.ts.map +1 -0
- package/dist/mail/mail-gateway.js +402 -0
- package/dist/mail/mail-gateway.js.map +1 -0
- package/dist/mail/provider-transport.d.ts +138 -0
- package/dist/mail/provider-transport.d.ts.map +1 -0
- package/dist/mail/provider-transport.js +434 -0
- package/dist/mail/provider-transport.js.map +1 -0
- package/dist/mail/rate-limiter.d.ts +20 -0
- package/dist/mail/rate-limiter.d.ts.map +1 -0
- package/dist/mail/rate-limiter.js +56 -0
- package/dist/mail/rate-limiter.js.map +1 -0
- package/dist/mail/smtp-transport.d.ts +141 -0
- package/dist/mail/smtp-transport.d.ts.map +1 -0
- package/dist/mail/smtp-transport.js +415 -0
- package/dist/mail/smtp-transport.js.map +1 -0
- package/dist/mail/types.d.ts +177 -0
- package/dist/mail/types.d.ts.map +1 -0
- package/dist/mail/types.js +11 -0
- package/dist/mail/types.js.map +1 -0
- package/dist/push/notifier.d.ts +21 -0
- package/dist/push/notifier.d.ts.map +1 -1
- package/dist/push/notifier.js +84 -2
- package/dist/push/notifier.js.map +1 -1
- package/dist/router/destination.d.ts +69 -0
- package/dist/router/destination.d.ts.map +1 -0
- package/dist/router/destination.js +106 -0
- package/dist/router/destination.js.map +1 -0
- package/dist/router/message-router.d.ts +15 -0
- package/dist/router/message-router.d.ts.map +1 -1
- package/dist/router/message-router.js +25 -3
- package/dist/router/message-router.js.map +1 -1
- package/dist/storage/interface.d.ts +21 -0
- package/dist/storage/interface.d.ts.map +1 -1
- package/dist/storage/memory.d.ts +12 -0
- package/dist/storage/memory.d.ts.map +1 -1
- package/dist/storage/memory.js +50 -0
- package/dist/storage/memory.js.map +1 -1
- package/dist/storage/sqlite.d.ts +14 -0
- package/dist/storage/sqlite.d.ts.map +1 -1
- package/dist/storage/sqlite.js +79 -1
- package/dist/storage/sqlite.js.map +1 -1
- package/dist/traceability/traceability.d.ts.map +1 -1
- package/dist/traceability/traceability.js +7 -17
- package/dist/traceability/traceability.js.map +1 -1
- package/dist/types.d.ts +80 -0
- package/dist/types.d.ts.map +1 -1
- package/docs/DESIGN.md +15 -0
- package/docs/MAIL-INTEROP-PLAN.md +660 -0
- package/package.json +29 -3
- package/renovate.json5 +6 -0
- package/rules/agent-inbox.md +1 -0
- package/src/federation/connection-manager.ts +12 -0
- package/src/federation/delivery-queue.ts +38 -8
- package/src/federation/queue-store.ts +124 -0
- package/src/index.ts +186 -1
- package/src/jsonrpc/mail-push-types.ts +10 -0
- package/src/jsonrpc/mail-server.ts +48 -1
- package/src/mail/address-book.ts +111 -0
- package/src/mail/attachment-store.ts +90 -0
- package/src/mail/email-mapper.ts +288 -0
- package/src/mail/fs-attachment-store.ts +163 -0
- package/src/mail/mail-gateway.ts +505 -0
- package/src/mail/provider-transport.ts +577 -0
- package/src/mail/rate-limiter.ts +51 -0
- package/src/mail/smtp-transport.ts +589 -0
- package/src/mail/types.ts +221 -0
- package/src/push/notifier.ts +98 -2
- package/src/router/destination.ts +140 -0
- package/src/router/message-router.ts +41 -4
- package/src/storage/interface.ts +22 -0
- package/src/storage/memory.ts +59 -0
- package/src/storage/sqlite.ts +114 -1
- package/src/traceability/traceability.ts +7 -16
- package/src/types.ts +74 -0
- package/test/federation/delivery-queue-sqlite.test.ts +158 -0
- package/test/load.test.ts +288 -0
- package/test/mail/address-book.test.ts +111 -0
- package/test/mail/attachment-store-contract.test.ts +92 -0
- package/test/mail/attachment-store.test.ts +69 -0
- package/test/mail/destination.test.ts +115 -0
- package/test/mail/dsn-parse.test.ts +239 -0
- package/test/mail/email-mapper.test.ts +341 -0
- package/test/mail/external-id.test.ts +43 -0
- package/test/mail/fs-attachment-store.test.ts +134 -0
- package/test/mail/full-flow-e2e.test.ts +200 -0
- package/test/mail/mail-gateway.test.ts +419 -0
- package/test/mail/mail-transport-contract.test.ts +134 -0
- package/test/mail/mock-mail.ts +161 -0
- package/test/mail/mock-postmark.ts +66 -0
- package/test/mail/provider-transport.test.ts +381 -0
- package/test/mail/rate-limiter.test.ts +48 -0
- package/test/mail/router-mail-integration.test.ts +138 -0
- package/test/mail/smtp-e2e.test.ts +98 -0
- package/test/mail/smtp-transport.test.ts +138 -0
- package/test/mail-presence.test.ts +149 -0
- package/test/mail-push.test.ts +44 -0
- package/test/mail-server.test.ts +25 -0
- package/test/push-notifier.test.ts +81 -0
- package/test/sqlite-storage.test.ts +106 -0
- package/test/storage.test.ts +92 -0
- package/vitest.bench.config.ts +8 -0
|
@@ -5,6 +5,7 @@ export class MessageRouter {
|
|
|
5
5
|
events;
|
|
6
6
|
defaultScope;
|
|
7
7
|
federation = null;
|
|
8
|
+
mail = null;
|
|
8
9
|
constructor(storage, events, defaultScope = "default") {
|
|
9
10
|
this.storage = storage;
|
|
10
11
|
this.events = events;
|
|
@@ -16,6 +17,12 @@ export class MessageRouter {
|
|
|
16
17
|
setFederation(federation) {
|
|
17
18
|
this.federation = federation;
|
|
18
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Attach a mail gateway for routing to external email recipients.
|
|
22
|
+
*/
|
|
23
|
+
setMail(mail) {
|
|
24
|
+
this.mail = mail;
|
|
25
|
+
}
|
|
19
26
|
async routeMessage(opts) {
|
|
20
27
|
const recipients = this.resolveRecipients(opts.to);
|
|
21
28
|
const content = normalizeContent(opts.payload);
|
|
@@ -45,8 +52,12 @@ export class MessageRouter {
|
|
|
45
52
|
metadata: opts.metadata ?? {},
|
|
46
53
|
created_at: now,
|
|
47
54
|
};
|
|
48
|
-
//
|
|
55
|
+
// Classify recipients: mail (external email) takes precedence over the
|
|
56
|
+
// federation interpretation of "agent@domain"; remaining remote recipients
|
|
57
|
+
// go to federation; everything else local.
|
|
49
58
|
for (const r of message.recipients) {
|
|
59
|
+
if (this.mail?.ownsRecipient(r.agent_id))
|
|
60
|
+
continue; // mail — see below
|
|
50
61
|
const addr = parseAddress(r.agent_id);
|
|
51
62
|
if (!isRemoteAddress(addr) && this.isLocal(r.agent_id)) {
|
|
52
63
|
r.delivered_at = now;
|
|
@@ -60,9 +71,20 @@ export class MessageRouter {
|
|
|
60
71
|
this.storage.putAgent(sender);
|
|
61
72
|
}
|
|
62
73
|
this.events.emit("message.created", message);
|
|
63
|
-
// Route
|
|
74
|
+
// Route external mail recipients via the mail gateway.
|
|
75
|
+
if (this.mail) {
|
|
76
|
+
const hasMail = message.recipients.some((r) => this.mail.ownsRecipient(r.agent_id));
|
|
77
|
+
if (hasMail) {
|
|
78
|
+
// Fire-and-forget; transient failures are queued inside the gateway.
|
|
79
|
+
this.mail.send(message).catch(() => {
|
|
80
|
+
// Mail delivery failures are handled by the gateway's retry queue
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// Route remaining remote recipients via federation (excluding mail).
|
|
64
85
|
if (this.federation) {
|
|
65
|
-
const hasRemote = message.recipients.some((r) => isRemoteAddress(parseAddress(r.agent_id))
|
|
86
|
+
const hasRemote = message.recipients.some((r) => isRemoteAddress(parseAddress(r.agent_id)) &&
|
|
87
|
+
!this.mail?.ownsRecipient(r.agent_id));
|
|
66
88
|
if (hasRemote) {
|
|
67
89
|
// Fire-and-forget federation routing (results tracked via events)
|
|
68
90
|
this.federation.route(message).catch(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-router.js","sourceRoot":"","sources":["../../src/router/message-router.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAU5B,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"message-router.js","sourceRoot":"","sources":["../../src/router/message-router.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,12 +15,33 @@ export interface Storage {
|
|
|
15
15
|
removeAgent(agentId: string): boolean;
|
|
16
16
|
getMessage(id: string): Message | undefined;
|
|
17
17
|
putMessage(message: Message): Message;
|
|
18
|
+
/** Set the conversation_id on an existing message without rewriting the row. */
|
|
19
|
+
setMessageConversationId(messageId: string, conversationId: string): void;
|
|
18
20
|
getInbox(agentId: string, opts?: InboxQuery): Message[];
|
|
19
21
|
getThread(query: ThreadQuery): Message[];
|
|
20
22
|
getSentMessages(agentId: string, limit?: number): Message[];
|
|
21
23
|
searchMessages(query: string, scope?: string): Message[];
|
|
24
|
+
/** Delete messages older than `cutoff` (ISO timestamp). Returns the count removed. */
|
|
25
|
+
pruneMessagesOlderThan(cutoff: string): number;
|
|
26
|
+
/**
|
|
27
|
+
* Record that an external message id (e.g. an RFC 5322 Message-ID) maps to a
|
|
28
|
+
* stored inbox message. Idempotent: re-recording the same external id is a no-op.
|
|
29
|
+
*/
|
|
30
|
+
recordExternalId(externalId: string, messageId: string): void;
|
|
31
|
+
/** Look up the inbox message id previously recorded for an external id. */
|
|
32
|
+
getMessageIdByExternalId(externalId: string): string | undefined;
|
|
33
|
+
/** Convenience: whether an external id has already been recorded. */
|
|
34
|
+
hasSeenExternalId(externalId: string): boolean;
|
|
22
35
|
getConversation(id: string): Conversation | undefined;
|
|
23
36
|
putConversation(conversation: Conversation): Conversation;
|
|
37
|
+
/** Bump conversation updated_at without rewriting participants. */
|
|
38
|
+
touchConversation(conversationId: string, updatedAt: string): void;
|
|
39
|
+
/** Add a participant if not already present. No-op if already a participant. */
|
|
40
|
+
addParticipant(conversationId: string, participant: {
|
|
41
|
+
agent_id: string;
|
|
42
|
+
role?: string;
|
|
43
|
+
joined_at: string;
|
|
44
|
+
}): void;
|
|
24
45
|
listConversations(scope?: string): Conversation[];
|
|
25
46
|
addTurn(turn: Turn): void;
|
|
26
47
|
getTurns(conversationId: string): Turn[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/storage/interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,OAAO,EACP,YAAY,EACZ,IAAI,EACJ,MAAM,EACP,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,UAAU;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,OAAO;IAEtB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,EAAE,CAAC;IACpC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAGtC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IAC5C,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,EAAE,CAAC;IACxD,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,EAAE,CAAC;IACzC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,EAAE,CAAC;IAC5D,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/storage/interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,OAAO,EACP,YAAY,EACZ,IAAI,EACJ,MAAM,EACP,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,UAAU;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,OAAO;IAEtB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,EAAE,CAAC;IACpC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAGtC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IAC5C,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC;IACtC,gFAAgF;IAChF,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1E,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,EAAE,CAAC;IACxD,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,EAAE,CAAC;IACzC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,EAAE,CAAC;IAC5D,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,EAAE,CAAC;IACzD,sFAAsF;IACtF,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAG/C;;;OAGG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9D,2EAA2E;IAC3E,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACjE,qEAAqE;IACrE,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IAG/C,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAAC;IACtD,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,YAAY,CAAC;IAC1D,mEAAmE;IACnE,iBAAiB,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACnE,gFAAgF;IAChF,cAAc,CACZ,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAClE,IAAI,CAAC;IACR,iBAAiB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE,CAAC;IAGlD,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,EAAE,CAAC;IAGzC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC3C,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAClC,wBAAwB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC5D"}
|
package/dist/storage/memory.d.ts
CHANGED
|
@@ -6,18 +6,30 @@ export declare class InMemoryStorage implements Storage {
|
|
|
6
6
|
private conversations;
|
|
7
7
|
private turns;
|
|
8
8
|
private threads;
|
|
9
|
+
private externalIds;
|
|
9
10
|
getAgent(agentId: string): Agent | undefined;
|
|
10
11
|
putAgent(agent: Agent): void;
|
|
11
12
|
listAgents(scope?: string): Agent[];
|
|
12
13
|
removeAgent(agentId: string): boolean;
|
|
13
14
|
getMessage(id: string): Message | undefined;
|
|
14
15
|
putMessage(message: Message): Message;
|
|
16
|
+
setMessageConversationId(messageId: string, conversationId: string): void;
|
|
17
|
+
recordExternalId(externalId: string, messageId: string): void;
|
|
18
|
+
getMessageIdByExternalId(externalId: string): string | undefined;
|
|
19
|
+
hasSeenExternalId(externalId: string): boolean;
|
|
20
|
+
pruneMessagesOlderThan(cutoff: string): number;
|
|
15
21
|
getInbox(agentId: string, opts?: InboxQuery): Message[];
|
|
16
22
|
getThread(query: ThreadQuery): Message[];
|
|
17
23
|
getSentMessages(agentId: string, limit?: number): Message[];
|
|
18
24
|
searchMessages(query: string, scope?: string): Message[];
|
|
19
25
|
getConversation(id: string): Conversation | undefined;
|
|
20
26
|
putConversation(conversation: Conversation): Conversation;
|
|
27
|
+
touchConversation(conversationId: string, updatedAt: string): void;
|
|
28
|
+
addParticipant(conversationId: string, participant: {
|
|
29
|
+
agent_id: string;
|
|
30
|
+
role?: string;
|
|
31
|
+
joined_at: string;
|
|
32
|
+
}): void;
|
|
21
33
|
listConversations(scope?: string): Conversation[];
|
|
22
34
|
addTurn(turn: Turn): void;
|
|
23
35
|
getTurns(conversationId: string): Turn[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/storage/memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,OAAO,EACP,YAAY,EACZ,IAAI,EACJ,MAAM,EACP,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAEvE,qBAAa,eAAgB,YAAW,OAAO;IAC7C,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,aAAa,CAAmC;IACxD,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,OAAO,CAA6B;
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/storage/memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,OAAO,EACP,YAAY,EACZ,IAAI,EACJ,MAAM,EACP,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAEvE,qBAAa,eAAgB,YAAW,OAAO;IAC7C,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,aAAa,CAAmC;IACxD,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,WAAW,CAA6B;IAIhD,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAI5C,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAI5B,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,EAAE;IAMnC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAMrC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAI3C,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAKrC,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI;IAKzE,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAM7D,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIhE,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAI9C,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAkB9C,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,EAAE;IAcvD,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,EAAE;IAUxC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,EAAE;IAU3D,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,EAAE;IAoBxD,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIrD,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,YAAY;IAKzD,iBAAiB,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAKlE,cAAc,CACZ,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAClE,IAAI;IAaP,iBAAiB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE;IAQjD,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAIzB,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,EAAE;IAQxC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI1C,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAKjC,wBAAwB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE;CAK3D"}
|
package/dist/storage/memory.js
CHANGED
|
@@ -4,6 +4,7 @@ export class InMemoryStorage {
|
|
|
4
4
|
conversations = new Map();
|
|
5
5
|
turns = [];
|
|
6
6
|
threads = new Map();
|
|
7
|
+
externalIds = new Map();
|
|
7
8
|
// --- Agents ---
|
|
8
9
|
getAgent(agentId) {
|
|
9
10
|
return this.agents.get(agentId);
|
|
@@ -28,6 +29,37 @@ export class InMemoryStorage {
|
|
|
28
29
|
this.messages.set(message.id, message);
|
|
29
30
|
return message;
|
|
30
31
|
}
|
|
32
|
+
setMessageConversationId(messageId, conversationId) {
|
|
33
|
+
const msg = this.messages.get(messageId);
|
|
34
|
+
if (msg)
|
|
35
|
+
msg.conversation_id = conversationId;
|
|
36
|
+
}
|
|
37
|
+
recordExternalId(externalId, messageId) {
|
|
38
|
+
if (!this.externalIds.has(externalId)) {
|
|
39
|
+
this.externalIds.set(externalId, messageId);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
getMessageIdByExternalId(externalId) {
|
|
43
|
+
return this.externalIds.get(externalId);
|
|
44
|
+
}
|
|
45
|
+
hasSeenExternalId(externalId) {
|
|
46
|
+
return this.externalIds.has(externalId);
|
|
47
|
+
}
|
|
48
|
+
pruneMessagesOlderThan(cutoff) {
|
|
49
|
+
let removed = 0;
|
|
50
|
+
const removedIds = new Set();
|
|
51
|
+
for (const [id, msg] of this.messages) {
|
|
52
|
+
if (msg.created_at < cutoff) {
|
|
53
|
+
this.messages.delete(id);
|
|
54
|
+
removedIds.add(id);
|
|
55
|
+
removed++;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
if (removedIds.size > 0) {
|
|
59
|
+
this.turns = this.turns.filter((t) => !t.source_message_id || !removedIds.has(t.source_message_id));
|
|
60
|
+
}
|
|
61
|
+
return removed;
|
|
62
|
+
}
|
|
31
63
|
getInbox(agentId, opts) {
|
|
32
64
|
const results = [];
|
|
33
65
|
for (const msg of this.messages.values()) {
|
|
@@ -88,6 +120,24 @@ export class InMemoryStorage {
|
|
|
88
120
|
this.conversations.set(conversation.id, conversation);
|
|
89
121
|
return conversation;
|
|
90
122
|
}
|
|
123
|
+
touchConversation(conversationId, updatedAt) {
|
|
124
|
+
const conv = this.conversations.get(conversationId);
|
|
125
|
+
if (conv)
|
|
126
|
+
conv.updated_at = updatedAt;
|
|
127
|
+
}
|
|
128
|
+
addParticipant(conversationId, participant) {
|
|
129
|
+
const conv = this.conversations.get(conversationId);
|
|
130
|
+
if (!conv)
|
|
131
|
+
return;
|
|
132
|
+
if (conv.participants.some((p) => p.agent_id === participant.agent_id)) {
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
conv.participants.push({
|
|
136
|
+
agent_id: participant.agent_id,
|
|
137
|
+
role: participant.role,
|
|
138
|
+
joined_at: participant.joined_at,
|
|
139
|
+
});
|
|
140
|
+
}
|
|
91
141
|
listConversations(scope) {
|
|
92
142
|
const all = Array.from(this.conversations.values());
|
|
93
143
|
if (!scope)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/storage/memory.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,eAAe;IAClB,MAAM,GAAG,IAAI,GAAG,EAAiB,CAAC;IAClC,QAAQ,GAAG,IAAI,GAAG,EAAmB,CAAC;IACtC,aAAa,GAAG,IAAI,GAAG,EAAwB,CAAC;IAChD,KAAK,GAAW,EAAE,CAAC;IACnB,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/storage/memory.ts"],"names":[],"mappings":"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"}
|
package/dist/storage/sqlite.d.ts
CHANGED
|
@@ -17,12 +17,20 @@ export declare class SqliteStorage implements Storage {
|
|
|
17
17
|
private p;
|
|
18
18
|
constructor(opts: SqliteStorageOptions);
|
|
19
19
|
private migrate;
|
|
20
|
+
/** Expose the underlying handle so sibling features (mail queue/attachments)
|
|
21
|
+
* can co-locate their tables. Caller must not close it. */
|
|
22
|
+
getDatabase(): Database.Database;
|
|
20
23
|
getAgent(agentId: string): Agent | undefined;
|
|
21
24
|
putAgent(agent: Agent): void;
|
|
22
25
|
listAgents(scope?: string): Agent[];
|
|
23
26
|
removeAgent(agentId: string): boolean;
|
|
24
27
|
getMessage(id: string): Message | undefined;
|
|
25
28
|
putMessage(message: Message): Message;
|
|
29
|
+
setMessageConversationId(messageId: string, conversationId: string): void;
|
|
30
|
+
recordExternalId(externalId: string, messageId: string): void;
|
|
31
|
+
getMessageIdByExternalId(externalId: string): string | undefined;
|
|
32
|
+
hasSeenExternalId(externalId: string): boolean;
|
|
33
|
+
pruneMessagesOlderThan(cutoff: string): number;
|
|
26
34
|
getInbox(agentId: string, opts?: InboxQuery): Message[];
|
|
27
35
|
getThread(query: ThreadQuery): Message[];
|
|
28
36
|
getSentMessages(agentId: string, limit?: number): Message[];
|
|
@@ -30,6 +38,12 @@ export declare class SqliteStorage implements Storage {
|
|
|
30
38
|
private searchMessagesLike;
|
|
31
39
|
getConversation(id: string): Conversation | undefined;
|
|
32
40
|
putConversation(conversation: Conversation): Conversation;
|
|
41
|
+
touchConversation(conversationId: string, updatedAt: string): void;
|
|
42
|
+
addParticipant(conversationId: string, participant: {
|
|
43
|
+
agent_id: string;
|
|
44
|
+
role?: string;
|
|
45
|
+
joined_at: string;
|
|
46
|
+
}): void;
|
|
33
47
|
listConversations(scope?: string): Conversation[];
|
|
34
48
|
addTurn(turn: Turn): void;
|
|
35
49
|
getTurns(conversationId: string): Turn[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/storage/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,EACV,KAAK,EACL,OAAO,EACP,YAAY,EACZ,IAAI,EACJ,MAAM,EAIP,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAEvE,MAAM,WAAW,oBAAoB;IACnC,gGAAgG;IAChG,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;qEACiE;IACjE,EAAE,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC;IACvB,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,aAAc,YAAW,OAAO;IAC3C,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,UAAU,CAAU;IAC5B,iCAAiC;IACjC,OAAO,CAAC,CAAC,CAA4B;gBAEzB,IAAI,EAAE,oBAAoB;
|
|
1
|
+
{"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/storage/sqlite.ts"],"names":[],"mappings":"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"}
|
package/dist/storage/sqlite.js
CHANGED
|
@@ -14,6 +14,8 @@ export class SqliteStorage {
|
|
|
14
14
|
this.db = new Database(path);
|
|
15
15
|
this.db.pragma("journal_mode = WAL");
|
|
16
16
|
this.db.pragma("foreign_keys = ON");
|
|
17
|
+
// Bound the WAL file: checkpoint after ~1000 dirty pages (~4 MiB).
|
|
18
|
+
this.db.pragma("wal_autocheckpoint = 1000");
|
|
17
19
|
this.externalDb = false;
|
|
18
20
|
}
|
|
19
21
|
const prefix = opts.prefix ?? "";
|
|
@@ -102,6 +104,13 @@ export class SqliteStorage {
|
|
|
102
104
|
FOREIGN KEY (conversation_id) REFERENCES ${t("conversations")}(id)
|
|
103
105
|
);
|
|
104
106
|
|
|
107
|
+
-- External-id mapping (mail dedup + bounce correlation)
|
|
108
|
+
CREATE TABLE IF NOT EXISTS ${t("external_ids")} (
|
|
109
|
+
external_id TEXT PRIMARY KEY,
|
|
110
|
+
message_id TEXT NOT NULL,
|
|
111
|
+
recorded_at TEXT NOT NULL
|
|
112
|
+
);
|
|
113
|
+
|
|
105
114
|
-- Indexes for common queries
|
|
106
115
|
CREATE INDEX IF NOT EXISTS idx_${t("messages")}_scope ON ${t("messages")}(scope);
|
|
107
116
|
CREATE INDEX IF NOT EXISTS idx_${t("messages")}_sender ON ${t("messages")}(sender_id);
|
|
@@ -138,7 +147,11 @@ export class SqliteStorage {
|
|
|
138
147
|
ELSE '' END);
|
|
139
148
|
END;
|
|
140
149
|
|
|
141
|
-
|
|
150
|
+
-- Drop legacy unscoped trigger if present, so we re-create it with OF clause
|
|
151
|
+
DROP TRIGGER IF EXISTS ${t("messages_au")};
|
|
152
|
+
|
|
153
|
+
CREATE TRIGGER IF NOT EXISTS ${t("messages_au")}
|
|
154
|
+
AFTER UPDATE OF subject, content ON ${t("messages")} BEGIN
|
|
142
155
|
INSERT INTO ${t("messages_fts")}(${t("messages_fts")}, rowid, id, subject, text_content)
|
|
143
156
|
VALUES ('delete', OLD.rowid, OLD.id, OLD.subject,
|
|
144
157
|
CASE WHEN json_extract(OLD.content, '$.type') = 'text'
|
|
@@ -152,6 +165,11 @@ export class SqliteStorage {
|
|
|
152
165
|
END;
|
|
153
166
|
`);
|
|
154
167
|
}
|
|
168
|
+
/** Expose the underlying handle so sibling features (mail queue/attachments)
|
|
169
|
+
* can co-locate their tables. Caller must not close it. */
|
|
170
|
+
getDatabase() {
|
|
171
|
+
return this.db;
|
|
172
|
+
}
|
|
155
173
|
// --- Agents ---
|
|
156
174
|
getAgent(agentId) {
|
|
157
175
|
const row = this.db
|
|
@@ -206,6 +224,55 @@ export class SqliteStorage {
|
|
|
206
224
|
})();
|
|
207
225
|
return message;
|
|
208
226
|
}
|
|
227
|
+
setMessageConversationId(messageId, conversationId) {
|
|
228
|
+
this.db
|
|
229
|
+
.prepare(`UPDATE ${this.p("messages")} SET conversation_id = ? WHERE id = ?`)
|
|
230
|
+
.run(conversationId, messageId);
|
|
231
|
+
}
|
|
232
|
+
recordExternalId(externalId, messageId) {
|
|
233
|
+
this.db
|
|
234
|
+
.prepare(`INSERT INTO ${this.p("external_ids")} (external_id, message_id, recorded_at)
|
|
235
|
+
VALUES (?, ?, ?)
|
|
236
|
+
ON CONFLICT(external_id) DO NOTHING`)
|
|
237
|
+
.run(externalId, messageId, new Date().toISOString());
|
|
238
|
+
}
|
|
239
|
+
getMessageIdByExternalId(externalId) {
|
|
240
|
+
const row = this.db
|
|
241
|
+
.prepare(`SELECT message_id FROM ${this.p("external_ids")} WHERE external_id = ?`)
|
|
242
|
+
.get(externalId);
|
|
243
|
+
return row?.message_id;
|
|
244
|
+
}
|
|
245
|
+
hasSeenExternalId(externalId) {
|
|
246
|
+
return this.getMessageIdByExternalId(externalId) !== undefined;
|
|
247
|
+
}
|
|
248
|
+
pruneMessagesOlderThan(cutoff) {
|
|
249
|
+
const m = this.p("messages");
|
|
250
|
+
const r = this.p("recipients");
|
|
251
|
+
const turns = this.p("turns");
|
|
252
|
+
const threads = this.p("threads");
|
|
253
|
+
return this.db.transaction(() => {
|
|
254
|
+
const ids = this.db
|
|
255
|
+
.prepare(`SELECT id FROM ${m} WHERE created_at < ?`)
|
|
256
|
+
.all(cutoff).map((row) => row.id);
|
|
257
|
+
if (ids.length === 0)
|
|
258
|
+
return 0;
|
|
259
|
+
const placeholders = ids.map(() => "?").join(",");
|
|
260
|
+
this.db
|
|
261
|
+
.prepare(`DELETE FROM ${r} WHERE message_id IN (${placeholders})`)
|
|
262
|
+
.run(...ids);
|
|
263
|
+
this.db
|
|
264
|
+
.prepare(`DELETE FROM ${turns} WHERE source_message_id IN (${placeholders})`)
|
|
265
|
+
.run(...ids);
|
|
266
|
+
// Threads pinned to a pruned root turn are now orphans — drop them.
|
|
267
|
+
this.db
|
|
268
|
+
.prepare(`DELETE FROM ${threads} WHERE root_turn_id NOT IN (SELECT id FROM ${turns})`)
|
|
269
|
+
.run();
|
|
270
|
+
this.db
|
|
271
|
+
.prepare(`DELETE FROM ${m} WHERE id IN (${placeholders})`)
|
|
272
|
+
.run(...ids);
|
|
273
|
+
return ids.length;
|
|
274
|
+
})();
|
|
275
|
+
}
|
|
209
276
|
getInbox(agentId, opts) {
|
|
210
277
|
const m = this.p("messages");
|
|
211
278
|
const r = this.p("recipients");
|
|
@@ -320,6 +387,17 @@ export class SqliteStorage {
|
|
|
320
387
|
})();
|
|
321
388
|
return conversation;
|
|
322
389
|
}
|
|
390
|
+
touchConversation(conversationId, updatedAt) {
|
|
391
|
+
this.db
|
|
392
|
+
.prepare(`UPDATE ${this.p("conversations")} SET updated_at = ? WHERE id = ?`)
|
|
393
|
+
.run(updatedAt, conversationId);
|
|
394
|
+
}
|
|
395
|
+
addParticipant(conversationId, participant) {
|
|
396
|
+
this.db
|
|
397
|
+
.prepare(`INSERT OR IGNORE INTO ${this.p("participants")}
|
|
398
|
+
(conversation_id, agent_id, role, joined_at) VALUES (?, ?, ?, ?)`)
|
|
399
|
+
.run(conversationId, participant.agent_id, participant.role ?? null, participant.joined_at);
|
|
400
|
+
}
|
|
323
401
|
listConversations(scope) {
|
|
324
402
|
let rows;
|
|
325
403
|
if (scope) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/storage/sqlite.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/storage/sqlite.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traceability.d.ts","sourceRoot":"","sources":["../../src/traceability/traceability.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAEvD;;;;;;;;GAQG;AACH,qBAAa,iBAAiB;IAS1B,OAAO,CAAC,OAAO;IARjB,gDAAgD;IAChD,OAAO,CAAC,iBAAiB,CAA6B;IACtD,6CAA6C;IAC7C,OAAO,CAAC,aAAa,CAA6B;IAClD,8DAA8D;IAC9D,OAAO,CAAC,kBAAkB,CAA6B;gBAG7C,OAAO,EAAE,OAAO,EACxB,MAAM,EAAE,YAAY;IAKtB,OAAO,CAAC,SAAS;
|
|
1
|
+
{"version":3,"file":"traceability.d.ts","sourceRoot":"","sources":["../../src/traceability/traceability.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAEvD;;;;;;;;GAQG;AACH,qBAAa,iBAAiB;IAS1B,OAAO,CAAC,OAAO;IARjB,gDAAgD;IAChD,OAAO,CAAC,iBAAiB,CAA6B;IACtD,6CAA6C;IAC7C,OAAO,CAAC,aAAa,CAA6B;IAClD,8DAA8D;IAC9D,OAAO,CAAC,kBAAkB,CAA6B;gBAG7C,OAAO,EAAE,OAAO,EACxB,MAAM,EAAE,YAAY;IAKtB,OAAO,CAAC,SAAS;IAwCjB,OAAO,CAAC,mBAAmB;IAoC3B,OAAO,CAAC,kBAAkB;IAoB1B,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,aAAa;IA0BrB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,kBAAkB;CAS3B"}
|
|
@@ -22,14 +22,14 @@ export class TraceabilityLayer {
|
|
|
22
22
|
}
|
|
23
23
|
onMessage(message) {
|
|
24
24
|
const conversationId = this.resolveConversation(message);
|
|
25
|
-
// Update message's conversation_id if not already set
|
|
25
|
+
// Update message's conversation_id if not already set. Use a targeted
|
|
26
|
+
// UPDATE rather than re-upserting the whole row + recipients.
|
|
26
27
|
if (!message.conversation_id) {
|
|
27
28
|
message.conversation_id = conversationId;
|
|
28
|
-
this.storage.
|
|
29
|
+
this.storage.setMessageConversationId(message.id, conversationId);
|
|
29
30
|
}
|
|
30
|
-
// Ensure sender
|
|
31
|
+
// Ensure sender + recipients are participants (no-op if already present)
|
|
31
32
|
this.ensureParticipant(conversationId, message.sender_id);
|
|
32
|
-
// Ensure recipients are participants
|
|
33
33
|
for (const r of message.recipients) {
|
|
34
34
|
this.ensureParticipant(conversationId, r.agent_id);
|
|
35
35
|
}
|
|
@@ -50,12 +50,8 @@ export class TraceabilityLayer {
|
|
|
50
50
|
turn.in_reply_to = this.findTurnForMessage(message.in_reply_to);
|
|
51
51
|
}
|
|
52
52
|
this.storage.addTurn(turn);
|
|
53
|
-
//
|
|
54
|
-
|
|
55
|
-
if (conv) {
|
|
56
|
-
conv.updated_at = message.created_at;
|
|
57
|
-
this.storage.putConversation(conv);
|
|
58
|
-
}
|
|
53
|
+
// Bump conversation updated_at — single column UPDATE, no participant resync.
|
|
54
|
+
this.storage.touchConversation(conversationId, message.created_at);
|
|
59
55
|
}
|
|
60
56
|
resolveConversation(message) {
|
|
61
57
|
// 1. Explicit conversation ID
|
|
@@ -100,16 +96,10 @@ export class TraceabilityLayer {
|
|
|
100
96
|
return conv.id;
|
|
101
97
|
}
|
|
102
98
|
ensureParticipant(conversationId, agentId) {
|
|
103
|
-
|
|
104
|
-
if (!conv)
|
|
105
|
-
return;
|
|
106
|
-
if (conv.participants.some((p) => p.agent_id === agentId))
|
|
107
|
-
return;
|
|
108
|
-
conv.participants.push({
|
|
99
|
+
this.storage.addParticipant(conversationId, {
|
|
109
100
|
agent_id: agentId,
|
|
110
101
|
joined_at: new Date().toISOString(),
|
|
111
102
|
});
|
|
112
|
-
this.storage.putConversation(conv);
|
|
113
103
|
}
|
|
114
104
|
resolveThread(message, conversationId, turnId) {
|
|
115
105
|
// Find the root of the reply chain
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traceability.js","sourceRoot":"","sources":["../../src/traceability/traceability.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAI5B;;;;;;;;GAQG;AACH,MAAM,OAAO,iBAAiB;IASlB;IARV,gDAAgD;IACxC,iBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtD,6CAA6C;IACrC,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAClD,8DAA8D;IACtD,kBAAkB,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEvD,YACU,OAAgB,EACxB,MAAoB;QADZ,YAAO,GAAP,OAAO,CAAS;QAGxB,MAAM,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,GAAY,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IACtE,CAAC;IAEO,SAAS,CAAC,OAAgB;QAChC,MAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAEzD,
|
|
1
|
+
{"version":3,"file":"traceability.js","sourceRoot":"","sources":["../../src/traceability/traceability.ts"],"names":[],"mappings":"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"}
|