@cogitator-ai/channels 0.15.12 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/README.md +129 -23
  2. package/dist/assistant-config.d.ts +78 -0
  3. package/dist/assistant-config.d.ts.map +1 -1
  4. package/dist/assistant-config.js +127 -0
  5. package/dist/assistant-config.js.map +1 -1
  6. package/dist/channels/bluesky/channel.d.ts.map +1 -1
  7. package/dist/channels/bluesky/channel.js +1 -0
  8. package/dist/channels/bluesky/channel.js.map +1 -1
  9. package/dist/channels/email/address.d.ts +44 -0
  10. package/dist/channels/email/address.d.ts.map +1 -0
  11. package/dist/channels/email/address.js +211 -0
  12. package/dist/channels/email/address.js.map +1 -0
  13. package/dist/channels/email/auth.d.ts +59 -0
  14. package/dist/channels/email/auth.d.ts.map +1 -0
  15. package/dist/channels/email/auth.js +212 -0
  16. package/dist/channels/email/auth.js.map +1 -0
  17. package/dist/channels/email/channel.d.ts +256 -0
  18. package/dist/channels/email/channel.d.ts.map +1 -0
  19. package/dist/channels/email/channel.js +701 -0
  20. package/dist/channels/email/channel.js.map +1 -0
  21. package/dist/channels/email/errors.d.ts +11 -0
  22. package/dist/channels/email/errors.d.ts.map +1 -0
  23. package/dist/channels/email/errors.js +13 -0
  24. package/dist/channels/email/errors.js.map +1 -0
  25. package/dist/channels/email/imap.d.ts +125 -0
  26. package/dist/channels/email/imap.d.ts.map +1 -0
  27. package/dist/channels/email/imap.js +309 -0
  28. package/dist/channels/email/imap.js.map +1 -0
  29. package/dist/channels/email/index.d.ts +7 -0
  30. package/dist/channels/email/index.d.ts.map +1 -0
  31. package/dist/channels/email/index.js +3 -0
  32. package/dist/channels/email/index.js.map +1 -0
  33. package/dist/channels/email/mime.d.ts +71 -0
  34. package/dist/channels/email/mime.d.ts.map +1 -0
  35. package/dist/channels/email/mime.js +83 -0
  36. package/dist/channels/email/mime.js.map +1 -0
  37. package/dist/channels/email/multipart.d.ts +28 -0
  38. package/dist/channels/email/multipart.d.ts.map +1 -0
  39. package/dist/channels/email/multipart.js +102 -0
  40. package/dist/channels/email/multipart.js.map +1 -0
  41. package/dist/channels/email/providers.d.ts +49 -0
  42. package/dist/channels/email/providers.d.ts.map +1 -0
  43. package/dist/channels/email/providers.js +292 -0
  44. package/dist/channels/email/providers.js.map +1 -0
  45. package/dist/channels/email/reply.d.ts +9 -0
  46. package/dist/channels/email/reply.d.ts.map +1 -0
  47. package/dist/channels/email/reply.js +122 -0
  48. package/dist/channels/email/reply.js.map +1 -0
  49. package/dist/channels/github/channel.d.ts +222 -0
  50. package/dist/channels/github/channel.d.ts.map +1 -0
  51. package/dist/channels/github/channel.js +736 -0
  52. package/dist/channels/github/channel.js.map +1 -0
  53. package/dist/channels/github/client.d.ts +45 -0
  54. package/dist/channels/github/client.d.ts.map +1 -0
  55. package/dist/channels/github/client.js +119 -0
  56. package/dist/channels/github/client.js.map +1 -0
  57. package/dist/channels/github/events.d.ts +49 -0
  58. package/dist/channels/github/events.d.ts.map +1 -0
  59. package/dist/channels/github/events.js +147 -0
  60. package/dist/channels/github/events.js.map +1 -0
  61. package/dist/channels/github/index.d.ts +4 -0
  62. package/dist/channels/github/index.d.ts.map +1 -0
  63. package/dist/channels/github/index.js +4 -0
  64. package/dist/channels/github/index.js.map +1 -0
  65. package/dist/channels/slack.d.ts.map +1 -1
  66. package/dist/channels/slack.js +2 -1
  67. package/dist/channels/slack.js.map +1 -1
  68. package/dist/channels/telegram.d.ts.map +1 -1
  69. package/dist/channels/telegram.js +14 -6
  70. package/dist/channels/telegram.js.map +1 -1
  71. package/dist/channels/threads/channel.d.ts.map +1 -1
  72. package/dist/channels/threads/channel.js +1 -0
  73. package/dist/channels/threads/channel.js.map +1 -1
  74. package/dist/channels/webchat.d.ts +8 -0
  75. package/dist/channels/webchat.d.ts.map +1 -1
  76. package/dist/channels/webchat.js +54 -15
  77. package/dist/channels/webchat.js.map +1 -1
  78. package/dist/channels/whatsapp.d.ts.map +1 -1
  79. package/dist/channels/whatsapp.js +13 -0
  80. package/dist/channels/whatsapp.js.map +1 -1
  81. package/dist/formatters/html.d.ts +16 -0
  82. package/dist/formatters/html.d.ts.map +1 -0
  83. package/dist/formatters/html.js +535 -0
  84. package/dist/formatters/html.js.map +1 -0
  85. package/dist/formatters/markdown.d.ts.map +1 -1
  86. package/dist/formatters/markdown.js +2 -0
  87. package/dist/formatters/markdown.js.map +1 -1
  88. package/dist/gateway.d.ts +91 -1
  89. package/dist/gateway.d.ts.map +1 -1
  90. package/dist/gateway.js +345 -46
  91. package/dist/gateway.js.map +1 -1
  92. package/dist/heartbeat.d.ts +5 -1
  93. package/dist/heartbeat.d.ts.map +1 -1
  94. package/dist/heartbeat.js +13 -3
  95. package/dist/heartbeat.js.map +1 -1
  96. package/dist/inbound-debounce.d.ts +4 -1
  97. package/dist/inbound-debounce.d.ts.map +1 -1
  98. package/dist/inbound-debounce.js +4 -2
  99. package/dist/inbound-debounce.js.map +1 -1
  100. package/dist/index.d.ts +8 -2
  101. package/dist/index.d.ts.map +1 -1
  102. package/dist/index.js +6 -2
  103. package/dist/index.js.map +1 -1
  104. package/dist/merge-messages.d.ts +3 -2
  105. package/dist/merge-messages.d.ts.map +1 -1
  106. package/dist/merge-messages.js +4 -2
  107. package/dist/merge-messages.js.map +1 -1
  108. package/dist/message-queue.d.ts +14 -4
  109. package/dist/message-queue.d.ts.map +1 -1
  110. package/dist/message-queue.js +36 -35
  111. package/dist/message-queue.js.map +1 -1
  112. package/dist/runtime-builder.d.ts +9 -0
  113. package/dist/runtime-builder.d.ts.map +1 -1
  114. package/dist/runtime-builder.js +149 -5
  115. package/dist/runtime-builder.js.map +1 -1
  116. package/dist/thread-key.d.ts +50 -0
  117. package/dist/thread-key.d.ts.map +1 -0
  118. package/dist/thread-key.js +82 -0
  119. package/dist/thread-key.js.map +1 -0
  120. package/package.json +26 -8
