@animalabs/agent-framework 0.22.4 → 0.23.1
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 +105 -3
- package/dist/src/agent.d.ts +36 -10
- package/dist/src/agent.d.ts.map +1 -1
- package/dist/src/agent.js +76 -32
- package/dist/src/agent.js.map +1 -1
- package/dist/src/code-execution/index.d.ts +1 -1
- package/dist/src/code-execution/index.d.ts.map +1 -1
- package/dist/src/code-execution/index.js.map +1 -1
- package/dist/src/code-execution/py-runner.d.ts +34 -2
- package/dist/src/code-execution/py-runner.d.ts.map +1 -1
- package/dist/src/code-execution/py-runner.js +72 -16
- package/dist/src/code-execution/py-runner.js.map +1 -1
- package/dist/src/code-execution/runtime-py.d.ts +3 -2
- package/dist/src/code-execution/runtime-py.d.ts.map +1 -1
- package/dist/src/code-execution/runtime-py.js +47 -7
- package/dist/src/code-execution/runtime-py.js.map +1 -1
- package/dist/src/code-execution/tool-definition.d.ts +12 -7
- package/dist/src/code-execution/tool-definition.d.ts.map +1 -1
- package/dist/src/code-execution/tool-definition.js +59 -11
- package/dist/src/code-execution/tool-definition.js.map +1 -1
- package/dist/src/config-checks.d.ts +2 -2
- package/dist/src/config-checks.d.ts.map +1 -1
- package/dist/src/config-checks.js +6 -2
- package/dist/src/config-checks.js.map +1 -1
- package/dist/src/framework.d.ts +744 -120
- package/dist/src/framework.d.ts.map +1 -1
- package/dist/src/framework.js +3546 -906
- package/dist/src/framework.js.map +1 -1
- package/dist/src/gate/event-gate.d.ts.map +1 -1
- package/dist/src/gate/event-gate.js +13 -6
- package/dist/src/gate/event-gate.js.map +1 -1
- package/dist/src/held-writes.d.ts +16 -0
- package/dist/src/held-writes.d.ts.map +1 -0
- package/dist/src/held-writes.js +56 -0
- package/dist/src/held-writes.js.map +1 -0
- package/dist/src/index.d.ts +7 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +8 -4
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcpl/capability-grant.d.ts +4 -0
- package/dist/src/mcpl/capability-grant.d.ts.map +1 -1
- package/dist/src/mcpl/capability-grant.js +1 -1
- package/dist/src/mcpl/capability-grant.js.map +1 -1
- package/dist/src/mcpl/channel-registry.d.ts +95 -18
- package/dist/src/mcpl/channel-registry.d.ts.map +1 -1
- package/dist/src/mcpl/channel-registry.js +578 -150
- package/dist/src/mcpl/channel-registry.js.map +1 -1
- package/dist/src/mcpl/convert-block.d.ts +2 -2
- package/dist/src/mcpl/convert-block.d.ts.map +1 -1
- package/dist/src/mcpl/convert-block.js +6 -7
- package/dist/src/mcpl/convert-block.js.map +1 -1
- package/dist/src/mcpl/index.d.ts +5 -1
- package/dist/src/mcpl/index.d.ts.map +1 -1
- package/dist/src/mcpl/index.js +3 -1
- package/dist/src/mcpl/index.js.map +1 -1
- package/dist/src/mcpl/inference-router.d.ts +4 -2
- package/dist/src/mcpl/inference-router.d.ts.map +1 -1
- package/dist/src/mcpl/inference-router.js +6 -7
- package/dist/src/mcpl/inference-router.js.map +1 -1
- package/dist/src/mcpl/log-value.d.ts +7 -0
- package/dist/src/mcpl/log-value.d.ts.map +1 -1
- package/dist/src/mcpl/log-value.js +9 -0
- package/dist/src/mcpl/log-value.js.map +1 -1
- package/dist/src/mcpl/modern-connection.d.ts +227 -0
- package/dist/src/mcpl/modern-connection.d.ts.map +1 -0
- package/dist/src/mcpl/modern-connection.js +1088 -0
- package/dist/src/mcpl/modern-connection.js.map +1 -0
- package/dist/src/mcpl/prefix-rule.d.ts +18 -0
- package/dist/src/mcpl/prefix-rule.d.ts.map +1 -0
- package/dist/src/mcpl/prefix-rule.js +25 -0
- package/dist/src/mcpl/prefix-rule.js.map +1 -0
- package/dist/src/mcpl/protocol-family.d.ts +179 -0
- package/dist/src/mcpl/protocol-family.d.ts.map +1 -0
- package/dist/src/mcpl/protocol-family.js +697 -0
- package/dist/src/mcpl/protocol-family.js.map +1 -0
- package/dist/src/mcpl/push-coalescer.d.ts +38 -19
- package/dist/src/mcpl/push-coalescer.d.ts.map +1 -1
- package/dist/src/mcpl/push-coalescer.js +52 -23
- package/dist/src/mcpl/push-coalescer.js.map +1 -1
- package/dist/src/mcpl/reference-fetcher.d.ts +66 -15
- package/dist/src/mcpl/reference-fetcher.d.ts.map +1 -1
- package/dist/src/mcpl/reference-fetcher.js +243 -76
- package/dist/src/mcpl/reference-fetcher.js.map +1 -1
- package/dist/src/mcpl/references.d.ts +63 -18
- package/dist/src/mcpl/references.d.ts.map +1 -1
- package/dist/src/mcpl/references.js +117 -32
- package/dist/src/mcpl/references.js.map +1 -1
- package/dist/src/mcpl/server-connection.d.ts +326 -30
- package/dist/src/mcpl/server-connection.d.ts.map +1 -1
- package/dist/src/mcpl/server-connection.js +995 -212
- package/dist/src/mcpl/server-connection.js.map +1 -1
- package/dist/src/mcpl/server-registry.d.ts +25 -5
- package/dist/src/mcpl/server-registry.d.ts.map +1 -1
- package/dist/src/mcpl/server-registry.js +51 -12
- package/dist/src/mcpl/server-registry.js.map +1 -1
- package/dist/src/mcpl/tool-result-normalize.d.ts +54 -0
- package/dist/src/mcpl/tool-result-normalize.d.ts.map +1 -0
- package/dist/src/mcpl/tool-result-normalize.js +232 -0
- package/dist/src/mcpl/tool-result-normalize.js.map +1 -0
- package/dist/src/mcpl/transport.d.ts +56 -13
- package/dist/src/mcpl/transport.d.ts.map +1 -1
- package/dist/src/mcpl/transport.js +206 -70
- package/dist/src/mcpl/transport.js.map +1 -1
- package/dist/src/mcpl/types.d.ts +66 -20
- package/dist/src/mcpl/types.d.ts.map +1 -1
- package/dist/src/mcpl/types.js.map +1 -1
- package/dist/src/mcpl/visible-content.d.ts +2 -1
- package/dist/src/mcpl/visible-content.d.ts.map +1 -1
- package/dist/src/mcpl/visible-content.js +2 -1
- package/dist/src/mcpl/visible-content.js.map +1 -1
- package/dist/src/module-registry.d.ts +16 -6
- package/dist/src/module-registry.d.ts.map +1 -1
- package/dist/src/module-registry.js +65 -6
- package/dist/src/module-registry.js.map +1 -1
- package/dist/src/modules/api/index.d.ts +1 -1
- package/dist/src/modules/api/index.d.ts.map +1 -1
- package/dist/src/modules/api/index.js +3 -2
- package/dist/src/modules/api/index.js.map +1 -1
- package/dist/src/modules/discord/discord-js-client.d.ts +42 -2
- package/dist/src/modules/discord/discord-js-client.d.ts.map +1 -1
- package/dist/src/modules/discord/discord-js-client.js +268 -65
- package/dist/src/modules/discord/discord-js-client.js.map +1 -1
- package/dist/src/modules/discord/index.d.ts +27 -5
- package/dist/src/modules/discord/index.d.ts.map +1 -1
- package/dist/src/modules/discord/index.js +366 -76
- package/dist/src/modules/discord/index.js.map +1 -1
- package/dist/src/modules/discord/refusal.d.ts +14 -0
- package/dist/src/modules/discord/refusal.d.ts.map +1 -0
- package/dist/src/modules/discord/refusal.js +14 -0
- package/dist/src/modules/discord/refusal.js.map +1 -0
- package/dist/src/modules/discord/types.d.ts +17 -7
- package/dist/src/modules/discord/types.d.ts.map +1 -1
- package/dist/src/modules/health/index.d.ts.map +1 -1
- package/dist/src/modules/health/index.js +6 -2
- package/dist/src/modules/health/index.js.map +1 -1
- package/dist/src/modules/index.d.ts +1 -1
- package/dist/src/modules/index.d.ts.map +1 -1
- package/dist/src/modules/index.js +1 -1
- package/dist/src/modules/index.js.map +1 -1
- package/dist/src/modules/workspace/disk-agreement.d.ts +25 -2
- package/dist/src/modules/workspace/disk-agreement.d.ts.map +1 -1
- package/dist/src/modules/workspace/disk-agreement.js +45 -5
- package/dist/src/modules/workspace/disk-agreement.js.map +1 -1
- package/dist/src/modules/workspace/effects.d.ts +2 -1
- package/dist/src/modules/workspace/effects.d.ts.map +1 -1
- package/dist/src/modules/workspace/effects.js +19 -9
- package/dist/src/modules/workspace/effects.js.map +1 -1
- package/dist/src/modules/workspace/index.d.ts +214 -42
- package/dist/src/modules/workspace/index.d.ts.map +1 -1
- package/dist/src/modules/workspace/index.js +667 -113
- package/dist/src/modules/workspace/index.js.map +1 -1
- package/dist/src/modules/workspace/observe.d.ts +240 -8
- package/dist/src/modules/workspace/observe.d.ts.map +1 -1
- package/dist/src/modules/workspace/observe.js +554 -24
- package/dist/src/modules/workspace/observe.js.map +1 -1
- package/dist/src/modules/workspace/types.d.ts +10 -1
- package/dist/src/modules/workspace/types.d.ts.map +1 -1
- package/dist/src/modules/workspace/types.js.map +1 -1
- package/dist/src/modules/workspace/watcher.d.ts +42 -0
- package/dist/src/modules/workspace/watcher.d.ts.map +1 -1
- package/dist/src/modules/workspace/watcher.js +130 -25
- package/dist/src/modules/workspace/watcher.js.map +1 -1
- package/dist/src/silent-heartbeat.d.ts +112 -39
- package/dist/src/silent-heartbeat.d.ts.map +1 -1
- package/dist/src/silent-heartbeat.js +100 -29
- package/dist/src/silent-heartbeat.js.map +1 -1
- package/dist/src/tool-args.d.ts +40 -0
- package/dist/src/tool-args.d.ts.map +1 -0
- package/dist/src/tool-args.js +207 -0
- package/dist/src/tool-args.js.map +1 -0
- package/dist/src/tool-presentation.d.ts.map +1 -1
- package/dist/src/tool-presentation.js +9 -2
- package/dist/src/tool-presentation.js.map +1 -1
- package/dist/src/types/agent.d.ts +27 -17
- package/dist/src/types/agent.d.ts.map +1 -1
- package/dist/src/types/events.d.ts +8 -0
- package/dist/src/types/events.d.ts.map +1 -1
- package/dist/src/types/framework.d.ts +17 -2
- package/dist/src/types/framework.d.ts.map +1 -1
- package/dist/src/types/module.d.ts +54 -10
- package/dist/src/types/module.d.ts.map +1 -1
- package/dist/src/types/trace.d.ts +2 -2
- package/dist/src/types/trace.d.ts.map +1 -1
- package/package.json +3 -4
- package/src/agent.ts +99 -36
- package/src/code-execution/index.ts +1 -0
- package/src/code-execution/py-runner.ts +104 -17
- package/src/code-execution/runtime-py.ts +47 -7
- package/src/code-execution/tool-definition.ts +65 -11
- package/src/config-checks.ts +4 -2
- package/src/framework.ts +3633 -956
- package/src/gate/event-gate.ts +14 -6
- package/src/held-writes.ts +59 -0
- package/src/index.ts +19 -4
- package/src/mcpl/capability-grant.ts +1 -1
- package/src/mcpl/channel-registry.ts +613 -160
- package/src/mcpl/convert-block.ts +15 -7
- package/src/mcpl/index.ts +14 -1
- package/src/mcpl/inference-router.ts +8 -7
- package/src/mcpl/log-value.ts +10 -0
- package/src/mcpl/modern-connection.ts +1182 -0
- package/src/mcpl/prefix-rule.ts +32 -0
- package/src/mcpl/protocol-family.ts +691 -0
- package/src/mcpl/push-coalescer.ts +67 -29
- package/src/mcpl/reference-fetcher.ts +288 -82
- package/src/mcpl/references.ts +123 -33
- package/src/mcpl/server-connection.ts +1050 -221
- package/src/mcpl/server-registry.ts +50 -12
- package/src/mcpl/tool-result-normalize.ts +294 -0
- package/src/mcpl/transport.ts +204 -62
- package/src/mcpl/types.ts +67 -20
- package/src/mcpl/visible-content.ts +2 -1
- package/src/module-registry.ts +68 -13
- package/src/modules/api/index.ts +3 -2
- package/src/modules/discord/discord-js-client.ts +288 -72
- package/src/modules/discord/index.ts +380 -77
- package/src/modules/discord/refusal.ts +13 -0
- package/src/modules/discord/types.ts +17 -9
- package/src/modules/health/index.ts +6 -2
- package/src/modules/index.ts +1 -1
- package/src/modules/workspace/disk-agreement.ts +46 -5
- package/src/modules/workspace/effects.ts +18 -7
- package/src/modules/workspace/index.ts +722 -124
- package/src/modules/workspace/observe.ts +591 -22
- package/src/modules/workspace/types.ts +10 -1
- package/src/modules/workspace/watcher.ts +126 -25
- package/src/silent-heartbeat.ts +184 -59
- package/src/tool-args.ts +213 -0
- package/src/tool-presentation.ts +9 -2
- package/src/types/agent.ts +27 -17
- package/src/types/events.ts +8 -0
- package/src/types/framework.ts +17 -2
- package/src/types/module.ts +55 -10
- package/src/types/trace.ts +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/api/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/api/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAiBxD,+EAA+E;AAC/E,aAAa;AACb,+EAA+E;AAE/E,MAAM,OAAO,SAAS;IACX,IAAI,GAAG,KAAK,CAAC;IAEd,GAAG,CAAiB;IAE5B,KAAK,CAAC,KAAK,CAAC,GAAkB;QAC5B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,IAAI;QACR,sBAAsB;IACxB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,IAAc;QACjC,0BAA0B;QAC1B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC7G,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAmB,EAAE,MAAoB;QACvD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACnC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,aAAa;gBAChB,OAAO,IAAI,CAAC,aAAa,CAAC,KAAwB,CAAC,CAAC;YAEtD,KAAK,uBAAuB;gBAC1B,OAAO,IAAI,CAAC,sBAAsB,CAAC,KAAiC,CAAC,CAAC;YAExE;gBACE,OAAO,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,KAAsB;QAC1C,MAAM,QAAQ,GAAkB;YAC9B,WAAW,EAAE;gBACX;oBACE,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;oBAChD,QAAQ,EAAE,KAAK,CAAC,QAAQ;iBACzB;aACF;SACF,CAAC;QAEF,IAAI,KAAK,CAAC,gBAAgB,KAAK,KAAK,EAAE,CAAC;YACrC,QAAQ,CAAC,gBAAgB,GAAG,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC;QACzD,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,sBAAsB,CAAC,KAA+B;QAC5D,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO,EAAE,gBAAgB,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QACjD,CAAC;QACD,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;IACpC,CAAC;IAED,QAAQ;QACN,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AAED,iCAAiC;AACjC,eAAe,SAAS,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Discord.js client adapter implementing DiscordClientInterface
|
|
3
3
|
*/
|
|
4
|
-
import type { DiscordClientInterface, DiscordMessageData, DiscordGuild, DiscordChannel, HistoryMessage } from './types.js';
|
|
4
|
+
import type { DiscordClientInterface, DiscordMessageData, DiscordAttachment, DiscordGuild, DiscordChannel, HistoryMessage } from './types.js';
|
|
5
5
|
export interface DiscordJsClientConfig {
|
|
6
6
|
token: string;
|
|
7
7
|
guildIds?: string[];
|
|
@@ -31,9 +31,17 @@ export declare class DiscordJsClient implements DiscordClientInterface {
|
|
|
31
31
|
}): Promise<{
|
|
32
32
|
messageId: string;
|
|
33
33
|
threadFailure?: string;
|
|
34
|
+
note?: string;
|
|
34
35
|
}>;
|
|
36
|
+
/**
|
|
37
|
+
* Starts the thread a send asked for. The message is out by then, so when
|
|
38
|
+
* the thread isn't started, why is returned rather than thrown, in words
|
|
39
|
+
* that say the message was sent, lest the agent send it again.
|
|
40
|
+
*/
|
|
41
|
+
private threadAfterSend;
|
|
35
42
|
sendDM(userId: string, content: string): Promise<{
|
|
36
43
|
messageId: string;
|
|
44
|
+
channelId: string;
|
|
37
45
|
}>;
|
|
38
46
|
fetchMessage(channelId: string, messageId: string): Promise<string>;
|
|
39
47
|
editMessage(channelId: string, messageId: string, content: string): Promise<void>;
|
|
@@ -42,8 +50,40 @@ export declare class DiscordJsClient implements DiscordClientInterface {
|
|
|
42
50
|
createThread(channelId: string, messageId: string, name: string, autoArchiveDuration?: number): Promise<{
|
|
43
51
|
threadId: string;
|
|
44
52
|
}>;
|
|
53
|
+
/**
|
|
54
|
+
* The message a tool acts on, looked up in its channel. An empty id is
|
|
55
|
+
* refused before any request: discord.js fetches a channel's recent
|
|
56
|
+
* messages for one, not a message.
|
|
57
|
+
*/
|
|
58
|
+
private findMessage;
|
|
59
|
+
/**
|
|
60
|
+
* Runs a lookup a tool makes before its change. A lookup sends, edits and
|
|
61
|
+
* removes nothing, so one that stops on an unexpected error, such as a
|
|
62
|
+
* network failure, means the tool did nothing, which a refusal led by
|
|
63
|
+
* `lead` says, and calling it again is safe: opening a direct message
|
|
64
|
+
* channel, the one lookup that can make something on Discord, opens the
|
|
65
|
+
* same channel again. Discord refusing it, or a refusal of this module's
|
|
66
|
+
* own, passes on as it is; anything else, discord.js's own errors
|
|
67
|
+
* included, is the unexpected stop.
|
|
68
|
+
*/
|
|
69
|
+
private lookup;
|
|
70
|
+
/**
|
|
71
|
+
* Runs one tool's requests. Discord refusing any of them, which discord.js
|
|
72
|
+
* reports as a DiscordAPIError, becomes a DiscordRefusal led by `lead`, with
|
|
73
|
+
* Discord's error as its cause: a tool's change is its last request, so it
|
|
74
|
+
* wasn't made. So does discord.js refusing a call before it sends one
|
|
75
|
+
* (localRefusalReason). Anything else passes through as an unexpected error.
|
|
76
|
+
*/
|
|
77
|
+
private asked;
|
|
78
|
+
/**
|
|
79
|
+
* The channel `channelId` names, when it holds messages (and, with 'send',
|
|
80
|
+
* takes them). A channel Discord knows but that holds none, such as a
|
|
81
|
+
* category, is refused with what it is.
|
|
82
|
+
*/
|
|
83
|
+
private messageChannel;
|
|
84
|
+
private holdsNoMessages;
|
|
45
85
|
onMessage(handler: (message: DiscordMessageData) => void): void;
|
|
46
|
-
onMessageEdit(handler: (messageId: string, newContent: string) => void): void;
|
|
86
|
+
onMessageEdit(handler: (messageId: string, newContent: string, attachments?: DiscordAttachment[]) => void): void;
|
|
47
87
|
onMessageDelete(handler: (messageId: string) => void): void;
|
|
48
88
|
onReady(handler: () => void): void;
|
|
49
89
|
getBotUserId(): string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discord-js-client.d.ts","sourceRoot":"","sources":["../../../../src/modules/discord/discord-js-client.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"discord-js-client.d.ts","sourceRoot":"","sources":["../../../../src/modules/discord/discord-js-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,80 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Discord.js client adapter implementing DiscordClientInterface
|
|
3
3
|
*/
|
|
4
|
-
import { Client, GatewayIntentBits, Partials, } from 'discord.js';
|
|
4
|
+
import { ChannelType, Client, DiscordAPIError, DiscordjsError, DiscordjsErrorCodes, DiscordjsTypeError, GatewayIntentBits, Partials, RESTJSONErrorCodes, } from 'discord.js';
|
|
5
|
+
import { DiscordRefusal } from './refusal.js';
|
|
6
|
+
/** What a refused call was about, from the ids it named. */
|
|
7
|
+
function target(named) {
|
|
8
|
+
return named.channelId !== undefined ? `channel ${named.channelId}`
|
|
9
|
+
: named.guildId !== undefined ? `server ${named.guildId}`
|
|
10
|
+
: `user ${named.userId}`;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Discord's refusal of a request, worded for the agent: what was refused, and
|
|
14
|
+
* the call that shows the right id, or who can change what Discord refused.
|
|
15
|
+
* The codes are discord-api-types' RESTJSONErrorCodes, as discord.js 14.27
|
|
16
|
+
* exports them. A code without a case of its own keeps Discord's own words.
|
|
17
|
+
* `overrides` words a code as one tool means it.
|
|
18
|
+
*/
|
|
19
|
+
function refusalReason(error, named, overrides = {}) {
|
|
20
|
+
const override = typeof error.code === 'number' ? overrides[error.code] : undefined;
|
|
21
|
+
if (override !== undefined)
|
|
22
|
+
return override;
|
|
23
|
+
switch (error.code) {
|
|
24
|
+
case RESTJSONErrorCodes.UnknownChannel:
|
|
25
|
+
return `no ${target(named)} is visible to this bot. The id may be mistyped or remembered rather than copied; discord--list_guilds, then discord--list_channels with a guildId, shows the ids. Threads aren't listed there: a thread started from a message has that message's id, which discord--fetch_history of its channel shows. Nor are direct message channels: one's id is the channelId an earlier discord--dm to that user returned.`;
|
|
26
|
+
case RESTJSONErrorCodes.UnknownGuild:
|
|
27
|
+
return `no server ${named.guildId} is visible to this bot. discord--list_guilds shows the servers it is in, with their ids.`;
|
|
28
|
+
case RESTJSONErrorCodes.UnknownMessage:
|
|
29
|
+
return `channel ${named.channelId} has no message ${named.messageId} that this bot can see. discord--fetch_history with that channelId shows its recent messages and their ids.`;
|
|
30
|
+
case RESTJSONErrorCodes.UnknownUser:
|
|
31
|
+
return `Discord knows no user ${named.userId}. The id may be mistyped or remembered rather than copied; discord--fetch_history of a channel they wrote in shows its messages' authors' ids.`;
|
|
32
|
+
case RESTJSONErrorCodes.UnknownEmoji:
|
|
33
|
+
return unknownEmoji(named);
|
|
34
|
+
case RESTJSONErrorCodes.MissingAccess:
|
|
35
|
+
return `this bot can't see ${target(named)} (Discord answered "Missing Access"), and calling again won't change that. `
|
|
36
|
+
+ 'Ask whoever runs this host to give it access.';
|
|
37
|
+
case RESTJSONErrorCodes.MissingPermissions:
|
|
38
|
+
return `this bot isn't allowed to do that${named.channelId !== undefined || named.guildId !== undefined ? ` in ${target(named)}` : ''} (Discord answered "Missing Permissions"), and calling again won't change that. `
|
|
39
|
+
+ 'Ask whoever runs this host to grant the permission.';
|
|
40
|
+
case RESTJSONErrorCodes.CannotEditMessageAuthoredByAnotherUser:
|
|
41
|
+
return `message ${named.messageId} was written by someone else, and this bot can edit only its own messages.`;
|
|
42
|
+
case RESTJSONErrorCodes.CannotSendMessagesToThisUser:
|
|
43
|
+
return `Discord won't deliver a direct message from this bot ${named.userId !== undefined ? `to user ${named.userId}` : `in channel ${named.channelId}`}, usually because they share no server or don't accept direct messages, and calling again won't change that.`;
|
|
44
|
+
default:
|
|
45
|
+
return `Discord refused the request: ${error.message}`;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/** Discord starts a thread from a message only in a server's text or announcement channel; a forum's or media channel's threads are its posts. */
|
|
49
|
+
function cantHoldThreads(named) {
|
|
50
|
+
return `${target(named)} can't hold threads. A message can start one only in a server's text or announcement channel.`;
|
|
51
|
+
}
|
|
52
|
+
/** A message that has a thread: discord.js finds a message's thread by the message's own id (Message#thread). */
|
|
53
|
+
function existingThread(named) {
|
|
54
|
+
return `message ${named.messageId} already has a thread, whose id is the message's own: discord--send with channelId ${named.messageId} posts in it.`;
|
|
55
|
+
}
|
|
56
|
+
function unknownEmoji(named) {
|
|
57
|
+
return `Discord doesn't know the emoji ${JSON.stringify(named.emoji)}. Use a Unicode emoji, such as "👍", or a custom one as name:id from a server this bot is in.`;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* discord.js's own refusal of a call, before it sends any request: a message
|
|
61
|
+
* whose channel can't hold threads, one that already has a thread, or an
|
|
62
|
+
* emoji it can't read. Any other error has no words here.
|
|
63
|
+
*/
|
|
64
|
+
function localRefusalReason(error, named) {
|
|
65
|
+
if (!(error instanceof DiscordjsError) && !(error instanceof DiscordjsTypeError))
|
|
66
|
+
return undefined;
|
|
67
|
+
switch (error.code) {
|
|
68
|
+
case DiscordjsErrorCodes.MessageThreadParent:
|
|
69
|
+
return cantHoldThreads(named);
|
|
70
|
+
case DiscordjsErrorCodes.MessageExistingThread:
|
|
71
|
+
return existingThread(named);
|
|
72
|
+
case DiscordjsErrorCodes.EmojiType:
|
|
73
|
+
return `this bot can't read ${JSON.stringify(named.emoji)} as an emoji, so Discord wasn't asked. Use a Unicode emoji, such as "👍", or a custom one as name:id from a server this bot is in.`;
|
|
74
|
+
default:
|
|
75
|
+
return undefined;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
5
78
|
/** An attachment as both a live message and history carry it. */
|
|
6
79
|
function toAttachment(a) {
|
|
7
80
|
return {
|
|
@@ -45,14 +118,19 @@ export class DiscordJsClient {
|
|
|
45
118
|
this.messageHandler(this.convertMessage(message));
|
|
46
119
|
}
|
|
47
120
|
});
|
|
48
|
-
this.client.on('messageUpdate', (
|
|
121
|
+
this.client.on('messageUpdate', (oldMessage, newMessage) => {
|
|
49
122
|
// content is null for a partial message, one discord.js hadn't cached
|
|
50
123
|
// and whose update carried no text, so there's no text to compare; a
|
|
51
124
|
// cached message keeps the text it had. An edit that leaves no text,
|
|
52
125
|
// beside an attachment, is '' and is still an edit.
|
|
53
126
|
if (typeof newMessage.content !== 'string' || !this.editHandler)
|
|
54
127
|
return;
|
|
55
|
-
|
|
128
|
+
// Its attachments as the edit left them, for a message discord.js had
|
|
129
|
+
// cached: it takes the update's list when the update carries one and
|
|
130
|
+
// keeps the cached list when it doesn't. A message it hadn't cached
|
|
131
|
+
// starts with an empty list, so one whose update carried none would read
|
|
132
|
+
// as having none; it passes none, and the row's blocks stay.
|
|
133
|
+
this.editHandler(newMessage.id, newMessage.content, oldMessage.partial ? undefined : newMessage.attachments?.map(toAttachment));
|
|
56
134
|
});
|
|
57
135
|
this.client.on('messageDelete', (message) => {
|
|
58
136
|
if (this.deleteHandler) {
|
|
@@ -120,31 +198,68 @@ export class DiscordJsClient {
|
|
|
120
198
|
return this.client.isReady();
|
|
121
199
|
}
|
|
122
200
|
async sendMessage(channelId, content, options) {
|
|
123
|
-
const
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
201
|
+
const lead = 'Nothing was sent';
|
|
202
|
+
const { textChannel, message } = await this.asked(lead, { channelId }, async () => {
|
|
203
|
+
const textChannel = await this.lookup(lead, `channel ${channelId}`, () => this.messageChannel(channelId, lead, 'send'));
|
|
204
|
+
const message = await textChannel.send({
|
|
205
|
+
content,
|
|
206
|
+
reply: options?.replyTo ? { messageReference: options.replyTo } : undefined,
|
|
207
|
+
});
|
|
208
|
+
return { textChannel, message };
|
|
131
209
|
});
|
|
132
|
-
if (options?.createThread
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
210
|
+
if (!options?.createThread)
|
|
211
|
+
return { messageId: message.id };
|
|
212
|
+
// A channel without threads, such as a DM, gets none, and the send
|
|
213
|
+
// succeeds, as it did; its note says so.
|
|
214
|
+
if (!('threads' in textChannel)) {
|
|
215
|
+
return { messageId: message.id, note: `No thread was started: ${cantHoldThreads({ channelId })}` };
|
|
216
|
+
}
|
|
217
|
+
const threadFailure = await this.threadAfterSend(message, channelId, options.createThread.name);
|
|
218
|
+
return threadFailure === undefined ? { messageId: message.id } : { messageId: message.id, threadFailure };
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Starts the thread a send asked for. The message is out by then, so when
|
|
222
|
+
* the thread isn't started, why is returned rather than thrown, in words
|
|
223
|
+
* that say the message was sent, lest the agent send it again.
|
|
224
|
+
*/
|
|
225
|
+
async threadAfterSend(message, channelId, name) {
|
|
226
|
+
const sent = `The message was sent (id ${message.id}), so don't send it again`;
|
|
227
|
+
const named = { channelId, messageId: message.id };
|
|
228
|
+
const startOne = `discord--create_thread with channelId ${channelId}, messageId ${message.id} and a name`;
|
|
229
|
+
try {
|
|
230
|
+
await message.startThread({ name });
|
|
231
|
+
return undefined;
|
|
232
|
+
}
|
|
233
|
+
catch (error) {
|
|
234
|
+
if (error instanceof DiscordAPIError) {
|
|
235
|
+
// Discord answers a retried start that it had already carried out as
|
|
236
|
+
// a thread that exists: say it's there.
|
|
237
|
+
if (error.code === RESTJSONErrorCodes.ThreadAlreadyCreatedForMessage)
|
|
238
|
+
return `${sent}, and its thread exists already, with the message's own id, ${message.id}.`;
|
|
239
|
+
// The message is out, and `named` holds it, so no sentence points
|
|
240
|
+
// elsewhere, where posting it again would post it twice.
|
|
241
|
+
// The bot has just posted in the channel, so Missing Access is about
|
|
242
|
+
// its threads, not about seeing it.
|
|
243
|
+
const permission = `this bot isn't allowed to start threads in channel ${channelId} (Discord answered "Missing Permissions"), and calling again won't change that. Ask whoever runs this host to grant the permission.`;
|
|
244
|
+
const access = `this bot can't start threads in channel ${channelId} (Discord answered "Missing Access"), and calling again won't change that. Ask whoever runs this host to give it access.`;
|
|
245
|
+
return `${sent}, but no thread was started: ${refusalReason(error, named, { [RESTJSONErrorCodes.MissingPermissions]: permission, [RESTJSONErrorCodes.MissingAccess]: access })} Once that's settled, ${startOne} starts one.`;
|
|
140
246
|
}
|
|
247
|
+
// The thread refusals localRefusalReason words, a message outside a
|
|
248
|
+
// text or announcement channel and one that has a thread, can't come
|
|
249
|
+
// for a message just sent in a channel that holds threads.
|
|
250
|
+
return `${sent}, but starting its thread stopped on an unexpected error: ${error instanceof Error ? error.message : String(error)}. ` +
|
|
251
|
+
`Whether the thread exists is unknown: discord--fetch_history with channelId ${message.id} reads the thread if it exists and is refused if it doesn't, and then ${startOne} starts one.`;
|
|
141
252
|
}
|
|
142
|
-
return { messageId: message.id };
|
|
143
253
|
}
|
|
144
254
|
async sendDM(userId, content) {
|
|
145
|
-
const
|
|
146
|
-
|
|
147
|
-
|
|
255
|
+
const lead = 'Nothing was sent';
|
|
256
|
+
return this.asked(lead, { userId }, async () => {
|
|
257
|
+
const user = await this.lookup(lead, `user ${userId}`, () => this.client.users.fetch(userId));
|
|
258
|
+
// User#send opens the direct message channel first, which sends nothing.
|
|
259
|
+
const channel = await this.lookup(lead, `the direct message channel with user ${userId}`, () => user.createDM());
|
|
260
|
+
const message = await channel.send(content);
|
|
261
|
+
return { messageId: message.id, channelId: message.channelId };
|
|
262
|
+
});
|
|
148
263
|
}
|
|
149
264
|
async fetchMessage(channelId, messageId) {
|
|
150
265
|
const channel = await this.client.channels.fetch(channelId);
|
|
@@ -155,40 +270,132 @@ export class DiscordJsClient {
|
|
|
155
270
|
return message.content;
|
|
156
271
|
}
|
|
157
272
|
async editMessage(channelId, messageId, content) {
|
|
158
|
-
const
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
await message.edit(content);
|
|
273
|
+
const lead = 'Nothing was edited';
|
|
274
|
+
await this.asked(lead, { channelId, messageId }, async () => {
|
|
275
|
+
const message = await this.findMessage(channelId, messageId, lead);
|
|
276
|
+
await message.edit(content);
|
|
277
|
+
});
|
|
164
278
|
}
|
|
165
279
|
async deleteMessage(channelId, messageId) {
|
|
166
|
-
const
|
|
167
|
-
|
|
168
|
-
|
|
280
|
+
const lead = 'Nothing was deleted';
|
|
281
|
+
try {
|
|
282
|
+
await this.asked(lead, { channelId, messageId }, async () => {
|
|
283
|
+
const message = await this.findMessage(channelId, messageId, lead);
|
|
284
|
+
await message.delete();
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
catch (error) {
|
|
288
|
+
// A message that isn't there may be one an earlier call deleted, or a
|
|
289
|
+
// retried request of this one, so its sentence has no lead.
|
|
290
|
+
if (error instanceof DiscordRefusal && error.cause instanceof DiscordAPIError && error.cause.code === RESTJSONErrorCodes.UnknownMessage) {
|
|
291
|
+
throw new DiscordRefusal(`Channel ${channelId} has no message ${messageId} now: it's deleted, or the id is wrong. discord--fetch_history with that channelId shows its recent messages and their ids.`, { cause: error.cause });
|
|
292
|
+
}
|
|
293
|
+
throw error;
|
|
169
294
|
}
|
|
170
|
-
const message = await channel.messages.fetch(messageId);
|
|
171
|
-
await message.delete();
|
|
172
295
|
}
|
|
173
296
|
async addReaction(channelId, messageId, emoji) {
|
|
174
|
-
const
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
await message.react(emoji);
|
|
297
|
+
const lead = 'No reaction was added';
|
|
298
|
+
await this.asked(lead, { channelId, messageId, emoji }, async () => {
|
|
299
|
+
const message = await this.findMessage(channelId, messageId, lead);
|
|
300
|
+
await message.react(emoji);
|
|
301
|
+
});
|
|
180
302
|
}
|
|
181
303
|
async createThread(channelId, messageId, name, autoArchiveDuration) {
|
|
304
|
+
const lead = 'No thread was started';
|
|
305
|
+
try {
|
|
306
|
+
return await this.asked(lead, { channelId, messageId }, async () => {
|
|
307
|
+
const message = await this.findMessage(channelId, messageId, lead);
|
|
308
|
+
const thread = await message.startThread({
|
|
309
|
+
name,
|
|
310
|
+
autoArchiveDuration: autoArchiveDuration ?? 1440,
|
|
311
|
+
});
|
|
312
|
+
return { threadId: thread.id };
|
|
313
|
+
});
|
|
314
|
+
}
|
|
315
|
+
catch (error) {
|
|
316
|
+
// Discord's answer for a message that has a thread, whether an earlier
|
|
317
|
+
// call started it or a retried request of this one did.
|
|
318
|
+
if (error instanceof DiscordRefusal && error.cause instanceof DiscordAPIError && error.cause.code === RESTJSONErrorCodes.ThreadAlreadyCreatedForMessage) {
|
|
319
|
+
throw new DiscordRefusal(`Message ${messageId} has a thread already, whose id is the message's own: discord--send with channelId ${messageId} posts in it.`, { cause: error.cause });
|
|
320
|
+
}
|
|
321
|
+
throw error;
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* The message a tool acts on, looked up in its channel. An empty id is
|
|
326
|
+
* refused before any request: discord.js fetches a channel's recent
|
|
327
|
+
* messages for one, not a message.
|
|
328
|
+
*/
|
|
329
|
+
findMessage(channelId, messageId, lead) {
|
|
330
|
+
if (!messageId) {
|
|
331
|
+
return Promise.reject(new DiscordRefusal(`${lead}: the call gave no message id. discord--fetch_history with channelId ${channelId} shows its recent messages and their ids.`));
|
|
332
|
+
}
|
|
333
|
+
return this.lookup(lead, `message ${messageId} in channel ${channelId}`, async () => (await this.messageChannel(channelId, lead, 'messages')).messages.fetch(messageId));
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* Runs a lookup a tool makes before its change. A lookup sends, edits and
|
|
337
|
+
* removes nothing, so one that stops on an unexpected error, such as a
|
|
338
|
+
* network failure, means the tool did nothing, which a refusal led by
|
|
339
|
+
* `lead` says, and calling it again is safe: opening a direct message
|
|
340
|
+
* channel, the one lookup that can make something on Discord, opens the
|
|
341
|
+
* same channel again. Discord refusing it, or a refusal of this module's
|
|
342
|
+
* own, passes on as it is; anything else, discord.js's own errors
|
|
343
|
+
* included, is the unexpected stop.
|
|
344
|
+
*/
|
|
345
|
+
async lookup(lead, what, run) {
|
|
346
|
+
try {
|
|
347
|
+
return await run();
|
|
348
|
+
}
|
|
349
|
+
catch (error) {
|
|
350
|
+
if (error instanceof DiscordAPIError || error instanceof DiscordRefusal)
|
|
351
|
+
throw error;
|
|
352
|
+
throw new DiscordRefusal(`${lead}: looking up ${what} stopped on an unexpected error: ${error instanceof Error ? error.message : String(error)}. Calling it again is safe.`, { cause: error });
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* Runs one tool's requests. Discord refusing any of them, which discord.js
|
|
357
|
+
* reports as a DiscordAPIError, becomes a DiscordRefusal led by `lead`, with
|
|
358
|
+
* Discord's error as its cause: a tool's change is its last request, so it
|
|
359
|
+
* wasn't made. So does discord.js refusing a call before it sends one
|
|
360
|
+
* (localRefusalReason). Anything else passes through as an unexpected error.
|
|
361
|
+
*/
|
|
362
|
+
async asked(lead, named, run) {
|
|
363
|
+
try {
|
|
364
|
+
return await run();
|
|
365
|
+
}
|
|
366
|
+
catch (error) {
|
|
367
|
+
if (error instanceof DiscordAPIError)
|
|
368
|
+
throw new DiscordRefusal(`${lead}: ${refusalReason(error, named)}`, { cause: error });
|
|
369
|
+
const local = localRefusalReason(error, named);
|
|
370
|
+
if (local !== undefined)
|
|
371
|
+
throw new DiscordRefusal(`${lead}: ${local}`, { cause: error });
|
|
372
|
+
throw error;
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
/**
|
|
376
|
+
* The channel `channelId` names, when it holds messages (and, with 'send',
|
|
377
|
+
* takes them). A channel Discord knows but that holds none, such as a
|
|
378
|
+
* category, is refused with what it is.
|
|
379
|
+
*/
|
|
380
|
+
async messageChannel(channelId, lead, need) {
|
|
182
381
|
const channel = await this.client.channels.fetch(channelId);
|
|
183
|
-
if (!channel || !(
|
|
184
|
-
throw new
|
|
382
|
+
if (!channel || !(need in channel)) {
|
|
383
|
+
throw new DiscordRefusal(`${lead}: ${this.holdsNoMessages(channelId, channel)}`);
|
|
185
384
|
}
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
385
|
+
return channel;
|
|
386
|
+
}
|
|
387
|
+
holdsNoMessages(channelId, channel) {
|
|
388
|
+
if (!channel) {
|
|
389
|
+
return `this bot can't use channel ${channelId}: Discord answered for it, but it's a kind of channel this bot doesn't handle, or its server isn't loaded here, and calling again won't change that. Ask whoever runs this host if you need it.`;
|
|
390
|
+
}
|
|
391
|
+
const type = this.mapChannelType(channel.type);
|
|
392
|
+
const inPosts = (kind) => `${kind}, whose messages are in its posts, each a thread with its own id, which this module has no tool to list`;
|
|
393
|
+
const is = type === 'category' ? 'a category, which holds channels, not messages'
|
|
394
|
+
: type === 'forum' ? inPosts('a forum')
|
|
395
|
+
: channel.type === ChannelType.GuildMedia ? inPosts('a media channel')
|
|
396
|
+
: type === 'unknown' ? 'a kind of channel that holds no messages'
|
|
397
|
+
: `a ${type} channel, which holds no messages`;
|
|
398
|
+
return `channel ${channelId} is ${is}. discord--list_channels with a guildId shows the server's channels and their ids.`;
|
|
192
399
|
}
|
|
193
400
|
onMessage(handler) {
|
|
194
401
|
this.messageHandler = handler;
|
|
@@ -222,15 +429,12 @@ export class DiscordJsClient {
|
|
|
222
429
|
}));
|
|
223
430
|
}
|
|
224
431
|
async listChannels(guildId) {
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
throw new Error(`Guild ${guildId} channels not available - may need to re-fetch with force`);
|
|
232
|
-
}
|
|
233
|
-
const channels = await guild.channels.fetch();
|
|
432
|
+
// An unknown or unreachable server is Discord's refusal (fetch throws);
|
|
433
|
+
// a fetched Guild always carries its channel manager.
|
|
434
|
+
const channels = await this.asked('Nothing was listed', { guildId }, async () => {
|
|
435
|
+
const guild = await this.client.guilds.fetch(guildId);
|
|
436
|
+
return guild.channels.fetch();
|
|
437
|
+
});
|
|
234
438
|
const result = [];
|
|
235
439
|
channels.forEach((c) => {
|
|
236
440
|
if (c) {
|
|
@@ -260,14 +464,13 @@ export class DiscordJsClient {
|
|
|
260
464
|
}
|
|
261
465
|
}
|
|
262
466
|
async fetchHistory(channelId, options) {
|
|
263
|
-
const
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
before: options?.before,
|
|
467
|
+
const lead = 'No history was read';
|
|
468
|
+
const messages = await this.asked(lead, { channelId, messageId: options?.before }, async () => {
|
|
469
|
+
const textChannel = await this.messageChannel(channelId, lead, 'messages');
|
|
470
|
+
return textChannel.messages.fetch({
|
|
471
|
+
limit: options?.limit ?? 50,
|
|
472
|
+
before: options?.before,
|
|
473
|
+
});
|
|
271
474
|
});
|
|
272
475
|
return messages.map((m) => ({
|
|
273
476
|
id: m.id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discord-js-client.js","sourceRoot":"","sources":["../../../../src/modules/discord/discord-js-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"discord-js-client.js","sourceRoot":"","sources":["../../../../src/modules/discord/discord-js-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,7 @@ import type { DiscordModuleConfig, DiscordClientInterface } from './types.js';
|
|
|
12
12
|
export type { DiscordMessageEvent, DiscordEditEvent, DiscordDeleteEvent } from './types.js';
|
|
13
13
|
export * from './types.js';
|
|
14
14
|
export { DiscordJsClient, type DiscordJsClientConfig } from './discord-js-client.js';
|
|
15
|
+
export { DiscordRefusal } from './refusal.js';
|
|
15
16
|
/**
|
|
16
17
|
* Discord module for the agent framework.
|
|
17
18
|
*/
|
|
@@ -25,6 +26,7 @@ export declare class DiscordModule implements Module {
|
|
|
25
26
|
private replyContexts;
|
|
26
27
|
private lastPosts;
|
|
27
28
|
private readonly liveDuringSync;
|
|
29
|
+
private readonly creating;
|
|
28
30
|
private typingLoops;
|
|
29
31
|
private unsubscribeTrace;
|
|
30
32
|
constructor(client: DiscordClientInterface, config: DiscordModuleConfig);
|
|
@@ -59,7 +61,8 @@ export declare class DiscordModule implements Module {
|
|
|
59
61
|
private syncAllChannelHistory;
|
|
60
62
|
/**
|
|
61
63
|
* Sync history for a specific channel - compare with Context Manager and update.
|
|
62
|
-
* Uses queryMessages() to enumerate
|
|
64
|
+
* Uses queryMessages() to enumerate the channel's rows, a held write's among
|
|
65
|
+
* them, for proper edit/delete detection.
|
|
63
66
|
*
|
|
64
67
|
* The live path can store, edit or remove a row whenever the sync awaits.
|
|
65
68
|
* So the sync fetches history and runs the live conversion it needs first,
|
|
@@ -75,12 +78,21 @@ export declare class DiscordModule implements Module {
|
|
|
75
78
|
*/
|
|
76
79
|
private syncChannelHistory;
|
|
77
80
|
/** A channel's stored Discord rows by their Discord message id, whole: an
|
|
78
|
-
* edit replaces a row's own text and keeps what the host added beside it.
|
|
81
|
+
* edit replaces a row's own text and keeps what the host added beside it.
|
|
82
|
+
* Each id's rows are in store order. A message stored twice holds two,
|
|
83
|
+
* of which a sync acts on the first, as the live path does (storedRow),
|
|
84
|
+
* and a delete takes both. A write the framework holds is a row too
|
|
85
|
+
* (storedRows). */
|
|
79
86
|
private storedByDiscordId;
|
|
80
|
-
/** The stored
|
|
81
|
-
*
|
|
87
|
+
/** The stored rows of a Discord message, by its id in the row's metadata,
|
|
88
|
+
* in store order. A write the framework holds comes after them as a held
|
|
89
|
+
* row, which an edit or removal reaches as it does a stored one. The
|
|
90
|
+
* module context's findMessageByExternalId holds only rows the module
|
|
82
91
|
* stored through its context, not those a process response added, so it
|
|
83
92
|
* misses what the live path stored. */
|
|
93
|
+
private storedRows;
|
|
94
|
+
/** The row an edit or a create acts on: a message's first row, a stored
|
|
95
|
+
* one before a held one (storedRows). */
|
|
84
96
|
private storedRow;
|
|
85
97
|
/** Marks a Discord message as the live path's for every history sync running now. */
|
|
86
98
|
private noteLive;
|
|
@@ -113,7 +125,17 @@ export declare class DiscordModule implements Module {
|
|
|
113
125
|
private handleListChannels;
|
|
114
126
|
private handleFetchHistory;
|
|
115
127
|
private extractText;
|
|
116
|
-
private
|
|
128
|
+
private rateLimitPerMinute;
|
|
129
|
+
/** The limit, as the rate-limit refusals word it. */
|
|
130
|
+
private rateLimitRule;
|
|
131
|
+
/**
|
|
132
|
+
* Counts a send to `channelId` against its limit and returns 0, or, when
|
|
133
|
+
* the channel has had its sends for this window, returns the whole seconds
|
|
134
|
+
* until the window ends, at least 1. A window is the minute from the first
|
|
135
|
+
* send this lets through, and each send it lets through counts, whether or
|
|
136
|
+
* not Discord then takes it.
|
|
137
|
+
*/
|
|
138
|
+
private rateLimitWait;
|
|
117
139
|
private cleanupOldConversations;
|
|
118
140
|
}
|
|
119
141
|
//# sourceMappingURL=index.d.ts.map
|