@agentick/shared 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +322 -0
  3. package/dist/.tsbuildinfo +1 -0
  4. package/dist/.tsbuildinfo.build +1 -0
  5. package/dist/block-types.d.ts +85 -0
  6. package/dist/block-types.d.ts.map +1 -0
  7. package/dist/block-types.js +98 -0
  8. package/dist/block-types.js.map +1 -0
  9. package/dist/blocks.d.ts +396 -0
  10. package/dist/blocks.d.ts.map +1 -0
  11. package/dist/blocks.js +209 -0
  12. package/dist/blocks.js.map +1 -0
  13. package/dist/devtools.d.ts +672 -0
  14. package/dist/devtools.d.ts.map +1 -0
  15. package/dist/devtools.js +445 -0
  16. package/dist/devtools.js.map +1 -0
  17. package/dist/errors.d.ts +335 -0
  18. package/dist/errors.d.ts.map +1 -0
  19. package/dist/errors.js +529 -0
  20. package/dist/errors.js.map +1 -0
  21. package/dist/identity.d.ts +99 -0
  22. package/dist/identity.d.ts.map +1 -0
  23. package/dist/identity.js +116 -0
  24. package/dist/identity.js.map +1 -0
  25. package/dist/index.d.ts +56 -0
  26. package/dist/index.d.ts.map +1 -0
  27. package/dist/index.js +56 -0
  28. package/dist/index.js.map +1 -0
  29. package/dist/input.d.ts +55 -0
  30. package/dist/input.d.ts.map +1 -0
  31. package/dist/input.js +83 -0
  32. package/dist/input.js.map +1 -0
  33. package/dist/messages.d.ts +98 -0
  34. package/dist/messages.d.ts.map +1 -0
  35. package/dist/messages.js +81 -0
  36. package/dist/messages.js.map +1 -0
  37. package/dist/model-catalog.d.ts +144 -0
  38. package/dist/model-catalog.d.ts.map +1 -0
  39. package/dist/model-catalog.js +861 -0
  40. package/dist/model-catalog.js.map +1 -0
  41. package/dist/models.d.ts +173 -0
  42. package/dist/models.d.ts.map +1 -0
  43. package/dist/models.js +10 -0
  44. package/dist/models.js.map +1 -0
  45. package/dist/protocol.d.ts +257 -0
  46. package/dist/protocol.d.ts.map +1 -0
  47. package/dist/protocol.js +41 -0
  48. package/dist/protocol.js.map +1 -0
  49. package/dist/streaming.d.ts +635 -0
  50. package/dist/streaming.d.ts.map +1 -0
  51. package/dist/streaming.js +134 -0
  52. package/dist/streaming.js.map +1 -0
  53. package/dist/testing/fixtures.d.ts +250 -0
  54. package/dist/testing/fixtures.d.ts.map +1 -0
  55. package/dist/testing/fixtures.js +827 -0
  56. package/dist/testing/fixtures.js.map +1 -0
  57. package/dist/testing/helpers.d.ts +95 -0
  58. package/dist/testing/helpers.d.ts.map +1 -0
  59. package/dist/testing/helpers.js +271 -0
  60. package/dist/testing/helpers.js.map +1 -0
  61. package/dist/testing/index.d.ts +42 -0
  62. package/dist/testing/index.d.ts.map +1 -0
  63. package/dist/testing/index.js +70 -0
  64. package/dist/testing/index.js.map +1 -0
  65. package/dist/timeline.d.ts +59 -0
  66. package/dist/timeline.d.ts.map +1 -0
  67. package/dist/timeline.js +11 -0
  68. package/dist/timeline.js.map +1 -0
  69. package/dist/tools.d.ts +220 -0
  70. package/dist/tools.d.ts.map +1 -0
  71. package/dist/tools.js +63 -0
  72. package/dist/tools.js.map +1 -0
  73. package/dist/utils/entity-ids.d.ts +26 -0
  74. package/dist/utils/entity-ids.d.ts.map +1 -0
  75. package/dist/utils/entity-ids.js +44 -0
  76. package/dist/utils/entity-ids.js.map +1 -0
  77. package/dist/utils/index.d.ts +3 -0
  78. package/dist/utils/index.d.ts.map +1 -0
  79. package/dist/utils/index.js +3 -0
  80. package/dist/utils/index.js.map +1 -0
  81. package/dist/utils/merge-deep.d.ts +10 -0
  82. package/dist/utils/merge-deep.d.ts.map +1 -0
  83. package/dist/utils/merge-deep.js +33 -0
  84. package/dist/utils/merge-deep.js.map +1 -0
  85. package/package.json +84 -0
