@kodelyth/discord 2026.5.42 → 2026.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (514) hide show
  1. package/klaw.plugin.json +3822 -2
  2. package/package.json +16 -4
  3. package/account-inspect-api.ts +0 -6
  4. package/action-runtime-api.ts +0 -1
  5. package/api.ts +0 -130
  6. package/channel-config-api.ts +0 -1
  7. package/channel-plugin-api.ts +0 -3
  8. package/config-api.ts +0 -4
  9. package/configured-state.ts +0 -6
  10. package/contract-api.ts +0 -21
  11. package/directory-contract-api.ts +0 -4
  12. package/doctor-contract-api.ts +0 -1
  13. package/index.test.ts +0 -13
  14. package/index.ts +0 -24
  15. package/runtime-api.actions.ts +0 -15
  16. package/runtime-api.lookup.ts +0 -22
  17. package/runtime-api.monitor.ts +0 -50
  18. package/runtime-api.send.ts +0 -79
  19. package/runtime-api.threads.ts +0 -31
  20. package/runtime-api.ts +0 -181
  21. package/runtime-setter-api.ts +0 -3
  22. package/secret-contract-api.ts +0 -4
  23. package/security-audit-contract-api.ts +0 -1
  24. package/security-contract-api.ts +0 -4
  25. package/session-key-api.ts +0 -1
  26. package/setup-entry.ts +0 -9
  27. package/setup-plugin-api.ts +0 -3
  28. package/src/account-inspect.test.ts +0 -126
  29. package/src/account-inspect.ts +0 -128
  30. package/src/accounts.test.ts +0 -381
  31. package/src/accounts.ts +0 -205
  32. package/src/actions/handle-action.guild-admin.ts +0 -421
  33. package/src/actions/handle-action.test.ts +0 -480
  34. package/src/actions/handle-action.ts +0 -402
  35. package/src/actions/runtime.guild.ts +0 -446
  36. package/src/actions/runtime.messaging.messages.ts +0 -226
  37. package/src/actions/runtime.messaging.reactions.ts +0 -67
  38. package/src/actions/runtime.messaging.runtime.ts +0 -73
  39. package/src/actions/runtime.messaging.send.ts +0 -336
  40. package/src/actions/runtime.messaging.shared.ts +0 -97
  41. package/src/actions/runtime.messaging.ts +0 -37
  42. package/src/actions/runtime.moderation-shared.ts +0 -48
  43. package/src/actions/runtime.moderation.authz.test.ts +0 -151
  44. package/src/actions/runtime.moderation.ts +0 -116
  45. package/src/actions/runtime.presence.test.ts +0 -165
  46. package/src/actions/runtime.presence.ts +0 -117
  47. package/src/actions/runtime.shared.ts +0 -86
  48. package/src/actions/runtime.test.ts +0 -1337
  49. package/src/actions/runtime.ts +0 -87
  50. package/src/api-barrel.test.ts +0 -78
  51. package/src/api.test.ts +0 -152
  52. package/src/api.ts +0 -215
  53. package/src/approval-handler.runtime.test.ts +0 -41
  54. package/src/approval-handler.runtime.ts +0 -633
  55. package/src/approval-native.test.ts +0 -330
  56. package/src/approval-native.ts +0 -219
  57. package/src/approval-runtime.ts +0 -14
  58. package/src/approval-shared.ts +0 -50
  59. package/src/audit-core.ts +0 -178
  60. package/src/audit.test.ts +0 -204
  61. package/src/audit.ts +0 -32
  62. package/src/channel-actions.contract.test.ts +0 -45
  63. package/src/channel-actions.runtime.ts +0 -1
  64. package/src/channel-actions.test.ts +0 -504
  65. package/src/channel-actions.ts +0 -254
  66. package/src/channel-api.ts +0 -29
  67. package/src/channel.conversation.ts +0 -159
  68. package/src/channel.loaders.ts +0 -50
  69. package/src/channel.message-adapter.test.ts +0 -230
  70. package/src/channel.runtime.ts +0 -1
  71. package/src/channel.setup.ts +0 -12
  72. package/src/channel.test.ts +0 -828
  73. package/src/channel.ts +0 -728
  74. package/src/chunk.test.ts +0 -170
  75. package/src/chunk.ts +0 -321
  76. package/src/client.proxy.test.ts +0 -177
  77. package/src/client.test.ts +0 -83
  78. package/src/client.ts +0 -143
  79. package/src/component-custom-id.ts +0 -72
  80. package/src/components-registry.ts +0 -356
  81. package/src/components.builders.ts +0 -409
  82. package/src/components.modal.ts +0 -124
  83. package/src/components.parse.ts +0 -407
  84. package/src/components.test.ts +0 -345
  85. package/src/components.ts +0 -54
  86. package/src/components.types.ts +0 -187
  87. package/src/config-schema.test.ts +0 -439
  88. package/src/config-schema.ts +0 -6
  89. package/src/config-ui-hints.ts +0 -354
  90. package/src/conversation-identity.ts +0 -58
  91. package/src/delivery-retry.ts +0 -52
  92. package/src/directory-cache.ts +0 -116
  93. package/src/directory-config.ts +0 -58
  94. package/src/directory-contract.test.ts +0 -129
  95. package/src/directory-live.test.ts +0 -141
  96. package/src/directory-live.ts +0 -135
  97. package/src/doctor-contract.ts +0 -477
  98. package/src/doctor-shared.ts +0 -5
  99. package/src/doctor.test.ts +0 -393
  100. package/src/doctor.ts +0 -340
  101. package/src/draft-chunking.test.ts +0 -64
  102. package/src/draft-chunking.ts +0 -43
  103. package/src/draft-stream.test.ts +0 -193
  104. package/src/draft-stream.ts +0 -162
  105. package/src/durable-delivery.test.ts +0 -103
  106. package/src/error-body.ts +0 -38
  107. package/src/exec-approvals.test.ts +0 -88
  108. package/src/exec-approvals.ts +0 -110
  109. package/src/gateway-logging.test.ts +0 -98
  110. package/src/gateway-logging.ts +0 -67
  111. package/src/group-policy.ts +0 -113
  112. package/src/guilds.ts +0 -29
  113. package/src/inbound-context.contract.test.ts +0 -11
  114. package/src/inbound-event-delivery.ts +0 -135
  115. package/src/interactive-dispatch.ts +0 -104
  116. package/src/internal/api.commands.ts +0 -51
  117. package/src/internal/api.guild.ts +0 -164
  118. package/src/internal/api.interactions.ts +0 -53
  119. package/src/internal/api.messages.ts +0 -113
  120. package/src/internal/api.reactions.ts +0 -38
  121. package/src/internal/api.test.ts +0 -260
  122. package/src/internal/api.ts +0 -61
  123. package/src/internal/api.users.ts +0 -19
  124. package/src/internal/api.webhooks.ts +0 -13
  125. package/src/internal/client.test.ts +0 -472
  126. package/src/internal/client.ts +0 -310
  127. package/src/internal/command-deploy.test.ts +0 -197
  128. package/src/internal/command-deploy.ts +0 -352
  129. package/src/internal/commands.ts +0 -188
  130. package/src/internal/components.base.ts +0 -65
  131. package/src/internal/components.message.ts +0 -279
  132. package/src/internal/components.modal.ts +0 -95
  133. package/src/internal/components.ts +0 -31
  134. package/src/internal/discord.ts +0 -11
  135. package/src/internal/embeds.ts +0 -35
  136. package/src/internal/entity-cache.ts +0 -98
  137. package/src/internal/event-queue.ts +0 -185
  138. package/src/internal/gateway-close-codes.ts +0 -25
  139. package/src/internal/gateway-dispatch.ts +0 -96
  140. package/src/internal/gateway-identify-limiter.ts +0 -26
  141. package/src/internal/gateway-lifecycle.test.ts +0 -114
  142. package/src/internal/gateway-lifecycle.ts +0 -75
  143. package/src/internal/gateway-rate-limit.ts +0 -104
  144. package/src/internal/gateway.test.ts +0 -676
  145. package/src/internal/gateway.ts +0 -479
  146. package/src/internal/interaction-dispatch.test.ts +0 -148
  147. package/src/internal/interaction-dispatch.ts +0 -162
  148. package/src/internal/interaction-options.ts +0 -98
  149. package/src/internal/interaction-response.ts +0 -53
  150. package/src/internal/interactions.test.ts +0 -329
  151. package/src/internal/interactions.ts +0 -378
  152. package/src/internal/listeners.ts +0 -91
  153. package/src/internal/live-smoke.live.test.ts +0 -26
  154. package/src/internal/modal-fields.ts +0 -95
  155. package/src/internal/payload.ts +0 -69
  156. package/src/internal/rest-body.ts +0 -115
  157. package/src/internal/rest-errors.ts +0 -88
  158. package/src/internal/rest-routes.ts +0 -50
  159. package/src/internal/rest-scheduler.ts +0 -557
  160. package/src/internal/rest.test.ts +0 -681
  161. package/src/internal/rest.ts +0 -322
  162. package/src/internal/schemas.ts +0 -36
  163. package/src/internal/structures.test.ts +0 -43
  164. package/src/internal/structures.ts +0 -280
  165. package/src/internal/test-builders.test-support.ts +0 -167
  166. package/src/internal/voice.ts +0 -49
  167. package/src/media-detection.ts +0 -28
  168. package/src/mentions.test.ts +0 -111
  169. package/src/mentions.ts +0 -147
  170. package/src/monitor/ack-reactions.ts +0 -70
  171. package/src/monitor/acp-bind-here.integration.test.ts +0 -219
  172. package/src/monitor/agent-components-auth.ts +0 -7
  173. package/src/monitor/agent-components-context.ts +0 -154
  174. package/src/monitor/agent-components-data.ts +0 -224
  175. package/src/monitor/agent-components-dm-auth.ts +0 -177
  176. package/src/monitor/agent-components-guild-auth.ts +0 -322
  177. package/src/monitor/agent-components-helpers.runtime.ts +0 -3
  178. package/src/monitor/agent-components-helpers.ts +0 -34
  179. package/src/monitor/agent-components-reply.ts +0 -10
  180. package/src/monitor/agent-components.deps.runtime.ts +0 -2
  181. package/src/monitor/agent-components.dispatch.ts +0 -359
  182. package/src/monitor/agent-components.handlers.ts +0 -303
  183. package/src/monitor/agent-components.modal.ts +0 -160
  184. package/src/monitor/agent-components.plugin-interactive.ts +0 -187
  185. package/src/monitor/agent-components.runtime.ts +0 -14
  186. package/src/monitor/agent-components.system-controls.ts +0 -215
  187. package/src/monitor/agent-components.ts +0 -70
  188. package/src/monitor/agent-components.types.ts +0 -58
  189. package/src/monitor/agent-components.wildcard-controls.ts +0 -171
  190. package/src/monitor/agent-components.wildcard.test.ts +0 -71
  191. package/src/monitor/allow-list.test.ts +0 -14
  192. package/src/monitor/allow-list.ts +0 -631
  193. package/src/monitor/auto-presence.test.ts +0 -184
  194. package/src/monitor/auto-presence.ts +0 -356
  195. package/src/monitor/channel-access.test.ts +0 -113
  196. package/src/monitor/channel-access.ts +0 -102
  197. package/src/monitor/commands.test.ts +0 -24
  198. package/src/monitor/commands.ts +0 -9
  199. package/src/monitor/dm-command-auth.test.ts +0 -274
  200. package/src/monitor/dm-command-auth.ts +0 -259
  201. package/src/monitor/dm-command-decision.test.ts +0 -108
  202. package/src/monitor/dm-command-decision.ts +0 -49
  203. package/src/monitor/exec-approvals.test.ts +0 -225
  204. package/src/monitor/exec-approvals.ts +0 -158
  205. package/src/monitor/format.ts +0 -45
  206. package/src/monitor/gateway-handle.ts +0 -33
  207. package/src/monitor/gateway-metadata.test.ts +0 -29
  208. package/src/monitor/gateway-metadata.ts +0 -298
  209. package/src/monitor/gateway-plugin.test.ts +0 -320
  210. package/src/monitor/gateway-plugin.ts +0 -302
  211. package/src/monitor/gateway-registry.ts +0 -37
  212. package/src/monitor/gateway-supervisor.test.ts +0 -157
  213. package/src/monitor/gateway-supervisor.ts +0 -206
  214. package/src/monitor/inbound-context.test-helpers.ts +0 -37
  215. package/src/monitor/inbound-context.test.ts +0 -112
  216. package/src/monitor/inbound-context.ts +0 -95
  217. package/src/monitor/inbound-dedupe.ts +0 -79
  218. package/src/monitor/inbound-job.test.ts +0 -216
  219. package/src/monitor/inbound-job.ts +0 -118
  220. package/src/monitor/listeners.queue.ts +0 -91
  221. package/src/monitor/listeners.reactions.ts +0 -594
  222. package/src/monitor/listeners.test.ts +0 -209
  223. package/src/monitor/listeners.ts +0 -150
  224. package/src/monitor/message-channel-info.ts +0 -96
  225. package/src/monitor/message-forwarded.ts +0 -114
  226. package/src/monitor/message-handler.batch-gate.test.ts +0 -22
  227. package/src/monitor/message-handler.batch-gate.ts +0 -19
  228. package/src/monitor/message-handler.bot-self-filter.test.ts +0 -68
  229. package/src/monitor/message-handler.context.ts +0 -492
  230. package/src/monitor/message-handler.dm-preflight.ts +0 -119
  231. package/src/monitor/message-handler.draft-preview.ts +0 -426
  232. package/src/monitor/message-handler.hydration.test.ts +0 -80
  233. package/src/monitor/message-handler.hydration.ts +0 -198
  234. package/src/monitor/message-handler.inbound-context.test.ts +0 -61
  235. package/src/monitor/message-handler.module-test-helpers.ts +0 -31
  236. package/src/monitor/message-handler.preflight-channel-access.ts +0 -86
  237. package/src/monitor/message-handler.preflight-channel-context.test.ts +0 -18
  238. package/src/monitor/message-handler.preflight-channel-context.ts +0 -58
  239. package/src/monitor/message-handler.preflight-context.ts +0 -54
  240. package/src/monitor/message-handler.preflight-helpers.ts +0 -164
  241. package/src/monitor/message-handler.preflight-history.ts +0 -23
  242. package/src/monitor/message-handler.preflight-logging.ts +0 -36
  243. package/src/monitor/message-handler.preflight-pluralkit.ts +0 -26
  244. package/src/monitor/message-handler.preflight-runtime.ts +0 -28
  245. package/src/monitor/message-handler.preflight-thread.ts +0 -49
  246. package/src/monitor/message-handler.preflight.acp-bindings.test.ts +0 -371
  247. package/src/monitor/message-handler.preflight.test-helpers.ts +0 -114
  248. package/src/monitor/message-handler.preflight.test.ts +0 -2255
  249. package/src/monitor/message-handler.preflight.ts +0 -822
  250. package/src/monitor/message-handler.preflight.types.ts +0 -115
  251. package/src/monitor/message-handler.process.test.ts +0 -2520
  252. package/src/monitor/message-handler.process.ts +0 -1027
  253. package/src/monitor/message-handler.queue.test.ts +0 -680
  254. package/src/monitor/message-handler.routing-preflight.ts +0 -112
  255. package/src/monitor/message-handler.test-harness.ts +0 -99
  256. package/src/monitor/message-handler.test-helpers.ts +0 -75
  257. package/src/monitor/message-handler.ts +0 -309
  258. package/src/monitor/message-media.ts +0 -536
  259. package/src/monitor/message-run-queue.ts +0 -101
  260. package/src/monitor/message-text.ts +0 -171
  261. package/src/monitor/message-utils.test.ts +0 -1234
  262. package/src/monitor/message-utils.ts +0 -34
  263. package/src/monitor/model-picker-preferences.test.ts +0 -67
  264. package/src/monitor/model-picker-preferences.ts +0 -184
  265. package/src/monitor/model-picker.state.ts +0 -364
  266. package/src/monitor/model-picker.test-utils.ts +0 -26
  267. package/src/monitor/model-picker.test.ts +0 -869
  268. package/src/monitor/model-picker.ts +0 -38
  269. package/src/monitor/model-picker.view.ts +0 -722
  270. package/src/monitor/monitor.agent-components.test.ts +0 -410
  271. package/src/monitor/monitor.test.ts +0 -919
  272. package/src/monitor/monitor.threading-utils.test.ts +0 -614
  273. package/src/monitor/native-command-agent-reply.ts +0 -125
  274. package/src/monitor/native-command-arg-ui.ts +0 -233
  275. package/src/monitor/native-command-auth.ts +0 -309
  276. package/src/monitor/native-command-bypass.ts +0 -13
  277. package/src/monitor/native-command-context.test.ts +0 -105
  278. package/src/monitor/native-command-context.ts +0 -109
  279. package/src/monitor/native-command-dispatch.ts +0 -35
  280. package/src/monitor/native-command-model-picker-apply.ts +0 -209
  281. package/src/monitor/native-command-model-picker-interaction.ts +0 -516
  282. package/src/monitor/native-command-model-picker-ui.ts +0 -357
  283. package/src/monitor/native-command-reply.test.ts +0 -68
  284. package/src/monitor/native-command-reply.ts +0 -185
  285. package/src/monitor/native-command-route.ts +0 -91
  286. package/src/monitor/native-command-status.ts +0 -76
  287. package/src/monitor/native-command-ui.ts +0 -26
  288. package/src/monitor/native-command-ui.types.ts +0 -20
  289. package/src/monitor/native-command.args.ts +0 -45
  290. package/src/monitor/native-command.command-arg.test.ts +0 -108
  291. package/src/monitor/native-command.commands-allowfrom.test.ts +0 -504
  292. package/src/monitor/native-command.model-picker.test.ts +0 -930
  293. package/src/monitor/native-command.options.test.ts +0 -379
  294. package/src/monitor/native-command.options.ts +0 -153
  295. package/src/monitor/native-command.plugin-dispatch.test.ts +0 -1212
  296. package/src/monitor/native-command.runtime.ts +0 -51
  297. package/src/monitor/native-command.status-direct.test.ts +0 -278
  298. package/src/monitor/native-command.test-helpers.ts +0 -64
  299. package/src/monitor/native-command.think-autocomplete.test.ts +0 -411
  300. package/src/monitor/native-command.ts +0 -747
  301. package/src/monitor/native-command.types.ts +0 -9
  302. package/src/monitor/native-interaction-channel-context.ts +0 -50
  303. package/src/monitor/preflight-audio.runtime.ts +0 -9
  304. package/src/monitor/preflight-audio.test.ts +0 -157
  305. package/src/monitor/preflight-audio.ts +0 -130
  306. package/src/monitor/presence-cache.ts +0 -61
  307. package/src/monitor/presence.test.ts +0 -61
  308. package/src/monitor/presence.ts +0 -50
  309. package/src/monitor/provider-session.runtime.ts +0 -12
  310. package/src/monitor/provider.acp.ts +0 -89
  311. package/src/monitor/provider.allowlist.test.ts +0 -217
  312. package/src/monitor/provider.allowlist.ts +0 -398
  313. package/src/monitor/provider.cleanup.ts +0 -41
  314. package/src/monitor/provider.commands.ts +0 -129
  315. package/src/monitor/provider.config-log.ts +0 -45
  316. package/src/monitor/provider.deploy-errors.ts +0 -362
  317. package/src/monitor/provider.deploy.ts +0 -221
  318. package/src/monitor/provider.interactions.ts +0 -160
  319. package/src/monitor/provider.lifecycle.test.ts +0 -734
  320. package/src/monitor/provider.lifecycle.ts +0 -562
  321. package/src/monitor/provider.proxy.test.ts +0 -804
  322. package/src/monitor/provider.rest-proxy.test.ts +0 -389
  323. package/src/monitor/provider.runtime.ts +0 -1
  324. package/src/monitor/provider.skill-dedupe.test.ts +0 -42
  325. package/src/monitor/provider.startup-log.ts +0 -32
  326. package/src/monitor/provider.startup.test.ts +0 -440
  327. package/src/monitor/provider.startup.ts +0 -323
  328. package/src/monitor/provider.test.ts +0 -1173
  329. package/src/monitor/provider.ts +0 -688
  330. package/src/monitor/reply-context.ts +0 -64
  331. package/src/monitor/reply-delivery.test.ts +0 -474
  332. package/src/monitor/reply-delivery.ts +0 -212
  333. package/src/monitor/reply-safety.ts +0 -96
  334. package/src/monitor/rest-fetch.ts +0 -94
  335. package/src/monitor/route-resolution.test.ts +0 -209
  336. package/src/monitor/route-resolution.ts +0 -140
  337. package/src/monitor/sender-identity.ts +0 -81
  338. package/src/monitor/startup-status.test.ts +0 -30
  339. package/src/monitor/startup-status.ts +0 -10
  340. package/src/monitor/status.ts +0 -22
  341. package/src/monitor/system-events.ts +0 -55
  342. package/src/monitor/thread-bindings.config.ts +0 -35
  343. package/src/monitor/thread-bindings.discord-api.test.ts +0 -250
  344. package/src/monitor/thread-bindings.discord-api.ts +0 -310
  345. package/src/monitor/thread-bindings.lifecycle.test.ts +0 -1994
  346. package/src/monitor/thread-bindings.lifecycle.ts +0 -354
  347. package/src/monitor/thread-bindings.manager.ts +0 -551
  348. package/src/monitor/thread-bindings.messages.ts +0 -6
  349. package/src/monitor/thread-bindings.persona.test.ts +0 -34
  350. package/src/monitor/thread-bindings.persona.ts +0 -25
  351. package/src/monitor/thread-bindings.session-adapter.ts +0 -229
  352. package/src/monitor/thread-bindings.session-shared.ts +0 -59
  353. package/src/monitor/thread-bindings.session-updates.ts +0 -35
  354. package/src/monitor/thread-bindings.shared-state.test.ts +0 -39
  355. package/src/monitor/thread-bindings.state.ts +0 -540
  356. package/src/monitor/thread-bindings.ts +0 -48
  357. package/src/monitor/thread-bindings.types.ts +0 -83
  358. package/src/monitor/thread-channel-context.ts +0 -112
  359. package/src/monitor/thread-session-close.test.ts +0 -180
  360. package/src/monitor/thread-session-close.ts +0 -63
  361. package/src/monitor/thread-title.generate.test.ts +0 -209
  362. package/src/monitor/thread-title.test.ts +0 -31
  363. package/src/monitor/thread-title.ts +0 -181
  364. package/src/monitor/threading.auto-thread.test.ts +0 -330
  365. package/src/monitor/threading.auto-thread.ts +0 -287
  366. package/src/monitor/threading.cache.ts +0 -45
  367. package/src/monitor/threading.parent-info.test.ts +0 -156
  368. package/src/monitor/threading.starter.test.ts +0 -279
  369. package/src/monitor/threading.starter.ts +0 -288
  370. package/src/monitor/threading.ts +0 -20
  371. package/src/monitor/threading.types.ts +0 -102
  372. package/src/monitor/timeouts.ts +0 -84
  373. package/src/monitor/typing.test.ts +0 -42
  374. package/src/monitor/typing.ts +0 -17
  375. package/src/monitor.gateway.test.ts +0 -187
  376. package/src/monitor.gateway.ts +0 -75
  377. package/src/monitor.test.ts +0 -1416
  378. package/src/monitor.ts +0 -28
  379. package/src/network-config.test.ts +0 -92
  380. package/src/network-config.ts +0 -79
  381. package/src/normalize.test.ts +0 -56
  382. package/src/normalize.ts +0 -86
  383. package/src/outbound-adapter.interactive-order.test.ts +0 -82
  384. package/src/outbound-adapter.test-harness.ts +0 -207
  385. package/src/outbound-adapter.test.ts +0 -804
  386. package/src/outbound-adapter.ts +0 -326
  387. package/src/outbound-approval.ts +0 -29
  388. package/src/outbound-components.ts +0 -86
  389. package/src/outbound-payload.contract.test.ts +0 -49
  390. package/src/outbound-payload.ts +0 -208
  391. package/src/outbound-send-context.ts +0 -89
  392. package/src/outbound-session-route.test.ts +0 -42
  393. package/src/outbound-session-route.ts +0 -72
  394. package/src/pluralkit.test.ts +0 -67
  395. package/src/pluralkit.ts +0 -58
  396. package/src/preview-streaming.ts +0 -18
  397. package/src/probe.intents.test.ts +0 -94
  398. package/src/probe.parse-token.test.ts +0 -43
  399. package/src/probe.runtime.ts +0 -1
  400. package/src/probe.ts +0 -237
  401. package/src/proxy-fetch.ts +0 -92
  402. package/src/proxy-request-client.test.ts +0 -100
  403. package/src/proxy-request-client.ts +0 -21
  404. package/src/recipient-resolution.ts +0 -39
  405. package/src/resolve-allowlist-common.test.ts +0 -40
  406. package/src/resolve-allowlist-common.ts +0 -39
  407. package/src/resolve-channels.test.ts +0 -341
  408. package/src/resolve-channels.ts +0 -369
  409. package/src/resolve-users.test.ts +0 -243
  410. package/src/resolve-users.ts +0 -184
  411. package/src/retry.test.ts +0 -83
  412. package/src/retry.ts +0 -98
  413. package/src/runtime-api.ts +0 -61
  414. package/src/runtime-config.ts +0 -16
  415. package/src/runtime.ts +0 -23
  416. package/src/secret-config-contract.ts +0 -140
  417. package/src/security-audit.runtime.ts +0 -1
  418. package/src/security-audit.test.ts +0 -245
  419. package/src/security-audit.ts +0 -208
  420. package/src/security-contract.ts +0 -47
  421. package/src/security-doctor.test.ts +0 -25
  422. package/src/security-doctor.ts +0 -20
  423. package/src/security.ts +0 -60
  424. package/src/send-target-parsing.ts +0 -14
  425. package/src/send.channels.ts +0 -139
  426. package/src/send.components.test.ts +0 -330
  427. package/src/send.components.ts +0 -391
  428. package/src/send.creates-thread.test.ts +0 -681
  429. package/src/send.emojis-stickers.ts +0 -57
  430. package/src/send.guild.ts +0 -170
  431. package/src/send.message-request.ts +0 -112
  432. package/src/send.messages.test.ts +0 -59
  433. package/src/send.messages.ts +0 -229
  434. package/src/send.outbound.ts +0 -459
  435. package/src/send.permissions.authz.test.ts +0 -190
  436. package/src/send.permissions.ts +0 -283
  437. package/src/send.reactions.ts +0 -155
  438. package/src/send.receipt.ts +0 -69
  439. package/src/send.sends-basic-channel-messages.test.ts +0 -1068
  440. package/src/send.shared.ts +0 -469
  441. package/src/send.test-harness.ts +0 -56
  442. package/src/send.ts +0 -82
  443. package/src/send.types.ts +0 -191
  444. package/src/send.typing.test.ts +0 -41
  445. package/src/send.typing.ts +0 -9
  446. package/src/send.voice.ts +0 -136
  447. package/src/send.webhook-activity.test.ts +0 -152
  448. package/src/send.webhook.proxy.test.ts +0 -210
  449. package/src/send.webhook.ts +0 -137
  450. package/src/session-contract.ts +0 -3
  451. package/src/session-key-normalization.test.ts +0 -44
  452. package/src/session-key-normalization.ts +0 -47
  453. package/src/setup-account-state.test.ts +0 -113
  454. package/src/setup-account-state.ts +0 -141
  455. package/src/setup-adapter.ts +0 -14
  456. package/src/setup-core.ts +0 -215
  457. package/src/setup-runtime-helpers.ts +0 -10
  458. package/src/setup-surface.test.ts +0 -137
  459. package/src/setup-surface.ts +0 -132
  460. package/src/shared-interactive.test.ts +0 -153
  461. package/src/shared-interactive.ts +0 -161
  462. package/src/shared.test.ts +0 -186
  463. package/src/shared.ts +0 -197
  464. package/src/status-issues.test.ts +0 -97
  465. package/src/status-issues.ts +0 -198
  466. package/src/subagent-hooks.test.ts +0 -465
  467. package/src/subagent-hooks.ts +0 -232
  468. package/src/target-parsing.ts +0 -70
  469. package/src/target-resolver.ts +0 -129
  470. package/src/targets.test.ts +0 -393
  471. package/src/targets.ts +0 -12
  472. package/src/test-http-helpers.ts +0 -10
  473. package/src/test-support/component-runtime.ts +0 -194
  474. package/src/test-support/config.ts +0 -7
  475. package/src/test-support/configured-binding-runtime.ts +0 -29
  476. package/src/test-support/partial-channel.ts +0 -26
  477. package/src/test-support/provider.test-support.ts +0 -547
  478. package/src/token.test.ts +0 -174
  479. package/src/token.ts +0 -107
  480. package/src/ui-colors.ts +0 -27
  481. package/src/ui.ts +0 -20
  482. package/src/voice/access.test.ts +0 -288
  483. package/src/voice/access.ts +0 -126
  484. package/src/voice/audio.test.ts +0 -47
  485. package/src/voice/audio.ts +0 -249
  486. package/src/voice/capture-state.test.ts +0 -48
  487. package/src/voice/capture-state.ts +0 -120
  488. package/src/voice/command.test.ts +0 -170
  489. package/src/voice/command.ts +0 -284
  490. package/src/voice/config.ts +0 -8
  491. package/src/voice/ingress.ts +0 -164
  492. package/src/voice/manager.e2e.test.ts +0 -3286
  493. package/src/voice/manager.ready-listener.test.ts +0 -54
  494. package/src/voice/manager.runtime.ts +0 -14
  495. package/src/voice/manager.ts +0 -1155
  496. package/src/voice/prompt.test.ts +0 -30
  497. package/src/voice/prompt.ts +0 -22
  498. package/src/voice/realtime.ts +0 -1370
  499. package/src/voice/receive-recovery.test.ts +0 -81
  500. package/src/voice/receive-recovery.ts +0 -159
  501. package/src/voice/sanitize.test.ts +0 -34
  502. package/src/voice/sanitize.ts +0 -29
  503. package/src/voice/sdk-runtime.ts +0 -14
  504. package/src/voice/segment.ts +0 -160
  505. package/src/voice/session.ts +0 -81
  506. package/src/voice/speaker-context.ts +0 -127
  507. package/src/voice/tts.ts +0 -151
  508. package/src/voice-message.test.ts +0 -376
  509. package/src/voice-message.ts +0 -474
  510. package/subagent-hooks-api.ts +0 -27
  511. package/test-api.ts +0 -4
  512. package/thread-binding-api.ts +0 -1
  513. package/timeouts.ts +0 -6
  514. package/tsconfig.json +0 -16
