@cogitator-ai/channels 0.5.1 → 0.6.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.
package/README.md CHANGED
@@ -181,6 +181,7 @@ Routes incoming messages to your agent. Handles:
181
181
  - Platform-specific markdown conversion
182
182
  - Status reactions, debouncing, envelope formatting, queue modes
183
183
  - Run timeouts (`runTimeout`, defaults to the agent's `timeout`)
184
+ - Tool approvals over chat (see [Approvals](#approvals))
184
185
 
185
186
  ```typescript
186
187
  const gateway = new Gateway({
@@ -202,6 +203,41 @@ await gateway.compactThread('telegram:42'); // force compaction of one conversat
202
203
  await gateway.injectMessage(msg); // feed a synthetic message (used by the scheduler)
203
204
  ```
204
205
 
206
+ ## Approvals
207
+
208
+ Tools marked `requiresApproval` (for example `create_tool` from `capabilities.selfTools`) pause the run before they execute. The Gateway turns that pause into a chat conversation:
209
+
210
+ 1. The paused run's text (if any) is sent, followed by a prompt listing each waiting call — tool name, description and compact JSON arguments (cut at 300 characters).
211
+ 2. The user replies `approve` / `yes` to run the calls, or `deny` / `no` to refuse, optionally followed by a reason (`no, too risky`) that the agent sees. Replies are case-insensitive and may end with punctuation; `да` / `одобряю` and `нет` / `отклоняю` work out of the box.
212
+ 3. The Gateway calls `cogitator.resume(agent, threadId, { userId, defaultDecision })` and delivers the result like any reply, streaming included. If the run pauses again, a new prompt is sent.
213
+
214
+ Any other message on a paused thread runs as usual, and the runtime answers the waiting calls as declined. An approve-only word with more text after it (`yes, but rename it`) counts as a new message, so nothing runs by accident.
215
+
216
+ Only the user who started the run can answer it: the runtime checks the run's `userId` on resume. In a shared thread (a `threadKey` per group chat), someone else replying `approve` gets `notAllowedMessage` and the pause stays put.
217
+
218
+ Pauses survive restarts when the runtime persists them (in the thread's memory once the Cogitator has a memory adapter, or in `runCheckpoints`): the first approve/deny reply on a thread the Gateway has not seen since it started tries `resume`, and runs as a normal message if nothing is paused. On threads it has already seen, the Gateway resumes only pauses it sent a prompt for, so one Gateway process should serve a given thread.
219
+
220
+ ```typescript
221
+ const gateway = new Gateway({
222
+ // ...
223
+ approvals: {
224
+ approveWords: ['approve', 'yes', 'да'],
225
+ denyWords: ['deny', 'no', 'нет'],
226
+ format: (approvals, { approveWords, denyWords }) =>
227
+ `Разрешить ${approvals.map((a) => a.toolName).join(', ')}? ` +
228
+ `Ответьте «${approveWords[0]}» или «${denyWords[0]}».`,
229
+ notAllowedMessage: 'Подтвердить может только автор запроса.',
230
+ },
231
+ });
232
+
233
+ hooks.on('approval:requested', ({ threadId, approvals }) => audit.log(threadId, approvals));
234
+ hooks.on('approval:resolved', ({ threadId, decision, superseded }) =>
235
+ audit.log(threadId, decision, superseded)
236
+ );
237
+ ```
238
+
239
+ `parseApprovalReply(text, words)` and `formatApprovalPrompt(approvals, words)` are exported for custom channels and UIs.
240
+
205
241
  ## Status Reactions
206
242
 
207
243
  Emoji progress indicators on the user's message:
@@ -340,7 +376,7 @@ hooks.on('agent:error', (e) => console.error('Agent failed:', e));
340
376
  const gateway = new Gateway({ /* ... */ hooks });
341
377
  ```
342
378
 
343
- Available hooks: `message:received`, `message:sending`, `message:sent`, `agent:before_run`, `agent:after_run`, `agent:error`, `session:created`, `session:compacted`, `stream:started`, `stream:finished`.
379
+ Available hooks: `message:received`, `message:sending`, `message:sent`, `agent:before_run`, `agent:after_run`, `agent:error`, `session:created`, `session:compacted`, `stream:started`, `stream:finished`, `approval:requested`, `approval:resolved`.
344
380
 
345
381
  Errors in one handler don't affect others.
346
382
 
@@ -0,0 +1,49 @@
1
+ import type { ChannelMessage, ToolApprovalDecision, ToolApprovalRequest } from '@cogitator-ai/types';
2
+ export interface ApprovalReplyWords {
3
+ approveWords: readonly string[];
4
+ denyWords: readonly string[];
5
+ }
6
+ export interface GatewayApprovalsConfig {
7
+ /**
8
+ * Builds the message asking to approve the paused tool calls.
9
+ * Defaults to an English prompt listing each call with its arguments.
10
+ */
11
+ format?: (approvals: readonly ToolApprovalRequest[], words: ApprovalReplyWords) => string;
12
+ /** Replies that approve every waiting call (case-insensitive, the whole message) */
13
+ approveWords?: readonly string[];
14
+ /** Replies that decline every waiting call; text after the word becomes the reason */
15
+ denyWords?: readonly string[];
16
+ /** Sent when someone other than the user who started the run answers it */
17
+ notAllowedMessage?: string;
18
+ }
19
+ /** Payload of the `approval:requested` hook: a run paused and the chat was asked */
20
+ export interface ApprovalRequestedEvent {
21
+ msg: ChannelMessage;
22
+ threadId: string;
23
+ userId: string;
24
+ approvals: readonly ToolApprovalRequest[];
25
+ }
26
+ /**
27
+ * Payload of the `approval:resolved` hook. `superseded` is true when the user
28
+ * sent a new message instead of answering, so the runtime declined the calls.
29
+ * `approvals` is missing when the pause predates this process (e.g. a restart).
30
+ */
31
+ export interface ApprovalResolvedEvent {
32
+ msg: ChannelMessage;
33
+ threadId: string;
34
+ userId: string;
35
+ decision: ToolApprovalDecision;
36
+ approvals?: readonly ToolApprovalRequest[];
37
+ superseded: boolean;
38
+ }
39
+ export declare const DEFAULT_APPROVE_WORDS: readonly string[];
40
+ export declare const DEFAULT_DENY_WORDS: readonly string[];
41
+ export declare const DEFAULT_NOT_ALLOWED_MESSAGE = "Only the person who made this request can approve or deny it.";
42
+ /**
43
+ * Reads a chat reply as an answer to waiting tool calls: an approve word on its
44
+ * own approves them, a deny word declines them with any text after it as the reason.
45
+ * Anything else is an ordinary message and yields `null`.
46
+ */
47
+ export declare function parseApprovalReply(text: string, words: ApprovalReplyWords): ToolApprovalDecision | null;
48
+ export declare function formatApprovalPrompt(approvals: readonly ToolApprovalRequest[], words: ApprovalReplyWords): string;
49
+ //# sourceMappingURL=approvals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approvals.d.ts","sourceRoot":"","sources":["../src/approvals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,mBAAmB,EAAE,EAAE,KAAK,EAAE,kBAAkB,KAAK,MAAM,CAAC;IAC1F,oFAAoF;IACpF,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,sFAAsF;IACtF,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,2EAA2E;IAC3E,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,oFAAoF;AACpF,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,cAAc,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,mBAAmB,EAAE,CAAC;CAC3C;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,cAAc,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,SAAS,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC3C,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAAwC,CAAC;AAC5F,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAAsC,CAAC;AACvF,eAAO,MAAM,2BAA2B,kEACyB,CAAC;AAuBlE;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,kBAAkB,GACxB,oBAAoB,GAAG,IAAI,CAU7B;AAoBD,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,SAAS,mBAAmB,EAAE,EACzC,KAAK,EAAE,kBAAkB,GACxB,MAAM,CAqBR"}
@@ -0,0 +1,75 @@
1
+ export const DEFAULT_APPROVE_WORDS = ['approve', 'yes', 'да', 'одобряю'];
2
+ export const DEFAULT_DENY_WORDS = ['deny', 'no', 'нет', 'отклоняю'];
3
+ export const DEFAULT_NOT_ALLOWED_MESSAGE = 'Only the person who made this request can approve or deny it.';
4
+ const MAX_ARGS_CHARS = 300;
5
+ const LEADING_SEPARATORS = /^[\s\p{P}]+/u;
6
+ const WORD_BOUNDARY = /^[\s\p{P}]/u;
7
+ function normalizeWords(words) {
8
+ return words
9
+ .map((word) => word.trim().toLocaleLowerCase())
10
+ .filter((word) => word.length > 0)
11
+ .sort((a, b) => b.length - a.length);
12
+ }
13
+ function matchLeadingWord(text, words) {
14
+ for (const word of normalizeWords(words)) {
15
+ if (text.slice(0, word.length).toLocaleLowerCase() !== word)
16
+ continue;
17
+ const rest = text.slice(word.length);
18
+ if (rest && !WORD_BOUNDARY.test(rest))
19
+ continue;
20
+ return rest.replace(LEADING_SEPARATORS, '').trim();
21
+ }
22
+ return null;
23
+ }
24
+ /**
25
+ * Reads a chat reply as an answer to waiting tool calls: an approve word on its
26
+ * own approves them, a deny word declines them with any text after it as the reason.
27
+ * Anything else is an ordinary message and yields `null`.
28
+ */
29
+ export function parseApprovalReply(text, words) {
30
+ const trimmed = text.trim();
31
+ if (!trimmed)
32
+ return null;
33
+ const afterApprove = matchLeadingWord(trimmed, words.approveWords);
34
+ if (afterApprove === '')
35
+ return { approved: true };
36
+ const reason = matchLeadingWord(trimmed, words.denyWords);
37
+ if (reason === null)
38
+ return null;
39
+ return reason ? { approved: false, reason } : { approved: false };
40
+ }
41
+ function compactArguments(args) {
42
+ let json;
43
+ try {
44
+ json = JSON.stringify(args) ?? '{}';
45
+ }
46
+ catch {
47
+ json = '[unserializable arguments]';
48
+ }
49
+ const chars = [...json];
50
+ return chars.length > MAX_ARGS_CHARS ? `${chars.slice(0, MAX_ARGS_CHARS).join('')}…` : json;
51
+ }
52
+ function quoteWords(words) {
53
+ return words
54
+ .slice(0, 2)
55
+ .map((word) => `"${word}"`)
56
+ .join(' or ');
57
+ }
58
+ export function formatApprovalPrompt(approvals, words) {
59
+ const single = approvals.length === 1;
60
+ const lines = [
61
+ single
62
+ ? 'I need your approval before running this action:'
63
+ : `I need your approval before running these ${approvals.length} actions:`,
64
+ '',
65
+ ];
66
+ approvals.forEach((approval, index) => {
67
+ const title = `**${approval.toolName}**${approval.description ? ` — ${approval.description}` : ''}`;
68
+ lines.push(single ? title : `${index + 1}. ${title}`);
69
+ lines.push('```json', compactArguments(approval.arguments), '```');
70
+ });
71
+ lines.push('', `Reply ${quoteWords(words.approveWords)} to allow ${single ? 'it' : 'them'}, ` +
72
+ `or ${quoteWords(words.denyWords)} to refuse (you can add a reason after it).`);
73
+ return lines.join('\n');
74
+ }
75
+ //# sourceMappingURL=approvals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approvals.js","sourceRoot":"","sources":["../src/approvals.ts"],"names":[],"mappings":"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"}
package/dist/gateway.d.ts CHANGED
@@ -1,6 +1,7 @@
1
- import type { GatewayConfig, GatewayStats, ChannelMessage } from '@cogitator-ai/types';
1
+ import type { GatewayConfig, GatewayStats, ChannelMessage, HookRegistry } from '@cogitator-ai/types';
2
2
  import type { Agent, Cogitator } from '@cogitator-ai/core';
3
3
  import type { MediaProcessor } from './media/media-processor.js';
4
+ import type { GatewayApprovalsConfig } from './approvals.js';
4
5
  export interface GatewayFullConfig extends GatewayConfig {
5
6
  cogitator: Cogitator;
6
7
  mediaProcessor?: MediaProcessor;
@@ -9,6 +10,13 @@ export interface GatewayFullConfig extends GatewayConfig {
9
10
  * Defaults to the agent's own `timeout` setting.
10
11
  */
11
12
  runTimeout?: number;
13
+ hooks?: HookRegistry;
14
+ /**
15
+ * How runs paused for tool approval are put to the chat and answered.
16
+ * A paused run sends a prompt listing the waiting calls; the user who
17
+ * started the run replies with an approve or deny word to continue it.
18
+ */
19
+ approvals?: GatewayApprovalsConfig;
12
20
  }
13
21
  export interface GatewaySessionInfo {
14
22
  threadId: string;
@@ -28,6 +36,8 @@ export declare class Gateway {
28
36
  private readonly debouncer;
29
37
  private readonly messageQueue;
30
38
  private readonly hooks;
39
+ private readonly approvalWords;
40
+ private readonly pausedThreads;
31
41
  private readonly lastMessageTime;
32
42
  private readonly threads;
33
43
  private readonly inFlight;
@@ -54,9 +64,21 @@ export declare class Gateway {
54
64
  private processMessage;
55
65
  private processWithChannel;
56
66
  private handleAccepted;
67
+ /**
68
+ * An approve/deny reply is worth a resume when this thread paused in this
69
+ * process, or when the gateway has not seen the thread since it started:
70
+ * the pause then lives only in the runtime's checkpoint store.
71
+ */
72
+ private readApprovalReply;
73
+ private runMessage;
74
+ private resumeWithReply;
75
+ private supersedePause;
76
+ private requestApprovals;
77
+ private deliver;
57
78
  private extractMedia;
58
79
  private buildRunOptions;
59
80
  private sendChunked;
81
+ private sendReply;
60
82
  private runDirect;
61
83
  private runStreaming;
62
84
  private getThreadId;
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EAEZ,cAAc,EAUf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAM3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAM9D,MAAM,WAAW,iBAAkB,SAAQ,aAAa;IACtD,SAAS,EAAE,SAAS,CAAC;IACrB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;CACjB;AA8BD,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAY;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA+B;IAC9D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsB;IAClD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IACpD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;IACnD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsB;IAC5C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6B;IAC7D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsE;IAC9F,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IACtD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,eAAe,CAAsB;gBAEjC,MAAM,EAAE,iBAAiB;IAwB/B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAetB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAW3B,IAAI,KAAK,IAAI,YAAY,CASxB;IAED,WAAW,IAAI,kBAAkB,EAAE;IAM7B,aAAa,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD;;;OAGG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;YAoBvD,eAAe;YAWf,cAAc;YAQd,QAAQ;IAQtB,OAAO,CAAC,kBAAkB;YAQZ,aAAa;YAab,cAAc;YAmBd,kBAAkB;YAkBlB,cAAc;YAmFd,YAAY;IA6B1B,OAAO,CAAC,eAAe;YA4BT,WAAW;YAkBX,SAAS;YA+CT,YAAY;IAiE1B,OAAO,CAAC,WAAW;YAOL,YAAY;IAQ1B,OAAO,CAAC,uBAAuB;IAmB/B,OAAO,CAAC,iBAAiB;CAqB1B"}
1
+ {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EAEZ,cAAc,EAKd,YAAY,EASb,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAM3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAY9D,OAAO,KAAK,EAIV,sBAAsB,EACvB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,iBAAkB,SAAQ,aAAa;IACtD,SAAS,EAAE,SAAS,CAAC;IACrB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB;;;;OAIG;IACH,SAAS,CAAC,EAAE,sBAAsB,CAAC;CACpC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;CACjB;AA4CD,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAY;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA+B;IAC9D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsB;IAClD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IACpD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;IACnD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsB;IAC5C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmC;IACjE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6B;IAC7D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsE;IAC9F,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IACtD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,eAAe,CAAsB;gBAEjC,MAAM,EAAE,iBAAiB;IA4B/B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAetB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAW3B,IAAI,KAAK,IAAI,YAAY,CASxB;IAED,WAAW,IAAI,kBAAkB,EAAE;IAM7B,aAAa,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD;;;OAGG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;YAoBvD,eAAe;YAWf,cAAc;YAQd,QAAQ;IAQtB,OAAO,CAAC,kBAAkB;YAQZ,aAAa;YAab,cAAc;YAmBd,kBAAkB;YAkBlB,cAAc;IA4E5B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;YAUX,UAAU;YA+BV,eAAe;YA8Cf,cAAc;YAed,gBAAgB;YAmBhB,OAAO;YAeP,YAAY;IA6B1B,OAAO,CAAC,eAAe;YAqBT,WAAW;YAkBX,SAAS;YAwBT,SAAS;YA+BT,YAAY;IAuE1B,OAAO,CAAC,WAAW;YAOL,YAAY;IAQ1B,OAAO,CAAC,uBAAuB;IAmB/B,OAAO,CAAC,iBAAiB;CAqB1B"}
package/dist/gateway.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { CogitatorError, ErrorCode } from '@cogitator-ai/types';
1
2
  import { parseModel } from '@cogitator-ai/core';
2
3
  import { SessionManager, CompactionService } from '@cogitator-ai/memory';
3
4
  import { StreamBuffer } from './stream-buffer.js';
@@ -6,6 +7,7 @@ import { StatusReactionTracker } from './status-reactions.js';
6
7
  import { InboundDebouncer } from './inbound-debounce.js';
7
8
  import { formatEnvelope } from './envelope.js';
8
9
  import { MessageQueue } from './message-queue.js';
10
+ import { DEFAULT_APPROVE_WORDS, DEFAULT_DENY_WORDS, DEFAULT_NOT_ALLOWED_MESSAGE, formatApprovalPrompt, parseApprovalReply, } from './approvals.js';
9
11
  const DEFAULT_SUMMARY_PROMPT = 'Summarize the following conversation between a user and an assistant. ' +
10
12
  'Preserve facts, decisions, user preferences, open tasks and any commitments. ' +
11
13
  'Write a concise summary in the language of the conversation.';
@@ -21,6 +23,10 @@ function isScheduled(msg) {
21
23
  const raw = msg.raw;
22
24
  return typeof raw === 'object' && raw !== null && 'scheduled' in raw && raw.scheduled === true;
23
25
  }
26
+ function isResumeRejection(error) {
27
+ return (CogitatorError.isCogitatorError(error) &&
28
+ (error.code === ErrorCode.RUN_NOT_PAUSED || error.code === ErrorCode.THREAD_ACCESS_DENIED));
29
+ }
24
30
  function dayKey(timestamp) {
25
31
  const date = new Date(timestamp);
26
32
  return `${date.getFullYear()}-${date.getMonth()}-${date.getDate()}`;
@@ -34,6 +40,8 @@ export class Gateway {
34
40
  debouncer;
35
41
  messageQueue;
36
42
  hooks;
43
+ approvalWords;
44
+ pausedThreads = new Map();
37
45
  lastMessageTime = new Map();
38
46
  threads = new Map();
39
47
  inFlight = new Map();
@@ -47,6 +55,10 @@ export class Gateway {
47
55
  this.middlewares = config.middleware ?? [];
48
56
  this.streamConfig = config.stream ?? { flushInterval: 500, minChunkSize: 20 };
49
57
  this.hooks = config.hooks ?? null;
58
+ this.approvalWords = {
59
+ approveWords: config.approvals?.approveWords ?? DEFAULT_APPROVE_WORDS,
60
+ denyWords: config.approvals?.denyWords ?? DEFAULT_DENY_WORDS,
61
+ };
50
62
  this.sessionManager =
51
63
  config.sessionManager ?? (config.memory ? new SessionManager(config.memory) : null);
52
64
  this.messageQueue =
@@ -199,8 +211,7 @@ export class Gateway {
199
211
  return;
200
212
  await this.handleAccepted(msg, channel, threadId, user, signal);
201
213
  }
202
- async handleAccepted(originalMsg, channel, threadId, user, signal) {
203
- let msg = originalMsg;
214
+ async handleAccepted(msg, channel, threadId, user, signal) {
204
215
  await this.hooks?.emit('message:received', { msg, threadId, user });
205
216
  this.rollMessageCounter();
206
217
  this.messageCount++;
@@ -212,11 +223,6 @@ export class Gateway {
212
223
  messageCount: (known?.messageCount ?? 0) + 1,
213
224
  lastActiveAt: Date.now(),
214
225
  });
215
- if (this.config.envelope?.enabled) {
216
- const prevTime = this.lastMessageTime.get(threadId);
217
- msg = { ...msg, text: formatEnvelope(msg, this.config.envelope, prevTime) };
218
- this.lastMessageTime.set(threadId, Date.now());
219
- }
220
226
  const agent = await this.resolveAgent(user);
221
227
  if (this.sessionManager) {
222
228
  const session = await this.sessionManager.getOrCreate({
@@ -230,12 +236,13 @@ export class Gateway {
230
236
  }
231
237
  await this.sessionManager.incrementMessageCount?.(session.id);
232
238
  }
233
- if (this.config.memory && this.config.session?.compaction) {
239
+ const decision = this.readApprovalReply(msg, threadId, known !== undefined);
240
+ if (!decision && this.config.memory && this.config.session?.compaction) {
234
241
  try {
235
242
  await this.compactIfNeeded(threadId, agent);
236
243
  }
237
244
  catch (error) {
238
- this.config.onError?.(error instanceof Error ? error : new Error(String(error)), originalMsg);
245
+ this.config.onError?.(error instanceof Error ? error : new Error(String(error)), msg);
239
246
  }
240
247
  }
241
248
  const tracker = this.config.reactions?.enabled && channel.setReaction
@@ -248,11 +255,10 @@ export class Gateway {
248
255
  try {
249
256
  await channel.sendTyping(msg.channelId).catch(() => { });
250
257
  tracker?.setPhase('thinking');
251
- if (this.config.stream) {
252
- await this.runStreaming(agent, msg, channel, threadId, tracker, signal);
253
- }
254
- else {
255
- await this.runDirect(agent, msg, channel, threadId, tracker, signal);
258
+ const resumed = decision !== null &&
259
+ (await this.resumeWithReply(agent, msg, channel, threadId, decision, tracker, signal));
260
+ if (!resumed) {
261
+ await this.runMessage(agent, msg, channel, threadId, tracker, signal);
256
262
  }
257
263
  tracker?.setPhase('done');
258
264
  }
@@ -265,6 +271,109 @@ export class Gateway {
265
271
  tracker?.dispose();
266
272
  }
267
273
  }
274
+ /**
275
+ * An approve/deny reply is worth a resume when this thread paused in this
276
+ * process, or when the gateway has not seen the thread since it started:
277
+ * the pause then lives only in the runtime's checkpoint store.
278
+ */
279
+ readApprovalReply(msg, threadId, seenBefore) {
280
+ if (isScheduled(msg) || msg.attachments?.length)
281
+ return null;
282
+ if (seenBefore && !this.pausedThreads.has(threadId))
283
+ return null;
284
+ return parseApprovalReply(msg.text, this.approvalWords);
285
+ }
286
+ async runMessage(agent, originalMsg, channel, threadId, tracker, signal) {
287
+ await this.supersedePause(originalMsg, threadId);
288
+ let msg = originalMsg;
289
+ if (this.config.envelope?.enabled) {
290
+ const prevTime = this.lastMessageTime.get(threadId);
291
+ msg = { ...msg, text: formatEnvelope(msg, this.config.envelope, prevTime) };
292
+ this.lastMessageTime.set(threadId, Date.now());
293
+ }
294
+ const { input, images } = await this.extractMedia(msg, agent);
295
+ const options = {
296
+ ...this.buildRunOptions(msg, tracker, signal),
297
+ input,
298
+ threadId,
299
+ threadAccess: 'shared',
300
+ ...(images ? { images } : {}),
301
+ };
302
+ await this.deliver(agent, msg, channel, threadId, signal, (extra) => this.config.cogitator.run(agent, { ...options, ...extra }));
303
+ }
304
+ async resumeWithReply(agent, msg, channel, threadId, decision, tracker, signal) {
305
+ const approvals = this.pausedThreads.get(threadId)?.approvals;
306
+ const options = { ...this.buildRunOptions(msg, tracker, signal), defaultDecision: decision };
307
+ try {
308
+ await this.deliver(agent, msg, channel, threadId, signal, async (extra) => {
309
+ const result = await this.config.cogitator.resume(agent, threadId, {
310
+ ...options,
311
+ ...extra,
312
+ });
313
+ this.pausedThreads.delete(threadId);
314
+ const event = {
315
+ msg,
316
+ threadId,
317
+ userId: msg.userId,
318
+ decision,
319
+ ...(approvals ? { approvals } : {}),
320
+ superseded: false,
321
+ };
322
+ await this.hooks?.emit('approval:resolved', event);
323
+ return result;
324
+ });
325
+ return true;
326
+ }
327
+ catch (error) {
328
+ if (!CogitatorError.isCogitatorError(error))
329
+ throw error;
330
+ if (error.code === ErrorCode.RUN_NOT_PAUSED) {
331
+ this.pausedThreads.delete(threadId);
332
+ return false;
333
+ }
334
+ if (error.code === ErrorCode.THREAD_ACCESS_DENIED) {
335
+ const text = this.config.approvals?.notAllowedMessage ?? DEFAULT_NOT_ALLOWED_MESSAGE;
336
+ await this.sendReply(channel, msg, threadId, adaptMarkdown(text, msg.channelType), msg.id);
337
+ return true;
338
+ }
339
+ throw error;
340
+ }
341
+ }
342
+ async supersedePause(msg, threadId) {
343
+ const paused = this.pausedThreads.get(threadId);
344
+ if (!paused)
345
+ return;
346
+ this.pausedThreads.delete(threadId);
347
+ const event = {
348
+ msg,
349
+ threadId,
350
+ userId: paused.userId,
351
+ decision: { approved: false, reason: 'The user moved on without answering' },
352
+ approvals: paused.approvals,
353
+ superseded: true,
354
+ };
355
+ await this.hooks?.emit('approval:resolved', event);
356
+ }
357
+ async requestApprovals(result, msg, channel, threadId, replyTo) {
358
+ const approvals = result.status === 'paused' ? (result.pendingApprovals ?? []) : [];
359
+ if (approvals.length === 0)
360
+ return;
361
+ this.pausedThreads.set(threadId, { userId: msg.userId, approvals });
362
+ const event = { msg, threadId, userId: msg.userId, approvals };
363
+ await this.hooks?.emit('approval:requested', event);
364
+ const format = this.config.approvals?.format ?? formatApprovalPrompt;
365
+ const prompt = adaptMarkdown(format(approvals, this.approvalWords), msg.channelType);
366
+ if (prompt)
367
+ await this.sendReply(channel, msg, threadId, prompt, replyTo);
368
+ }
369
+ async deliver(agent, msg, channel, threadId, signal, invoke) {
370
+ if (this.config.stream) {
371
+ await this.runStreaming(agent, msg, channel, threadId, signal, invoke);
372
+ }
373
+ else {
374
+ await this.runDirect(agent, msg, channel, threadId, signal, invoke);
375
+ }
376
+ }
268
377
  async extractMedia(msg, agent) {
269
378
  let input = msg.text;
270
379
  let images;
@@ -284,16 +393,12 @@ export class Gateway {
284
393
  }
285
394
  return { input, images };
286
395
  }
287
- buildRunOptions(msg, threadId, input, images, tracker, signal) {
396
+ buildRunOptions(msg, tracker, signal) {
288
397
  return {
289
- input,
290
- threadId,
291
- threadAccess: 'shared',
292
398
  useMemory: !!this.config.memory,
293
399
  userId: msg.userId,
294
400
  channelType: msg.channelType,
295
401
  channelId: msg.channelId,
296
- ...(images ? { images } : {}),
297
402
  ...(signal ? { signal } : {}),
298
403
  ...(this.config.runTimeout !== undefined ? { timeout: this.config.runTimeout } : {}),
299
404
  ...(tracker
@@ -317,40 +422,43 @@ export class Gateway {
317
422
  }
318
423
  return sentId;
319
424
  }
320
- async runDirect(agent, msg, channel, threadId, tracker, signal) {
321
- const { input, images } = await this.extractMedia(msg, agent);
425
+ async sendReply(channel, msg, threadId, text, replyTo) {
426
+ await this.hooks?.emit('message:sending', {
427
+ msg,
428
+ threadId,
429
+ text,
430
+ channelId: msg.channelId,
431
+ });
432
+ const sentId = await this.sendChunked(channel, msg, text, replyTo);
433
+ await this.hooks?.emit('message:sent', {
434
+ msg,
435
+ threadId,
436
+ text,
437
+ messageId: sentId,
438
+ });
439
+ }
440
+ async runDirect(agent, msg, channel, threadId, signal, invoke) {
322
441
  const replyTo = isScheduled(msg) ? undefined : msg.id;
323
442
  await this.hooks?.emit('agent:before_run', { msg, threadId, agent: agent.name });
324
443
  let result;
325
444
  try {
326
- result = await this.config.cogitator.run(agent, this.buildRunOptions(msg, threadId, input, images, tracker, signal));
445
+ result = await invoke({});
327
446
  }
328
447
  catch (error) {
329
- await this.hooks?.emit('agent:error', { msg, threadId, error });
448
+ if (!isResumeRejection(error)) {
449
+ await this.hooks?.emit('agent:error', { msg, threadId, error });
450
+ }
330
451
  throw error;
331
452
  }
332
453
  await this.hooks?.emit('agent:after_run', { msg, threadId, output: result.output });
333
454
  if (signal?.aborted)
334
455
  return;
335
456
  const output = adaptMarkdown(result.output, msg.channelType);
336
- if (!output)
337
- return;
338
- await this.hooks?.emit('message:sending', {
339
- msg,
340
- threadId,
341
- text: output,
342
- channelId: msg.channelId,
343
- });
344
- const sentId = await this.sendChunked(channel, msg, output, replyTo);
345
- await this.hooks?.emit('message:sent', {
346
- msg,
347
- threadId,
348
- text: output,
349
- messageId: sentId,
350
- });
457
+ if (output)
458
+ await this.sendReply(channel, msg, threadId, output, replyTo);
459
+ await this.requestApprovals(result, msg, channel, threadId, output ? undefined : replyTo);
351
460
  }
352
- async runStreaming(agent, msg, channel, threadId, tracker, signal) {
353
- const { input, images } = await this.extractMedia(msg, agent);
461
+ async runStreaming(agent, msg, channel, threadId, signal, invoke) {
354
462
  const replyTo = isScheduled(msg) ? undefined : msg.id;
355
463
  const streamCfg = {
356
464
  ...this.streamConfig,
@@ -363,8 +471,7 @@ export class Gateway {
363
471
  let tokenCount = 0;
364
472
  let result;
365
473
  try {
366
- result = await this.config.cogitator.run(agent, {
367
- ...this.buildRunOptions(msg, threadId, input, images, tracker, signal),
474
+ result = await invoke({
368
475
  stream: true,
369
476
  onToken: (token) => {
370
477
  tokenCount++;
@@ -374,21 +481,26 @@ export class Gateway {
374
481
  }
375
482
  catch (error) {
376
483
  await stream.abort();
377
- await this.hooks?.emit('agent:error', { msg, threadId, error });
484
+ if (!isResumeRejection(error)) {
485
+ await this.hooks?.emit('agent:error', { msg, threadId, error });
486
+ }
378
487
  throw error;
379
488
  }
380
489
  if (signal?.aborted) {
381
490
  await stream.abort();
382
491
  return;
383
492
  }
384
- if (tokenCount > 0) {
493
+ let replied = tokenCount > 0;
494
+ if (replied) {
385
495
  await stream.finish();
386
496
  }
387
497
  else {
388
498
  await stream.abort();
389
499
  const output = adaptMarkdown(result.output, msg.channelType);
390
- if (output)
500
+ if (output) {
391
501
  await this.sendChunked(channel, msg, output, replyTo);
502
+ replied = true;
503
+ }
392
504
  }
393
505
  await this.hooks?.emit('agent:after_run', { msg, threadId, output: result.output });
394
506
  await this.hooks?.emit('stream:finished', {
@@ -396,6 +508,7 @@ export class Gateway {
396
508
  threadId,
397
509
  messageIds: stream.getMessageIds(),
398
510
  });
511
+ await this.requestApprovals(result, msg, channel, threadId, replied ? undefined : replyTo);
399
512
  }
400
513
  getThreadId(msg) {
401
514
  if (this.config.session?.threadKey) {
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  export { Gateway } from './gateway.js';
2
2
  export type { GatewayFullConfig, GatewaySessionInfo } from './gateway.js';
3
+ export { parseApprovalReply, formatApprovalPrompt, DEFAULT_APPROVE_WORDS, DEFAULT_DENY_WORDS, DEFAULT_NOT_ALLOWED_MESSAGE, } from './approvals.js';
4
+ export type { GatewayApprovalsConfig, ApprovalReplyWords, ApprovalRequestedEvent, ApprovalResolvedEvent, } from './approvals.js';
3
5
  export { StreamBuffer } from './stream-buffer.js';
4
6
  export { HeartbeatScheduler } from './heartbeat.js';
5
7
  export type { HeartbeatConfig } from './heartbeat.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export { Gateway } from './gateway.js';
2
+ export { parseApprovalReply, formatApprovalPrompt, DEFAULT_APPROVE_WORDS, DEFAULT_DENY_WORDS, DEFAULT_NOT_ALLOWED_MESSAGE, } from './approvals.js';
2
3
  export { StreamBuffer } from './stream-buffer.js';
3
4
  export { HeartbeatScheduler } from './heartbeat.js';
4
5
  export { StatusReactionTracker } from './status-reactions.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEvC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGvE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGvE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAG9D,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGvE,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAGlE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAGtE,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGzE,OAAO,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAGrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAG7C,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAO/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAGzD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAGtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGxD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAMzD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAG5D,OAAO,EACL,qBAAqB,GAGtB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,2BAA2B,GAC5B,MAAM,aAAa,CAAC;AAQrB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEvC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGvE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGvE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAG9D,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGvE,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAGlE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAGtE,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGzE,OAAO,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAGrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAG7C,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAO/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAGzD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAGtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGxD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAMzD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAG5D,OAAO,EACL,qBAAqB,GAGtB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cogitator-ai/channels",
3
- "version": "0.5.1",
3
+ "version": "0.6.0",
4
4
  "description": "Messaging channel connectors and Gateway for Cogitator AI agents",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -15,9 +15,9 @@
15
15
  "dist"
16
16
  ],
17
17
  "dependencies": {
18
- "@cogitator-ai/core": "0.23.0",
19
- "@cogitator-ai/memory": "0.9.0",
20
- "@cogitator-ai/types": "0.26.0",
18
+ "@cogitator-ai/core": "0.24.0",
19
+ "@cogitator-ai/memory": "0.9.1",
20
+ "@cogitator-ai/types": "0.27.0",
21
21
  "cron-parser": "^5.10.1",
22
22
  "nanoid": "^6.0.1",
23
23
  "zod": "^4.6.5"
@@ -35,10 +35,10 @@
35
35
  "@slack/bolt": ">=3.0.0",
36
36
  "ws": ">=8.0.0",
37
37
  "@whiskeysockets/baileys": ">=6.0.0",
38
- "@cogitator-ai/browser": ">=0.3.3",
39
- "@cogitator-ai/rag": ">=0.3.2",
40
- "@cogitator-ai/mcp": "^19.1.0",
41
- "@cogitator-ai/models": "^18.0.0",
38
+ "@cogitator-ai/browser": ">=0.3.4",
39
+ "@cogitator-ai/rag": ">=0.3.3",
40
+ "@cogitator-ai/mcp": "^19.2.0",
41
+ "@cogitator-ai/models": "^18.1.0",
42
42
  "@huggingface/transformers": ">=3.0.0",
43
43
  "ogg-opus-decoder": ">=1.0.0",
44
44
  "qrcode-terminal": ">=0.12.0",