@@ -0,0 +1,672 @@
1
+ /**
2
+ * DevTools Event Types and Emitter
3
+ *
4
+ * This module provides the event types and singleton emitter for DevTools integration.
5
+ * The engine emits events to this emitter, and DevTools subscribes to receive them.
6
+ *
7
+ * @module @agentick/shared/devtools
8
+ */
9
+ import type { UsageStats, Message, ToolDefinition } from "./index";
10
+ /**
11
+ * DevTools channel name - used for engine to emit events
12
+ */
13
+ export declare const DEVTOOLS_CHANNEL = "__devtools__";
14
+ /**
15
+ * Base fields present on all DevTools events
16
+ */
17
+ export interface DevToolsEventBase {
18
+ /** Discriminator for event type */
19
+ type: string;
20
+ /** UUID of the execution context */
21
+ executionId: string;
22
+ /** Monotonically increasing sequence number from the source session */
23
+ sequence: number;
24
+ /** Unix timestamp in milliseconds */
25
+ timestamp: number;
26
+ /** Trace ID for distributed tracing correlation */
27
+ traceId?: string;
28
+ /** Request ID for this execution context */
29
+ requestId?: string;
30
+ /** Parent execution ID for nested executions (fork, spawn, component_tool) */
31
+ parentExecutionId?: string;
32
+ /** Current procedure ID */
33
+ procedureId?: string;
34
+ /** User ID from context (for attribution and multi-tenant filtering) */
35
+ userId?: string;
36
+ /** Tenant ID from context (for multi-tenant dashboards) */
37
+ tenantId?: string;
38
+ }
39
+ /**
40
+ * Execution context fields for events in an execution tree
41
+ */
42
+ export interface ExecutionContextFields {
43
+ /** Parent execution ID (for fork/spawn) */
44
+ parentExecutionId?: string;
45
+ /** Root of the execution tree */
46
+ rootExecutionId?: string;
47
+ /** Engine instance ID (constant across executions) */
48
+ engineId?: string;
49
+ /** OpenTelemetry trace ID if available */
50
+ traceId?: string;
51
+ }
52
+ export interface DTExecutionStartEvent extends DevToolsEventBase, ExecutionContextFields {
53
+ type: "execution_start";
54
+ /** Component/agent name */
55
+ rootComponent: string;
56
+ /** User session ID if available */
57
+ sessionId?: string;
58
+ /** Type of execution */
59
+ executionType?: "root" | "fork" | "spawn";
60
+ }
61
+ export interface DTExecutionEndEvent extends DevToolsEventBase {
62
+ type: "execution_end";
63
+ /** Cumulative token usage across all ticks */
64
+ totalUsage: UsageStats;
65
+ /** Final execution state */
66
+ finalState?: "completed" | "cancelled" | "error";
67
+ /** Error details if finalState is 'error' */
68
+ error?: {
69
+ name: string;
70
+ message: string;
71
+ stack?: string;
72
+ };
73
+ }
74
+ export interface DTTickStartEvent extends DevToolsEventBase {
75
+ type: "tick_start";
76
+ /** 1-indexed tick number */
77
+ tick: number;
78
+ }
79
+ export interface DTTickEndEvent extends DevToolsEventBase {
80
+ type: "tick_end";
81
+ tick: number;
82
+ /** Token usage for this tick */
83
+ usage?: UsageStats;
84
+ /** Stop reason: "end_turn", "tool_use", "max_tokens", etc. */
85
+ stopReason?: string;
86
+ /** Model ID used this tick */
87
+ model?: string;
88
+ }
89
+ export interface DTCompiledEvent extends DevToolsEventBase {
90
+ type: "compiled";
91
+ tick: number;
92
+ /** Full conversation history (rendered timeline) */
93
+ messages: Message[];
94
+ /** Available tools */
95
+ tools: ToolDefinition[];
96
+ /** System prompt */
97
+ system?: string;
98
+ /** Raw compiled structure (before rendering) - JSX to semantic blocks */
99
+ rawCompiled?: {
100
+ sections: Record<string, unknown>;
101
+ timelineEntries: unknown[];
102
+ system: unknown[];
103
+ tools: unknown[];
104
+ ephemeral: unknown[];
105
+ };
106
+ /** Formatted COMInput (after rendering) - Markdown/XML applied */
107
+ formattedInput?: {
108
+ timeline: unknown[];
109
+ system: unknown[];
110
+ sections: Record<string, unknown>;
111
+ tools: unknown[];
112
+ ephemeral: unknown[];
113
+ metadata?: Record<string, unknown>;
114
+ };
115
+ }
116
+ export interface DTModelStartEvent extends DevToolsEventBase {
117
+ type: "model_start";
118
+ tick: number;
119
+ /** Model identifier, e.g., "claude-3-5-sonnet-20241022" */
120
+ modelId: string;
121
+ /** Provider name, e.g., "anthropic", "openai" */
122
+ provider?: string;
123
+ }
124
+ export interface DTModelRequestEvent extends DevToolsEventBase {
125
+ type: "model_request";
126
+ tick: number;
127
+ /** Model ID */
128
+ modelId?: string;
129
+ /** The formatted input in Agentick format (before provider transformation) */
130
+ input?: {
131
+ /** Messages array in Agentick format */
132
+ messages?: unknown[];
133
+ /** System prompt */
134
+ system?: string;
135
+ /** Tools available */
136
+ tools?: unknown[];
137
+ /** Other model parameters */
138
+ [key: string]: unknown;
139
+ };
140
+ /** Pipeline stage identifier */
141
+ stage?: "model_input";
142
+ }
143
+ export interface DTProviderRequestEvent extends DevToolsEventBase {
144
+ type: "provider_request";
145
+ /** Tick number */
146
+ tick: number;
147
+ /** Model ID */
148
+ modelId?: string;
149
+ /** Provider name (e.g., "openai", "anthropic", "google") */
150
+ provider?: string;
151
+ /** The actual input sent to the provider (after transformation)
152
+ * This is the exact shape the provider SDK receives (e.g., AI SDK format for Gemini)
153
+ */
154
+ providerInput?: unknown;
155
+ }
156
+ export interface DTProviderResponseEvent extends DevToolsEventBase {
157
+ type: "provider_response";
158
+ tick: number;
159
+ /** Model ID */
160
+ modelId?: string;
161
+ /** Provider name (e.g., "openai", "anthropic", "google") */
162
+ provider?: string;
163
+ /** Raw provider response before Agentick transformation */
164
+ providerOutput?: unknown;
165
+ }
166
+ export interface DTModelResponseEvent extends DevToolsEventBase {
167
+ type: "model_response";
168
+ tick: number;
169
+ /** Provider output (raw SDK response, may be reconstructed for streaming) */
170
+ providerOutput?: unknown;
171
+ /** ModelOutput (normalized Agentick format) */
172
+ modelOutput?: {
173
+ model?: string;
174
+ message?: Message;
175
+ usage?: UsageStats;
176
+ stopReason?: string;
177
+ toolCalls?: Array<{
178
+ id: string;
179
+ name: string;
180
+ input: unknown;
181
+ }>;
182
+ };
183
+ /** Engine state (how response is ingested into timeline) */
184
+ engineState?: {
185
+ newTimelineEntries?: unknown[];
186
+ toolCalls?: unknown[];
187
+ shouldStop?: boolean;
188
+ stopReason?: unknown;
189
+ };
190
+ }
191
+ export interface DTContentDeltaEvent extends DevToolsEventBase {
192
+ type: "content_delta";
193
+ tick: number;
194
+ /** Incremental text content */
195
+ delta: string;
196
+ /** Which content block (for multi-block responses) */
197
+ blockIndex?: number;
198
+ }
199
+ export interface DTReasoningDeltaEvent extends DevToolsEventBase {
200
+ type: "reasoning_delta";
201
+ tick: number;
202
+ /** Incremental reasoning/thinking content */
203
+ delta: string;
204
+ }
205
+ export interface DTToolCallEvent extends DevToolsEventBase {
206
+ type: "tool_call";
207
+ tick: number;
208
+ toolName: string;
209
+ /** Unique ID for this tool invocation */
210
+ toolUseId: string;
211
+ /** Tool input (JSON-serializable) */
212
+ input: unknown;
213
+ /** Tool execution type */
214
+ executionType?: "server" | "client" | "provider" | "mcp";
215
+ }
216
+ export interface DTToolResultEvent extends DevToolsEventBase {
217
+ type: "tool_result";
218
+ tick: number;
219
+ /** Matches the tool_call */
220
+ toolUseId: string;
221
+ /** Tool output (JSON-serializable) */
222
+ result: unknown;
223
+ /** True if tool threw an error */
224
+ isError?: boolean;
225
+ /** Execution time in milliseconds */
226
+ durationMs?: number;
227
+ }
228
+ export interface DTToolConfirmationEvent extends DevToolsEventBase {
229
+ type: "tool_confirmation";
230
+ tick: number;
231
+ toolUseId: string;
232
+ toolName: string;
233
+ input: unknown;
234
+ /** Message shown to user */
235
+ confirmationMessage?: string;
236
+ status: "pending" | "approved" | "denied";
237
+ }
238
+ export interface DTStateChangeEvent extends DevToolsEventBase {
239
+ type: "state_change";
240
+ tick: number;
241
+ /** Signal/state key */
242
+ key: string;
243
+ oldValue: unknown;
244
+ newValue: unknown;
245
+ /** Source of the change */
246
+ source?: "signal" | "reducer" | "effect";
247
+ }
248
+ /**
249
+ * Hook type identifier for DevTools display.
250
+ */
251
+ export type DTHookType = "useState" | "useReducer" | "useEffect" | "useLayoutEffect" | "useMemo" | "useCallback" | "useRef" | "useSignal" | "useComputed" | "useContext" | "useOnMessage" | "useQueuedMessages";
252
+ /**
253
+ * Serialized hook state for fiber snapshots.
254
+ */
255
+ export interface DTSerializedHookState {
256
+ /** Hook index in the component */
257
+ index: number;
258
+ /** Hook type */
259
+ type: DTHookType;
260
+ /** JSON-serializable hook value */
261
+ value: unknown;
262
+ /** Dependencies (for effects/memos) */
263
+ deps?: unknown[];
264
+ /** Effect status */
265
+ status?: "pending" | "mounted" | "cleanup";
266
+ /** Number of signal subscribers (for useSignal) */
267
+ subscribers?: number;
268
+ }
269
+ /**
270
+ * Serialized fiber node for DevTools component tree.
271
+ */
272
+ export interface DTSerializedFiberNode {
273
+ /** Unique fiber ID */
274
+ id: string;
275
+ /** Component name or intrinsic type */
276
+ type: string;
277
+ /** React-style key */
278
+ key: string | number | null;
279
+ /** JSON-safe props (functions/symbols removed) */
280
+ props: Record<string, unknown>;
281
+ /** Hook states for this component */
282
+ hooks: DTSerializedHookState[];
283
+ /** Child fibers */
284
+ children: DTSerializedFiberNode[];
285
+ }
286
+ /**
287
+ * Summary statistics for a fiber tree.
288
+ */
289
+ export interface DTFiberSummary {
290
+ /** Number of components in the tree */
291
+ componentCount: number;
292
+ /** Total number of hooks */
293
+ hookCount: number;
294
+ /** Hook count by type */
295
+ hooksByType: Partial<Record<DTHookType, number>>;
296
+ }
297
+ /**
298
+ * Token summary for DevTools visualization.
299
+ */
300
+ export interface DTTokenSummary {
301
+ /** Tokens in system prompt(s) */
302
+ system: number;
303
+ /** Tokens in timeline messages */
304
+ messages: number;
305
+ /** Tokens in tool definitions */
306
+ tools: number;
307
+ /** Tokens in ephemeral content */
308
+ ephemeral: number;
309
+ /** Total tokens */
310
+ total: number;
311
+ /** Token count by component (keyed by component identifier) */
312
+ byComponent?: Record<string, number>;
313
+ }
314
+ /**
315
+ * Compiled preview for DevTools visualization.
316
+ */
317
+ export interface DTCompiledPreview {
318
+ /** First 200 chars of system prompt */
319
+ systemPrompt?: string;
320
+ /** Number of messages in timeline */
321
+ messageCount: number;
322
+ /** Number of tools available */
323
+ toolCount: number;
324
+ /** Number of ephemeral entries */
325
+ ephemeralCount: number;
326
+ }
327
+ /**
328
+ * Emitted after each tick with the current fiber tree state.
329
+ * Enables DevTools to show component hierarchy and hook values.
330
+ */
331
+ export interface DTFiberSnapshotEvent extends DevToolsEventBase {
332
+ type: "fiber_snapshot";
333
+ /** Session ID this fiber tree belongs to */
334
+ sessionId: string;
335
+ /** Tick number when snapshot was taken */
336
+ tick: number;
337
+ /** Full serialized fiber tree (may be null if serialization fails) */
338
+ tree: DTSerializedFiberNode | null;
339
+ /** Summary statistics (always present) */
340
+ summary: DTFiberSummary;
341
+ /** Token estimate summary (optional - only if compiled structure available) */
342
+ tokenSummary?: DTTokenSummary;
343
+ /** Preview of compiled structure (optional) */
344
+ compiledPreview?: DTCompiledPreview;
345
+ }
346
+ /**
347
+ * Emitted after each tick with context utilization info.
348
+ * Enables DevTools and React UI to show real-time context tracking.
349
+ */
350
+ export interface DTContextUpdateEvent extends DevToolsEventBase {
351
+ type: "context_update";
352
+ /** Session ID */
353
+ sessionId: string;
354
+ /** Model ID (e.g., "gpt-4o", "claude-3-5-sonnet-20241022") */
355
+ modelId: string;
356
+ /** Human-readable model name */
357
+ modelName?: string;
358
+ /** Provider name */
359
+ provider?: string;
360
+ /** Context window size in tokens */
361
+ contextWindow?: number;
362
+ /** Input tokens used this tick */
363
+ inputTokens: number;
364
+ /** Output tokens generated this tick */
365
+ outputTokens: number;
366
+ /** Total tokens this tick */
367
+ totalTokens: number;
368
+ /** Context utilization percentage (0-100) */
369
+ utilization?: number;
370
+ /** Max output tokens */
371
+ maxOutputTokens?: number;
372
+ /** Model capabilities */
373
+ supportsVision?: boolean;
374
+ supportsToolUse?: boolean;
375
+ isReasoningModel?: boolean;
376
+ /** Current tick number */
377
+ tick: number;
378
+ /** Cumulative usage across all ticks */
379
+ cumulativeUsage?: {
380
+ inputTokens: number;
381
+ outputTokens: number;
382
+ totalTokens: number;
383
+ ticks: number;
384
+ };
385
+ }
386
+ /**
387
+ * Emitted when any procedure starts execution.
388
+ * This captures model calls, tool executions, engine operations, etc.
389
+ */
390
+ export interface DTProcedureStartEvent extends DevToolsEventBase {
391
+ type: "procedure_start";
392
+ /** Unique procedure instance ID */
393
+ procedureId: string;
394
+ /** Procedure name (e.g., 'model:stream', 'tool:calculator') */
395
+ procedureName: string;
396
+ /** Procedure type from metadata */
397
+ procedureType?: string;
398
+ /** Parent procedure ID for call tree */
399
+ parentProcedureId?: string;
400
+ /** Additional metadata from the procedure */
401
+ metadata?: Record<string, unknown>;
402
+ /** Engine tick number when this procedure started (if within a tick) */
403
+ tick?: number;
404
+ }
405
+ /**
406
+ * Emitted when a procedure completes successfully.
407
+ */
408
+ export interface DTProcedureEndEvent extends DevToolsEventBase {
409
+ type: "procedure_end";
410
+ procedureId: string;
411
+ procedureName?: string;
412
+ status: "completed";
413
+ /** Metrics accumulated during execution */
414
+ metrics?: Record<string, number>;
415
+ /** Duration in milliseconds */
416
+ durationMs?: number;
417
+ /** Engine tick number when this procedure ended (if within a tick) */
418
+ tick?: number;
419
+ }
420
+ /**
421
+ * Emitted when a procedure fails with an error.
422
+ */
423
+ export interface DTProcedureErrorEvent extends DevToolsEventBase {
424
+ type: "procedure_error";
425
+ procedureId: string;
426
+ procedureName?: string;
427
+ status: "failed" | "cancelled";
428
+ error: {
429
+ name: string;
430
+ message: string;
431
+ stack?: string;
432
+ };
433
+ /** Metrics accumulated before failure */
434
+ metrics?: Record<string, number>;
435
+ /** Engine tick number when this procedure failed (if within a tick) */
436
+ tick?: number;
437
+ }
438
+ /**
439
+ * Emitted when a client connects to the gateway.
440
+ */
441
+ export interface DTClientConnectedEvent extends DevToolsEventBase {
442
+ type: "client_connected";
443
+ /** Unique client identifier */
444
+ clientId: string;
445
+ /** Transport type */
446
+ transport: "websocket" | "sse" | "http";
447
+ /** Client IP address (if available) */
448
+ ip?: string;
449
+ /** User agent string (if available) */
450
+ userAgent?: string;
451
+ }
452
+ /**
453
+ * Emitted when a client disconnects from the gateway.
454
+ */
455
+ export interface DTClientDisconnectedEvent extends DevToolsEventBase {
456
+ type: "client_disconnected";
457
+ clientId: string;
458
+ /** Disconnect reason */
459
+ reason?: string;
460
+ /** Connection duration in milliseconds */
461
+ durationMs: number;
462
+ }
463
+ /**
464
+ * Emitted for gateway session lifecycle events.
465
+ */
466
+ export interface DTGatewaySessionEvent extends DevToolsEventBase {
467
+ type: "gateway_session";
468
+ /** Session lifecycle action */
469
+ action: "created" | "closed" | "message" | "resumed";
470
+ /** Session ID */
471
+ sessionId: string;
472
+ /** App/agent ID */
473
+ appId: string;
474
+ /** Number of messages in session (for stats) */
475
+ messageCount?: number;
476
+ /** Client ID that owns this session */
477
+ clientId?: string;
478
+ }
479
+ /**
480
+ * Emitted when a gateway request is received.
481
+ */
482
+ export interface DTGatewayRequestEvent extends DevToolsEventBase {
483
+ type: "gateway_request";
484
+ /** Unique request identifier */
485
+ requestId: string;
486
+ /** Method name (e.g., "chat:send", "tasks:list") */
487
+ method: string;
488
+ /** Session key if session-scoped */
489
+ sessionKey?: string;
490
+ /** Request parameters (sanitized) */
491
+ params?: Record<string, unknown>;
492
+ /** Client ID that made the request */
493
+ clientId?: string;
494
+ }
495
+ /**
496
+ * Emitted when a gateway request completes.
497
+ */
498
+ export interface DTGatewayResponseEvent extends DevToolsEventBase {
499
+ type: "gateway_response";
500
+ /** Matches the request */
501
+ requestId: string;
502
+ /** Whether the request succeeded */
503
+ ok: boolean;
504
+ /** Response latency in milliseconds */
505
+ latencyMs: number;
506
+ /** Error details if ok is false */
507
+ error?: {
508
+ code: string;
509
+ message: string;
510
+ };
511
+ }
512
+ /**
513
+ * All DevTools event types
514
+ */
515
+ export type DevToolsEvent = DTExecutionStartEvent | DTExecutionEndEvent | DTTickStartEvent | DTTickEndEvent | DTCompiledEvent | DTModelStartEvent | DTModelRequestEvent | DTProviderRequestEvent | DTProviderResponseEvent | DTModelResponseEvent | DTContentDeltaEvent | DTReasoningDeltaEvent | DTToolCallEvent | DTToolResultEvent | DTToolConfirmationEvent | DTStateChangeEvent | DTFiberSnapshotEvent | DTContextUpdateEvent | DTProcedureStartEvent | DTProcedureEndEvent | DTProcedureErrorEvent | DTClientConnectedEvent | DTClientDisconnectedEvent | DTGatewaySessionEvent | DTGatewayRequestEvent | DTGatewayResponseEvent;
516
+ /**
517
+ * Configuration for DevTools integration in the engine
518
+ */
519
+ export interface DevToolsConfig {
520
+ /** Enable DevTools (default: true when config object is provided) */
521
+ enabled?: boolean;
522
+ /** Channel name (default: '__devtools__') */
523
+ channel?: string;
524
+ /** Enable remote mode (POST to remote server) */
525
+ remote?: boolean;
526
+ /** Remote server URL (required if remote: true) */
527
+ remoteUrl?: string;
528
+ /** Shared secret for remote authentication */
529
+ secret?: string;
530
+ /** Inherit devTools config on fork (default: true) */
531
+ inheritOnFork?: boolean;
532
+ /** Inherit devTools config on spawn (default: true) */
533
+ inheritOnSpawn?: boolean;
534
+ /** Enable debug logging */
535
+ debug?: boolean;
536
+ }
537
+ /**
538
+ * Subscriber callback type
539
+ */
540
+ export type DevToolsSubscriber = (event: DevToolsEvent) => void;
541
+ /**
542
+ * Batch subscriber callback type
543
+ */
544
+ export type DevToolsBatchSubscriber = (events: DevToolsEvent[]) => void;
545
+ /**
546
+ * DevTools event emitter singleton.
547
+ *
548
+ * Engines emit events to this emitter, and DevTools subscribes to receive them.
549
+ * This enables engine-agnostic instrumentation without tight coupling.
550
+ *
551
+ * This implementation is platform-agnostic (no Node.js dependencies) so it can
552
+ * be used in both server and browser environments.
553
+ *
554
+ * @example
555
+ * ```typescript
556
+ * // Engine emits events
557
+ * devToolsEmitter.emitEvent({
558
+ * type: 'execution_start',
559
+ * executionId: 'abc-123',
560
+ * rootComponent: 'MyAgent',
561
+ * timestamp: Date.now(),
562
+ * });
563
+ *
564
+ * // DevTools subscribes
565
+ * const unsubscribe = devToolsEmitter.subscribe((event) => {
566
+ * console.log('Event:', event.type);
567
+ * });
568
+ * ```
569
+ */
570
+ declare class DevToolsEmitterImpl {
571
+ private static instance;
572
+ private debug;
573
+ private eventSubscribers;
574
+ private batchSubscribers;
575
+ private batchBuffer;
576
+ private batchTimeout;
577
+ private readonly BATCH_WINDOW_MS;
578
+ private eventHistory;
579
+ private readonly MAX_HISTORY_SIZE;
580
+ private constructor();
581
+ /**
582
+ * Get the singleton instance
583
+ */
584
+ static getInstance(): DevToolsEmitterImpl;
585
+ /**
586
+ * Enable or disable debug mode
587
+ */
588
+ setDebug(enabled: boolean): void;
589
+ /**
590
+ * Emit a DevTools event.
591
+ *
592
+ * High-frequency events (content_delta, reasoning_delta) are batched
593
+ * to reduce overhead. Other events are emitted immediately.
594
+ */
595
+ emitEvent(event: DevToolsEvent): void;
596
+ private notifySubscribers;
597
+ private notifyBatchSubscribers;
598
+ private scheduleBatchFlush;
599
+ private flushBatch;
600
+ /**
601
+ * Subscribe to DevTools events
602
+ *
603
+ * @returns Unsubscribe function
604
+ */
605
+ subscribe(handler: DevToolsSubscriber): () => void;
606
+ /**
607
+ * Subscribe to batched events (for high-frequency event handling)
608
+ *
609
+ * @returns Unsubscribe function
610
+ */
611
+ subscribeBatch(handler: DevToolsBatchSubscriber): () => void;
612
+ /**
613
+ * Get event history (for late-joining subscribers)
614
+ *
615
+ * @param executionId - Optional filter by execution ID
616
+ */
617
+ getHistory(executionId?: string): DevToolsEvent[];
618
+ /**
619
+ * Clear all state (useful for testing)
620
+ */
621
+ clear(): void;
622
+ /**
623
+ * Check if there are any subscribers
624
+ */
625
+ hasSubscribers(): boolean;
626
+ }
627
+ /**
628
+ * Singleton DevTools emitter instance.
629
+ *
630
+ * Use this to emit events from engines or subscribe to events in DevTools.
631
+ */
632
+ export declare const devToolsEmitter: DevToolsEmitterImpl;
633
+ /**
634
+ * Normalize DevTools config from various input formats.
635
+ *
636
+ * @param config - true, false, undefined, or DevToolsConfig object
637
+ * @returns Normalized DevToolsConfig or false if disabled
638
+ */
639
+ export declare function normalizeDevToolsConfig(config: boolean | DevToolsConfig | undefined): DevToolsConfig | false;
640
+ /**
641
+ * Context for forwarding app events to DevTools.
642
+ */
643
+ export interface ForwardContext {
644
+ sessionId: string;
645
+ rootComponent: string;
646
+ devToolsEnabled: boolean;
647
+ }
648
+ /**
649
+ * Forward an app stream event to DevTools.
650
+ *
651
+ * Maps from app-level events (execution_start, tick_start, content_delta, etc.)
652
+ * to DevTools event format. Only forwards if DevTools is enabled and has subscribers.
653
+ *
654
+ * This function is platform-agnostic - no Node.js dependencies.
655
+ *
656
+ * @param event - The app stream event to forward
657
+ * @param context - Forwarding context with session info and devTools flag
658
+ *
659
+ * @example
660
+ * ```typescript
661
+ * forwardToDevTools(
662
+ * { type: 'tick_start', tick: 1, executionId: 'abc' },
663
+ * { sessionId: 'xyz', rootComponent: 'MyAgent', devToolsEnabled: true }
664
+ * );
665
+ * ```
666
+ */
667
+ export declare function forwardToDevTools(event: {
668
+ type: string;
669
+ [key: string]: unknown;
670
+ }, context: ForwardContext): void;
671
+ export {};
672
+ //# sourceMappingURL=devtools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devtools.d.ts","sourceRoot":"","sources":["../src/devtools.ts"],"names":[],"mappings":"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"}