@a5c-ai/agent-comm-mux 5.0.1-staging.04ca6ab00d21

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 (263) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +99 -0
  3. package/dist/adapter-registry.d.ts +51 -0
  4. package/dist/adapter-registry.d.ts.map +1 -0
  5. package/dist/adapter-registry.js +208 -0
  6. package/dist/adapter-registry.js.map +1 -0
  7. package/dist/adapter-types.d.ts +164 -0
  8. package/dist/adapter-types.d.ts.map +1 -0
  9. package/dist/adapter-types.js +27 -0
  10. package/dist/adapter-types.js.map +1 -0
  11. package/dist/adapter.d.ts +248 -0
  12. package/dist/adapter.d.ts.map +1 -0
  13. package/dist/adapter.js +18 -0
  14. package/dist/adapter.js.map +1 -0
  15. package/dist/atomic-fs.d.ts +33 -0
  16. package/dist/atomic-fs.d.ts.map +1 -0
  17. package/dist/atomic-fs.js +190 -0
  18. package/dist/atomic-fs.js.map +1 -0
  19. package/dist/auth-manager.d.ts +37 -0
  20. package/dist/auth-manager.d.ts.map +1 -0
  21. package/dist/auth-manager.js +94 -0
  22. package/dist/auth-manager.js.map +1 -0
  23. package/dist/auth-types.d.ts +83 -0
  24. package/dist/auth-types.d.ts.map +1 -0
  25. package/dist/auth-types.js +10 -0
  26. package/dist/auth-types.js.map +1 -0
  27. package/dist/automation.d.ts +104 -0
  28. package/dist/automation.d.ts.map +1 -0
  29. package/dist/automation.js +2 -0
  30. package/dist/automation.js.map +1 -0
  31. package/dist/browser.d.ts +5 -0
  32. package/dist/browser.d.ts.map +1 -0
  33. package/dist/browser.js +2 -0
  34. package/dist/browser.js.map +1 -0
  35. package/dist/builtin-hooks.d.ts +24 -0
  36. package/dist/builtin-hooks.d.ts.map +1 -0
  37. package/dist/builtin-hooks.js +80 -0
  38. package/dist/builtin-hooks.js.map +1 -0
  39. package/dist/capabilities.d.ts +251 -0
  40. package/dist/capabilities.d.ts.map +1 -0
  41. package/dist/capabilities.js +7 -0
  42. package/dist/capabilities.js.map +1 -0
  43. package/dist/client.d.ts +118 -0
  44. package/dist/client.d.ts.map +1 -0
  45. package/dist/client.js +316 -0
  46. package/dist/client.js.map +1 -0
  47. package/dist/config-manager.d.ts +85 -0
  48. package/dist/config-manager.d.ts.map +1 -0
  49. package/dist/config-manager.js +202 -0
  50. package/dist/config-manager.js.map +1 -0
  51. package/dist/config-types.d.ts +134 -0
  52. package/dist/config-types.d.ts.map +1 -0
  53. package/dist/config-types.js +10 -0
  54. package/dist/config-types.js.map +1 -0
  55. package/dist/cost-utils.d.ts +31 -0
  56. package/dist/cost-utils.d.ts.map +1 -0
  57. package/dist/cost-utils.js +69 -0
  58. package/dist/cost-utils.js.map +1 -0
  59. package/dist/errors.d.ts +50 -0
  60. package/dist/errors.d.ts.map +1 -0
  61. package/dist/errors.js +85 -0
  62. package/dist/errors.js.map +1 -0
  63. package/dist/events-control.d.ts +91 -0
  64. package/dist/events-control.d.ts.map +1 -0
  65. package/dist/events-control.js +8 -0
  66. package/dist/events-control.js.map +1 -0
  67. package/dist/events.d.ts +285 -0
  68. package/dist/events.d.ts.map +1 -0
  69. package/dist/events.js +8 -0
  70. package/dist/events.js.map +1 -0
  71. package/dist/hook-catalog.d.ts +20 -0
  72. package/dist/hook-catalog.d.ts.map +1 -0
  73. package/dist/hook-catalog.js +63 -0
  74. package/dist/hook-catalog.js.map +1 -0
  75. package/dist/hook-dispatcher.d.ts +24 -0
  76. package/dist/hook-dispatcher.d.ts.map +1 -0
  77. package/dist/hook-dispatcher.js +91 -0
  78. package/dist/hook-dispatcher.js.map +1 -0
  79. package/dist/hook-payload.d.ts +24 -0
  80. package/dist/hook-payload.d.ts.map +1 -0
  81. package/dist/hook-payload.js +62 -0
  82. package/dist/hook-payload.js.map +1 -0
  83. package/dist/hooks.d.ts +59 -0
  84. package/dist/hooks.d.ts.map +1 -0
  85. package/dist/hooks.js +118 -0
  86. package/dist/hooks.js.map +1 -0
  87. package/dist/host-detection.d.ts +67 -0
  88. package/dist/host-detection.d.ts.map +1 -0
  89. package/dist/host-detection.js +147 -0
  90. package/dist/host-detection.js.map +1 -0
  91. package/dist/index.d.ts +88 -0
  92. package/dist/index.d.ts.map +1 -0
  93. package/dist/index.js +50 -0
  94. package/dist/index.js.map +1 -0
  95. package/dist/interaction-channel-impl.d.ts +56 -0
  96. package/dist/interaction-channel-impl.d.ts.map +1 -0
  97. package/dist/interaction-channel-impl.js +159 -0
  98. package/dist/interaction-channel-impl.js.map +1 -0
  99. package/dist/interaction.d.ts +93 -0
  100. package/dist/interaction.d.ts.map +1 -0
  101. package/dist/interaction.js +8 -0
  102. package/dist/interaction.js.map +1 -0
  103. package/dist/invocation.d.ts +100 -0
  104. package/dist/invocation.d.ts.map +1 -0
  105. package/dist/invocation.js +17 -0
  106. package/dist/invocation.js.map +1 -0
  107. package/dist/kanban.d.ts +894 -0
  108. package/dist/kanban.d.ts.map +1 -0
  109. package/dist/kanban.js +1155 -0
  110. package/dist/kanban.js.map +1 -0
  111. package/dist/merge.d.ts +37 -0
  112. package/dist/merge.d.ts.map +1 -0
  113. package/dist/merge.js +102 -0
  114. package/dist/merge.js.map +1 -0
  115. package/dist/model-registry.d.ts +61 -0
  116. package/dist/model-registry.d.ts.map +1 -0
  117. package/dist/model-registry.js +198 -0
  118. package/dist/model-registry.js.map +1 -0
  119. package/dist/plugin-manager-impl.d.ts +48 -0
  120. package/dist/plugin-manager-impl.d.ts.map +1 -0
  121. package/dist/plugin-manager-impl.js +343 -0
  122. package/dist/plugin-manager-impl.js.map +1 -0
  123. package/dist/plugin-manager.d.ts +81 -0
  124. package/dist/plugin-manager.d.ts.map +1 -0
  125. package/dist/plugin-manager.js +7 -0
  126. package/dist/plugin-manager.js.map +1 -0
  127. package/dist/plugin-types.d.ts +114 -0
  128. package/dist/plugin-types.d.ts.map +1 -0
  129. package/dist/plugin-types.js +7 -0
  130. package/dist/plugin-types.js.map +1 -0
  131. package/dist/process-tracker.d.ts +20 -0
  132. package/dist/process-tracker.d.ts.map +1 -0
  133. package/dist/process-tracker.js +96 -0
  134. package/dist/process-tracker.js.map +1 -0
  135. package/dist/profiles.d.ts +99 -0
  136. package/dist/profiles.d.ts.map +1 -0
  137. package/dist/profiles.js +231 -0
  138. package/dist/profiles.js.map +1 -0
  139. package/dist/programmatic-runner.d.ts +4 -0
  140. package/dist/programmatic-runner.d.ts.map +1 -0
  141. package/dist/programmatic-runner.js +110 -0
  142. package/dist/programmatic-runner.js.map +1 -0
  143. package/dist/provider-config.d.ts +40 -0
  144. package/dist/provider-config.d.ts.map +1 -0
  145. package/dist/provider-config.js +67 -0
  146. package/dist/provider-config.js.map +1 -0
  147. package/dist/provider-profiles.d.ts +47 -0
  148. package/dist/provider-profiles.d.ts.map +1 -0
  149. package/dist/provider-profiles.js +117 -0
  150. package/dist/provider-profiles.js.map +1 -0
  151. package/dist/provider-resolver.d.ts +15 -0
  152. package/dist/provider-resolver.d.ts.map +1 -0
  153. package/dist/provider-resolver.js +114 -0
  154. package/dist/provider-resolver.js.map +1 -0
  155. package/dist/provider-support-matrix.d.ts +12 -0
  156. package/dist/provider-support-matrix.d.ts.map +1 -0
  157. package/dist/provider-support-matrix.js +88 -0
  158. package/dist/provider-support-matrix.js.map +1 -0
  159. package/dist/remote-runner.d.ts +4 -0
  160. package/dist/remote-runner.d.ts.map +1 -0
  161. package/dist/remote-runner.js +114 -0
  162. package/dist/remote-runner.js.map +1 -0
  163. package/dist/retry.d.ts +13 -0
  164. package/dist/retry.d.ts.map +1 -0
  165. package/dist/retry.js +17 -0
  166. package/dist/retry.js.map +1 -0
  167. package/dist/run-handle-cost.d.ts +36 -0
  168. package/dist/run-handle-cost.d.ts.map +1 -0
  169. package/dist/run-handle-cost.js +62 -0
  170. package/dist/run-handle-cost.js.map +1 -0
  171. package/dist/run-handle-impl.d.ts +144 -0
  172. package/dist/run-handle-impl.d.ts.map +1 -0
  173. package/dist/run-handle-impl.js +695 -0
  174. package/dist/run-handle-impl.js.map +1 -0
  175. package/dist/run-handle.d.ts +222 -0
  176. package/dist/run-handle.d.ts.map +1 -0
  177. package/dist/run-handle.js +9 -0
  178. package/dist/run-handle.js.map +1 -0
  179. package/dist/run-options-validation.d.ts +23 -0
  180. package/dist/run-options-validation.d.ts.map +1 -0
  181. package/dist/run-options-validation.js +234 -0
  182. package/dist/run-options-validation.js.map +1 -0
  183. package/dist/run-options.d.ts +128 -0
  184. package/dist/run-options.d.ts.map +1 -0
  185. package/dist/run-options.js +329 -0
  186. package/dist/run-options.js.map +1 -0
  187. package/dist/runtime-hook-dispatcher.d.ts +19 -0
  188. package/dist/runtime-hook-dispatcher.d.ts.map +1 -0
  189. package/dist/runtime-hook-dispatcher.js +50 -0
  190. package/dist/runtime-hook-dispatcher.js.map +1 -0
  191. package/dist/runtime-hooks.d.ts +47 -0
  192. package/dist/runtime-hooks.d.ts.map +1 -0
  193. package/dist/runtime-hooks.js +2 -0
  194. package/dist/runtime-hooks.js.map +1 -0
  195. package/dist/schema/__tests__/event-schema.test.d.ts +1 -0
  196. package/dist/schema/__tests__/event-schema.test.d.ts.map +1 -0
  197. package/dist/schema/__tests__/event-schema.test.js +480 -0
  198. package/dist/schema/__tests__/event-schema.test.js.map +1 -0
  199. package/dist/schema/event-schema.d.ts +120 -0
  200. package/dist/schema/event-schema.d.ts.map +1 -0
  201. package/dist/schema/event-schema.js +546 -0
  202. package/dist/schema/event-schema.js.map +1 -0
  203. package/dist/schema/index.d.ts +7 -0
  204. package/dist/schema/index.d.ts.map +1 -0
  205. package/dist/schema/index.js +49 -0
  206. package/dist/schema/index.js.map +1 -0
  207. package/dist/session-manager-helpers.d.ts +33 -0
  208. package/dist/session-manager-helpers.d.ts.map +1 -0
  209. package/dist/session-manager-helpers.js +66 -0
  210. package/dist/session-manager-helpers.js.map +1 -0
  211. package/dist/session-manager.d.ts +70 -0
  212. package/dist/session-manager.d.ts.map +1 -0
  213. package/dist/session-manager.js +343 -0
  214. package/dist/session-manager.js.map +1 -0
  215. package/dist/session-types.d.ts +358 -0
  216. package/dist/session-types.d.ts.map +1 -0
  217. package/dist/session-types.js +10 -0
  218. package/dist/session-types.js.map +1 -0
  219. package/dist/spawn-invocation.d.ts +52 -0
  220. package/dist/spawn-invocation.d.ts.map +1 -0
  221. package/dist/spawn-invocation.js +218 -0
  222. package/dist/spawn-invocation.js.map +1 -0
  223. package/dist/spawn-runner-utils.d.ts +21 -0
  224. package/dist/spawn-runner-utils.d.ts.map +1 -0
  225. package/dist/spawn-runner-utils.js +102 -0
  226. package/dist/spawn-runner-utils.js.map +1 -0
  227. package/dist/spawn-runner.d.ts +21 -0
  228. package/dist/spawn-runner.d.ts.map +1 -0
  229. package/dist/spawn-runner.js +576 -0
  230. package/dist/spawn-runner.js.map +1 -0
  231. package/dist/spawn-runtime-hooks.d.ts +15 -0
  232. package/dist/spawn-runtime-hooks.d.ts.map +1 -0
  233. package/dist/spawn-runtime-hooks.js +136 -0
  234. package/dist/spawn-runtime-hooks.js.map +1 -0
  235. package/dist/state-machine.d.ts +33 -0
  236. package/dist/state-machine.d.ts.map +1 -0
  237. package/dist/state-machine.js +61 -0
  238. package/dist/state-machine.js.map +1 -0
  239. package/dist/storage.d.ts +47 -0
  240. package/dist/storage.d.ts.map +1 -0
  241. package/dist/storage.js +90 -0
  242. package/dist/storage.js.map +1 -0
  243. package/dist/stream-assembler.d.ts +51 -0
  244. package/dist/stream-assembler.d.ts.map +1 -0
  245. package/dist/stream-assembler.js +86 -0
  246. package/dist/stream-assembler.js.map +1 -0
  247. package/dist/tools/classify.d.ts +9 -0
  248. package/dist/tools/classify.d.ts.map +1 -0
  249. package/dist/tools/classify.js +77 -0
  250. package/dist/tools/classify.js.map +1 -0
  251. package/dist/tools/index.d.ts +2 -0
  252. package/dist/tools/index.d.ts.map +1 -0
  253. package/dist/tools/index.js +2 -0
  254. package/dist/tools/index.js.map +1 -0
  255. package/dist/types.d.ts +288 -0
  256. package/dist/types.d.ts.map +1 -0
  257. package/dist/types.js +8 -0
  258. package/dist/types.js.map +1 -0
  259. package/dist/workspaces.d.ts +142 -0
  260. package/dist/workspaces.d.ts.map +1 -0
  261. package/dist/workspaces.js +515 -0
  262. package/dist/workspaces.js.map +1 -0
  263. package/package.json +107 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-schema.test.d.ts","sourceRoot":"","sources":["../../../src/schema/__tests__/event-schema.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,480 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { validateEvent, eventSchemaRegistry, EVENT_SCHEMA_COUNT, } from '../event-schema.js';
