agent-recorder 2.0.12 → 2.0.13

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 (141) hide show
  1. package/dist/bundle.js +4 -0
  2. package/dist/bundle.js.map +1 -1
  3. package/dist/embed.d.ts +21 -0
  4. package/dist/embed.d.ts.map +1 -0
  5. package/dist/embed.js +22 -0
  6. package/dist/embed.js.map +1 -0
  7. package/package.json +8 -1
  8. package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics.test.js +1 -0
  9. package/vendor/node_modules/@agent-recorder/cli/analytics/session-analytics.test.js.map +1 -1
  10. package/vendor/node_modules/@agent-recorder/cli/commands/mcp-server.d.ts +11 -0
  11. package/vendor/node_modules/@agent-recorder/cli/commands/mcp-server.d.ts.map +1 -0
  12. package/vendor/node_modules/@agent-recorder/cli/commands/mcp-server.js +442 -0
  13. package/vendor/node_modules/@agent-recorder/cli/commands/mcp-server.js.map +1 -0
  14. package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.d.ts +2 -51
  15. package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.d.ts.map +1 -1
  16. package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.js +2 -113
  17. package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.js.map +1 -1
  18. package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.test.js +1 -1
  19. package/vendor/node_modules/@agent-recorder/cli/config/claude-paths.test.js.map +1 -1
  20. package/vendor/node_modules/@agent-recorder/cli/index.js +10 -0
  21. package/vendor/node_modules/@agent-recorder/cli/index.js.map +1 -1
  22. package/vendor/node_modules/@agent-recorder/cli/package.json +1 -1
  23. package/vendor/node_modules/@agent-recorder/core/claude-config.d.ts +23 -0
  24. package/vendor/node_modules/@agent-recorder/core/claude-config.d.ts.map +1 -1
  25. package/vendor/node_modules/@agent-recorder/core/claude-config.js +50 -0
  26. package/vendor/node_modules/@agent-recorder/core/claude-config.js.map +1 -1
  27. package/vendor/node_modules/@agent-recorder/core/config.d.ts +6 -1
  28. package/vendor/node_modules/@agent-recorder/core/config.d.ts.map +1 -1
  29. package/vendor/node_modules/@agent-recorder/core/config.js +4 -1
  30. package/vendor/node_modules/@agent-recorder/core/config.js.map +1 -1
  31. package/vendor/node_modules/@agent-recorder/core/db/events-complete.test.d.ts +5 -0
  32. package/vendor/node_modules/@agent-recorder/core/db/events-complete.test.d.ts.map +1 -0
  33. package/vendor/node_modules/@agent-recorder/core/db/events-complete.test.js +133 -0
  34. package/vendor/node_modules/@agent-recorder/core/db/events-complete.test.js.map +1 -0
  35. package/vendor/node_modules/@agent-recorder/core/db/events.d.ts +23 -36
  36. package/vendor/node_modules/@agent-recorder/core/db/events.d.ts.map +1 -1
  37. package/vendor/node_modules/@agent-recorder/core/db/events.js +70 -2
  38. package/vendor/node_modules/@agent-recorder/core/db/events.js.map +1 -1
  39. package/vendor/node_modules/@agent-recorder/core/db/events.test.js +62 -1
  40. package/vendor/node_modules/@agent-recorder/core/db/events.test.js.map +1 -1
  41. package/vendor/node_modules/@agent-recorder/core/db/index.d.ts +1 -1
  42. package/vendor/node_modules/@agent-recorder/core/db/index.d.ts.map +1 -1
  43. package/vendor/node_modules/@agent-recorder/core/db/index.js +1 -1
  44. package/vendor/node_modules/@agent-recorder/core/db/index.js.map +1 -1
  45. package/vendor/node_modules/@agent-recorder/core/db/sessions.d.ts +2 -5
  46. package/vendor/node_modules/@agent-recorder/core/db/sessions.d.ts.map +1 -1
  47. package/vendor/node_modules/@agent-recorder/core/db/sessions.js.map +1 -1
  48. package/vendor/node_modules/@agent-recorder/core/migrations/007_add_correlation_id.sql +11 -0
  49. package/vendor/node_modules/@agent-recorder/core/package.json +1 -1
  50. package/vendor/node_modules/@agent-recorder/core/types/index.d.ts +4 -2
  51. package/vendor/node_modules/@agent-recorder/core/types/index.d.ts.map +1 -1
  52. package/vendor/node_modules/@agent-recorder/core/types/index.js +3 -0
  53. package/vendor/node_modules/@agent-recorder/core/types/index.js.map +1 -1
  54. package/vendor/node_modules/@agent-recorder/core/utils/redact.d.ts.map +1 -1
  55. package/vendor/node_modules/@agent-recorder/core/utils/redact.js +6 -3
  56. package/vendor/node_modules/@agent-recorder/core/utils/redact.js.map +1 -1
  57. package/vendor/node_modules/@agent-recorder/core/utils/redact.test.d.ts +6 -0
  58. package/vendor/node_modules/@agent-recorder/core/utils/redact.test.d.ts.map +1 -0
  59. package/vendor/node_modules/@agent-recorder/core/utils/redact.test.js +82 -0
  60. package/vendor/node_modules/@agent-recorder/core/utils/redact.test.js.map +1 -0
  61. package/vendor/node_modules/@agent-recorder/hooks/package.json +1 -1
  62. package/vendor/node_modules/@agent-recorder/service/daemon-context.d.ts +14 -0
  63. package/vendor/node_modules/@agent-recorder/service/daemon-context.d.ts.map +1 -0
  64. package/vendor/node_modules/@agent-recorder/service/daemon-context.js +15 -0
  65. package/vendor/node_modules/@agent-recorder/service/daemon-context.js.map +1 -0
  66. package/vendor/node_modules/@agent-recorder/service/index.d.ts +1 -8
  67. package/vendor/node_modules/@agent-recorder/service/index.d.ts.map +1 -1
  68. package/vendor/node_modules/@agent-recorder/service/index.js +14 -22
  69. package/vendor/node_modules/@agent-recorder/service/index.js.map +1 -1
  70. package/vendor/node_modules/@agent-recorder/service/mcp/proxy.d.ts +27 -0
  71. package/vendor/node_modules/@agent-recorder/service/mcp/proxy.d.ts.map +1 -1
  72. package/vendor/node_modules/@agent-recorder/service/mcp/proxy.js +109 -34
  73. package/vendor/node_modules/@agent-recorder/service/mcp/proxy.js.map +1 -1
  74. package/vendor/node_modules/@agent-recorder/service/mcp/types.d.ts +5 -31
  75. package/vendor/node_modules/@agent-recorder/service/mcp/types.d.ts.map +1 -1
  76. package/vendor/node_modules/@agent-recorder/service/mcp/types.js +3 -1
  77. package/vendor/node_modules/@agent-recorder/service/mcp/types.js.map +1 -1
  78. package/vendor/node_modules/@agent-recorder/service/mcp/upstreams-cache.test.d.ts +5 -0
  79. package/vendor/node_modules/@agent-recorder/service/mcp/upstreams-cache.test.d.ts.map +1 -0
  80. package/vendor/node_modules/@agent-recorder/service/mcp/upstreams-cache.test.js +66 -0
  81. package/vendor/node_modules/@agent-recorder/service/mcp/upstreams-cache.test.js.map +1 -0
  82. package/vendor/node_modules/@agent-recorder/service/package.json +1 -1
  83. package/vendor/node_modules/@agent-recorder/service/routes/events.d.ts.map +1 -1
  84. package/vendor/node_modules/@agent-recorder/service/routes/events.js +42 -1
  85. package/vendor/node_modules/@agent-recorder/service/routes/events.js.map +1 -1
  86. package/vendor/node_modules/@agent-recorder/service/routes/health.d.ts +6 -1
  87. package/vendor/node_modules/@agent-recorder/service/routes/health.d.ts.map +1 -1
  88. package/vendor/node_modules/@agent-recorder/service/routes/health.js +5 -6
  89. package/vendor/node_modules/@agent-recorder/service/routes/health.js.map +1 -1
  90. package/vendor/node_modules/@agent-recorder/service/routes/hooks.d.ts +20 -0
  91. package/vendor/node_modules/@agent-recorder/service/routes/hooks.d.ts.map +1 -1
  92. package/vendor/node_modules/@agent-recorder/service/routes/hooks.js +391 -47
  93. package/vendor/node_modules/@agent-recorder/service/routes/hooks.js.map +1 -1
  94. package/vendor/node_modules/@agent-recorder/service/routes/hooks.test.d.ts +9 -0
  95. package/vendor/node_modules/@agent-recorder/service/routes/hooks.test.d.ts.map +1 -0
  96. package/vendor/node_modules/@agent-recorder/service/routes/hooks.test.js +340 -0
  97. package/vendor/node_modules/@agent-recorder/service/routes/hooks.test.js.map +1 -0
  98. package/vendor/node_modules/@agent-recorder/service/routes/isToolResponseError.test.d.ts +8 -0
  99. package/vendor/node_modules/@agent-recorder/service/routes/isToolResponseError.test.d.ts.map +1 -0
  100. package/vendor/node_modules/@agent-recorder/service/routes/isToolResponseError.test.js +65 -0
  101. package/vendor/node_modules/@agent-recorder/service/routes/isToolResponseError.test.js.map +1 -0
  102. package/vendor/node_modules/@agent-recorder/service/routes/sessions.d.ts.map +1 -1
  103. package/vendor/node_modules/@agent-recorder/service/routes/sessions.js +19 -1
  104. package/vendor/node_modules/@agent-recorder/service/routes/sessions.js.map +1 -1
  105. package/vendor/node_modules/@agent-recorder/service/routes/stdio.d.ts.map +1 -1
  106. package/vendor/node_modules/@agent-recorder/service/routes/stdio.js +20 -1
  107. package/vendor/node_modules/@agent-recorder/service/routes/stdio.js.map +1 -1
  108. package/vendor/node_modules/@agent-recorder/service/server.d.ts +3 -0
  109. package/vendor/node_modules/@agent-recorder/service/server.d.ts.map +1 -1
  110. package/vendor/node_modules/@agent-recorder/service/server.js +27 -3
  111. package/vendor/node_modules/@agent-recorder/service/server.js.map +1 -1
  112. package/vendor/node_modules/@agent-recorder/stdio-proxy/package.json +1 -1
  113. package/vendor/node_modules/@agent-recorder/stdio-proxy/types.d.ts +3 -19
  114. package/vendor/node_modules/@agent-recorder/stdio-proxy/types.d.ts.map +1 -1
  115. package/vendor/node_modules/@agent-recorder/stdio-proxy/types.js +2 -1
  116. package/vendor/node_modules/@agent-recorder/stdio-proxy/types.js.map +1 -1
  117. package/vendor/node_modules/@agent-recorder/{core/types → types}/events.d.ts +5 -0
  118. package/vendor/node_modules/@agent-recorder/types/events.d.ts.map +1 -0
  119. package/vendor/node_modules/@agent-recorder/types/events.js +9 -0
  120. package/vendor/node_modules/@agent-recorder/types/events.js.map +1 -0
  121. package/vendor/node_modules/@agent-recorder/types/index.d.ts +12 -0
  122. package/vendor/node_modules/@agent-recorder/types/index.d.ts.map +1 -0
  123. package/vendor/node_modules/@agent-recorder/types/index.js +9 -0
  124. package/vendor/node_modules/@agent-recorder/types/index.js.map +1 -0
  125. package/vendor/node_modules/@agent-recorder/types/jsonrpc.d.ts +35 -0
  126. package/vendor/node_modules/@agent-recorder/types/jsonrpc.d.ts.map +1 -0
  127. package/vendor/node_modules/@agent-recorder/types/jsonrpc.js +6 -0
  128. package/vendor/node_modules/@agent-recorder/types/jsonrpc.js.map +1 -0
  129. package/vendor/node_modules/@agent-recorder/types/package.json +12 -0
  130. package/vendor/node_modules/@agent-recorder/{core/types → types}/session.d.ts +6 -0
  131. package/vendor/node_modules/@agent-recorder/types/session.d.ts.map +1 -0
  132. package/vendor/node_modules/@agent-recorder/{core/types → types}/session.js.map +1 -1
  133. package/vendor/node_modules/@agent-recorder/types/storage.d.ts +78 -0
  134. package/vendor/node_modules/@agent-recorder/types/storage.d.ts.map +1 -0
  135. package/vendor/node_modules/@agent-recorder/types/storage.js +9 -0
  136. package/vendor/node_modules/@agent-recorder/types/storage.js.map +1 -0
  137. package/vendor/node_modules/@agent-recorder/core/types/events.d.ts.map +0 -1
  138. package/vendor/node_modules/@agent-recorder/core/types/events.js +0 -6
  139. package/vendor/node_modules/@agent-recorder/core/types/events.js.map +0 -1
  140. package/vendor/node_modules/@agent-recorder/core/types/session.d.ts.map +0 -1
  141. /package/vendor/node_modules/@agent-recorder/{core/types → types}/session.js +0 -0
