agent-relay 2.0.32 → 2.0.34

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 (68) hide show
  1. package/README.md +44 -0
  2. package/dist/index.cjs +7231 -6234
  3. package/package.json +19 -18
  4. package/packages/api-types/.trajectories/active/traj_xbsvuzogscey.json +15 -0
  5. package/packages/api-types/.trajectories/index.json +12 -0
  6. package/packages/api-types/package.json +1 -1
  7. package/packages/benchmark/package.json +4 -4
  8. package/packages/bridge/dist/spawner.d.ts.map +1 -1
  9. package/packages/bridge/dist/spawner.js +127 -0
  10. package/packages/bridge/dist/spawner.js.map +1 -1
  11. package/packages/bridge/package.json +8 -8
  12. package/packages/bridge/src/spawner.ts +137 -0
  13. package/packages/cli-tester/package.json +1 -1
  14. package/packages/config/package.json +2 -2
  15. package/packages/continuity/package.json +1 -1
  16. package/packages/daemon/package.json +12 -12
  17. package/packages/hooks/package.json +4 -4
  18. package/packages/mcp/package.json +3 -3
  19. package/packages/memory/package.json +2 -2
  20. package/packages/policy/package.json +2 -2
  21. package/packages/protocol/package.json +1 -1
  22. package/packages/resiliency/package.json +1 -1
  23. package/packages/sdk/package.json +2 -2
  24. package/packages/spawner/package.json +1 -1
  25. package/packages/state/package.json +1 -1
  26. package/packages/storage/package.json +2 -2
  27. package/packages/telemetry/package.json +1 -1
  28. package/packages/trajectory/package.json +2 -2
  29. package/packages/user-directory/package.json +2 -2
  30. package/packages/utils/package.json +2 -2
  31. package/packages/wrapper/dist/base-wrapper.d.ts.map +1 -1
  32. package/packages/wrapper/dist/base-wrapper.js +27 -7
  33. package/packages/wrapper/dist/base-wrapper.js.map +1 -1
  34. package/packages/wrapper/dist/client.d.ts +27 -0
  35. package/packages/wrapper/dist/client.d.ts.map +1 -1
  36. package/packages/wrapper/dist/client.js +116 -0
  37. package/packages/wrapper/dist/client.js.map +1 -1
  38. package/packages/wrapper/dist/index.d.ts +3 -0
  39. package/packages/wrapper/dist/index.d.ts.map +1 -1
  40. package/packages/wrapper/dist/index.js +6 -0
  41. package/packages/wrapper/dist/index.js.map +1 -1
  42. package/packages/wrapper/dist/opencode-api.d.ts +106 -0
  43. package/packages/wrapper/dist/opencode-api.d.ts.map +1 -0
  44. package/packages/wrapper/dist/opencode-api.js +219 -0
  45. package/packages/wrapper/dist/opencode-api.js.map +1 -0
  46. package/packages/wrapper/dist/opencode-wrapper.d.ts +157 -0
  47. package/packages/wrapper/dist/opencode-wrapper.d.ts.map +1 -0
  48. package/packages/wrapper/dist/opencode-wrapper.js +414 -0
  49. package/packages/wrapper/dist/opencode-wrapper.js.map +1 -0
  50. package/packages/wrapper/dist/relay-pty-orchestrator.d.ts.map +1 -1
  51. package/packages/wrapper/dist/relay-pty-orchestrator.js +18 -0
  52. package/packages/wrapper/dist/relay-pty-orchestrator.js.map +1 -1
  53. package/packages/wrapper/dist/wrapper-events.d.ts +489 -0
  54. package/packages/wrapper/dist/wrapper-events.d.ts.map +1 -0
  55. package/packages/wrapper/dist/wrapper-events.js +252 -0
  56. package/packages/wrapper/dist/wrapper-events.js.map +1 -0
  57. package/packages/wrapper/package.json +7 -6
  58. package/packages/wrapper/src/base-wrapper.ts +23 -7
  59. package/packages/wrapper/src/client.test.ts +92 -3
  60. package/packages/wrapper/src/client.ts +163 -0
  61. package/packages/wrapper/src/index.ts +29 -0
  62. package/packages/wrapper/src/opencode-api.test.ts +292 -0
  63. package/packages/wrapper/src/opencode-api.ts +285 -0
  64. package/packages/wrapper/src/opencode-wrapper.ts +513 -0
  65. package/packages/wrapper/src/relay-pty-orchestrator.test.ts +176 -0
  66. package/packages/wrapper/src/relay-pty-orchestrator.ts +20 -0
  67. package/packages/wrapper/src/wrapper-events.ts +395 -0
  68. package/scripts/postinstall.js +147 -2
