@hardlydifficult/chat 1.1.24 → 1.1.26
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/README.md +34 -0
- package/dist/EditableStreamReply.d.ts +4 -2
- package/dist/EditableStreamReply.d.ts.map +1 -1
- package/dist/EditableStreamReply.js +18 -2
- package/dist/EditableStreamReply.js.map +1 -1
- package/dist/Message.d.ts +2 -1
- package/dist/Message.d.ts.map +1 -1
- package/dist/Message.js +3 -2
- package/dist/Message.js.map +1 -1
- package/dist/MessageTracker.d.ts +30 -0
- package/dist/MessageTracker.d.ts.map +1 -0
- package/dist/MessageTracker.js +41 -0
- package/dist/MessageTracker.js.map +1 -0
- package/dist/StreamingReply.d.ts +10 -2
- package/dist/StreamingReply.d.ts.map +1 -1
- package/dist/StreamingReply.js +27 -2
- package/dist/StreamingReply.js.map +1 -1
- package/dist/Thread.d.ts +4 -2
- package/dist/Thread.d.ts.map +1 -1
- package/dist/Thread.js +6 -4
- package/dist/Thread.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -155,6 +155,28 @@ Post a message that the specified user can dismiss by clicking the trash reactio
|
|
|
155
155
|
await channel.postDismissable("Build complete!", user.id);
|
|
156
156
|
```
|
|
157
157
|
|
|
158
|
+
### Message Tracker
|
|
159
|
+
|
|
160
|
+
Track posted messages by key for later editing. Useful for status messages that should be updated in-place (e.g., "Worker disconnected" → "Worker reconnected").
|
|
161
|
+
|
|
162
|
+
```typescript
|
|
163
|
+
import { createMessageTracker } from "@hardlydifficult/chat";
|
|
164
|
+
|
|
165
|
+
const tracker = createMessageTracker((content) => channel.postMessage(content));
|
|
166
|
+
|
|
167
|
+
// Post and track by key
|
|
168
|
+
tracker.post("worker-1", "🔴 Worker disconnected: Server A");
|
|
169
|
+
|
|
170
|
+
// Later, edit the tracked message
|
|
171
|
+
const postedAt = tracker.getPostedAt("worker-1");
|
|
172
|
+
if (postedAt !== undefined) {
|
|
173
|
+
const downtime = Date.now() - postedAt.getTime();
|
|
174
|
+
tracker.edit("worker-1", `🟢 Worker reconnected: Server A (down for ${downtime}ms)`);
|
|
175
|
+
}
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
`post()` is fire-and-forget. `edit()` handles the race where the edit arrives before the original post completes — it chains on the stored promise.
|
|
179
|
+
|
|
158
180
|
### Threads
|
|
159
181
|
|
|
160
182
|
Create a thread, post messages, and listen for replies. The `Thread` object is the primary interface — all threading internals are hidden.
|
|
@@ -222,6 +244,7 @@ stream.append("output line 2\n");
|
|
|
222
244
|
// ... text is batched and sent as replies every 2 seconds
|
|
223
245
|
|
|
224
246
|
await stream.stop(); // flushes remaining text and stops the timer
|
|
247
|
+
console.log(stream.content); // full accumulated text across all flushes
|
|
225
248
|
```
|
|
226
249
|
|
|
227
250
|
`flush()` sends buffered text immediately without waiting for the next interval:
|
|
@@ -231,6 +254,17 @@ stream.append("important output");
|
|
|
231
254
|
await stream.flush();
|
|
232
255
|
```
|
|
233
256
|
|
|
257
|
+
Both `streamReply()`, `thread.stream()`, and `thread.editableStream()` accept an optional `AbortSignal` to automatically stop the stream on cancellation. After abort, `append()` becomes a no-op and `stop()` is called automatically.
|
|
258
|
+
|
|
259
|
+
```typescript
|
|
260
|
+
const controller = new AbortController();
|
|
261
|
+
const stream = thread.stream(2000, controller.signal);
|
|
262
|
+
|
|
263
|
+
stream.append("working...\n");
|
|
264
|
+
controller.abort(); // auto-stops, future appends are ignored
|
|
265
|
+
console.log(stream.content); // "working...\n" — only pre-abort text
|
|
266
|
+
```
|
|
267
|
+
|
|
234
268
|
## Mentions
|
|
235
269
|
|
|
236
270
|
Get channel members and @mention them in messages.
|
|
@@ -18,11 +18,13 @@ export declare class EditableStreamReply {
|
|
|
18
18
|
private lastFlushed;
|
|
19
19
|
private currentMessage;
|
|
20
20
|
private flushing;
|
|
21
|
+
private readonly abortSignal?;
|
|
21
22
|
private intervalId;
|
|
22
|
-
constructor(postFn: (content: string) => Promise<Message>, platform: Platform, flushIntervalMs: number);
|
|
23
|
+
constructor(postFn: (content: string) => Promise<Message>, platform: Platform, flushIntervalMs: number, abortSignal?: AbortSignal);
|
|
23
24
|
/**
|
|
24
25
|
* Append text to the accumulated buffer. The message will be updated
|
|
25
|
-
* on the next flush (either automatic or manual).
|
|
26
|
+
* on the next flush (either automatic or manual). No-op if the stream
|
|
27
|
+
* has been aborted.
|
|
26
28
|
*/
|
|
27
29
|
append(text: string): void;
|
|
28
30
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditableStreamReply.d.ts","sourceRoot":"","sources":["../src/EditableStreamReply.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;;;;;;;;;GAUG;AACH,qBAAa,mBAAmB;
|
|
1
|
+
{"version":3,"file":"EditableStreamReply.d.ts","sourceRoot":"","sources":["../src/EditableStreamReply.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;;;;;;;;;GAUG;AACH,qBAAa,mBAAmB;IAS5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAT3B,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAc;IAC3C,OAAO,CAAC,UAAU,CAA+C;gBAG9C,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,EAC7C,QAAQ,EAAE,QAAQ,EACnC,eAAe,EAAE,MAAM,EACvB,WAAW,CAAC,EAAE,WAAW;IAyB3B;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAO1B;;;OAGG;IACH,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA4B5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAO5B"}
|
|
@@ -20,22 +20,38 @@ class EditableStreamReply {
|
|
|
20
20
|
lastFlushed = "";
|
|
21
21
|
currentMessage = null;
|
|
22
22
|
flushing = false;
|
|
23
|
+
abortSignal;
|
|
23
24
|
intervalId = null;
|
|
24
|
-
constructor(postFn, platform, flushIntervalMs) {
|
|
25
|
+
constructor(postFn, platform, flushIntervalMs, abortSignal) {
|
|
25
26
|
this.postFn = postFn;
|
|
26
27
|
this.platform = platform;
|
|
28
|
+
this.abortSignal = abortSignal;
|
|
27
29
|
this.intervalId = setInterval(() => {
|
|
28
30
|
this.flush().catch(() => {
|
|
29
31
|
// Interval flush errors are swallowed; callers observe errors
|
|
30
32
|
// via the flush() and stop() return values.
|
|
31
33
|
});
|
|
32
34
|
}, flushIntervalMs);
|
|
35
|
+
if (abortSignal !== undefined) {
|
|
36
|
+
if (abortSignal.aborted) {
|
|
37
|
+
void this.stop();
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
abortSignal.addEventListener("abort", () => {
|
|
41
|
+
void this.stop();
|
|
42
|
+
}, { once: true });
|
|
43
|
+
}
|
|
44
|
+
}
|
|
33
45
|
}
|
|
34
46
|
/**
|
|
35
47
|
* Append text to the accumulated buffer. The message will be updated
|
|
36
|
-
* on the next flush (either automatic or manual).
|
|
48
|
+
* on the next flush (either automatic or manual). No-op if the stream
|
|
49
|
+
* has been aborted.
|
|
37
50
|
*/
|
|
38
51
|
append(text) {
|
|
52
|
+
if (this.abortSignal?.aborted === true) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
39
55
|
this.buffer += text;
|
|
40
56
|
}
|
|
41
57
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditableStreamReply.js","sourceRoot":"","sources":["../src/EditableStreamReply.ts"],"names":[],"mappings":";;;AAAA,iDAAgD;AAIhD;;;;;;;;;;GAUG;AACH,MAAa,mBAAmB;
|
|
1
|
+
{"version":3,"file":"EditableStreamReply.js","sourceRoot":"","sources":["../src/EditableStreamReply.ts"],"names":[],"mappings":"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"}
|
package/dist/Message.d.ts
CHANGED
|
@@ -93,9 +93,10 @@ export declare class Message {
|
|
|
93
93
|
* flushing it at a fixed interval. Long text is automatically
|
|
94
94
|
* chunked to fit within platform message limits.
|
|
95
95
|
* @param flushIntervalMs - How often to flush buffered text (in milliseconds)
|
|
96
|
+
* @param abortSignal - Optional signal to automatically stop the stream when aborted
|
|
96
97
|
* @returns StreamingReply with append/flush/stop methods
|
|
97
98
|
*/
|
|
98
|
-
streamReply(flushIntervalMs: number): StreamingReply;
|
|
99
|
+
streamReply(flushIntervalMs: number, abortSignal?: AbortSignal): StreamingReply;
|
|
99
100
|
/**
|
|
100
101
|
* Create a thread from this message
|
|
101
102
|
* @param name - Thread name
|
package/dist/Message.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Message.d.ts","sourceRoot":"","sources":["../src/Message.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Message.d.ts","sourceRoot":"","sources":["../src/Message.ts"],"names":[],"mappings":"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"}
|
package/dist/Message.js
CHANGED
|
@@ -143,10 +143,11 @@ class Message {
|
|
|
143
143
|
* flushing it at a fixed interval. Long text is automatically
|
|
144
144
|
* chunked to fit within platform message limits.
|
|
145
145
|
* @param flushIntervalMs - How often to flush buffered text (in milliseconds)
|
|
146
|
+
* @param abortSignal - Optional signal to automatically stop the stream when aborted
|
|
146
147
|
* @returns StreamingReply with append/flush/stop methods
|
|
147
148
|
*/
|
|
148
|
-
streamReply(flushIntervalMs) {
|
|
149
|
-
return new StreamingReply_1.StreamingReply((content) => this.reply(content), this.platform, flushIntervalMs);
|
|
149
|
+
streamReply(flushIntervalMs, abortSignal) {
|
|
150
|
+
return new StreamingReply_1.StreamingReply((content) => this.reply(content), this.platform, flushIntervalMs, abortSignal);
|
|
150
151
|
}
|
|
151
152
|
/**
|
|
152
153
|
* Create a thread from this message
|
package/dist/Message.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Message.js","sourceRoot":"","sources":["../src/Message.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Message.js","sourceRoot":"","sources":["../src/Message.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { Message } from "./Message";
|
|
2
|
+
/**
|
|
3
|
+
* Tracks posted messages by key for later editing.
|
|
4
|
+
*
|
|
5
|
+
* Useful for status messages that should be updated in-place rather than
|
|
6
|
+
* posting a new message (e.g., "Worker disconnected" → "Worker reconnected").
|
|
7
|
+
*/
|
|
8
|
+
export interface MessageTracker {
|
|
9
|
+
/** Post a message and track it by key for later editing. */
|
|
10
|
+
post(key: string, content: string): void;
|
|
11
|
+
/** Edit a previously tracked message. Returns false if key not found. */
|
|
12
|
+
edit(key: string, content: string): boolean;
|
|
13
|
+
/** Get the timestamp when a tracked message was posted. */
|
|
14
|
+
getPostedAt(key: string): Date | undefined;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Create a message tracker that posts messages via the given function
|
|
18
|
+
* and allows editing them later by key.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```typescript
|
|
22
|
+
* const tracker = createMessageTracker((content) => channel.postMessage(content));
|
|
23
|
+
*
|
|
24
|
+
* tracker.post("worker-1", "🔴 Worker disconnected: Server A");
|
|
25
|
+
* // Later, when the worker reconnects:
|
|
26
|
+
* tracker.edit("worker-1", "🟢 Worker reconnected: Server A (down for 2m 5s)");
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export declare function createMessageTracker(postFn: (content: string) => PromiseLike<Message>): MessageTracker;
|
|
30
|
+
//# sourceMappingURL=MessageTracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MessageTracker.d.ts","sourceRoot":"","sources":["../src/MessageTracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,4DAA4D;IAC5D,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,yEAAyE;IACzE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5C,2DAA2D;IAC3D,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CAC5C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,WAAW,CAAC,OAAO,CAAC,GAChD,cAAc,CA6BhB"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createMessageTracker = createMessageTracker;
|
|
4
|
+
/**
|
|
5
|
+
* Create a message tracker that posts messages via the given function
|
|
6
|
+
* and allows editing them later by key.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* const tracker = createMessageTracker((content) => channel.postMessage(content));
|
|
11
|
+
*
|
|
12
|
+
* tracker.post("worker-1", "🔴 Worker disconnected: Server A");
|
|
13
|
+
* // Later, when the worker reconnects:
|
|
14
|
+
* tracker.edit("worker-1", "🟢 Worker reconnected: Server A (down for 2m 5s)");
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
function createMessageTracker(postFn) {
|
|
18
|
+
const entries = new Map();
|
|
19
|
+
return {
|
|
20
|
+
post(key, content) {
|
|
21
|
+
entries.set(key, { message: postFn(content), postedAt: new Date() });
|
|
22
|
+
},
|
|
23
|
+
edit(key, content) {
|
|
24
|
+
const entry = entries.get(key);
|
|
25
|
+
if (entry === undefined) {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
entries.delete(key);
|
|
29
|
+
void Promise.resolve(entry.message)
|
|
30
|
+
.then((msg) => msg.update(content))
|
|
31
|
+
.catch(() => {
|
|
32
|
+
// Swallow — message may have been dismissed or deleted
|
|
33
|
+
});
|
|
34
|
+
return true;
|
|
35
|
+
},
|
|
36
|
+
getPostedAt(key) {
|
|
37
|
+
return entries.get(key)?.postedAt;
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=MessageTracker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MessageTracker.js","sourceRoot":"","sources":["../src/MessageTracker.ts"],"names":[],"mappings":";;AA8BA,oDA+BC;AA5CD;;;;;;;;;;;;GAYG;AACH,SAAgB,oBAAoB,CAClC,MAAiD;IAEjD,MAAM,OAAO,GAAG,IAAI,GAAG,EAGpB,CAAC;IAEJ,OAAO;QACL,IAAI,CAAC,GAAG,EAAE,OAAO;YACf,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,IAAI,CAAC,GAAG,EAAE,OAAO;YACf,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACpB,KAAK,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;iBAChC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;iBAClC,KAAK,CAAC,GAAG,EAAE;gBACV,uDAAuD;YACzD,CAAC,CAAC,CAAC;YACL,OAAO,IAAI,CAAC;QACd,CAAC;QAED,WAAW,CAAC,GAAG;YACb,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC;QACpC,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/StreamingReply.d.ts
CHANGED
|
@@ -11,13 +11,21 @@ export declare class StreamingReply {
|
|
|
11
11
|
private readonly replyFn;
|
|
12
12
|
private readonly platform;
|
|
13
13
|
private buffer;
|
|
14
|
+
private accumulated;
|
|
15
|
+
private readonly abortSignal?;
|
|
14
16
|
private intervalId;
|
|
15
|
-
constructor(replyFn: (content: string) => PromiseLike<unknown>, platform: Platform, flushIntervalMs: number);
|
|
17
|
+
constructor(replyFn: (content: string) => PromiseLike<unknown>, platform: Platform, flushIntervalMs: number, abortSignal?: AbortSignal);
|
|
16
18
|
/**
|
|
17
19
|
* Append text to the buffer. The text will be sent on the next
|
|
18
|
-
* flush (either automatic or manual).
|
|
20
|
+
* flush (either automatic or manual). No-op if the stream has
|
|
21
|
+
* been aborted.
|
|
19
22
|
*/
|
|
20
23
|
append(text: string): void;
|
|
24
|
+
/**
|
|
25
|
+
* The full accumulated content, including text not yet flushed.
|
|
26
|
+
* Useful for reading back the complete response after {@link stop}.
|
|
27
|
+
*/
|
|
28
|
+
get content(): string;
|
|
21
29
|
/**
|
|
22
30
|
* Flush any buffered text as one or more thread replies.
|
|
23
31
|
* No-op if the buffer is empty or whitespace-only.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StreamingReply.d.ts","sourceRoot":"","sources":["../src/StreamingReply.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAqCxC;;;;;;;GAOG;AACH,qBAAa,cAAc;
|
|
1
|
+
{"version":3,"file":"StreamingReply.d.ts","sourceRoot":"","sources":["../src/StreamingReply.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAqCxC;;;;;;;GAOG;AACH,qBAAa,cAAc;IAOvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAP3B,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAc;IAC3C,OAAO,CAAC,UAAU,CAA+C;gBAG9C,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,WAAW,CAAC,OAAO,CAAC,EAClD,QAAQ,EAAE,QAAQ,EACnC,eAAe,EAAE,MAAM,EACvB,WAAW,CAAC,EAAE,WAAW;IAyB3B;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQ1B;;;OAGG;IACH,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAa5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAO5B"}
|
package/dist/StreamingReply.js
CHANGED
|
@@ -43,23 +43,48 @@ class StreamingReply {
|
|
|
43
43
|
replyFn;
|
|
44
44
|
platform;
|
|
45
45
|
buffer = "";
|
|
46
|
+
accumulated = "";
|
|
47
|
+
abortSignal;
|
|
46
48
|
intervalId = null;
|
|
47
|
-
constructor(replyFn, platform, flushIntervalMs) {
|
|
49
|
+
constructor(replyFn, platform, flushIntervalMs, abortSignal) {
|
|
48
50
|
this.replyFn = replyFn;
|
|
49
51
|
this.platform = platform;
|
|
52
|
+
this.abortSignal = abortSignal;
|
|
50
53
|
this.intervalId = setInterval(() => {
|
|
51
54
|
this.flush().catch(() => {
|
|
52
55
|
// Interval flush errors are swallowed; callers observe errors
|
|
53
56
|
// via the flush() and stop() return values.
|
|
54
57
|
});
|
|
55
58
|
}, flushIntervalMs);
|
|
59
|
+
if (abortSignal !== undefined) {
|
|
60
|
+
if (abortSignal.aborted) {
|
|
61
|
+
void this.stop();
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
abortSignal.addEventListener("abort", () => {
|
|
65
|
+
void this.stop();
|
|
66
|
+
}, { once: true });
|
|
67
|
+
}
|
|
68
|
+
}
|
|
56
69
|
}
|
|
57
70
|
/**
|
|
58
71
|
* Append text to the buffer. The text will be sent on the next
|
|
59
|
-
* flush (either automatic or manual).
|
|
72
|
+
* flush (either automatic or manual). No-op if the stream has
|
|
73
|
+
* been aborted.
|
|
60
74
|
*/
|
|
61
75
|
append(text) {
|
|
76
|
+
if (this.abortSignal?.aborted === true) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
62
79
|
this.buffer += text;
|
|
80
|
+
this.accumulated += text;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* The full accumulated content, including text not yet flushed.
|
|
84
|
+
* Useful for reading back the complete response after {@link stop}.
|
|
85
|
+
*/
|
|
86
|
+
get content() {
|
|
87
|
+
return this.accumulated;
|
|
63
88
|
}
|
|
64
89
|
/**
|
|
65
90
|
* Flush any buffered text as one or more thread replies.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StreamingReply.js","sourceRoot":"","sources":["../src/StreamingReply.ts"],"names":[],"mappings":";;;AAAA,iDAAgD;AAGhD;;;GAGG;AACH,SAAS,SAAS,CAAC,IAAY,EAAE,SAAiB;IAChD,IAAI,IAAI,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAED,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,SAAS,GAAG,IAAI,CAAC;IAErB,OAAO,SAAS,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;QACpC,IAAI,UAAU,GAAG,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACxD,IAAI,UAAU,GAAG,SAAS,GAAG,CAAC,EAAE,CAAC;YAC/B,UAAU,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,UAAU,GAAG,SAAS,GAAG,CAAC,EAAE,CAAC;YAC/B,UAAU,GAAG,SAAS,CAAC;QACzB,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;QAC5C,SAAS;YACP,UAAU,KAAK,SAAS;gBACtB,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC;gBAC7B,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;GAOG;AACH,MAAa,cAAc;
|
|
1
|
+
{"version":3,"file":"StreamingReply.js","sourceRoot":"","sources":["../src/StreamingReply.ts"],"names":[],"mappings":"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"}
|
package/dist/Thread.d.ts
CHANGED
|
@@ -48,6 +48,7 @@ export declare class Thread {
|
|
|
48
48
|
* within platform message limits.
|
|
49
49
|
*
|
|
50
50
|
* @param flushIntervalMs - How often to flush buffered text (in milliseconds)
|
|
51
|
+
* @param abortSignal - Optional signal to automatically stop the stream when aborted
|
|
51
52
|
* @returns StreamingReply with append/flush/stop methods
|
|
52
53
|
*
|
|
53
54
|
* @example
|
|
@@ -58,7 +59,7 @@ export declare class Thread {
|
|
|
58
59
|
* await stream.stop();
|
|
59
60
|
* ```
|
|
60
61
|
*/
|
|
61
|
-
stream(flushIntervalMs: number): StreamingReply;
|
|
62
|
+
stream(flushIntervalMs: number, abortSignal?: AbortSignal): StreamingReply;
|
|
62
63
|
/**
|
|
63
64
|
* Stream messages into this thread by editing a single message in
|
|
64
65
|
* place. Text appended between flushes updates the same message
|
|
@@ -66,6 +67,7 @@ export declare class Thread {
|
|
|
66
67
|
* platform's message-length limit, the beginning is truncated.
|
|
67
68
|
*
|
|
68
69
|
* @param flushIntervalMs - How often to flush buffered text (in milliseconds)
|
|
70
|
+
* @param abortSignal - Optional signal to automatically stop the stream when aborted
|
|
69
71
|
* @returns EditableStreamReply with append/flush/stop methods
|
|
70
72
|
*
|
|
71
73
|
* @example
|
|
@@ -76,7 +78,7 @@ export declare class Thread {
|
|
|
76
78
|
* await stream.stop();
|
|
77
79
|
* ```
|
|
78
80
|
*/
|
|
79
|
-
editableStream(flushIntervalMs: number): EditableStreamReply;
|
|
81
|
+
editableStream(flushIntervalMs: number, abortSignal?: AbortSignal): EditableStreamReply;
|
|
80
82
|
/**
|
|
81
83
|
* Subscribe to replies in this thread.
|
|
82
84
|
* @param callback - Function called with a Message for each reply
|
package/dist/Thread.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Thread.d.ts","sourceRoot":"","sources":["../src/Thread.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,cAAc,EACd,WAAW,EAEX,QAAQ,EACR,UAAU,EACX,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,EAAE,CACJ,OAAO,EAAE,cAAc,EACvB,KAAK,CAAC,EAAE,cAAc,EAAE,KACrB,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1B,SAAS,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,MAAM,IAAI,CAAC;IACrD,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;CAC3C;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,MAAM;IACjB,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,QAAQ,EAAE,QAAQ,CAAC;IAEnC,OAAO,CAAC,GAAG,CAAmB;IAC9B,OAAO,CAAC,kBAAkB,CAAsB;gBAEpC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,gBAAgB;IAOnD;;;;;OAKG;IACG,IAAI,CACR,OAAO,EAAE,cAAc,EACvB,KAAK,CAAC,EAAE,cAAc,EAAE,GACvB,OAAO,CAAC,OAAO,CAAC;IAKnB
|
|
1
|
+
{"version":3,"file":"Thread.d.ts","sourceRoot":"","sources":["../src/Thread.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,cAAc,EACd,WAAW,EAEX,QAAQ,EACR,UAAU,EACX,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,EAAE,CACJ,OAAO,EAAE,cAAc,EACvB,KAAK,CAAC,EAAE,cAAc,EAAE,KACrB,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1B,SAAS,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,MAAM,IAAI,CAAC;IACrD,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;CAC3C;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,MAAM;IACjB,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,QAAQ,EAAE,QAAQ,CAAC;IAEnC,OAAO,CAAC,GAAG,CAAmB;IAC9B,OAAO,CAAC,kBAAkB,CAAsB;gBAEpC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,gBAAgB;IAOnD;;;;;OAKG;IACG,IAAI,CACR,OAAO,EAAE,cAAc,EACvB,KAAK,CAAC,EAAE,cAAc,EAAE,GACvB,OAAO,CAAC,OAAO,CAAC;IAKnB;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,eAAe,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,cAAc;IAS1E;;;;;;;;;;;;;;;;;OAiBG;IACH,cAAc,CACZ,eAAe,EAAE,MAAM,EACvB,WAAW,CAAC,EAAE,WAAW,GACxB,mBAAmB;IAStB;;;;OAIG;IACH,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI;IAoBzE;;OAEG;IACH,QAAQ,IAAI,IAAI;IAOhB;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAI9B"}
|
package/dist/Thread.js
CHANGED
|
@@ -48,6 +48,7 @@ class Thread {
|
|
|
48
48
|
* within platform message limits.
|
|
49
49
|
*
|
|
50
50
|
* @param flushIntervalMs - How often to flush buffered text (in milliseconds)
|
|
51
|
+
* @param abortSignal - Optional signal to automatically stop the stream when aborted
|
|
51
52
|
* @returns StreamingReply with append/flush/stop methods
|
|
52
53
|
*
|
|
53
54
|
* @example
|
|
@@ -58,8 +59,8 @@ class Thread {
|
|
|
58
59
|
* await stream.stop();
|
|
59
60
|
* ```
|
|
60
61
|
*/
|
|
61
|
-
stream(flushIntervalMs) {
|
|
62
|
-
return new StreamingReply_js_1.StreamingReply((content) => this.ops.post(content), this.platform, flushIntervalMs);
|
|
62
|
+
stream(flushIntervalMs, abortSignal) {
|
|
63
|
+
return new StreamingReply_js_1.StreamingReply((content) => this.ops.post(content), this.platform, flushIntervalMs, abortSignal);
|
|
63
64
|
}
|
|
64
65
|
/**
|
|
65
66
|
* Stream messages into this thread by editing a single message in
|
|
@@ -68,6 +69,7 @@ class Thread {
|
|
|
68
69
|
* platform's message-length limit, the beginning is truncated.
|
|
69
70
|
*
|
|
70
71
|
* @param flushIntervalMs - How often to flush buffered text (in milliseconds)
|
|
72
|
+
* @param abortSignal - Optional signal to automatically stop the stream when aborted
|
|
71
73
|
* @returns EditableStreamReply with append/flush/stop methods
|
|
72
74
|
*
|
|
73
75
|
* @example
|
|
@@ -78,8 +80,8 @@ class Thread {
|
|
|
78
80
|
* await stream.stop();
|
|
79
81
|
* ```
|
|
80
82
|
*/
|
|
81
|
-
editableStream(flushIntervalMs) {
|
|
82
|
-
return new EditableStreamReply_js_1.EditableStreamReply((content) => this.post(content), this.platform, flushIntervalMs);
|
|
83
|
+
editableStream(flushIntervalMs, abortSignal) {
|
|
84
|
+
return new EditableStreamReply_js_1.EditableStreamReply((content) => this.post(content), this.platform, flushIntervalMs, abortSignal);
|
|
83
85
|
}
|
|
84
86
|
/**
|
|
85
87
|
* Subscribe to replies in this thread.
|
package/dist/Thread.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Thread.js","sourceRoot":"","sources":["../src/Thread.ts"],"names":[],"mappings":";;;AAAA,qEAA+D;AAC/D,6CAA+D;AAC/D,2DAAqD;AAyBrD;;;;;;;;;;;;;;;GAeG;AACH,MAAa,MAAM;IACD,EAAE,CAAS;IACX,SAAS,CAAS;IAClB,QAAQ,CAAW;IAE3B,GAAG,CAAmB;IACtB,kBAAkB,GAAmB,EAAE,CAAC;IAEhD,YAAY,IAAgB,EAAE,GAAqB;QACjD,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,IAAI,CACR,OAAuB,EACvB,KAAwB;QAExB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACjD,OAAO,IAAI,oBAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACxD,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"Thread.js","sourceRoot":"","sources":["../src/Thread.ts"],"names":[],"mappings":";;;AAAA,qEAA+D;AAC/D,6CAA+D;AAC/D,2DAAqD;AAyBrD;;;;;;;;;;;;;;;GAeG;AACH,MAAa,MAAM;IACD,EAAE,CAAS;IACX,SAAS,CAAS;IAClB,QAAQ,CAAW;IAE3B,GAAG,CAAmB;IACtB,kBAAkB,GAAmB,EAAE,CAAC;IAEhD,YAAY,IAAgB,EAAE,GAAqB;QACjD,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,IAAI,CACR,OAAuB,EACvB,KAAwB;QAExB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACjD,OAAO,IAAI,oBAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACxD,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,eAAuB,EAAE,WAAyB;QACvD,OAAO,IAAI,kCAAc,CACvB,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EACnC,IAAI,CAAC,QAAQ,EACb,eAAe,EACf,WAAW,CACZ,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,cAAc,CACZ,eAAuB,EACvB,WAAyB;QAEzB,OAAO,IAAI,4CAAmB,CAC5B,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAC/B,IAAI,CAAC,QAAQ,EACb,eAAe,EACf,WAAW,CACZ,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,QAAoD;QAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAmB,EAAE,EAAE;YAC7D,MAAM,OAAO,GAAG,IAAI,oBAAO,CACzB;gBACE,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;aAC/B,EACD,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAC5B,CAAC;YACF,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1C,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5C,KAAK,EAAE,CAAC;QACV,CAAC;QACD,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM;QACV,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;IAC1B,CAAC;CACF;AA/HD,wBA+HC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export { Message } from "./Message";
|
|
|
6
6
|
export { EditableStreamReply } from "./EditableStreamReply";
|
|
7
7
|
export { StreamingReply } from "./StreamingReply";
|
|
8
8
|
export { Thread } from "./Thread";
|
|
9
|
+
export { createMessageTracker, type MessageTracker } from "./MessageTracker";
|
|
9
10
|
export { DiscordChatClient } from "./discord";
|
|
10
11
|
export { SlackChatClient } from "./slack";
|
|
11
12
|
import { type ChatClient } from "./ChatClient";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,UAAU,EACf,KAAK,IAAI,EACT,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,aAAa,GACnB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,UAAU,EACf,KAAK,IAAI,EACT,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,aAAa,GACnB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAG7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG1C,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAG/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAW/D"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SlackChatClient = exports.DiscordChatClient = exports.Thread = exports.StreamingReply = exports.EditableStreamReply = exports.Message = exports.Channel = exports.ChatClient = exports.MESSAGE_LIMITS = void 0;
|
|
3
|
+
exports.SlackChatClient = exports.DiscordChatClient = exports.createMessageTracker = exports.Thread = exports.StreamingReply = exports.EditableStreamReply = exports.Message = exports.Channel = exports.ChatClient = exports.MESSAGE_LIMITS = void 0;
|
|
4
4
|
exports.createChatClient = createChatClient;
|
|
5
5
|
// Constants
|
|
6
6
|
var constants_1 = require("./constants");
|
|
@@ -18,6 +18,8 @@ var StreamingReply_1 = require("./StreamingReply");
|
|
|
18
18
|
Object.defineProperty(exports, "StreamingReply", { enumerable: true, get: function () { return StreamingReply_1.StreamingReply; } });
|
|
19
19
|
var Thread_1 = require("./Thread");
|
|
20
20
|
Object.defineProperty(exports, "Thread", { enumerable: true, get: function () { return Thread_1.Thread; } });
|
|
21
|
+
var MessageTracker_1 = require("./MessageTracker");
|
|
22
|
+
Object.defineProperty(exports, "createMessageTracker", { enumerable: true, get: function () { return MessageTracker_1.createMessageTracker; } });
|
|
21
23
|
// Platform implementations
|
|
22
24
|
var discord_1 = require("./discord");
|
|
23
25
|
Object.defineProperty(exports, "DiscordChatClient", { enumerable: true, get: function () { return discord_1.DiscordChatClient; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AA6DA,4CAWC;AArDD,YAAY;AACZ,yCAA6C;AAApC,2GAAA,cAAc,OAAA;AAEvB,eAAe;AACf,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AACnB,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,6DAA4D;AAAnD,0HAAA,mBAAmB,OAAA;AAC5B,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AACf,mDAA6E;AAApE,sHAAA,oBAAoB,OAAA;AAE7B,2BAA2B;AAC3B,qCAA8C;AAArC,4GAAA,iBAAiB,OAAA;AAC1B,iCAA0C;AAAjC,wGAAA,eAAe,OAAA;AAIxB,uCAA8C;AAC9C,mCAA0C;AAG1C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,gBAAgB,CAAC,MAAkB;IACjD,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,SAAS;YACZ,OAAO,IAAI,2BAAiB,CAAC,MAAM,CAAC,CAAC;QACvC,KAAK,OAAO;YACV,OAAO,IAAI,uBAAe,CAAC,MAAM,CAAC,CAAC;QACrC;YACE,MAAM,IAAI,KAAK,CACb,0BAA2B,MAA2B,CAAC,IAAI,EAAE,CAC9D,CAAC;IACN,CAAC;AACH,CAAC"}
|