@rowger_go/chatu 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/.github/workflows/ci.yml +30 -0
  2. package/.github/workflows/publish.yml +55 -0
  3. package/INSTALL.md +285 -0
  4. package/INSTALL.zh.md +285 -0
  5. package/LICENSE +21 -0
  6. package/README.md +293 -0
  7. package/README.zh.md +293 -0
  8. package/dist/index.d.ts +96 -0
  9. package/dist/index.d.ts.map +1 -0
  10. package/dist/index.js +1381 -0
  11. package/dist/index.js.map +1 -0
  12. package/dist/index.test.d.ts +5 -0
  13. package/dist/index.test.d.ts.map +1 -0
  14. package/dist/index.test.js +334 -0
  15. package/dist/index.test.js.map +1 -0
  16. package/dist/sdk/adapters/cache.d.ts +94 -0
  17. package/dist/sdk/adapters/cache.d.ts.map +1 -0
  18. package/dist/sdk/adapters/cache.js +158 -0
  19. package/dist/sdk/adapters/cache.js.map +1 -0
  20. package/dist/sdk/adapters/cache.test.d.ts +14 -0
  21. package/dist/sdk/adapters/cache.test.d.ts.map +1 -0
  22. package/dist/sdk/adapters/cache.test.js +178 -0
  23. package/dist/sdk/adapters/cache.test.js.map +1 -0
  24. package/dist/sdk/adapters/default.d.ts +24 -0
  25. package/dist/sdk/adapters/default.d.ts.map +1 -0
  26. package/dist/sdk/adapters/default.js +151 -0
  27. package/dist/sdk/adapters/default.js.map +1 -0
  28. package/dist/sdk/adapters/webhub.d.ts +336 -0
  29. package/dist/sdk/adapters/webhub.d.ts.map +1 -0
  30. package/dist/sdk/adapters/webhub.js +663 -0
  31. package/dist/sdk/adapters/webhub.js.map +1 -0
  32. package/dist/sdk/adapters/websocket.d.ts +133 -0
  33. package/dist/sdk/adapters/websocket.d.ts.map +1 -0
  34. package/dist/sdk/adapters/websocket.js +314 -0
  35. package/dist/sdk/adapters/websocket.js.map +1 -0
  36. package/dist/sdk/core/channel.d.ts +104 -0
  37. package/dist/sdk/core/channel.d.ts.map +1 -0
  38. package/dist/sdk/core/channel.js +158 -0
  39. package/dist/sdk/core/channel.js.map +1 -0
  40. package/dist/sdk/index.d.ts +27 -0
  41. package/dist/sdk/index.d.ts.map +1 -0
  42. package/dist/sdk/index.js +33 -0
  43. package/dist/sdk/index.js.map +1 -0
  44. package/dist/sdk/types/adapters.d.ts +128 -0
  45. package/dist/sdk/types/adapters.d.ts.map +1 -0
  46. package/dist/sdk/types/adapters.js +10 -0
  47. package/dist/sdk/types/adapters.js.map +1 -0
  48. package/dist/sdk/types/channel.d.ts +270 -0
  49. package/dist/sdk/types/channel.d.ts.map +1 -0
  50. package/dist/sdk/types/channel.js +36 -0
  51. package/dist/sdk/types/channel.js.map +1 -0
  52. package/docs/channel/01-overview.md +117 -0
  53. package/docs/channel/02-configuration.md +138 -0
  54. package/docs/channel/03-capabilities.md +86 -0
  55. package/docs/channel/04-api-reference.md +394 -0
  56. package/docs/channel/05-message-protocol.md +194 -0
  57. package/docs/channel/06-security.md +83 -0
  58. package/docs/channel/README.md +30 -0
  59. package/docs/sdk/README.md +13 -0
  60. package/docs/sdk/v2026.1.29-v2026.2.19.md +630 -0
  61. package/jest.config.js +19 -0
  62. package/openclaw.plugin.json +113 -0
  63. package/package.json +74 -0
  64. package/run-poll.mjs +209 -0
  65. package/scripts/reload-plugin.sh +78 -0
  66. package/src/index.test.ts +432 -0
  67. package/src/index.ts +1638 -0
  68. package/src/sdk/adapters/cache.test.ts +205 -0
  69. package/src/sdk/adapters/cache.ts +193 -0
  70. package/src/sdk/adapters/default.ts +196 -0
  71. package/src/sdk/adapters/webhub.ts +857 -0
  72. package/src/sdk/adapters/websocket.ts +378 -0
  73. package/src/sdk/core/channel.ts +230 -0
  74. package/src/sdk/index.ts +36 -0
  75. package/src/sdk/types/adapters.ts +169 -0
  76. package/src/sdk/types/channel.ts +346 -0
  77. package/tsconfig.json +31 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * T055 — Gateway lifecycle: back-off behavior and abort-signal shutdown tests
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,334 @@
1
+ "use strict";
2
+ /**
3
+ * T055 — Gateway lifecycle: back-off behavior and abort-signal shutdown tests
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const index_1 = require("./index");
7
+ // ─── computeBackoffMs ──────────────────────────────────────────────────────
8
+ describe('computeBackoffMs (exponential back-off formula)', () => {
9
+ const BASE = 2000;
10
+ const MAX = 30000;
11
+ it('returns baseMs (no back-off) when consecutiveErrors is 0', () => {
12
+ expect((0, index_1.computeBackoffMs)(0, BASE, MAX)).toBe(2000);
13
+ });
14
+ it('doubles to 4 s after 1 consecutive error', () => {
15
+ expect((0, index_1.computeBackoffMs)(1, BASE, MAX)).toBe(4000);
16
+ });
17
+ it('doubles to 8 s after 2 consecutive errors', () => {
18
+ expect((0, index_1.computeBackoffMs)(2, BASE, MAX)).toBe(8000);
19
+ });
20
+ it('doubles to 16 s after 3 consecutive errors', () => {
21
+ expect((0, index_1.computeBackoffMs)(3, BASE, MAX)).toBe(16000);
22
+ });
23
+ it('caps at maxMs (30 s) after 4+ consecutive errors', () => {
24
+ expect((0, index_1.computeBackoffMs)(4, BASE, MAX)).toBe(MAX);
25
+ expect((0, index_1.computeBackoffMs)(10, BASE, MAX)).toBe(MAX);
26
+ expect((0, index_1.computeBackoffMs)(100, BASE, MAX)).toBe(MAX);
27
+ });
28
+ it('uses default baseMs = 2000 when not specified', () => {
29
+ expect((0, index_1.computeBackoffMs)(1)).toBe(4000);
30
+ });
31
+ it('uses default maxMs = 30000 when not specified', () => {
32
+ expect((0, index_1.computeBackoffMs)(10)).toBe(30000);
33
+ });
34
+ it('works with a custom base and max', () => {
35
+ expect((0, index_1.computeBackoffMs)(0, 500, 5000)).toBe(500);
36
+ expect((0, index_1.computeBackoffMs)(1, 500, 5000)).toBe(1000);
37
+ expect((0, index_1.computeBackoffMs)(3, 500, 5000)).toBe(4000);
38
+ expect((0, index_1.computeBackoffMs)(4, 500, 5000)).toBe(5000); // capped
39
+ });
40
+ });
41
+ // ─── Abort-signal shutdown ─────────────────────────────────────────────────
42
+ /**
43
+ * Minimal inline poll loop that mirrors the pattern used in index.ts.
44
+ * Runs until abortSignal fires, with an optional onTick callback.
45
+ */
46
+ async function runMiniPollLoop(opts) {
47
+ const { abortSignal, intervalMs, onTick, maxTicks = Infinity } = opts;
48
+ let ticks = 0;
49
+ while (!abortSignal.aborted && ticks < maxTicks) {
50
+ await new Promise((resolve) => {
51
+ const timer = setTimeout(resolve, intervalMs);
52
+ abortSignal.addEventListener('abort', () => { clearTimeout(timer); resolve(); }, { once: true });
53
+ });
54
+ if (abortSignal.aborted)
55
+ break;
56
+ ticks++;
57
+ onTick?.();
58
+ }
59
+ return { ticks, abortedCleanly: abortSignal.aborted };
60
+ }
61
+ describe('Poll loop abort-signal shutdown', () => {
62
+ jest.setTimeout(5000); // guard against accidental hangs in these tests
63
+ it('exits immediately when signal is already aborted before loop starts', async () => {
64
+ const controller = new AbortController();
65
+ controller.abort(); // pre-abort
66
+ const result = await runMiniPollLoop({
67
+ abortSignal: controller.signal,
68
+ intervalMs: 10,
69
+ maxTicks: 100,
70
+ });
71
+ // Loop should not execute any ticks
72
+ expect(result.ticks).toBe(0);
73
+ expect(result.abortedCleanly).toBe(true);
74
+ });
75
+ it('exits cleanly when signal fires mid-sleep (no dangling timer)', async () => {
76
+ const controller = new AbortController();
77
+ const ticks = [];
78
+ // Abort after a short delay (shorter than the interval so the loop is mid-sleep)
79
+ const abortDelay = 40;
80
+ const loopInterval = 500;
81
+ setTimeout(() => controller.abort(), abortDelay);
82
+ const start = Date.now();
83
+ const result = await runMiniPollLoop({
84
+ abortSignal: controller.signal,
85
+ intervalMs: loopInterval,
86
+ onTick: () => ticks.push(Date.now()),
87
+ });
88
+ const elapsed = Date.now() - start;
89
+ // Should have completed quickly (well under one full interval)
90
+ expect(elapsed).toBeLessThan(loopInterval);
91
+ // No ticks should have fired (abort happened before the sleep completed)
92
+ expect(result.ticks).toBe(0);
93
+ expect(result.abortedCleanly).toBe(true);
94
+ });
95
+ it('processes ticks normally before abort fires', async () => {
96
+ const controller = new AbortController();
97
+ const intervalMs = 20;
98
+ // Abort after ~2.5 ticks worth of time → expect exactly 2 ticks
99
+ setTimeout(() => controller.abort(), intervalMs * 2.5);
100
+ const result = await runMiniPollLoop({
101
+ abortSignal: controller.signal,
102
+ intervalMs,
103
+ });
104
+ expect(result.ticks).toBe(2);
105
+ expect(result.abortedCleanly).toBe(true);
106
+ });
107
+ it('respects maxTicks guard — exits via maxTicks without abort', async () => {
108
+ const controller = new AbortController();
109
+ const result = await runMiniPollLoop({
110
+ abortSignal: controller.signal,
111
+ intervalMs: 5,
112
+ maxTicks: 3,
113
+ });
114
+ expect(result.ticks).toBe(3);
115
+ expect(result.abortedCleanly).toBe(false);
116
+ });
117
+ });
118
+ // ─── T037: WS connection lifecycle integration ─────────────────────────────
119
+ /**
120
+ * T037 — WebSocket + cache integration lifecycle tests.
121
+ *
122
+ * Tests the interaction between WebSocketAdapter and MessageCache as used
123
+ * inside wsConnectionLoop (mocked here for unit-test isolation):
124
+ * 1. First connection: adapter.connect() is called; cache.flush() is NOT called
125
+ * 2. Reconnect: onReconnected callback triggers cache.flush()
126
+ * 3. Quick-register: axios.post is called with correct URL + payload; returned
127
+ * channelId/accessToken are usable for subsequent WS adapter instantiation
128
+ */
129
+ jest.mock('./sdk/adapters/websocket', () => {
130
+ return {
131
+ WebSocketAdapter: jest.fn().mockImplementation(() => ({
132
+ connect: jest.fn(),
133
+ disconnect: jest.fn(),
134
+ onMessage: jest.fn(),
135
+ onStatusChange: jest.fn(),
136
+ onReconnected: jest.fn(),
137
+ send: jest.fn(),
138
+ })),
139
+ };
140
+ });
141
+ jest.mock('./sdk/adapters/cache', () => {
142
+ return {
143
+ MessageCache: jest.fn().mockImplementation(() => ({
144
+ enqueue: jest.fn(),
145
+ flush: jest.fn().mockResolvedValue(0),
146
+ ack: jest.fn(),
147
+ get size() { return 0; },
148
+ })),
149
+ };
150
+ });
151
+ jest.mock('axios', () => ({
152
+ post: jest.fn(),
153
+ get: jest.fn(),
154
+ default: {
155
+ post: jest.fn(),
156
+ get: jest.fn(),
157
+ },
158
+ }), { virtual: true });
159
+ describe('WS connection lifecycle (T037)', () => {
160
+ const { WebSocketAdapter } = require('./sdk/adapters/websocket');
161
+ const { MessageCache } = require('./sdk/adapters/cache');
162
+ const axios = require('axios');
163
+ beforeEach(() => {
164
+ jest.clearAllMocks();
165
+ });
166
+ it('WebSocketAdapter is a constructor that returns an adapter object', () => {
167
+ const adapter = new WebSocketAdapter({ channelId: 'ch-1', accessToken: 'tok', webhubUrl: 'ws://localhost/ws' });
168
+ expect(typeof adapter.connect).toBe('function');
169
+ expect(typeof adapter.onReconnected).toBe('function');
170
+ expect(typeof adapter.onMessage).toBe('function');
171
+ });
172
+ it('onReconnected triggers cache.flush when registered', async () => {
173
+ const adapter = new WebSocketAdapter({});
174
+ const cache = new MessageCache({});
175
+ // Simulate what wsConnectionLoop does: register onReconnected → flush cache
176
+ const flushSpy = cache.flush;
177
+ const reconnectCallback = jest.fn(async () => {
178
+ await cache.flush(jest.fn());
179
+ });
180
+ adapter.onReconnected(reconnectCallback);
181
+ // Simulate the adapter firing the reconnect callback
182
+ const registeredCallback = adapter.onReconnected.mock.calls[0][0];
183
+ await registeredCallback();
184
+ expect(flushSpy).toHaveBeenCalledTimes(1);
185
+ });
186
+ it('cache.enqueue is called when message delivery fails', async () => {
187
+ const cache = new MessageCache({});
188
+ const enqueueSpy = cache.enqueue;
189
+ // Simulate failed delivery → enqueue
190
+ const failedMsg = { id: 'msg-1', channelId: 'ch-1', content: 'hello', enqueuedAt: Date.now(), status: 'pending' };
191
+ cache.enqueue(failedMsg);
192
+ expect(enqueueSpy).toHaveBeenCalledWith(failedMsg);
193
+ });
194
+ it('quick-register: axios.post called with key+url payload', async () => {
195
+ const axiosPost = axios.post;
196
+ axiosPost.mockResolvedValue({ data: { success: true, data: { channelId: 'ch-abc', accessToken: 'tok-xyz' } } });
197
+ const apiUrl = 'http://localhost:3000';
198
+ const key = 'my-channel-key';
199
+ const url = apiUrl;
200
+ await axios.post(`${apiUrl}/api/channel/quick-register`, { key, url });
201
+ expect(axiosPost).toHaveBeenCalledWith(`${apiUrl}/api/channel/quick-register`, { key, url });
202
+ });
203
+ it('quick-register success: returned credentials are used for WS adapter', async () => {
204
+ const axiosPost = axios.post;
205
+ const channelId = 'ch-from-qr';
206
+ const accessToken = 'tok-from-qr';
207
+ axiosPost.mockResolvedValue({ data: { success: true, data: { channelId, accessToken } } });
208
+ const resp = await axios.post('http://example.com/api/channel/quick-register', { key: 'k', url: 'http://u' });
209
+ const { channelId: retId, accessToken: retTok } = resp.data.data;
210
+ // Use returned credentials to create a WS adapter (matches index.ts behavior)
211
+ const adapter = new WebSocketAdapter({ channelId: retId, accessToken: retTok, webhubUrl: 'ws://example.com/api/channel/ws' });
212
+ adapter.connect();
213
+ expect(adapter.connect).toHaveBeenCalledTimes(1);
214
+ expect(retId).toBe(channelId);
215
+ expect(retTok).toBe(accessToken);
216
+ });
217
+ });
218
+ // ─── T042: Streaming relay (relayStreamChunk / relayStreamDone) ────────────
219
+ const index_2 = require("./index");
220
+ describe('Streaming relay (T042)', () => {
221
+ const API_URL = 'http://localhost:3000';
222
+ const ACCESS_TOKEN = 'wh_test_token_abc';
223
+ const MESSAGE_ID = 'msg-stream-001';
224
+ let mockFetch;
225
+ beforeEach(() => {
226
+ mockFetch = jest.fn();
227
+ global.fetch = mockFetch;
228
+ });
229
+ afterEach(() => {
230
+ jest.restoreAllMocks();
231
+ });
232
+ // ── relayStreamChunk ──────────────────────────────────────────────────────
233
+ describe('relayStreamChunk', () => {
234
+ it('POSTs chunk to /api/channel/stream/chunk with Bearer token', async () => {
235
+ mockFetch.mockResolvedValue({
236
+ ok: true,
237
+ json: async () => ({ ok: true }),
238
+ text: async () => '',
239
+ });
240
+ const result = await (0, index_2.relayStreamChunk)(API_URL, ACCESS_TOKEN, MESSAGE_ID, 0, 'Hello ');
241
+ expect(result.ok).toBe(true);
242
+ expect(mockFetch).toHaveBeenCalledWith(`${API_URL}/api/channel/stream/chunk`, expect.objectContaining({
243
+ method: 'POST',
244
+ headers: expect.objectContaining({
245
+ Authorization: `Bearer ${ACCESS_TOKEN}`,
246
+ 'Content-Type': 'application/json',
247
+ }),
248
+ body: JSON.stringify({ messageId: MESSAGE_ID, seq: 0, delta: 'Hello ' }),
249
+ }));
250
+ });
251
+ it('returns ok: false when server responds with non-2xx', async () => {
252
+ mockFetch.mockResolvedValue({
253
+ ok: false,
254
+ status: 401,
255
+ text: async () => '{"error":"INVALID_TOKEN"}',
256
+ });
257
+ const result = await (0, index_2.relayStreamChunk)(API_URL, ACCESS_TOKEN, MESSAGE_ID, 1, 'world');
258
+ expect(result.ok).toBe(false);
259
+ expect(result.error).toContain('401');
260
+ });
261
+ it('returns ok: false when fetch throws (network error)', async () => {
262
+ mockFetch.mockRejectedValue(new Error('Network failure'));
263
+ const result = await (0, index_2.relayStreamChunk)(API_URL, ACCESS_TOKEN, MESSAGE_ID, 0, 'test');
264
+ expect(result.ok).toBe(false);
265
+ expect(result.error).toContain('Network failure');
266
+ });
267
+ it('sends seq and delta correctly for each chunk index', async () => {
268
+ mockFetch.mockResolvedValue({ ok: true, text: async () => '' });
269
+ await (0, index_2.relayStreamChunk)(API_URL, ACCESS_TOKEN, MESSAGE_ID, 5, 'delta-chunk');
270
+ const callBody = JSON.parse(mockFetch.mock.calls[0][1].body);
271
+ expect(callBody.seq).toBe(5);
272
+ expect(callBody.delta).toBe('delta-chunk');
273
+ expect(callBody.messageId).toBe(MESSAGE_ID);
274
+ });
275
+ });
276
+ // ── relayStreamDone ───────────────────────────────────────────────────────
277
+ describe('relayStreamDone', () => {
278
+ it('POSTs to /api/channel/stream/done with Bearer token', async () => {
279
+ mockFetch.mockResolvedValue({
280
+ ok: true,
281
+ text: async () => '',
282
+ });
283
+ const result = await (0, index_2.relayStreamDone)(API_URL, ACCESS_TOKEN, MESSAGE_ID, 3);
284
+ expect(result.ok).toBe(true);
285
+ expect(mockFetch).toHaveBeenCalledWith(`${API_URL}/api/channel/stream/done`, expect.objectContaining({
286
+ method: 'POST',
287
+ headers: expect.objectContaining({
288
+ Authorization: `Bearer ${ACCESS_TOKEN}`,
289
+ }),
290
+ body: JSON.stringify({ messageId: MESSAGE_ID, totalSeq: 3 }),
291
+ }));
292
+ });
293
+ it('returns ok: false when server responds with non-2xx', async () => {
294
+ mockFetch.mockResolvedValue({
295
+ ok: false,
296
+ status: 400,
297
+ text: async () => '{"error":"MISSING_FIELDS"}',
298
+ });
299
+ const result = await (0, index_2.relayStreamDone)(API_URL, ACCESS_TOKEN, MESSAGE_ID, 3);
300
+ expect(result.ok).toBe(false);
301
+ expect(result.error).toContain('400');
302
+ });
303
+ it('returns ok: false when fetch throws', async () => {
304
+ mockFetch.mockRejectedValue(new TypeError('fetch failed'));
305
+ const result = await (0, index_2.relayStreamDone)(API_URL, ACCESS_TOKEN, MESSAGE_ID, 5);
306
+ expect(result.ok).toBe(false);
307
+ expect(result.error).toBeDefined();
308
+ });
309
+ it('sends totalSeq correctly', async () => {
310
+ mockFetch.mockResolvedValue({ ok: true, text: async () => '' });
311
+ await (0, index_2.relayStreamDone)(API_URL, ACCESS_TOKEN, MESSAGE_ID, 7);
312
+ const callBody = JSON.parse(mockFetch.mock.calls[0][1].body);
313
+ expect(callBody.totalSeq).toBe(7);
314
+ expect(callBody.messageId).toBe(MESSAGE_ID);
315
+ });
316
+ });
317
+ // ── Sequential chunk→done relay ───────────────────────────────────────────
318
+ describe('sequential chunk + done relay', () => {
319
+ it('sends 3 chunks then done, fetch called 4 times in order', async () => {
320
+ mockFetch.mockResolvedValue({ ok: true, text: async () => '' });
321
+ await (0, index_2.relayStreamChunk)(API_URL, ACCESS_TOKEN, MESSAGE_ID, 0, 'Hello');
322
+ await (0, index_2.relayStreamChunk)(API_URL, ACCESS_TOKEN, MESSAGE_ID, 1, ' ');
323
+ await (0, index_2.relayStreamChunk)(API_URL, ACCESS_TOKEN, MESSAGE_ID, 2, 'World');
324
+ await (0, index_2.relayStreamDone)(API_URL, ACCESS_TOKEN, MESSAGE_ID, 3);
325
+ expect(mockFetch).toHaveBeenCalledTimes(4);
326
+ const urls = mockFetch.mock.calls.map((c) => c[0]);
327
+ expect(urls[0]).toContain('/stream/chunk');
328
+ expect(urls[1]).toContain('/stream/chunk');
329
+ expect(urls[2]).toContain('/stream/chunk');
330
+ expect(urls[3]).toContain('/stream/done');
331
+ });
332
+ });
333
+ });
334
+ //# sourceMappingURL=index.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,94 @@
1
+ /******************************************************************
2
+ * Plugin Local Message Cache (cache.ts)
3
+ *
4
+ * In-memory FIFO queue for outbound messages that couldn't be sent
5
+ * while the WebSocket was disconnected.
6
+ *
7
+ * Key behaviour (spec FR-007/US2):
8
+ * - Capacity limited to CHATU_CACHE_MAX (default 1000)
9
+ * - On overflow: oldest item is evicted; PluginLogger.warn is called
10
+ * with a SINGLE STRING (constitution §VII — NON-NEGOTIABLE)
11
+ * - Optional JSON file persistence via CHATU_CACHE_FILE env var
12
+ * - flush(sendFn) sends items in FIFO order; ack(id) marks delivered
13
+ *
14
+ * @see specs/001-plugin-channel-realtime/tasks.md T013
15
+ ******************************************************************/
16
+ /** Minimal subset of PluginLogger used here (§VII: warn accepts single string). */
17
+ export interface PluginLoggerSubset {
18
+ warn: (msg: string) => void;
19
+ info?: (msg: string) => void;
20
+ }
21
+ /** A cached outbound message entry. */
22
+ export interface CachedMessage {
23
+ id: string;
24
+ channelId: string;
25
+ content: unknown;
26
+ enqueuedAt: number;
27
+ /** 'pending' until ACKed by the server. */
28
+ status: 'pending' | 'submitted';
29
+ }
30
+ export interface CacheOptions {
31
+ /** Max items before evicting the oldest. Defaults to CHATU_CACHE_MAX env or 1000. */
32
+ maxCapacity?: number;
33
+ /** Path for JSON file persistence. Defaults to CHATU_CACHE_FILE env or undefined. */
34
+ filePath?: string;
35
+ /** Logger used for capacity warnings (§VII). */
36
+ logger?: PluginLoggerSubset;
37
+ }
38
+ /**
39
+ * MessageCache — FIFO queue for offline-buffered outbound messages.
40
+ *
41
+ * @example
42
+ * ```typescript
43
+ * const cache = new MessageCache({ logger: api.logger });
44
+ * cache.enqueue({ id: uuid(), channelId: 'wh_ch_xxx', content: { text: 'hello' }, enqueuedAt: Date.now(), status: 'pending' });
45
+ * await cache.flush(async (msg) => adapter.send(msg));
46
+ * ```
47
+ */
48
+ export declare class MessageCache {
49
+ private queue;
50
+ private maxCapacity;
51
+ private filePath;
52
+ private logger;
53
+ constructor(options?: CacheOptions);
54
+ /**
55
+ * Enqueue a message for later delivery.
56
+ * If at capacity, evicts the oldest pending item and logs a warning.
57
+ */
58
+ enqueue(msg: CachedMessage): void;
59
+ /**
60
+ * Flush all 'pending' items in FIFO order by calling sendFn for each.
61
+ * Items that sendFn resolves successfully are marked 'submitted'.
62
+ * Items where sendFn throws remain 'pending' for the next flush.
63
+ *
64
+ * Returns the number of successfully flushed items.
65
+ */
66
+ flush(sendFn: (msg: CachedMessage) => Promise<void>): Promise<number>;
67
+ /**
68
+ * Acknowledge delivery of a message by its id.
69
+ * Removes it from the queue to prevent duplicate re-sends.
70
+ */
71
+ ack(id: string): void;
72
+ /**
73
+ * Returns a snapshot of the current queue (read-only copy).
74
+ */
75
+ snapshot(): ReadonlyArray<Readonly<CachedMessage>>;
76
+ /**
77
+ * Number of items currently in the queue.
78
+ */
79
+ get size(): number;
80
+ /**
81
+ * Number of pending (not yet ACKed) items.
82
+ */
83
+ get pendingCount(): number;
84
+ /**
85
+ * Persist the current queue to the JSON file (if configured).
86
+ * Errors are silently swallowed to avoid disrupting the main flow.
87
+ */
88
+ private persist;
89
+ /**
90
+ * Load queue from the JSON file on startup (if the file exists).
91
+ */
92
+ private loadFromFile;
93
+ }
94
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/sdk/adapters/cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;oEAcoE;AAKpE,mFAAmF;AACnF,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B;AAED,uCAAuC;AACvC,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,MAAM,EAAE,SAAS,GAAG,WAAW,CAAC;CACjC;AAED,MAAM,WAAW,YAAY;IAC3B,qFAAqF;IACrF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qFAAqF;IACrF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC7B;AAID;;;;;;;;;GASG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,MAAM,CAAiC;gBAEnC,OAAO,GAAE,YAAiB;IAmBtC;;;OAGG;IACH,OAAO,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;IAejC;;;;;;OAMG;IACG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAmB3E;;;OAGG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAQrB;;OAEG;IACH,QAAQ,IAAI,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAIlD;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,IAAI,YAAY,IAAI,MAAM,CAEzB;IAID;;;OAGG;IACH,OAAO,CAAC,OAAO;IAWf;;OAEG;IACH,OAAO,CAAC,YAAY;CAarB"}