@hybridaione/hybridclaw 0.2.2 → 0.2.6

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 (277) hide show
  1. package/.github/workflows/ci.yml +70 -0
  2. package/.husky/pre-commit +1 -0
  3. package/CHANGELOG.md +85 -0
  4. package/CONTRIBUTING.md +33 -0
  5. package/README.md +41 -16
  6. package/SECURITY.md +17 -0
  7. package/biome.json +35 -0
  8. package/config.example.json +71 -8
  9. package/container/package-lock.json +2 -2
  10. package/container/package.json +1 -1
  11. package/container/src/approval-policy.ts +1303 -0
  12. package/container/src/browser-tools.ts +431 -136
  13. package/container/src/extensions.ts +36 -12
  14. package/container/src/hybridai-client.ts +34 -13
  15. package/container/src/index.ts +451 -109
  16. package/container/src/ipc.ts +5 -3
  17. package/container/src/token-usage.ts +20 -10
  18. package/container/src/tools.ts +599 -225
  19. package/container/src/types.ts +32 -2
  20. package/container/src/web-fetch.ts +89 -32
  21. package/dist/agent.d.ts.map +1 -1
  22. package/dist/agent.js +10 -2
  23. package/dist/agent.js.map +1 -1
  24. package/dist/audit-cli.d.ts.map +1 -1
  25. package/dist/audit-cli.js +4 -2
  26. package/dist/audit-cli.js.map +1 -1
  27. package/dist/audit-events.d.ts.map +1 -1
  28. package/dist/audit-events.js +53 -3
  29. package/dist/audit-events.js.map +1 -1
  30. package/dist/audit-trail.d.ts.map +1 -1
  31. package/dist/audit-trail.js +17 -8
  32. package/dist/audit-trail.js.map +1 -1
  33. package/dist/channels/discord/attachments.d.ts.map +1 -1
  34. package/dist/channels/discord/attachments.js +14 -7
  35. package/dist/channels/discord/attachments.js.map +1 -1
  36. package/dist/channels/discord/debounce.d.ts +9 -0
  37. package/dist/channels/discord/debounce.d.ts.map +1 -0
  38. package/dist/channels/discord/debounce.js +20 -0
  39. package/dist/channels/discord/debounce.js.map +1 -0
  40. package/dist/channels/discord/delivery.d.ts +4 -1
  41. package/dist/channels/discord/delivery.d.ts.map +1 -1
  42. package/dist/channels/discord/delivery.js +19 -3
  43. package/dist/channels/discord/delivery.js.map +1 -1
  44. package/dist/channels/discord/human-delay.d.ts +16 -0
  45. package/dist/channels/discord/human-delay.d.ts.map +1 -0
  46. package/dist/channels/discord/human-delay.js +29 -0
  47. package/dist/channels/discord/human-delay.js.map +1 -0
  48. package/dist/channels/discord/inbound.d.ts +4 -0
  49. package/dist/channels/discord/inbound.d.ts.map +1 -1
  50. package/dist/channels/discord/inbound.js +45 -4
  51. package/dist/channels/discord/inbound.js.map +1 -1
  52. package/dist/channels/discord/mentions.d.ts.map +1 -1
  53. package/dist/channels/discord/mentions.js +16 -4
  54. package/dist/channels/discord/mentions.js.map +1 -1
  55. package/dist/channels/discord/presence.d.ts +33 -0
  56. package/dist/channels/discord/presence.d.ts.map +1 -0
  57. package/dist/channels/discord/presence.js +111 -0
  58. package/dist/channels/discord/presence.js.map +1 -0
  59. package/dist/channels/discord/rate-limiter.d.ts +14 -0
  60. package/dist/channels/discord/rate-limiter.d.ts.map +1 -0
  61. package/dist/channels/discord/rate-limiter.js +49 -0
  62. package/dist/channels/discord/rate-limiter.js.map +1 -0
  63. package/dist/channels/discord/reactions.d.ts +38 -0
  64. package/dist/channels/discord/reactions.d.ts.map +1 -0
  65. package/dist/channels/discord/reactions.js +151 -0
  66. package/dist/channels/discord/reactions.js.map +1 -0
  67. package/dist/channels/discord/runtime.d.ts +6 -3
  68. package/dist/channels/discord/runtime.d.ts.map +1 -1
  69. package/dist/channels/discord/runtime.js +621 -125
  70. package/dist/channels/discord/runtime.js.map +1 -1
  71. package/dist/channels/discord/stream.d.ts +4 -1
  72. package/dist/channels/discord/stream.d.ts.map +1 -1
  73. package/dist/channels/discord/stream.js +16 -8
  74. package/dist/channels/discord/stream.js.map +1 -1
  75. package/dist/channels/discord/tool-actions.d.ts.map +1 -1
  76. package/dist/channels/discord/tool-actions.js +24 -12
  77. package/dist/channels/discord/tool-actions.js.map +1 -1
  78. package/dist/channels/discord/typing.d.ts +15 -0
  79. package/dist/channels/discord/typing.d.ts.map +1 -0
  80. package/dist/channels/discord/typing.js +106 -0
  81. package/dist/channels/discord/typing.js.map +1 -0
  82. package/dist/chunk.d.ts.map +1 -1
  83. package/dist/chunk.js +4 -2
  84. package/dist/chunk.js.map +1 -1
  85. package/dist/cli.js +47 -22
  86. package/dist/cli.js.map +1 -1
  87. package/dist/config.d.ts +19 -0
  88. package/dist/config.d.ts.map +1 -1
  89. package/dist/config.js +103 -18
  90. package/dist/config.js.map +1 -1
  91. package/dist/container-runner.d.ts.map +1 -1
  92. package/dist/container-runner.js +58 -26
  93. package/dist/container-runner.js.map +1 -1
  94. package/dist/container-setup.d.ts.map +1 -1
  95. package/dist/container-setup.js +10 -9
  96. package/dist/container-setup.js.map +1 -1
  97. package/dist/conversation.d.ts +2 -2
  98. package/dist/conversation.d.ts.map +1 -1
  99. package/dist/conversation.js +1 -1
  100. package/dist/conversation.js.map +1 -1
  101. package/dist/db.d.ts +118 -2
  102. package/dist/db.d.ts.map +1 -1
  103. package/dist/db.js +1568 -50
  104. package/dist/db.js.map +1 -1
  105. package/dist/delegation-manager.d.ts.map +1 -1
  106. package/dist/delegation-manager.js +3 -2
  107. package/dist/delegation-manager.js.map +1 -1
  108. package/dist/gateway-client.d.ts +2 -2
  109. package/dist/gateway-client.d.ts.map +1 -1
  110. package/dist/gateway-client.js +10 -4
  111. package/dist/gateway-client.js.map +1 -1
  112. package/dist/gateway-service.d.ts +3 -3
  113. package/dist/gateway-service.d.ts.map +1 -1
  114. package/dist/gateway-service.js +563 -73
  115. package/dist/gateway-service.js.map +1 -1
  116. package/dist/gateway-types.d.ts +24 -0
  117. package/dist/gateway-types.d.ts.map +1 -1
  118. package/dist/gateway-types.js.map +1 -1
  119. package/dist/gateway.js +179 -24
  120. package/dist/gateway.js.map +1 -1
  121. package/dist/health.d.ts.map +1 -1
  122. package/dist/health.js +20 -10
  123. package/dist/health.js.map +1 -1
  124. package/dist/heartbeat.d.ts +4 -0
  125. package/dist/heartbeat.d.ts.map +1 -1
  126. package/dist/heartbeat.js +48 -20
  127. package/dist/heartbeat.js.map +1 -1
  128. package/dist/hybridai-bots.d.ts.map +1 -1
  129. package/dist/hybridai-bots.js +4 -2
  130. package/dist/hybridai-bots.js.map +1 -1
  131. package/dist/instruction-approval-audit.d.ts.map +1 -1
  132. package/dist/instruction-approval-audit.js.map +1 -1
  133. package/dist/instruction-integrity.d.ts.map +1 -1
  134. package/dist/instruction-integrity.js +8 -2
  135. package/dist/instruction-integrity.js.map +1 -1
  136. package/dist/ipc.d.ts.map +1 -1
  137. package/dist/ipc.js +6 -1
  138. package/dist/ipc.js.map +1 -1
  139. package/dist/logger.js.map +1 -1
  140. package/dist/memory-consolidation.d.ts +17 -0
  141. package/dist/memory-consolidation.d.ts.map +1 -0
  142. package/dist/memory-consolidation.js +25 -0
  143. package/dist/memory-consolidation.js.map +1 -0
  144. package/dist/memory-service.d.ts +200 -0
  145. package/dist/memory-service.d.ts.map +1 -0
  146. package/dist/memory-service.js +294 -0
  147. package/dist/memory-service.js.map +1 -0
  148. package/dist/mount-security.d.ts.map +1 -1
  149. package/dist/mount-security.js +31 -7
  150. package/dist/mount-security.js.map +1 -1
  151. package/dist/observability-ingest.d.ts.map +1 -1
  152. package/dist/observability-ingest.js +32 -11
  153. package/dist/observability-ingest.js.map +1 -1
  154. package/dist/onboarding.d.ts.map +1 -1
  155. package/dist/onboarding.js +32 -9
  156. package/dist/onboarding.js.map +1 -1
  157. package/dist/proactive-policy.d.ts.map +1 -1
  158. package/dist/proactive-policy.js +2 -1
  159. package/dist/proactive-policy.js.map +1 -1
  160. package/dist/prompt-hooks.d.ts.map +1 -1
  161. package/dist/prompt-hooks.js +9 -7
  162. package/dist/prompt-hooks.js.map +1 -1
  163. package/dist/runtime-config.d.ts +98 -1
  164. package/dist/runtime-config.d.ts.map +1 -1
  165. package/dist/runtime-config.js +477 -23
  166. package/dist/runtime-config.js.map +1 -1
  167. package/dist/scheduled-task-runner.d.ts +1 -0
  168. package/dist/scheduled-task-runner.d.ts.map +1 -1
  169. package/dist/scheduled-task-runner.js +29 -10
  170. package/dist/scheduled-task-runner.js.map +1 -1
  171. package/dist/scheduler.d.ts +43 -4
  172. package/dist/scheduler.d.ts.map +1 -1
  173. package/dist/scheduler.js +530 -56
  174. package/dist/scheduler.js.map +1 -1
  175. package/dist/session-export.d.ts +26 -0
  176. package/dist/session-export.d.ts.map +1 -0
  177. package/dist/session-export.js +149 -0
  178. package/dist/session-export.js.map +1 -0
  179. package/dist/session-maintenance.d.ts.map +1 -1
  180. package/dist/session-maintenance.js +75 -13
  181. package/dist/session-maintenance.js.map +1 -1
  182. package/dist/session-transcripts.d.ts.map +1 -1
  183. package/dist/session-transcripts.js.map +1 -1
  184. package/dist/side-effects.d.ts.map +1 -1
  185. package/dist/side-effects.js +14 -2
  186. package/dist/side-effects.js.map +1 -1
  187. package/dist/skills-guard.d.ts.map +1 -1
  188. package/dist/skills-guard.js +893 -130
  189. package/dist/skills-guard.js.map +1 -1
  190. package/dist/skills.d.ts +5 -0
  191. package/dist/skills.d.ts.map +1 -1
  192. package/dist/skills.js +29 -15
  193. package/dist/skills.js.map +1 -1
  194. package/dist/token-efficiency.d.ts.map +1 -1
  195. package/dist/token-efficiency.js.map +1 -1
  196. package/dist/tui.js +92 -11
  197. package/dist/tui.js.map +1 -1
  198. package/dist/types.d.ts +146 -0
  199. package/dist/types.d.ts.map +1 -1
  200. package/dist/types.js +24 -1
  201. package/dist/types.js.map +1 -1
  202. package/dist/update.d.ts.map +1 -1
  203. package/dist/update.js +42 -14
  204. package/dist/update.js.map +1 -1
  205. package/dist/workspace.d.ts.map +1 -1
  206. package/dist/workspace.js +49 -9
  207. package/dist/workspace.js.map +1 -1
  208. package/docs/chat.html +9 -3
  209. package/docs/index.html +37 -13
  210. package/package.json +8 -2
  211. package/src/agent.ts +16 -3
  212. package/src/audit-cli.ts +44 -16
  213. package/src/audit-events.ts +69 -5
  214. package/src/audit-trail.ts +41 -15
  215. package/src/channels/discord/attachments.ts +81 -27
  216. package/src/channels/discord/debounce.ts +25 -0
  217. package/src/channels/discord/delivery.ts +57 -13
  218. package/src/channels/discord/human-delay.ts +48 -0
  219. package/src/channels/discord/inbound.ts +66 -7
  220. package/src/channels/discord/mentions.ts +42 -18
  221. package/src/channels/discord/presence.ts +148 -0
  222. package/src/channels/discord/rate-limiter.ts +58 -0
  223. package/src/channels/discord/reactions.ts +211 -0
  224. package/src/channels/discord/runtime.ts +1048 -182
  225. package/src/channels/discord/stream.ts +73 -27
  226. package/src/channels/discord/tool-actions.ts +78 -37
  227. package/src/channels/discord/typing.ts +140 -0
  228. package/src/chunk.ts +12 -4
  229. package/src/cli.ts +141 -56
  230. package/src/config.ts +192 -34
  231. package/src/container-runner.ts +132 -42
  232. package/src/container-setup.ts +57 -22
  233. package/src/conversation.ts +9 -7
  234. package/src/db.ts +2217 -84
  235. package/src/delegation-manager.ts +6 -2
  236. package/src/gateway-client.ts +41 -17
  237. package/src/gateway-service.ts +1019 -201
  238. package/src/gateway-types.ts +33 -0
  239. package/src/gateway.ts +321 -48
  240. package/src/health.ts +66 -26
  241. package/src/heartbeat.ts +84 -22
  242. package/src/hybridai-bots.ts +14 -5
  243. package/src/instruction-approval-audit.ts +4 -1
  244. package/src/instruction-integrity.ts +30 -9
  245. package/src/ipc.ts +23 -5
  246. package/src/logger.ts +4 -1
  247. package/src/memory-consolidation.ts +41 -0
  248. package/src/memory-service.ts +606 -0
  249. package/src/mount-security.ts +58 -13
  250. package/src/observability-ingest.ts +134 -35
  251. package/src/onboarding.ts +126 -35
  252. package/src/proactive-policy.ts +3 -1
  253. package/src/prompt-hooks.ts +40 -17
  254. package/src/runtime-config.ts +1114 -99
  255. package/src/scheduled-task-runner.ts +63 -11
  256. package/src/scheduler.ts +683 -60
  257. package/src/session-export.ts +196 -0
  258. package/src/session-maintenance.ts +125 -22
  259. package/src/session-transcripts.ts +12 -3
  260. package/src/side-effects.ts +28 -5
  261. package/src/skills-guard.ts +1067 -219
  262. package/src/skills.ts +163 -65
  263. package/src/token-efficiency.ts +31 -9
  264. package/src/tui.ts +166 -25
  265. package/src/types.ts +195 -2
  266. package/src/update.ts +79 -23
  267. package/src/workspace.ts +63 -11
  268. package/tests/approval-policy.test.ts +224 -0
  269. package/tests/discord.basic.test.ts +82 -2
  270. package/tests/discord.human-presence.test.ts +85 -0
  271. package/tests/gateway-service.media-routing.test.ts +8 -2
  272. package/tests/memory-service.test.ts +1114 -0
  273. package/tests/token-efficiency.basic.test.ts +8 -2
  274. package/vitest.e2e.config.ts +3 -1
  275. package/vitest.integration.config.ts +3 -1
  276. package/vitest.live.config.ts +3 -1
  277. package/vitest.unit.config.ts +9 -0
