@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
@@ -1,4 +1,12 @@
1
- import { mergeByDestination } from './merge-messages.js';
1
+ import { mergeByDestination, replyDestination } from './merge-messages.js';
2
+ async function handled(processing) {
3
+ try {
4
+ return (await processing) !== false;
5
+ }
6
+ catch {
7
+ return false;
8
+ }
9
+ }
2
10
  export class MessageQueue {
3
11
  mode;
4
12
  processor;
@@ -7,26 +15,29 @@ export class MessageQueue {
7
15
  this.mode = mode;
8
16
  this.processor = processor;
9
17
  }
18
+ /**
19
+ * Queues a message of a thread. The returned promise settles once the message is done with:
20
+ * `true` once it is handled (alone or merged with others), `false` when its processing failed,
21
+ * a newer message interrupted it or {@link dispose} dropped it. It never rejects.
22
+ */
10
23
  push(msg, threadId) {
11
24
  switch (this.mode) {
12
25
  case 'parallel':
13
- void this.processor(msg).catch(() => { });
14
- break;
26
+ return handled(this.processor(msg));
15
27
  case 'sequential':
16
- this.pushSequential(msg, threadId);
17
- break;
28
+ return this.enqueue(msg, threadId, (state) => this.drainSequential(threadId, state));
18
29
  case 'interrupt':
19
- this.pushInterrupt(msg, threadId);
20
- break;
30
+ return this.pushInterrupt(msg, threadId);
21
31
  case 'collect':
22
- this.pushCollect(msg, threadId);
23
- break;
32
+ return this.enqueue(msg, threadId, (state) => this.drainCollect(threadId, state));
24
33
  }
25
34
  }
35
+ /** Aborts interruptible runs and drops every message still waiting, settling their promises */
26
36
  dispose() {
27
37
  for (const state of this.threads.values()) {
28
38
  state.abortController?.abort();
29
- state.queue.length = 0;
39
+ for (const queued of state.queue.splice(0))
40
+ queued.settle(false);
30
41
  }
31
42
  this.threads.clear();
32
43
  }
@@ -38,12 +49,12 @@ export class MessageQueue {
38
49
  }
39
50
  return state;
40
51
  }
