@animalabs/agent-framework 0.26.2 → 0.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (276) hide show
  1. package/README.md +56 -6
  2. package/dist/src/agent.d.ts +263 -22
  3. package/dist/src/agent.d.ts.map +1 -1
  4. package/dist/src/agent.js +531 -54
  5. package/dist/src/agent.js.map +1 -1
  6. package/dist/src/api/server.d.ts.map +1 -1
  7. package/dist/src/api/server.js +1 -2
  8. package/dist/src/api/server.js.map +1 -1
  9. package/dist/src/auto-continue.d.ts +33 -0
  10. package/dist/src/auto-continue.d.ts.map +1 -0
  11. package/dist/src/auto-continue.js +35 -0
  12. package/dist/src/auto-continue.js.map +1 -0
  13. package/dist/src/code-execution/isolate/scripts.d.ts +11 -0
  14. package/dist/src/code-execution/isolate/scripts.d.ts.map +1 -1
  15. package/dist/src/code-execution/isolate/scripts.js +5 -1
  16. package/dist/src/code-execution/isolate/scripts.js.map +1 -1
  17. package/dist/src/framework.d.ts +759 -129
  18. package/dist/src/framework.d.ts.map +1 -1
  19. package/dist/src/framework.js +3482 -928
  20. package/dist/src/framework.js.map +1 -1
  21. package/dist/src/gate/event-gate.d.ts +309 -46
  22. package/dist/src/gate/event-gate.d.ts.map +1 -1
  23. package/dist/src/gate/event-gate.js +2117 -395
  24. package/dist/src/gate/event-gate.js.map +1 -1
  25. package/dist/src/gate/index.d.ts +2 -2
  26. package/dist/src/gate/index.d.ts.map +1 -1
  27. package/dist/src/gate/index.js +1 -1
  28. package/dist/src/gate/index.js.map +1 -1
  29. package/dist/src/gate/recipe-reconcile.d.ts +103 -0
  30. package/dist/src/gate/recipe-reconcile.d.ts.map +1 -0
  31. package/dist/src/gate/recipe-reconcile.js +325 -0
  32. package/dist/src/gate/recipe-reconcile.js.map +1 -0
  33. package/dist/src/gate/types.d.ts +68 -8
  34. package/dist/src/gate/types.d.ts.map +1 -1
  35. package/dist/src/index.d.ts +6 -4
  36. package/dist/src/index.d.ts.map +1 -1
  37. package/dist/src/index.js +5 -2
  38. package/dist/src/index.js.map +1 -1
  39. package/dist/src/mcpl/channel-registry.d.ts +433 -113
  40. package/dist/src/mcpl/channel-registry.d.ts.map +1 -1
  41. package/dist/src/mcpl/channel-registry.js +1152 -434
  42. package/dist/src/mcpl/channel-registry.js.map +1 -1
  43. package/dist/src/mcpl/conversation-router.d.ts +16 -8
  44. package/dist/src/mcpl/conversation-router.d.ts.map +1 -1
  45. package/dist/src/mcpl/conversation-router.js +29 -15
  46. package/dist/src/mcpl/conversation-router.js.map +1 -1
  47. package/dist/src/mcpl/convert-block.d.ts.map +1 -1
  48. package/dist/src/mcpl/convert-block.js +14 -2
  49. package/dist/src/mcpl/convert-block.js.map +1 -1
  50. package/dist/src/mcpl/hook-orchestrator.d.ts +7 -1
  51. package/dist/src/mcpl/hook-orchestrator.d.ts.map +1 -1
  52. package/dist/src/mcpl/hook-orchestrator.js +32 -7
  53. package/dist/src/mcpl/hook-orchestrator.js.map +1 -1
  54. package/dist/src/mcpl/index.d.ts +5 -1
  55. package/dist/src/mcpl/index.d.ts.map +1 -1
  56. package/dist/src/mcpl/index.js +4 -0
  57. package/dist/src/mcpl/index.js.map +1 -1
  58. package/dist/src/mcpl/inference-router.d.ts +14 -2
  59. package/dist/src/mcpl/inference-router.d.ts.map +1 -1
  60. package/dist/src/mcpl/inference-router.js +73 -28
  61. package/dist/src/mcpl/inference-router.js.map +1 -1
  62. package/dist/src/mcpl/prose-grammar.d.ts +4 -0
  63. package/dist/src/mcpl/prose-grammar.d.ts.map +1 -1
  64. package/dist/src/mcpl/prose-grammar.js +6 -0
  65. package/dist/src/mcpl/prose-grammar.js.map +1 -1
  66. package/dist/src/mcpl/protocol-family.d.ts.map +1 -1
  67. package/dist/src/mcpl/protocol-family.js +3 -0
  68. package/dist/src/mcpl/protocol-family.js.map +1 -1
  69. package/dist/src/mcpl/push-coalescer.d.ts +20 -2
  70. package/dist/src/mcpl/push-coalescer.d.ts.map +1 -1
  71. package/dist/src/mcpl/push-coalescer.js +33 -11
  72. package/dist/src/mcpl/push-coalescer.js.map +1 -1
  73. package/dist/src/mcpl/reference-fetcher.d.ts +63 -42
  74. package/dist/src/mcpl/reference-fetcher.d.ts.map +1 -1
  75. package/dist/src/mcpl/reference-fetcher.js +177 -145
  76. package/dist/src/mcpl/reference-fetcher.js.map +1 -1
  77. package/dist/src/mcpl/references.d.ts +380 -46
  78. package/dist/src/mcpl/references.d.ts.map +1 -1
  79. package/dist/src/mcpl/references.js +736 -77
  80. package/dist/src/mcpl/references.js.map +1 -1
  81. package/dist/src/mcpl/server-connection.d.ts +82 -3
  82. package/dist/src/mcpl/server-connection.d.ts.map +1 -1
  83. package/dist/src/mcpl/server-connection.js +132 -7
  84. package/dist/src/mcpl/server-connection.js.map +1 -1
  85. package/dist/src/mcpl/tool-lifecycle.d.ts +11 -0
  86. package/dist/src/mcpl/tool-lifecycle.d.ts.map +1 -1
  87. package/dist/src/mcpl/tool-lifecycle.js +21 -0
  88. package/dist/src/mcpl/tool-lifecycle.js.map +1 -1
  89. package/dist/src/mcpl/tool-presence.d.ts +259 -0
  90. package/dist/src/mcpl/tool-presence.d.ts.map +1 -0
  91. package/dist/src/mcpl/tool-presence.js +628 -0
  92. package/dist/src/mcpl/tool-presence.js.map +1 -0
  93. package/dist/src/mcpl/tool-result-normalize.d.ts +9 -3
  94. package/dist/src/mcpl/tool-result-normalize.d.ts.map +1 -1
  95. package/dist/src/mcpl/tool-result-normalize.js +14 -6
  96. package/dist/src/mcpl/tool-result-normalize.js.map +1 -1
  97. package/dist/src/mcpl/tool-signature.d.ts +39 -0
  98. package/dist/src/mcpl/tool-signature.d.ts.map +1 -0
  99. package/dist/src/mcpl/tool-signature.js +292 -0
  100. package/dist/src/mcpl/tool-signature.js.map +1 -0
  101. package/dist/src/mcpl/toolset-host.d.ts +200 -0
  102. package/dist/src/mcpl/toolset-host.d.ts.map +1 -0
  103. package/dist/src/mcpl/toolset-host.js +621 -0
  104. package/dist/src/mcpl/toolset-host.js.map +1 -0
  105. package/dist/src/mcpl/toolsets-module.d.ts +80 -0
  106. package/dist/src/mcpl/toolsets-module.d.ts.map +1 -0
  107. package/dist/src/mcpl/toolsets-module.js +431 -0
  108. package/dist/src/mcpl/toolsets-module.js.map +1 -0
  109. package/dist/src/mcpl/transport.d.ts +2 -2
  110. package/dist/src/mcpl/transport.d.ts.map +1 -1
  111. package/dist/src/mcpl/transport.js +3 -2
  112. package/dist/src/mcpl/transport.js.map +1 -1
  113. package/dist/src/mcpl/types.d.ts +21 -1
  114. package/dist/src/mcpl/types.d.ts.map +1 -1
  115. package/dist/src/mcpl/types.js.map +1 -1
  116. package/dist/src/mcpl/visible-content.d.ts +7 -9
  117. package/dist/src/mcpl/visible-content.d.ts.map +1 -1
  118. package/dist/src/mcpl/visible-content.js +21 -9
  119. package/dist/src/mcpl/visible-content.js.map +1 -1
  120. package/dist/src/module-registry.d.ts +23 -8
  121. package/dist/src/module-registry.d.ts.map +1 -1
  122. package/dist/src/module-registry.js +68 -15
  123. package/dist/src/module-registry.js.map +1 -1
  124. package/dist/src/modules/discord/index.js +1 -1
  125. package/dist/src/modules/discord/index.js.map +1 -1
  126. package/dist/src/modules/history/index.d.ts +2 -1
  127. package/dist/src/modules/history/index.d.ts.map +1 -1
  128. package/dist/src/modules/history/index.js +51 -17
  129. package/dist/src/modules/history/index.js.map +1 -1
  130. package/dist/src/modules/history/semantic.d.ts +108 -6
  131. package/dist/src/modules/history/semantic.d.ts.map +1 -1
  132. package/dist/src/modules/history/semantic.js +273 -57
  133. package/dist/src/modules/history/semantic.js.map +1 -1
  134. package/dist/src/modules/workspace/direct-write.d.ts +181 -0
  135. package/dist/src/modules/workspace/direct-write.d.ts.map +1 -0
  136. package/dist/src/modules/workspace/direct-write.js +384 -0
  137. package/dist/src/modules/workspace/direct-write.js.map +1 -0
  138. package/dist/src/modules/workspace/edit-text.d.ts +26 -12
  139. package/dist/src/modules/workspace/edit-text.d.ts.map +1 -1
  140. package/dist/src/modules/workspace/edit-text.js +58 -28
  141. package/dist/src/modules/workspace/edit-text.js.map +1 -1
  142. package/dist/src/modules/workspace/effects.d.ts +10 -0
  143. package/dist/src/modules/workspace/effects.d.ts.map +1 -1
  144. package/dist/src/modules/workspace/effects.js +1 -1
  145. package/dist/src/modules/workspace/effects.js.map +1 -1
  146. package/dist/src/modules/workspace/index.d.ts +246 -27
  147. package/dist/src/modules/workspace/index.d.ts.map +1 -1
  148. package/dist/src/modules/workspace/index.js +1216 -236
  149. package/dist/src/modules/workspace/index.js.map +1 -1
  150. package/dist/src/modules/workspace/read-page.d.ts +41 -0
  151. package/dist/src/modules/workspace/read-page.d.ts.map +1 -0
  152. package/dist/src/modules/workspace/read-page.js +213 -0
  153. package/dist/src/modules/workspace/read-page.js.map +1 -0
  154. package/dist/src/modules/workspace/result-text.d.ts +67 -0
  155. package/dist/src/modules/workspace/result-text.d.ts.map +1 -0
  156. package/dist/src/modules/workspace/result-text.js +94 -0
  157. package/dist/src/modules/workspace/result-text.js.map +1 -0
  158. package/dist/src/modules/workspace/text.d.ts +29 -12
  159. package/dist/src/modules/workspace/text.d.ts.map +1 -1
  160. package/dist/src/modules/workspace/text.js +35 -33
  161. package/dist/src/modules/workspace/text.js.map +1 -1
  162. package/dist/src/modules/workspace/types.d.ts +41 -17
  163. package/dist/src/modules/workspace/types.d.ts.map +1 -1
  164. package/dist/src/modules/workspace/types.js.map +1 -1
  165. package/dist/src/sent-rows.d.ts +59 -0
  166. package/dist/src/sent-rows.d.ts.map +1 -0
  167. package/dist/src/sent-rows.js +145 -0
  168. package/dist/src/sent-rows.js.map +1 -0
  169. package/dist/src/silent-heartbeat.d.ts +17 -10
  170. package/dist/src/silent-heartbeat.d.ts.map +1 -1
  171. package/dist/src/silent-heartbeat.js.map +1 -1
  172. package/dist/src/stable-hash.d.ts +3 -0
  173. package/dist/src/stable-hash.d.ts.map +1 -0
  174. package/dist/src/stable-hash.js +15 -0
  175. package/dist/src/stable-hash.js.map +1 -0
  176. package/dist/src/stored-injections.d.ts +99 -0
  177. package/dist/src/stored-injections.d.ts.map +1 -0
  178. package/dist/src/stored-injections.js +106 -0
  179. package/dist/src/stored-injections.js.map +1 -0
  180. package/dist/src/text-as-stored.d.ts +4 -3
  181. package/dist/src/text-as-stored.d.ts.map +1 -1
  182. package/dist/src/text-as-stored.js +4 -3
  183. package/dist/src/text-as-stored.js.map +1 -1
  184. package/dist/src/thinking-drops.d.ts +81 -0
  185. package/dist/src/thinking-drops.d.ts.map +1 -0
  186. package/dist/src/thinking-drops.js +103 -0
  187. package/dist/src/thinking-drops.js.map +1 -0
  188. package/dist/src/tool-image-ledger.d.ts +9 -8
  189. package/dist/src/tool-image-ledger.d.ts.map +1 -1
  190. package/dist/src/tool-image-ledger.js +9 -8
  191. package/dist/src/tool-image-ledger.js.map +1 -1
  192. package/dist/src/tool-presentation.d.ts.map +1 -1
  193. package/dist/src/tool-presentation.js +3 -1
  194. package/dist/src/tool-presentation.js.map +1 -1
  195. package/dist/src/tool-result-guard.d.ts +4 -2
  196. package/dist/src/tool-result-guard.d.ts.map +1 -1
  197. package/dist/src/tool-result-guard.js +21 -6
  198. package/dist/src/tool-result-guard.js.map +1 -1
  199. package/dist/src/tool-result-history.d.ts +176 -24
  200. package/dist/src/tool-result-history.d.ts.map +1 -1
  201. package/dist/src/tool-result-history.js +411 -91
  202. package/dist/src/tool-result-history.js.map +1 -1
  203. package/dist/src/tune-out/coordinator.d.ts +17 -9
  204. package/dist/src/tune-out/coordinator.d.ts.map +1 -1
  205. package/dist/src/tune-out/coordinator.js +84 -37
  206. package/dist/src/tune-out/coordinator.js.map +1 -1
  207. package/dist/src/types/agent.d.ts +186 -7
  208. package/dist/src/types/agent.d.ts.map +1 -1
  209. package/dist/src/types/events.d.ts +15 -1
  210. package/dist/src/types/events.d.ts.map +1 -1
  211. package/dist/src/types/framework.d.ts +24 -3
  212. package/dist/src/types/framework.d.ts.map +1 -1
  213. package/dist/src/types/module.d.ts +90 -7
  214. package/dist/src/types/module.d.ts.map +1 -1
  215. package/dist/src/types/trace.d.ts +57 -2
  216. package/dist/src/types/trace.d.ts.map +1 -1
  217. package/package.json +4 -3
  218. package/src/agent.ts +593 -60
  219. package/src/api/server.ts +1 -2
  220. package/src/auto-continue.ts +42 -0
  221. package/src/code-execution/isolate/scripts.ts +11 -3
  222. package/src/framework.ts +3601 -967
  223. package/src/gate/event-gate.ts +2315 -389
  224. package/src/gate/index.ts +2 -1
  225. package/src/gate/recipe-reconcile.ts +355 -0
  226. package/src/gate/types.ts +70 -8
  227. package/src/index.ts +7 -4
  228. package/src/mcpl/channel-registry.ts +1220 -467
  229. package/src/mcpl/conversation-router.ts +34 -16
  230. package/src/mcpl/convert-block.ts +14 -1
  231. package/src/mcpl/hook-orchestrator.ts +33 -6
  232. package/src/mcpl/index.ts +6 -1
  233. package/src/mcpl/inference-router.ts +79 -34
  234. package/src/mcpl/prose-grammar.ts +7 -0
  235. package/src/mcpl/protocol-family.ts +2 -0
  236. package/src/mcpl/push-coalescer.ts +51 -13
  237. package/src/mcpl/reference-fetcher.ts +201 -162
  238. package/src/mcpl/references.ts +851 -77
  239. package/src/mcpl/server-connection.ts +145 -7
  240. package/src/mcpl/tool-lifecycle.ts +21 -0
  241. package/src/mcpl/tool-presence.ts +650 -0
  242. package/src/mcpl/tool-result-normalize.ts +18 -6
  243. package/src/mcpl/tool-signature.ts +285 -0
  244. package/src/mcpl/toolset-host.ts +637 -0
  245. package/src/mcpl/toolsets-module.ts +451 -0
  246. package/src/mcpl/transport.ts +3 -2
  247. package/src/mcpl/types.ts +22 -1
  248. package/src/mcpl/visible-content.ts +22 -9
  249. package/src/module-registry.ts +77 -24
  250. package/src/modules/discord/index.ts +1 -1
  251. package/src/modules/history/index.ts +48 -18
  252. package/src/modules/history/semantic.ts +308 -54
  253. package/src/modules/workspace/direct-write.ts +425 -0
  254. package/src/modules/workspace/edit-text.ts +82 -35
  255. package/src/modules/workspace/effects.ts +1 -1
  256. package/src/modules/workspace/index.ts +1274 -241
  257. package/src/modules/workspace/read-page.ts +222 -0
  258. package/src/modules/workspace/result-text.ts +119 -0
  259. package/src/modules/workspace/text.ts +58 -32
  260. package/src/modules/workspace/types.ts +41 -17
  261. package/src/sent-rows.ts +162 -0
  262. package/src/silent-heartbeat.ts +17 -10
  263. package/src/stable-hash.ts +14 -0
  264. package/src/stored-injections.ts +131 -0
  265. package/src/text-as-stored.ts +4 -3
  266. package/src/thinking-drops.ts +141 -0
  267. package/src/tool-image-ledger.ts +9 -8
  268. package/src/tool-presentation.ts +3 -1
  269. package/src/tool-result-guard.ts +19 -6
  270. package/src/tool-result-history.ts +471 -90
  271. package/src/tune-out/coordinator.ts +80 -37
  272. package/src/types/agent.ts +189 -7
  273. package/src/types/events.ts +15 -1
  274. package/src/types/framework.ts +21 -3
  275. package/src/types/module.ts +86 -7
  276. package/src/types/trace.ts +58 -2
