@hardlydifficult/chat 1.1.16 → 1.1.17
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 +22 -0
- package/dist/Message.d.ts +9 -0
- package/dist/Message.d.ts.map +1 -1
- package/dist/Message.js +11 -0
- package/dist/Message.js.map +1 -1
- package/dist/StreamingReply.d.ts +31 -0
- package/dist/StreamingReply.d.ts.map +1 -0
- package/dist/StreamingReply.js +95 -0
- package/dist/StreamingReply.js.map +1 -0
- 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
|
@@ -157,6 +157,28 @@ const thread = await msg.startThread("Discussion Thread", 1440); // auto-archive
|
|
|
157
157
|
|
|
158
158
|
> **Slack note:** Slack threads are implicit — calling `startThread()` returns the message's timestamp as the thread ID. Post replies with `msg.reply()` to populate the thread.
|
|
159
159
|
|
|
160
|
+
### Streaming Replies
|
|
161
|
+
|
|
162
|
+
Buffer text and flush it as thread replies at a regular interval. Useful for commands that produce output over time (e.g., streaming CLI output). Long text is automatically chunked to fit within platform message limits.
|
|
163
|
+
|
|
164
|
+
```typescript
|
|
165
|
+
const msg = await channel.postMessage("Running...");
|
|
166
|
+
const stream = msg.streamReply(2000); // flush every 2s
|
|
167
|
+
|
|
168
|
+
stream.append("output line 1\n");
|
|
169
|
+
stream.append("output line 2\n");
|
|
170
|
+
// ... text is batched and sent as replies every 2 seconds
|
|
171
|
+
|
|
172
|
+
await stream.stop(); // flushes remaining text and stops the timer
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
`flush()` sends buffered text immediately without waiting for the next interval:
|
|
176
|
+
|
|
177
|
+
```typescript
|
|
178
|
+
stream.append("important output");
|
|
179
|
+
await stream.flush();
|
|
180
|
+
```
|
|
181
|
+
|
|
160
182
|
## Mentions
|
|
161
183
|
|
|
162
184
|
Get channel members and @mention them in messages.
|
package/dist/Message.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { StreamingReply } from "./StreamingReply";
|
|
1
2
|
import { Thread } from "./Thread";
|
|
2
3
|
import type { Attachment, MessageContent, MessageData, Platform, ReactionCallback, ThreadData, User } from "./types";
|
|
3
4
|
/**
|
|
@@ -87,6 +88,14 @@ export declare class Message {
|
|
|
87
88
|
* @returns ReplyMessage that can be awaited to handle success/failure
|
|
88
89
|
*/
|
|
89
90
|
reply(content: MessageContent): Message & PromiseLike<Message>;
|
|
91
|
+
/**
|
|
92
|
+
* Stream replies to this message's thread by buffering text and
|
|
93
|
+
* flushing it at a fixed interval. Long text is automatically
|
|
94
|
+
* chunked to fit within platform message limits.
|
|
95
|
+
* @param flushIntervalMs - How often to flush buffered text (in milliseconds)
|
|
96
|
+
* @returns StreamingReply with append/flush/stop methods
|
|
97
|
+
*/
|
|
98
|
+
streamReply(flushIntervalMs: number): StreamingReply;
|
|
90
99
|
/**
|
|
91
100
|
* Create a thread from this message
|
|
92
101
|
* @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":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,UAAU,EACV,IAAI,EACL,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,WAAW,CACT,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,cAAc,CACZ,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,aAAa,CACX,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,KAAK,CACH,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,WAAW,CAAC,CAAC;IACxB,oBAAoB,CAClB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,gBAAgB,GACzB,MAAM,IAAI,CAAC;IACd,WAAW,CACT,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,mBAAmB,CAAC,EAAE,MAAM,GAC3B,OAAO,CAAC,UAAU,CAAC,CAAC;IACvB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClE;AAED;;GAEG;AACH,qBAAa,OAAO;IAClB,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,QAAQ,EAAE,QAAQ,CAAC;IACnC,SAAgB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjC,SAAgB,MAAM,CAAC,EAAE,IAAI,CAAC;IAC9B,SAAgB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjC,SAAgB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAE3C,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAqB;IAC9D,SAAS,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACxC,SAAS,CAAC,qBAAqB,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAM;IACrD,OAAO,CAAC,aAAa,CAAgB;gBAEzB,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,iBAAiB;IAW5D;;;OAGG;IACH,SAAS,CAAC,UAAU,IAAI,OAAO;IAkB/B;;;;OAIG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;IASpC;;;;OAIG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;IASvC;;;OAGG;IACH,kBAAkB,IAAI,IAAI;IAO1B;;;;;;;;;;;;;;OAcG;IACH,UAAU,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAM5C;;OAEG;IACH,WAAW,IAAI,IAAI;IAOnB;;;;;;;OAOG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,IAAI;IAoBhE;;;;OAIG;IACH,KAAK,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;IAS9D;;;;;OAKG;IACG,WAAW,CACf,IAAI,EAAE,MAAM,EACZ,mBAAmB,CAAC,EAAE,MAAM,GAC3B,OAAO,CAAC,MAAM,CAAC;IAYlB;;;OAGG;IACG,MAAM,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7B;;;;;;;;;OASG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;CAGxC;AAED;;;;GAIG;AACH,qBAAa,YAAa,SAAQ,OAAQ,YAAW,WAAW,CAAC,OAAO,CAAC;IACvE,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,yBAAyB,CAA0B;IAC3D,OAAO,CAAC,QAAQ,CAAS;gBAGvB,YAAY,EAAE,OAAO,CAAC,WAAW,CAAC,EAClC,UAAU,EAAE,iBAAiB,EAC7B,QAAQ,EAAE,QAAQ;IA4BpB;;OAEG;IACM,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;IAc7C;;OAEG;IACM,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;IAahD;;OAEG;IACM,kBAAkB,IAAI,IAAI;IAWnC;;OAEG;IACM,UAAU,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IASrD;;OAEG;IACM,WAAW,IAAI,IAAI;IAK5B;;;OAGG;IACH,IAAI,CAAC,QAAQ,GAAG,OAAO,EAAE,QAAQ,GAAG,KAAK,EACvC,WAAW,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,EAC3E,UAAU,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,GAC1E,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAQ/B;;OAEG;IACY,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;CAIjD"}
|
|
1
|
+
{"version":3,"file":"Message.d.ts","sourceRoot":"","sources":["../src/Message.ts"],"names":[],"mappings":"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"}
|
package/dist/Message.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ReplyMessage = exports.Message = void 0;
|
|
4
|
+
const StreamingReply_1 = require("./StreamingReply");
|
|
4
5
|
const Thread_1 = require("./Thread");
|
|
5
6
|
/**
|
|
6
7
|
* Represents a posted message with chainable reaction methods
|
|
@@ -137,6 +138,16 @@ class Message {
|
|
|
137
138
|
const replyPromise = this.operations.reply(this.channelId, this.id, content);
|
|
138
139
|
return new ReplyMessage(replyPromise, this.operations, this.platform);
|
|
139
140
|
}
|
|
141
|
+
/**
|
|
142
|
+
* Stream replies to this message's thread by buffering text and
|
|
143
|
+
* flushing it at a fixed interval. Long text is automatically
|
|
144
|
+
* chunked to fit within platform message limits.
|
|
145
|
+
* @param flushIntervalMs - How often to flush buffered text (in milliseconds)
|
|
146
|
+
* @returns StreamingReply with append/flush/stop methods
|
|
147
|
+
*/
|
|
148
|
+
streamReply(flushIntervalMs) {
|
|
149
|
+
return new StreamingReply_1.StreamingReply((content) => this.reply(content), this.platform, flushIntervalMs);
|
|
150
|
+
}
|
|
140
151
|
/**
|
|
141
152
|
* Create a thread from this message
|
|
142
153
|
* @param name - Thread name
|
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,31 @@
|
|
|
1
|
+
import type { Platform } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Buffers text and periodically flushes it as thread replies.
|
|
4
|
+
*
|
|
5
|
+
* Created via {@link Message.streamReply}. Text appended between flushes
|
|
6
|
+
* is batched into a single reply. If the accumulated text exceeds the
|
|
7
|
+
* platform's message-length limit, it is automatically split into
|
|
8
|
+
* multiple replies at natural break points (newlines, spaces).
|
|
9
|
+
*/
|
|
10
|
+
export declare class StreamingReply {
|
|
11
|
+
private readonly replyFn;
|
|
12
|
+
private readonly platform;
|
|
13
|
+
private buffer;
|
|
14
|
+
private intervalId;
|
|
15
|
+
constructor(replyFn: (content: string) => PromiseLike<unknown>, platform: Platform, flushIntervalMs: number);
|
|
16
|
+
/**
|
|
17
|
+
* Append text to the buffer. The text will be sent on the next
|
|
18
|
+
* flush (either automatic or manual).
|
|
19
|
+
*/
|
|
20
|
+
append(text: string): void;
|
|
21
|
+
/**
|
|
22
|
+
* Flush any buffered text as one or more thread replies.
|
|
23
|
+
* No-op if the buffer is empty or whitespace-only.
|
|
24
|
+
*/
|
|
25
|
+
flush(): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* Stop the automatic flush timer and flush any remaining buffered text.
|
|
28
|
+
*/
|
|
29
|
+
stop(): Promise<void>;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=StreamingReply.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StreamingReply.d.ts","sourceRoot":"","sources":["../src/StreamingReply.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AA0CxC;;;;;;;GAOG;AACH,qBAAa,cAAc;IAKvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAL3B,OAAO,CAAC,MAAM,CAAM;IACpB,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;IAUzB;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI1B;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAa5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAO5B"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StreamingReply = void 0;
|
|
4
|
+
const MESSAGE_LIMITS = {
|
|
5
|
+
discord: 2000,
|
|
6
|
+
slack: 4000,
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Splits text into chunks that fit within a message length limit,
|
|
10
|
+
* breaking at newlines or spaces when possible.
|
|
11
|
+
*/
|
|
12
|
+
function chunkText(text, maxLength) {
|
|
13
|
+
if (text.length <= maxLength) {
|
|
14
|
+
return [text];
|
|
15
|
+
}
|
|
16
|
+
const chunks = [];
|
|
17
|
+
let remaining = text;
|
|
18
|
+
while (remaining.length > maxLength) {
|
|
19
|
+
let breakPoint = remaining.lastIndexOf("\n", maxLength);
|
|
20
|
+
if (breakPoint < maxLength / 2) {
|
|
21
|
+
breakPoint = remaining.lastIndexOf(" ", maxLength);
|
|
22
|
+
}
|
|
23
|
+
if (breakPoint < maxLength / 2) {
|
|
24
|
+
breakPoint = maxLength;
|
|
25
|
+
}
|
|
26
|
+
chunks.push(remaining.slice(0, breakPoint));
|
|
27
|
+
remaining =
|
|
28
|
+
breakPoint === maxLength
|
|
29
|
+
? remaining.slice(breakPoint)
|
|
30
|
+
: remaining.slice(breakPoint + 1);
|
|
31
|
+
}
|
|
32
|
+
if (remaining.length > 0) {
|
|
33
|
+
chunks.push(remaining);
|
|
34
|
+
}
|
|
35
|
+
return chunks;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Buffers text and periodically flushes it as thread replies.
|
|
39
|
+
*
|
|
40
|
+
* Created via {@link Message.streamReply}. Text appended between flushes
|
|
41
|
+
* is batched into a single reply. If the accumulated text exceeds the
|
|
42
|
+
* platform's message-length limit, it is automatically split into
|
|
43
|
+
* multiple replies at natural break points (newlines, spaces).
|
|
44
|
+
*/
|
|
45
|
+
class StreamingReply {
|
|
46
|
+
replyFn;
|
|
47
|
+
platform;
|
|
48
|
+
buffer = "";
|
|
49
|
+
intervalId = null;
|
|
50
|
+
constructor(replyFn, platform, flushIntervalMs) {
|
|
51
|
+
this.replyFn = replyFn;
|
|
52
|
+
this.platform = platform;
|
|
53
|
+
this.intervalId = setInterval(() => {
|
|
54
|
+
this.flush().catch(() => {
|
|
55
|
+
// Interval flush errors are swallowed; callers observe errors
|
|
56
|
+
// via the flush() and stop() return values.
|
|
57
|
+
});
|
|
58
|
+
}, flushIntervalMs);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Append text to the buffer. The text will be sent on the next
|
|
62
|
+
* flush (either automatic or manual).
|
|
63
|
+
*/
|
|
64
|
+
append(text) {
|
|
65
|
+
this.buffer += text;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Flush any buffered text as one or more thread replies.
|
|
69
|
+
* No-op if the buffer is empty or whitespace-only.
|
|
70
|
+
*/
|
|
71
|
+
async flush() {
|
|
72
|
+
if (!this.buffer.trim()) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
const text = this.buffer;
|
|
76
|
+
this.buffer = "";
|
|
77
|
+
const limit = MESSAGE_LIMITS[this.platform];
|
|
78
|
+
const chunks = chunkText(text, limit);
|
|
79
|
+
for (const chunk of chunks) {
|
|
80
|
+
await this.replyFn(chunk);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Stop the automatic flush timer and flush any remaining buffered text.
|
|
85
|
+
*/
|
|
86
|
+
async stop() {
|
|
87
|
+
if (this.intervalId) {
|
|
88
|
+
clearInterval(this.intervalId);
|
|
89
|
+
this.intervalId = null;
|
|
90
|
+
}
|
|
91
|
+
await this.flush();
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
exports.StreamingReply = StreamingReply;
|
|
95
|
+
//# sourceMappingURL=StreamingReply.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StreamingReply.js","sourceRoot":"","sources":["../src/StreamingReply.ts"],"names":[],"mappings":";;;AAEA,MAAM,cAAc,GAA6B;IAC/C,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,IAAI;CACZ,CAAC;AAEF;;;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;IAKN;IACA;IALX,MAAM,GAAG,EAAE,CAAC;IACZ,UAAU,GAA0C,IAAI,CAAC;IAEjE,YACmB,OAAkD,EAClD,QAAkB,EACnC,eAAuB;QAFN,YAAO,GAAP,OAAO,CAA2C;QAClD,aAAQ,GAAR,QAAQ,CAAU;QAGnC,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;YACjC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;gBACtB,8DAA8D;gBAC9D,4CAA4C;YAC9C,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,eAAe,CAAC,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,IAAY;QACjB,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACtC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;QACD,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF;AApDD,wCAoDC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export { type Attachment, type User, type Member, type DiscordConfig, type Slack
|
|
|
2
2
|
export { ChatClient } from "./ChatClient";
|
|
3
3
|
export { Channel } from "./Channel";
|
|
4
4
|
export { Message } from "./Message";
|
|
5
|
+
export { StreamingReply } from "./StreamingReply";
|
|
5
6
|
export { Thread } from "./Thread";
|
|
6
7
|
export { DiscordChatClient } from "./discord";
|
|
7
8
|
export { SlackChatClient } from "./slack";
|
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,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,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"}
|
|
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,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,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.Message = exports.Channel = exports.ChatClient = void 0;
|
|
3
|
+
exports.SlackChatClient = exports.DiscordChatClient = exports.Thread = exports.StreamingReply = exports.Message = exports.Channel = exports.ChatClient = void 0;
|
|
4
4
|
exports.createChatClient = createChatClient;
|
|
5
5
|
// Core classes
|
|
6
6
|
var ChatClient_1 = require("./ChatClient");
|
|
@@ -9,6 +9,8 @@ var Channel_1 = require("./Channel");
|
|
|
9
9
|
Object.defineProperty(exports, "Channel", { enumerable: true, get: function () { return Channel_1.Channel; } });
|
|
10
10
|
var Message_1 = require("./Message");
|
|
11
11
|
Object.defineProperty(exports, "Message", { enumerable: true, get: function () { return Message_1.Message; } });
|
|
12
|
+
var StreamingReply_1 = require("./StreamingReply");
|
|
13
|
+
Object.defineProperty(exports, "StreamingReply", { enumerable: true, get: function () { return StreamingReply_1.StreamingReply; } });
|
|
12
14
|
var Thread_1 = require("./Thread");
|
|
13
15
|
Object.defineProperty(exports, "Thread", { enumerable: true, get: function () { return Thread_1.Thread; } });
|
|
14
16
|
// Platform implementations
|
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":";;;AAwDA,4CAWC;AAhDD,eAAe;AACf,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AACnB,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AAEf,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"}
|