@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,445 @@
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
+ // ============================================================================
10
+ // Constants
11
+ // ============================================================================
12
+ /**
13
+ * DevTools channel name - used for engine to emit events
14
+ */
15
+ export const DEVTOOLS_CHANNEL = "__devtools__";
16
+ /**
17
+ * DevTools event emitter singleton.
18
+ *
19
+ * Engines emit events to this emitter, and DevTools subscribes to receive them.
20
+ * This enables engine-agnostic instrumentation without tight coupling.
21
+ *
22
+ * This implementation is platform-agnostic (no Node.js dependencies) so it can
23
+ * be used in both server and browser environments.
24
+ *
25
+ * @example
26
+ * ```typescript
27
+ * // Engine emits events
28
+ * devToolsEmitter.emitEvent({
29
+ * type: 'execution_start',
30
+ * executionId: 'abc-123',
31
+ * rootComponent: 'MyAgent',
32
+ * timestamp: Date.now(),
33
+ * });
34
+ *
35
+ * // DevTools subscribes
36
+ * const unsubscribe = devToolsEmitter.subscribe((event) => {
37
+ * console.log('Event:', event.type);
38
+ * });
39
+ * ```
40
+ */
41
+ class DevToolsEmitterImpl {
42
+ static instance;
43
+ debug = false;
44
+ // Subscribers
45
+ eventSubscribers = new Set();
46
+ batchSubscribers = new Set();
47
+ // Batching for high-frequency events
48
+ batchBuffer = [];
49
+ batchTimeout = null;
50
+ BATCH_WINDOW_MS = 10;
51
+ // History for late-joining subscribers
52
+ eventHistory = [];
53
+ MAX_HISTORY_SIZE = 1000;
54
+ constructor() { }
55
+ /**
56
+ * Get the singleton instance
57
+ */
58
+ static getInstance() {
59
+ if (!DevToolsEmitterImpl.instance) {
60
+ DevToolsEmitterImpl.instance = new DevToolsEmitterImpl();
61
+ }
62
+ return DevToolsEmitterImpl.instance;
63
+ }
64
+ /**
65
+ * Enable or disable debug mode
66
+ */
67
+ setDebug(enabled) {
68
+ this.debug = enabled;
69
+ }
70
+ /**
71
+ * Emit a DevTools event.
72
+ *
73
+ * High-frequency events (content_delta, reasoning_delta) are batched
74
+ * to reduce overhead. Other events are emitted immediately.
75
+ */
76
+ emitEvent(event) {
77
+ try {
78
+ // Add to history
79
+ this.eventHistory.push(event);
80
+ if (this.eventHistory.length > this.MAX_HISTORY_SIZE) {
81
+ this.eventHistory.shift();
82
+ }
83
+ // High-frequency events get batched
84
+ if (event.type === "content_delta" || event.type === "reasoning_delta") {
85
+ this.batchBuffer.push(event);
86
+ this.scheduleBatchFlush();
87
+ }
88
+ else {
89
+ // Low-frequency events emit immediately (flush any pending batch first)
90
+ this.flushBatch();
91
+ this.notifySubscribers(event);
92
+ }
93
+ if (this.debug) {
94
+ console.log("[DevTools] Emitted:", event.type, event.executionId);
95
+ }
96
+ }
97
+ catch (error) {
98
+ // Never throw - devtools is optional infrastructure
99
+ if (this.debug) {
100
+ console.warn("[DevTools] Emission error:", error);
101
+ }
102
+ }
103
+ }
104
+ notifySubscribers(event) {
105
+ for (const handler of this.eventSubscribers) {
106
+ try {
107
+ handler(event);
108
+ }
109
+ catch (error) {
110
+ if (this.debug) {
111
+ console.warn("[DevTools] Subscriber error:", error);
112
+ }
113
+ }
114
+ }
115
+ }
116
+ notifyBatchSubscribers(events) {
117
+ for (const handler of this.batchSubscribers) {
118
+ try {
119
+ handler(events);
120
+ }
121
+ catch (error) {
122
+ if (this.debug) {
123
+ console.warn("[DevTools] Batch subscriber error:", error);
124
+ }
125
+ }
126
+ }
127
+ }
128
+ scheduleBatchFlush() {
129
+ if (this.batchTimeout)
130
+ return;
131
+ this.batchTimeout = setTimeout(() => {
132
+ this.flushBatch();
133
+ }, this.BATCH_WINDOW_MS);
134
+ }
135
+ flushBatch() {
136
+ if (this.batchTimeout) {
137
+ clearTimeout(this.batchTimeout);
138
+ this.batchTimeout = null;
139
+ }
140
+ if (this.batchBuffer.length === 0)
141
+ return;
142
+ // Emit each event individually for simple subscribers
143
+ for (const event of this.batchBuffer) {
144
+ this.notifySubscribers(event);
145
+ }
146
+ // Also emit as batch for batch-aware subscribers
147
+ this.notifyBatchSubscribers(this.batchBuffer);
148
+ this.batchBuffer = [];
149
+ }
150
+ /**
151
+ * Subscribe to DevTools events
152
+ *
153
+ * @returns Unsubscribe function
154
+ */
155
+ subscribe(handler) {
156
+ this.eventSubscribers.add(handler);
157
+ return () => {
158
+ this.eventSubscribers.delete(handler);
159
+ };
160
+ }
161
+ /**
162
+ * Subscribe to batched events (for high-frequency event handling)
163
+ *
164
+ * @returns Unsubscribe function
165
+ */
166
+ subscribeBatch(handler) {
167
+ this.batchSubscribers.add(handler);
168
+ return () => {
169
+ this.batchSubscribers.delete(handler);
170
+ };
171
+ }
172
+ /**
173
+ * Get event history (for late-joining subscribers)
174
+ *
175
+ * @param executionId - Optional filter by execution ID
176
+ */
177
+ getHistory(executionId) {
178
+ if (!executionId)
179
+ return [...this.eventHistory];
180
+ return this.eventHistory.filter((e) => e.executionId === executionId);
181
+ }
182
+ /**
183
+ * Clear all state (useful for testing)
184
+ */
185
+ clear() {
186
+ this.eventHistory = [];
187
+ this.batchBuffer = [];
188
+ if (this.batchTimeout) {
189
+ clearTimeout(this.batchTimeout);
190
+ this.batchTimeout = null;
191
+ }
192
+ this.eventSubscribers.clear();
193
+ this.batchSubscribers.clear();
194
+ }
195
+ /**
196
+ * Check if there are any subscribers
197
+ */
198
+ hasSubscribers() {
199
+ return this.eventSubscribers.size > 0;
200
+ }
201
+ }
202
+ /**
203
+ * Singleton DevTools emitter instance.
204
+ *
205
+ * Use this to emit events from engines or subscribe to events in DevTools.
206
+ */
207
+ export const devToolsEmitter = DevToolsEmitterImpl.getInstance();
208
+ // ============================================================================
209
+ // Helper Functions
210
+ // ============================================================================
211
+ /**
212
+ * Normalize DevTools config from various input formats.
213
+ *
214
+ * @param config - true, false, undefined, or DevToolsConfig object
215
+ * @returns Normalized DevToolsConfig or false if disabled
216
+ */
217
+ export function normalizeDevToolsConfig(config) {
218
+ if (config === false)
219
+ return false;
220
+ if (config === undefined)
221
+ return false;
222
+ if (config === true) {
223
+ return {
224
+ enabled: true,
225
+ inheritOnFork: true,
226
+ inheritOnSpawn: true,
227
+ };
228
+ }
229
+ return {
230
+ enabled: config.enabled !== false,
231
+ channel: config.channel || DEVTOOLS_CHANNEL,
232
+ remote: config.remote || false,
233
+ remoteUrl: config.remoteUrl,
234
+ secret: config.secret,
235
+ inheritOnFork: config.inheritOnFork !== false,
236
+ inheritOnSpawn: config.inheritOnSpawn !== false,
237
+ debug: config.debug || false,
238
+ };
239
+ }
240
+ /**
241
+ * Registry of forwarders that map app events to DevTools events.
242
+ * Each forwarder transforms an app-level event to DevTools format.
243
+ *
244
+ * This is platform-agnostic - no Node.js dependencies.
245
+ */
246
+ const devToolsForwarders = {
247
+ execution_start: (e, ctx) => {
248
+ devToolsEmitter.emitEvent({
249
+ type: "execution_start",
250
+ executionId: e.executionId,
251
+ sequence: e.sequence ?? 0,
252
+ rootComponent: ctx.rootComponent,
253
+ sessionId: ctx.sessionId,
254
+ timestamp: ctx.timestamp,
255
+ });
256
+ },
257
+ tick_start: (e, ctx) => {
258
+ if (!e.executionId)
259
+ return;
260
+ devToolsEmitter.emitEvent({
261
+ type: "tick_start",
262
+ executionId: e.executionId,
263
+ sequence: e.sequence ?? 0,
264
+ tick: e.tick,
265
+ timestamp: ctx.timestamp,
266
+ });
267
+ },
268
+ tick_end: (e, ctx) => {
269
+ if (!e.executionId)
270
+ return;
271
+ devToolsEmitter.emitEvent({
272
+ type: "tick_end",
273
+ executionId: e.executionId,
274
+ sequence: e.sequence ?? 0,
275
+ tick: e.tick,
276
+ usage: e.usage,
277
+ stopReason: e.stopReason,
278
+ model: e.model,
279
+ timestamp: ctx.timestamp,
280
+ });
281
+ },
282
+ execution_end: (e, ctx) => {
283
+ devToolsEmitter.emitEvent({
284
+ type: "execution_end",
285
+ executionId: e.executionId,
286
+ sequence: e.sequence ?? 0,
287
+ totalUsage: e.usage ?? { inputTokens: 0, outputTokens: 0, totalTokens: 0 },
288
+ finalState: e.aborted ? "cancelled" : "completed",
289
+ timestamp: ctx.timestamp,
290
+ });
291
+ },
292
+ tool_call: (e, ctx) => {
293
+ const toolCall = e.toolCall ??
294
+ (e.callId || e.toolUseId || e.name || e.toolName
295
+ ? {
296
+ id: (e.callId ?? e.toolUseId),
297
+ name: (e.name ?? e.toolName),
298
+ input: e.input,
299
+ }
300
+ : undefined);
301
+ if (!toolCall?.id || !toolCall?.name) {
302
+ console.warn("[DevTools] tool_call event missing toolCall data:", e);
303
+ return;
304
+ }
305
+ devToolsEmitter.emitEvent({
306
+ type: "tool_call",
307
+ executionId: e.executionId,
308
+ sequence: e.sequence ?? 0,
309
+ tick: e.tick,
310
+ toolUseId: toolCall.id,
311
+ toolName: toolCall.name,
312
+ input: toolCall.input,
313
+ timestamp: ctx.timestamp,
314
+ });
315
+ },
316
+ tool_result: (e, ctx) => {
317
+ devToolsEmitter.emitEvent({
318
+ type: "tool_result",
319
+ executionId: e.executionId,
320
+ sequence: e.sequence ?? 0,
321
+ tick: e.tick,
322
+ toolUseId: e.toolUseId,
323
+ result: e.content,
324
+ isError: !e.success,
325
+ timestamp: ctx.timestamp,
326
+ });
327
+ },
328
+ content_delta: (e, ctx) => {
329
+ if (!e.executionId)
330
+ return;
331
+ devToolsEmitter.emitEvent({
332
+ type: "content_delta",
333
+ executionId: e.executionId,
334
+ sequence: e.sequence ?? 0,
335
+ tick: e.tick ?? 1,
336
+ delta: e.delta,
337
+ timestamp: ctx.timestamp,
338
+ });
339
+ },
340
+ compiled: (e, ctx) => {
341
+ if (!e.executionId)
342
+ return;
343
+ devToolsEmitter.emitEvent({
344
+ type: "compiled",
345
+ executionId: e.executionId,
346
+ sequence: e.sequence ?? 0,
347
+ tick: e.tick,
348
+ system: e.system,
349
+ messages: (e.messages ?? []),
350
+ tools: (e.tools ?? []),
351
+ // Pipeline visibility: raw compiled structure (before rendering)
352
+ rawCompiled: e.rawCompiled,
353
+ // Pipeline visibility: formatted COMInput (after rendering)
354
+ formattedInput: e.formattedInput,
355
+ timestamp: ctx.timestamp,
356
+ });
357
+ },
358
+ model_request: (e, ctx) => {
359
+ if (!e.executionId)
360
+ return;
361
+ devToolsEmitter.emitEvent({
362
+ type: "model_request",
363
+ executionId: e.executionId,
364
+ sequence: e.sequence ?? 0,
365
+ tick: e.tick,
366
+ modelId: e.modelId,
367
+ input: e.input,
368
+ stage: e.stage,
369
+ timestamp: ctx.timestamp,
370
+ });
371
+ },
372
+ provider_request: (e, ctx) => {
373
+ if (!e.executionId)
374
+ return;
375
+ devToolsEmitter.emitEvent({
376
+ type: "provider_request",
377
+ executionId: e.executionId,
378
+ sequence: e.sequence ?? 0,
379
+ tick: e.tick,
380
+ modelId: e.modelId,
381
+ provider: e.provider,
382
+ providerInput: e.providerInput,
383
+ timestamp: ctx.timestamp,
384
+ });
385
+ },
386
+ model_response: (e, ctx) => {
387
+ if (!e.executionId)
388
+ return;
389
+ // Emit model_response with full pipeline visibility
390
+ devToolsEmitter.emitEvent({
391
+ type: "model_response",
392
+ executionId: e.executionId,
393
+ sequence: e.sequence ?? 0,
394
+ tick: e.tick,
395
+ // Pipeline visibility: provider output (raw SDK response)
396
+ providerOutput: e.providerOutput,
397
+ // Pipeline visibility: ModelOutput (normalized Agentick format)
398
+ modelOutput: e.modelOutput,
399
+ // Pipeline visibility: Engine state (timeline integration)
400
+ engineState: e.engineState,
401
+ timestamp: ctx.timestamp,
402
+ });
403
+ // Also emit provider_response with raw details
404
+ devToolsEmitter.emitEvent({
405
+ type: "provider_response",
406
+ executionId: e.executionId,
407
+ sequence: e.sequence ?? 0,
408
+ tick: e.tick,
409
+ providerOutput: e.providerOutput,
410
+ timestamp: ctx.timestamp,
411
+ });
412
+ },
413
+ };
414
+ /**
415
+ * Forward an app stream event to DevTools.
416
+ *
417
+ * Maps from app-level events (execution_start, tick_start, content_delta, etc.)
418
+ * to DevTools event format. Only forwards if DevTools is enabled and has subscribers.
419
+ *
420
+ * This function is platform-agnostic - no Node.js dependencies.
421
+ *
422
+ * @param event - The app stream event to forward
423
+ * @param context - Forwarding context with session info and devTools flag
424
+ *
425
+ * @example
426
+ * ```typescript
427
+ * forwardToDevTools(
428
+ * { type: 'tick_start', tick: 1, executionId: 'abc' },
429
+ * { sessionId: 'xyz', rootComponent: 'MyAgent', devToolsEnabled: true }
430
+ * );
431
+ * ```
432
+ */
433
+ export function forwardToDevTools(event, context) {
434
+ if (!context.devToolsEnabled || !devToolsEmitter.hasSubscribers())
435
+ return;
436
+ const forwarder = devToolsForwarders[event.type];
437
+ if (!forwarder)
438
+ return;
439
+ forwarder(event, {
440
+ sessionId: context.sessionId,
441
+ rootComponent: context.rootComponent,
442
+ timestamp: Date.now(),
443
+ });
444
+ }
445
+ //# sourceMappingURL=devtools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devtools.js","sourceRoot":"","sources":["../src/devtools.ts"],"names":[],"mappings":"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"}