@tangle-network/agent-core 0.9.5 → 0.9.7

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 (76) hide show
  1. package/dist/auth/browser.d.ts +1 -1
  2. package/dist/auth/browser.js +1 -1
  3. package/dist/auth/index.d.ts +3 -3
  4. package/dist/auth/index.d.ts.map +1 -1
  5. package/dist/auth/index.js +1 -1
  6. package/dist/auth/index.js.map +1 -1
  7. package/dist/computer-use/index.d.ts.map +1 -1
  8. package/dist/computer-use/index.js +4 -3
  9. package/dist/computer-use/index.js.map +1 -1
  10. package/dist/{errors-RaBbEzQu.js → errors-GuWACHTg.js} +11 -8
  11. package/dist/{errors-RaBbEzQu.js.map → errors-GuWACHTg.js.map} +1 -1
  12. package/dist/events/index.d.ts +2 -2
  13. package/dist/events/index.js +1 -1
  14. package/dist/{events-CUWh9qrv.js → events-U7kxNUpM.js} +7 -5
  15. package/dist/{events-CUWh9qrv.js.map → events-U7kxNUpM.js.map} +1 -1
  16. package/dist/{index-D59fZ7n3.d.ts → index-BFYASYJk.d.ts} +1 -1
  17. package/dist/index-BFYASYJk.d.ts.map +1 -0
  18. package/dist/{index-Bgao-NCe.d.ts → index-BvjA5i93.d.ts} +1 -1
  19. package/dist/index-BvjA5i93.d.ts.map +1 -0
  20. package/dist/{index-HMlPCgTI.d.ts → index-CKDeaS7l.d.ts} +2 -3
  21. package/dist/index-CKDeaS7l.d.ts.map +1 -0
  22. package/dist/{index-CDLuQTT2.d.ts → index-CQPGv8jg.d.ts} +10 -11
  23. package/dist/index-CQPGv8jg.d.ts.map +1 -0
  24. package/dist/{index-C_1MnL24.d.ts → index-CuBvSsBf.d.ts} +1 -1
  25. package/dist/index-CuBvSsBf.d.ts.map +1 -0
  26. package/dist/{index-B4yy8ghH.d.ts → index-Dq6SfGaX.d.ts} +1 -1
  27. package/dist/index-Dq6SfGaX.d.ts.map +1 -0
  28. package/dist/index.d.ts +8 -9
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +11 -26
  31. package/dist/index.js.map +1 -1
  32. package/dist/interactions/index.d.ts +1 -2
  33. package/dist/interactions/index.d.ts.map +1 -1
  34. package/dist/interactions/index.js +2 -2
  35. package/dist/interactions/index.js.map +1 -1
  36. package/dist/interactions/mcp-server.d.ts +1 -2
  37. package/dist/interactions/mcp-server.d.ts.map +1 -1
  38. package/dist/interactions/mcp-server.js +3 -2
  39. package/dist/interactions/mcp-server.js.map +1 -1
  40. package/dist/{lifecycle-CXKYetbu.js → lifecycle-BljLcnY5.js} +1 -1
  41. package/dist/{lifecycle-CXKYetbu.js.map → lifecycle-BljLcnY5.js.map} +1 -1
  42. package/dist/resilience/index.d.ts +2 -2
  43. package/dist/resilience/index.js +1 -1
  44. package/dist/{resilience-v3NFIdDo.js → resilience-Cv5tqIDU.js} +42 -15
  45. package/dist/resilience-Cv5tqIDU.js.map +1 -0
  46. package/dist/sse/index.d.ts.map +1 -1
  47. package/dist/sse/index.js +1 -1
  48. package/dist/sse/index.js.map +1 -1
  49. package/dist/telemetry/index.d.ts +2 -2
  50. package/dist/telemetry/index.js +1 -1
  51. package/dist/{telemetry-x1wNw1P4.js → telemetry-DTOiMSzM.js} +1 -1
  52. package/dist/{telemetry-x1wNw1P4.js.map → telemetry-DTOiMSzM.js.map} +1 -1
  53. package/dist/{tokens-browser-EiSc2dah.d.ts → tokens-browser-DCV3-WHc.d.ts} +11 -9
  54. package/dist/tokens-browser-DCV3-WHc.d.ts.map +1 -0
  55. package/dist/{tools-D-I3A7Us.d.ts → tools-DeZkIW3h.d.ts} +1 -2
  56. package/dist/tools-DeZkIW3h.d.ts.map +1 -0
  57. package/dist/transport/index.d.ts +2 -2
  58. package/dist/transport/index.js +1 -1
  59. package/dist/{transport-XLxpQmUW.js → transport-DAfw3oL0.js} +5 -4
  60. package/dist/{transport-XLxpQmUW.js.map → transport-DAfw3oL0.js.map} +1 -1
  61. package/dist/types/index.d.ts +2 -2
  62. package/dist/types/index.js +1 -1
  63. package/dist/{types-Boft7Ohf.js → types--u-Om3vE.js} +6 -2
  64. package/dist/{types-Boft7Ohf.js.map → types--u-Om3vE.js.map} +1 -1
  65. package/dist/{types-Ci7hcTnp.js → types-DVN5qATk.js} +1 -1
  66. package/dist/{types-Ci7hcTnp.js.map → types-DVN5qATk.js.map} +1 -1
  67. package/package.json +7 -7
  68. package/dist/index-B4yy8ghH.d.ts.map +0 -1
  69. package/dist/index-Bgao-NCe.d.ts.map +0 -1
  70. package/dist/index-CDLuQTT2.d.ts.map +0 -1
  71. package/dist/index-C_1MnL24.d.ts.map +0 -1
  72. package/dist/index-D59fZ7n3.d.ts.map +0 -1
  73. package/dist/index-HMlPCgTI.d.ts.map +0 -1
  74. package/dist/resilience-v3NFIdDo.js.map +0 -1
  75. package/dist/tokens-browser-EiSc2dah.d.ts.map +0 -1
  76. package/dist/tools-D-I3A7Us.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"errors-RaBbEzQu.js","names":[],"sources":["../src/errors/index.ts"],"sourcesContent":["/**\n * SDK Error Types\n *\n * Structured errors with codes, retry hints, and context.\n */\n\n/** Error categories for routing and handling */\nexport type ErrorCode =\n | \"NETWORK\"\n | \"TIMEOUT\"\n | \"AUTH\"\n | \"AUTH_EXPIRED\"\n | \"VALIDATION\"\n | \"NOT_FOUND\"\n | \"RATE_LIMITED\"\n | \"SERVER\"\n | \"CANCELLED\"\n | \"UNKNOWN\";\n\n/** SDK error with structured metadata */\nexport class SDKError extends Error {\n readonly code: ErrorCode;\n readonly status?: number;\n readonly retryable: boolean;\n readonly retryAfterMs?: number;\n readonly context?: Record<string, unknown>;\n\n constructor(\n message: string,\n options: {\n code: ErrorCode;\n status?: number;\n retryable?: boolean;\n retryAfterMs?: number;\n context?: Record<string, unknown>;\n cause?: Error;\n },\n ) {\n super(message, { cause: options.cause });\n this.name = \"SDKError\";\n this.code = options.code;\n this.status = options.status;\n this.retryable =\n options.retryable ?? this.inferRetryable(options.code, options.status);\n this.retryAfterMs = options.retryAfterMs;\n this.context = options.context;\n }\n\n private inferRetryable(code: ErrorCode, status?: number): boolean {\n // Network issues and server errors are typically retryable\n if (code === \"NETWORK\" || code === \"TIMEOUT\") return true;\n if (code === \"RATE_LIMITED\") return true;\n if (code === \"SERVER\" && status && status >= 500) return true;\n // Auth expired can be retried after refresh\n if (code === \"AUTH_EXPIRED\") return true;\n // Client errors are not retryable\n return false;\n }\n\n /** Create from HTTP response */\n static fromResponse(status: number, body?: unknown): SDKError {\n const message = SDKError.extractMessageFromBody(body) ?? `HTTP ${status}`;\n\n if (status === 401) {\n return new SDKError(message, {\n code: \"AUTH\",\n status,\n retryable: false,\n context: { body },\n });\n }\n if (status === 403) {\n return new SDKError(message, {\n code: \"AUTH\",\n status,\n retryable: false,\n context: { body },\n });\n }\n if (status === 404) {\n return new SDKError(message, {\n code: \"NOT_FOUND\",\n status,\n retryable: false,\n context: { body },\n });\n }\n if (status === 422 || status === 400) {\n return new SDKError(message, {\n code: \"VALIDATION\",\n status,\n retryable: false,\n context: { body },\n });\n }\n if (status === 429) {\n const retryAfter =\n typeof body === \"object\" && body !== null && \"retryAfter\" in body\n ? Number((body as { retryAfter: unknown }).retryAfter) * 1000\n : 1000;\n return new SDKError(message, {\n code: \"RATE_LIMITED\",\n status,\n retryable: true,\n retryAfterMs: retryAfter,\n context: { body },\n });\n }\n if (status >= 500) {\n return new SDKError(message, {\n code: \"SERVER\",\n status,\n retryable: true,\n context: { body },\n });\n }\n return new SDKError(message, {\n code: \"UNKNOWN\",\n status,\n context: { body },\n });\n }\n\n /** Create from caught error */\n static fromError(error: unknown): SDKError {\n if (error instanceof SDKError) return error;\n\n if (error instanceof Error) {\n // Detect network errors\n if (error.name === \"TypeError\" && error.message.includes(\"fetch\")) {\n return new SDKError(\"Network request failed\", {\n code: \"NETWORK\",\n cause: error,\n });\n }\n if (error.name === \"AbortError\") {\n return new SDKError(\"Request cancelled\", {\n code: \"CANCELLED\",\n retryable: false,\n cause: error,\n });\n }\n if (error.message.includes(\"timeout\") || error.name === \"TimeoutError\") {\n return new SDKError(\"Request timeout\", {\n code: \"TIMEOUT\",\n cause: error,\n });\n }\n return new SDKError(error.message, { code: \"UNKNOWN\", cause: error });\n }\n\n return new SDKError(String(error), { code: \"UNKNOWN\" });\n }\n\n /**\n * Extract a human-readable message from a parsed error response body.\n *\n * Probes shapes seen across our upstreams:\n * - `{ message: \"...\" }` — most internal services\n * - `{ error: \"...\" }` — flat-error shape\n * - `{ error: { message: \"...\" } }` — Hetzner Cloud API\n * - `{ error: { details: \"...\" } }` — Hetzner field-level details\n * - `string` — non-JSON text/plain errors\n *\n * Returns null if no message-like field is present so callers can\n * fall back to \"HTTP <status>\". Without this, Hetzner 422s logged\n * as opaque \"HTTP 422\" because the message lives at\n * `body.error.message`, blocking diagnosis of every autoscaler\n * failure (issue #785).\n */\n private static extractMessageFromBody(body: unknown): string | null {\n if (typeof body === \"string\" && body.trim().length > 0) {\n return body.length > 500 ? `${body.slice(0, 500)}…` : body;\n }\n if (typeof body !== \"object\" || body === null) return null;\n\n const top = body as { message?: unknown; error?: unknown };\n if (typeof top.message === \"string\" && top.message.length > 0) {\n return top.message;\n }\n if (typeof top.error === \"string\" && top.error.length > 0) {\n return top.error;\n }\n if (typeof top.error === \"object\" && top.error !== null) {\n const inner = top.error as {\n message?: unknown;\n details?: unknown;\n code?: unknown;\n };\n const message =\n typeof inner.message === \"string\" && inner.message.length > 0\n ? inner.message\n : null;\n const details =\n typeof inner.details === \"string\" && inner.details.length > 0\n ? inner.details\n : null;\n const code =\n typeof inner.code === \"string\" && inner.code.length > 0\n ? inner.code\n : null;\n const parts = [code, message, details].filter(\n (part): part is string => part !== null,\n );\n if (parts.length > 0) return parts.join(\": \");\n }\n return null;\n }\n\n /** Check if error is retryable after token refresh */\n isAuthExpired(): boolean {\n return (\n this.code === \"AUTH_EXPIRED\" ||\n (this.code === \"AUTH\" && this.status === 401)\n );\n }\n}\n\n/** Type guard for SDKError */\nexport function isSDKError(error: unknown): error is SDKError {\n return error instanceof SDKError;\n}\n\n/** Type guard for retryable errors */\nexport function isRetryable(error: unknown): boolean {\n return isSDKError(error) && error.retryable;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"errors-GuWACHTg.js","names":[],"sources":["../src/errors/index.ts"],"sourcesContent":["/**\n * SDK Error Types\n *\n * Structured errors with codes, retry hints, and context.\n */\n\n/** Error categories for routing and handling */\nexport type ErrorCode =\n | \"NETWORK\"\n | \"TIMEOUT\"\n | \"AUTH\"\n | \"AUTH_EXPIRED\"\n | \"VALIDATION\"\n | \"NOT_FOUND\"\n | \"RATE_LIMITED\"\n | \"SERVER\"\n | \"CANCELLED\"\n | \"UNKNOWN\";\n\n/** SDK error with structured metadata */\nexport class SDKError extends Error {\n readonly code: ErrorCode;\n readonly status?: number;\n readonly retryable: boolean;\n readonly retryAfterMs?: number;\n readonly context?: Record<string, unknown>;\n\n constructor(\n message: string,\n options: {\n code: ErrorCode;\n status?: number;\n retryable?: boolean;\n retryAfterMs?: number;\n context?: Record<string, unknown>;\n cause?: Error;\n },\n ) {\n super(message, { cause: options.cause });\n this.name = \"SDKError\";\n this.code = options.code;\n this.status = options.status;\n this.retryable =\n options.retryable ?? this.inferRetryable(options.code, options.status);\n this.retryAfterMs = options.retryAfterMs;\n this.context = options.context;\n }\n\n private inferRetryable(code: ErrorCode, status?: number): boolean {\n // Network issues and server errors are typically retryable\n if (code === \"NETWORK\" || code === \"TIMEOUT\") return true;\n if (code === \"RATE_LIMITED\") return true;\n if (code === \"SERVER\" && status && status >= 500) return true;\n // Auth expired can be retried after refresh\n if (code === \"AUTH_EXPIRED\") return true;\n // Client errors are not retryable\n return false;\n }\n\n /** Create from HTTP response */\n static fromResponse(status: number, body?: unknown): SDKError {\n const message = SDKError.extractMessageFromBody(body) ?? `HTTP ${status}`;\n\n if (status === 401) {\n return new SDKError(message, {\n code: \"AUTH\",\n status,\n retryable: false,\n context: { body },\n });\n }\n if (status === 403) {\n return new SDKError(message, {\n code: \"AUTH\",\n status,\n retryable: false,\n context: { body },\n });\n }\n if (status === 404) {\n return new SDKError(message, {\n code: \"NOT_FOUND\",\n status,\n retryable: false,\n context: { body },\n });\n }\n if (status === 422 || status === 400) {\n return new SDKError(message, {\n code: \"VALIDATION\",\n status,\n retryable: false,\n context: { body },\n });\n }\n if (status === 429) {\n const retryAfter =\n typeof body === \"object\" && body !== null && \"retryAfter\" in body\n ? Number((body as { retryAfter: unknown }).retryAfter) * 1000\n : 1000;\n return new SDKError(message, {\n code: \"RATE_LIMITED\",\n status,\n retryable: true,\n retryAfterMs: retryAfter,\n context: { body },\n });\n }\n if (status >= 500) {\n return new SDKError(message, {\n code: \"SERVER\",\n status,\n retryable: true,\n context: { body },\n });\n }\n return new SDKError(message, {\n code: \"UNKNOWN\",\n status,\n context: { body },\n });\n }\n\n /** Create from caught error */\n static fromError(error: unknown): SDKError {\n if (error instanceof SDKError) return error;\n\n if (error instanceof Error) {\n // Detect network errors\n if (error.name === \"TypeError\" && error.message.includes(\"fetch\")) {\n return new SDKError(\"Network request failed\", {\n code: \"NETWORK\",\n cause: error,\n });\n }\n if (error.name === \"AbortError\") {\n return new SDKError(\"Request cancelled\", {\n code: \"CANCELLED\",\n retryable: false,\n cause: error,\n });\n }\n if (error.message.includes(\"timeout\") || error.name === \"TimeoutError\") {\n return new SDKError(\"Request timeout\", {\n code: \"TIMEOUT\",\n cause: error,\n });\n }\n return new SDKError(error.message, { code: \"UNKNOWN\", cause: error });\n }\n\n return new SDKError(String(error), { code: \"UNKNOWN\" });\n }\n\n /**\n * Extract a human-readable message from a parsed error response body.\n *\n * Probes shapes seen across our upstreams:\n * - `{ message: \"...\" }` — most internal services\n * - `{ error: \"...\" }` — flat-error shape\n * - `{ error: { message: \"...\" } }` — Hetzner Cloud API\n * - `{ error: { details: \"...\" } }` — Hetzner field-level details\n * - `string` — non-JSON text/plain errors\n *\n * Returns null if no message-like field is present so callers can\n * fall back to \"HTTP <status>\". Without this, Hetzner 422s logged\n * as opaque \"HTTP 422\" because the message lives at\n * `body.error.message`, blocking diagnosis of every autoscaler\n * failure (issue #785).\n */\n private static extractMessageFromBody(body: unknown): string | null {\n if (typeof body === \"string\" && body.trim().length > 0) {\n return body.length > 500 ? `${body.slice(0, 500)}…` : body;\n }\n if (typeof body !== \"object\" || body === null) return null;\n\n const top = body as { message?: unknown; error?: unknown };\n if (typeof top.message === \"string\" && top.message.length > 0) {\n return top.message;\n }\n if (typeof top.error === \"string\" && top.error.length > 0) {\n return top.error;\n }\n if (typeof top.error === \"object\" && top.error !== null) {\n const inner = top.error as {\n message?: unknown;\n details?: unknown;\n code?: unknown;\n };\n const message =\n typeof inner.message === \"string\" && inner.message.length > 0\n ? inner.message\n : null;\n const details =\n typeof inner.details === \"string\" && inner.details.length > 0\n ? inner.details\n : null;\n const code =\n typeof inner.code === \"string\" && inner.code.length > 0\n ? inner.code\n : null;\n const parts = [code, message, details].filter(\n (part): part is string => part !== null,\n );\n if (parts.length > 0) return parts.join(\": \");\n }\n return null;\n }\n\n /** Check if error is retryable after token refresh */\n isAuthExpired(): boolean {\n return (\n this.code === \"AUTH_EXPIRED\" ||\n (this.code === \"AUTH\" && this.status === 401)\n );\n }\n}\n\n/** Type guard for SDKError */\nexport function isSDKError(error: unknown): error is SDKError {\n return error instanceof SDKError;\n}\n\n/** Type guard for retryable errors */\nexport function isRetryable(error: unknown): boolean {\n return isSDKError(error) && error.retryable;\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import { a as EventChannel, c as EventBufferConfig, i as ChannelHandler, n as EventDeduplicator, o as BufferedEvent, r as ChannelConfig, s as EventBuffer, t as DeduplicatorConfig } from "../index-C_1MnL24.js";
2
- export { BufferedEvent, ChannelConfig, ChannelHandler, DeduplicatorConfig, EventBuffer, EventBufferConfig, EventChannel, EventDeduplicator };
1
+ import { a as EventChannel, c as EventBufferConfig, i as ChannelHandler, n as EventDeduplicator, o as BufferedEvent, r as ChannelConfig, s as EventBuffer, t as DeduplicatorConfig } from "../index-CuBvSsBf.js";
2
+ export { type BufferedEvent, type ChannelConfig, type ChannelHandler, type DeduplicatorConfig, EventBuffer, type EventBufferConfig, EventChannel, EventDeduplicator };
@@ -1,2 +1,2 @@
1
- import { n as EventChannel, r as EventBuffer, t as EventDeduplicator } from "../events-CUWh9qrv.js";
1
+ import { n as EventChannel, r as EventBuffer, t as EventDeduplicator } from "../events-U7kxNUpM.js";
2
2
  export { EventBuffer, EventChannel, EventDeduplicator };
@@ -25,10 +25,12 @@ var EventBuffer = class {
25
25
  timestamp: Date.now(),
26
26
  eventType
27
27
  };
28
- if (this.events.length >= this.config.maxSize) if (this.config.overflowStrategy === "drop-oldest") {
29
- const removed = this.events.shift();
30
- if (removed) this.seenIds.delete(removed.id);
31
- } else return;
28
+ if (this.events.length >= this.config.maxSize) {
29
+ if (this.config.overflowStrategy === "drop-oldest") {
30
+ const removed = this.events.shift();
31
+ if (removed) this.seenIds.delete(removed.id);
32
+ } else return;
33
+ }
32
34
  this.events.push(event);
33
35
  this.seenIds.add(id);
34
36
  }