41
- pushSequential(msg, threadId) {
52
+ enqueue(msg, threadId, drain) {
42
53
  const state = this.getThread(threadId);
43
- state.queue.push(msg);
44
- if (!state.processing) {
45
- void this.drainSequential(threadId, state);
46
- }
54
+ const done = new Promise((settle) => state.queue.push({ msg, settle }));
55
+ if (!state.processing)
56
+ void drain(state);
57
+ return done;
47
58
  }
48
59
  release(threadId, state) {
49
60
  state.processing = false;
@@ -55,10 +66,7 @@ export class MessageQueue {
55
66
  state.processing = true;
56
67
  let next = state.queue.shift();
57
68
  while (next) {
58
- try {
59
- await this.processor(next);
60
- }
61
- catch { }
69
+ next.settle(await handled(this.processor(next.msg)));
62
70
  next = state.queue.shift();
63
71
  }
64
72
  this.release(threadId, state);
@@ -68,36 +76,29 @@ export class MessageQueue {
68
76
  if (state.processing && state.abortController) {
69
77
  state.abortController.abort();
70
78
  }
71
- state.queue.length = 0;
79
+ for (const queued of state.queue.splice(0))
80
+ queued.settle(false);
72
81
  const ac = new AbortController();
73
82
  state.abortController = ac;
74
83
  state.processing = true;
75
- void this.processor(msg, ac.signal)
76
- .catch(() => { })
77
- .finally(() => {
84
+ return handled(this.processor(msg, ac.signal)).then((done) => {
78
85
  if (state.abortController === ac) {
79
86
  state.abortController = undefined;
80
87
  this.release(threadId, state);
81
88
  }
89
+ return done && !ac.signal.aborted;
82
90
  });
83
91
  }
84
- pushCollect(msg, threadId) {
85
- const state = this.getThread(threadId);
86
- state.queue.push(msg);
87
- if (!state.processing) {
88
- void this.drainCollect(threadId, state);
89
- }
90
- }
91
92
  async drainCollect(threadId, state) {
92
93
  state.processing = true;
93
94
  while (state.queue.length > 0) {
94
95
  const batch = state.queue.splice(0, state.queue.length);
95
- for (const merged of mergeByDestination(batch)) {
96
- try {
97
- await this.processor(merged);
98
- }
99
- catch { }
96
+ const results = new Map();
97
+ for (const merged of mergeByDestination(batch.map((queued) => queued.msg))) {
98
+ results.set(replyDestination(merged), await handled(this.processor(merged)));
100
99
  }
100
+ for (const queued of batch)
101
+ queued.settle(results.get(replyDestination(queued.msg)) ?? false);
101
102
  }
102
103
  this.release(threadId, state);
103
104
  }
@@ -1 +1 @@
1
- {"version":3,"file":"message-queue.js","sourceRoot":"","sources":["../src/message-queue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message-queue.js","sourceRoot":"","sources":["../src/message-queue.ts"],"names":[],"mappings":"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"}
@@ -64,6 +64,15 @@ export declare class RuntimeBuilder {
64
64
  private get fullModelId();
65
65
  private buildCogitator;
66
66
  private buildChannels;
67
+ /**
68
+ * The email channel of `cogitator.yml`, its secrets and, where the file leaves them out,
69
+ * hosts and ports from the env: `EMAIL_ADDRESS`, `EMAIL_IMAP_HOST`, `EMAIL_IMAP_PORT`,
70
+ * `EMAIL_IMAP_USER`, `EMAIL_IMAP_PASSWORD`, `EMAIL_SMTP_HOST`, `EMAIL_SMTP_PORT`,
71
+ * `EMAIL_SMTP_USER`, `EMAIL_SMTP_PASSWORD`, `EMAIL_MAILGUN_SIGNING_KEY`, `EMAIL_WEBHOOK_TOKEN`,
72
+ * `EMAIL_WEBHOOK_USER` and `EMAIL_WEBHOOK_PASSWORD`. Warns and builds nothing when something
73
+ * it needs is missing.
74
+ */
75
+ private buildEmailChannel;
67
76
  private buildScheduler;
68
77
  /** The current date and time for a run, sent with its input rather than in the instructions */
69
78
  private currentTime;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-builder.d.ts","sourceRoot":"","sources":["../src/runtime-builder.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAMV,YAAY,EAGb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,KAAK,EACL,SAAS,EAWV,MAAM,oBAAoB,CAAC;AAgB5B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAWjD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAc1D,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC3B,MAAM,oBAAoB,CAAC;AAE5B,MAAM,MAAM,eAAe,GAAG,qBAAqB,CAAC;AAEpD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACrC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAgBD,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE;QACd,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;QAClC,aAAa,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;QACtC,cAAc,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC;KACzC,CAAC;IACF;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,uFAAuF;IACvF,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB;;;OAGG;IACH,SAAS,CAAC,EAAE,sBAAsB,CAAC;CACpC;AAED,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAgDpC,qBAAa,cAAc;IAWvB,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,IAAI,CAAC;IAXf,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,wFAAwF;IACxF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA+B;IAE5D;;;OAGG;gBAED,MAAM,EAAE,oBAAoB,EACpB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EACvC,IAAI,CAAC,EAAE,kBAAkB,YAAA;IAK7B,KAAK,IAAI,OAAO,CAAC,YAAY,CAAC;IAuTpC,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,sBAAsB;YAMhB,mBAAmB;IAoDjC,OAAO,CAAC,sBAAsB;YAqBhB,WAAW;YAiEX,gBAAgB;IAQ9B,OAAO,CAAC,kBAAkB;YAeZ,OAAO;IA4DrB;;;;OAIG;YACW,cAAc;IAqD5B,OAAO,CAAC,sBAAsB;IAkC9B,OAAO,KAAK,WAAW,GAItB;IAED,OAAO,CAAC,cAAc;IAyBtB,OAAO,CAAC,aAAa;IAgJrB,OAAO,CAAC,cAAc;IAoBtB,+FAA+F;IAC/F,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,iBAAiB;IAkFzB,OAAO,CAAC,gBAAgB;YAaV,kBAAkB;IAgBhC,OAAO,CAAC,eAAe;CAOxB"}
1
+ {"version":3,"file":"runtime-builder.d.ts","sourceRoot":"","sources":["../src/runtime-builder.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAMV,YAAY,EAGb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,KAAK,EACL,SAAS,EAWV,MAAM,oBAAoB,CAAC;AAgB5B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAcjD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAc1D,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC3B,MAAM,oBAAoB,CAAC;AAE5B,MAAM,MAAM,eAAe,GAAG,qBAAqB,CAAC;AAEpD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACrC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAgBD,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE;QACd,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;QAClC,aAAa,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;QACtC,cAAc,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC;KACzC,CAAC;IACF;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,uFAAuF;IACvF,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB;;;OAGG;IACH,SAAS,CAAC,EAAE,sBAAsB,CAAC;CACpC;AAED,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAgDpC,qBAAa,cAAc;IAWvB,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,IAAI,CAAC;IAXf,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,wFAAwF;IACxF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA+B;IAE5D;;;OAGG;gBAED,MAAM,EAAE,oBAAoB,EACpB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EACvC,IAAI,CAAC,EAAE,kBAAkB,YAAA;IAK7B,KAAK,IAAI,OAAO,CAAC,YAAY,CAAC;IAyTpC,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,sBAAsB;YAMhB,mBAAmB;IAoDjC,OAAO,CAAC,sBAAsB;YAqBhB,WAAW;YAiEX,gBAAgB;IAQ9B,OAAO,CAAC,kBAAkB;YAeZ,OAAO;IA4DrB;;;;OAIG;YACW,cAAc;IAqD5B,OAAO,CAAC,sBAAsB;IAkC9B,OAAO,KAAK,WAAW,GAItB;IAED,OAAO,CAAC,cAAc;IAyBtB,OAAO,CAAC,aAAa;IA0LrB;;;;;;;OAOG;IACH,OAAO,CAAC,iBAAiB;IAgGzB,OAAO,CAAC,cAAc;IAoBtB,+FAA+F;IAC/F,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,iBAAiB;IAkFzB,OAAO,CAAC,gBAAgB;YAaV,kBAAkB;IAgBhC,OAAO,CAAC,eAAe;CAOxB"}
@@ -6,6 +6,7 @@ import { Agent, Cogitator, builtinTools, createMemoryTools, createSchedulerTools
6
6
  import { SQLiteAdapter, SQLiteGraphAdapter, PostgresAdapter, PostgresGraphAdapter, CoreFactsStore, LLMEntityExtractor, createEmbeddingService, InMemoryEmbeddingAdapter, MemoryItems, isMemoryItemAdapter, } from '@cogitator-ai/memory';
7
7
  import { createSelfConfigTools } from './tools/self-config.js';
8
8
  import { Gateway } from './gateway.js';
9
+ import { legacyThreadKey } from './thread-key.js';
9
10
  import { getNextCronMs } from './cron.js';
10
11
  import { HeartbeatScheduler } from './heartbeat.js';
11
12
  import { SimpleTimerStore } from './simple-timer-store.js';
@@ -17,6 +18,9 @@ import { whatsappChannel } from './channels/whatsapp.js';
17
18
  import { webchatChannel } from './channels/webchat.js';
18
19
  import { blueskyChannel } from './channels/bluesky/channel.js';
19
20
  import { threadsChannel } from './channels/threads/channel.js';
21
+ import { githubChannel } from './channels/github/channel.js';
22
+ import { emailChannel } from './channels/email/channel.js';
23
+ import { isAddress } from './channels/email/address.js';
20
24
  import { FileTokenStore } from './feeds/token-store.js';
21
25
  import { ownerCommands } from './middleware/owner-commands.js';
22
26
  import { rateLimit } from './middleware/rate-limit.js';
@@ -311,16 +315,18 @@ export class RuntimeBuilder {
311
315
  ...(this.config.approvals || this.opts?.approvals
312
316
  ? { approvals: { ...this.config.approvals, ...this.opts?.approvals } }
313
317
  : {}),
314
- session: this.config.memory.compaction
315
- ? {
318
+ ...(this.config.session?.queueMode && { queueMode: this.config.session.queueMode }),
319
+ session: {
320
+ ...(this.config.session?.threadKey === 'legacy' && { threadKey: legacyThreadKey }),
321
+ ...(this.config.memory.compaction && {
316
322
  compaction: {
317
323
  strategy: 'hierarchical',
318
324
  messageThreshold: this.config.memory.compaction.threshold,
319
325
  keepRecent: 10,
320
326
  keepRecentTokens: CHANNEL_KEEP_RECENT_TOKENS,
321
327
  },
322
- }
323
- : undefined,
328
+ }),
329
+ },
324
330
  onError: (err, msg) => {
325
331
  console.error(`[${this.config.name}] Error for ${msg.userId}:`, err.message);
326
332
  },
@@ -765,8 +771,146 @@ export class RuntimeBuilder {
765
771
  }));
766
772
  }
767
773
  }
774
+ const github = this.config.channels.github;
775
+ if (github) {
776
+ const channelToken = this.env.GITHUB_CHANNEL_TOKEN?.trim() || undefined;
777
+ const token = channelToken ?? (this.env.GITHUB_TOKEN?.trim() || undefined);
778
+ const secret = this.env.GITHUB_WEBHOOK_SECRET;
779
+ if (token && secret) {
780
+ if (!channelToken) {
781
+ console.warn('[RuntimeBuilder] GitHub channel uses GITHUB_TOKEN: set GITHUB_CHANNEL_TOKEN to a token of a separate bot account, scoped to the repositories it answers in. With your own token the bot posts as you and takes your comments for its own');
782
+ }
783
+ channels.push(githubChannel({
784
+ token,
785
+ webhook: {
786
+ secret,
787
+ port: github.webhook.port,
788
+ ...(github.webhook.path && { path: github.webhook.path }),
789
+ },
790
+ ...(this.env.GITHUB_API_URL && { apiUrl: this.env.GITHUB_API_URL }),
791
+ ...(github.login && { login: github.login }),
792
+ ...(github.trigger && { trigger: github.trigger }),
793
+ ...(github.repositories && { repositories: github.repositories }),
794
+ ...(github.associations && { associations: github.associations }),
795
+ ...(github.authors && { authors: github.authors }),
796
+ ...(github.allowBots !== undefined && { allowBots: github.allowBots }),
797
+ ...(github.stream !== undefined && { stream: github.stream }),
798
+ }));
799
+ }
800
+ else {
801
+ console.warn('[RuntimeBuilder] GitHub configured but GITHUB_CHANNEL_TOKEN (or GITHUB_TOKEN) and GITHUB_WEBHOOK_SECRET not found in env');
802
+ }
803
+ }
804
+ const email = this.config.channels.email;
805
+ if (email) {
806
+ const built = this.buildEmailChannel(email);
807
+ if (built)
808
+ channels.push(built);
809
+ }
768
810
  return channels;
769
811
  }
812
+ /**
813
+ * The email channel of `cogitator.yml`, its secrets and, where the file leaves them out,
814
+ * hosts and ports from the env: `EMAIL_ADDRESS`, `EMAIL_IMAP_HOST`, `EMAIL_IMAP_PORT`,
815
+ * `EMAIL_IMAP_USER`, `EMAIL_IMAP_PASSWORD`, `EMAIL_SMTP_HOST`, `EMAIL_SMTP_PORT`,
816
+ * `EMAIL_SMTP_USER`, `EMAIL_SMTP_PASSWORD`, `EMAIL_MAILGUN_SIGNING_KEY`, `EMAIL_WEBHOOK_TOKEN`,
817
+ * `EMAIL_WEBHOOK_USER` and `EMAIL_WEBHOOK_PASSWORD`. Warns and builds nothing when something
818
+ * it needs is missing.
819
+ */
820
+ buildEmailChannel(email) {
821
+ const env = (name) => this.env[name]?.trim() || undefined;
822
+ const port = (name) => {
823
+ const value = Number(env(name));
824
+ return Number.isInteger(value) && value > 0 ? value : undefined;
825
+ };
826
+ const missing = (what) => {
827
+ console.warn(`[RuntimeBuilder] Email configured but ${what} not found in env`);
828
+ return undefined;
829
+ };
830
+ const address = email.address ?? env('EMAIL_ADDRESS')?.toLowerCase();
831
+ if (!address)
832
+ return missing('EMAIL_ADDRESS (or channels.email.address)');
833
+ if (!isAddress(address)) {
834
+ console.warn(`[RuntimeBuilder] Email configured but EMAIL_ADDRESS "${address}" is not an email address`);
835
+ return undefined;
836
+ }
837
+ const smtpHost = email.smtp?.host ?? env('EMAIL_SMTP_HOST');
838
+ const smtpPassword = env('EMAIL_SMTP_PASSWORD');
839
+ if (!smtpHost)
840
+ return missing('EMAIL_SMTP_HOST (or channels.email.smtp.host)');
841
+ const smtpPort = email.smtp?.port ?? port('EMAIL_SMTP_PORT');
842
+ const imapWanted = email.imap !== undefined || !!env('EMAIL_IMAP_HOST');
843
+ const imapHost = email.imap?.host ?? env('EMAIL_IMAP_HOST');
844
+ const imapPassword = env('EMAIL_IMAP_PASSWORD');
845
+ if (imapWanted && !imapHost)
846
+ return missing('EMAIL_IMAP_HOST (or channels.email.imap.host)');
847
+ if (imapWanted && !imapPassword)
848
+ return missing('EMAIL_IMAP_PASSWORD');
849
+ const imapPort = email.imap?.port ?? port('EMAIL_IMAP_PORT');
850
+ let webhook;
851
+ if (email.webhook) {
852
+ const server = {
853
+ port: email.webhook.port,
854
+ ...(email.webhook.path && { path: email.webhook.path }),
855
+ };
856
+ if (email.webhook.provider === 'mailgun') {
857
+ const signingKey = env('EMAIL_MAILGUN_SIGNING_KEY');
858
+ if (!signingKey)
859
+ return missing('EMAIL_MAILGUN_SIGNING_KEY');
860
+ webhook = { provider: 'mailgun', signingKey, ...server };
861
+ }
862
+ else {
863
+ const token = env('EMAIL_WEBHOOK_TOKEN');
864
+ const username = env('EMAIL_WEBHOOK_USER');
865
+ const password = env('EMAIL_WEBHOOK_PASSWORD');
866
+ if (!token && !(username && password)) {
867
+ return missing('EMAIL_WEBHOOK_TOKEN (or EMAIL_WEBHOOK_USER and EMAIL_WEBHOOK_PASSWORD)');
868
+ }
869
+ webhook = {
870
+ provider: email.webhook.provider,
871
+ ...(token && { token }),
872
+ ...(username && password && { basicAuth: { username, password } }),
873
+ ...server,
874
+ };
875
+ }
876
+ }
877
+ return emailChannel({
878
+ address,
879
+ ...(email.name && { name: email.name }),
880
+ ...(email.aliases && { aliases: email.aliases }),
881
+ smtp: {
882
+ host: smtpHost,
883
+ ...(smtpPort !== undefined && { port: smtpPort }),
884
+ ...(email.smtp?.secure !== undefined && { secure: email.smtp.secure }),
885
+ ...(smtpPassword && {
886
+ auth: { user: env('EMAIL_SMTP_USER') ?? address, pass: smtpPassword },
887
+ }),
888
+ },
889
+ ...(imapWanted &&
890
+ imapHost &&
891
+ imapPassword && {
892
+ imap: {
893
+ host: imapHost,
894
+ ...(imapPort !== undefined && { port: imapPort }),
895
+ ...(email.imap?.secure !== undefined && { secure: email.imap.secure }),
896
+ auth: { user: env('EMAIL_IMAP_USER') ?? address, pass: imapPassword },
897
+ ...(email.imap?.mailbox && { mailbox: email.imap.mailbox }),
898
+ ...(email.imap?.pollInterval !== undefined && {
899
+ pollInterval: email.imap.pollInterval,
900
+ }),
901
+ ...(email.imap?.lookbackDays !== undefined && {
902
+ lookbackDays: email.imap.lookbackDays,
903
+ }),
904
+ },
905
+ }),
906
+ ...(webhook && { webhook }),
907
+ ...(email.allowFrom && { allowFrom: email.allowFrom }),
908
+ ...(email.ownerIds && { owners: email.ownerIds }),
909
+ ...(email.senderAuth && { senderAuth: email.senderAuth }),
910
+ ...(email.trustedAuthservIds && { trustedAuthservIds: email.trustedAuthservIds }),
911
+ ...(email.subject && { subject: email.subject }),
912
+ });
913
+ }
770
914
  buildScheduler(timerStore, gateway) {
771
915
  if (!timerStore)
772
916
  return null;
@@ -845,7 +989,7 @@ Required env vars per provider:
845
989
  - ollama (local): none
846
990
  - ollama (cloud): OLLAMA_URL=https://ollama.com, OLLAMA_API_KEY
847
991
 
848
- Other env vars: GITHUB_TOKEN (for GitHub capability), TG_TOKEN, DISCORD_TOKEN, SLACK_BOT_TOKEN, SLACK_SIGNING_SECRET, SLACK_APP_TOKEN (Slack Socket Mode), WEBCHAT_TOKEN (WebChat).`;
992
+ Other env vars: GITHUB_TOKEN (for the GitHub capability), GITHUB_CHANNEL_TOKEN and GITHUB_WEBHOOK_SECRET (GitHub channel), TG_TOKEN, DISCORD_TOKEN, SLACK_BOT_TOKEN, SLACK_SIGNING_SECRET, SLACK_APP_TOKEN (Slack Socket Mode), WEBCHAT_TOKEN (WebChat).`;
849
993
  }
850
994
  if (this.config.capabilities.selfTools) {
851
995
  instructions += `\nYou can create custom tools using create_tool. Write JavaScript ESM code with a default export containing name, description, parameters (JSON Schema), and an async execute function. You have full Node.js access (fetch, fs, child_process, etc.). After creating a tool, ALWAYS use test_tool to verify it works. If test fails, use create_tool again with fixed code. Use list_custom_tools to see existing tools and delete_tool to remove them. Custom tools are available after restart.`;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-builder.js","sourceRoot":"","sources":["../src/runtime-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-builder.js","sourceRoot":"","sources":["../src/runtime-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import type { ChannelMessage } from '@cogitator-ai/types';
2
+ /** The fields of a message that say which conversation it belongs to */
3
+ export type ConversationRef = Pick<ChannelMessage, 'channelType' | 'channelId' | 'userId' | 'topicId' | 'conversationId'>;
4
+ /**
5
+ * The conversation of a message inside its channel: its `conversationId` when the channel names
6
+ * one, otherwise its chat (`channelId`) and, when it has one, the topic inside it (`topicId`).
7
+ */
8
+ export declare function conversationOf(msg: Omit<ConversationRef, 'channelType' | 'userId'>): string;
9
+ /**
10
+ * The gateway's default thread key: one thread per user per conversation,
11
+ * `channelType:conversation:userId` (see {@link conversationOf}). A user's private chat, each
12
+ * group chat and each forum topic or Slack thread they write in is a thread of its own.
13
+ */
14
+ export declare function defaultThreadKey(msg: ConversationRef): string;
15
+ /**
16
+ * The thread key of earlier versions: one thread per user per channel type,
17
+ * `channelType:userId`, whatever chat or topic the message comes from. Pass it as
18
+ * `session.threadKey` to keep the threads a gateway stored before the default changed.
19
+ */
20
+ export declare function legacyThreadKey(msg: Pick<ChannelMessage, 'channelType' | 'userId'>): string;
21
+ /**
22
+ * A conversation a user wrote in, kept in the metadata of their session, so the gateway can name
23
+ * its thread again after a restart (`Gateway.compactAll`) and send a scheduled message to it.
24
+ */
25
+ export interface StoredConversation {
26
+ channelId: string;
27
+ topicId?: string;
28
+ conversationId?: string;
29
+ }
30
+ /** The session metadata key that holds a user's conversations, most recent first */
31
+ export declare const CONVERSATIONS_KEY = "conversations";
32
+ /** Conversations kept per session, past it the least recently used one goes */
33
+ export declare const MAX_STORED_CONVERSATIONS = 50;
34
+ /**
35
+ * The conversations stored in a session's metadata, skipping entries that are not one. Metadata
36
+ * a session store left out reads as none.
37
+ */
38
+ export declare function readConversations(metadata: Record<string, unknown> | undefined): StoredConversation[];
39
+ /**
40
+ * The conversations with the message's own moved to the front, or `null` when it is already
41
+ * there as it is, so nothing needs to be written. On Bluesky and Threads the entry keeps the
42
+ * conversation's latest post as its `channelId`.
43
+ */
44
+ export declare function rememberConversation(conversations: readonly StoredConversation[], msg: Omit<ConversationRef, 'channelType' | 'userId'>): StoredConversation[] | null;
45
+ /**
46
+ * The stored conversation a message sent to `channelId` without a topic most likely continues:
47
+ * the most recent one in that chat.
48
+ */
49
+ export declare function findConversation(conversations: readonly StoredConversation[], channelId: string): StoredConversation | undefined;
50
+ //# sourceMappingURL=thread-key.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thread-key.d.ts","sourceRoot":"","sources":["../src/thread-key.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,wEAAwE;AACxE,MAAM,MAAM,eAAe,GAAG,IAAI,CAChC,cAAc,EACd,aAAa,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,gBAAgB,CACtE,CAAC;AAEF;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,aAAa,GAAG,QAAQ,CAAC,GAAG,MAAM,CAG3F;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAE7D;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,aAAa,GAAG,QAAQ,CAAC,GAAG,MAAM,CAE3F;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,oFAAoF;AACpF,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AAEjD,+EAA+E;AAC/E,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAQ3C;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC5C,kBAAkB,EAAE,CAStB;AAgBD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,SAAS,kBAAkB,EAAE,EAC5C,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,aAAa,GAAG,QAAQ,CAAC,GACnD,kBAAkB,EAAE,GAAG,IAAI,CAS7B;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,SAAS,kBAAkB,EAAE,EAC5C,SAAS,EAAE,MAAM,GAChB,kBAAkB,GAAG,SAAS,CAEhC"}