@@ -11,8 +11,8 @@
11
11
  * inference tokens, not whether the agent should know about the event.
12
12
  */
13
13
  import type { ToolDefinition } from '../types/events.js';
14
- import type { GateConfig, GatePolicy, GateDecision, GateEventInfo, GateStatus, ShadowWarning, GateProbeRow } from './types.js';
15
- export type { GateConfig, GateOptions, GateDecision, GateEventInfo } from './types.js';
14
+ import type { GateConfig, GatePolicy, GateDecision, GateEntryRef, WakeLine, GateEventInfo, GateStatus, ShadowWarning, GateProbeRow } from './types.js';
15
+ export type { GateConfig, GateOptions, GateDecision, GateEntryRef, GateEventInfo, WakeLine } from './types.js';
16
16
  interface PendingEvent {
17
17
  policyName: string;
18
18
  content: string;
@@ -44,11 +44,23 @@ interface PendingEvent {
44
44
  * whose `channelId` is the adapter's raw id (a bare Discord snowflake for a
45
45
  * DM) — unroutable. Absent when the host could not resolve one. */
46
46
  routeChannelId?: string;
47
+ /** The event's own identity among what the framework stored at arrival:
48
+ * a channel message's id, a push event's event id (isNewestEntry). */
49
+ messageId?: string;
50
+ eventId?: string;
51
+ }
52
+ /** Where the host put a message the gate wrote: the agent whose window it
53
+ * went to and, when it was held for that agent's live turn, the id it waits
54
+ * under in the host's queue. */
55
+ export interface WritePlacement {
56
+ agent?: string;
57
+ deferredId?: string;
47
58
  }