@@ -1,24 +1,8 @@
1
1
  /**
2
- * Types for the STDIO proxy
2
+ * Types for the STDIO proxy.
3
+ * JSON-RPC types are imported from @agent-recorder/types.
3
4
  */
4
- /** JSON-RPC 2.0 request structure */
5
- export interface JsonRpcRequest {
6
- jsonrpc: "2.0";
7
- method: string;
8
- params?: unknown;
9
- id?: string | number | null;
10
- }
11
- /** JSON-RPC 2.0 response structure */
12
- export interface JsonRpcResponse {
13
- jsonrpc: "2.0";
14
- result?: unknown;
15
- error?: {
16
- code: number;
17
- message: string;
18
- data?: unknown;
19
- };
20
- id: string | number | null;
21
- }
5
+ export type { JsonRpcRequest, JsonRpcResponse } from "@agent-recorder/types";
22
6
  /** Recorded MCP message for telemetry */
23
7
  export interface McpMessage {
24
8
  /** Timestamp when message was captured */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,qCAAqC;AACrC,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,sCAAsC;AACtC,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,CAAC;IACF,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,yCAAyC;AACzC,MAAM,WAAW,UAAU;IACzB,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,SAAS,EAAE,SAAS,GAAG,UAAU,CAAC;IAClC,2BAA2B;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,kCAAkC;IAClC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACxC,wCAAwC;IACxC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B;AAED,kCAAkC;AAClC,MAAM,WAAW,YAAY;IAC3B,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,oCAAoC;IACpC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IACzC,iCAAiC;IACjC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,qCAAqC;IACrC,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAED,kBAAkB;AAClB,MAAM,WAAW,UAAU;IACzB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,+BAA+B;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,sBAAsB;IACtB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,qBAAqB;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7E,yCAAyC;AACzC,MAAM,WAAW,UAAU;IACzB,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,SAAS,EAAE,SAAS,GAAG,UAAU,CAAC;IAClC,2BAA2B;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,kCAAkC;IAClC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACxC,wCAAwC;IACxC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B;AAED,kCAAkC;AAClC,MAAM,WAAW,YAAY;IAC3B,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,oCAAoC;IACpC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IACzC,iCAAiC;IACjC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,qCAAqC;IACrC,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAED,kBAAkB;AAClB,MAAM,WAAW,UAAU;IACzB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,+BAA+B;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,sBAAsB;IACtB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,qBAAqB;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB"}
@@ -1,5 +1,6 @@
1
1
  /**
2
- * Types for the STDIO proxy
2
+ * Types for the STDIO proxy.
3
+ * JSON-RPC types are imported from @agent-recorder/types.
3
4
  */
4
5
  export {};
5
6
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -1,6 +1,9 @@
1
1
  /**
2
2
  * Event types for Agent Recorder.
3
3
  * Records observable execution boundaries only — no prompts, no reasoning.
4
+ *
5
+ * This package has ZERO dependencies and is safe to import anywhere:
6
+ * agents, SDKs, cloud services, web frontends.
4
7
  */
5
8
  /** Supported event types in the execution hierarchy */
6
9
  export type EventType = "agent_call" | "subagent_call" | "skill_call" | "tool_call";
@@ -35,6 +38,8 @@ export interface BaseEvent {
35
38
  mcpMethod: string | null;
36
39
  /** Upstream server key (for router mode, null for legacy single-upstream) */
37
40
  upstreamKey: string | null;
41
+ /** Correlation ID for matching PreToolUse → PostToolUse (null until Claude Code provides one) */
42
+ correlationId: string | null;
38
43
  /** When this event started (ISO 8601) */
39
44
  startedAt: string;
40
45
  /** When this event ended (ISO 8601, null if still running) */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,uDAAuD;AACvD,MAAM,MAAM,SAAS,GACjB,YAAY,GACZ,eAAe,GACf,YAAY,GACZ,WAAW,CAAC;AAEhB,yBAAyB;AACzB,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,SAAS,GACT,OAAO,GACP,SAAS,GACT,WAAW,CAAC;AAEhB,iEAAiE;AACjE,MAAM,MAAM,aAAa,GACrB,oBAAoB,GACpB,wBAAwB,GACxB,iBAAiB,GACjB,eAAe,GACf,SAAS,CAAC;AAEd;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,6BAA6B;IAC7B,EAAE,EAAE,MAAM,CAAC;IAEX,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAC;IAElB,iDAAiD;IACjD,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,CAAC;IAEjB,yBAAyB;IACzB,SAAS,EAAE,SAAS,CAAC;IAErB,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAC;IAElB,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAC;IAElB,0EAA0E;IAC1E,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAExB,2CAA2C;IAC3C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB,6EAA6E;IAC7E,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B,iGAAiG;IACjG,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAElB,8DAA8D;IAC9D,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvB,mCAAmC;IACnC,MAAM,EAAE,WAAW,CAAC;IAEpB,yCAAyC;IACzC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB,0CAA0C;IAC1C,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1B,iEAAiE;IACjE,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IAEpC,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,mDAAmD;AACnD,MAAM,WAAW,cAAe,SAAQ,SAAS;IAC/C,SAAS,EAAE,YAAY,CAAC;CACzB;AAED,yEAAyE;AACzE,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAClD,SAAS,EAAE,eAAe,CAAC;CAC5B;AAED,mDAAmD;AACnD,MAAM,WAAW,cAAe,SAAQ,SAAS;IAC/C,SAAS,EAAE,YAAY,CAAC;CACzB;AAED,mDAAmD;AACnD,MAAM,WAAW,aAAc,SAAQ,SAAS;IAC9C,SAAS,EAAE,WAAW,CAAC;CACxB;AAED,qCAAqC;AACrC,MAAM,MAAM,aAAa,GACrB,cAAc,GACd,iBAAiB,GACjB,cAAc,GACd,aAAa,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Event types for Agent Recorder.
3
+ * Records observable execution boundaries only — no prompts, no reasoning.
4
+ *
5
+ * This package has ZERO dependencies and is safe to import anywhere:
6
+ * agents, SDKs, cloud services, web frontends.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @agent-recorder/types
3
+ *
4
+ * Portable type definitions for Agent Recorder.
5
+ * ZERO dependencies — safe to import in any context:
6
+ * agents, SDKs, cloud services, web frontends, tests.
7
+ */
8
+ export type { EventType, EventStatus, ErrorCategory, BaseEvent, AgentCallEvent, SubagentCallEvent, SkillCallEvent, ToolCallEvent, RecordedEvent, } from "./events.js";
9
+ export type { SessionStatus, Session, SessionWithActivity } from "./session.js";
10
+ export type { InsertEventInput, EventQueryOptions, EventFilterOptions, StorageAdapter, } from "./storage.js";
11
+ export type { JsonRpcRequest, JsonRpcSuccessResponse, JsonRpcErrorResponse, JsonRpcResponse, ToolsCallParams, } from "./jsonrpc.js";
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,YAAY,EACV,SAAS,EACT,WAAW,EACX,aAAa,EACb,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,aAAa,GACd,MAAM,aAAa,CAAC;AAErB,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEhF,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,GACf,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,cAAc,EACd,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,eAAe,GAChB,MAAM,cAAc,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @agent-recorder/types
3
+ *
4
+ * Portable type definitions for Agent Recorder.
5
+ * ZERO dependencies — safe to import in any context:
6
+ * agents, SDKs, cloud services, web frontends, tests.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * JSON-RPC 2.0 types for MCP protocol.
3
+ * Shared between service and stdio-proxy packages.
4
+ */
5
+ /** Base JSON-RPC request structure */
6
+ export interface JsonRpcRequest {
7
+ jsonrpc: "2.0";
8
+ method: string;
9
+ params?: unknown;
10
+ id?: string | number | null;
11
+ }
12
+ /** JSON-RPC success response */
13
+ export interface JsonRpcSuccessResponse {
14
+ jsonrpc: "2.0";
15
+ result: unknown;
16
+ id: string | number | null;
17
+ }
18
+ /** JSON-RPC error response */
19
+ export interface JsonRpcErrorResponse {
20
+ jsonrpc: "2.0";
21
+ error: {
22
+ code: number;
23
+ message: string;
24
+ data?: unknown;
25
+ };
26
+ id: string | number | null;
27
+ }
28
+ /** Union of JSON-RPC response types */
29
+ export type JsonRpcResponse = JsonRpcSuccessResponse | JsonRpcErrorResponse;
30
+ /** MCP tools/call request params */
31
+ export interface ToolsCallParams {
32
+ name: string;
33
+ arguments?: Record<string, unknown>;
34
+ }
35
+ //# sourceMappingURL=jsonrpc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonrpc.d.ts","sourceRoot":"","sources":["../src/jsonrpc.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,sCAAsC;AACtC,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,gCAAgC;AAChC,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,8BAA8B;AAC9B,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,CAAC;IACF,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,uCAAuC;AACvC,MAAM,MAAM,eAAe,GAAG,sBAAsB,GAAG,oBAAoB,CAAC;AAE5E,oCAAoC;AACpC,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * JSON-RPC 2.0 types for MCP protocol.
3
+ * Shared between service and stdio-proxy packages.
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=jsonrpc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonrpc.js","sourceRoot":"","sources":["../src/jsonrpc.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "@agent-recorder/types",
3
+ "version": "2.0.13",
4
+ "type": "module",
5
+ "exports": {
6
+ ".": {
7
+ "types": "./index.d.ts",
8
+ "import": "./index.js"
9
+ }
10
+ },
11
+ "dependencies": {}
12
+ }
@@ -19,4 +19,10 @@ export interface Session {
19
19
  /** When this record was created (ISO 8601) */
20
20
  createdAt: string;
21
21
  }
22
+ /**
23
+ * Session with last activity timestamp, used by REST API responses.
24
+ */
25
+ export interface SessionWithActivity extends Session {
26
+ lastActivityAt: string | null;
27
+ }
22
28
  //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,oCAAoC;AACpC,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,GAAG,WAAW,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,+BAA+B;IAC/B,EAAE,EAAE,MAAM,CAAC;IAEX,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAElB,8DAA8D;IAC9D,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvB,qCAAqC;IACrC,MAAM,EAAE,aAAa,CAAC;IAEtB,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,OAAO;IAClD,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B"}
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/types/session.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Storage adapter interface for pluggable persistence.
3
+ *
4
+ * Implement this interface to use a custom storage backend
5
+ * (e.g., PostgreSQL, in-memory for tests, cloud storage).
6
+ * The default implementation uses SQLite (in @agent-recorder/core).
7
+ */
8
+ import type { BaseEvent, EventStatus, ErrorCategory, EventType } from "./events.js";
9
+ import type { Session, SessionStatus } from "./session.js";
10
+ /** Input for inserting a new event */
11
+ export interface InsertEventInput {
12
+ id: string;
13
+ sessionId: string;
14
+ parentEventId?: string | null;
15
+ sequence: number;
16
+ eventType: EventType;
17
+ agentRole: string;
18
+ agentName: string;
19
+ skillName?: string | null;
20
+ toolName?: string | null;
21
+ mcpMethod?: string | null;
22
+ upstreamKey?: string | null;
23
+ correlationId?: string | null;
24
+ startedAt: string;
25
+ endedAt?: string | null;
26
+ status: EventStatus;
27
+ inputJson?: string | null;
28
+ outputJson?: string | null;
29
+ errorCategory?: ErrorCategory | null;
30
+ }
31
+ /** Query options for paginated event retrieval */
32
+ export interface EventQueryOptions {
33
+ /** Only return events with sequence > after (default: 0) */
34
+ after?: number;
35
+ /** Maximum number of events to return (default: 200) */
36
+ limit?: number;
37
+ }
38
+ /** Filter options for event queries */
39
+ export interface EventFilterOptions {
40
+ toolName?: string;
41
+ status?: EventStatus;
42
+ errorCategory?: ErrorCategory;
43
+ upstreamKey?: string;
44
+ sinceSeq?: number;
45
+ limit?: number;
46
+ }
47
+ /**
48
+ * Abstract storage adapter.
49
+ * All methods should be synchronous or return promises consistently.
50
+ * The SQLite implementation is synchronous; other backends may be async.
51
+ *
52
+ * @alpha This interface is unstable and may change without notice between
53
+ * minor versions. It defines the target contract for pluggable storage
54
+ * backends but is not yet implemented. The current SQLite functions in
55
+ * `@agent-recorder/core` take `Database.Database` directly. Do not depend
56
+ * on this interface in production code.
57
+ *
58
+ * Note: All methods return bare values (not `Promise<T>`), making this
59
+ * sync-only. Async backends (PostgreSQL, cloud) would need a wrapper or
60
+ * a future `AsyncStorageAdapter` interface.
61
+ */
62
+ export interface StorageAdapter {
63
+ createSession(id: string, startedAt: string): Session;
64
+ endSession(id: string, endedAt: string, status: SessionStatus): Session | null;
65
+ getSessionById(id: string): Session | null;
66
+ listSessions(status?: SessionStatus): Session[];
67
+ insertEvent(event: InsertEventInput): BaseEvent;
68
+ getEventById(id: string): BaseEvent | null;
69
+ getEventsBySession(sessionId: string): BaseEvent[];
70
+ getEventsBySessionPaginated(sessionId: string, options?: EventQueryOptions): BaseEvent[];
71
+ countEventsBySession(sessionId: string): number;
72
+ updateEventStatus(id: string, status: EventStatus, endedAt?: string): BaseEvent | null;
73
+ completeEvent(id: string, status: EventStatus, endedAt: string, outputJson?: string | null, errorCategory?: ErrorCategory | null): BaseEvent | null;
74
+ findRunningEvent(sessionId: string, toolName: string, correlationId?: string | null): BaseEvent | null;
75
+ allocateSequence(sessionId: string): number;
76
+ close(): void;
77
+ }
78
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,SAAS,EACT,WAAW,EACX,aAAa,EACb,SAAS,EACV,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE3D,sCAAsC;AACtC,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;CACtC;AAED,kDAAkD;AAClD,MAAM,WAAW,iBAAiB;IAChC,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,uCAAuC;AACvC,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,cAAc;IAE7B,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IACtD,UAAU,CACR,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,aAAa,GACpB,OAAO,GAAG,IAAI,CAAC;IAClB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAC3C,YAAY,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,EAAE,CAAC;IAGhD,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAChD,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAC3C,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,CAAC;IACnD,2BAA2B,CACzB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,SAAS,EAAE,CAAC;IACf,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAChD,iBAAiB,CACf,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,WAAW,EACnB,OAAO,CAAC,EAAE,MAAM,GACf,SAAS,GAAG,IAAI,CAAC;IACpB,aAAa,CACX,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,EAC1B,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,GACnC,SAAS,GAAG,IAAI,CAAC;IACpB,gBAAgB,CACd,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,GAC5B,SAAS,GAAG,IAAI,CAAC;IAGpB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAG5C,KAAK,IAAI,IAAI,CAAC;CACf"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Storage adapter interface for pluggable persistence.
3
+ *
4
+ * Implement this interface to use a custom storage backend
5
+ * (e.g., PostgreSQL, in-memory for tests, cloud storage).
6
+ * The default implementation uses SQLite (in @agent-recorder/core).
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/types/events.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,uDAAuD;AACvD,MAAM,MAAM,SAAS,GACjB,YAAY,GACZ,eAAe,GACf,YAAY,GACZ,WAAW,CAAC;AAEhB,yBAAyB;AACzB,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,SAAS,GACT,OAAO,GACP,SAAS,GACT,WAAW,CAAC;AAEhB,iEAAiE;AACjE,MAAM,MAAM,aAAa,GACrB,oBAAoB,GACpB,wBAAwB,GACxB,iBAAiB,GACjB,eAAe,GACf,SAAS,CAAC;AAEd;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,6BAA6B;IAC7B,EAAE,EAAE,MAAM,CAAC;IAEX,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAC;IAElB,iDAAiD;IACjD,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,CAAC;IAEjB,yBAAyB;IACzB,SAAS,EAAE,SAAS,CAAC;IAErB,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAC;IAElB,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAC;IAElB,0EAA0E;IAC1E,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAExB,2CAA2C;IAC3C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB,6EAA6E;IAC7E,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAElB,8DAA8D;IAC9D,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvB,mCAAmC;IACnC,MAAM,EAAE,WAAW,CAAC;IAEpB,yCAAyC;IACzC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB,0CAA0C;IAC1C,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1B,iEAAiE;IACjE,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IAEpC,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,mDAAmD;AACnD,MAAM,WAAW,cAAe,SAAQ,SAAS;IAC/C,SAAS,EAAE,YAAY,CAAC;CACzB;AAED,yEAAyE;AACzE,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAClD,SAAS,EAAE,eAAe,CAAC;CAC5B;AAED,mDAAmD;AACnD,MAAM,WAAW,cAAe,SAAQ,SAAS;IAC/C,SAAS,EAAE,YAAY,CAAC;CACzB;AAED,mDAAmD;AACnD,MAAM,WAAW,aAAc,SAAQ,SAAS;IAC9C,SAAS,EAAE,WAAW,CAAC;CACxB;AAED,qCAAqC;AACrC,MAAM,MAAM,aAAa,GACrB,cAAc,GACd,iBAAiB,GACjB,cAAc,GACd,aAAa,CAAC"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Event types for Agent Recorder.
3
- * Records observable execution boundaries only — no prompts, no reasoning.
4
- */
5
- export {};
6
- //# sourceMappingURL=events.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/types/events.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/types/session.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,oCAAoC;AACpC,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,GAAG,WAAW,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,+BAA+B;IAC/B,EAAE,EAAE,MAAM,CAAC;IAEX,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAElB,8DAA8D;IAC9D,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvB,qCAAqC;IACrC,MAAM,EAAE,aAAa,CAAC;IAEtB,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC;CACnB"}