3
+ // ---------------------------------------------------------------------------
4
+ // Helpers
5
+ // ---------------------------------------------------------------------------
6
+ /** Minimal base fields present on every valid event. */
7
+ function base(type) {
8
+ return {
9
+ type,
10
+ runId: 'run-001',
11
+ agent: 'claude',
12
+ timestamp: Date.now(),
13
+ };
14
+ }
15
+ // ---------------------------------------------------------------------------
16
+ // All 67 event type discriminants (from events.ts + events-control.ts)
17
+ // ---------------------------------------------------------------------------
18
+ const ALL_EVENT_TYPES = [
19
+ // Session lifecycle (5)
20
+ 'session_start', 'session_resume', 'session_fork', 'session_checkpoint', 'session_end',
21
+ // Turn / step lifecycle (4)
22
+ 'turn_start', 'turn_end', 'step_start', 'step_end',
23
+ // Text / message streaming (3)
24
+ 'message_start', 'text_delta', 'message_stop',
25
+ // Thinking / reasoning (3)
26
+ 'thinking_start', 'thinking_delta', 'thinking_stop',
27
+ // Tool calling (5)
28
+ 'tool_call_start', 'tool_input_delta', 'tool_call_ready', 'tool_result', 'tool_error',
29
+ // File operations (5)
30
+ 'file_read', 'file_write', 'file_create', 'file_delete', 'file_patch',
31
+ // Shell operations (4)
32
+ 'shell_start', 'shell_stdout_delta', 'shell_stderr_delta', 'shell_exit',
33
+ // MCP tool calling (3)
34
+ 'mcp_tool_call_start', 'mcp_tool_result', 'mcp_tool_error',
35
+ // Subagent dispatch (3)
36
+ 'subagent_spawn', 'subagent_result', 'subagent_error',
37
+ // Plugin events (3)
38
+ 'plugin_loaded', 'plugin_invoked', 'plugin_error',
39
+ // Skill / agent doc loading (3)
40
+ 'skill_loaded', 'skill_invoked', 'agentdoc_read',
41
+ // Multimodal (2)
42
+ 'image_output', 'image_input_ack',
43
+ // Cost and tokens (2)
44
+ 'cost', 'token_usage',
45
+ // Interaction / waiting (4)
46
+ 'input_required', 'approval_request', 'approval_granted', 'approval_denied',
47
+ // Rate / context limits (4)
48
+ 'rate_limited', 'context_limit_warning', 'context_compacted', 'retry',
49
+ // Run lifecycle / control (7)
50
+ 'interrupted', 'aborted', 'paused', 'resumed', 'timeout', 'turn_limit', 'stream_fallback',
51
+ // Errors (5)
52
+ 'auth_error', 'rate_limit_error', 'context_exceeded', 'crash', 'error',
53
+ // Debug (2)
54
+ 'debug', 'log',
55
+ ];
56
+ // ===========================================================================
57
+ // 1. Registry completeness
58
+ // ===========================================================================
59
+ describe('Registry completeness', () => {
60
+ it('eventSchemaRegistry has exactly EVENT_SCHEMA_COUNT (67) entries', () => {
61
+ expect(Object.keys(eventSchemaRegistry)).toHaveLength(67);
62
+ expect(EVENT_SCHEMA_COUNT).toBe(67);
63
+ });
64
+ it('every AgentEventType discriminant has a corresponding schema in the registry', () => {
65
+ for (const type of ALL_EVENT_TYPES) {
66
+ expect(eventSchemaRegistry).toHaveProperty(type);
67
+ }
68
+ });
69
+ it('registry contains no extra types beyond the 67 defined', () => {
70
+ const registryKeys = new Set(Object.keys(eventSchemaRegistry));
71
+ const expectedKeys = new Set(ALL_EVENT_TYPES);
72
+ expect(registryKeys).toEqual(expectedKeys);
73
+ });
74
+ });
75
+ // ===========================================================================
76
+ // 2. Valid event validation (representative subset of ~15 event types)
77
+ // ===========================================================================
78
+ describe('Valid event validation', () => {
79
+ it('session_start', () => {
80
+ const result = validateEvent({
81
+ ...base('session_start'),
82
+ sessionId: 'sess-1',
83
+ resumed: false,
84
+ });
85
+ expect(result.valid).toBe(true);
86
+ expect(result.eventType).toBe('session_start');
87
+ });
88
+ it('text_delta', () => {
89
+ const result = validateEvent({
90
+ ...base('text_delta'),
91
+ delta: 'hello',
92
+ accumulated: 'hello',
93
+ });
94
+ expect(result.valid).toBe(true);
95
+ expect(result.eventType).toBe('text_delta');
96
+ });
97
+ it('tool_call_start', () => {
98
+ const result = validateEvent({
99
+ ...base('tool_call_start'),
100
+ toolCallId: 'tc-1',
101
+ toolName: 'read_file',
102
+ inputAccumulated: '{}',
103
+ });
104
+ expect(result.valid).toBe(true);
105
+ expect(result.eventType).toBe('tool_call_start');
106
+ });
107
+ it('tool_result', () => {
108
+ const result = validateEvent({
109
+ ...base('tool_result'),
110
+ toolCallId: 'tc-1',
111
+ toolName: 'read_file',
112
+ output: { content: 'file contents' },
113
+ durationMs: 42,
114
+ });
115
+ expect(result.valid).toBe(true);
116
+ expect(result.eventType).toBe('tool_result');
117
+ });
118
+ it('file_write', () => {
119
+ const result = validateEvent({
120
+ ...base('file_write'),
121
+ path: '/tmp/test.txt',
122
+ byteCount: 1024,
123
+ });
124
+ expect(result.valid).toBe(true);
125
+ expect(result.eventType).toBe('file_write');
126
+ });
127
+ it('shell_exit', () => {
128
+ const result = validateEvent({
129
+ ...base('shell_exit'),
130
+ exitCode: 0,
131
+ durationMs: 150,
132
+ });
133
+ expect(result.valid).toBe(true);
134
+ expect(result.eventType).toBe('shell_exit');
135
+ });
136
+ it('error', () => {
137
+ const result = validateEvent({
138
+ ...base('error'),
139
+ code: 'INTERNAL',
140
+ message: 'Something went wrong',
141
+ recoverable: false,
142
+ });
143
+ expect(result.valid).toBe(true);
144
+ expect(result.eventType).toBe('error');
145
+ });
146
+ it('cost', () => {
147
+ const result = validateEvent({
148
+ ...base('cost'),
149
+ cost: { totalUsd: 0.05, inputTokens: 2000, outputTokens: 500 },
150
+ });
151
+ expect(result.valid).toBe(true);
152
+ expect(result.eventType).toBe('cost');
153
+ });
154
+ it('approval_request', () => {
155
+ const result = validateEvent({
156
+ ...base('approval_request'),
157
+ interactionId: 'ia-1',
158
+ action: 'write file',
159
+ detail: 'Writing to /tmp/test.txt',
160
+ riskLevel: 'medium',
161
+ });
162
+ expect(result.valid).toBe(true);
163
+ expect(result.eventType).toBe('approval_request');
164
+ });
165
+ it('subagent_spawn', () => {
166
+ const result = validateEvent({
167
+ ...base('subagent_spawn'),
168
+ subagentId: 'sub-1',
169
+ agentName: 'codex',
170
+ prompt: 'Refactor the module',
171
+ });
172
+ expect(result.valid).toBe(true);
173
+ expect(result.eventType).toBe('subagent_spawn');
174
+ });
175
+ it('mcp_tool_result', () => {
176
+ const result = validateEvent({
177
+ ...base('mcp_tool_result'),
178
+ toolCallId: 'mcp-tc-1',
179
+ server: 'atlas',
180
+ toolName: 'search',
181
+ output: [{ id: '1' }],
182
+ });
183
+ expect(result.valid).toBe(true);
184
+ expect(result.eventType).toBe('mcp_tool_result');
185
+ });
186
+ it('plugin_loaded', () => {
187
+ const result = validateEvent({
188
+ ...base('plugin_loaded'),
189
+ pluginId: 'plg-1',
190
+ pluginName: 'peon-ping',
191
+ version: '1.0.0',
192
+ });
193
+ expect(result.valid).toBe(true);
194
+ expect(result.eventType).toBe('plugin_loaded');
195
+ });
196
+ it('thinking_delta', () => {
197
+ const result = validateEvent({
198
+ ...base('thinking_delta'),
199
+ delta: 'Let me think...',
200
+ accumulated: 'Let me think...',
201
+ });
202
+ expect(result.valid).toBe(true);
203
+ expect(result.eventType).toBe('thinking_delta');
204
+ });
205
+ it('input_required', () => {
206
+ const result = validateEvent({
207
+ ...base('input_required'),
208
+ interactionId: 'ir-1',
209
+ question: 'What is the target?',
210
+ source: 'agent',
211
+ });
212
+ expect(result.valid).toBe(true);
213
+ expect(result.eventType).toBe('input_required');
214
+ });
215
+ it('debug', () => {
216
+ const result = validateEvent({
217
+ ...base('debug'),
218
+ level: 'info',
219
+ message: 'Processing step 3',
220
+ });
221
+ expect(result.valid).toBe(true);
222
+ expect(result.eventType).toBe('debug');
223
+ });
224
+ });
225
+ // ===========================================================================
226
+ // 3. Invalid event rejection
227
+ // ===========================================================================
228
+ describe('Invalid event rejection', () => {
229
+ it('rejects when missing type field', () => {
230
+ const result = validateEvent({
231
+ runId: 'run-001',
232
+ agent: 'claude',
233
+ timestamp: Date.now(),
234
+ });
235
+ expect(result.valid).toBe(false);
236
+ expect(result.errors).toBeDefined();
237
+ expect(result.errors.some((e) => e.includes('type'))).toBe(true);
238
+ });
239
+ it('rejects when missing runId', () => {
240
+ const result = validateEvent({
241
+ type: 'text_delta',
242
+ agent: 'claude',
243
+ timestamp: Date.now(),
244
+ delta: 'hi',
245
+ accumulated: 'hi',
246
+ });
247
+ expect(result.valid).toBe(false);
248
+ expect(result.errors).toBeDefined();
249
+ });
250
+ it('rejects when missing timestamp', () => {
251
+ const result = validateEvent({
252
+ type: 'text_delta',
253
+ runId: 'run-001',
254
+ agent: 'claude',
255
+ delta: 'hi',
256
+ accumulated: 'hi',
257
+ });
258
+ expect(result.valid).toBe(false);
259
+ expect(result.errors).toBeDefined();
260
+ });
261
+ it('rejects unknown type discriminant', () => {
262
+ const result = validateEvent({
263
+ ...base('totally_fake_event'),
264
+ });
265
+ expect(result.valid).toBe(false);
266
+ expect(result.eventType).toBe('totally_fake_event');
267
+ expect(result.errors).toBeDefined();
268
+ expect(result.errors.some((e) => e.includes('Unknown event type'))).toBe(true);
269
+ });
270
+ it('rejects wrong field type (timestamp as string)', () => {
271
+ const result = validateEvent({
272
+ type: 'text_delta',
273
+ runId: 'run-001',
274
+ agent: 'claude',
275
+ timestamp: 'not a number',
276
+ delta: 'hi',
277
+ accumulated: 'hi',
278
+ });
279
+ expect(result.valid).toBe(false);
280
+ expect(result.errors).toBeDefined();
281
+ });
282
+ it('rejects null input', () => {
283
+ const result = validateEvent(null);
284
+ expect(result.valid).toBe(false);
285
+ expect(result.errors).toBeDefined();
286
+ expect(result.errors[0]).toContain('non-null object');
287
+ });
288
+ it('rejects non-object input', () => {
289
+ const result = validateEvent('a string');
290
+ expect(result.valid).toBe(false);
291
+ });
292
+ it('rejects event with missing required extra fields', () => {
293
+ // text_delta requires delta and accumulated
294
+ const result = validateEvent({
295
+ ...base('text_delta'),
296
+ // missing delta and accumulated
297
+ });
298
+ expect(result.valid).toBe(false);
299
+ expect(result.eventType).toBe('text_delta');
300
+ expect(result.errors).toBeDefined();
301
+ });
302
+ it('rejects error event with invalid error code', () => {
303
+ const result = validateEvent({
304
+ ...base('error'),
305
+ code: 'NOT_A_REAL_CODE',
306
+ message: 'oops',
307
+ recoverable: true,
308
+ });
309
+ expect(result.valid).toBe(false);
310
+ expect(result.eventType).toBe('error');
311
+ });
312
+ it('rejects approval_request with invalid riskLevel', () => {
313
+ const result = validateEvent({
314
+ ...base('approval_request'),
315
+ interactionId: 'ia-1',
316
+ action: 'delete',
317
+ detail: 'Deleting everything',
318
+ riskLevel: 'extreme', // not a valid literal
319
+ });
320
+ expect(result.valid).toBe(false);
321
+ expect(result.eventType).toBe('approval_request');
322
+ });
323
+ });
324
+ // ===========================================================================
325
+ // 4. Optional fields
326
+ // ===========================================================================
327
+ describe('Optional fields', () => {
328
+ it('session_start passes without optional forkedFrom', () => {
329
+ const result = validateEvent({
330
+ ...base('session_start'),
331
+ sessionId: 'sess-1',
332
+ resumed: false,
333
+ });
334
+ expect(result.valid).toBe(true);
335
+ });
336
+ it('session_start passes with optional forkedFrom', () => {
337
+ const result = validateEvent({
338
+ ...base('session_start'),
339
+ sessionId: 'sess-1',
340
+ resumed: true,
341
+ forkedFrom: 'sess-0',
342
+ });
343
+ expect(result.valid).toBe(true);
344
+ });
345
+ it('session_end passes without optional cost', () => {
346
+ const result = validateEvent({
347
+ ...base('session_end'),
348
+ sessionId: 'sess-1',
349
+ turnCount: 5,
350
+ });
351
+ expect(result.valid).toBe(true);
352
+ });
353
+ it('session_end passes with optional cost', () => {
354
+ const result = validateEvent({
355
+ ...base('session_end'),
356
+ sessionId: 'sess-1',
357
+ turnCount: 5,
358
+ cost: { totalUsd: 0.1, inputTokens: 500, outputTokens: 200 },
359
+ });
360
+ expect(result.valid).toBe(true);
361
+ });
362
+ it('cost record with optional thinkingTokens and cachedTokens', () => {
363
+ const result = validateEvent({
364
+ ...base('cost'),
365
+ cost: {
366
+ totalUsd: 0.02,
367
+ inputTokens: 1000,
368
+ outputTokens: 300,
369
+ thinkingTokens: 100,
370
+ cachedTokens: 200,
371
+ cacheCreationTokens: 50,
372
+ cacheReadTokens: 150,
373
+ },
374
+ });
375
+ expect(result.valid).toBe(true);
376
+ });
377
+ it('image_output passes without optional base64 and filePath', () => {
378
+ const result = validateEvent({
379
+ ...base('image_output'),
380
+ mimeType: 'image/png',
381
+ });
382
+ expect(result.valid).toBe(true);
383
+ });
384
+ it('image_output passes with optional base64', () => {
385
+ const result = validateEvent({
386
+ ...base('image_output'),
387
+ mimeType: 'image/png',
388
+ base64: 'iVBORw0KGgo=',
389
+ });
390
+ expect(result.valid).toBe(true);
391
+ });
392
+ it('base event optional source field accepted', () => {
393
+ const result = validateEvent({
394
+ ...base('text_delta'),
395
+ source: 'adapter',
396
+ delta: 'hi',
397
+ accumulated: 'hi',
398
+ });
399
+ expect(result.valid).toBe(true);
400
+ });
401
+ it('approval_denied passes without optional reason', () => {
402
+ const result = validateEvent({
403
+ ...base('approval_denied'),
404
+ interactionId: 'ia-1',
405
+ });
406
+ expect(result.valid).toBe(true);
407
+ });
408
+ it('approval_denied passes with optional reason', () => {
409
+ const result = validateEvent({
410
+ ...base('approval_denied'),
411
+ interactionId: 'ia-1',
412
+ reason: 'Too risky',
413
+ });
414
+ expect(result.valid).toBe(true);
415
+ });
416
+ it('rate_limited passes without optional retryAfterMs', () => {
417
+ const result = validateEvent({
418
+ ...base('rate_limited'),
419
+ });
420
+ expect(result.valid).toBe(true);
421
+ });
422
+ it('rate_limited passes with optional retryAfterMs', () => {
423
+ const result = validateEvent({
424
+ ...base('rate_limited'),
425
+ retryAfterMs: 5000,
426
+ });
427
+ expect(result.valid).toBe(true);
428
+ });
429
+ it('thinking_start passes without optional effort', () => {
430
+ const result = validateEvent({
431
+ ...base('thinking_start'),
432
+ });
433
+ expect(result.valid).toBe(true);
434
+ });
435
+ it('thinking_start passes with optional effort', () => {
436
+ const result = validateEvent({
437
+ ...base('thinking_start'),
438
+ effort: 'high',
439
+ });
440
+ expect(result.valid).toBe(true);
441
+ });
442
+ it('token_usage passes without optional thinkingTokens and cachedTokens', () => {
443
+ const result = validateEvent({
444
+ ...base('token_usage'),
445
+ inputTokens: 1000,
446
+ outputTokens: 500,
447
+ });
448
+ expect(result.valid).toBe(true);
449
+ });
450
+ it('token_usage passes with optional thinkingTokens and cachedTokens', () => {
451
+ const result = validateEvent({
452
+ ...base('token_usage'),
453
+ inputTokens: 1000,
454
+ outputTokens: 500,
455
+ thinkingTokens: 200,
456
+ cachedTokens: 100,
457
+ });
458
+ expect(result.valid).toBe(true);
459
+ });
460
+ it('input_required passes without optional context', () => {
461
+ const result = validateEvent({
462
+ ...base('input_required'),
463
+ interactionId: 'ir-1',
464
+ question: 'What next?',
465
+ source: 'tool',
466
+ });
467
+ expect(result.valid).toBe(true);
468
+ });
469
+ it('input_required passes with optional context', () => {
470
+ const result = validateEvent({
471
+ ...base('input_required'),
472
+ interactionId: 'ir-1',
473
+ question: 'What next?',
474
+ context: 'We need a decision about the merge strategy',
475
+ source: 'tool',
476
+ });
477
+ expect(result.valid).toBe(true);
478
+ });
479
+ });
480
+ //# sourceMappingURL=event-schema.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-schema.test.js","sourceRoot":"","sources":["../../../src/schema/__tests__/event-schema.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,120 @@
1
+ /**
2
+ * TypeBox JSON Schema definitions for all 67 AgentEvent types.
3
+ *
4
+ * Mirrors the TypeScript interfaces in events.ts and events-control.ts exactly.
5
+ * Every field, optional flag, and literal discriminant is preserved.
6
+ *
7
+ * @module
8
+ */
9
+ import { type TObject, type TSchema } from '@sinclair/typebox';
10
+ /** Machine-readable error codes defined by agent-mux (from types.ts). */
11
+ export declare const ErrorCodeSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"CAPABILITY_ERROR">, import("@sinclair/typebox").TLiteral<"VALIDATION_ERROR">, import("@sinclair/typebox").TLiteral<"AUTH_ERROR">, import("@sinclair/typebox").TLiteral<"AGENT_NOT_FOUND">, import("@sinclair/typebox").TLiteral<"AGENT_NOT_INSTALLED">, import("@sinclair/typebox").TLiteral<"AGENT_CRASH">, import("@sinclair/typebox").TLiteral<"SPAWN_ERROR">, import("@sinclair/typebox").TLiteral<"TIMEOUT">, import("@sinclair/typebox").TLiteral<"INACTIVITY_TIMEOUT">, import("@sinclair/typebox").TLiteral<"PARSE_ERROR">, import("@sinclair/typebox").TLiteral<"CONFIG_ERROR">, import("@sinclair/typebox").TLiteral<"CONFIG_LOCK_ERROR">, import("@sinclair/typebox").TLiteral<"SESSION_NOT_FOUND">, import("@sinclair/typebox").TLiteral<"PROFILE_NOT_FOUND">, import("@sinclair/typebox").TLiteral<"PLUGIN_ERROR">, import("@sinclair/typebox").TLiteral<"RATE_LIMITED">, import("@sinclair/typebox").TLiteral<"CONTEXT_EXCEEDED">, import("@sinclair/typebox").TLiteral<"ABORTED">, import("@sinclair/typebox").TLiteral<"RUN_NOT_ACTIVE">, import("@sinclair/typebox").TLiteral<"STDIN_NOT_AVAILABLE">, import("@sinclair/typebox").TLiteral<"NO_PENDING_INTERACTION">, import("@sinclair/typebox").TLiteral<"INTERACTION_NOT_FOUND">, import("@sinclair/typebox").TLiteral<"INVALID_STATE_TRANSITION">, import("@sinclair/typebox").TLiteral<"PTY_NOT_AVAILABLE">, import("@sinclair/typebox").TLiteral<"UNKNOWN_AGENT">, import("@sinclair/typebox").TLiteral<"INTERNAL">]>;
12
+ /** Aggregated cost data for a single run (from types.ts). */
13
+ export declare const CostRecordSchema: TObject<{
14
+ totalUsd: import("@sinclair/typebox").TNumber;
15
+ inputTokens: import("@sinclair/typebox").TNumber;
16
+ outputTokens: import("@sinclair/typebox").TNumber;
17
+ thinkingTokens: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
18
+ cachedTokens: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
19
+ cacheCreationTokens: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
20
+ cacheReadTokens: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
21
+ }>;
22
+ /** The base shape shared by every event. */
23
+ export declare const BaseEventSchema: TObject<{
24
+ type: import("@sinclair/typebox").TString;
25
+ runId: import("@sinclair/typebox").TString;
26
+ agent: import("@sinclair/typebox").TString;
27
+ timestamp: import("@sinclair/typebox").TNumber;
28
+ source: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
29
+ raw: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
30
+ }>;
31
+ export declare const SessionStartEventSchema: TObject<import("@sinclair/typebox").TProperties>;
32
+ export declare const SessionResumeEventSchema: TObject<import("@sinclair/typebox").TProperties>;
33
+ export declare const SessionForkEventSchema: TObject<import("@sinclair/typebox").TProperties>;
34
+ export declare const SessionCheckpointEventSchema: TObject<import("@sinclair/typebox").TProperties>;
35
+ export declare const SessionEndEventSchema: TObject<import("@sinclair/typebox").TProperties>;
36
+ export declare const TurnStartEventSchema: TObject<import("@sinclair/typebox").TProperties>;
37
+ export declare const TurnEndEventSchema: TObject<import("@sinclair/typebox").TProperties>;
38
+ export declare const StepStartEventSchema: TObject<import("@sinclair/typebox").TProperties>;
39
+ export declare const StepEndEventSchema: TObject<import("@sinclair/typebox").TProperties>;
40
+ export declare const MessageStartEventSchema: TObject<import("@sinclair/typebox").TProperties>;
41
+ export declare const TextDeltaEventSchema: TObject<import("@sinclair/typebox").TProperties>;
42
+ export declare const MessageStopEventSchema: TObject<import("@sinclair/typebox").TProperties>;
43
+ export declare const ThinkingStartEventSchema: TObject<import("@sinclair/typebox").TProperties>;
44
+ export declare const ThinkingDeltaEventSchema: TObject<import("@sinclair/typebox").TProperties>;
45
+ export declare const ThinkingStopEventSchema: TObject<import("@sinclair/typebox").TProperties>;
46
+ export declare const ToolCallStartEventSchema: TObject<import("@sinclair/typebox").TProperties>;
47
+ export declare const ToolInputDeltaEventSchema: TObject<import("@sinclair/typebox").TProperties>;
48
+ export declare const ToolCallReadyEventSchema: TObject<import("@sinclair/typebox").TProperties>;
49
+ export declare const ToolResultEventSchema: TObject<import("@sinclair/typebox").TProperties>;
50
+ export declare const ToolErrorEventSchema: TObject<import("@sinclair/typebox").TProperties>;
51
+ export declare const FileReadEventSchema: TObject<import("@sinclair/typebox").TProperties>;
52
+ export declare const FileWriteEventSchema: TObject<import("@sinclair/typebox").TProperties>;
53
+ export declare const FileCreateEventSchema: TObject<import("@sinclair/typebox").TProperties>;
54
+ export declare const FileDeleteEventSchema: TObject<import("@sinclair/typebox").TProperties>;
55
+ export declare const FilePatchEventSchema: TObject<import("@sinclair/typebox").TProperties>;
56
+ export declare const ShellStartEventSchema: TObject<import("@sinclair/typebox").TProperties>;
57
+ export declare const ShellStdoutDeltaEventSchema: TObject<import("@sinclair/typebox").TProperties>;
58
+ export declare const ShellStderrDeltaEventSchema: TObject<import("@sinclair/typebox").TProperties>;
59
+ export declare const ShellExitEventSchema: TObject<import("@sinclair/typebox").TProperties>;
60
+ export declare const McpToolCallStartEventSchema: TObject<import("@sinclair/typebox").TProperties>;
61
+ export declare const McpToolResultEventSchema: TObject<import("@sinclair/typebox").TProperties>;
62
+ export declare const McpToolErrorEventSchema: TObject<import("@sinclair/typebox").TProperties>;
63
+ export declare const SubagentSpawnEventSchema: TObject<import("@sinclair/typebox").TProperties>;
64
+ export declare const SubagentResultEventSchema: TObject<import("@sinclair/typebox").TProperties>;
65
+ export declare const SubagentErrorEventSchema: TObject<import("@sinclair/typebox").TProperties>;
66
+ export declare const PluginLoadedEventSchema: TObject<import("@sinclair/typebox").TProperties>;
67
+ export declare const PluginInvokedEventSchema: TObject<import("@sinclair/typebox").TProperties>;
68
+ export declare const PluginErrorEventSchema: TObject<import("@sinclair/typebox").TProperties>;
69
+ export declare const SkillLoadedEventSchema: TObject<import("@sinclair/typebox").TProperties>;
70
+ export declare const SkillInvokedEventSchema: TObject<import("@sinclair/typebox").TProperties>;
71
+ export declare const AgentdocReadEventSchema: TObject<import("@sinclair/typebox").TProperties>;
72
+ export declare const ImageOutputEventSchema: TObject<import("@sinclair/typebox").TProperties>;
73
+ export declare const ImageInputAckEventSchema: TObject<import("@sinclair/typebox").TProperties>;
74
+ export declare const CostEventSchema: TObject<import("@sinclair/typebox").TProperties>;
75
+ export declare const TokenUsageEventSchema: TObject<import("@sinclair/typebox").TProperties>;
76
+ export declare const InputRequiredEventSchema: TObject<import("@sinclair/typebox").TProperties>;
77
+ export declare const ApprovalRequestEventSchema: TObject<import("@sinclair/typebox").TProperties>;
78
+ export declare const ApprovalGrantedEventSchema: TObject<import("@sinclair/typebox").TProperties>;
79
+ export declare const ApprovalDeniedEventSchema: TObject<import("@sinclair/typebox").TProperties>;
80
+ export declare const RateLimitedEventSchema: TObject<import("@sinclair/typebox").TProperties>;
81
+ export declare const ContextLimitWarningEventSchema: TObject<import("@sinclair/typebox").TProperties>;
82
+ export declare const ContextCompactedEventSchema: TObject<import("@sinclair/typebox").TProperties>;
83
+ export declare const RetryEventSchema: TObject<import("@sinclair/typebox").TProperties>;
84
+ export declare const InterruptedEventSchema: TObject<import("@sinclair/typebox").TProperties>;
85
+ export declare const AbortedEventSchema: TObject<import("@sinclair/typebox").TProperties>;
86
+ export declare const PausedEventSchema: TObject<import("@sinclair/typebox").TProperties>;
87
+ export declare const ResumedEventSchema: TObject<import("@sinclair/typebox").TProperties>;
88
+ export declare const TimeoutEventSchema: TObject<import("@sinclair/typebox").TProperties>;
89
+ export declare const TurnLimitEventSchema: TObject<import("@sinclair/typebox").TProperties>;
90
+ export declare const StreamFallbackEventSchema: TObject<import("@sinclair/typebox").TProperties>;
91
+ export declare const AuthErrorEventSchema: TObject<import("@sinclair/typebox").TProperties>;
92
+ export declare const RateLimitErrorEventSchema: TObject<import("@sinclair/typebox").TProperties>;
93
+ export declare const ContextExceededEventSchema: TObject<import("@sinclair/typebox").TProperties>;
94
+ export declare const CrashEventSchema: TObject<import("@sinclair/typebox").TProperties>;
95
+ export declare const ErrorEventSchema: TObject<import("@sinclair/typebox").TProperties>;
96
+ export declare const DebugEventSchema: TObject<import("@sinclair/typebox").TProperties>;
97
+ export declare const LogEventSchema: TObject<import("@sinclair/typebox").TProperties>;
98
+ /**
99
+ * Maps every event `type` discriminant string to its TypeBox schema.
100
+ * Useful for runtime lookup and validation by event type.
101
+ */
102
+ export declare const eventSchemaRegistry: Record<string, TSchema>;
103
+ /** Total count of registered event schemas. */
104
+ export declare const EVENT_SCHEMA_COUNT: number;
105
+ /** TypeBox union schema covering all 67 event types. */
106
+ export declare const AgentEventSchema: import("@sinclair/typebox").TUnion<[TSchema, ...TSchema[]]>;
107
+ /** Result of validating an unknown value against the event schemas. */
108
+ export interface EventValidationResult {
109
+ valid: boolean;
110
+ eventType?: string;
111
+ errors?: string[];
112
+ }
113
+ /**
114
+ * Validate an unknown value as an AgentEvent.
115
+ *
116
+ * First checks if the value has a `type` field that maps to a known schema,
117
+ * then validates against that specific schema for precise error messages.
118
+ * Falls back to validating against the full union if the type is unknown.
119
+ */
120
+ export declare function validateEvent(event: unknown): EventValidationResult;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-schema.d.ts","sourceRoot":"","sources":["../../src/schema/event-schema.ts"],"names":[],"mappings":"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"}