48
59
  /**
49
60
  * Where a gate-requested wake came from, handed to the framework alongside the
50
61
  * reason so the turn's InferenceRequest can carry it (host telemetry stamps
51
- * "who woke the agent" from it). Ids only, never content or display names.
62
+ * "who woke the agent" from it). Ids only, never content or display names,
63
+ * except `line`, which is the batch's own text for the agent's window.
52
64
  */
53
65
  export interface WakeProvenance {
54
66
  /** Composite channel id of the chosen event — telemetry only, never a
@@ -70,9 +82,20 @@ export interface WakeProvenance {
70
82
  * (2026-09-30: a DM reply published into a guild channel). Ambient-only
71
83
  * batches still set nothing and keep the legacy fallback. */
72
84
  routeChannelId?: string;
85
+ /** The server of `routeChannelId`'s channel, beside it whenever the chosen
86
+ * event named its server: channel ids are unique only within one
87
+ * server's connection (MCPL §14.2). */
88
+ routeServerId?: string;
73
89
  /** Timestamp (ms) of the chosen event, so a consumer coalescing several
74
90
  * requests can order by event recency, not by flush order. */
75
91
  at?: number;
92
+ /** The batch's `[Gate: …]` line, when the gate handed it to the wake rather
93
+ * than wrote it: a WakeLine, the parts its text is rendered from when it's
94
+ * written (wakeLineText), decided by a fresh start of the wake's turn as
95
+ * WakeLine says. Unlike the fields above, this is content for the agent's
96
+ * window, not telemetry: it carries the channel's name as the agent is
97
+ * shown it. */
98
+ line?: WakeLine;
76
99
  }