package/dist/gateway.js CHANGED
@@ -1,20 +1,22 @@
1
- import fs from 'fs';
2
1
  import { AttachmentBuilder } from 'discord.js';
3
- import { DISCORD_TOKEN, HEARTBEAT_CHANNEL, HEARTBEAT_INTERVAL, HYBRIDAI_CHATBOT_ID, PROACTIVE_QUEUE_OUTSIDE_HOURS, onConfigChange, } from './config.js';
2
+ import fs from 'fs';
3
+ import { buildResponseText, formatError, formatInfo, } from './channels/discord/delivery.js';
4
+ import { rewriteUserMentionsForMessage } from './channels/discord/mentions.js';
5
+ import { initDiscord, sendToChannel, setDiscordMaintenancePresence, } from './channels/discord/runtime.js';
6
+ import { DISCORD_TOKEN, getConfigSnapshot, HEARTBEAT_CHANNEL, HEARTBEAT_INTERVAL, HYBRIDAI_CHATBOT_ID, onConfigChange, PROACTIVE_QUEUE_OUTSIDE_HOURS, } from './config.js';
4
7
  import { stopAllContainers } from './container-runner.js';
5
- import { deleteQueuedProactiveMessage, enqueueProactiveMessage, getQueuedProactiveMessageCount, initDatabase, listQueuedProactiveMessages, } from './db.js';
8
+ import { deleteQueuedProactiveMessage, enqueueProactiveMessage, getMostRecentSessionChannelId, getQueuedProactiveMessageCount, initDatabase, listQueuedProactiveMessages, } from './db.js';
6
9
  import { getGatewayStatus, handleGatewayCommand, handleGatewayMessage, renderGatewayCommand, runGatewayScheduledTask, } from './gateway-service.js';
7
- import { buildResponseText, formatError, formatInfo } from './channels/discord/delivery.js';
8
- import { rewriteUserMentionsForMessage } from './channels/discord/mentions.js';
9
10
  import { startHealthServer } from './health.js';
10
11
  import { startHeartbeat, stopHeartbeat } from './heartbeat.js';
11
12
  import { logger } from './logger.js';
12
- import { startObservabilityIngest, stopObservabilityIngest } from './observability-ingest.js';
13
- import { startScheduler, stopScheduler } from './scheduler.js';
14
- import { initDiscord, sendToChannel, } from './channels/discord/runtime.js';
15
- import { isWithinActiveHours, proactiveWindowLabel } from './proactive-policy.js';
13
+ import { memoryService } from './memory-service.js';
14
+ import { startObservabilityIngest, stopObservabilityIngest, } from './observability-ingest.js';
15
+ import { isWithinActiveHours, proactiveWindowLabel, } from './proactive-policy.js';
16
+ import { rearmScheduler, startScheduler, stopScheduler, } from './scheduler.js';
16
17
  let detachConfigListener = null;
17
18
  let proactiveFlushTimer = null;
19
+ let memoryConsolidationTimer = null;
18
20
  const MAX_QUEUED_PROACTIVE_MESSAGES = 100;
19
21
  function isDiscordChannelId(channelId) {
20
22
  return /^\d{16,22}$/.test(channelId);
@@ -73,7 +75,10 @@ function simplifyImageAttachmentNarration(text, artifacts) {
73
75
  }
74
76
  if (!removedPathNarration)
75
77
  return text;
76
- const cleaned = keptLines.join('\n').replace(/\n{3,}/g, '\n\n').trim();
78
+ const cleaned = keptLines
79
+ .join('\n')
80
+ .replace(/\n{3,}/g, '\n\n')
81
+ .trim();
77
82
  if (cleaned)
78
83
  return cleaned;
79
84
  return imageArtifacts.length === 1 ? 'Here it is.' : 'Here they are.';
@@ -114,6 +119,33 @@ async function sendProactiveMessageNow(channelId, text, source, artifacts) {
114
119
  logger.info({ source, channelId, text }, 'Proactive message fallback');
115
120
  }
116
121
  }