@@ -260,4 +262,4 @@ var EventDeduplicator = class {
260
262
  //#endregion
261
263
  export { EventChannel as n, EventBuffer as r, EventDeduplicator as t };
262
264
 
263
- //# sourceMappingURL=events-CUWh9qrv.js.map
265
+ //# sourceMappingURL=events-U7kxNUpM.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"events-CUWh9qrv.js","names":["DEFAULT_CONFIG","DEFAULT_CONFIG"],"sources":["../src/events/buffer.ts","../src/events/channel.ts","../src/events/deduplication.ts"],"sourcesContent":["/**\n * Event Buffer\n *\n * Buffers events during disconnections for replay on reconnect.\n * Implements overflow handling with configurable strategies.\n */\n\nexport interface EventBufferConfig {\n /** Maximum number of events to buffer (default: 1000) */\n maxSize: number;\n /** Time-to-live in milliseconds for buffered events (default: 300000 = 5min) */\n ttlMs: number;\n /** Strategy when buffer is full: \"drop-oldest\" or \"drop-newest\" */\n overflowStrategy: \"drop-oldest\" | \"drop-newest\";\n}\n\nexport interface BufferedEvent<T = unknown> {\n id: string;\n data: T;\n timestamp: number;\n eventType?: string;\n}\n\nconst DEFAULT_CONFIG: EventBufferConfig = {\n maxSize: 1000,\n ttlMs: 300000,\n overflowStrategy: \"drop-oldest\",\n};\n\nexport class EventBuffer<T = unknown> {\n private readonly config: EventBufferConfig;\n private events: BufferedEvent<T>[] = [];\n private seenIds: Set<string> = new Set();\n private cleanupTimer?: ReturnType<typeof setInterval>;\n\n constructor(config: Partial<EventBufferConfig> = {}) {\n this.config = { ...DEFAULT_CONFIG, ...config };\n this.startCleanup();\n }\n\n /** Add an event to the buffer (deduplicates by ID) */\n push(id: string, data: T, eventType?: string): void {\n // Deduplicate by event ID to prevent duplicate events during replay\n if (this.seenIds.has(id)) {\n return;\n }\n\n const event: BufferedEvent<T> = {\n id,\n data,\n timestamp: Date.now(),\n eventType,\n };\n\n if (this.events.length >= this.config.maxSize) {\n if (this.config.overflowStrategy === \"drop-oldest\") {\n const removed = this.events.shift();\n if (removed) {\n this.seenIds.delete(removed.id);\n }\n } else {\n return; // drop-newest: don't add\n }\n }\n\n this.events.push(event);\n this.seenIds.add(id);\n }\n\n /** Get all buffered events */\n getAll(): BufferedEvent<T>[] {\n this.pruneExpired();\n return [...this.events];\n }\n\n /** Get events since a specific event ID */\n getSince(lastEventId: string): BufferedEvent<T>[] {\n this.pruneExpired();\n const index = this.events.findIndex((e) => e.id === lastEventId);\n if (index === -1) {\n return [...this.events];\n }\n return this.events.slice(index + 1);\n }\n\n /** Get events after a timestamp */\n getSinceTimestamp(timestamp: number): BufferedEvent<T>[] {\n this.pruneExpired();\n return this.events.filter((e) => e.timestamp > timestamp);\n }\n\n /** Clear all buffered events */\n clear(): void {\n this.events = [];\n this.seenIds.clear();\n }\n\n /** Get current buffer size */\n size(): number {\n return this.events.length;\n }\n\n /** Check if buffer is empty */\n isEmpty(): boolean {\n return this.events.length === 0;\n }\n\n /** Check if buffer is full */\n isFull(): boolean {\n return this.events.length >= this.config.maxSize;\n }\n\n /** Dispose of the buffer and cleanup resources */\n dispose(): void {\n if (this.cleanupTimer) {\n clearInterval(this.cleanupTimer);\n this.cleanupTimer = undefined;\n }\n this.clear();\n }\n\n private pruneExpired(): void {\n const cutoff = Date.now() - this.config.ttlMs;\n const expired = this.events.filter((e) => e.timestamp <= cutoff);\n for (const e of expired) {\n this.seenIds.delete(e.id);\n }\n this.events = this.events.filter((e) => e.timestamp > cutoff);\n }\n\n private startCleanup(): void {\n // Run cleanup every minute\n this.cleanupTimer = setInterval(() => this.pruneExpired(), 60000);\n }\n}\n","/**\n * Channel Pub/Sub\n *\n * Topic-based event distribution with wildcard pattern matching.\n * Supports patterns like \"message.*\", \"**\", and exact matches.\n */\n\nexport type ChannelHandler<T = unknown> = (message: T, topic: string) => void;\n\nexport interface ChannelConfig {\n /** Maximum number of subscribers per topic (default: 100) */\n maxSubscribersPerTopic: number;\n /** Enable wildcard patterns (default: true) */\n enableWildcards: boolean;\n}\n\ninterface Subscriber<T> {\n pattern: string;\n handler: ChannelHandler<T>;\n regex?: RegExp;\n}\n\nconst DEFAULT_CONFIG: ChannelConfig = {\n maxSubscribersPerTopic: 100,\n enableWildcards: true,\n};\n\nexport class EventChannel<T = unknown> {\n private readonly config: ChannelConfig;\n private readonly subscribers: Subscriber<T>[] = [];\n\n constructor(config: Partial<ChannelConfig> = {}) {\n this.config = { ...DEFAULT_CONFIG, ...config };\n }\n\n /**\n * Subscribe to a topic or pattern.\n *\n * Patterns:\n * - \"exact.topic\" - matches only \"exact.topic\"\n * - \"prefix.*\" - matches \"prefix.foo\", \"prefix.bar\", etc.\n * - \"prefix.**\" - matches \"prefix.foo\", \"prefix.foo.bar\", etc.\n * - \"**\" - matches all topics\n *\n * Returns an unsubscribe function.\n */\n subscribe(pattern: string, handler: ChannelHandler<T>): () => void {\n const subscriber: Subscriber<T> = {\n pattern,\n handler,\n regex: this.config.enableWildcards\n ? this.patternToRegex(pattern)\n : undefined,\n };\n\n this.subscribers.push(subscriber);\n\n return () => {\n const index = this.subscribers.indexOf(subscriber);\n if (index !== -1) {\n this.subscribers.splice(index, 1);\n }\n };\n }\n\n /**\n * Publish a message to a topic.\n * Delivers to all matching subscribers.\n */\n publish(topic: string, message: T): number {\n let delivered = 0;\n\n for (const subscriber of this.subscribers) {\n if (this.matches(subscriber, topic)) {\n try {\n subscriber.handler(message, topic);\n delivered++;\n } catch (error) {\n console.error(`Error in channel handler for ${topic}:`, error);\n }\n }\n }\n\n return delivered;\n }\n\n /**\n * Check if any subscribers are listening to a topic.\n */\n hasSubscribers(topic: string): boolean {\n return this.subscribers.some((s) => this.matches(s, topic));\n }\n\n /**\n * Get the number of subscribers for a topic.\n */\n subscriberCount(topic: string): number {\n return this.subscribers.filter((s) => this.matches(s, topic)).length;\n }\n\n /**\n * Get all unique patterns being subscribed to.\n */\n getPatterns(): string[] {\n return [...new Set(this.subscribers.map((s) => s.pattern))];\n }\n\n /**\n * Clear all subscribers.\n */\n clear(): void {\n this.subscribers.length = 0;\n }\n\n /**\n * Get total subscriber count.\n */\n size(): number {\n return this.subscribers.length;\n }\n\n private matches(subscriber: Subscriber<T>, topic: string): boolean {\n if (!this.config.enableWildcards || !subscriber.regex) {\n return subscriber.pattern === topic;\n }\n return subscriber.regex.test(topic);\n }\n\n private patternToRegex(pattern: string): RegExp {\n // Handle special patterns\n if (pattern === \"**\") {\n return /^.*$/;\n }\n\n // Escape special regex characters except * and .\n let escaped = pattern.replace(/[+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n\n // Replace ** with match-all\n escaped = escaped.replace(/\\*\\*/g, \"<<<GLOBSTAR>>>\");\n\n // Replace * with single-segment match\n escaped = escaped.replace(/\\*/g, \"[^.]+\");\n\n // Restore globstar\n escaped = escaped.replace(/<<<GLOBSTAR>>>/g, \".*\");\n\n return new RegExp(`^${escaped}$`);\n }\n}\n","/**\n * Event Deduplication\n *\n * LRU-bounded set for tracking seen event IDs.\n * Prevents duplicate event processing during reconnections.\n */\n\nexport interface DeduplicatorConfig {\n /** Maximum number of event IDs to track (default: 10000) */\n maxSize: number;\n /** Time window in milliseconds for deduplication (default: 60000 = 1min) */\n windowMs: number;\n}\n\ninterface TrackedEvent {\n timestamp: number;\n}\n\nconst DEFAULT_CONFIG: DeduplicatorConfig = {\n maxSize: 10000,\n windowMs: 60000,\n};\n\nexport class EventDeduplicator {\n private readonly config: DeduplicatorConfig;\n private readonly seen: Map<string, TrackedEvent> = new Map();\n private cleanupTimer?: ReturnType<typeof setInterval>;\n\n constructor(config: Partial<DeduplicatorConfig> = {}) {\n this.config = { ...DEFAULT_CONFIG, ...config };\n this.startCleanup();\n }\n\n /**\n * Check if an event has been seen and mark it as seen.\n * Returns true if this is a duplicate, false if it's new.\n */\n isDuplicate(eventId: string): boolean {\n const now = Date.now();\n const existing = this.seen.get(eventId);\n\n if (existing && now - existing.timestamp < this.config.windowMs) {\n return true;\n }\n\n // Evict oldest if at capacity\n if (this.seen.size >= this.config.maxSize) {\n this.evictOldest();\n }\n\n this.seen.set(eventId, { timestamp: now });\n return false;\n }\n\n /**\n * Mark an event as seen without checking for duplicates.\n */\n markSeen(eventId: string): void {\n if (this.seen.size >= this.config.maxSize) {\n this.evictOldest();\n }\n this.seen.set(eventId, { timestamp: Date.now() });\n }\n\n /**\n * Check if an event has been seen (without marking).\n */\n hasSeen(eventId: string): boolean {\n const existing = this.seen.get(eventId);\n if (!existing) return false;\n return Date.now() - existing.timestamp < this.config.windowMs;\n }\n\n /**\n * Clear all tracked events.\n */\n clear(): void {\n this.seen.clear();\n }\n\n /**\n * Get the number of tracked events.\n */\n size(): number {\n return this.seen.size;\n }\n\n /**\n * Dispose of the deduplicator and cleanup resources.\n */\n dispose(): void {\n if (this.cleanupTimer) {\n clearInterval(this.cleanupTimer);\n this.cleanupTimer = undefined;\n }\n this.clear();\n }\n\n private evictOldest(): void {\n // Map maintains insertion order, so first entry is oldest\n const firstKey = this.seen.keys().next().value;\n if (firstKey !== undefined) {\n this.seen.delete(firstKey);\n }\n }\n\n private pruneExpired(): void {\n const cutoff = Date.now() - this.config.windowMs;\n for (const [id, entry] of this.seen) {\n if (entry.timestamp < cutoff) {\n this.seen.delete(id);\n }\n }\n }\n\n private startCleanup(): void {\n // Run cleanup every 30 seconds\n this.cleanupTimer = setInterval(() => this.pruneExpired(), 30000);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"events-U7kxNUpM.js","names":["DEFAULT_CONFIG","DEFAULT_CONFIG"],"sources":["../src/events/buffer.ts","../src/events/channel.ts","../src/events/deduplication.ts"],"sourcesContent":["/**\n * Event Buffer\n *\n * Buffers events during disconnections for replay on reconnect.\n * Implements overflow handling with configurable strategies.\n */\n\nexport interface EventBufferConfig {\n /** Maximum number of events to buffer (default: 1000) */\n maxSize: number;\n /** Time-to-live in milliseconds for buffered events (default: 300000 = 5min) */\n ttlMs: number;\n /** Strategy when buffer is full: \"drop-oldest\" or \"drop-newest\" */\n overflowStrategy: \"drop-oldest\" | \"drop-newest\";\n}\n\nexport interface BufferedEvent<T = unknown> {\n id: string;\n data: T;\n timestamp: number;\n eventType?: string;\n}\n\nconst DEFAULT_CONFIG: EventBufferConfig = {\n maxSize: 1000,\n ttlMs: 300000,\n overflowStrategy: \"drop-oldest\",\n};\n\nexport class EventBuffer<T = unknown> {\n private readonly config: EventBufferConfig;\n private events: BufferedEvent<T>[] = [];\n private seenIds: Set<string> = new Set();\n private cleanupTimer?: ReturnType<typeof setInterval>;\n\n constructor(config: Partial<EventBufferConfig> = {}) {\n this.config = { ...DEFAULT_CONFIG, ...config };\n this.startCleanup();\n }\n\n /** Add an event to the buffer (deduplicates by ID) */\n push(id: string, data: T, eventType?: string): void {\n // Deduplicate by event ID to prevent duplicate events during replay\n if (this.seenIds.has(id)) {\n return;\n }\n\n const event: BufferedEvent<T> = {\n id,\n data,\n timestamp: Date.now(),\n eventType,\n };\n\n if (this.events.length >= this.config.maxSize) {\n if (this.config.overflowStrategy === \"drop-oldest\") {\n const removed = this.events.shift();\n if (removed) {\n this.seenIds.delete(removed.id);\n }\n } else {\n return; // drop-newest: don't add\n }\n }\n\n this.events.push(event);\n this.seenIds.add(id);\n }\n\n /** Get all buffered events */\n getAll(): BufferedEvent<T>[] {\n this.pruneExpired();\n return [...this.events];\n }\n\n /** Get events since a specific event ID */\n getSince(lastEventId: string): BufferedEvent<T>[] {\n this.pruneExpired();\n const index = this.events.findIndex((e) => e.id === lastEventId);\n if (index === -1) {\n return [...this.events];\n }\n return this.events.slice(index + 1);\n }\n\n /** Get events after a timestamp */\n getSinceTimestamp(timestamp: number): BufferedEvent<T>[] {\n this.pruneExpired();\n return this.events.filter((e) => e.timestamp > timestamp);\n }\n\n /** Clear all buffered events */\n clear(): void {\n this.events = [];\n this.seenIds.clear();\n }\n\n /** Get current buffer size */\n size(): number {\n return this.events.length;\n }\n\n /** Check if buffer is empty */\n isEmpty(): boolean {\n return this.events.length === 0;\n }\n\n /** Check if buffer is full */\n isFull(): boolean {\n return this.events.length >= this.config.maxSize;\n }\n\n /** Dispose of the buffer and cleanup resources */\n dispose(): void {\n if (this.cleanupTimer) {\n clearInterval(this.cleanupTimer);\n this.cleanupTimer = undefined;\n }\n this.clear();\n }\n\n private pruneExpired(): void {\n const cutoff = Date.now() - this.config.ttlMs;\n const expired = this.events.filter((e) => e.timestamp <= cutoff);\n for (const e of expired) {\n this.seenIds.delete(e.id);\n }\n this.events = this.events.filter((e) => e.timestamp > cutoff);\n }\n\n private startCleanup(): void {\n // Run cleanup every minute\n this.cleanupTimer = setInterval(() => this.pruneExpired(), 60000);\n }\n}\n","/**\n * Channel Pub/Sub\n *\n * Topic-based event distribution with wildcard pattern matching.\n * Supports patterns like \"message.*\", \"**\", and exact matches.\n */\n\nexport type ChannelHandler<T = unknown> = (message: T, topic: string) => void;\n\nexport interface ChannelConfig {\n /** Maximum number of subscribers per topic (default: 100) */\n maxSubscribersPerTopic: number;\n /** Enable wildcard patterns (default: true) */\n enableWildcards: boolean;\n}\n\ninterface Subscriber<T> {\n pattern: string;\n handler: ChannelHandler<T>;\n regex?: RegExp;\n}\n\nconst DEFAULT_CONFIG: ChannelConfig = {\n maxSubscribersPerTopic: 100,\n enableWildcards: true,\n};\n\nexport class EventChannel<T = unknown> {\n private readonly config: ChannelConfig;\n private readonly subscribers: Subscriber<T>[] = [];\n\n constructor(config: Partial<ChannelConfig> = {}) {\n this.config = { ...DEFAULT_CONFIG, ...config };\n }\n\n /**\n * Subscribe to a topic or pattern.\n *\n * Patterns:\n * - \"exact.topic\" - matches only \"exact.topic\"\n * - \"prefix.*\" - matches \"prefix.foo\", \"prefix.bar\", etc.\n * - \"prefix.**\" - matches \"prefix.foo\", \"prefix.foo.bar\", etc.\n * - \"**\" - matches all topics\n *\n * Returns an unsubscribe function.\n */\n subscribe(pattern: string, handler: ChannelHandler<T>): () => void {\n const subscriber: Subscriber<T> = {\n pattern,\n handler,\n regex: this.config.enableWildcards\n ? this.patternToRegex(pattern)\n : undefined,\n };\n\n this.subscribers.push(subscriber);\n\n return () => {\n const index = this.subscribers.indexOf(subscriber);\n if (index !== -1) {\n this.subscribers.splice(index, 1);\n }\n };\n }\n\n /**\n * Publish a message to a topic.\n * Delivers to all matching subscribers.\n */\n publish(topic: string, message: T): number {\n let delivered = 0;\n\n for (const subscriber of this.subscribers) {\n if (this.matches(subscriber, topic)) {\n try {\n subscriber.handler(message, topic);\n delivered++;\n } catch (error) {\n console.error(`Error in channel handler for ${topic}:`, error);\n }\n }\n }\n\n return delivered;\n }\n\n /**\n * Check if any subscribers are listening to a topic.\n */\n hasSubscribers(topic: string): boolean {\n return this.subscribers.some((s) => this.matches(s, topic));\n }\n\n /**\n * Get the number of subscribers for a topic.\n */\n subscriberCount(topic: string): number {\n return this.subscribers.filter((s) => this.matches(s, topic)).length;\n }\n\n /**\n * Get all unique patterns being subscribed to.\n */\n getPatterns(): string[] {\n return [...new Set(this.subscribers.map((s) => s.pattern))];\n }\n\n /**\n * Clear all subscribers.\n */\n clear(): void {\n this.subscribers.length = 0;\n }\n\n /**\n * Get total subscriber count.\n */\n size(): number {\n return this.subscribers.length;\n }\n\n private matches(subscriber: Subscriber<T>, topic: string): boolean {\n if (!this.config.enableWildcards || !subscriber.regex) {\n return subscriber.pattern === topic;\n }\n return subscriber.regex.test(topic);\n }\n\n private patternToRegex(pattern: string): RegExp {\n // Handle special patterns\n if (pattern === \"**\") {\n return /^.*$/;\n }\n\n // Escape special regex characters except * and .\n let escaped = pattern.replace(/[+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n\n // Replace ** with match-all\n escaped = escaped.replace(/\\*\\*/g, \"<<<GLOBSTAR>>>\");\n\n // Replace * with single-segment match\n escaped = escaped.replace(/\\*/g, \"[^.]+\");\n\n // Restore globstar\n escaped = escaped.replace(/<<<GLOBSTAR>>>/g, \".*\");\n\n return new RegExp(`^${escaped}$`);\n }\n}\n","/**\n * Event Deduplication\n *\n * LRU-bounded set for tracking seen event IDs.\n * Prevents duplicate event processing during reconnections.\n */\n\nexport interface DeduplicatorConfig {\n /** Maximum number of event IDs to track (default: 10000) */\n maxSize: number;\n /** Time window in milliseconds for deduplication (default: 60000 = 1min) */\n windowMs: number;\n}\n\ninterface TrackedEvent {\n timestamp: number;\n}\n\nconst DEFAULT_CONFIG: DeduplicatorConfig = {\n maxSize: 10000,\n windowMs: 60000,\n};\n\nexport class EventDeduplicator {\n private readonly config: DeduplicatorConfig;\n private readonly seen: Map<string, TrackedEvent> = new Map();\n private cleanupTimer?: ReturnType<typeof setInterval>;\n\n constructor(config: Partial<DeduplicatorConfig> = {}) {\n this.config = { ...DEFAULT_CONFIG, ...config };\n this.startCleanup();\n }\n\n /**\n * Check if an event has been seen and mark it as seen.\n * Returns true if this is a duplicate, false if it's new.\n */\n isDuplicate(eventId: string): boolean {\n const now = Date.now();\n const existing = this.seen.get(eventId);\n\n if (existing && now - existing.timestamp < this.config.windowMs) {\n return true;\n }\n\n // Evict oldest if at capacity\n if (this.seen.size >= this.config.maxSize) {\n this.evictOldest();\n }\n\n this.seen.set(eventId, { timestamp: now });\n return false;\n }\n\n /**\n * Mark an event as seen without checking for duplicates.\n */\n markSeen(eventId: string): void {\n if (this.seen.size >= this.config.maxSize) {\n this.evictOldest();\n }\n this.seen.set(eventId, { timestamp: Date.now() });\n }\n\n /**\n * Check if an event has been seen (without marking).\n */\n hasSeen(eventId: string): boolean {\n const existing = this.seen.get(eventId);\n if (!existing) return false;\n return Date.now() - existing.timestamp < this.config.windowMs;\n }\n\n /**\n * Clear all tracked events.\n */\n clear(): void {\n this.seen.clear();\n }\n\n /**\n * Get the number of tracked events.\n */\n size(): number {\n return this.seen.size;\n }\n\n /**\n * Dispose of the deduplicator and cleanup resources.\n */\n dispose(): void {\n if (this.cleanupTimer) {\n clearInterval(this.cleanupTimer);\n this.cleanupTimer = undefined;\n }\n this.clear();\n }\n\n private evictOldest(): void {\n // Map maintains insertion order, so first entry is oldest\n const firstKey = this.seen.keys().next().value;\n if (firstKey !== undefined) {\n this.seen.delete(firstKey);\n }\n }\n\n private pruneExpired(): void {\n const cutoff = Date.now() - this.config.windowMs;\n for (const [id, entry] of this.seen) {\n if (entry.timestamp < cutoff) {\n this.seen.delete(id);\n }\n }\n }\n\n private startCleanup(): void {\n // Run cleanup every 30 seconds\n this.cleanupTimer = setInterval(() => this.pruneExpired(), 30000);\n }\n}\n"],"mappings":"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"}
@@ -52,4 +52,4 @@ declare function isSDKError(error: unknown): error is SDKError;
52
52
  declare function isRetryable(error: unknown): boolean;
53
53
  //#endregion
54
54
  export { isSDKError as i, SDKError as n, isRetryable as r, ErrorCode as t };
55
- //# sourceMappingURL=index-D59fZ7n3.d.ts.map
55
+ //# sourceMappingURL=index-BFYASYJk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-BFYASYJk.d.ts","names":[],"sources":["../src/errors/index.ts"],"mappings":";;;;;;;KAOY;;cAaC,iBAAiB;WACnB,MAAM;WACN;WACA;WACA;WACA,UAAU;EAEnB,YACE,iBACA;IACE,MAAM;IACN;IACA;IACA;IACA,UAAU;IACV,QAAQ;;UAaJ;;SAYD,aAAa,gBAAgB,iBAAiB;;SAgE9C,UAAU,iBAAiB;;;;;;;;;;;;;;;;;iBA8CnB;;EAwCf;;;iBASc,WAAW,iBAAiB,SAAS;;iBAKrC,YAAY"}
@@ -399,4 +399,4 @@ declare function promptTokens(usage: TokenUsageCounts): number;
399
399
  declare function cacheHitRate(usage: TokenUsageCounts): number | undefined;
400
400
  //#endregion
401
401
  export { CONTENT_KEY_FIELD as $, TANGLE_SUBJECT_KEY as A, GEN_AI_MODEL_KEYS as B, RUN_KEY_ATTRS as C, TANGLE_RUN_ID_KEY as D, TANGLE_RUN_ID_CAMEL_KEY as E, TRIGGER_ID_ATTRS as F, GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENS as G, GEN_AI_OUTPUT_TOKEN_KEYS as H, TRIGGER_SOURCE_ATTRS as I, GEN_AI_USAGE_OUTPUT_TOKENS as J, GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS as K, WORKFLOW_MARKER_ATTRS as L, TANGLE_TRIGGER_KIND_KEY as M, TANGLE_TRIGGER_SOURCE_KEY as N, TANGLE_RUN_KIND_KEY as O, TANGLE_WORKFLOW_ID_KEY as P, CONTENT_KEYS as Q, GEN_AI_CONVERSATION_ID as R, PARENT_RUN_KEY_ATTRS as S, SUBJECT_KEY_ATTRS as T, GEN_AI_REQUEST_MODEL as U, GEN_AI_OPERATION_NAME as V, GEN_AI_RESPONSE_MODEL as W, genAiUsageAttributes as X, GenAiUsage as Y, CONTENT_COMPLETION_KEY as Z, promptTokens as _, TOKEN_USAGE_CACHE_READ_INCLUSIVE_KEYS as a, DeclaredIntentMatch as at, tokenCount as b, TOKEN_USAGE_COST_KEYS as c, asContentField as ct, TOKEN_USAGE_OUTPUT_KEYS as d, declaredTaskText as dt, CONTENT_PROMPT_KEY as et, TokenUsageCounts as f, extractContent as ft, firstUsageCostUsd as g, resolveDeclaredIntent as gt, firstTokenCount as h, normalizeContentAttributes as ht, TOKEN_USAGE_CACHE_READ_EXCLUSIVE_KEYS as i, ContentField as it, TANGLE_TRIGGER_ID_KEY as j, TANGLE_RUN_PARENT_ID_KEY as k, TOKEN_USAGE_DETAIL_KEYS as l, asContentString as lt, cacheHitRate as m, logRecordContentBag as mt, TOKEN_USAGE_CACHE_BAG_READ_KEYS as n, CONTENT_TOOL_NAME_KEY as nt, TOKEN_USAGE_CACHE_WRITE_EXCLUSIVE_KEYS as o, INDEXED_CONTENT_KEY_LIKE_PATTERNS as ot, addTokenUsage as p, hasContent as pt, GEN_AI_USAGE_INPUT_TOKENS as q, TOKEN_USAGE_CACHE_BAG_WRITE_KEYS as r, CONTENT_TOOL_RESULT_KEY as rt, TOKEN_USAGE_CACHE_WRITE_INCLUSIVE_KEYS as s, NormalizedContent as st, TOKEN_USAGE_CACHE_BAG_KEYS as t, CONTENT_TOOL_ARGS_KEY as tt, TOKEN_USAGE_INPUT_KEYS as u, classifyAgent as ut, readTokenCostUsd as v, RUN_KIND_ATTRS as w, tokenUsageSource as x, readTokenUsage as y, GEN_AI_INPUT_TOKEN_KEYS as z };
402
- //# sourceMappingURL=index-Bgao-NCe.d.ts.map
402
+ //# sourceMappingURL=index-BvjA5i93.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-BvjA5i93.d.ts","names":[],"sources":["../src/telemetry/content-attributes.ts","../src/telemetry/genai-attributes.ts","../src/telemetry/spine-attributes.ts","../src/telemetry/token-usage.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAiCiB;EACf;EACA;EACA;EACA;EACA;EACA;EACA;;;;;KAMU,qBAAqB;;cAYpB;;cAEA;;cAEA;;cAEA;;cAEA;;;;;;;;cA+JA;;;;cAOA,mBAAmB,SAAS,eAAe;;;iBAKxC,eAAe;;;;iBAWf,gBAAgB;;;;;;;;;cAyKnB;;;;;;;;iBAoNG,2BACd,KAAK,6CACJ;;;;;;;iBAyGa,eACd,YAAY,6CACX;;;;;iBA0Ba,WACd,YAAY;;;;;;;;;;;;;;iBAkCE,oBACd,YAAY,4CACZ,kCACC;;;;;;;;;;;;;;iBA2Ca,cACd,KAAK;;;;;;UA6BU;EACf;;EAEA;;;;;;;;;;;;iBAac,sBACd,MAAM,6CACL;;;;;;;;;;iBA6Ba,iBAAiB,SAAS;;;;;;;;;;;;;;;;;;cC14B7B;;cAEA;;cAEA;;cAEA;;;;cAKA;;cAIA;;cAGA;;cAEA;;;;;cAMA;;;;;cAWA;;cAOA;;UAOI;;EAEf;;EAEA;;EAEA;;EAEA;;EAEA;;;;;;;;;iBAcc,qBACd,OAAO,aACN;;;;;;;;;;;;;;;;;;;;;;;;cCvEU;;cAEA;;cAEA;;cAEA;;cAEA;;cAEA;;cAEA;;cAEA;;;cAGA;;cAGA;;;;;;cAUA;;cASA;;cAOA;;;;;;cAUA;;;cAUA;;cAKA;;;;;;;;;;;;;;;;;;;;cC5EA;cAQA;cAQA;;;;;;;;;;;;;;;;;;;;;;;cA8BA;cAQA;cASA;cAGA;;;;cAYA;;;;;;;;;;;;;;;cAqBA;cAMA;cAIA;;;;;;;;;;;UAaI;;EAEf;EACA;;;;EAIA;;EAEA;;iBAGc,WAAW;iBAeX,gBACd,QAAQ,qCACR;iBAwBc,kBACd,QAAQ,qCACR;iBAUc,iBACd,MAAM,0BACL;iBA2Ga,eACd,MAAM,0BACL;iBA4Ba,iBACd,MAAM;iBAkBQ,cACd,SAAS,8BACT,MAAM,mBACL;;;;iBAqBa,aAAa,OAAO;;;;iBAWpB,aAAa,OAAO"}
@@ -1,5 +1,4 @@
1
- import { n as SDKError } from "./index-D59fZ7n3.js";
2
-
1
+ import { n as SDKError } from "./index-BFYASYJk.js";
3
2
  //#region src/resilience/circuit-breaker.d.ts
4
3
  type CircuitState = "closed" | "open" | "half-open";
5
4
  interface CircuitBreakerConfig {
@@ -105,4 +104,4 @@ declare function createTimeoutController(timeoutMs: number): {
105
104
  declare function sleep(ms: number, signal?: AbortSignal): Promise<void>;
106
105
  //#endregion
107
106
  export { ProtectionOptions as a, CircuitBreaker as c, CircuitOpenError as d, CircuitState as f, withTimeout as i, CircuitBreakerConfig as l, createTimeoutController as n, createProtectedFn as o, sleep as r, withProtection as s, TimeoutError as t, CircuitBreakerStats as u };
108
- //# sourceMappingURL=index-HMlPCgTI.d.ts.map
107
+ //# sourceMappingURL=index-CKDeaS7l.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-CKDeaS7l.d.ts","names":[],"sources":["../src/resilience/circuit-breaker.ts","../src/resilience/protection.ts","../src/resilience/timeout.ts"],"mappings":";;KAeY;UAEK;;EAEf;;EAEA;;EAEA;;EAEA,iBAAiB;;UAGF;EACf,OAAO;EACP;EACA;EACA;EACA;EACA;EACA;;cAGW,yBAAyB;WAC3B;WACA;EAET,YAAY,cAAc;;cAaf;mBAYQ;mBACA;UAZX;UACA;UACA;UACA;UAGA;UACA;UACA;EAER,YACmB,cACA,QAAQ;;;;;EAiBrB,QAAQ,GAAG,UAAU,QAAQ,KAAK,QAAQ;UA6BxC;UAiBA;;EAwBR,YAAY;;EAKZ,YAAY;;EAaZ;;EAcA;;EAQA;;;;UC5Le;;EAEf;;EAEA,UAAU;;EAEV;;;;;;;;;;;iBAYoB,eAAe,GACnC,UAAU,QAAQ,IAClB,UAAS,oBACR,QAAQ;;;;iBAoBK,kBAAkB,yBAAyB,SACzD,QAAQ,MAAM,UAAU,QAAQ,UAChC,SAAS,wBACJ,MAAM,UAAU,QAAQ;;;cC3ClB,qBAAqB;WACvB;EAET,YAAY,iBAAiB;;;;;;iBAef,YAAY,GAC1B,SAAS,QAAQ,IACjB,mBACA,mBACC,QAAQ;;;;;iBA2BK,wBAAwB;EACtC,YAAY;EACZ;;;;;;iBAuBc,MAAM,YAAY,SAAS,cAAc"}
@@ -1,21 +1,20 @@
1
1
  import { z } from "zod";
2
2
  import { FilePart, Part, Part as Part$1, PartBase, ReasoningPart, StreamStatus, SubtaskPart, TextPart, ToolPart, ToolState, ToolStateCompleted, ToolStateError, ToolStatePending, ToolStateRunning, isFilePart, isReasoningPart, isSubtaskPart, isTextPart, isToolPart } from "@tangle-network/agent-interface";
3
-
4
3
  //#region src/types/events.d.ts
5
4
  declare const AgentEventTypeSchema: z.ZodEnum<{
6
- error: "error";
7
- heartbeat: "heartbeat";
8
- status: "status";
9
- "message.part.updated": "message.part.updated";
10
5
  "connection.init": "connection.init";
11
- "history.replay.start": "history.replay.start";
12
- "history.replay.end": "history.replay.end";
13
- "execution.started": "execution.started";
6
+ done: "done";
7
+ error: "error";
14
8
  "execution.completed": "execution.completed";
15
9
  "execution.failed": "execution.failed";
16
- "session.updated": "session.updated";
10
+ "execution.started": "execution.started";
11
+ heartbeat: "heartbeat";
12
+ "history.replay.end": "history.replay.end";
13
+ "history.replay.start": "history.replay.start";
14
+ "message.part.updated": "message.part.updated";
17
15
  result: "result";
18
- done: "done";
16
+ "session.updated": "session.updated";
17
+ status: "status";
19
18
  }>;
20
19
  type AgentEventType = z.infer<typeof AgentEventTypeSchema>;
21
20
  interface EventMetadata {
@@ -130,4 +129,4 @@ interface TerminalExitEvent {
130
129
  type TerminalEvent = TerminalDataEvent | TerminalResizeEvent | TerminalExitEvent;
131
130
  //#endregion
132
131
  export { ToolStateCompleted as A, TerminalDataEvent as C, TextPart as D, TerminalResizeEvent as E, isReasoningPart as F, isSubtaskPart as I, isTextPart as L, ToolStatePending as M, ToolStateRunning as N, ToolPart as O, isFilePart as P, isToolPart as R, SubtaskPart as S, TerminalExitEvent as T, ReplayEndEvent as _, DoneEvent as a, SessionUpdatedEvent as b, ExecutionCompletedEvent as c, FilePart as d, HeartbeatEvent as f, ReasoningPart as g, PartBase as h, ConnectionInitEvent as i, ToolStateError as j, ToolState as k, ExecutionFailedEvent as l, Part$1 as m, AgentEventType as n, ErrorEvent as o, MessagePartUpdatedEvent as p, AgentEventTypeSchema as r, EventMetadata as s, AgentEvent as t, ExecutionStartedEvent as u, ReplayStartEvent as v, TerminalEvent as w, StatusEvent as x, ResultEvent as y };
133
- //# sourceMappingURL=index-CDLuQTT2.d.ts.map
132
+ //# sourceMappingURL=index-CQPGv8jg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-CQPGv8jg.d.ts","names":[],"sources":["../src/types/events.ts"],"mappings":";;;cAsCa,sBAAoB,EAAA;;;;;;;;;;;;;;;KAgBrB,iBAAiB,EAAE,aAAa;UAG3B;EACf;EACA;EACA;EACA;;UAOe;EACf;EACA,MAAM;EACN;EACA,QAAQ;;UAIO;EACf;EACA,QAAQ;EACR;EACA,QAAQ;;UAIO;EACf;EACA;EACA;EACA;EACA,QAAQ;;UAIO;EACf;EACA;EACA,QAAQ;;UAIO;EACf;EACA;EACA;EACA;EACA;EACA,QAAQ;;UAIO;EACf;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;;UAIe;EACf;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;;UAIe;EACf;EACA;EACA;EACA;IAAS;IAAkB;;;UAIZ;EACf;EACA;EACA;EACA,aAAa;EACb,SAAS;EACT,WAAW;;UAII;EACf;EACA;;KAIU,aACR,0BACA,cACA,aACA,iBACA,sBACA,mBACA,iBACA,wBACA,0BACA,uBACA,sBACA,cACA;UAGa;EACf;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;;KAGU,gBACR,oBACA,sBACA"}
@@ -155,4 +155,4 @@ declare class EventDeduplicator {
155
155
  }
156
156
  //#endregion
157
157
  export { EventChannel as a, EventBufferConfig as c, ChannelHandler as i, EventDeduplicator as n, BufferedEvent as o, ChannelConfig as r, EventBuffer as s, DeduplicatorConfig as t };
158
- //# sourceMappingURL=index-C_1MnL24.d.ts.map
158
+ //# sourceMappingURL=index-CuBvSsBf.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-CuBvSsBf.d.ts","names":[],"sources":["../src/events/buffer.ts","../src/events/channel.ts","../src/events/deduplication.ts"],"mappings":";;;;;;;UAOiB;;EAEf;;EAEA;;EAEA;;UAGe,cAAc;EAC7B;EACA,MAAM;EACN;EACA;;cASW,YAAY;mBACN;UACT;UACA;UACA;EAER,YAAY,SAAQ,QAAQ;;EAM5B,KAAK,YAAY,MAAM,GAAG;;EA6B1B,UAAU,cAAc;;EAMxB,SAAS,sBAAsB,cAAc;;EAU7C,kBAAkB,oBAAoB,cAAc;;EAMpD;;EAMA;;EAKA;;EAKA;;EAKA;UAQQ;UASA;;;;;;;;;;KC3HE,eAAe,gBAAgB,SAAS,GAAG;UAEtC;;EAEf;;EAEA;;cAcW,aAAa;mBACP;mBACA;EAEjB,YAAY,SAAQ,QAAQ;;;;;;;;;;;;EAe5B,UAAU,iBAAiB,SAAS,eAAe;;;;;EAuBnD,QAAQ,eAAe,SAAS;;;;EAoBhC,eAAe;;;;EAOf,gBAAgB;;;;EAOhB;;;;EAOA;;;;EAOA;UAIQ;UAOA;;;;;;;;;;UCzHO;;EAEf;;EAEA;;cAYW;mBACM;mBACA;UACT;EAER,YAAY,SAAQ,QAAQ;;;;;EAS5B,YAAY;;;;EAoBZ,SAAS;;;;EAUT,QAAQ;;;;EASR;;;;EAOA;;;;EAOA;UAQQ;UAQA;UASA"}
@@ -349,4 +349,4 @@ declare class MockTransportAdapter extends BaseTransportAdapter {
349
349
  }
350
350
  //#endregion
351
351
  export { TransportMode as S, StreamOptions as _, RecordedRequest as a, TransportEvents as b, TransportAdapter as c, ConnectionQuality as d, ConnectionState as f, SSEEvent as g, RequestOptions as h, MockTransportConfig as i, ConnectionManager as l, ReconnectionConfig as m, MockStreamEvent as n, BaseTransportAdapter as o, DEFAULT_RECONNECTION_CONFIG as p, MockTransportAdapter as r, Subscription as s, MockResponse as t, ConnectionManagerConfig as u, SubscriptionState as v, TransportMetrics as x, TransportConfig as y };
352
- //# sourceMappingURL=index-B4yy8ghH.d.ts.map
352
+ //# sourceMappingURL=index-Dq6SfGaX.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-Dq6SfGaX.d.ts","names":[],"sources":["../src/transport/types.ts","../src/transport/connection-manager.ts","../src/transport/interface.ts","../src/transport/mock.ts"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,13 +1,12 @@
1
- import { i as isSDKError, n as SDKError, r as isRetryable, t as ErrorCode } from "./index-D59fZ7n3.js";
2
- import { C as AuthProvider, D as RefreshableTokenAuth, E as ReadTokenAuth, O as StaticTokenAuth, S as TokenValidationResult, T as NoAuth, _ as SendMessageRequest, a as BatchScopedTokenPayloadSchema, b as SessionScopedTokenPayloadSchema, c as CreateSessionResponse, d as ProductSchema, f as ProductSecrets, g as ReadTokenPayloadSchema, h as ReadTokenPayload, i as BatchScopedTokenPayload, l as Product, m as ProjectScopedTokenPayloadSchema, n as getTokenTTL, o as CreateSessionRequest, p as ProjectScopedTokenPayload, r as isTokenExpiringSoon, s as CreateSessionRequestSchema, t as decodeToken, u as ProductAuthInfo, v as SendMessageRequestSchema, w as CallbackAuth, x as TokenScope, y as SessionScopedTokenPayload } from "./tokens-browser-EiSc2dah.js";
1
+ import { i as isSDKError, n as SDKError, r as isRetryable, t as ErrorCode } from "./index-BFYASYJk.js";
2
+ import { C as AuthProvider, D as RefreshableTokenAuth, E as ReadTokenAuth, O as StaticTokenAuth, S as TokenValidationResult, T as NoAuth, _ as SendMessageRequest, a as BatchScopedTokenPayloadSchema, b as SessionScopedTokenPayloadSchema, c as CreateSessionResponse, d as ProductSchema, f as ProductSecrets, g as ReadTokenPayloadSchema, h as ReadTokenPayload, i as BatchScopedTokenPayload, l as Product, m as ProjectScopedTokenPayloadSchema, n as getTokenTTL, o as CreateSessionRequest, p as ProjectScopedTokenPayload, r as isTokenExpiringSoon, s as CreateSessionRequestSchema, t as decodeToken, u as ProductAuthInfo, v as SendMessageRequestSchema, w as CallbackAuth, x as TokenScope, y as SessionScopedTokenPayload } from "./tokens-browser-DCV3-WHc.js";
3
3
  import { ChannelAccessResult, EnvTokenAuth, ProductAuth, ProductTokenIssuer, SidecarAuth, canBatchTokenAccessChannel, canProjectTokenAccessChannel, canSessionTokenAccessChannel, canTokenAccessChannel, extractProjectFromChannel, extractSessionFromChannel, generateApiKey, generateSecureToken, generateSigningSecret, getAllowedChannelPatterns, getTokenScope, hashApiKey, isBatchScopedToken, isProjectScopedToken, isSessionScopedToken, issueBatchScopedToken, issueProjectScopedToken, issueReadToken, issueSessionScopedToken, validateChannelSubscription, validateTokenScope, verifyApiKey, verifyReadToken } from "./auth/index.js";
4
- import { a as EventChannel, c as EventBufferConfig, i as ChannelHandler, n as EventDeduplicator, o as BufferedEvent, r as ChannelConfig, s as EventBuffer, t as DeduplicatorConfig } from "./index-C_1MnL24.js";
5
- import { S as TransportMode, _ as StreamOptions, a as RecordedRequest, b as TransportEvents, c as TransportAdapter, d as ConnectionQuality, f as ConnectionState, g as SSEEvent, h as RequestOptions, i as MockTransportConfig, l as ConnectionManager, m as ReconnectionConfig, n as MockStreamEvent, o as BaseTransportAdapter, p as DEFAULT_RECONNECTION_CONFIG, r as MockTransportAdapter, s as Subscription, t as MockResponse, u as ConnectionManagerConfig, v as SubscriptionState, x as TransportMetrics, y as TransportConfig } from "./index-B4yy8ghH.js";
6
- import { a as ProtectionOptions, c as CircuitBreaker, d as CircuitOpenError, f as CircuitState, i as withTimeout, l as CircuitBreakerConfig, n as createTimeoutController, o as createProtectedFn, r as sleep, s as withProtection, t as TimeoutError, u as CircuitBreakerStats } from "./index-HMlPCgTI.js";
4
+ import { a as EventChannel, c as EventBufferConfig, i as ChannelHandler, n as EventDeduplicator, o as BufferedEvent, r as ChannelConfig, s as EventBuffer, t as DeduplicatorConfig } from "./index-CuBvSsBf.js";
5
+ import { S as TransportMode, _ as StreamOptions, a as RecordedRequest, b as TransportEvents, c as TransportAdapter, d as ConnectionQuality, f as ConnectionState, g as SSEEvent, h as RequestOptions, i as MockTransportConfig, l as ConnectionManager, m as ReconnectionConfig, n as MockStreamEvent, o as BaseTransportAdapter, p as DEFAULT_RECONNECTION_CONFIG, r as MockTransportAdapter, s as Subscription, t as MockResponse, u as ConnectionManagerConfig, v as SubscriptionState, x as TransportMetrics, y as TransportConfig } from "./index-Dq6SfGaX.js";
6
+ import { a as ProtectionOptions, c as CircuitBreaker, d as CircuitOpenError, f as CircuitState, i as withTimeout, l as CircuitBreakerConfig, n as createTimeoutController, o as createProtectedFn, r as sleep, s as withProtection, t as TimeoutError, u as CircuitBreakerStats } from "./index-CKDeaS7l.js";
7
7
  import { ParsedSSEEvent, SSEChunkParser, SSEEventData, SSEParserOptions, StreamTokenUsage, StreamUsageAccumulator, StreamUsageExtractor, consumeSSEStream, createStreamUsageExtractor, createUsageCallback, parseSSEData, parseSSEStream } from "./sse/index.js";
8
- import { $ as CONTENT_KEY_FIELD, A as TANGLE_SUBJECT_KEY, B as GEN_AI_MODEL_KEYS, C as RUN_KEY_ATTRS, D as TANGLE_RUN_ID_KEY, E as TANGLE_RUN_ID_CAMEL_KEY, F as TRIGGER_ID_ATTRS, G as GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENS, H as GEN_AI_OUTPUT_TOKEN_KEYS, I as TRIGGER_SOURCE_ATTRS, J as GEN_AI_USAGE_OUTPUT_TOKENS, K as GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS, L as WORKFLOW_MARKER_ATTRS, M as TANGLE_TRIGGER_KIND_KEY, N as TANGLE_TRIGGER_SOURCE_KEY, O as TANGLE_RUN_KIND_KEY, P as TANGLE_WORKFLOW_ID_KEY, Q as CONTENT_KEYS, R as GEN_AI_CONVERSATION_ID, S as PARENT_RUN_KEY_ATTRS, T as SUBJECT_KEY_ATTRS, U as GEN_AI_REQUEST_MODEL, V as GEN_AI_OPERATION_NAME, W as GEN_AI_RESPONSE_MODEL, X as genAiUsageAttributes, Y as GenAiUsage, Z as CONTENT_COMPLETION_KEY, _ as promptTokens, a as TOKEN_USAGE_CACHE_READ_INCLUSIVE_KEYS, at as DeclaredIntentMatch, b as tokenCount, c as TOKEN_USAGE_COST_KEYS, ct as asContentField, d as TOKEN_USAGE_OUTPUT_KEYS, dt as declaredTaskText, et as CONTENT_PROMPT_KEY, f as TokenUsageCounts, ft as extractContent, g as firstUsageCostUsd, gt as resolveDeclaredIntent, h as firstTokenCount, ht as normalizeContentAttributes, i as TOKEN_USAGE_CACHE_READ_EXCLUSIVE_KEYS, it as ContentField, j as TANGLE_TRIGGER_ID_KEY, k as TANGLE_RUN_PARENT_ID_KEY, l as TOKEN_USAGE_DETAIL_KEYS, lt as asContentString, m as cacheHitRate, mt as logRecordContentBag, n as TOKEN_USAGE_CACHE_BAG_READ_KEYS, nt as CONTENT_TOOL_NAME_KEY, o as TOKEN_USAGE_CACHE_WRITE_EXCLUSIVE_KEYS, ot as INDEXED_CONTENT_KEY_LIKE_PATTERNS, p as addTokenUsage, pt as hasContent, q as GEN_AI_USAGE_INPUT_TOKENS, r as TOKEN_USAGE_CACHE_BAG_WRITE_KEYS, rt as CONTENT_TOOL_RESULT_KEY, s as TOKEN_USAGE_CACHE_WRITE_INCLUSIVE_KEYS, st as NormalizedContent, t as TOKEN_USAGE_CACHE_BAG_KEYS, tt as CONTENT_TOOL_ARGS_KEY, u as TOKEN_USAGE_INPUT_KEYS, ut as classifyAgent, v as readTokenCostUsd, w as RUN_KIND_ATTRS, x as tokenUsageSource, y as readTokenUsage, z as GEN_AI_INPUT_TOKEN_KEYS } from "./index-Bgao-NCe.js";
9
- import { A as ToolStateCompleted, C as TerminalDataEvent, D as TextPart, E as TerminalResizeEvent, F as isReasoningPart, I as isSubtaskPart, L as isTextPart, M as ToolStatePending, N as ToolStateRunning, O as ToolPart, P as isFilePart, R as isToolPart, S as SubtaskPart, T as TerminalExitEvent, _ as ReplayEndEvent, a as DoneEvent, b as SessionUpdatedEvent, c as ExecutionCompletedEvent, d as FilePart, f as HeartbeatEvent, g as ReasoningPart, h as PartBase, i as ConnectionInitEvent, j as ToolStateError, k as ToolState, l as ExecutionFailedEvent, m as Part, n as AgentEventType, o as ErrorEvent, p as MessagePartUpdatedEvent, r as AgentEventTypeSchema, s as EventMetadata, t as AgentEvent, u as ExecutionStartedEvent, v as ReplayStartEvent, w as TerminalEvent, x as StatusEvent, y as ResultEvent } from "./index-CDLuQTT2.js";
10
-
8
+ import { $ as CONTENT_KEY_FIELD, A as TANGLE_SUBJECT_KEY, B as GEN_AI_MODEL_KEYS, C as RUN_KEY_ATTRS, D as TANGLE_RUN_ID_KEY, E as TANGLE_RUN_ID_CAMEL_KEY, F as TRIGGER_ID_ATTRS, G as GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENS, H as GEN_AI_OUTPUT_TOKEN_KEYS, I as TRIGGER_SOURCE_ATTRS, J as GEN_AI_USAGE_OUTPUT_TOKENS, K as GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS, L as WORKFLOW_MARKER_ATTRS, M as TANGLE_TRIGGER_KIND_KEY, N as TANGLE_TRIGGER_SOURCE_KEY, O as TANGLE_RUN_KIND_KEY, P as TANGLE_WORKFLOW_ID_KEY, Q as CONTENT_KEYS, R as GEN_AI_CONVERSATION_ID, S as PARENT_RUN_KEY_ATTRS, T as SUBJECT_KEY_ATTRS, U as GEN_AI_REQUEST_MODEL, V as GEN_AI_OPERATION_NAME, W as GEN_AI_RESPONSE_MODEL, X as genAiUsageAttributes, Y as GenAiUsage, Z as CONTENT_COMPLETION_KEY, _ as promptTokens, a as TOKEN_USAGE_CACHE_READ_INCLUSIVE_KEYS, at as DeclaredIntentMatch, b as tokenCount, c as TOKEN_USAGE_COST_KEYS, ct as asContentField, d as TOKEN_USAGE_OUTPUT_KEYS, dt as declaredTaskText, et as CONTENT_PROMPT_KEY, f as TokenUsageCounts, ft as extractContent, g as firstUsageCostUsd, gt as resolveDeclaredIntent, h as firstTokenCount, ht as normalizeContentAttributes, i as TOKEN_USAGE_CACHE_READ_EXCLUSIVE_KEYS, it as ContentField, j as TANGLE_TRIGGER_ID_KEY, k as TANGLE_RUN_PARENT_ID_KEY, l as TOKEN_USAGE_DETAIL_KEYS, lt as asContentString, m as cacheHitRate, mt as logRecordContentBag, n as TOKEN_USAGE_CACHE_BAG_READ_KEYS, nt as CONTENT_TOOL_NAME_KEY, o as TOKEN_USAGE_CACHE_WRITE_EXCLUSIVE_KEYS, ot as INDEXED_CONTENT_KEY_LIKE_PATTERNS, p as addTokenUsage, pt as hasContent, q as GEN_AI_USAGE_INPUT_TOKENS, r as TOKEN_USAGE_CACHE_BAG_WRITE_KEYS, rt as CONTENT_TOOL_RESULT_KEY, s as TOKEN_USAGE_CACHE_WRITE_INCLUSIVE_KEYS, st as NormalizedContent, t as TOKEN_USAGE_CACHE_BAG_KEYS, tt as CONTENT_TOOL_ARGS_KEY, u as TOKEN_USAGE_INPUT_KEYS, ut as classifyAgent, v as readTokenCostUsd, w as RUN_KIND_ATTRS, x as tokenUsageSource, y as readTokenUsage, z as GEN_AI_INPUT_TOKEN_KEYS } from "./index-BvjA5i93.js";
9
+ import { A as ToolStateCompleted, C as TerminalDataEvent, D as TextPart, E as TerminalResizeEvent, F as isReasoningPart, I as isSubtaskPart, L as isTextPart, M as ToolStatePending, N as ToolStateRunning, O as ToolPart, P as isFilePart, R as isToolPart, S as SubtaskPart, T as TerminalExitEvent, _ as ReplayEndEvent, a as DoneEvent, b as SessionUpdatedEvent, c as ExecutionCompletedEvent, d as FilePart, f as HeartbeatEvent, g as ReasoningPart, h as PartBase, i as ConnectionInitEvent, j as ToolStateError, k as ToolState, l as ExecutionFailedEvent, m as Part, n as AgentEventType, o as ErrorEvent, p as MessagePartUpdatedEvent, r as AgentEventTypeSchema, s as EventMetadata, t as AgentEvent, u as ExecutionStartedEvent, v as ReplayStartEvent, w as TerminalEvent, x as StatusEvent, y as ResultEvent } from "./index-CQPGv8jg.js";
11
10
  //#region src/cache/index.d.ts
12
11
  /**
13
12
  * Response Caching
@@ -486,5 +485,5 @@ declare function createSessionTranslator(translation: SessionTranslation): <T>(e
486
485
  */
487
486
  declare function extractSessionId(event: unknown): string | null;
488
487
  //#endregion
489
- export { AgentEvent, AgentEventType, AgentEventTypeSchema, type AuthProvider, BaseTransportAdapter, type BatchScopedTokenPayload, BatchScopedTokenPayloadSchema, BrowserNetworkInfo, BrowserPersistence, type BufferedEvent, CONTENT_COMPLETION_KEY, CONTENT_KEYS, CONTENT_KEY_FIELD, CONTENT_PROMPT_KEY, CONTENT_TOOL_ARGS_KEY, CONTENT_TOOL_NAME_KEY, CONTENT_TOOL_RESULT_KEY, type CacheConfig, type CacheStorage, CallbackAuth, type ChannelAccessResult, type ChannelConfig, type ChannelHandler, CircuitBreaker, CircuitBreakerConfig, CircuitBreakerStats, CircuitOpenError, CircuitState, ConnectionInitEvent, ConnectionManager, ConnectionManagerConfig, ConnectionQuality, ConnectionState, ContentField, type CreateSessionRequest, CreateSessionRequestSchema, type CreateSessionResponse, DEFAULT_RECONNECTION_CONFIG, DeclaredIntentMatch, type DeduplicatorConfig, DoneEvent, EnvTokenAuth, type ErrorCode, type ErrorContext, ErrorEvent, EventBuffer, type EventBufferConfig, EventChannel, EventDeduplicator, EventMetadata, ExecutionCompletedEvent, ExecutionFailedEvent, ExecutionStartedEvent, FilePart, GEN_AI_CONVERSATION_ID, GEN_AI_INPUT_TOKEN_KEYS, GEN_AI_MODEL_KEYS, GEN_AI_OPERATION_NAME, GEN_AI_OUTPUT_TOKEN_KEYS, GEN_AI_REQUEST_MODEL, GEN_AI_RESPONSE_MODEL, GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENS, GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS, GEN_AI_USAGE_INPUT_TOKENS, GEN_AI_USAGE_OUTPUT_TOKENS, GenAiUsage, HeartbeatEvent, INDEXED_CONTENT_KEY_LIKE_PATTERNS, type Interceptor, InterceptorChain, LocalStorage, MemoryCache, MemorySecureStorage, MemoryStorage, MessagePartUpdatedEvent, MockResponse, MockStreamEvent, MockTransportAdapter, MockTransportConfig, type NetworkInfo, NoAuth, NodeNetworkInfo, NormalizedContent, OfflineQueue, PARENT_RUN_KEY_ATTRS, type ParsedSSEEvent, Part, PartBase, type PersistenceAdapter, type PlatformAdapter, type PlatformCapabilities, type Product, ProductAuth, type ProductAuthInfo, ProductSchema, type ProductSecrets, ProductTokenIssuer, type ProjectScopedTokenPayload, ProjectScopedTokenPayloadSchema, ProtectionOptions, type QueuedRequest, RUN_KEY_ATTRS, RUN_KIND_ATTRS, ReadTokenAuth, type ReadTokenPayload, ReadTokenPayloadSchema, ReasoningPart, ReconnectionConfig, RecordedRequest, RefreshableTokenAuth, ReplayEndEvent, ReplayStartEvent, type RequestContext, RequestOptions, ResponseCache, type ResponseContext, ResultEvent, type RetryConfig, Retryable, SDKError, SSEChunkParser, SSEEvent, type SSEEventData, type SSEParserOptions, SUBJECT_KEY_ATTRS, type SecureStorage, type SendMessageRequest, SendMessageRequestSchema, type SessionScopedTokenPayload, SessionScopedTokenPayloadSchema, SessionTranslation, SessionUpdatedEvent, SidecarAuth, StaticTokenAuth, StatusEvent, type Storage, StoragePersistence, StreamOptions, type StreamTokenUsage, type StreamUsageAccumulator, StreamUsageExtractor, Subscription, SubscriptionState, SubtaskPart, TANGLE_RUN_ID_CAMEL_KEY, TANGLE_RUN_ID_KEY, TANGLE_RUN_KIND_KEY, TANGLE_RUN_PARENT_ID_KEY, TANGLE_SUBJECT_KEY, TANGLE_TRIGGER_ID_KEY, TANGLE_TRIGGER_KIND_KEY, TANGLE_TRIGGER_SOURCE_KEY, TANGLE_WORKFLOW_ID_KEY, TOKEN_USAGE_CACHE_BAG_KEYS, TOKEN_USAGE_CACHE_BAG_READ_KEYS, TOKEN_USAGE_CACHE_BAG_WRITE_KEYS, TOKEN_USAGE_CACHE_READ_EXCLUSIVE_KEYS, TOKEN_USAGE_CACHE_READ_INCLUSIVE_KEYS, TOKEN_USAGE_CACHE_WRITE_EXCLUSIVE_KEYS, TOKEN_USAGE_CACHE_WRITE_INCLUSIVE_KEYS, TOKEN_USAGE_COST_KEYS, TOKEN_USAGE_DETAIL_KEYS, TOKEN_USAGE_INPUT_KEYS, TOKEN_USAGE_OUTPUT_KEYS, TRIGGER_ID_ATTRS, TRIGGER_SOURCE_ATTRS, TerminalDataEvent, TerminalEvent, TerminalExitEvent, TerminalResizeEvent, TextPart, TimeoutError, type TokenScope, TokenUsageCounts, type TokenValidationResult, ToolPart, ToolState, ToolStateCompleted, ToolStateError, ToolStatePending, ToolStateRunning, TransportAdapter, TransportConfig, TransportEvents, TransportMetrics, TransportMode, WORKFLOW_MARKER_ATTRS, addTokenUsage, asContentField, asContentString, cacheHitRate, calculateDelay, canBatchTokenAccessChannel, canProjectTokenAccessChannel, canSessionTokenAccessChannel, canTokenAccessChannel, classifyAgent, consumeSSEStream, createDefaultPlatformAdapter, createHeaderInterceptor, createLoggingInterceptor, createMetricsInterceptor, createPlatformAdapter, createProtectedFn, createSessionTranslator, createStreamUsageExtractor, createTimeoutController, createUsageCallback, declaredTaskText, decodeToken, detectPlatform, detectStorage, extractContent, extractProjectFromChannel, extractSessionFromChannel, extractSessionId, firstTokenCount, firstUsageCostUsd, genAiUsageAttributes, generateApiKey, generateIdempotencyKey, generateRequestId, generateSecureToken, generateSigningSecret, getAllowedChannelPatterns, getTokenScope, getTokenTTL, hasContent, hashApiKey, isBatchScopedToken, isFilePart, isProjectScopedToken, isReasoningPart, isRetryable, isSDKError, isSessionScopedToken, isSubtaskPart, isTextPart, isTokenExpiringSoon, isToolPart, issueBatchScopedToken, issueProjectScopedToken, issueReadToken, issueSessionScopedToken, logRecordContentBag, matchesAnyChannel, matchesChannel, normalizeContentAttributes, parseSSEData, parseSSEStream, promptTokens, readTokenCostUsd, readTokenUsage, resolveDeclaredIntent, sleep, tokenCount, tokenUsageSource, translateSessionId, validateChannelSubscription, validateTokenScope, verifyApiKey, verifyReadToken, withProtection, withRetry, withTimeout };
488
+ export { type AgentEvent, type AgentEventType, AgentEventTypeSchema, type AuthProvider, BaseTransportAdapter, type BatchScopedTokenPayload, BatchScopedTokenPayloadSchema, BrowserNetworkInfo, BrowserPersistence, type BufferedEvent, CONTENT_COMPLETION_KEY, CONTENT_KEYS, CONTENT_KEY_FIELD, CONTENT_PROMPT_KEY, CONTENT_TOOL_ARGS_KEY, CONTENT_TOOL_NAME_KEY, CONTENT_TOOL_RESULT_KEY, type CacheConfig, type CacheStorage, CallbackAuth, type ChannelAccessResult, type ChannelConfig, type ChannelHandler, CircuitBreaker, type CircuitBreakerConfig, type CircuitBreakerStats, CircuitOpenError, type CircuitState, type ConnectionInitEvent, ConnectionManager, type ConnectionManagerConfig, type ConnectionQuality, type ConnectionState, type ContentField, type CreateSessionRequest, CreateSessionRequestSchema, type CreateSessionResponse, DEFAULT_RECONNECTION_CONFIG, type DeclaredIntentMatch, type DeduplicatorConfig, type DoneEvent, EnvTokenAuth, type ErrorCode, type ErrorContext, type ErrorEvent, EventBuffer, type EventBufferConfig, EventChannel, EventDeduplicator, type EventMetadata, type ExecutionCompletedEvent, type ExecutionFailedEvent, type ExecutionStartedEvent, type FilePart, GEN_AI_CONVERSATION_ID, GEN_AI_INPUT_TOKEN_KEYS, GEN_AI_MODEL_KEYS, GEN_AI_OPERATION_NAME, GEN_AI_OUTPUT_TOKEN_KEYS, GEN_AI_REQUEST_MODEL, GEN_AI_RESPONSE_MODEL, GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENS, GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS, GEN_AI_USAGE_INPUT_TOKENS, GEN_AI_USAGE_OUTPUT_TOKENS, type GenAiUsage, type HeartbeatEvent, INDEXED_CONTENT_KEY_LIKE_PATTERNS, type Interceptor, InterceptorChain, LocalStorage, MemoryCache, MemorySecureStorage, MemoryStorage, type MessagePartUpdatedEvent, type MockResponse, type MockStreamEvent, MockTransportAdapter, type MockTransportConfig, type NetworkInfo, NoAuth, NodeNetworkInfo, type NormalizedContent, OfflineQueue, PARENT_RUN_KEY_ATTRS, type ParsedSSEEvent, type Part, type PartBase, type PersistenceAdapter, type PlatformAdapter, type PlatformCapabilities, type Product, ProductAuth, type ProductAuthInfo, ProductSchema, type ProductSecrets, ProductTokenIssuer, type ProjectScopedTokenPayload, ProjectScopedTokenPayloadSchema, type ProtectionOptions, type QueuedRequest, RUN_KEY_ATTRS, RUN_KIND_ATTRS, ReadTokenAuth, type ReadTokenPayload, ReadTokenPayloadSchema, type ReasoningPart, type ReconnectionConfig, type RecordedRequest, RefreshableTokenAuth, type ReplayEndEvent, type ReplayStartEvent, type RequestContext, type RequestOptions, ResponseCache, type ResponseContext, type ResultEvent, type RetryConfig, Retryable, SDKError, SSEChunkParser, type SSEEvent, type SSEEventData, type SSEParserOptions, SUBJECT_KEY_ATTRS, type SecureStorage, type SendMessageRequest, SendMessageRequestSchema, type SessionScopedTokenPayload, SessionScopedTokenPayloadSchema, type SessionTranslation, type SessionUpdatedEvent, SidecarAuth, StaticTokenAuth, type StatusEvent, type Storage, StoragePersistence, type StreamOptions, type StreamTokenUsage, type StreamUsageAccumulator, StreamUsageExtractor, type Subscription, type SubscriptionState, type SubtaskPart, TANGLE_RUN_ID_CAMEL_KEY, TANGLE_RUN_ID_KEY, TANGLE_RUN_KIND_KEY, TANGLE_RUN_PARENT_ID_KEY, TANGLE_SUBJECT_KEY, TANGLE_TRIGGER_ID_KEY, TANGLE_TRIGGER_KIND_KEY, TANGLE_TRIGGER_SOURCE_KEY, TANGLE_WORKFLOW_ID_KEY, TOKEN_USAGE_CACHE_BAG_KEYS, TOKEN_USAGE_CACHE_BAG_READ_KEYS, TOKEN_USAGE_CACHE_BAG_WRITE_KEYS, TOKEN_USAGE_CACHE_READ_EXCLUSIVE_KEYS, TOKEN_USAGE_CACHE_READ_INCLUSIVE_KEYS, TOKEN_USAGE_CACHE_WRITE_EXCLUSIVE_KEYS, TOKEN_USAGE_CACHE_WRITE_INCLUSIVE_KEYS, TOKEN_USAGE_COST_KEYS, TOKEN_USAGE_DETAIL_KEYS, TOKEN_USAGE_INPUT_KEYS, TOKEN_USAGE_OUTPUT_KEYS, TRIGGER_ID_ATTRS, TRIGGER_SOURCE_ATTRS, type TerminalDataEvent, type TerminalEvent, type TerminalExitEvent, type TerminalResizeEvent, type TextPart, TimeoutError, type TokenScope, type TokenUsageCounts, type TokenValidationResult, type ToolPart, type ToolState, type ToolStateCompleted, type ToolStateError, type ToolStatePending, type ToolStateRunning, type TransportAdapter, type TransportConfig, type TransportEvents, type TransportMetrics, type TransportMode, WORKFLOW_MARKER_ATTRS, addTokenUsage, asContentField, asContentString, cacheHitRate, calculateDelay, canBatchTokenAccessChannel, canProjectTokenAccessChannel, canSessionTokenAccessChannel, canTokenAccessChannel, classifyAgent, consumeSSEStream, createDefaultPlatformAdapter, createHeaderInterceptor, createLoggingInterceptor, createMetricsInterceptor, createPlatformAdapter, createProtectedFn, createSessionTranslator, createStreamUsageExtractor, createTimeoutController, createUsageCallback, declaredTaskText, decodeToken, detectPlatform, detectStorage, extractContent, extractProjectFromChannel, extractSessionFromChannel, extractSessionId, firstTokenCount, firstUsageCostUsd, genAiUsageAttributes, generateApiKey, generateIdempotencyKey, generateRequestId, generateSecureToken, generateSigningSecret, getAllowedChannelPatterns, getTokenScope, getTokenTTL, hasContent, hashApiKey, isBatchScopedToken, isFilePart, isProjectScopedToken, isReasoningPart, isRetryable, isSDKError, isSessionScopedToken, isSubtaskPart, isTextPart, isTokenExpiringSoon, isToolPart, issueBatchScopedToken, issueProjectScopedToken, issueReadToken, issueSessionScopedToken, logRecordContentBag, matchesAnyChannel, matchesChannel, normalizeContentAttributes, parseSSEData, parseSSEStream, promptTokens, readTokenCostUsd, readTokenUsage, resolveDeclaredIntent, sleep, tokenCount, tokenUsageSource, translateSessionId, validateChannelSubscription, validateTokenScope, verifyApiKey, verifyReadToken, withProtection, withRetry, withTimeout };
490
489
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../src/cache/index.ts","../src/middleware/index.ts","../src/storage/index.ts","../src/platform/index.ts","../src/retry/index.ts","../src/utils/channel-matching.ts","../src/utils/session-translator.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/cache/index.ts","../src/middleware/index.ts","../src/storage/index.ts","../src/platform/index.ts","../src/retry/index.ts","../src/utils/channel-matching.ts","../src/utils/session-translator.ts"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,12 +1,12 @@
1
- import { _ as isTokenExpiringSoon, a as ReadTokenPayloadSchema, c as CallbackAuth, d as RefreshableTokenAuth, f as StaticTokenAuth, g as getTokenTTL, h as decodeToken, i as ProjectScopedTokenPayloadSchema, l as NoAuth, n as CreateSessionRequestSchema, o as SendMessageRequestSchema, r as ProductSchema, s as SessionScopedTokenPayloadSchema, t as BatchScopedTokenPayloadSchema, u as ReadTokenAuth } from "./types-Boft7Ohf.js";
2
- import { n as isRetryable, r as isSDKError, t as SDKError } from "./errors-RaBbEzQu.js";
1
+ import { _ as isTokenExpiringSoon, a as ReadTokenPayloadSchema, c as CallbackAuth, d as RefreshableTokenAuth, f as StaticTokenAuth, g as getTokenTTL, h as decodeToken, i as ProjectScopedTokenPayloadSchema, l as NoAuth, n as CreateSessionRequestSchema, o as SendMessageRequestSchema, r as ProductSchema, s as SessionScopedTokenPayloadSchema, t as BatchScopedTokenPayloadSchema, u as ReadTokenAuth } from "./types--u-Om3vE.js";
2
+ import { n as isRetryable, r as isSDKError, t as SDKError } from "./errors-GuWACHTg.js";
3
3
  import { EnvTokenAuth, ProductAuth, ProductTokenIssuer, SidecarAuth, canBatchTokenAccessChannel, canProjectTokenAccessChannel, canSessionTokenAccessChannel, canTokenAccessChannel, extractProjectFromChannel, extractSessionFromChannel, generateApiKey, generateSecureToken, generateSigningSecret, getAllowedChannelPatterns, getTokenScope, hashApiKey, isBatchScopedToken, isProjectScopedToken, isSessionScopedToken, issueBatchScopedToken, issueProjectScopedToken, issueReadToken, issueSessionScopedToken, validateChannelSubscription, validateTokenScope, verifyApiKey, verifyReadToken } from "./auth/index.js";
4
- import { n as EventChannel, r as EventBuffer, t as EventDeduplicator } from "./events-CUWh9qrv.js";
5
- import { a as sleep, c as CircuitOpenError, i as createTimeoutController, n as withProtection, o as withTimeout, r as TimeoutError, s as CircuitBreaker, t as createProtectedFn } from "./resilience-v3NFIdDo.js";
4
+ import { n as EventChannel, r as EventBuffer, t as EventDeduplicator } from "./events-U7kxNUpM.js";
5
+ import { a as sleep, c as CircuitOpenError, i as createTimeoutController, n as withProtection, o as withTimeout, r as TimeoutError, s as CircuitBreaker, t as createProtectedFn } from "./resilience-Cv5tqIDU.js";
6
6
  import { SSEChunkParser, StreamUsageExtractor, consumeSSEStream, createStreamUsageExtractor, createUsageCallback, parseSSEData, parseSSEStream } from "./sse/index.js";
7
- import { $ as CONTENT_TOOL_ARGS_KEY, A as TANGLE_TRIGGER_ID_KEY, B as GEN_AI_OPERATION_NAME, C as RUN_KIND_ATTRS, D as TANGLE_RUN_KIND_KEY, E as TANGLE_RUN_ID_KEY, F as TRIGGER_SOURCE_ATTRS, G as GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS, H as GEN_AI_REQUEST_MODEL, I as WORKFLOW_MARKER_ATTRS, J as genAiUsageAttributes, K as GEN_AI_USAGE_INPUT_TOKENS, L as GEN_AI_CONVERSATION_ID, M as TANGLE_TRIGGER_SOURCE_KEY, N as TANGLE_WORKFLOW_ID_KEY, O as TANGLE_RUN_PARENT_ID_KEY, P as TRIGGER_ID_ATTRS, Q as CONTENT_PROMPT_KEY, R as GEN_AI_INPUT_TOKEN_KEYS, S as RUN_KEY_ATTRS, T as TANGLE_RUN_ID_CAMEL_KEY, U as GEN_AI_RESPONSE_MODEL, V as GEN_AI_OUTPUT_TOKEN_KEYS, W as GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENS, X as CONTENT_KEYS, Y as CONTENT_COMPLETION_KEY, Z as CONTENT_KEY_FIELD, _ as readTokenCostUsd, a as TOKEN_USAGE_CACHE_READ_INCLUSIVE_KEYS, at as classifyAgent, b as tokenUsageSource, c as TOKEN_USAGE_COST_KEYS, ct as hasContent, d as TOKEN_USAGE_OUTPUT_KEYS, dt as resolveDeclaredIntent, et as CONTENT_TOOL_NAME_KEY, f as addTokenUsage, g as promptTokens, h as firstUsageCostUsd, i as TOKEN_USAGE_CACHE_READ_EXCLUSIVE_KEYS, it as asContentString, j as TANGLE_TRIGGER_KIND_KEY, k as TANGLE_SUBJECT_KEY, l as TOKEN_USAGE_DETAIL_KEYS, lt as logRecordContentBag, m as firstTokenCount, n as TOKEN_USAGE_CACHE_BAG_READ_KEYS, nt as INDEXED_CONTENT_KEY_LIKE_PATTERNS, o as TOKEN_USAGE_CACHE_WRITE_EXCLUSIVE_KEYS, ot as declaredTaskText, p as cacheHitRate, q as GEN_AI_USAGE_OUTPUT_TOKENS, r as TOKEN_USAGE_CACHE_BAG_WRITE_KEYS, rt as asContentField, s as TOKEN_USAGE_CACHE_WRITE_INCLUSIVE_KEYS, st as extractContent, t as TOKEN_USAGE_CACHE_BAG_KEYS, tt as CONTENT_TOOL_RESULT_KEY, u as TOKEN_USAGE_INPUT_KEYS, ut as normalizeContentAttributes, v as readTokenUsage, w as SUBJECT_KEY_ATTRS, x as PARENT_RUN_KEY_ATTRS, y as tokenCount, z as GEN_AI_MODEL_KEYS } from "./telemetry-x1wNw1P4.js";
8
- import { i as DEFAULT_RECONNECTION_CONFIG, n as BaseTransportAdapter, r as ConnectionManager, t as MockTransportAdapter } from "./transport-XLxpQmUW.js";
9
- import { a as isTextPart, i as isSubtaskPart, n as isFilePart, o as isToolPart, r as isReasoningPart, t as AgentEventTypeSchema } from "./types-Ci7hcTnp.js";
7
+ import { $ as CONTENT_TOOL_ARGS_KEY, A as TANGLE_TRIGGER_ID_KEY, B as GEN_AI_OPERATION_NAME, C as RUN_KIND_ATTRS, D as TANGLE_RUN_KIND_KEY, E as TANGLE_RUN_ID_KEY, F as TRIGGER_SOURCE_ATTRS, G as GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS, H as GEN_AI_REQUEST_MODEL, I as WORKFLOW_MARKER_ATTRS, J as genAiUsageAttributes, K as GEN_AI_USAGE_INPUT_TOKENS, L as GEN_AI_CONVERSATION_ID, M as TANGLE_TRIGGER_SOURCE_KEY, N as TANGLE_WORKFLOW_ID_KEY, O as TANGLE_RUN_PARENT_ID_KEY, P as TRIGGER_ID_ATTRS, Q as CONTENT_PROMPT_KEY, R as GEN_AI_INPUT_TOKEN_KEYS, S as RUN_KEY_ATTRS, T as TANGLE_RUN_ID_CAMEL_KEY, U as GEN_AI_RESPONSE_MODEL, V as GEN_AI_OUTPUT_TOKEN_KEYS, W as GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENS, X as CONTENT_KEYS, Y as CONTENT_COMPLETION_KEY, Z as CONTENT_KEY_FIELD, _ as readTokenCostUsd, a as TOKEN_USAGE_CACHE_READ_INCLUSIVE_KEYS, at as classifyAgent, b as tokenUsageSource, c as TOKEN_USAGE_COST_KEYS, ct as hasContent, d as TOKEN_USAGE_OUTPUT_KEYS, dt as resolveDeclaredIntent, et as CONTENT_TOOL_NAME_KEY, f as addTokenUsage, g as promptTokens, h as firstUsageCostUsd, i as TOKEN_USAGE_CACHE_READ_EXCLUSIVE_KEYS, it as asContentString, j as TANGLE_TRIGGER_KIND_KEY, k as TANGLE_SUBJECT_KEY, l as TOKEN_USAGE_DETAIL_KEYS, lt as logRecordContentBag, m as firstTokenCount, n as TOKEN_USAGE_CACHE_BAG_READ_KEYS, nt as INDEXED_CONTENT_KEY_LIKE_PATTERNS, o as TOKEN_USAGE_CACHE_WRITE_EXCLUSIVE_KEYS, ot as declaredTaskText, p as cacheHitRate, q as GEN_AI_USAGE_OUTPUT_TOKENS, r as TOKEN_USAGE_CACHE_BAG_WRITE_KEYS, rt as asContentField, s as TOKEN_USAGE_CACHE_WRITE_INCLUSIVE_KEYS, st as extractContent, t as TOKEN_USAGE_CACHE_BAG_KEYS, tt as CONTENT_TOOL_RESULT_KEY, u as TOKEN_USAGE_INPUT_KEYS, ut as normalizeContentAttributes, v as readTokenUsage, w as SUBJECT_KEY_ATTRS, x as PARENT_RUN_KEY_ATTRS, y as tokenCount, z as GEN_AI_MODEL_KEYS } from "./telemetry-DTOiMSzM.js";
8
+ import { i as DEFAULT_RECONNECTION_CONFIG, n as BaseTransportAdapter, r as ConnectionManager, t as MockTransportAdapter } from "./transport-DAfw3oL0.js";
9
+ import { a as isTextPart, i as isSubtaskPart, n as isFilePart, o as isToolPart, r as isReasoningPart, t as AgentEventTypeSchema } from "./types-DVN5qATk.js";
10
10
  //#region src/cache/index.ts
11
11
  /** In-memory LRU cache */
12
12
  var MemoryCache = class {
@@ -245,6 +245,7 @@ var MemoryStorage = class {
245
245
  };
246
246
  /** Browser localStorage wrapper */
247
247
  var LocalStorage = class {
248
+ prefix;
248
249
  constructor(prefix = "sdk_") {
249
250
  this.prefix = prefix;
250
251
  }
@@ -286,6 +287,7 @@ var LocalStorage = class {
286
287
  };
287
288
  /** Offline queue manager */
288
289
  var OfflineQueue = class {
290
+ storage;
289
291
  storageKey = "offline_queue";
290
292
  constructor(storage) {
291
293
  this.storage = storage;
@@ -446,6 +448,7 @@ var NodeNetworkInfo = class {
446
448
  * Uses provided Storage implementation for state persistence.
447
449
  */
448
450
  var StoragePersistence = class {
451
+ storage;
449
452
  constructor(storage) {
450
453
  this.storage = storage;
451
454
  }
@@ -580,29 +583,11 @@ async function withRetry(fn, config = {}) {
580
583
  if (!(config.shouldRetry ? config.shouldRetry(lastError, attempt) : isRetryable(lastError)) || attempt >= maxAttempts - 1) throw lastError;
581
584
  const delay = lastError.retryAfterMs ?? calculateDelay(attempt, config);
582
585
  config.onRetry?.(lastError, attempt + 1, delay);
583
- await sleep$1(delay, config.signal);
586
+ await sleep(delay, config.signal);
584
587
  }
585
588
  }
586
589
  throw lastError ?? new SDKError("Max retries exceeded", { code: "UNKNOWN" });
587
590
  }
588
- /** Sleep utility */
589
- function sleep$1(ms, signal) {
590
- return new Promise((resolve, reject) => {
591
- if (signal?.aborted) {
592
- reject(signal.reason);
593
- return;
594
- }
595
- const timer = setTimeout(() => {
596
- signal?.removeEventListener("abort", onAbort);
597
- resolve();
598
- }, ms);
599
- const onAbort = () => {
600
- clearTimeout(timer);
601
- reject(signal?.reason);
602
- };
603
- signal?.addEventListener("abort", onAbort, { once: true });
604
- });
605
- }
606
591
  /** Idempotency key generator */
607
592
  function generateIdempotencyKey() {
608
593
  return `idem_${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 10)}`;