77
100
  interface TraceEventLike {
78
101
  type: string;
@@ -85,6 +108,24 @@ interface TraceEventLike {
85
108
  * addressed all come from that one event, so they can never disagree.
86
109
  */
87
110
  export declare function wakeProvenance(events: PendingEvent[]): WakeProvenance | undefined;
111
+ /** A handed batched-wake line's text (WakeLine), as it reads when written at
112
+ * `now`: the gate's words, its message's age counted to then. */
113
+ export declare function wakeLineText(line: WakeLine, now: number): string;
114
+ /**
115
+ * A value as a message quotes it: its JSON, cut short when long, never inside a
116
+ * surrogate pair, since the message reaches the agent's context.
117
+ */
118
+ export declare function shownValue(value: unknown): string;
119
+ /**
120
+ * A tool's input, its parameters given by its schema's `properties`, read as a
121
+ * rule's fields are: a null or "" parameter is left out (a note names each "",
122
+ * with what leaving it out does where `means` says), a slip of a parameter
123
+ * (fieldNames) is refused, naming the one meant, and so is a field of one of
124
+ * its object parameters given on its own, naming that parameter; any other
125
+ * name is noted, or named in that refusal. Returns the input without what was
126
+ * left out.
127
+ */
128
+ export declare function checkToolInput(tool: string, input: Record<string, unknown>, properties: Readonly<Record<string, unknown>>, notes: string[], means?: Readonly<Record<string, string>>): Record<string, unknown>;
88
129
  /**
89
130
  * Find rules made unreachable by earlier, broader rules (first match wins).
90
131
  * The 2026-08-08 Mythos incident is the canonical catch: a prepended
@@ -103,11 +144,37 @@ export declare class EventGate {
103
144
  /** Optional agent-authored programmable gate (gate.js). */
104
145
  private gateScript;
105
146
  private compiledPolicies;
106
- private configMtime;
147
+ /** The text of gate.json whose rules are in force, from a load or a write
148
+ * (or the start's reconcile, whose write failed); or, while what's in force
149
+ * is what a start ran beside gate.json or in its place (configSource not
150
+ * "file"), gate.json's text as that start found it.
151
+ * A reload parses the file again only when its text differs; a file that
152
+ * holds it again after failing to load (a chmod that makes it readable,
153
+ * an edit undone) needs nothing applied, only its error cleared. */
154
+ private configText;
155
+ /** The notes on fields the text in force has that the gate doesn't read, if any. */
156
+ private configNote;
107
157
  private lastReloadCheck;
108
158
  private configSource;
109
159
  private lastReloadTimestamp;
110
- private configErrors;
160
+ /** The current problem with each file the gate reads, one each, replaced
161
+ * whenever that file is read again (gate_status `errors`). */
162
+ private configError;
163
+ /** Whether gate.json's error is one that keeps what it holds out of force
164
+ * (configUnreadable), so gate_status says what's in force instead. */
165
+ private configUnused;
166
+ private privilegedError;
167
+ /** What the start did with the host's starting rules that it couldn't use
168
+ * or add (describeStart), kept apart from gate.json's own error, until the
169
+ * next start. */
170
+ private startNotice;
171
+ /** The rules in force that the start couldn't save (describeUnsaved),
172
+ * until gate.json is written or a reload applies its text. */
173
+ private startUnsaved;
174
+ /** What the start's merge of the recipe couldn't do (seedOrReconcile), said with startNotice until the next start. */
175
+ private startMergeNote;
176
+ /** Whether the start's unsaved rules (startUnsaved) are a merge's that did more than add rules. */
177
+ private startUnsavedMerged;
111
178
  private debounceTimers;
112
179
  private rateLimitBuckets;
113
180
  private passiveSampleCounters;
@@ -135,13 +202,17 @@ export declare class EventGate {
135
202
  private selfWakeTimers;
136
203
  private privilegedUsersPath;
137
204
  private privilegedUserIds;
138
- private privilegedMtime;
205
+ /** The privileged-users file's text as last read, whether or not it loaded;
206
+ * undefined when it was missing or its last read failed. */
207
+ private privilegedText;
139
208
  private lastPrivilegedCheck;
140
209
  private emitTrace;
141
210
  private addMessageFn;
142
211
  private requestInferenceFn;
143
212
  private getAgentNamesFn;
144
213
  private resolveRouteChannelFn;
214
+ private channelShownFn?;
215
+ private isNewestEntryFn?;
145
216
  /** Clock injection — keeps the new rate_limit / passive_sample paths
146
217
  * testable without monkey-patching Date.now globally. */
147
218
  private now;
@@ -153,40 +224,179 @@ export declare class EventGate {
153
224
  addMessage: (participant: string, content: Array<{
154
225
  type: 'text';
155
226
  text: string;
156
- }>, metadata?: Record<string, unknown>, forAgent?: string) => unknown;
157
- requestInference: (agentName: string, reason: string, source: string, provenance?: WakeProvenance) => void;
227
+ }>, metadata?: Record<string, unknown>, forAgent?: string, placement?: WritePlacement) => unknown;
228
+ /** `after`: the placement of the message the wake is for, when it has
229
+ * one, so the host can drop the wake once a request that carried the
230
+ * message is answered. */
231
+ requestInference: (agentName: string, reason: string, source: string, provenance?: WakeProvenance, after?: WritePlacement) => void;
158
232
  getAgentNames: () => string[];
159
233
  /** Optional clock — defaults to Date.now. Tests inject for deterministic time. */
160
234
  now?: () => number;
161
235
  /** Per-event timeout (ms) for the optional gate.js script. Default 50. */
162
236
  scriptTimeoutMs?: number;
163
237
  /** Map an event to the registered channel it arrived on (the host knows
164
- * how push-event origins compose into channel ids). Default: a
165
- * channel-incoming event's own channel id; nothing for push events. */
238
+ * how push-event origins compose into channel ids). The gate routes a
239
+ * batched wake by it, tests a policy's `match.channel` against it when
240
+ * the event's own id misses, and keys `keyBy: "channelId"` counts on it.
241
+ * A resolver that throws counts as returning nothing. Default: a
242
+ * channel-incoming event's own channel id; nothing for push events, so
243
+ * a push then matches and counts by its own id alone. */
166
244
  resolveRouteChannel?: (info: GateEventInfo) => string | undefined;
245
+ /** How the agent is shown a channel, its server's and its id (the
246
+ * framework's ChannelRegistry.nameShown): a batched wake's summary names
247
+ * each channel so, since two servers' channels can share an id. Default:
248
+ * the id. */
249
+ channelShown?: (channel: {
250
+ serverId: string;
251
+ channelId: string;
252
+ }) => string;
253
+ /** Whether an MCPL event's own context entry is still the newest entry in
254
+ * the window a batched wake's line would be written to, with nothing
255
+ * waiting to be written there. A batched wake for that one message
256
+ * doesn't write its line when it fires: it hands the line to the wake
257
+ * (WakeProvenance.line), for a fresh start of the wake's turn to decide
258
+ * (WakeLine). Absent: every batched wake writes its line, as before. */
259
+ isNewestEntry?: (entry: GateEntryRef) => boolean;
167
260
  });