122
+ async function deliverWebhookMessage(webhookUrl, text, source, artifacts) {
123
+ const response = await fetch(webhookUrl, {
124
+ method: 'POST',
125
+ headers: {
126
+ 'Content-Type': 'application/json; charset=utf-8',
127
+ },
128
+ body: JSON.stringify({
129
+ text,
130
+ source,
131
+ artifactCount: artifacts?.length || 0,
132
+ artifacts: (artifacts || []).map((artifact) => ({
133
+ filename: artifact.filename,
134
+ mimeType: artifact.mimeType,
135
+ })),
136
+ }),
137
+ });
138
+ if (!response.ok) {
139
+ const body = await response.text().catch(() => '');
140
+ throw new Error(`Webhook delivery failed (${response.status}): ${body.slice(0, 300)}`);
141
+ }
142
+ }
143
+ function resolveLastUsedDiscordChannelId() {
144
+ const channelId = getMostRecentSessionChannelId();
145
+ if (!channelId)
146
+ return null;
147
+ return isDiscordChannelId(channelId) ? channelId : null;
148
+ }
117
149
  async function flushQueuedProactiveMessages() {
118
150
  if (!isWithinActiveHours())
119
151
  return;
@@ -135,6 +167,7 @@ async function startDiscordIntegration() {
135
167
  }
136
168
  initDiscord(async (sessionId, guildId, channelId, userId, username, content, media, _reply, context) => {
137
169
  try {
170
+ let sawTextDelta = false;
138
171
  const result = await handleGatewayMessage({
139
172
  sessionId,
140
173
  guildId,
@@ -144,8 +177,22 @@ async function startDiscordIntegration() {
144
177
  content,
145
178
  media,
146
179
  onTextDelta: (delta) => {
180
+ if (!sawTextDelta) {
181
+ sawTextDelta = true;
182
+ context.emitLifecyclePhase('streaming');
183
+ }
147
184
  void context.stream.append(delta);
148
185
  },
186
+ onToolProgress: (event) => {
187
+ if (sawTextDelta)
188
+ return;
189
+ if (event.phase === 'start') {
190
+ context.emitLifecyclePhase('toolUse');
191
+ }
192
+ else {
193
+ context.emitLifecyclePhase('thinking');
194
+ }
195
+ },
149
196
  onProactiveMessage: async (message) => {
150
197
  await deliverProactiveMessage(channelId, message.text, 'delegate', message.artifacts);
151
198
  },
@@ -194,32 +241,93 @@ async function startDiscordIntegration() {
194
241
  logger.info('Discord integration started inside gateway');
195
242
  }
196
243
  function setupShutdown() {
197
- const shutdown = () => {
244
+ let shuttingDown = false;
245
+ const shutdown = async () => {
246
+ if (shuttingDown)
247
+ return;
248
+ shuttingDown = true;
198
249
  logger.info('Shutting down gateway...');
199
250
  if (detachConfigListener) {
200
251
  detachConfigListener();
201
252
  detachConfigListener = null;
202
253
  }
254
+ await setDiscordMaintenancePresence().catch((error) => {
255
+ logger.debug({ error }, 'Failed to set Discord maintenance presence during shutdown');
256
+ });
203
257
  stopHeartbeat();
204
258
  stopObservabilityIngest();
205
259
  stopAllContainers();
206
260
  stopScheduler();
261
+ stopMemoryConsolidationScheduler();
207
262
  if (proactiveFlushTimer) {
208
263
  clearInterval(proactiveFlushTimer);
209
264
  proactiveFlushTimer = null;
210
265
  }
211
266
  process.exit(0);
212
267
  };
213
- process.on('SIGINT', shutdown);
214
- process.on('SIGTERM', shutdown);
268
+ process.on('SIGINT', () => {
269
+ void shutdown();
270
+ });
271
+ process.on('SIGTERM', () => {
272
+ void shutdown();
273
+ });
215
274
  }
216
- async function runScheduledTask(sessionId, channelId, prompt, taskId) {
217
- await runGatewayScheduledTask(sessionId, channelId, prompt, taskId, async (result) => {
218
- await deliverProactiveMessage(channelId, result.text, `schedule:${taskId}`, result.artifacts);
219
- logger.info({ taskId, channelId, result: result.text, artifactCount: result.artifacts?.length || 0 }, 'Scheduled task completed');
275
+ async function runScheduledTask(request) {
276
+ const sourceLabel = request.source === 'db-task'
277
+ ? `schedule:${request.taskId ?? 'unknown'}`
278
+ : `schedule-job:${request.jobId ?? 'unknown'}`;
279
+ const resolvedDeliveryChannelId = request.delivery.kind === 'channel'
280
+ ? request.delivery.channelId
281
+ : request.delivery.kind === 'last-channel'
282
+ ? resolveLastUsedDiscordChannelId()
283
+ : null;
284
+ if (request.actionKind === 'system_event') {
285
+ if (request.delivery.kind === 'webhook') {
286
+ await deliverWebhookMessage(request.delivery.webhookUrl, request.prompt, `${sourceLabel}:system`);
287
+ return;
288
+ }
289
+ if (!resolvedDeliveryChannelId) {
290
+ throw new Error('No Discord channel available for scheduled system event delivery.');
291
+ }
292
+ await deliverProactiveMessage(resolvedDeliveryChannelId, request.prompt, `${sourceLabel}:system`);
293
+ return;
294
+ }
295
+ const runChannelId = request.channelId || resolvedDeliveryChannelId || 'scheduler';
296
+ const taskId = request.taskId ?? -1;
297
+ await runGatewayScheduledTask(request.sessionId, runChannelId, request.prompt, taskId, async (result) => {
298
+ if (request.delivery.kind === 'webhook') {
299
+ await deliverWebhookMessage(request.delivery.webhookUrl, result.text, sourceLabel, result.artifacts);
300
+ logger.info({
301
+ jobId: request.jobId,
302
+ taskId: request.taskId,
303
+ source: request.source,
304
+ delivery: 'webhook',
305
+ result: result.text,
306
+ artifactCount: result.artifacts?.length || 0,
307
+ }, 'Scheduled task completed');
308
+ return;
309
+ }
310
+ if (!resolvedDeliveryChannelId) {
311
+ throw new Error('No Discord channel available for scheduled delivery.');
312
+ }
313
+ await deliverProactiveMessage(resolvedDeliveryChannelId, result.text, sourceLabel, result.artifacts);
314
+ logger.info({
315
+ jobId: request.jobId,
316
+ taskId: request.taskId,
317
+ source: request.source,
318
+ channelId: resolvedDeliveryChannelId,
319
+ result: result.text,
320
+ artifactCount: result.artifacts?.length || 0,
321
+ }, 'Scheduled task completed');
220
322
  }, (error) => {
221
- logger.error({ taskId, channelId, error }, 'Scheduled task failed');
222
- });
323
+ logger.error({
324
+ jobId: request.jobId,
325
+ taskId: request.taskId,
326
+ source: request.source,
327
+ delivery: request.delivery.kind,
328
+ error,
329
+ }, 'Scheduled task failed');
330
+ }, request.sessionId);
223
331
  }
224
332
  function startOrRestartHeartbeat() {
225
333
  stopHeartbeat();
@@ -230,6 +338,38 @@ function startOrRestartHeartbeat() {
230
338
  logger.info({ text }, 'Heartbeat message');
231
339
  });
232
340
  }
341
+ function stopMemoryConsolidationScheduler() {
342
+ if (!memoryConsolidationTimer)
343
+ return;
344
+ clearInterval(memoryConsolidationTimer);
345
+ memoryConsolidationTimer = null;
346
+ }
347
+ function startOrRestartMemoryConsolidationScheduler() {
348
+ stopMemoryConsolidationScheduler();
349
+ const intervalHours = Math.max(0, Math.trunc(getConfigSnapshot().memory.consolidationIntervalHours));
350
+ if (intervalHours <= 0) {
351
+ logger.info('Memory consolidation scheduler disabled');
352
+ return;
353
+ }
354
+ const intervalMs = intervalHours * 3_600_000;
355
+ memoryConsolidationTimer = setInterval(() => {
356
+ const { decayRate } = getConfigSnapshot().memory;
357
+ try {
358
+ const report = memoryService.consolidateMemories({ decayRate });
359
+ if (report.memoriesDecayed > 0) {
360
+ logger.info({
361
+ decayed: report.memoriesDecayed,
362
+ durationMs: report.durationMs,
363
+ decayRate,
364
+ }, 'Memory consolidation completed');
365
+ }
366
+ }
367
+ catch (error) {
368
+ logger.warn({ error, decayRate }, 'Memory consolidation failed');
369
+ }
370
+ }, intervalMs);
371
+ logger.info({ intervalHours }, 'Memory consolidation scheduled');
372
+ }
233
373
  async function main() {
234
374
  logger.info('Starting HybridClaw gateway');
235
375
  initDatabase();
@@ -239,9 +379,9 @@ async function main() {
239
379
  startOrRestartHeartbeat();
240
380
  startObservabilityIngest();
241
381
  detachConfigListener = onConfigChange((next, prev) => {
242
- const shouldRestart = next.hybridai.defaultChatbotId !== prev.hybridai.defaultChatbotId
243
- || next.heartbeat.intervalMs !== prev.heartbeat.intervalMs
244
- || next.heartbeat.enabled !== prev.heartbeat.enabled;
382
+ const shouldRestart = next.hybridai.defaultChatbotId !== prev.hybridai.defaultChatbotId ||
383
+ next.heartbeat.intervalMs !== prev.heartbeat.intervalMs ||
384
+ next.heartbeat.enabled !== prev.heartbeat.enabled;
245
385
  if (shouldRestart) {
246
386
  logger.info({
247
387
  heartbeatEnabled: next.heartbeat.enabled,
@@ -250,8 +390,22 @@ async function main() {
250
390
  }, 'Config changed, restarting heartbeat');
251
391
  startOrRestartHeartbeat();
252
392
  }
253
- const shouldRestartObservability = JSON.stringify(next.observability) !== JSON.stringify(prev.observability)
254
- || next.hybridai.defaultChatbotId !== prev.hybridai.defaultChatbotId;
393
+ const schedulerChanged = JSON.stringify(next.scheduler) !== JSON.stringify(prev.scheduler);
394
+ if (schedulerChanged) {
395
+ logger.info('Config changed, re-arming scheduler for updated scheduler.jobs');
396
+ rearmScheduler();
397
+ }
398
+ const memoryChanged = JSON.stringify(next.memory) !== JSON.stringify(prev.memory);
399
+ if (memoryChanged) {
400
+ logger.info({
401
+ consolidationIntervalHours: next.memory.consolidationIntervalHours,
402
+ decayRate: next.memory.decayRate,
403
+ }, 'Config changed, restarting memory consolidation scheduler');
404
+ startOrRestartMemoryConsolidationScheduler();
405
+ }
406
+ const shouldRestartObservability = JSON.stringify(next.observability) !==
407
+ JSON.stringify(prev.observability) ||
408
+ next.hybridai.defaultChatbotId !== prev.hybridai.defaultChatbotId;
255
409
  if (!shouldRestartObservability)
256
410
  return;
257
411
  logger.info({
@@ -262,6 +416,7 @@ async function main() {
262
416
  startObservabilityIngest();
263
417
  });
264
418
  startScheduler(runScheduledTask);
419
+ startOrRestartMemoryConsolidationScheduler();
265
420
  proactiveFlushTimer = setInterval(() => {
266
421
  void flushQueuedProactiveMessages().catch((err) => {
267
422
  logger.warn({ err }, 'Failed to flush queued proactive messages');
@@ -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":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,UAAU,GACX,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EACL,WAAW,EAEX,aAAa,EACb,6BAA6B,GAC9B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,6BAA6B,GAC9B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EACL,4BAA4B,EAC5B,uBAAuB,EACvB,6BAA6B,EAC7B,8BAA8B,EAC9B,YAAY,EACZ,2BAA2B,GAC5B,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EACL,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,cAAc,EAEd,cAAc,EACd,aAAa,GACd,MAAM,gBAAgB,CAAC;AAGxB,IAAI,oBAAoB,GAAwB,IAAI,CAAC;AACrD,IAAI,mBAAmB,GAA0C,IAAI,CAAC;AACtE,IAAI,wBAAwB,GAA0C,IAAI,CAAC;AAE3E,MAAM,6BAA6B,GAAG,GAAG,CAAC;AAE1C,SAAS,kBAAkB,CAAC,SAAiB;IAC3C,OAAO,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,wBAAwB,CAC/B,SAA8B;IAE9B,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACpD,MAAM,WAAW,GAAwB,EAAE,CAAC;IAC5C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC/C,WAAW,CAAC,IAAI,CACd,IAAI,iBAAiB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAC5D,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CACT,EAAE,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EACtC,gDAAgD,CACjD,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAa;IAC1C,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;AACjD,CAAC;AAED,SAAS,gCAAgC,CACvC,IAAY,EACZ,SAA8B;IAE9B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtE,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CACnD,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CACvC,CAAC;IACF,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE7C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,KAAK,MAAM,QAAQ,IAAI,cAAc,EAAE,CAAC;QACtC,MAAM,cAAc,GAAG,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,qBAAqB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC1D,IAAI,cAAc;YAAE,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAClD,IAAI,QAAQ;YAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAI,QAAQ;YAAE,SAAS,CAAC,GAAG,CAAC,iCAAiC,QAAQ,EAAE,CAAC,CAAC;QACzE,IAAI,QAAQ;YAAE,SAAS,CAAC,GAAG,CAAC,sBAAsB,QAAQ,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,WAAW,GACf,4FAA4F,CAAC;IAC/F,MAAM,iBAAiB,GACrB,mEAAmE,CAAC;IAEtE,IAAI,oBAAoB,GAAG,KAAK,CAAC;IACjC,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,MAAM,cAAc,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAC3D,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAC9B,CAAC;QACF,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACjD,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,gBAAgB,IAAI,CAAC,UAAU,IAAI,mBAAmB,CAAC,EAAE,CAAC;YAC5D,oBAAoB,GAAG,IAAI,CAAC;YAC5B,SAAS;QACX,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAED,IAAI,CAAC,oBAAoB;QAAE,OAAO,IAAI,CAAC;IAEvC,MAAM,OAAO,GAAG,SAAS;SACtB,IAAI,CAAC,IAAI,CAAC;SACV,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC;SAC1B,IAAI,EAAE,CAAC;IACV,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAC5B,OAAO,cAAc,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC;AACxE,CAAC;AAED,KAAK,UAAU,uBAAuB,CACpC,SAAiB,EACjB,IAAY,EACZ,MAAc,EACd,SAA8B;IAE9B,IAAI,CAAC,mBAAmB,EAAE,EAAE,CAAC;QAC3B,IAAI,6BAA6B,EAAE,CAAC;YAClC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,uBAAuB,CACjD,SAAS,EACT,IAAI,EACJ,MAAM,EACN,6BAA6B,CAC9B,CAAC;YACF,MAAM,CAAC,IAAI,CACT;gBACE,MAAM;gBACN,SAAS;gBACT,MAAM;gBACN,OAAO;gBACP,aAAa,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;gBACrC,WAAW,EAAE,oBAAoB,EAAE;aACpC,EACD,iDAAiD,CAClD,CAAC;YACF,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtC,MAAM,CAAC,IAAI,CACT,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,CAAC,MAAM,EAAE,EACtD,6EAA6E,CAC9E,CAAC;YACJ,CAAC;YACD,OAAO;QACT,CAAC;QACD,MAAM,CAAC,IAAI,CACT,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,oBAAoB,EAAE,EAAE,EAC1D,qDAAqD,CACtD,CAAC;QACF,OAAO;IACT,CAAC;IAED,MAAM,uBAAuB,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AACpE,CAAC;AAED,KAAK,UAAU,uBAAuB,CACpC,SAAiB,EACjB,IAAY,EACZ,MAAc,EACd,SAA8B;IAE9B,MAAM,WAAW,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC;IACxD,IAAI,CAAC,aAAa,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;QACrD,MAAM,CAAC,IAAI,CACT,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,EAC9D,yCAAyC,CAC1C,CAAC;QACF,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,aAAa,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CACT,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,EAC/D,qDAAqD,CACtD,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,4BAA4B,CAAC,CAAC;IACzE,CAAC;AACH,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,UAAkB,EAClB,IAAY,EACZ,MAAc,EACd,SAA8B;IAE9B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE;QACvC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,iCAAiC;SAClD;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,IAAI;YACJ,MAAM;YACN,aAAa,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;YACrC,SAAS,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAC9C,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;aAC5B,CAAC,CAAC;SACJ,CAAC;KACH,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QACnD,MAAM,IAAI,KAAK,CACb,4BAA4B,QAAQ,CAAC,MAAM,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CACtE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,+BAA+B;IACtC,MAAM,SAAS,GAAG,6BAA6B,EAAE,CAAC;IAClD,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5B,OAAO,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1D,CAAC;AAED,KAAK,UAAU,4BAA4B;IACzC,IAAI,CAAC,mBAAmB,EAAE;QAAE,OAAO;IACnC,MAAM,OAAO,GAAG,2BAA2B,CAAC,6BAA6B,CAAC,CAAC;IAC3E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACjC,MAAM,CAAC,IAAI,CACT,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,8BAA8B,EAAE,EAAE,EACtE,oCAAoC,CACrC,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,CAAC,mBAAmB,EAAE;YAAE,MAAM;QAClC,MAAM,uBAAuB,CAC3B,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,IAAI,EACT,GAAG,IAAI,CAAC,MAAM,SAAS,CACxB,CAAC;QACF,4BAA4B,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,uBAAuB;IACpC,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;QACnE,OAAO;IACT,CAAC;IAED,WAAW,CACT,KAAK,EACH,SAAiB,EACjB,OAAsB,EACtB,SAAiB,EACjB,MAAc,EACd,QAAgB,EAChB,OAAe,EACf,KAAK,EACL,MAAe,EACf,OAAO,EACP,EAAE;QACF,IAAI,CAAC;YACH,IAAI,YAAY,GAAG,KAAK,CAAC;YACzB,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC;gBACxC,SAAS;gBACT,OAAO;gBACP,SAAS;gBACT,MAAM;gBACN,QAAQ;gBACR,OAAO;gBACP,KAAK;gBACL,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE;oBACrB,IAAI,CAAC,YAAY,EAAE,CAAC;wBAClB,YAAY,GAAG,IAAI,CAAC;wBACpB,OAAO,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;oBAC1C,CAAC;oBACD,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACpC,CAAC;gBACD,cAAc,EAAE,CAAC,KAAK,EAAE,EAAE;oBACxB,IAAI,YAAY;wBAAE,OAAO;oBACzB,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;wBAC5B,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;oBACxC,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;oBACzC,CAAC;gBACH,CAAC;gBACD,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;oBACpC,MAAM,uBAAuB,CAC3B,SAAS,EACT,OAAO,CAAC,IAAI,EACZ,UAAU,EACV,OAAO,CAAC,SAAS,CAClB,CAAC;gBACJ,CAAC;gBACD,WAAW,EAAE,OAAO,CAAC,WAAW;aACjC,CAAC,CAAC;YACH,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;gBAC9B,MAAM,SAAS,GAAG,WAAW,CAC3B,aAAa,EACb,MAAM,CAAC,KAAK,IAAI,eAAe,CAChC,CAAC;gBACF,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACrC,OAAO;YACT,CAAC;YACD,MAAM,WAAW,GAAG,wBAAwB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC/D,MAAM,QAAQ,GAAG,gCAAgC,CAC/C,MAAM,CAAC,MAAM,IAAI,yBAAyB,EAC1C,MAAM,CAAC,SAAS,CACjB,CAAC;YACF,MAAM,YAAY,GAAG,MAAM,6BAA6B,CACtD,QAAQ,EACR,OAAO,CAAC,aAAa,EACrB,OAAO,CAAC,aAAa,CACtB,CAAC;YACF,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAC3B,iBAAiB,CAAC,YAAY,EAAE,MAAM,CAAC,SAAS,CAAC,EACjD,WAAW,CACZ,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACpE,MAAM,CAAC,KAAK,CACV,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,EAC/B,iCAAiC,CAClC,CAAC;YACF,MAAM,SAAS,GAAG,WAAW,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;YACrD,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvC,CAAC;IACH,CAAC,EACD,KAAK,EACH,SAAiB,EACjB,OAAsB,EACtB,SAAiB,EACjB,IAAc,EACd,KAAc,EACd,EAAE;QACF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC;gBACxC,SAAS;gBACT,OAAO;gBACP,SAAS;gBACT,IAAI;aACL,CAAC,CAAC;YACH,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC5B,MAAM,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,IAAI,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC/D,OAAO;YACT,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC3B,MAAM,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC7D,OAAO;YACT,CAAC;YACD,MAAM,KAAK,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACpE,MAAM,CAAC,KAAK,CACV,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,EACrC,iCAAiC,CAClC,CAAC;YACF,MAAM,KAAK,CAAC,WAAW,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC;QAClD,CAAC;IACH,CAAC,CACF,CAAC;IACF,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,aAAa;IACpB,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;QAC1B,IAAI,YAAY;YAAE,OAAO;QACzB,YAAY,GAAG,IAAI,CAAC;QACpB,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACxC,IAAI,oBAAoB,EAAE,CAAC;YACzB,oBAAoB,EAAE,CAAC;YACvB,oBAAoB,GAAG,IAAI,CAAC;QAC9B,CAAC;QACD,MAAM,6BAA6B,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACpD,MAAM,CAAC,KAAK,CACV,EAAE,KAAK,EAAE,EACT,4DAA4D,CAC7D,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,aAAa,EAAE,CAAC;QAChB,uBAAuB,EAAE,CAAC;QAC1B,iBAAiB,EAAE,CAAC;QACpB,aAAa,EAAE,CAAC;QAChB,gCAAgC,EAAE,CAAC;QACnC,IAAI,mBAAmB,EAAE,CAAC;YACxB,aAAa,CAAC,mBAAmB,CAAC,CAAC;YACnC,mBAAmB,GAAG,IAAI,CAAC;QAC7B,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACxB,KAAK,QAAQ,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACzB,KAAK,QAAQ,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,OAAiC;IAEjC,MAAM,WAAW,GACf,OAAO,CAAC,MAAM,KAAK,SAAS;QAC1B,CAAC,CAAC,YAAY,OAAO,CAAC,MAAM,IAAI,SAAS,EAAE;QAC3C,CAAC,CAAC,gBAAgB,OAAO,CAAC,KAAK,IAAI,SAAS,EAAE,CAAC;IACnD,MAAM,yBAAyB,GAC7B,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS;QACjC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS;QAC5B,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,cAAc;YACxC,CAAC,CAAC,+BAA+B,EAAE;YACnC,CAAC,CAAC,IAAI,CAAC;IAEb,IAAI,OAAO,CAAC,UAAU,KAAK,cAAc,EAAE,CAAC;QAC1C,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACxC,MAAM,qBAAqB,CACzB,OAAO,CAAC,QAAQ,CAAC,UAAU,EAC3B,OAAO,CAAC,MAAM,EACd,GAAG,WAAW,SAAS,CACxB,CAAC;YACF,OAAO;QACT,CAAC;QACD,IAAI,CAAC,yBAAyB,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACb,mEAAmE,CACpE,CAAC;QACJ,CAAC;QACD,MAAM,uBAAuB,CAC3B,yBAAyB,EACzB,OAAO,CAAC,MAAM,EACd,GAAG,WAAW,SAAS,CACxB,CAAC;QACF,OAAO;IACT,CAAC;IAED,MAAM,YAAY,GAChB,OAAO,CAAC,SAAS,IAAI,yBAAyB,IAAI,WAAW,CAAC;IAChE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;IAEpC,MAAM,uBAAuB,CAC3B,OAAO,CAAC,SAAS,EACjB,YAAY,EACZ,OAAO,CAAC,MAAM,EACd,MAAM,EACN,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACxC,MAAM,qBAAqB,CACzB,OAAO,CAAC,QAAQ,CAAC,UAAU,EAC3B,MAAM,CAAC,IAAI,EACX,WAAW,EACX,MAAM,CAAC,SAAS,CACjB,CAAC;YACF,MAAM,CAAC,IAAI,CACT;gBACE,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,QAAQ,EAAE,SAAS;gBACnB,MAAM,EAAE,MAAM,CAAC,IAAI;gBACnB,aAAa,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC;aAC7C,EACD,0BAA0B,CAC3B,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,CAAC,yBAAyB,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,uBAAuB,CAC3B,yBAAyB,EACzB,MAAM,CAAC,IAAI,EACX,WAAW,EACX,MAAM,CAAC,SAAS,CACjB,CAAC;QACF,MAAM,CAAC,IAAI,CACT;YACE,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,SAAS,EAAE,yBAAyB;YACpC,MAAM,EAAE,MAAM,CAAC,IAAI;YACnB,aAAa,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC;SAC7C,EACD,0BAA0B,CAC3B,CAAC;IACJ,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;QACR,MAAM,CAAC,KAAK,CACV;YACE,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;YAC/B,KAAK;SACN,EACD,uBAAuB,CACxB,CAAC;IACJ,CAAC,EACD,OAAO,CAAC,SAAS,CAClB,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB;IAC9B,aAAa,EAAE,CAAC;IAChB,MAAM,OAAO,GAAG,mBAAmB,IAAI,SAAS,CAAC;IACjD,cAAc,CAAC,OAAO,EAAE,kBAAkB,EAAE,CAAC,IAAI,EAAE,EAAE;QACnD,MAAM,SAAS,GAAG,iBAAiB,IAAI,WAAW,CAAC;QACnD,KAAK,uBAAuB,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;QAC3D,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,mBAAmB,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gCAAgC;IACvC,IAAI,CAAC,wBAAwB;QAAE,OAAO;IACtC,aAAa,CAAC,wBAAwB,CAAC,CAAC;IACxC,wBAAwB,GAAG,IAAI,CAAC;AAClC,CAAC;AAED,SAAS,0CAA0C;IACjD,gCAAgC,EAAE,CAAC;IACnC,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAC5B,CAAC,EACD,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAClE,CAAC;IACF,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;QACvB,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;QACvD,OAAO;IACT,CAAC;IAED,MAAM,UAAU,GAAG,aAAa,GAAG,SAAS,CAAC;IAC7C,wBAAwB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC1C,MAAM,EAAE,SAAS,EAAE,GAAG,iBAAiB,EAAE,CAAC,MAAM,CAAC;QACjD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,aAAa,CAAC,mBAAmB,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;YAChE,IAAI,MAAM,CAAC,eAAe,GAAG,CAAC,EAAE,CAAC;gBAC/B,MAAM,CAAC,IAAI,CACT;oBACE,OAAO,EAAE,MAAM,CAAC,eAAe;oBAC/B,UAAU,EAAE,MAAM,CAAC,UAAU;oBAC7B,SAAS;iBACV,EACD,gCAAgC,CACjC,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,6BAA6B,CAAC,CAAC;QACnE,CAAC;IACH,CAAC,EAAE,UAAU,CAAC,CAAC;IAEf,MAAM,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,EAAE,gCAAgC,CAAC,CAAC;AACnE,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC3C,YAAY,EAAE,CAAC;IACf,iBAAiB,EAAE,CAAC;IACpB,aAAa,EAAE,CAAC;IAChB,MAAM,uBAAuB,EAAE,CAAC;IAEhC,uBAAuB,EAAE,CAAC;IAC1B,wBAAwB,EAAE,CAAC;IAC3B,oBAAoB,GAAG,cAAc,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;QACnD,MAAM,aAAa,GACjB,IAAI,CAAC,QAAQ,CAAC,gBAAgB,KAAK,IAAI,CAAC,QAAQ,CAAC,gBAAgB;YACjE,IAAI,CAAC,SAAS,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,UAAU;YACvD,IAAI,CAAC,SAAS,CAAC,OAAO,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;QACpD,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,CAAC,IAAI,CACT;gBACE,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO;gBACxC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU;gBAC9C,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,IAAI,SAAS;aAC9D,EACD,sCAAsC,CACvC,CAAC;YACF,uBAAuB,EAAE,CAAC;QAC5B,CAAC;QAED,MAAM,gBAAgB,GACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpE,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,CAAC,IAAI,CACT,gEAAgE,CACjE,CAAC;YACF,cAAc,EAAE,CAAC;QACnB,CAAC;QAED,MAAM,aAAa,GACjB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9D,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,CAAC,IAAI,CACT;gBACE,0BAA0B,EAAE,IAAI,CAAC,MAAM,CAAC,0BAA0B;gBAClE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;aACjC,EACD,2DAA2D,CAC5D,CAAC;YACF,0CAA0C,EAAE,CAAC;QAC/C,CAAC;QAED,MAAM,0BAA0B,GAC9B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;YAChC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;YACpC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,KAAK,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QACpE,IAAI,CAAC,0BAA0B;YAAE,OAAO;QAExC,MAAM,CAAC,IAAI,CACT;YACE,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO;YACnC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,IAAI,EAAE;YACvE,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO;SACpC,EACD,iDAAiD,CAClD,CAAC;QACF,wBAAwB,EAAE,CAAC;IAC7B,CAAC,CAAC,CAAC;IACH,cAAc,CAAC,gBAAgB,CAAC,CAAC;IACjC,0CAA0C,EAAE,CAAC;IAC7C,mBAAmB,GAAG,WAAW,CAAC,GAAG,EAAE;QACrC,KAAK,4BAA4B,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YAChD,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,2CAA2C,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,MAAM,CAAC,CAAC;IACX,KAAK,4BAA4B,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QAChD,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,sCAAsC,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CACT,EAAE,GAAG,gBAAgB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,aAAa,EAAE,EACnD,4BAA4B,CAC7B,CAAC;AACJ,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,yBAAyB,CAAC,CAAC;IACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../src/health.ts"],"names":[],"mappings":"AAiQA,wBAAgB,iBAAiB,IAAI,IAAI,CA2DxC"}
1
+ {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../src/health.ts"],"names":[],"mappings":"AAoSA,wBAAgB,iBAAiB,IAAI,IAAI,CAgExC"}
package/dist/health.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import fs from 'fs';
2
2
  import http from 'http';
3
3
  import path from 'path';
4
- import { GATEWAY_API_TOKEN, HEALTH_HOST, HEALTH_PORT, WEB_API_TOKEN } from './config.js';
5
- import { getGatewayHistory, getGatewayStatus, handleGatewayCommand, handleGatewayMessage, } from './gateway-service.js';
6
4
  import { runDiscordToolAction } from './channels/discord/runtime.js';
5
+ import { GATEWAY_API_TOKEN, HEALTH_HOST, HEALTH_PORT, WEB_API_TOKEN, } from './config.js';
6
+ import { getGatewayHistory, getGatewayStatus, handleGatewayCommand, handleGatewayMessage, } from './gateway-service.js';
7
7
  import { logger } from './logger.js';
8
8
  const SITE_DIR = path.resolve(process.cwd(), 'docs');
9
9
  const MAX_REQUEST_BYTES = 1_000_000; // 1MB
@@ -32,7 +32,9 @@ function hasApiAuth(req) {
32
32
  return gatewayTokenMatch;
33
33
  }
34
34
  function sendJson(res, statusCode, payload) {
35
- res.writeHead(statusCode, { 'Content-Type': 'application/json; charset=utf-8' });
35
+ res.writeHead(statusCode, {
36
+ 'Content-Type': 'application/json; charset=utf-8',
37
+ });
36
38
  res.end(JSON.stringify(payload, null, 2));
37
39
  }
38
40
  function sendText(res, statusCode, text) {
@@ -78,7 +80,7 @@ function serveStatic(pathname, res) {
78
80
  return true;
79
81
  }
80
82
  async function handleApiChat(req, res) {
81
- const body = await readJsonBody(req);
83
+ const body = (await readJsonBody(req));
82
84
  const wantsStream = body.stream === true;
83
85
  const content = body.content?.trim();
84
86
  if (!content) {
@@ -162,10 +164,14 @@ async function handleApiChatStream(req, res, chatRequest) {
162
164
  });
163
165
  }
164
166
  async function handleApiCommand(req, res) {
165
- const body = await readJsonBody(req);
166
- const args = Array.isArray(body.args) ? body.args.map((value) => String(value)) : [];
167
+ const body = (await readJsonBody(req));
168
+ const args = Array.isArray(body.args)
169
+ ? body.args.map((value) => String(value))
170
+ : [];
167
171
  if (args.length === 0) {
168
- sendJson(res, 400, { error: 'Missing command. Provide non-empty `args` array.' });
172
+ sendJson(res, 400, {
173
+ error: 'Missing command. Provide non-empty `args` array.',
174
+ });
169
175
  return;
170
176
  }
171
177
  const commandRequest = {
@@ -178,9 +184,11 @@ async function handleApiCommand(req, res) {
178
184
  sendJson(res, result.kind === 'error' ? 400 : 200, result);
179
185
  }
180
186
  async function handleApiDiscordAction(req, res) {
181
- const body = await readJsonBody(req);
187
+ const body = (await readJsonBody(req));
182
188
  const action = typeof body.action === 'string' ? body.action.trim() : '';
183
- if (action !== 'read' && action !== 'member-info' && action !== 'channel-info') {
189
+ if (action !== 'read' &&
190
+ action !== 'member-info' &&
191
+ action !== 'channel-info') {
184
192
  sendJson(res, 400, {
185
193
  error: 'Invalid `action`. Allowed: "read", "member-info", "channel-info".',
186
194
  });
@@ -229,7 +237,9 @@ export function startHealthServer() {
229
237
  }
230
238
  if (pathname.startsWith('/api/')) {
231
239
  if (!hasApiAuth(req)) {
232
- sendJson(res, 401, { error: 'Unauthorized. Set `Authorization: Bearer <WEB_API_TOKEN>`.' });
240
+ sendJson(res, 401, {
241
+ error: 'Unauthorized. Set `Authorization: Bearer <WEB_API_TOKEN>`.',
242
+ });
233
243
  return;
234
244
  }
235
245
  void (async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"health.js","sourceRoot":"","sources":["../src/health.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAmD,MAAM,MAAM,CAAC;AACvE,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACzF,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,GAGrB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAErE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;AACrD,MAAM,iBAAiB,GAAG,SAAS,CAAC,CAAC,MAAM;AAE3C,MAAM,UAAU,GAA2B;IACzC,MAAM,EAAE,yBAAyB;IACjC,OAAO,EAAE,0BAA0B;IACnC,KAAK,EAAE,uCAAuC;IAC9C,OAAO,EAAE,iCAAiC;IAC1C,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,eAAe;CACxB,CAAC;AAKF,SAAS,iBAAiB,CAAC,OAA2B;IACpD,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3B,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACnD,OAAO,UAAU,KAAK,WAAW,IAAI,UAAU,KAAK,KAAK,CAAC;AAC5D,CAAC;AAED,SAAS,UAAU,CAAC,GAAoB;IACtC,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;IACnD,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,IAAI,UAAU,KAAK,UAAU,iBAAiB,EAAE,CAAC;IAErG,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,iBAAiB,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,UAAU,KAAK,UAAU,aAAa,EAAE;QAAE,OAAO,IAAI,CAAC;IAC1D,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED,SAAS,QAAQ,CAAC,GAAmB,EAAE,UAAkB,EAAE,OAAgB;IACzE,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,cAAc,EAAE,iCAAiC,EAAE,CAAC,CAAC;IACjF,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,QAAQ,CAAC,GAAmB,EAAE,UAAkB,EAAE,IAAY;IACrE,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,cAAc,EAAE,2BAA2B,EAAE,CAAC,CAAC;IAC3E,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,GAAoB;IAC9C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnE,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC;QACvB,IAAI,KAAK,GAAG,iBAAiB,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACpD,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;AACpC,CAAC;AAED,SAAS,eAAe,CAAC,QAAgB;IACvC,MAAM,SAAS,GAAG,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;IAC9E,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,UAAU,EAAE,CAAC,CAAC;IAC3D,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IACjD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE;QAAE,OAAO,IAAI,CAAC;IAC/E,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,WAAW,CAAC,QAAgB,EAAE,GAAmB;IACxD,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACjF,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IACjD,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,0BAA0B,CAAC;IAC/D,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,CAAC;IACjD,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,GAAoB,EAAE,GAAmB;IACpE,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,GAAG,CAAgC,CAAC;IACpE,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC;IAEzC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;IACrC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,oCAAoC,EAAE,CAAC,CAAC;QACpE,OAAO;IACT,CAAC;IAED,MAAM,WAAW,GAAuB;QACtC,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,aAAa;QAC1C,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;QAC7B,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,KAAK;QAClC,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,UAAU;QACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,KAAK;QAChC,OAAO;QACP,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,KAAK,EAAE,IAAI,CAAC,KAAK;KAClB,CAAC;IAEF,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;QACjD,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,WAAW,CAAC,CAAC;IACvD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACjE,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,GAAoB,EACpB,GAAmB,EACnB,WAA+B;IAE/B,MAAM,SAAS,GAAG,CAAC,OAAe,EAAQ,EAAE;QAC1C,IAAI,GAAG,CAAC,aAAa;YAAE,OAAO;QAC9B,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC,CAAC;IAEF,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,cAAc,EAAE,qCAAqC;QACrD,eAAe,EAAE,UAAU;QAC3B,UAAU,EAAE,YAAY;KACzB,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,CAAC,KAAwB,EAAQ,EAAE;QACxD,SAAS,CAAC;YACR,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,UAAU,EAAE,KAAK,CAAC,UAAU;SAC7B,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,KAAa,EAAQ,EAAE;QAC1C,SAAS,CAAC;YACR,IAAI,EAAE,MAAM;YACZ,KAAK;SACN,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC;YACxC,GAAG,WAAW;YACd,WAAW;YACX,cAAc;SACf,CAAC,CAAC;QACH,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,SAAS,CAAC;YACR,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE;gBACN,MAAM,EAAE,OAAO;gBACf,MAAM,EAAE,IAAI;gBACZ,SAAS,EAAE,EAAE;gBACb,KAAK,EAAE,YAAY;aACpB;SACF,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,+BAA+B,CAAC,CAAC;IAChF,CAAC;YAAS,CAAC;QACT,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;YACvB,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACnB,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;YACvB,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,GAAoB,EAAE,GAAmB;IACvE,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,GAAG,CAAmC,CAAC;IACvE,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACrF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,kDAAkD,EAAE,CAAC,CAAC;QAClF,OAAO;IACT,CAAC;IAED,MAAM,cAAc,GAA0B;QAC5C,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,aAAa;QAC1C,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;QAC7B,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,KAAK;QAClC,IAAI;KACL,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAC1D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAC7D,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,GAAoB,EAAE,GAAmB;IAC7E,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,GAAG,CAAgC,CAAC;IACpE,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,aAAa,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;QAC/E,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;YACjB,KAAK,EAAE,mEAAmE;SAC3E,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAA6B;QACxC,MAAM;QACN,SAAS,EAAE,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QAC1E,OAAO,EAAE,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QACpE,MAAM,EAAE,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QACjE,QAAQ,EAAE,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QACvE,QAAQ,EAAE,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QACvE,IAAI,EAAE,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QAC3D,KAAK,EAAE,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;QAC9D,MAAM,EAAE,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QACjE,KAAK,EAAE,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;QAC9D,MAAM,EAAE,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;KAClE,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACnD,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAmB,EAAE,GAAQ;IACrD,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,aAAa,CAAC;IACrE,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;IACxE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;IAC3D,MAAM,OAAO,GAAG,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACpD,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAmB;IAC5C,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;QACjB,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,6BAA6B;KACvC,CAAC,CAAC;IACH,UAAU,CAAC,GAAG,EAAE;QACd,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACvC,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC5C,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC;QACnC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,kBAAkB,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QAE9B,IAAI,QAAQ,KAAK,SAAS,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YAC/C,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,gBAAgB,EAAE,CAAC,CAAC;YACvC,OAAO;QACT,CAAC;QAED,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrB,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,4DAA4D,EAAE,CAAC,CAAC;gBAC5F,OAAO;YACT,CAAC;YAED,KAAK,CAAC,KAAK,IAAI,EAAE;gBACf,IAAI,CAAC;oBACH,IAAI,QAAQ,KAAK,aAAa,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;wBACnD,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,gBAAgB,EAAE,CAAC,CAAC;wBACvC,OAAO;oBACT,CAAC;oBACD,IAAI,QAAQ,KAAK,cAAc,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;wBACpD,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;wBAC3B,OAAO;oBACT,CAAC;oBACD,IAAI,QAAQ,KAAK,qBAAqB,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;wBAC5D,iBAAiB,CAAC,GAAG,CAAC,CAAC;wBACvB,OAAO;oBACT,CAAC;oBACD,IAAI,QAAQ,KAAK,WAAW,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;wBAClD,MAAM,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;wBAC9B,OAAO;oBACT,CAAC;oBACD,IAAI,QAAQ,KAAK,cAAc,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;wBACrD,MAAM,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;wBACjC,OAAO;oBACT,CAAC;oBACD,IAAI,QAAQ,KAAK,qBAAqB,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;wBAC5D,MAAM,sBAAsB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;wBACvC,OAAO;oBACT,CAAC;oBACD,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC7C,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,SAAS,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACnE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;gBAC3C,CAAC;YACH,CAAC,CAAC,EAAE,CAAC;YACL,OAAO;QACT,CAAC;QAED,IAAI,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC;YAAE,OAAO;QACvC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,WAAW,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,6BAA6B,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"health.js","sourceRoot":"","sources":["../src/health.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAmD,MAAM,MAAM,CAAC;AACvE,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAErE,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAGL,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;AACrD,MAAM,iBAAiB,GAAG,SAAS,CAAC,CAAC,MAAM;AAE3C,MAAM,UAAU,GAA2B;IACzC,MAAM,EAAE,yBAAyB;IACjC,OAAO,EAAE,0BAA0B;IACnC,KAAK,EAAE,uCAAuC;IAC9C,OAAO,EAAE,iCAAiC;IAC1C,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,eAAe;CACxB,CAAC;AAKF,SAAS,iBAAiB,CAAC,OAA2B;IACpD,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3B,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACnD,OAAO,UAAU,KAAK,WAAW,IAAI,UAAU,KAAK,KAAK,CAAC;AAC5D,CAAC;AAED,SAAS,UAAU,CAAC,GAAoB;IACtC,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;IACnD,MAAM,iBAAiB,GACrB,OAAO,CAAC,iBAAiB,CAAC,IAAI,UAAU,KAAK,UAAU,iBAAiB,EAAE,CAAC;IAE7E,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,iBAAiB,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,UAAU,KAAK,UAAU,aAAa,EAAE;QAAE,OAAO,IAAI,CAAC;IAC1D,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED,SAAS,QAAQ,CACf,GAAmB,EACnB,UAAkB,EAClB,OAAgB;IAEhB,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE;QACxB,cAAc,EAAE,iCAAiC;KAClD,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,QAAQ,CAAC,GAAmB,EAAE,UAAkB,EAAE,IAAY;IACrE,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,cAAc,EAAE,2BAA2B,EAAE,CAAC,CAAC;IAC3E,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,GAAoB;IAC9C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnE,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC;QACvB,IAAI,KAAK,GAAG,iBAAiB,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACpD,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;AACpC,CAAC;AAED,SAAS,eAAe,CAAC,QAAgB;IACvC,MAAM,SAAS,GAAG,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;IAC9E,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,UAAU,EAAE,CAAC,CAAC;IAC3D,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IACjD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE;QAC/D,OAAO,IAAI,CAAC;IACd,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,WAAW,CAAC,QAAgB,EAAE,GAAmB;IACxD,MAAM,QAAQ,GAAG,eAAe,CAC9B,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAC/C,CAAC;IACF,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IACjD,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,0BAA0B,CAAC;IAC/D,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,CAAC;IACjD,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,GAAoB,EACpB,GAAmB;IAEnB,MAAM,IAAI,GAAG,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,CAAgC,CAAC;IACtE,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC;IAEzC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;IACrC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,oCAAoC,EAAE,CAAC,CAAC;QACpE,OAAO;IACT,CAAC;IAED,MAAM,WAAW,GAAuB;QACtC,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,aAAa;QAC1C,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;QAC7B,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,KAAK;QAClC,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,UAAU;QACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,KAAK;QAChC,OAAO;QACP,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,KAAK,EAAE,IAAI,CAAC,KAAK;KAClB,CAAC;IAEF,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;QACjD,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,WAAW,CAAC,CAAC;IACvD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACjE,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,GAAoB,EACpB,GAAmB,EACnB,WAA+B;IAE/B,MAAM,SAAS,GAAG,CAAC,OAAe,EAAQ,EAAE;QAC1C,IAAI,GAAG,CAAC,aAAa;YAAE,OAAO;QAC9B,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC,CAAC;IAEF,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,cAAc,EAAE,qCAAqC;QACrD,eAAe,EAAE,UAAU;QAC3B,UAAU,EAAE,YAAY;KACzB,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,CAAC,KAAwB,EAAQ,EAAE;QACxD,SAAS,CAAC;YACR,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,UAAU,EAAE,KAAK,CAAC,UAAU;SAC7B,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,KAAa,EAAQ,EAAE;QAC1C,SAAS,CAAC;YACR,IAAI,EAAE,MAAM;YACZ,KAAK;SACN,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC;YACxC,GAAG,WAAW;YACd,WAAW;YACX,cAAc;SACf,CAAC,CAAC;QACH,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,SAAS,CAAC;YACR,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE;gBACN,MAAM,EAAE,OAAO;gBACf,MAAM,EAAE,IAAI;gBACZ,SAAS,EAAE,EAAE;gBACb,KAAK,EAAE,YAAY;aACpB;SACF,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CACV,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,EAC9B,+BAA+B,CAChC,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;YACvB,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACnB,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;YACvB,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,GAAoB,EACpB,GAAmB;IAEnB,MAAM,IAAI,GAAG,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,CAAmC,CAAC;IACzE,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QACnC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC,CAAC,EAAE,CAAC;IACP,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;YACjB,KAAK,EAAE,kDAAkD;SAC1D,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,MAAM,cAAc,GAA0B;QAC5C,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,aAAa;QAC1C,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;QAC7B,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,KAAK;QAClC,IAAI;KACL,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAC1D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAC7D,CAAC;AAED,KAAK,UAAU,sBAAsB,CACnC,GAAoB,EACpB,GAAmB;IAEnB,MAAM,IAAI,GAAG,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,CAAgC,CAAC;IACtE,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,IACE,MAAM,KAAK,MAAM;QACjB,MAAM,KAAK,aAAa;QACxB,MAAM,KAAK,cAAc,EACzB,CAAC;QACD,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;YACjB,KAAK,EACH,mEAAmE;SACtE,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAA6B;QACxC,MAAM;QACN,SAAS,EAAE,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QAC1E,OAAO,EAAE,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QACpE,MAAM,EAAE,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QACjE,QAAQ,EAAE,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QACvE,QAAQ,EAAE,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QACvE,IAAI,EAAE,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QAC3D,KAAK,EAAE,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;QAC9D,MAAM,EAAE,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QACjE,KAAK,EAAE,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;QAC9D,MAAM,EAAE,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;KAClE,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACnD,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAmB,EAAE,GAAQ;IACrD,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,aAAa,CAAC;IACrE,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;IACxE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;IAC3D,MAAM,OAAO,GAAG,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACpD,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAmB;IAC5C,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;QACjB,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,6BAA6B;KACvC,CAAC,CAAC;IACH,UAAU,CAAC,GAAG,EAAE;QACd,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACvC,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC5C,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC;QACnC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,kBAAkB,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QAE9B,IAAI,QAAQ,KAAK,SAAS,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YAC/C,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,gBAAgB,EAAE,CAAC,CAAC;YACvC,OAAO;QACT,CAAC;QAED,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrB,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;oBACjB,KAAK,EAAE,4DAA4D;iBACpE,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,KAAK,CAAC,KAAK,IAAI,EAAE;gBACf,IAAI,CAAC;oBACH,IAAI,QAAQ,KAAK,aAAa,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;wBACnD,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,gBAAgB,EAAE,CAAC,CAAC;wBACvC,OAAO;oBACT,CAAC;oBACD,IAAI,QAAQ,KAAK,cAAc,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;wBACpD,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;wBAC3B,OAAO;oBACT,CAAC;oBACD,IAAI,QAAQ,KAAK,qBAAqB,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;wBAC5D,iBAAiB,CAAC,GAAG,CAAC,CAAC;wBACvB,OAAO;oBACT,CAAC;oBACD,IAAI,QAAQ,KAAK,WAAW,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;wBAClD,MAAM,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;wBAC9B,OAAO;oBACT,CAAC;oBACD,IAAI,QAAQ,KAAK,cAAc,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;wBACrD,MAAM,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;wBACjC,OAAO;oBACT,CAAC;oBACD,IAAI,QAAQ,KAAK,qBAAqB,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;wBAC5D,MAAM,sBAAsB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;wBACvC,OAAO;oBACT,CAAC;oBACD,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC7C,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,SAAS,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACnE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;gBAC3C,CAAC;YACH,CAAC,CAAC,EAAE,CAAC;YACL,OAAO;QACT,CAAC;QAED,IAAI,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC;YAAE,OAAO;QACvC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,WAAW,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,IAAI,CACT,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,EACxC,6BAA6B,CAC9B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,3 +1,7 @@
1
+ /**
2
+ * Heartbeat — periodic poll so the agent can proactively check tasks,
3
+ * maintain memory, and reach out when needed.
4
+ */
1
5
  export declare function startHeartbeat(agentId: string, interval: number, onMessage: (text: string) => void): void;
2
6
  export declare function stopHeartbeat(): void;
3
7
  //# sourceMappingURL=heartbeat.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"heartbeat.d.ts","sourceRoot":"","sources":["../src/heartbeat.ts"],"names":[],"mappings":"AA2DA,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAChC,IAAI,CA8QN;AAED,wBAAgB,aAAa,IAAI,IAAI,CAMpC"}
1
+ {"version":3,"file":"heartbeat.d.ts","sourceRoot":"","sources":["../src/heartbeat.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA6EH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAChC,IAAI,CAuTN;AAED,wBAAgB,aAAa,IAAI,IAAI,CAMpC"}
package/dist/heartbeat.js CHANGED
@@ -2,17 +2,18 @@
2
2
  * Heartbeat — periodic poll so the agent can proactively check tasks,
3
3
  * maintain memory, and reach out when needed.
4
4
  */
5
- import { HEARTBEAT_CHANNEL, HEARTBEAT_ENABLED, HYBRIDAI_CHATBOT_ID, HYBRIDAI_ENABLE_RAG, HYBRIDAI_MODEL } from './config.js';
6
5
  import { runAgent } from './agent.js';
7
- import { getConversationHistory, getOrCreateSession, getTasksForSession, storeMessage } from './db.js';
6
+ import { emitToolExecutionAuditEvents, makeAuditRunId, recordAuditEvent, } from './audit-events.js';
7
+ import { HEARTBEAT_CHANNEL, HEARTBEAT_ENABLED, HYBRIDAI_CHATBOT_ID, HYBRIDAI_ENABLE_RAG, HYBRIDAI_MODEL, } from './config.js';
8
+ import { buildConversationContext } from './conversation.js';
9
+ import { getTasksForSession } from './db.js';
8
10
  import { logger } from './logger.js';
9
- import { processSideEffects } from './side-effects.js';
11
+ import { memoryService } from './memory-service.js';
12
+ import { isWithinActiveHours, proactiveWindowLabel, } from './proactive-policy.js';
10
13
  import { maybeCompactSession } from './session-maintenance.js';
11
14
  import { appendSessionTranscript } from './session-transcripts.js';
12
- import { buildConversationContext } from './conversation.js';
13
- import { isWithinActiveHours, proactiveWindowLabel } from './proactive-policy.js';
14
- import { emitToolExecutionAuditEvents, makeAuditRunId, recordAuditEvent } from './audit-events.js';
15
- import { estimateTokenCountFromMessages, estimateTokenCountFromText } from './token-efficiency.js';
15
+ import { processSideEffects } from './side-effects.js';
16
+ import { estimateTokenCountFromMessages, estimateTokenCountFromText, } from './token-efficiency.js';
16
17
  const HEARTBEAT_PROMPT = '[Heartbeat poll] Check HEARTBEAT.md for periodic tasks. If nothing needs attention, reply HEARTBEAT_OK.';
17
18
  const MAX_HEARTBEAT_HISTORY = 5;
18
19
  const HEARTBEAT_ALLOWED_TOOLS = [
@@ -48,7 +49,10 @@ const HEARTBEAT_ALLOWED_TOOLS = [
48
49
  let timer = null;
49
50
  let running = false;
50
51
  function isHeartbeatOk(text) {
51
- const normalized = text.trim().replace(/[^a-z_]/gi, '').toUpperCase();
52
+ const normalized = text
53
+ .trim()
54
+ .replace(/[^a-z_]/gi, '')
55
+ .toUpperCase();
52
56
  return normalized === 'HEARTBEATOK' || normalized.startsWith('HEARTBEATOK');
53
57
  }
54
58
  export function startHeartbeat(agentId, interval, onMessage) {
@@ -73,12 +77,16 @@ export function startHeartbeat(agentId, interval, onMessage) {
73
77
  const startedAt = Date.now();
74
78
  let turnIndex = 1;
75
79
  try {
76
- const session = getOrCreateSession(sessionId, null, channelId);
80
+ const session = memoryService.getOrCreateSession(sessionId, null, channelId);
77
81
  turnIndex = session.message_count + 1;
78
- const history = getConversationHistory(sessionId, MAX_HEARTBEAT_HISTORY);
82
+ const history = memoryService.getConversationHistory(sessionId, MAX_HEARTBEAT_HISTORY);
83
+ const memoryContext = memoryService.buildPromptMemoryContext({
84
+ session,
85
+ query: HEARTBEAT_PROMPT,
86
+ });
79
87
  const { messages } = buildConversationContext({
80
88
  agentId,
81
- sessionSummary: session.session_summary,
89
+ sessionSummary: memoryContext.promptSummary,
82
90
  history,
83
91
  });
84
92
  messages.push({ role: 'user', content: HEARTBEAT_PROMPT });
@@ -114,13 +122,16 @@ export function startHeartbeat(agentId, interval, onMessage) {
114
122
  toolExecutions: output.toolExecutions || [],
115
123
  });
116
124
  const tokenUsage = output.tokenUsage;
117
- const estimatedPromptTokens = tokenUsage?.estimatedPromptTokens || estimateTokenCountFromMessages(messages);
118
- const estimatedCompletionTokens = tokenUsage?.estimatedCompletionTokens || estimateTokenCountFromText(output.result || '');
119
- const estimatedTotalTokens = tokenUsage?.estimatedTotalTokens || (estimatedPromptTokens + estimatedCompletionTokens);
125
+ const estimatedPromptTokens = tokenUsage?.estimatedPromptTokens ||
126
+ estimateTokenCountFromMessages(messages);
127
+ const estimatedCompletionTokens = tokenUsage?.estimatedCompletionTokens ||
128
+ estimateTokenCountFromText(output.result || '');
129
+ const estimatedTotalTokens = tokenUsage?.estimatedTotalTokens ||
130
+ estimatedPromptTokens + estimatedCompletionTokens;
120
131
  const apiUsageAvailable = tokenUsage?.apiUsageAvailable === true;
121
132
  const apiPromptTokens = tokenUsage?.apiPromptTokens || 0;
122
133
  const apiCompletionTokens = tokenUsage?.apiCompletionTokens || 0;
123
- const apiTotalTokens = tokenUsage?.apiTotalTokens || (apiPromptTokens + apiCompletionTokens);
134
+ const apiTotalTokens = tokenUsage?.apiTotalTokens || apiPromptTokens + apiCompletionTokens;
124
135
  recordAuditEvent({
125
136
  sessionId,
126
137
  runId,
@@ -131,9 +142,15 @@ export function startHeartbeat(agentId, interval, onMessage) {
131
142
  durationMs: Date.now() - startedAt,
132
143
  toolCallCount: (output.toolExecutions || []).length,
133
144
  modelCalls: tokenUsage ? Math.max(1, tokenUsage.modelCalls) : 0,
134
- promptTokens: apiUsageAvailable ? apiPromptTokens : estimatedPromptTokens,
135
- completionTokens: apiUsageAvailable ? apiCompletionTokens : estimatedCompletionTokens,
136
- totalTokens: apiUsageAvailable ? apiTotalTokens : estimatedTotalTokens,
145
+ promptTokens: apiUsageAvailable
146
+ ? apiPromptTokens
147
+ : estimatedPromptTokens,
148
+ completionTokens: apiUsageAvailable
149
+ ? apiCompletionTokens
150
+ : estimatedCompletionTokens,
151
+ totalTokens: apiUsageAvailable
152
+ ? apiTotalTokens
153
+ : estimatedTotalTokens,
137
154
  estimatedPromptTokens,
138
155
  estimatedCompletionTokens,
139
156
  estimatedTotalTokens,
@@ -210,8 +227,19 @@ export function startHeartbeat(agentId, interval, onMessage) {
210
227
  return;
211
228
  }
212
229
  // Real content — persist and deliver
213
- storeMessage(sessionId, 'heartbeat', 'heartbeat', 'user', HEARTBEAT_PROMPT);
214
- storeMessage(sessionId, 'assistant', null, 'assistant', result);
230
+ memoryService.storeTurn({
231
+ sessionId,
232
+ user: {
233
+ userId: 'heartbeat',
234
+ username: 'heartbeat',
235
+ content: HEARTBEAT_PROMPT,
236
+ },
237
+ assistant: {
238
+ userId: 'assistant',
239
+ username: null,
240
+ content: result,
241
+ },
242
+ });
215
243
  appendSessionTranscript(agentId, {
216
244
  sessionId,
217
245
  channelId: heartbeatChannelId,