package/dist/gateway.d.ts CHANGED
@@ -23,6 +23,12 @@ export interface GatewayFullConfig extends GatewayConfig {
23
23
  * the prompt cache they open with
24
24
  */
25
25
  brief?: (msg: ChannelMessage) => string | undefined;
26
+ /**
27
+ * How long {@link Gateway.stop} waits for the queued messages and the runs in progress to be
28
+ * answered, in milliseconds (default 30000). What is still running then is aborted, and what
29
+ * is still waiting is dropped.
30
+ */
31
+ drainTimeout?: number;
26
32
  }
27
33
  export interface GatewaySessionInfo {
28
34
  threadId: string;
@@ -33,6 +39,8 @@ export interface GatewaySessionInfo {
33
39
  lastActiveAt: number;
34
40
  active: boolean;
35
41
  }
42
+ /** Threads kept in the gateway's own bookkeeping (stats, sessions, envelope times) */
43
+ export declare const MAX_TRACKED_THREADS = 10000;
36
44
  export declare class Gateway {
37
45
  private readonly config;
38
46
  private readonly channels;
@@ -44,6 +52,8 @@ export declare class Gateway {
44
52
  private readonly hooks;
45
53
  private readonly approvalWords;
46
54
  private readonly pausedThreads;
55
+ /** The stop of every run in progress */
56
+ private readonly runs;
47
57
  /** The stop of each run, by the signal the run was given */
48
58
  private readonly stops;
49
59
  /** The stop of each run streaming into a draft with a stop button, by channel, chat and draft */
@@ -53,16 +63,57 @@ export declare class Gateway {
53
63
  private readonly lastMessageTime;
54
64
  private readonly threads;
55
65
  private readonly inFlight;
66
+ /** Messages taken and not answered yet, for {@link idle} */
67
+ private readonly pending;
68
+ /** The stop in progress, which a second {@link stop} call returns */
69
+ private stopping;
70
+ /** Calls of `channel.redeliver` in progress */
71
+ private readonly redeliveries;
72
+ /**
73
+ * Messages taken from a channel that can redeliver them, by the promise of their answer, until
74
+ * it settles. Those still here once `stop()` gave up on the runs are handed back.
75
+ */
76
+ private readonly unanswered;
77
+ /**
78
+ * Messages whose answer is going out or went out, by `answerKey`, so a run aborted after its
79
+ * first message was sent (or while it is being sent) is not redelivered
80
+ */
81
+ private readonly answeredKeys;
82
+ /** The last pending write of each user's session, so writes to one session never interleave */
83
+ private readonly sessionWrites;
56
84
  private running;
57
85
  private startedAt;
58
86
  private messageCount;
59
87
  private messageCountDay;
60
88
  constructor(config: GatewayFullConfig);
61
89
  start(): Promise<void>;
90
+ /**
91
+ * Stops the gateway. Channels have already confirmed the messages they handed over, so it
92
+ * first lets them be answered: messages held by `debounce` are flushed, and it waits up to
93
+ * `drainTimeout` for the queues and the runs in progress. Then it aborts the runs still going,
94
+ * drops the messages still waiting, waits for the aborted runs to settle (up to `drainTimeout`
95
+ * again) and stops the channels. Messages that come in meanwhile are refused (see
96
+ * {@link injectMessage}). A second call while it stops returns the same promise.
97
+ */
62
98
  stop(): Promise<void>;
99
+ private drainAndStop;
63
100
  get stats(): GatewayStats;
64
101
  getSessions(): GatewaySessionInfo[];
102
+ /**
103
+ * Feeds a message to the gateway as if a channel had received it (the scheduler sends its
104
+ * tasks this way). It resolves once the message is answered, or once it is buffered when
105
+ * `debounce` is on. It rejects when the message was not answered: its run failed (also
106
+ * reported to `onError`), it was aborted or dropped by {@link stop}, or it came in while the
107
+ * gateway was stopping.
108
+ */
65
109
  injectMessage(msg: ChannelMessage): Promise<void>;
110
+ /**
111
+ * Resolves once every message the gateway has taken is answered: those waiting in their
112
+ * thread's queue and the runs in progress, including messages that come in while it waits.
113
+ * Messages held by `debounce` count from the moment they are flushed. {@link stop} waits
114
+ * for it, up to `drainTimeout`.
115
+ */
116
+ idle(): Promise<void>;
66
117
  /**
67
118
  * Summarize older messages of a conversation thread, keeping `keepRecent` messages intact.
68
119
  * Runs regardless of the configured thresholds.
@@ -77,7 +128,8 @@ export declare class Gateway {
77
128
  compactAll(): Promise<string>;
78
129
  /**
79
130
  * The threads {@link compactAll} goes through: those served since the gateway started, and the
80
- * default thread of each stored session when threads are not keyed by `session.threadKey`
131
+ * threads of each stored session when they are keyed by the default key (the conversations kept
132
+ * in the session's metadata, or the chat it was created in) or by `legacyThreadKey`
81
133
  */
82
134
  private knownThreads;
83
135
  /**
@@ -98,10 +150,38 @@ export declare class Gateway {
98
150
  * decision, or go away when the request was dropped.
99
151
  */
100
152
  private closePrompts;
153
+ /**
154
+ * A message from a channel, a button or {@link injectMessage}. With a queue, a channel's message
155
+ * is only queued, so the channel goes on to its next update while the thread waits its turn.
156
+ * `untilAnswered` waits for the answer. A message of `channel` the gateway does not answer
157
+ * because it stops (refused while stopping, or dropped by `stop()`) goes back through
158
+ * `channel.redeliver`.
159
+ */
101
160
  private handleIncoming;
161
+ /** Hands a message back to its channel, reporting a failure to `onError`. */
162
+ private redeliver;
163
+ /**
164
+ * Watches the answer of messages taken from `channel`: when the gateway stops before answering
165
+ * them they go back through `channel.redeliver`, and so do those whose run is still going when
166
+ * `stop()` gives up on it. A message whose answer went out is never handed back.
167
+ */
168
+ private watchUnanswered;
169
+ /** Puts a message through the queue of its thread, resolving once it is done with */
102
170
  private dispatch;
171
+ /** Resolves `true` once the message is handled, `false` when it failed or was dropped */
172
+ private route;
173
+ /**
174
+ * A scheduled message names only its chat, so with the default thread key it gets the topic or
175
+ * conversation of the user's most recent conversation in that chat, kept in their session: the
176
+ * task is then answered in the thread and topic it was set up in.
177
+ */
178
+ private locateScheduled;
103
179
  private rollMessageCounter;
104
180
  private runMiddleware;
181
+ /**
182
+ * Handles one message, `false` when its run failed or was aborted. A message for a channel
183
+ * the gateway does not run counts as handled: it never can be.
184
+ */
105
185
  private processMessage;
106
186
  private processWithChannel;
107
187
  private handleAccepted;
@@ -128,6 +208,16 @@ export declare class Gateway {
128
208
  */
129
209
  private streamRun;
130
210
  private getThreadId;
211
+ /**
212
+ * Keeps the message's conversation in the user's session, so its thread is known after a
213
+ * restart. A failure is reported to `onError` and does not keep the message from its answer.
214
+ */
215
+ private rememberConversation;
216
+ /**
217
+ * Runs `write` after every earlier write to the same session has finished, so a read, change
218
+ * and write of its metadata never loses another one's change.
219
+ */
220
+ private writeSession;
131
221
  private resolveAgent;
132
222
  private createMiddlewareContext;
133
223
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"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"}