168
- private loadConfig;
261
+ /**
262
+ * Write the starting rules to gate.json, as given, when it's absent, and
263
+ * record them as the recipe last applied (lastRecipePath); or, when it
264
+ * loads, merge them into its own rule list against that record, three ways
265
+ * and as written (reconcileWithRecipe), and record them. A rule as the last
266
+ * recipe left it follows the new one, a rule edited since keeps its edit, a
267
+ * rule no recipe declared stays, and `default` follows the same rule. A
268
+ * rule gate.json holds holds its name, whether the gate reads it or leaves
269
+ * it out. gate.json is written before the record, so a stop between the two
270
+ * leaves a state the next start reads rightly: the other order would make
271
+ * the old recipe's rules read as edits. Nothing is recorded where gate.json
272
+ * isn't written as the merge asks, or a name is given twice. Where
273
+ * gate.json has no rules of its own and, under its default, one of them that
274
+ * could wake the agent can't be put in force (left out, with no name, or kept
275
+ * out by a rule of gate.json's of its name that the gate leaves out), or
276
+ * they're refused whole and that default holds events back, gate.json isn't
277
+ * used at this start, which runs as one without it does. Otherwise, where
278
+ * gate.json has no rule list to add them to, it writes nothing, and the gate
279
+ * runs beside it those of them it reads. Says what it did when that wasn't
280
+ * simply done or not needed.
281
+ */
282
+ private seedOrReconcile;
283
+ /**
284
+ * Record the starting config, as given, as the recipe last applied, after
285
+ * gate.json holds what the start merged (`holds` says what that is). A
286
+ * write that fails is said with the start: the next start merges against
287
+ * the record as the write left it.
288
+ */
289
+ private recordRecipe;
290
+ /**
291
+ * gate.json as it is on disk: absent; loaded; refused, when it's JSON that
292
+ * readConfig doesn't use; or unreadable, when it can't be read or isn't
293
+ * JSON (`notJson`, where it could be read). A loaded file comes with its note,
294
+ * which names what it holds that does nothing or is read past a problem, and
295
+ * a loaded or refused one with its own fields and rule list as written, for a
296
+ * write to edit (Listed).
297
+ * Reading applies nothing: whoever applies a loaded config records its text
298
+ * as `configText`. With `unlessUnchanged`, a file whose text is
299
+ * `configText` comes back `unchanged`, unparsed, since the rules in force
300
+ * came from it, or are what a start ran beside it or in its place.
301
+ */
302
+ private readConfigFile;
303
+ /**
304
+ * gate.json's current error, replacing the last one, and traced and logged
305
+ * when it's new, so an edit that doesn't load is in the log once.
306
+ */
307
+ private configUnreadable;
308
+ /**
309
+ * gate.json's error as gate_status shows it: one that keeps what the file
310
+ * holds out of force says what's in force instead, so it reads on its own.
311
+ */
312
+ private configErrorShown;
313
+ /** What the gate runs, by where its rules came from, for a text that says so: "the host's starting rules". */
314
+ private rulesRun;
315
+ /**
316
+ * What a policy change edits: gate.json's own fields and rule list as
317
+ * written, each rule as written, so a write keeps every rule it doesn't
318
+ * change, problems and unknown fields included, whether gate.json loads or
319
+ * is JSON the gate doesn't use. Over one it doesn't use, writeConfig writes
320
+ * only what loads, so a change is refused, naming what keeps the file out
321
+ * and what would bring it into force (`remedy`), unless it mends that, and
322
+ * the file stays as its operator wrote it. When
323
+ * gate.json is absent, the same of the text whose rules are in force, so a
324
+ * rule it leaves out keeps its name; or the rules in force, where no text
325
+ * is, it has no rule list, or what's in force is what a start ran beside or
326
+ * in place of it. A change is refused (`refused`) for a gate.json that can't
327
+ * be read or isn't JSON (unusableRefusal), whose rules can't be edited
328
+ * without writing over what it holds, and for one with no rule list a write
329
+ * could edit without that (a list, a "policies" that isn't one and holds
330
+ * something, or JSON that isn't an object): so a removal or an anchor is
331
+ * refused too, rather than looked for in rules that may not be what the
332
+ * file holds. It's refused as well for a gate.json that holds the text a
333
+ * start didn't use (start-without), since what the change wrote would put
334
+ * its rules in force in place of what the start runs.
335
+ */
336
+ private rulesForChange;
169
337
  private compilePolicies;
338
+ /**
339
+ * Clear the state of each rule `was` held in force that `next` leaves out or
340
+ * gives another behavior: a reload calls it before it puts `next` in force,
341
+ * a write after. Without this, a rule that came back, or whose tokens 100
342
+ * became 5 (or keyBy switched, or every 10 became 3), would run on the
343
+ * buckets and counters of the rule it was. A rule left out loses its stats
344
+ * (matchCount, lastMatchTimestamp) too; a rule kept keeps them, which are
345
+ * history, not live state, and one kept with the same behavior keeps all its
346
+ * state, its denial and fire counts included. Rules that share a name share
347
+ * its state, so a name keeps it only where its rules, in order, keep their
348
+ * behaviors. Each pending debounce batch is sent last, as its timer would
349
+ * have sent it, once every rule's state is cleared; one whose delivery throws
350
+ * is named in the log and dropped (fireDebounce), and the rest are still
351
+ * sent, so the write or reload that cleared it has done what it was for, its
352
+ * caller hears that it did, and no state is left behind.
353
+ */
354
+ private clearStateFor;
170
355
  private reloadIfChanged;