@@ -1,547 +0,0 @@
1
- import type { KlawConfig } from "klaw/plugin-sdk/config-contracts";
2
- import type { RuntimeEnv } from "klaw/plugin-sdk/runtime-env";
3
- import type { Mock } from "vitest";
4
- import { expect, vi } from "vitest";
5
-
6
- type NativeCommandSpecMock = {
7
- name: string;
8
- description: string;
9
- acceptsArgs: boolean;
10
- };
11
-
12
- type PluginCommandSpecMock = {
13
- name: string;
14
- description: string;
15
- acceptsArgs: boolean;
16
- };
17
-
18
- type ProviderMonitorTestMocks = {
19
- clientDeployCommandsMock: Mock<(options?: { mode?: string }) => Promise<void>>;
20
- clientFetchUserMock: Mock<(target: string) => Promise<{ id: string }>>;
21
- clientGetPluginMock: Mock<(name: string) => unknown>;
22
- clientConstructorOptionsMock: Mock<(options?: unknown) => void>;
23
- createDiscordAutoPresenceControllerMock: Mock<() => unknown>;
24
- createDiscordExecApprovalButtonContextMock: Mock<
25
- (params?: { cfg?: KlawConfig; accountId?: string; config?: unknown; gatewayUrl?: string }) => {
26
- getApprovers: () => string[];
27
- resolveApproval: () => Promise<boolean>;
28
- }
29
- >;
30
- createExecApprovalButtonMock: Mock<(ctx?: unknown) => unknown>;
31
- createDiscordNativeCommandMock: Mock<(params?: { command?: { name?: string } }) => unknown>;
32
- createDiscordMessageHandlerMock: Mock<() => unknown>;
33
- createNoopThreadBindingManagerMock: Mock<() => { stop: ReturnType<typeof vi.fn> }>;
34
- createThreadBindingManagerMock: Mock<() => { stop: ReturnType<typeof vi.fn> }>;
35
- reconcileAcpThreadBindingsOnStartupMock: Mock<() => unknown>;
36
- createdBindingManagers: Array<{ stop: ReturnType<typeof vi.fn> }>;
37
- getAcpSessionStatusMock: Mock<
38
- (params: {
39
- cfg: KlawConfig;
40
- sessionKey: string;
41
- signal?: AbortSignal;
42
- }) => Promise<{ state: string }>
43
- >;
44
- getPluginCommandSpecsMock: Mock<(provider?: string) => PluginCommandSpecMock[]>;
45
- listNativeCommandSpecsForConfigMock: Mock<
46
- (
47
- cfg?: unknown,
48
- params?: { skillCommands?: unknown[]; provider?: string },
49
- ) => NativeCommandSpecMock[]
50
- >;
51
- listSkillCommandsForAgentsMock: Mock<
52
- (params?: { cfg?: unknown; agentIds?: string[] }) => unknown[]
53
- >;
54
- monitorLifecycleMock: Mock<(params: { threadBindings: { stop: () => void } }) => Promise<void>>;
55
- resolveDiscordAccountMock: Mock<
56
- (params?: { cfg?: unknown; accountId?: string | null; token?: string | null }) => unknown
57
- >;
58
- resolveDiscordAllowlistConfigMock: Mock<() => Promise<unknown>>;
59
- isNativeCommandsExplicitlyDisabledMock: Mock<(params?: unknown) => boolean>;
60
- resolveNativeCommandsEnabledMock: Mock<(params?: unknown) => boolean>;
61
- resolveNativeSkillsEnabledMock: Mock<(params?: unknown) => boolean>;
62
- isVerboseMock: Mock<() => boolean>;
63
- shouldLogVerboseMock: Mock<() => boolean>;
64
- voiceRuntimeModuleLoadedMock: Mock<() => void>;
65
- };
66
-
67
- function baseDiscordAccountConfig() {
68
- return {
69
- commands: { native: true, nativeSkills: false },
70
- voice: { enabled: false },
71
- agentComponents: { enabled: false },
72
- execApprovals: { enabled: false },
73
- };
74
- }
75
-
76
- const providerMonitorTestMocks: ProviderMonitorTestMocks = vi.hoisted(() => {
77
- const createdBindingManagers: Array<{ stop: ReturnType<typeof vi.fn> }> = [];
78
- const isVerboseMock = vi.fn(() => false);
79
- const shouldLogVerboseMock = vi.fn(() => false);
80
-
81
- return {
82
- clientDeployCommandsMock: vi.fn(async () => undefined),
83
- clientFetchUserMock: vi.fn(async (_target: string) => ({ id: "bot-1" })),
84
- clientGetPluginMock: vi.fn<(_name: string) => unknown>(() => undefined),
85
- clientConstructorOptionsMock: vi.fn(),
86
- createDiscordAutoPresenceControllerMock: vi.fn(() => ({
87
- enabled: false,
88
- start: vi.fn(),
89
- stop: vi.fn(),
90
- refresh: vi.fn(),
91
- runNow: vi.fn(),
92
- })),
93
- createDiscordExecApprovalButtonContextMock: vi.fn(() => ({
94
- getApprovers: () => [],
95
- resolveApproval: async () => false,
96
- })),
97
- createExecApprovalButtonMock: vi.fn(() => ({ id: "exec-approval" })),
98
- createDiscordNativeCommandMock: vi.fn((params?: { command?: { name?: string } }) => ({
99
- name: params?.command?.name ?? "mock-command",
100
- })),
101
- createDiscordMessageHandlerMock: vi.fn(() =>
102
- Object.assign(
103
- vi.fn(async () => undefined),
104
- {
105
- deactivate: vi.fn(),
106
- },
107
- ),
108
- ),
109
- createNoopThreadBindingManagerMock: vi.fn(() => {
110
- const manager = { stop: vi.fn() };
111
- createdBindingManagers.push(manager);
112
- return manager;
113
- }),
114
- createThreadBindingManagerMock: vi.fn(() => {
115
- const manager = { stop: vi.fn() };
116
- createdBindingManagers.push(manager);
117
- return manager;
118
- }),
119
- reconcileAcpThreadBindingsOnStartupMock: vi.fn(() => ({
120
- checked: 0,
121
- removed: 0,
122
- staleSessionKeys: [],
123
- })),
124
- createdBindingManagers,
125
- getAcpSessionStatusMock: vi.fn(
126
- async (_params: { cfg: KlawConfig; sessionKey: string; signal?: AbortSignal }) => ({
127
- state: "idle",
128
- }),
129
- ),
130
- getPluginCommandSpecsMock: vi.fn<(provider?: string) => PluginCommandSpecMock[]>(() => []),
131
- listNativeCommandSpecsForConfigMock: vi.fn<
132
- (
133
- cfg?: unknown,
134
- params?: { skillCommands?: unknown[]; provider?: string },
135
- ) => NativeCommandSpecMock[]
136
- >(() => [{ name: "cmd", description: "built-in", acceptsArgs: false }]),
137
- listSkillCommandsForAgentsMock: vi.fn<
138
- (params?: { cfg?: unknown; agentIds?: string[] }) => unknown[]
139
- >(() => []),
140
- monitorLifecycleMock: vi.fn(async (params: { threadBindings: { stop: () => void } }) => {
141
- params.threadBindings.stop();
142
- }),
143
- resolveDiscordAccountMock: vi.fn((_) => ({
144
- accountId: "default",
145
- token: "cfg-token",
146
- config: baseDiscordAccountConfig(),
147
- })),
148
- resolveDiscordAllowlistConfigMock: vi.fn(async () => ({
149
- guildEntries: undefined,
150
- allowFrom: undefined,
151
- })),
152
- isNativeCommandsExplicitlyDisabledMock: vi.fn((_params) => false),
153
- resolveNativeCommandsEnabledMock: vi.fn((_params) => true),
154
- resolveNativeSkillsEnabledMock: vi.fn((_params) => false),
155
- isVerboseMock,
156
- shouldLogVerboseMock,
157
- voiceRuntimeModuleLoadedMock: vi.fn(),
158
- };
159
- });
160
-
161
- function buildDiscordSourceModuleId(artifactBasename: string): string {
162
- return `../${artifactBasename}`;
163
- }
164
-
165
- const {
166
- clientDeployCommandsMock,
167
- clientFetchUserMock,
168
- clientGetPluginMock,
169
- clientConstructorOptionsMock,
170
- createDiscordAutoPresenceControllerMock,
171
- createDiscordExecApprovalButtonContextMock,
172
- createExecApprovalButtonMock,
173
- createDiscordNativeCommandMock,
174
- createDiscordMessageHandlerMock,
175
- createNoopThreadBindingManagerMock,
176
- createThreadBindingManagerMock,
177
- reconcileAcpThreadBindingsOnStartupMock,
178
- createdBindingManagers,
179
- getAcpSessionStatusMock,
180
- getPluginCommandSpecsMock,
181
- listNativeCommandSpecsForConfigMock,
182
- listSkillCommandsForAgentsMock,
183
- monitorLifecycleMock,
184
- resolveDiscordAccountMock,
185
- resolveDiscordAllowlistConfigMock,
186
- isNativeCommandsExplicitlyDisabledMock,
187
- resolveNativeCommandsEnabledMock,
188
- resolveNativeSkillsEnabledMock,
189
- isVerboseMock,
190
- shouldLogVerboseMock,
191
- voiceRuntimeModuleLoadedMock,
192
- } = providerMonitorTestMocks;
193
-
194
- export function getProviderMonitorTestMocks(): typeof providerMonitorTestMocks {
195
- return providerMonitorTestMocks;
196
- }
197
-
198
- // oxlint-disable-next-line typescript/no-unnecessary-type-parameters -- Test helper lets assertions ascribe handler params shape.
199
- export function getFirstDiscordMessageHandlerParams<T extends object>() {
200
- expect(createDiscordMessageHandlerMock).toHaveBeenCalledTimes(1);
201
- const firstCall = createDiscordMessageHandlerMock.mock.calls.at(0) as [T] | undefined;
202
- return firstCall?.[0];
203
- }
204
-
205
- export function resetDiscordProviderMonitorMocks(params?: {
206
- nativeCommands?: NativeCommandSpecMock[];
207
- }) {
208
- clientDeployCommandsMock.mockClear().mockResolvedValue(undefined);
209
- clientFetchUserMock.mockClear().mockResolvedValue({ id: "bot-1" });
210
- clientGetPluginMock.mockClear().mockReturnValue(undefined);
211
- clientConstructorOptionsMock.mockClear();
212
- createDiscordAutoPresenceControllerMock.mockClear().mockImplementation(() => ({
213
- enabled: false,
214
- start: vi.fn(),
215
- stop: vi.fn(),
216
- refresh: vi.fn(),
217
- runNow: vi.fn(),
218
- }));
219
- createDiscordExecApprovalButtonContextMock.mockClear().mockImplementation(() => ({
220
- getApprovers: () => [],
221
- resolveApproval: async () => false,
222
- }));
223
- createExecApprovalButtonMock.mockClear().mockImplementation(() => ({ id: "exec-approval" }));
224
- createDiscordNativeCommandMock.mockClear().mockImplementation((input) => ({
225
- name: input?.command?.name ?? "mock-command",
226
- }));
227
- createDiscordMessageHandlerMock.mockClear().mockImplementation(() =>
228
- Object.assign(
229
- vi.fn(async () => undefined),
230
- {
231
- deactivate: vi.fn(),
232
- },
233
- ),
234
- );
235
- createNoopThreadBindingManagerMock.mockClear();
236
- createThreadBindingManagerMock.mockClear();
237
- reconcileAcpThreadBindingsOnStartupMock.mockClear().mockReturnValue({
238
- checked: 0,
239
- removed: 0,
240
- staleSessionKeys: [],
241
- });
242
- createdBindingManagers.length = 0;
243
- getAcpSessionStatusMock.mockClear().mockResolvedValue({ state: "idle" });
244
- getPluginCommandSpecsMock.mockClear().mockReturnValue([]);
245
- listNativeCommandSpecsForConfigMock
246
- .mockClear()
247
- .mockReturnValue(
248
- params?.nativeCommands ?? [{ name: "cmd", description: "built-in", acceptsArgs: false }],
249
- );
250
- listSkillCommandsForAgentsMock.mockClear().mockReturnValue([]);
251
- monitorLifecycleMock.mockClear().mockImplementation(async (monitorParams) => {
252
- monitorParams.threadBindings.stop();
253
- });
254
- resolveDiscordAccountMock.mockClear().mockReturnValue({
255
- accountId: "default",
256
- token: "cfg-token",
257
- config: baseDiscordAccountConfig(),
258
- });
259
- resolveDiscordAllowlistConfigMock.mockClear().mockResolvedValue({
260
- guildEntries: undefined,
261
- allowFrom: undefined,
262
- });
263
- isNativeCommandsExplicitlyDisabledMock.mockClear().mockReturnValue(false);
264
- resolveNativeCommandsEnabledMock.mockClear().mockReturnValue(true);
265
- resolveNativeSkillsEnabledMock.mockClear().mockReturnValue(false);
266
- isVerboseMock.mockClear().mockReturnValue(false);
267
- shouldLogVerboseMock.mockClear().mockReturnValue(false);
268
- voiceRuntimeModuleLoadedMock.mockClear();
269
- }
270
-
271
- export const baseRuntime = (): RuntimeEnv => ({
272
- log: vi.fn(),
273
- error: vi.fn(),
274
- exit: vi.fn(),
275
- });
276
-
277
- export const baseConfig = (): KlawConfig =>
278
- ({
279
- channels: {
280
- discord: {
281
- accounts: {
282
- default: {
283
- token: "MTIz.abc.def",
284
- },
285
- },
286
- },
287
- },
288
- }) as KlawConfig;
289
-
290
- vi.mock("../internal/discord.js", async () => {
291
- const actual =
292
- await vi.importActual<typeof import("../internal/discord.js")>("../internal/discord.js");
293
- class RateLimitError extends Error {
294
- status = 429;
295
- discordCode?: number;
296
- retryAfter: number;
297
- scope: string | null;
298
- bucket: string | null;
299
- constructor(
300
- response: Response,
301
- body: { message: string; retry_after: number; global: boolean },
302
- ) {
303
- super(body.message);
304
- this.retryAfter = body.retry_after;
305
- this.scope = body.global ? "global" : response.headers.get("X-RateLimit-Scope");
306
- this.bucket = response.headers.get("X-RateLimit-Bucket");
307
- }
308
- }
309
- class Client {
310
- listeners: unknown[];
311
- rest: {
312
- get: ReturnType<typeof vi.fn>;
313
- post: ReturnType<typeof vi.fn>;
314
- put: ReturnType<typeof vi.fn>;
315
- patch: ReturnType<typeof vi.fn>;
316
- delete: ReturnType<typeof vi.fn>;
317
- };
318
- options: unknown;
319
- constructor(options: unknown, handlers: { listeners?: unknown[] }) {
320
- this.options = options;
321
- this.listeners = handlers.listeners ?? [];
322
- this.rest = {
323
- get: vi.fn(async () => undefined),
324
- post: vi.fn(async () => undefined),
325
- put: vi.fn(async () => undefined),
326
- patch: vi.fn(async () => undefined),
327
- delete: vi.fn(async () => undefined),
328
- };
329
- clientConstructorOptionsMock(options);
330
- }
331
- async deployCommands(options?: { mode?: string }) {
332
- return await clientDeployCommandsMock(options);
333
- }
334
- async fetchUser(target: string) {
335
- return await clientFetchUserMock(target);
336
- }
337
- getPlugin(name: string) {
338
- return clientGetPluginMock(name);
339
- }
340
- }
341
- return { ...actual, Client, RateLimitError };
342
- });
343
-
344
- vi.mock("../internal/gateway.js", () => ({
345
- GatewayCloseCodes: { DisallowedIntents: 4014 },
346
- }));
347
-
348
- vi.mock("../internal/voice.js", () => ({
349
- VoicePlugin: function VoicePlugin() {},
350
- }));
351
-
352
- vi.mock("klaw/plugin-sdk/acp-runtime", async () => {
353
- const actual = await vi.importActual<typeof import("klaw/plugin-sdk/acp-runtime")>(
354
- "klaw/plugin-sdk/acp-runtime",
355
- );
356
- return {
357
- ...actual,
358
- getAcpSessionManager: () => ({
359
- getSessionStatus: getAcpSessionStatusMock,
360
- }),
361
- isAcpRuntimeError: (error: unknown): error is { code: string } =>
362
- error instanceof Error && "code" in error,
363
- };
364
- });
365
-
366
- vi.mock("klaw/plugin-sdk/command-auth", async () => {
367
- const actual = await vi.importActual<typeof import("klaw/plugin-sdk/command-auth")>(
368
- "klaw/plugin-sdk/command-auth",
369
- );
370
- return {
371
- ...actual,
372
- listNativeCommandSpecsForConfig: listNativeCommandSpecsForConfigMock,
373
- listSkillCommandsForAgents: listSkillCommandsForAgentsMock,
374
- };
375
- });
376
- vi.mock("klaw/plugin-sdk/reply-runtime", async () => {
377
- const actual = await vi.importActual<typeof import("klaw/plugin-sdk/reply-runtime")>(
378
- "klaw/plugin-sdk/reply-runtime",
379
- );
380
- return {
381
- ...actual,
382
- resolveTextChunkLimit: () => 2000,
383
- };
384
- });
385
-
386
- vi.mock("klaw/plugin-sdk/native-command-config-runtime", async () => {
387
- const actual = await vi.importActual<
388
- typeof import("klaw/plugin-sdk/native-command-config-runtime")
389
- >("klaw/plugin-sdk/native-command-config-runtime");
390
- return {
391
- ...actual,
392
- isNativeCommandsExplicitlyDisabled: isNativeCommandsExplicitlyDisabledMock,
393
- resolveNativeCommandsEnabled: resolveNativeCommandsEnabledMock,
394
- resolveNativeSkillsEnabled: resolveNativeSkillsEnabledMock,
395
- };
396
- });
397
-
398
- vi.mock("klaw/plugin-sdk/runtime-config-snapshot", async () => {
399
- const actual = await vi.importActual<typeof import("klaw/plugin-sdk/runtime-config-snapshot")>(
400
- "klaw/plugin-sdk/runtime-config-snapshot",
401
- );
402
- return {
403
- ...actual,
404
- getRuntimeConfig: () => ({}),
405
- };
406
- });
407
-
408
- vi.mock("klaw/plugin-sdk/runtime-env", async () => {
409
- const actual = await vi.importActual<typeof import("klaw/plugin-sdk/runtime-env")>(
410
- "klaw/plugin-sdk/runtime-env",
411
- );
412
- return {
413
- ...actual,
414
- danger: (value: string) => value,
415
- isVerbose: isVerboseMock,
416
- logVerbose: vi.fn(),
417
- shouldLogVerbose: shouldLogVerboseMock,
418
- warn: (value: string) => value,
419
- createSubsystemLogger: () => {
420
- const logger = {
421
- child: vi.fn(() => logger),
422
- info: vi.fn(),
423
- error: vi.fn(),
424
- warn: vi.fn(),
425
- debug: vi.fn(),
426
- };
427
- return logger;
428
- },
429
- createNonExitingRuntime: () => ({ log: vi.fn(), error: vi.fn(), exit: vi.fn() }),
430
- };
431
- });
432
-
433
- vi.mock("klaw/plugin-sdk/error-runtime", async () => {
434
- const actual = await vi.importActual<typeof import("klaw/plugin-sdk/error-runtime")>(
435
- "klaw/plugin-sdk/error-runtime",
436
- );
437
- return {
438
- ...actual,
439
- formatErrorMessage: (error: unknown) => String(error),
440
- };
441
- });
442
-
443
- vi.mock(buildDiscordSourceModuleId("accounts.js"), () => ({
444
- resolveDiscordAccount: resolveDiscordAccountMock,
445
- resolveDiscordAccountAllowFrom: () => undefined,
446
- resolveDiscordAccountDmPolicy: () => undefined,
447
- }));
448
-
449
- vi.mock(buildDiscordSourceModuleId("probe.js"), () => ({
450
- fetchDiscordApplicationId: async () => "app-1",
451
- parseApplicationIdFromToken: (token: string) => {
452
- const segment = token.trim().split(".")[0];
453
- if (!segment) {
454
- return undefined;
455
- }
456
- try {
457
- const decoded = Buffer.from(segment, "base64url").toString("utf8").trim();
458
- return /^\d+$/.test(decoded) ? decoded : undefined;
459
- } catch {
460
- return undefined;
461
- }
462
- },
463
- }));
464
-
465
- vi.mock(buildDiscordSourceModuleId("token.js"), () => ({
466
- normalizeDiscordToken: (value?: string) => value,
467
- }));
468
-
469
- vi.mock(buildDiscordSourceModuleId("voice/command.js"), () => ({
470
- createDiscordVoiceCommand: () => ({ name: "voice-command" }),
471
- }));
472
-
473
- vi.mock(buildDiscordSourceModuleId("monitor/agent-components.js"), () => ({
474
- createAgentComponentButton: () => ({ id: "btn" }),
475
- createAgentSelectMenu: () => ({ id: "menu" }),
476
- createDiscordComponentButton: () => ({ id: "btn2" }),
477
- createDiscordComponentChannelSelect: () => ({ id: "channel" }),
478
- createDiscordComponentMentionableSelect: () => ({ id: "mentionable" }),
479
- createDiscordComponentModal: () => ({ id: "modal" }),
480
- createDiscordComponentRoleSelect: () => ({ id: "role" }),
481
- createDiscordComponentStringSelect: () => ({ id: "string" }),
482
- createDiscordComponentUserSelect: () => ({ id: "user" }),
483
- }));
484
-
485
- vi.mock(buildDiscordSourceModuleId("monitor/auto-presence.js"), () => ({
486
- createDiscordAutoPresenceController: createDiscordAutoPresenceControllerMock,
487
- }));
488
-
489
- vi.mock(buildDiscordSourceModuleId("monitor/commands.js"), () => ({
490
- resolveDiscordSlashCommandConfig: () => ({ ephemeral: false }),
491
- }));
492
-
493
- vi.mock(buildDiscordSourceModuleId("monitor/exec-approvals.js"), () => ({
494
- createExecApprovalButton: createExecApprovalButtonMock,
495
- createDiscordExecApprovalButtonContext: createDiscordExecApprovalButtonContextMock,
496
- }));
497
-
498
- vi.mock(buildDiscordSourceModuleId("monitor/gateway-plugin.js"), () => ({
499
- createDiscordGatewayPlugin: () => ({ id: "gateway-plugin" }),
500
- waitForDiscordGatewayPluginRegistration: () => undefined,
501
- }));
502
-
503
- vi.mock(buildDiscordSourceModuleId("monitor/listeners.js"), () => ({
504
- DiscordInteractionListener: function DiscordInteractionListener() {},
505
- DiscordMessageListener: function DiscordMessageListener() {},
506
- DiscordPresenceListener: function DiscordPresenceListener() {},
507
- DiscordReactionListener: function DiscordReactionListener() {},
508
- DiscordReactionRemoveListener: function DiscordReactionRemoveListener() {},
509
- DiscordThreadUpdateListener: function DiscordThreadUpdateListener() {},
510
- registerDiscordListener: vi.fn(),
511
- }));
512
-
513
- vi.mock(buildDiscordSourceModuleId("monitor/message-handler.js"), () => ({
514
- createDiscordMessageHandler: createDiscordMessageHandlerMock,
515
- }));
516
-
517
- vi.mock(buildDiscordSourceModuleId("monitor/native-command.js"), () => ({
518
- createDiscordCommandArgFallbackButton: () => ({ id: "arg-fallback" }),
519
- createDiscordModelPickerFallbackButton: () => ({ id: "model-fallback-btn" }),
520
- createDiscordModelPickerFallbackSelect: () => ({ id: "model-fallback-select" }),
521
- createDiscordNativeCommand: createDiscordNativeCommandMock,
522
- }));
523
-
524
- vi.mock(buildDiscordSourceModuleId("monitor/presence.js"), () => ({
525
- resolveDiscordPresenceUpdate: () => undefined,
526
- }));
527
-
528
- vi.mock(buildDiscordSourceModuleId("monitor/provider.allowlist.js"), () => ({
529
- resolveDiscordAllowlistConfig: resolveDiscordAllowlistConfigMock,
530
- }));
531
-
532
- vi.mock(buildDiscordSourceModuleId("monitor/provider.lifecycle.js"), () => ({
533
- runDiscordGatewayLifecycle: monitorLifecycleMock,
534
- }));
535
-
536
- vi.mock(buildDiscordSourceModuleId("monitor/rest-fetch.js"), () => ({
537
- resolveDiscordRestFetch: () => async () => {
538
- throw new Error("offline");
539
- },
540
- }));
541
-
542
- vi.mock(buildDiscordSourceModuleId("monitor/thread-bindings.js"), () => ({
543
- createNoopThreadBindingManager: createNoopThreadBindingManagerMock,
544
- createThreadBindingManager: createThreadBindingManagerMock,
545
- reconcileAcpThreadBindingsOnStartup: reconcileAcpThreadBindingsOnStartupMock,
546
- resolveThreadBindingIdleTimeoutMs: vi.fn(() => 24 * 60 * 60 * 1000),
547
- }));