@@ -0,0 +1,489 @@
1
+ /**
2
+ * Typed Event Definitions for Agent Relay Wrapper
3
+ *
4
+ * Inspired by opencode's BusEvent pattern, this provides type-safe event
5
+ * definitions with Zod schema validation. Events can be used for:
6
+ * - Wrapper internal notifications
7
+ * - SDK client subscriptions
8
+ * - OpenAPI spec generation
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * import { RelayEvent, emitEvent, onEvent } from './wrapper-events.js';
13
+ *
14
+ * // Subscribe to events
15
+ * onEvent(RelayEvent.AgentConnected, (event) => {
16
+ * console.log(`Agent ${event.properties.agentName} connected`);
17
+ * });
18
+ *
19
+ * // Emit events
20
+ * emitEvent(RelayEvent.AgentConnected, {
21
+ * agentName: 'MyAgent',
22
+ * connectionId: 'abc123',
23
+ * });
24
+ * ```
25
+ */
26
+ import { z } from 'zod';
27
+ import { EventEmitter } from 'node:events';
28
+ /**
29
+ * Event definition with type and schema
30
+ */
31
+ export interface EventDefinition<Type extends string = string, Schema extends z.ZodType = z.ZodType> {
32
+ type: Type;
33
+ schema: Schema;
34
+ }
35
+ /**
36
+ * Define a typed event with Zod schema validation
37
+ */
38
+ export declare function defineEvent<Type extends string, Schema extends z.ZodType>(type: Type, schema: Schema): EventDefinition<Type, Schema>;
39
+ /**
40
+ * Infer the properties type from an event definition
41
+ */
42
+ export type EventProperties<E extends EventDefinition> = z.infer<E['schema']>;
43
+ /**
44
+ * Event payload with type and properties
45
+ */
46
+ export interface EventPayload<E extends EventDefinition = EventDefinition> {
47
+ type: E['type'];
48
+ properties: EventProperties<E>;
49
+ timestamp: number;
50
+ }
51
+ export declare namespace RelayEvent {
52
+ const AgentConnected: EventDefinition<"daemon.agent.connected", z.ZodObject<{
53
+ agentName: z.ZodString;
54
+ connectionId: z.ZodString;
55
+ cli: z.ZodOptional<z.ZodString>;
56
+ task: z.ZodOptional<z.ZodString>;
57
+ workingDirectory: z.ZodOptional<z.ZodString>;
58
+ }, "strip", z.ZodTypeAny, {
59
+ agentName: string;
60
+ connectionId: string;
61
+ cli?: string | undefined;
62
+ task?: string | undefined;
63
+ workingDirectory?: string | undefined;
64
+ }, {
65
+ agentName: string;
66
+ connectionId: string;
67
+ cli?: string | undefined;
68
+ task?: string | undefined;
69
+ workingDirectory?: string | undefined;
70
+ }>>;
71
+ const AgentDisconnected: EventDefinition<"daemon.agent.disconnected", z.ZodObject<{
72
+ agentName: z.ZodString;
73
+ connectionId: z.ZodString;
74
+ reason: z.ZodOptional<z.ZodEnum<["clean", "error", "timeout", "replaced"]>>;
75
+ }, "strip", z.ZodTypeAny, {
76
+ agentName: string;
77
+ connectionId: string;
78
+ reason?: "error" | "timeout" | "clean" | "replaced" | undefined;
79
+ }, {
80
+ agentName: string;
81
+ connectionId: string;
82
+ reason?: "error" | "timeout" | "clean" | "replaced" | undefined;
83
+ }>>;
84
+ const AgentSpawned: EventDefinition<"daemon.agent.spawned", z.ZodObject<{
85
+ agentName: z.ZodString;
86
+ parentAgent: z.ZodString;
87
+ cli: z.ZodString;
88
+ task: z.ZodString;
89
+ }, "strip", z.ZodTypeAny, {
90
+ agentName: string;
91
+ cli: string;
92
+ task: string;
93
+ parentAgent: string;
94
+ }, {
95
+ agentName: string;
96
+ cli: string;
97
+ task: string;
98
+ parentAgent: string;
99
+ }>>;
100
+ const AgentReleased: EventDefinition<"daemon.agent.released", z.ZodObject<{
101
+ agentName: z.ZodString;
102
+ releasedBy: z.ZodString;
103
+ }, "strip", z.ZodTypeAny, {
104
+ agentName: string;
105
+ releasedBy: string;
106
+ }, {
107
+ agentName: string;
108
+ releasedBy: string;
109
+ }>>;
110
+ const MessageRouted: EventDefinition<"daemon.message.routed", z.ZodObject<{
111
+ messageId: z.ZodString;
112
+ from: z.ZodString;
113
+ to: z.ZodString;
114
+ kind: z.ZodOptional<z.ZodString>;
115
+ bodyPreview: z.ZodOptional<z.ZodString>;
116
+ }, "strip", z.ZodTypeAny, {
117
+ to: string;
118
+ from: string;
119
+ messageId: string;
120
+ kind?: string | undefined;
121
+ bodyPreview?: string | undefined;
122
+ }, {
123
+ to: string;
124
+ from: string;
125
+ messageId: string;
126
+ kind?: string | undefined;
127
+ bodyPreview?: string | undefined;
128
+ }>>;
129
+ const MessageDelivered: EventDefinition<"daemon.message.delivered", z.ZodObject<{
130
+ messageId: z.ZodString;
131
+ to: z.ZodString;
132
+ deliverySeq: z.ZodNumber;
133
+ }, "strip", z.ZodTypeAny, {
134
+ to: string;
135
+ messageId: string;
136
+ deliverySeq: number;
137
+ }, {
138
+ to: string;
139
+ messageId: string;
140
+ deliverySeq: number;
141
+ }>>;
142
+ const MessageFailed: EventDefinition<"daemon.message.failed", z.ZodObject<{
143
+ messageId: z.ZodString;
144
+ to: z.ZodString;
145
+ error: z.ZodString;
146
+ }, "strip", z.ZodTypeAny, {
147
+ error: string;
148
+ to: string;
149
+ messageId: string;
150
+ }, {
151
+ error: string;
152
+ to: string;
153
+ messageId: string;
154
+ }>>;
155
+ const ChannelJoined: EventDefinition<"daemon.channel.joined", z.ZodObject<{
156
+ channel: z.ZodString;
157
+ member: z.ZodString;
158
+ }, "strip", z.ZodTypeAny, {
159
+ channel: string;
160
+ member: string;
161
+ }, {
162
+ channel: string;
163
+ member: string;
164
+ }>>;
165
+ const ChannelLeft: EventDefinition<"daemon.channel.left", z.ZodObject<{
166
+ channel: z.ZodString;
167
+ member: z.ZodString;
168
+ }, "strip", z.ZodTypeAny, {
169
+ channel: string;
170
+ member: string;
171
+ }, {
172
+ channel: string;
173
+ member: string;
174
+ }>>;
175
+ const ChannelMessage: EventDefinition<"daemon.channel.message", z.ZodObject<{
176
+ channel: z.ZodString;
177
+ from: z.ZodString;
178
+ bodyPreview: z.ZodOptional<z.ZodString>;
179
+ }, "strip", z.ZodTypeAny, {
180
+ from: string;
181
+ channel: string;
182
+ bodyPreview?: string | undefined;
183
+ }, {
184
+ from: string;
185
+ channel: string;
186
+ bodyPreview?: string | undefined;
187
+ }>>;
188
+ const AgentProcessingStarted: EventDefinition<"daemon.agent.processing.started", z.ZodObject<{
189
+ agentName: z.ZodString;
190
+ messageId: z.ZodString;
191
+ }, "strip", z.ZodTypeAny, {
192
+ agentName: string;
193
+ messageId: string;
194
+ }, {
195
+ agentName: string;
196
+ messageId: string;
197
+ }>>;
198
+ const AgentProcessingEnded: EventDefinition<"daemon.agent.processing.ended", z.ZodObject<{
199
+ agentName: z.ZodString;
200
+ durationMs: z.ZodOptional<z.ZodNumber>;
201
+ }, "strip", z.ZodTypeAny, {
202
+ agentName: string;
203
+ durationMs?: number | undefined;
204
+ }, {
205
+ agentName: string;
206
+ durationMs?: number | undefined;
207
+ }>>;
208
+ const ShadowBound: EventDefinition<"daemon.shadow.bound", z.ZodObject<{
209
+ shadowAgent: z.ZodString;
210
+ primaryAgent: z.ZodString;
211
+ speakOn: z.ZodArray<z.ZodString, "many">;
212
+ }, "strip", z.ZodTypeAny, {
213
+ shadowAgent: string;
214
+ primaryAgent: string;
215
+ speakOn: string[];
216
+ }, {
217
+ shadowAgent: string;
218
+ primaryAgent: string;
219
+ speakOn: string[];
220
+ }>>;
221
+ const ShadowUnbound: EventDefinition<"daemon.shadow.unbound", z.ZodObject<{
222
+ shadowAgent: z.ZodString;
223
+ primaryAgent: z.ZodString;
224
+ }, "strip", z.ZodTypeAny, {
225
+ shadowAgent: string;
226
+ primaryAgent: string;
227
+ }, {
228
+ shadowAgent: string;
229
+ primaryAgent: string;
230
+ }>>;
231
+ const DaemonStarted: EventDefinition<"daemon.system.started", z.ZodObject<{
232
+ socketPath: z.ZodString;
233
+ version: z.ZodOptional<z.ZodString>;
234
+ }, "strip", z.ZodTypeAny, {
235
+ socketPath: string;
236
+ version?: string | undefined;
237
+ }, {
238
+ socketPath: string;
239
+ version?: string | undefined;
240
+ }>>;
241
+ const DaemonStopped: EventDefinition<"daemon.system.stopped", z.ZodObject<{
242
+ reason: z.ZodOptional<z.ZodString>;
243
+ }, "strip", z.ZodTypeAny, {
244
+ reason?: string | undefined;
245
+ }, {
246
+ reason?: string | undefined;
247
+ }>>;
248
+ const RateLimitExceeded: EventDefinition<"daemon.system.rate_limit_exceeded", z.ZodObject<{
249
+ agentName: z.ZodString;
250
+ }, "strip", z.ZodTypeAny, {
251
+ agentName: string;
252
+ }, {
253
+ agentName: string;
254
+ }>>;
255
+ const all: readonly [EventDefinition<"daemon.agent.connected", z.ZodObject<{
256
+ agentName: z.ZodString;
257
+ connectionId: z.ZodString;
258
+ cli: z.ZodOptional<z.ZodString>;
259
+ task: z.ZodOptional<z.ZodString>;
260
+ workingDirectory: z.ZodOptional<z.ZodString>;
261
+ }, "strip", z.ZodTypeAny, {
262
+ agentName: string;
263
+ connectionId: string;
264
+ cli?: string | undefined;
265
+ task?: string | undefined;
266
+ workingDirectory?: string | undefined;
267
+ }, {
268
+ agentName: string;
269
+ connectionId: string;
270
+ cli?: string | undefined;
271
+ task?: string | undefined;
272
+ workingDirectory?: string | undefined;
273
+ }>>, EventDefinition<"daemon.agent.disconnected", z.ZodObject<{
274
+ agentName: z.ZodString;
275
+ connectionId: z.ZodString;
276
+ reason: z.ZodOptional<z.ZodEnum<["clean", "error", "timeout", "replaced"]>>;
277
+ }, "strip", z.ZodTypeAny, {
278
+ agentName: string;
279
+ connectionId: string;
280
+ reason?: "error" | "timeout" | "clean" | "replaced" | undefined;
281
+ }, {
282
+ agentName: string;
283
+ connectionId: string;
284
+ reason?: "error" | "timeout" | "clean" | "replaced" | undefined;
285
+ }>>, EventDefinition<"daemon.agent.spawned", z.ZodObject<{
286
+ agentName: z.ZodString;
287
+ parentAgent: z.ZodString;
288
+ cli: z.ZodString;
289
+ task: z.ZodString;
290
+ }, "strip", z.ZodTypeAny, {
291
+ agentName: string;
292
+ cli: string;
293
+ task: string;
294
+ parentAgent: string;
295
+ }, {
296
+ agentName: string;
297
+ cli: string;
298
+ task: string;
299
+ parentAgent: string;
300
+ }>>, EventDefinition<"daemon.agent.released", z.ZodObject<{
301
+ agentName: z.ZodString;
302
+ releasedBy: z.ZodString;
303
+ }, "strip", z.ZodTypeAny, {
304
+ agentName: string;
305
+ releasedBy: string;
306
+ }, {
307
+ agentName: string;
308
+ releasedBy: string;
309
+ }>>, EventDefinition<"daemon.message.routed", z.ZodObject<{
310
+ messageId: z.ZodString;
311
+ from: z.ZodString;
312
+ to: z.ZodString;
313
+ kind: z.ZodOptional<z.ZodString>;
314
+ bodyPreview: z.ZodOptional<z.ZodString>;
315
+ }, "strip", z.ZodTypeAny, {
316
+ to: string;
317
+ from: string;
318
+ messageId: string;
319
+ kind?: string | undefined;
320
+ bodyPreview?: string | undefined;
321
+ }, {
322
+ to: string;
323
+ from: string;
324
+ messageId: string;
325
+ kind?: string | undefined;
326
+ bodyPreview?: string | undefined;
327
+ }>>, EventDefinition<"daemon.message.delivered", z.ZodObject<{
328
+ messageId: z.ZodString;
329
+ to: z.ZodString;
330
+ deliverySeq: z.ZodNumber;
331
+ }, "strip", z.ZodTypeAny, {
332
+ to: string;
333
+ messageId: string;
334
+ deliverySeq: number;
335
+ }, {
336
+ to: string;
337
+ messageId: string;
338
+ deliverySeq: number;
339
+ }>>, EventDefinition<"daemon.message.failed", z.ZodObject<{
340
+ messageId: z.ZodString;
341
+ to: z.ZodString;
342
+ error: z.ZodString;
343
+ }, "strip", z.ZodTypeAny, {
344
+ error: string;
345
+ to: string;
346
+ messageId: string;
347
+ }, {
348
+ error: string;
349
+ to: string;
350
+ messageId: string;
351
+ }>>, EventDefinition<"daemon.channel.joined", z.ZodObject<{
352
+ channel: z.ZodString;
353
+ member: z.ZodString;
354
+ }, "strip", z.ZodTypeAny, {
355
+ channel: string;
356
+ member: string;
357
+ }, {
358
+ channel: string;
359
+ member: string;
360
+ }>>, EventDefinition<"daemon.channel.left", z.ZodObject<{
361
+ channel: z.ZodString;
362
+ member: z.ZodString;
363
+ }, "strip", z.ZodTypeAny, {
364
+ channel: string;
365
+ member: string;
366
+ }, {
367
+ channel: string;
368
+ member: string;
369
+ }>>, EventDefinition<"daemon.channel.message", z.ZodObject<{
370
+ channel: z.ZodString;
371
+ from: z.ZodString;
372
+ bodyPreview: z.ZodOptional<z.ZodString>;
373
+ }, "strip", z.ZodTypeAny, {
374
+ from: string;
375
+ channel: string;
376
+ bodyPreview?: string | undefined;
377
+ }, {
378
+ from: string;
379
+ channel: string;
380
+ bodyPreview?: string | undefined;
381
+ }>>, EventDefinition<"daemon.agent.processing.started", z.ZodObject<{
382
+ agentName: z.ZodString;
383
+ messageId: z.ZodString;
384
+ }, "strip", z.ZodTypeAny, {
385
+ agentName: string;
386
+ messageId: string;
387
+ }, {
388
+ agentName: string;
389
+ messageId: string;
390
+ }>>, EventDefinition<"daemon.agent.processing.ended", z.ZodObject<{
391
+ agentName: z.ZodString;
392
+ durationMs: z.ZodOptional<z.ZodNumber>;
393
+ }, "strip", z.ZodTypeAny, {
394
+ agentName: string;
395
+ durationMs?: number | undefined;
396
+ }, {
397
+ agentName: string;
398
+ durationMs?: number | undefined;
399
+ }>>, EventDefinition<"daemon.shadow.bound", z.ZodObject<{
400
+ shadowAgent: z.ZodString;
401
+ primaryAgent: z.ZodString;
402
+ speakOn: z.ZodArray<z.ZodString, "many">;
403
+ }, "strip", z.ZodTypeAny, {
404
+ shadowAgent: string;
405
+ primaryAgent: string;
406
+ speakOn: string[];
407
+ }, {
408
+ shadowAgent: string;
409
+ primaryAgent: string;
410
+ speakOn: string[];
411
+ }>>, EventDefinition<"daemon.shadow.unbound", z.ZodObject<{
412
+ shadowAgent: z.ZodString;
413
+ primaryAgent: z.ZodString;
414
+ }, "strip", z.ZodTypeAny, {
415
+ shadowAgent: string;
416
+ primaryAgent: string;
417
+ }, {
418
+ shadowAgent: string;
419
+ primaryAgent: string;
420
+ }>>, EventDefinition<"daemon.system.started", z.ZodObject<{
421
+ socketPath: z.ZodString;
422
+ version: z.ZodOptional<z.ZodString>;
423
+ }, "strip", z.ZodTypeAny, {
424
+ socketPath: string;
425
+ version?: string | undefined;
426
+ }, {
427
+ socketPath: string;
428
+ version?: string | undefined;
429
+ }>>, EventDefinition<"daemon.system.stopped", z.ZodObject<{
430
+ reason: z.ZodOptional<z.ZodString>;
431
+ }, "strip", z.ZodTypeAny, {
432
+ reason?: string | undefined;
433
+ }, {
434
+ reason?: string | undefined;
435
+ }>>, EventDefinition<"daemon.system.rate_limit_exceeded", z.ZodObject<{
436
+ agentName: z.ZodString;
437
+ }, "strip", z.ZodTypeAny, {
438
+ agentName: string;
439
+ }, {
440
+ agentName: string;
441
+ }>>];
442
+ }
443
+ /**
444
+ * Type-safe event bus for daemon events
445
+ */
446
+ declare class RelayEventBus extends EventEmitter {
447
+ private static instance;
448
+ private constructor();
449
+ static getInstance(): RelayEventBus;
450
+ /**
451
+ * Emit a typed event
452
+ */
453
+ emitEvent<E extends EventDefinition>(definition: E, properties: EventProperties<E>): void;
454
+ /**
455
+ * Subscribe to a typed event
456
+ */
457
+ onEvent<E extends EventDefinition>(definition: E, callback: (event: EventPayload<E>) => void): () => void;
458
+ /**
459
+ * Subscribe to all events (wildcard)
460
+ */
461
+ onAnyEvent(callback: (event: EventPayload) => void): () => void;
462
+ /**
463
+ * Subscribe to an event once
464
+ */
465
+ onceEvent<E extends EventDefinition>(definition: E, callback: (event: EventPayload<E>) => void): void;
466
+ }
467
+ /**
468
+ * Global daemon event bus instance
469
+ */
470
+ export declare const relayEventBus: RelayEventBus;
471
+ /**
472
+ * Emit a daemon event
473
+ */
474
+ export declare function emitEvent<E extends EventDefinition>(definition: E, properties: EventProperties<E>): void;
475
+ /**
476
+ * Subscribe to a daemon event
477
+ */
478
+ export declare function onEvent<E extends EventDefinition>(definition: E, callback: (event: EventPayload<E>) => void): () => void;
479
+ /**
480
+ * Subscribe to all daemon events
481
+ */
482
+ export declare function onAnyEvent(callback: (event: EventPayload) => void): () => void;
483
+ /**
484
+ * Generate OpenAPI-compatible schema for all daemon events
485
+ * This can be used to auto-generate SDK types
486
+ */
487
+ export declare function generateEventSchemas(): Record<string, unknown>;
488
+ export {};
489
+ //# sourceMappingURL=wrapper-events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrapper-events.d.ts","sourceRoot":"","sources":["../src/wrapper-events.ts"],"names":[],"mappings":"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"}