171
356
  /**
172
357
  * Add or replace (upsert) a single policy in gate.json and apply it live.
173
358
  *
174
- * The raw policy is validated with the SAME `validatePolicy` used when loading
175
- * gate.json — an invalid shape throws (nothing is written) and the caller
176
- * surfaces it as a tool error. On success the policy is persisted to gate.json
177
- * (so it survives restart and is visible to `workspace--edit _config/gate.json`)
359
+ * The raw policy is read with the SAME `readRule` used when loading gate.json,
360
+ * and since its caller is there to fix it, any problem it has throws, naming
361
+ * every one (nothing is written), and the caller surfaces it as a tool error,
362
+ * where a load reads past it (readConfig). On success the policy is persisted
363
+ * to gate.json (so it survives restart and is visible to `workspace--edit _config/gate.json`)
178
364
  * and the in-memory config is swapped in immediately, so the rule takes effect
179
- * without waiting for the throttled mtime reload.
365
+ * without waiting for the throttled reload.
180
366
  *
181
367
  * The freshest on-disk config is re-read first, so a concurrent operator edit
182
- * isn't clobbered. A policy with the same `name` is replaced IN PLACE when no
183
- * `position` is given (order preserved); WITH a `position` it is moved there
184
- * — so re-issuing a rule is also how you reposition it. New policies append
185
- * by default; `'prepend'` puts one at the very front (ahead of EVERYTHING,
186
- * including addressed-message wake rules — see the shadow lint), and the
187
- * anchored forms `{before: name}` / `{after: name}` insert relative to an
188
- * existing rule, which is almost always the safer way to order a sampler
189
- * or debounce against a specific catch-all.
368
+ * isn't clobbered, and the change edits gate.json's own rule list by name:
369
+ * every rule it doesn't change is written back as it was written, problems and
370
+ * fields the gate doesn't read included, and so is everything else gate.json
371
+ * holds, such as a list of rules parked under another name, beside which a
372
+ * change adds a "policies" list where there's none (rulesForChange). Over a
373
+ * gate.json the gate doesn't use, only a change after which it loads is
374
+ * written, such as one replacing or removing the rule that keeps it out, and
375
+ * that leaves it rules in force, since it holds events back by default; any
376
+ * other is refused, naming what does, and the file stays as written. When
377
+ * gate.json is absent, the change edits the text whose rules are in force the
378
+ * same way, or the rules in force where there's none. A gate.json that can't
379
+ * be read or isn't JSON is refused (unusableRefusal), and stays as it is. A policy with the
380
+ * same `name` is replaced IN PLACE when no `position` is given (order
381
+ * preserved); WITH a `position` it is moved there — so re-issuing a rule is
382
+ * also how you reposition it. New policies append by default; `'prepend'` puts
383
+ * one at the very front (ahead of EVERYTHING, including addressed-message wake
384
+ * rules — see the shadow lint), and the anchored forms `{before: name}` /
385
+ * `{after: name}` insert relative to an existing rule, which is almost always
386
+ * the safer way to order a sampler or debounce against a specific catch-all.
387
+ * Fields of the policy the gate reads nowhere, and that aren't a slip of one
388
+ * it does, are left out of what's written, and named to `onIgnoredFields` once
389
+ * the change is written and traced. A throw from the callback is logged,
390
+ * and the change stands (afterChange). A field it reads at another level is a
391
+ * problem, like a slip.
392
+ *
393
+ * Throws, writing nothing, for an invalid policy, a placement it can't make,
394
+ * a gate.json that can't be read or isn't JSON, one with no rule list it
395
+ * could edit without writing over what it holds, one a start didn't use,
396
+ * which runs as one without it does, while it's unchanged, or one the gate
397
+ * doesn't use that the change doesn't mend or would leave with no rules in
398
+ * force; and throws when the write fails, which may leave gate.json
399
+ * part-written.
190
400
  */
