instar 0.28.77 → 0.28.78
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/dashboard/index.html +184 -4
- package/dist/commands/server.d.ts.map +1 -1
- package/dist/commands/server.js +46 -2
- package/dist/commands/server.js.map +1 -1
- package/dist/monitoring/TokenLedger.d.ts +39 -0
- package/dist/monitoring/TokenLedger.d.ts.map +1 -1
- package/dist/monitoring/TokenLedger.js +110 -13
- package/dist/monitoring/TokenLedger.js.map +1 -1
- package/dist/monitoring/TokenLedgerPoller.d.ts.map +1 -1
- package/dist/monitoring/TokenLedgerPoller.js +8 -8
- package/dist/monitoring/TokenLedgerPoller.js.map +1 -1
- package/dist/server/AgentServer.d.ts +4 -0
- package/dist/server/AgentServer.d.ts.map +1 -1
- package/dist/server/AgentServer.js +14 -1
- package/dist/server/AgentServer.js.map +1 -1
- package/dist/server/routes.d.ts +8 -1
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +98 -0
- package/dist/server/routes.js.map +1 -1
- package/dist/threadline/BackfillCore.d.ts +70 -0
- package/dist/threadline/BackfillCore.d.ts.map +1 -0
- package/dist/threadline/BackfillCore.js +117 -0
- package/dist/threadline/BackfillCore.js.map +1 -0
- package/dist/threadline/ListenerSessionManager.d.ts +35 -0
- package/dist/threadline/ListenerSessionManager.d.ts.map +1 -1
- package/dist/threadline/ListenerSessionManager.js +41 -0
- package/dist/threadline/ListenerSessionManager.js.map +1 -1
- package/dist/threadline/TelegramBridge.d.ts +140 -0
- package/dist/threadline/TelegramBridge.d.ts.map +1 -0
- package/dist/threadline/TelegramBridge.js +224 -0
- package/dist/threadline/TelegramBridge.js.map +1 -0
- package/dist/threadline/ThreadlineMCPServer.d.ts.map +1 -1
- package/dist/threadline/ThreadlineMCPServer.js +5 -0
- package/dist/threadline/ThreadlineMCPServer.js.map +1 -1
- package/dist/threadline/ThreadlineObservability.d.ts +95 -0
- package/dist/threadline/ThreadlineObservability.d.ts.map +1 -0
- package/dist/threadline/ThreadlineObservability.js +310 -0
- package/dist/threadline/ThreadlineObservability.js.map +1 -0
- package/package.json +1 -1
- package/scripts/threadline-bridge-backfill.mjs +379 -0
- package/src/data/builtin-manifest.json +47 -47
- package/upgrades/0.28.78.md +90 -0
- package/upgrades/side-effects/threadline-bridge-backfill.md +203 -0
- package/upgrades/side-effects/threadline-observability-tab.md +206 -0
- package/upgrades/side-effects/threadline-tg-bridge-module.md +196 -0
- package/upgrades/side-effects/token-ledger-bounded-scan.md +230 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BackfillCore — pure helpers shared with scripts/threadline-bridge-backfill.mjs.
|
|
3
|
+
*
|
|
4
|
+
* Kept in src/ so they're TypeScript-checked and unit-testable. The
|
|
5
|
+
* script imports the compiled .mjs versions or duplicates the logic
|
|
6
|
+
* inline (the script is a one-shot CLI; it doesn't need a TS build
|
|
7
|
+
* step). This module is the source of truth for the documented
|
|
8
|
+
* contract; the script's own copies must stay in sync.
|
|
9
|
+
*/
|
|
10
|
+
export declare const TOPIC_NAME_MAX = 96;
|
|
11
|
+
export declare const MAX_BODY_CHARS = 3800;
|
|
12
|
+
export interface BackfillMessage {
|
|
13
|
+
id?: string;
|
|
14
|
+
direction: 'in' | 'out';
|
|
15
|
+
timestamp?: string;
|
|
16
|
+
remoteAgent?: string;
|
|
17
|
+
remoteAgentName?: string;
|
|
18
|
+
text: string;
|
|
19
|
+
outcome?: string;
|
|
20
|
+
}
|
|
21
|
+
export interface InboxRow {
|
|
22
|
+
id?: string;
|
|
23
|
+
threadId?: string;
|
|
24
|
+
timestamp?: string;
|
|
25
|
+
from?: string;
|
|
26
|
+
senderName?: string;
|
|
27
|
+
text?: string;
|
|
28
|
+
}
|
|
29
|
+
export interface OutboxRow {
|
|
30
|
+
id?: string;
|
|
31
|
+
threadId?: string;
|
|
32
|
+
timestamp?: string;
|
|
33
|
+
to?: string;
|
|
34
|
+
recipientName?: string;
|
|
35
|
+
text?: string;
|
|
36
|
+
outcome?: string;
|
|
37
|
+
}
|
|
38
|
+
export interface SeedRow {
|
|
39
|
+
id?: string;
|
|
40
|
+
threadId?: string;
|
|
41
|
+
direction?: 'in' | 'out';
|
|
42
|
+
timestamp?: string;
|
|
43
|
+
remoteAgent?: string;
|
|
44
|
+
remoteAgentName?: string;
|
|
45
|
+
text?: string;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Build a topic name in the documented `local↔remote — subject` shape,
|
|
49
|
+
* truncating the subject to fit Telegram's 128-char limit (we cap at 96
|
|
50
|
+
* for headroom).
|
|
51
|
+
*/
|
|
52
|
+
export declare function buildTopicName(localAgent: string, remoteName: string, subject?: string): string;
|
|
53
|
+
/** Chunk a body string into Telegram-safe pieces (<= 3800 chars each). */
|
|
54
|
+
export declare function chunkBody(body: string): string[];
|
|
55
|
+
/**
|
|
56
|
+
* Combine inbox / outbox / seed rows into a per-thread chronological
|
|
57
|
+
* map. Direction is preserved; missing fields are tolerated. Empty
|
|
58
|
+
* threadIds are dropped.
|
|
59
|
+
*/
|
|
60
|
+
export declare function groupByThread(inbox: InboxRow[], outbox: OutboxRow[], seed?: SeedRow[]): Map<string, BackfillMessage[]>;
|
|
61
|
+
/** Pick the counterparty for a thread: first inbound's sender, else first outbound's recipient. */
|
|
62
|
+
export declare function pickCounterparty(messages: BackfillMessage[]): {
|
|
63
|
+
id: string;
|
|
64
|
+
name: string;
|
|
65
|
+
};
|
|
66
|
+
/** Stable key for the idempotency ledger. */
|
|
67
|
+
export declare function ledgerKey(m: BackfillMessage): string;
|
|
68
|
+
/** Compose the per-message body the backfill script posts. */
|
|
69
|
+
export declare function formatBackfillMessage(m: BackfillMessage, localAgentName: string): string;
|
|
70
|
+
//# sourceMappingURL=BackfillCore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BackfillCore.d.ts","sourceRoot":"","sources":["../../src/threadline/BackfillCore.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,eAAO,MAAM,cAAc,OAAO,CAAC;AAEnC,MAAM,WAAW,eAAe;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,IAAI,GAAG,KAAK,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAS/F;AAED,0EAA0E;AAC1E,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAOhD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,QAAQ,EAAE,EACjB,MAAM,EAAE,SAAS,EAAE,EACnB,IAAI,GAAE,OAAO,EAAO,GACnB,GAAG,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,CA4ChC;AAED,mGAAmG;AACnG,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAY1F;AAED,6CAA6C;AAC7C,wBAAgB,SAAS,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM,CAEpD;AAED,8DAA8D;AAC9D,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAOxF"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BackfillCore — pure helpers shared with scripts/threadline-bridge-backfill.mjs.
|
|
3
|
+
*
|
|
4
|
+
* Kept in src/ so they're TypeScript-checked and unit-testable. The
|
|
5
|
+
* script imports the compiled .mjs versions or duplicates the logic
|
|
6
|
+
* inline (the script is a one-shot CLI; it doesn't need a TS build
|
|
7
|
+
* step). This module is the source of truth for the documented
|
|
8
|
+
* contract; the script's own copies must stay in sync.
|
|
9
|
+
*/
|
|
10
|
+
export const TOPIC_NAME_MAX = 96;
|
|
11
|
+
export const MAX_BODY_CHARS = 3800;
|
|
12
|
+
/**
|
|
13
|
+
* Build a topic name in the documented `local↔remote — subject` shape,
|
|
14
|
+
* truncating the subject to fit Telegram's 128-char limit (we cap at 96
|
|
15
|
+
* for headroom).
|
|
16
|
+
*/
|
|
17
|
+
export function buildTopicName(localAgent, remoteName, subject) {
|
|
18
|
+
const baseSubject = (subject || 'thread').trim().replace(/\s+/g, ' ');
|
|
19
|
+
const head = `${localAgent}↔${remoteName}`;
|
|
20
|
+
const sep = ' — ';
|
|
21
|
+
const remaining = TOPIC_NAME_MAX - head.length - sep.length;
|
|
22
|
+
const trimmedSubject = remaining > 4 && baseSubject.length > remaining
|
|
23
|
+
? baseSubject.slice(0, remaining - 1) + '…'
|
|
24
|
+
: baseSubject;
|
|
25
|
+
return `${head}${sep}${trimmedSubject}`.slice(0, TOPIC_NAME_MAX);
|
|
26
|
+
}
|
|
27
|
+
/** Chunk a body string into Telegram-safe pieces (<= 3800 chars each). */
|
|
28
|
+
export function chunkBody(body) {
|
|
29
|
+
if (body.length <= MAX_BODY_CHARS)
|
|
30
|
+
return [body];
|
|
31
|
+
const chunks = [];
|
|
32
|
+
for (let i = 0; i < body.length; i += MAX_BODY_CHARS) {
|
|
33
|
+
chunks.push(body.slice(i, i + MAX_BODY_CHARS));
|
|
34
|
+
}
|
|
35
|
+
return chunks;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Combine inbox / outbox / seed rows into a per-thread chronological
|
|
39
|
+
* map. Direction is preserved; missing fields are tolerated. Empty
|
|
40
|
+
* threadIds are dropped.
|
|
41
|
+
*/
|
|
42
|
+
export function groupByThread(inbox, outbox, seed = []) {
|
|
43
|
+
const map = new Map();
|
|
44
|
+
const push = (threadId, msg) => {
|
|
45
|
+
if (!threadId)
|
|
46
|
+
return;
|
|
47
|
+
if (!map.has(threadId))
|
|
48
|
+
map.set(threadId, []);
|
|
49
|
+
map.get(threadId).push(msg);
|
|
50
|
+
};
|
|
51
|
+
for (const e of inbox) {
|
|
52
|
+
push(e.threadId, {
|
|
53
|
+
id: e.id,
|
|
54
|
+
direction: 'in',
|
|
55
|
+
timestamp: e.timestamp,
|
|
56
|
+
remoteAgent: e.from,
|
|
57
|
+
remoteAgentName: e.senderName || e.from?.slice(0, 8) || '(unknown)',
|
|
58
|
+
text: e.text ?? '',
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
for (const e of outbox) {
|
|
62
|
+
push(e.threadId, {
|
|
63
|
+
id: e.id,
|
|
64
|
+
direction: 'out',
|
|
65
|
+
timestamp: e.timestamp,
|
|
66
|
+
remoteAgent: e.to,
|
|
67
|
+
remoteAgentName: e.recipientName || e.to?.slice(0, 8) || '(unknown)',
|
|
68
|
+
text: e.text ?? '',
|
|
69
|
+
outcome: e.outcome,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
for (const e of seed) {
|
|
73
|
+
if (!e.threadId)
|
|
74
|
+
continue;
|
|
75
|
+
push(e.threadId, {
|
|
76
|
+
id: e.id ?? `seed-${e.timestamp ?? ''}`,
|
|
77
|
+
direction: e.direction === 'out' ? 'out' : 'in',
|
|
78
|
+
timestamp: e.timestamp,
|
|
79
|
+
remoteAgent: e.remoteAgent,
|
|
80
|
+
remoteAgentName: e.remoteAgentName ?? e.remoteAgent?.slice(0, 8) ?? '(unknown)',
|
|
81
|
+
text: e.text ?? '',
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
// Sort each thread chronologically.
|
|
85
|
+
for (const arr of map.values()) {
|
|
86
|
+
arr.sort((a, b) => (a.timestamp ?? '').localeCompare(b.timestamp ?? ''));
|
|
87
|
+
}
|
|
88
|
+
return map;
|
|
89
|
+
}
|
|
90
|
+
/** Pick the counterparty for a thread: first inbound's sender, else first outbound's recipient. */
|
|
91
|
+
export function pickCounterparty(messages) {
|
|
92
|
+
for (const m of messages) {
|
|
93
|
+
if (m.direction === 'in') {
|
|
94
|
+
return { id: m.remoteAgent ?? '(unknown)', name: m.remoteAgentName ?? '(unknown)' };
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
for (const m of messages) {
|
|
98
|
+
if (m.direction === 'out') {
|
|
99
|
+
return { id: m.remoteAgent ?? '(unknown)', name: m.remoteAgentName ?? '(unknown)' };
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return { id: '(unknown)', name: '(unknown)' };
|
|
103
|
+
}
|
|
104
|
+
/** Stable key for the idempotency ledger. */
|
|
105
|
+
export function ledgerKey(m) {
|
|
106
|
+
return m.id || `${m.direction}:${m.timestamp ?? ''}:${m.text.slice(0, 32)}`;
|
|
107
|
+
}
|
|
108
|
+
/** Compose the per-message body the backfill script posts. */
|
|
109
|
+
export function formatBackfillMessage(m, localAgentName) {
|
|
110
|
+
const arrow = m.direction === 'in' ? '📥' : '📤';
|
|
111
|
+
const head = m.direction === 'in'
|
|
112
|
+
? `${arrow} ${m.remoteAgentName ?? '(unknown)'} → ${localAgentName}`
|
|
113
|
+
: `${arrow} ${localAgentName} → ${m.remoteAgentName ?? '(unknown)'}`;
|
|
114
|
+
const meta = m.timestamp ? `\n${m.timestamp}` : '';
|
|
115
|
+
return `${head}${meta}\n${m.text}`;
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=BackfillCore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BackfillCore.js","sourceRoot":"","sources":["../../src/threadline/BackfillCore.ts"],"names":[],"mappings":"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"}
|
|
@@ -80,6 +80,14 @@ export declare class ListenerSessionManager {
|
|
|
80
80
|
* observability tab and the threadline → telegram bridge.
|
|
81
81
|
*/
|
|
82
82
|
get canonicalInboxPath(): string;
|
|
83
|
+
/**
|
|
84
|
+
* Path to the canonical threadline outbox — every outbound threadline
|
|
85
|
+
* message sent via `/threadline/relay-send` is appended here, regardless
|
|
86
|
+
* of delivery path (local-delivery or relay-delivery). Read by the
|
|
87
|
+
* dashboard observability tab so the conversation view can render BOTH
|
|
88
|
+
* sides of an agent-to-agent thread.
|
|
89
|
+
*/
|
|
90
|
+
get canonicalOutboxPath(): string;
|
|
83
91
|
/**
|
|
84
92
|
* Append an HMAC-signed entry to the canonical threadline inbox at
|
|
85
93
|
* `.instar/threadline/inbox.jsonl.active`. Called once at relay-ingest before
|
|
@@ -98,6 +106,33 @@ export declare class ListenerSessionManager {
|
|
|
98
106
|
text: string;
|
|
99
107
|
messageId?: string;
|
|
100
108
|
}): InboxEntry;
|
|
109
|
+
/**
|
|
110
|
+
* Append an HMAC-signed entry to the canonical threadline outbox at
|
|
111
|
+
* `.instar/threadline/outbox.jsonl.active`. Mirror of
|
|
112
|
+
* `appendCanonicalInboxEntry` — same shape, same key, written from the
|
|
113
|
+
* `/threadline/relay-send` route on every successful outbound delivery
|
|
114
|
+
* (local or relay) so the dashboard observability tab can render both
|
|
115
|
+
* sides of a conversation.
|
|
116
|
+
*/
|
|
117
|
+
appendCanonicalOutboxEntry(opts: {
|
|
118
|
+
/** This agent's identifier (the sender). */
|
|
119
|
+
from: string;
|
|
120
|
+
/** Display name of this agent. */
|
|
121
|
+
senderName: string;
|
|
122
|
+
/** Target agent fingerprint or name. */
|
|
123
|
+
to: string;
|
|
124
|
+
/** Display name of the target. */
|
|
125
|
+
recipientName: string;
|
|
126
|
+
threadId: string;
|
|
127
|
+
text: string;
|
|
128
|
+
messageId?: string;
|
|
129
|
+
/** Delivery outcome from /threadline/relay-send (e.g. "accepted", "queued (no live session)"). */
|
|
130
|
+
outcome?: string;
|
|
131
|
+
}): InboxEntry & {
|
|
132
|
+
to: string;
|
|
133
|
+
recipientName: string;
|
|
134
|
+
outcome?: string;
|
|
135
|
+
};
|
|
101
136
|
/**
|
|
102
137
|
* Write a message to the inbox file.
|
|
103
138
|
* Called by the server process when a message is routed to the warm listener.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListenerSessionManager.d.ts","sourceRoot":"","sources":["../../src/threadline/ListenerSessionManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ListenerSessionManager.d.ts","sourceRoot":"","sources":["../../src/threadline/ListenerSessionManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -70,6 +70,16 @@ export class ListenerSessionManager {
|
|
|
70
70
|
get canonicalInboxPath() {
|
|
71
71
|
return path.join(this.stateDir, 'threadline', 'inbox.jsonl.active');
|
|
72
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* Path to the canonical threadline outbox — every outbound threadline
|
|
75
|
+
* message sent via `/threadline/relay-send` is appended here, regardless
|
|
76
|
+
* of delivery path (local-delivery or relay-delivery). Read by the
|
|
77
|
+
* dashboard observability tab so the conversation view can render BOTH
|
|
78
|
+
* sides of an agent-to-agent thread.
|
|
79
|
+
*/
|
|
80
|
+
get canonicalOutboxPath() {
|
|
81
|
+
return path.join(this.stateDir, 'threadline', 'outbox.jsonl.active');
|
|
82
|
+
}
|
|
73
83
|
// ── Write to Inbox ───────────────────────────────────────────────
|
|
74
84
|
/**
|
|
75
85
|
* Append an HMAC-signed entry to the canonical threadline inbox at
|
|
@@ -101,6 +111,37 @@ export class ListenerSessionManager {
|
|
|
101
111
|
fs.appendFileSync(inboxPath, JSON.stringify(fullEntry) + '\n', { mode: 0o600 });
|
|
102
112
|
return fullEntry;
|
|
103
113
|
}
|
|
114
|
+
/**
|
|
115
|
+
* Append an HMAC-signed entry to the canonical threadline outbox at
|
|
116
|
+
* `.instar/threadline/outbox.jsonl.active`. Mirror of
|
|
117
|
+
* `appendCanonicalInboxEntry` — same shape, same key, written from the
|
|
118
|
+
* `/threadline/relay-send` route on every successful outbound delivery
|
|
119
|
+
* (local or relay) so the dashboard observability tab can render both
|
|
120
|
+
* sides of a conversation.
|
|
121
|
+
*/
|
|
122
|
+
appendCanonicalOutboxEntry(opts) {
|
|
123
|
+
const entryData = {
|
|
124
|
+
id: opts.messageId || crypto.randomUUID(),
|
|
125
|
+
timestamp: new Date().toISOString(),
|
|
126
|
+
from: opts.from,
|
|
127
|
+
senderName: opts.senderName,
|
|
128
|
+
trustLevel: 'self',
|
|
129
|
+
threadId: opts.threadId,
|
|
130
|
+
text: opts.text,
|
|
131
|
+
to: opts.to,
|
|
132
|
+
recipientName: opts.recipientName,
|
|
133
|
+
outcome: opts.outcome,
|
|
134
|
+
};
|
|
135
|
+
const hmac = this.computeHMAC(entryData);
|
|
136
|
+
const fullEntry = { ...entryData, hmac };
|
|
137
|
+
const outboxPath = this.canonicalOutboxPath;
|
|
138
|
+
const outboxDir = path.dirname(outboxPath);
|
|
139
|
+
if (!fs.existsSync(outboxDir)) {
|
|
140
|
+
fs.mkdirSync(outboxDir, { recursive: true });
|
|
141
|
+
}
|
|
142
|
+
fs.appendFileSync(outboxPath, JSON.stringify(fullEntry) + '\n', { mode: 0o600 });
|
|
143
|
+
return fullEntry;
|
|
144
|
+
}
|
|
104
145
|
/**
|
|
105
146
|
* Write a message to the inbox file.
|
|
106
147
|
* Called by the server process when a message is routed to the warm listener.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListenerSessionManager.js","sourceRoot":"","sources":["../../src/threadline/ListenerSessionManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ListenerSessionManager.js","sourceRoot":"","sources":["../../src/threadline/ListenerSessionManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TelegramBridge — mirrors threadline messages into per-thread Telegram topics.
|
|
3
|
+
*
|
|
4
|
+
* The bridge gives Justin visibility into agent-to-agent conversations:
|
|
5
|
+
* every inbound and outbound threadline message gets relayed into a
|
|
6
|
+
* dedicated Telegram topic so he can watch the exchange in real time.
|
|
7
|
+
*
|
|
8
|
+
* **Relay-only.** The bridge is a pure observer — it never blocks, gates,
|
|
9
|
+
* or vetoes a message. The blocking authority lives in TelegramBridgeConfig
|
|
10
|
+
* (the dashboard toggles + allow/deny list). The bridge simply asks the
|
|
11
|
+
* config "should I post?" and, if yes, posts.
|
|
12
|
+
*
|
|
13
|
+
* **No double-fire.** The bridge does NOT use the existing `telegram-reply`
|
|
14
|
+
* pipeline (which is for agent → user replies). It writes directly through
|
|
15
|
+
* the TelegramAdapter primitives `findOrCreateForumTopic` + `sendToTopic`,
|
|
16
|
+
* and persists thread → topic bindings in
|
|
17
|
+
* `.instar/threadline/telegram-bridge-bindings.json`.
|
|
18
|
+
*
|
|
19
|
+
* **Does NOT replace spawn-session.** The relay handler in server.ts still
|
|
20
|
+
* spawns Claude Code sessions for inbound messages. The bridge runs
|
|
21
|
+
* alongside that path; it's purely additive for user visibility.
|
|
22
|
+
*
|
|
23
|
+
* Topic naming: `{localAgent}↔{remoteAgentName} — {subject}` (truncated to
|
|
24
|
+
* Telegram's 128-char limit). Subject defaults to the first ~40 chars of
|
|
25
|
+
* the inbound message when no explicit subject is supplied.
|
|
26
|
+
*/
|
|
27
|
+
import type { TelegramBridgeConfig } from './TelegramBridgeConfig.js';
|
|
28
|
+
export declare const MAX_BRIDGE_MESSAGE_BODY = 3800;
|
|
29
|
+
export interface TelegramBridgeBinding {
|
|
30
|
+
threadId: string;
|
|
31
|
+
topicId: number;
|
|
32
|
+
remoteAgent: string;
|
|
33
|
+
topicName: string;
|
|
34
|
+
createdAt: string;
|
|
35
|
+
lastMessageAt: string;
|
|
36
|
+
}
|
|
37
|
+
export interface TelegramBridgeBindingsFile {
|
|
38
|
+
version: 1;
|
|
39
|
+
bindings: TelegramBridgeBinding[];
|
|
40
|
+
}
|
|
41
|
+
/** Subset of TelegramAdapter the bridge needs — keeps tests easy to mock. */
|
|
42
|
+
export interface TelegramSink {
|
|
43
|
+
findOrCreateForumTopic(name: string, iconColor?: number): Promise<{
|
|
44
|
+
topicId: number;
|
|
45
|
+
name: string;
|
|
46
|
+
reused: boolean;
|
|
47
|
+
}>;
|
|
48
|
+
sendToTopic(topicId: number, text: string, options?: {
|
|
49
|
+
silent?: boolean;
|
|
50
|
+
skipStallClear?: boolean;
|
|
51
|
+
}): Promise<{
|
|
52
|
+
ok: boolean;
|
|
53
|
+
messageId?: number;
|
|
54
|
+
reason?: string;
|
|
55
|
+
} | unknown>;
|
|
56
|
+
}
|
|
57
|
+
export interface BridgeInboundEvent {
|
|
58
|
+
threadId: string;
|
|
59
|
+
remoteAgent: string;
|
|
60
|
+
remoteAgentName?: string;
|
|
61
|
+
text: string;
|
|
62
|
+
subject?: string;
|
|
63
|
+
messageId?: string;
|
|
64
|
+
timestamp?: string;
|
|
65
|
+
}
|
|
66
|
+
export interface BridgeOutboundEvent {
|
|
67
|
+
threadId: string;
|
|
68
|
+
remoteAgent: string;
|
|
69
|
+
remoteAgentName?: string;
|
|
70
|
+
text: string;
|
|
71
|
+
messageId?: string;
|
|
72
|
+
timestamp?: string;
|
|
73
|
+
/** Optional preview of the agent reply being mirrored (e.g. truncated body). */
|
|
74
|
+
outcome?: string;
|
|
75
|
+
}
|
|
76
|
+
export interface TelegramBridgeOptions {
|
|
77
|
+
stateDir: string;
|
|
78
|
+
localAgentName: string;
|
|
79
|
+
config: TelegramBridgeConfig;
|
|
80
|
+
telegram: TelegramSink;
|
|
81
|
+
/** Optional override for the bindings filename (testing). */
|
|
82
|
+
bindingsFilename?: string;
|
|
83
|
+
/** Logger; defaults to console. */
|
|
84
|
+
log?: {
|
|
85
|
+
info: (msg: string) => void;
|
|
86
|
+
warn: (msg: string) => void;
|
|
87
|
+
error: (msg: string) => void;
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
export declare class TelegramBridge {
|
|
91
|
+
private readonly stateDir;
|
|
92
|
+
private readonly bindingsPath;
|
|
93
|
+
private readonly localAgentName;
|
|
94
|
+
private readonly cfg;
|
|
95
|
+
private readonly telegram;
|
|
96
|
+
private readonly log;
|
|
97
|
+
private bindings;
|
|
98
|
+
constructor(opts: TelegramBridgeOptions);
|
|
99
|
+
private loadBindings;
|
|
100
|
+
private persistBindings;
|
|
101
|
+
/** Public for inspection (dashboard, observability tab). */
|
|
102
|
+
getBindings(): TelegramBridgeBinding[];
|
|
103
|
+
/** Public for the observability tab to query a single binding. */
|
|
104
|
+
getBindingForThread(threadId: string): TelegramBridgeBinding | null;
|
|
105
|
+
/** Build the topic name for a thread — used at create time. Exposed for tests. */
|
|
106
|
+
buildTopicName(remoteAgentName: string, subject?: string): string;
|
|
107
|
+
/**
|
|
108
|
+
* Mirror an inbound threadline message into Telegram.
|
|
109
|
+
*
|
|
110
|
+
* Decision tree:
|
|
111
|
+
* 1. If the bridge config disallows mirroring AND no existing topic
|
|
112
|
+
* → no-op.
|
|
113
|
+
* 2. If a topic exists for this thread → post (subject to mirrorExisting).
|
|
114
|
+
* 3. Else (no existing topic) → check shouldAutoCreateTopic; if yes,
|
|
115
|
+
* create + post; else no-op.
|
|
116
|
+
*
|
|
117
|
+
* Failure-tolerant — never throws. Returns `{posted, topicId}` for
|
|
118
|
+
* observability.
|
|
119
|
+
*/
|
|
120
|
+
mirrorInbound(evt: BridgeInboundEvent): Promise<{
|
|
121
|
+
posted: boolean;
|
|
122
|
+
topicId?: number;
|
|
123
|
+
reason?: string;
|
|
124
|
+
}>;
|
|
125
|
+
/**
|
|
126
|
+
* Mirror an outbound threadline message (sent via threadline_send) into
|
|
127
|
+
* the corresponding Telegram topic. Outbound mirroring requires an
|
|
128
|
+
* existing binding — outbound traffic alone never auto-creates topics
|
|
129
|
+
* (the user opted in via inbound or by manual action).
|
|
130
|
+
*/
|
|
131
|
+
mirrorOutbound(evt: BridgeOutboundEvent): Promise<{
|
|
132
|
+
posted: boolean;
|
|
133
|
+
topicId?: number;
|
|
134
|
+
reason?: string;
|
|
135
|
+
}>;
|
|
136
|
+
private formatInboundBody;
|
|
137
|
+
private formatOutboundBody;
|
|
138
|
+
private postSafe;
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=TelegramBridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TelegramBridge.d.ts","sourceRoot":"","sources":["../../src/threadline/TelegramBridge.ts"],"names":[],"mappings":"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"}
|