191
401
  addPolicy(rawPolicy: unknown, options?: {
192
402
  position?: 'append' | 'prepend' | {
@@ -194,31 +404,63 @@ export declare class EventGate {
194
404
  } | {
195
405
  after: string;
196
406
  };
407
+ onIgnoredFields?: (notes: string[]) => void;
197
408
  }): GatePolicy;
198
409
  /**
199
410
  * Remove a policy by name from gate.json and clear its live state. Any pending
200
- * debounce batch is delivered first (matching reloadIfChanged's removal path,
201
- * so buffered events aren't silently dropped). Returns false if no policy of
202
- * that name exists (nothing written). Freshest on-disk config is re-read first
203
- * (see addPolicy).
411
+ * debounce batch is sent once the removal is written and in force, as its
412
+ * timer would have sent it, so buffered events aren't silently dropped
413
+ * (clearStateFor). Freshest on-disk config is re-read first, and every other
414
+ * rule is written back as it was written (see addPolicy). A name that isn't
415
+ * a non-empty string names no rule, so it returns false, writing nothing,
416
+ * whatever gate.json holds. Otherwise it throws, writing nothing, for a
417
+ * gate.json that can't be read or isn't JSON, one with no rule list it could
418
+ * edit, or one a start didn't use, as addPolicy does, and returns false,
419
+ * writing nothing, if no policy of that name exists, gate.json's own rules
420
+ * included, so one the gate leaves out can be removed by name too. For a name
421
+ * it holds, it throws, writing nothing, for a gate.json the gate doesn't use
422
+ * that the removal doesn't mend or would leave with no rules in force, and
423
+ * throws when the write fails, which may
424
+ * leave gate.json part-written; the rules in force then stay as they were,
425
+ * with their state.
204
426
  */
205
427
  removePolicy(name: string): boolean;
206
428
  /**
207
- * List the current policy names (freshest on-disk view). Cheap helper for
429
+ * List the current policy names: those of a newer gate.json that loads (the
430
+ * freshest on-disk view), and otherwise the rules in force, which beside a
431
+ * gate.json with no rule list are the host's starting rules. Cheap helper for
208
432
  * tools/UX that want to show what's active without the full status payload.
209
433
  */
210
434
  listPolicyNames(): string[];
211
435
  /**
212
- * Persist a config to gate.json and apply it in memory together: write the
213
- * file, swap in the compiled policies, and sync `configMtime` to the new file
214
- * so `reloadIfChanged` doesn't redundantly re-parse identical content. Throws
215
- * if the write fails (disk/permission) — callers surface it as a tool error.
436
+ * Persist gate.json and apply it in memory together: `top`, its own fields,
437
+ * with `rules` as its rule list. Only what loads is written: a change to a
438
+ * gate.json the gate doesn't use, for which `remedy` is given, what would
439
+ * bring it into force, throws, naming that and `remedy`, and writes nothing,
440
+ * where the change doesn't mend what keeps it out, or where it would leave
441
+ * gate.json with no rules in force: such a gate.json holds events back by
442
+ * default, so putting it in force would hold back every event, those the
443
+ * rules in force wake on included. The rules in force are then what the text
444
+ * written reads as, as at a load, so what it still holds that the gate reads
445
+ * past or leaves out stays named; the text is kept as `configText`, so
446
+ * `reloadIfChanged` doesn't parse it again. Once the text is written and its
447
+ * rules are in force, a rule that was in force that it leaves out or gives
448
+ * another behavior loses its state (clearStateFor), last, since a pending
449
+ * batch it sends can't be taken back, and a write that fails leaves the
450
+ * rules in force with their state; a batch that can't be delivered is
451
+ * logged, not thrown. A write that fails throws, saying whether gate.json was
452
+ * changed: one that fails before writing leaves it as it was, and one that
453
+ * fails after its open may leave it part-written (beforeWriting). Callers
454
+ * surface it as a tool error.
216
455
  */
217
456
  private writeConfig;
218
457
  private compiledMatches;
219
458
  evaluate(info: GateEventInfo): GateDecision;
220
459
  private computeDecision;
221
- /** Resolve the partition key for keyBy-style behaviors. */
460
+ /** Resolve the partition key for keyBy-style behaviors. `keyBy:
461
+ * "channelId"` takes the registered id the gate resolves for the event when
462
+ * it has one, as channel matching does, so a channel's push events count
463
+ * with its channels/incoming messages rather than under their raw id. */
222
464
  private resolveKey;
223
465
  private applyRateLimit;
224
466
  private applyPassiveSample;
@@ -229,11 +471,12 @@ export declare class EventGate {
229
471
  */
230
472
  private applyResets;
231
473
  /**
232
- * Clear ALL per-policy state (debounce timer, rate-limit buckets,
233
- * passive-sample counters, denial / fire counters) for one policy.
234
- * Used by reloadIfChanged when a policy is removed or its behavior
235
- * params change. Stats (matchCount, lastMatchTimestamp) are preserved
236
- * — those are historical and shouldn't reset on a config edit.
474
+ * Clear one policy's live state (rate-limit buckets, passive-sample
475
+ * counters, denial / fire counters) and stop its debounce timer, leaving
476
+ * its pending batch for fireDebounce to send, as clearStateFor does once
477
+ * every policy's state is cleared. It leaves stats (matchCount,
478
+ * lastMatchTimestamp), which are history; clearStateFor deletes a removed
479
+ * policy's.
237
480
  */
238
481
  private clearPolicyState;
239
482
  /**
@@ -250,6 +493,15 @@ export declare class EventGate {
250
493
  * may be stateful, and a probe must never perturb state.
251
494
  */
252
495
  probe(info: GateEventInfo): GateDecision;
496
+ /** The canonical synthetic events the probe table runs: chat shapes as MCPL delivers them, and a heartbeat. */
497
+ private probeEvents;
498
+ /**
499
+ * The rules no probe event matches, such as one scoped to an event type
500
+ * the probes don't model (`external-message`, how a module's messages are
501
+ * gated): the probe table can't show what they do, so a result that shows
502
+ * the table names them rather than let its rows read as their effect.
503
+ */
504
+ probeUnreached(): string[];
253
505
  /**
254
506
  * Probe a canonical set of synthetic chat/heartbeat events and report which
255
507
  * rule wins each and whether it would wake. Backs the before/after table in
@@ -257,7 +509,8 @@ export declare class EventGate {
257
509
  * must become legible (af#105; the Mythos stand-back-density incident would
258
510
  * have been visible as `dm: discord-direct-address → stand-back-density`).
259
511
  * Probes are representative shapes, not an exhaustive event space — rules
260
- * keyed on specific channels/mounts may not match any probe.
512
+ * keyed on specific channels/mounts, or on other event types, may not match
513
+ * any probe; `probeUnreached` names those.
261
514
  */
262
515
  probeTable(): GateProbeRow[];
263
516
  /** Current shadow-lint findings for the live policy order. Fresh compute —
@@ -280,6 +533,8 @@ export declare class EventGate {
280
533
  private handleDebounce;
281
534
  private fireDebounce;
282
535
  private deliverEvents;
536
+ /** isNewestEntry for one event; a callback fault keeps the line. */
537
+ private newestEntry;
283
538
  onInferenceStarted(agentName: string): void;
284
539
  /** A turn that continues another (a budget restart, a tool-result-guard
285
540
  * retry) holds the entry its predecessor kept for it, and takes it again
@@ -334,10 +589,9 @@ export declare class EventGate {
334
589
  private armSleepWake;
335
590
  /**
336
591
  * `agentName` is gone, as a conversation fork's end or an ephemeral run's
337
- * removes one: its pending self-wake is cancelled, and a sleep it set ends.
338
- * The gate's sleep holds back every agent's wakes, so nobody is asleep once
339
- * its agent is gone, and neither wake would reach a name that no longer
340
- * exists. A sleep another agent set, or one set with no agent, stays.
592
+ * removes one: its pending self-wake is cancelled, rather than wake a name
593
+ * that no longer exists. It holds no sleep: neither can set one (the
594
+ * framework refuses their `sleep`).
341
595
  */
342
596
  agentGone(agentName: string): void;
343
597
  /**
@@ -372,15 +626,24 @@ export declare class EventGate {
372
626
  } | null;
373
627
  /** Author id from an event's metadata, across the discord ingest shapes. */
374
628
  private extractAuthorId;
375
- /** Load the privileged-users file (bare array or { userIds: [...] }). */
376
629
  /**
377
630
  * Whether an author id is on the privileged-users list (hot-reloaded).
378
631
  * Shared by sleep bypass and tune-out wake classification (#77: wakes are
379
632
  * "mentions, gate-privileged authors, etc.").
380
633
  */
381
634
  isPrivilegedUser(authorId: string | null | undefined): boolean;
635
+ /**
636
+ * Read the privileged-users file: a list of user ids, or `{"userIds": [...]}`,
637
+ * each a non-empty string or a safe integer (a whole number within 2^53 - 1 of zero). An absent file
638
+ * means no one is privileged. A file that can't be read, isn't JSON, or
639
+ * holds no list leaves the list that last loaded in this process in effect
640
+ * (none, at startup), with its error in gate_status until the file is read
641
+ * again. In a list, an entry that isn't a user id is skipped, and named in
642
+ * the file's error, and the rest load. With `unlessUnchanged`, a file whose
643
+ * text is the text last read isn't parsed again.
644
+ */
382
645
  private loadPrivileged;
383
- /** Throttled mtime-based reload of the privileged-users file. */
646
+ /** At most once a second, the privileged-users file read again, and loaded when its text has changed. */
384
647
  private reloadPrivilegedIfChanged;
385
648
  getToolDefinition(): ToolDefinition;
386
649
  handleToolCall(): Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"event-gate.d.ts","sourceRoot":"","sources":["../../../src/gate/event-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAQH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EAGV,YAAY,EACZ,aAAa,EAEb,UAAU,EACV,aAAa,EACb,YAAY,EACb,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAyCvF,UAAU,YAAY;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB;;;;8DAI0D;IAC1D,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;gCAE4B;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;mFAC+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;8EAC0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;iEAE6D;IAC7D,SAAS,EAAE,OAAO,CAAC;IACnB;;;wEAGoE;IACpE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B;;;+EAG2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;gFAC4E;IAC5E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uDAAuD;IACvD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;;;kEAO8D;IAC9D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;mEAC+D;IAC/D,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAuCD,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AA6BD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,cAAc,GAAG,SAAS,CA4BjF;AAkRD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,aAAa,EAAE,CAa5E;AAED;;kBAEkB;AAClB,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAI5D;AAMD,qBAAa,SAAS;IACpB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,MAAM,CAAa;IAC3B,2DAA2D;IAC3D,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,gBAAgB,CAAwB;IAChD,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,YAAY,CAA6C;IACjE,OAAO,CAAC,mBAAmB,CAAuB;IAClD,OAAO,CAAC,YAAY,CAAgB;IAGpC,OAAO,CAAC,cAAc,CAAoC;IAG1D,OAAO,CAAC,gBAAgB,CAA8C;IAEtE,OAAO,CAAC,qBAAqB,CAA0C;IAEvE,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,kBAAkB,CAA6B;IAGvD,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,eAAe,CAAsB;IAC7C,kDAAkD;IAClD,OAAO,CAAC,QAAQ,CAAS;IACzB,uEAAuE;IACvE,OAAO,CAAC,qBAAqB,CAAK;IAGlC,OAAO,CAAC,KAAK,CAAkC;IAI/C,OAAO,CAAC,mBAAmB,CAAuB;IAClD,OAAO,CAAC,yBAAyB,CAAQ;IAGzC,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,kBAAkB,CAA6D;IAOvF,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,UAAU,CAA8C;IAChE,OAAO,CAAC,UAAU,CAAqB;IAGvC,OAAO,CAAC,QAAQ,CAAS;IAOzB,OAAO,CAAC,cAAc,CAAoD;IAI1E,OAAO,CAAC,mBAAmB,CAAqB;IAChD,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,mBAAmB,CAAK;IAGhC,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,YAAY,CAMP;IACb,OAAO,CAAC,kBAAkB,CAA2F;IACrH,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,qBAAqB,CAA8C;IAC3E;8DAC0D;IAC1D,OAAO,CAAC,GAAG,CAAe;IAE1B,YAAY,IAAI,EAAE;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,UAAU,CAAC;QAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,SAAS,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;QAC3C,UAAU,EAAE,CACV,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,EAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,QAAQ,CAAC,EAAE,MAAM,KACd,OAAO,CAAC;QACb,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;QAC3G,aAAa,EAAE,MAAM,MAAM,EAAE,CAAC;QAC9B,kFAAkF;QAClF,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;QACnB,0EAA0E;QAC1E,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB;;gFAEwE;QACxE,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,MAAM,GAAG,SAAS,CAAC;KACnE,EAgEA;IAMD,OAAO,CAAC,UAAU;IAyBlB,OAAO,CAAC,eAAe;IAyBvB,OAAO,CAAC,eAAe;IAqEvB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,SAAS,CACP,SAAS,EAAE,OAAO,EAClB,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,GAAG;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,GACrF,UAAU,CAqCZ;IAED;;;;;;OAMG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAiBlC;IAED;;;OAGG;IACH,eAAe,IAAI,MAAM,EAAE,CAG1B;IAED;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAqBnB,OAAO,CAAC,eAAe;IA0EvB,QAAQ,CAAC,IAAI,EAAE,aAAa,GAAG,YAAY,CAyF1C;IAED,OAAO,CAAC,eAAe;IAsDvB,2DAA2D;IAC3D,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,cAAc;IA0CtB,OAAO,CAAC,kBAAkB;IAuB1B;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAQnB;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;IAsBxB;;;;OAIG;IACH,OAAO,CAAC,YAAY;IA4BpB;;;;;;OAMG;IACH,KAAK,CAAC,IAAI,EAAE,aAAa,GAAG,YAAY,CAUvC;IAED;;;;;;;;OAQG;IACH,UAAU,IAAI,YAAY,EAAE,CA2D3B;IAMD;4DACwD;IACxD,WAAW,IAAI,aAAa,EAAE,CAE7B;IAED;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAoB7B;;;OAGG;IACH,uBAAuB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAYzF;IAMD,6EAA6E;IAC7E,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,cAAc;IAiCtB,OAAO,CAAC,YAAY;IAiCpB,OAAO,CAAC,aAAa;IAkErB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAU1C;IAED;;;;;;yBAMqB;IACrB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAE1C;IAED,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAGxC;IAED;;;;;;;;OAQG;IACH,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAInC;IAED,OAAO,CAAC,2BAA2B;IASnC;;;oDAGgD;IAChD,oBAAoB,IAAI;QACtB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;QACvB,qBAAqB,EAAE,MAAM,CAAC;QAC9B,UAAU,EAAE,MAAM,CAAC;KACpB,CAOA;IAMD,8DAA8D;IAC9D,OAAO,CAAC,kBAAkB;IA6B1B,4EAA4E;IAC5E,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAqB9E;IAED;;;;;;OAMG;IACH,WAAW,IAAI,IAAI,CAIlB;IAED;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAOpB;;;;;;OAMG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAOjC;IAMD;;;;;;OAMG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAe,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CA8CvG;IAED,mEAAmE;IACnE,UAAU,IAAI,OAAO,CAOpB;IAED;;;;;;;;OAQG;IACH,OAAO,CAAC,aAAa;IA4BrB,6CAA6C;IAC7C,aAAa,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAIhG;IAED,4EAA4E;IAC5E,OAAO,CAAC,eAAe;IAQvB,yEAAyE;IACzE;;;;OAIG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAI7D;IAED,OAAO,CAAC,cAAc;IAmBtB,iEAAiE;IACjE,OAAO,CAAC,yBAAyB;IAiBjC,iBAAiB,IAAI,cAAc,CAQlC;IAEK,cAAc,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,UAAU,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAGvF;IAED,SAAS,IAAI,UAAU,CA+DtB;IAMD,OAAO,IAAI,IAAI,CAgCd;CACF"}
1
+ {"version":3,"file":"event-gate.d.ts","sourceRoot":"","sources":["../../../src/gate/event-gate.ts"],"names":[],"mappings":"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"}