@gravitee/gamma-lib-observability 1.35.2 → 1.36.0-explore-debug-mode.2a2fa5f

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 (124) hide show
  1. package/dist/api-type-registry.d.ts.map +1 -1
  2. package/dist/data-sources/debug-sessions-source.d.ts +37 -0
  3. package/dist/data-sources/debug-sessions-source.d.ts.map +1 -0
  4. package/dist/data-sources/http-traces-source.d.ts.map +1 -1
  5. package/dist/data-sources/index.d.ts +2 -0
  6. package/dist/data-sources/index.d.ts.map +1 -1
  7. package/dist/debug/BodyDiff.d.ts +17 -0
  8. package/dist/debug/BodyDiff.d.ts.map +1 -0
  9. package/dist/debug/CaptureReadinessBanner.d.ts +11 -0
  10. package/dist/debug/CaptureReadinessBanner.d.ts.map +1 -0
  11. package/dist/debug/CreateDebugSessionDialog.d.ts +19 -0
  12. package/dist/debug/CreateDebugSessionDialog.d.ts.map +1 -0
  13. package/dist/debug/DebugSessionPage.d.ts +16 -0
  14. package/dist/debug/DebugSessionPage.d.ts.map +1 -0
  15. package/dist/debug/DebugSessionStatusBadge.d.ts +6 -0
  16. package/dist/debug/DebugSessionStatusBadge.d.ts.map +1 -0
  17. package/dist/debug/DebugSessionsPage.d.ts +24 -0
  18. package/dist/debug/DebugSessionsPage.d.ts.map +1 -0
  19. package/dist/debug/HopDetailPanel.d.ts +24 -0
  20. package/dist/debug/HopDetailPanel.d.ts.map +1 -0
  21. package/dist/debug/PayloadDiffView.d.ts +18 -0
  22. package/dist/debug/PayloadDiffView.d.ts.map +1 -0
  23. package/dist/debug/PolicyChainView.d.ts +19 -0
  24. package/dist/debug/PolicyChainView.d.ts.map +1 -0
  25. package/dist/debug/StepDetailPanel.d.ts +24 -0
  26. package/dist/debug/StepDetailPanel.d.ts.map +1 -0
  27. package/dist/debug/TransactionInspector.d.ts +13 -0
  28. package/dist/debug/TransactionInspector.d.ts.map +1 -0
  29. package/dist/debug/TransactionMap.d.ts +15 -0
  30. package/dist/debug/TransactionMap.d.ts.map +1 -0
  31. package/dist/debug/TransactionRail.d.ts +12 -0
  32. package/dist/debug/TransactionRail.d.ts.map +1 -0
  33. package/dist/debug/TransactionTimeline.d.ts +15 -0
  34. package/dist/debug/TransactionTimeline.d.ts.map +1 -0
  35. package/dist/debug/boundary-bodies.d.ts +27 -0
  36. package/dist/debug/boundary-bodies.d.ts.map +1 -0
  37. package/dist/debug/capture-controller.d.ts +51 -0
  38. package/dist/debug/capture-controller.d.ts.map +1 -0
  39. package/dist/debug/curl-command.d.ts +8 -0
  40. package/dist/debug/curl-command.d.ts.map +1 -0
  41. package/dist/debug/exchange-correlation.d.ts +42 -0
  42. package/dist/debug/exchange-correlation.d.ts.map +1 -0
  43. package/dist/debug/format-session.d.ts +5 -0
  44. package/dist/debug/format-session.d.ts.map +1 -0
  45. package/dist/debug/index.d.ts +52 -0
  46. package/dist/debug/index.d.ts.map +1 -0
  47. package/dist/debug/inspector-selection.d.ts +21 -0
  48. package/dist/debug/inspector-selection.d.ts.map +1 -0
  49. package/dist/debug/payload-diff.d.ts +21 -0
  50. package/dist/debug/payload-diff.d.ts.map +1 -0
  51. package/dist/debug/session-export.d.ts +21 -0
  52. package/dist/debug/session-export.d.ts.map +1 -0
  53. package/dist/debug/session-rules.d.ts +25 -0
  54. package/dist/debug/session-rules.d.ts.map +1 -0
  55. package/dist/debug/transaction-map-model.d.ts +29 -0
  56. package/dist/debug/transaction-map-model.d.ts.map +1 -0
  57. package/dist/debug/types.d.ts +82 -0
  58. package/dist/debug/types.d.ts.map +1 -0
  59. package/dist/debug/use-debug-capture.d.ts +16 -0
  60. package/dist/debug/use-debug-capture.d.ts.map +1 -0
  61. package/dist/debug/use-debug-exchange-query.d.ts +20 -0
  62. package/dist/debug/use-debug-exchange-query.d.ts.map +1 -0
  63. package/dist/debug/use-session-capture.d.ts +27 -0
  64. package/dist/debug/use-session-capture.d.ts.map +1 -0
  65. package/dist/filter-providers-context.js +33 -15
  66. package/dist/filters/filter-combobox-mapping.d.ts.map +1 -1
  67. package/dist/hooks/index.d.ts +1 -0
  68. package/dist/hooks/index.d.ts.map +1 -1
  69. package/dist/hooks/query-keys.d.ts +4 -0
  70. package/dist/hooks/query-keys.d.ts.map +1 -1
  71. package/dist/hooks/use-debug-sessions.d.ts +8 -0
  72. package/dist/hooks/use-debug-sessions.d.ts.map +1 -0
  73. package/dist/index.d.ts +11 -2
  74. package/dist/index.d.ts.map +1 -1
  75. package/dist/index.js +4955 -2121
  76. package/dist/logs/LogsExplorerPage.d.ts +7 -1
  77. package/dist/logs/LogsExplorerPage.d.ts.map +1 -1
  78. package/dist/logs/detail/components/LogDetailContent.d.ts.map +1 -1
  79. package/dist/logs/detail/components/LogDetailHeader.d.ts.map +1 -1
  80. package/dist/providers/debug-sessions-source-provider.d.ts +10 -0
  81. package/dist/providers/debug-sessions-source-provider.d.ts.map +1 -0
  82. package/dist/providers/index.d.ts +1 -0
  83. package/dist/providers/index.d.ts.map +1 -1
  84. package/dist/routing/DebugScreen.d.ts +15 -0
  85. package/dist/routing/DebugScreen.d.ts.map +1 -0
  86. package/dist/routing/LogsRouteElement.d.ts +2 -1
  87. package/dist/routing/LogsRouteElement.d.ts.map +1 -1
  88. package/dist/routing/ObservabilityRoutes.d.ts +4 -1
  89. package/dist/routing/ObservabilityRoutes.d.ts.map +1 -1
  90. package/dist/routing/TracingScreen.d.ts.map +1 -1
  91. package/dist/routing/define-observability-features.d.ts.map +1 -1
  92. package/dist/routing/index.d.ts +3 -1
  93. package/dist/routing/index.d.ts.map +1 -1
  94. package/dist/routing/types.d.ts +23 -1
  95. package/dist/routing/types.d.ts.map +1 -1
  96. package/dist/styles/observability.css +1 -1
  97. package/dist/testing/graphene-core-icons-mock.d.ts +3 -0
  98. package/dist/testing/graphene-core-icons-mock.d.ts.map +1 -1
  99. package/dist/testing/graphene-core-mock.d.ts +15 -0
  100. package/dist/testing/graphene-core-mock.d.ts.map +1 -1
  101. package/dist/testing/index.d.ts +2 -0
  102. package/dist/testing/index.d.ts.map +1 -1
  103. package/dist/testing.js +38 -35
  104. package/dist/traces/SpanRoleIcon.d.ts +16 -0
  105. package/dist/traces/SpanRoleIcon.d.ts.map +1 -0
  106. package/dist/traces/detail/PolicyAttributeDiff.d.ts +7 -1
  107. package/dist/traces/detail/PolicyAttributeDiff.d.ts.map +1 -1
  108. package/dist/traces/detail/TraceLineage.d.ts.map +1 -1
  109. package/dist/traces/detail/TraceTimeline.d.ts.map +1 -1
  110. package/dist/traces/detail/body-capture-attributes.d.ts +15 -0
  111. package/dist/traces/detail/body-capture-attributes.d.ts.map +1 -0
  112. package/dist/traces/detail/policy-attribute-diff.d.ts +11 -6
  113. package/dist/traces/detail/policy-attribute-diff.d.ts.map +1 -1
  114. package/dist/traces/detail/policy-body-diff.d.ts +22 -0
  115. package/dist/traces/detail/policy-body-diff.d.ts.map +1 -0
  116. package/dist/traces/index.d.ts +4 -0
  117. package/dist/traces/index.d.ts.map +1 -1
  118. package/dist/traces/policy-span.d.ts +40 -0
  119. package/dist/traces/policy-span.d.ts.map +1 -0
  120. package/dist/traces/use-tracing-api-selection.d.ts +22 -0
  121. package/dist/traces/use-tracing-api-selection.d.ts.map +1 -0
  122. package/dist/types/domain.d.ts +1 -0
  123. package/dist/types/domain.d.ts.map +1 -1
  124. package/package.json +17 -5
@@ -1 +1 @@
1
- {"version":3,"file":"api-type-registry.d.ts","sourceRoot":"","sources":["../src/api-type-registry.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAErD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;IACtD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,YAAY,EAoCpD,CAAC;AAIF,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAE/D;AAQD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,CAE7D"}
1
+ {"version":3,"file":"api-type-registry.d.ts","sourceRoot":"","sources":["../src/api-type-registry.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAErD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;IACtD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,YAAY,EA6CpD,CAAC;AAIF,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAE/D;AAQD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,CAE7D"}
@@ -0,0 +1,37 @@
1
+ import { CreateDebugSessionInput, DebugSession, DebugTransaction } from '../debug/types';
2
+ /**
3
+ * Persistence and lifecycle contract for debug sessions.
4
+ *
5
+ * The exploration ships a localStorage implementation
6
+ * ({@link createLocalDebugSessionsSource}) where the capture engine runs
7
+ * client-side; a server-side implementation (sessions with a hard TTL enforced
8
+ * by the gateway) plugs in behind the same interface without touching the UI.
9
+ */
10
+ export interface DebugSessionsDataSource {
11
+ /** Lists sessions, newest first — every API when `apiId` is omitted. */
12
+ listSessions(apiId?: string): Promise<DebugSession[]>;
13
+ getSession(sessionId: string): Promise<DebugSession | null>;
14
+ createSession(input: CreateDebugSessionInput): Promise<DebugSession>;
15
+ stopSession(sessionId: string): Promise<DebugSession>;
16
+ deleteSession(sessionId: string): Promise<void>;
17
+ /**
18
+ * Appends captured transactions (deduplicated by traceId, trimmed to
19
+ * `maxTransactions`) and completes the session when the cap is reached.
20
+ * Called by the capture engine on each poll that yields matches.
21
+ */
22
+ recordTransactions(sessionId: string, transactions: readonly DebugTransaction[]): Promise<DebugSession>;
23
+ }
24
+ interface LocalDebugSessionsSourceOptions {
25
+ readonly storageKey?: string;
26
+ /** Injected clock for tests. */
27
+ readonly now?: () => number;
28
+ }
29
+ /**
30
+ * localStorage-backed implementation. Status transitions are applied lazily on
31
+ * every read: an `active` session past `expiresAt` becomes `expired`, one at
32
+ * its transaction cap becomes `completed` — so the TTL holds even if the tab
33
+ * was closed the whole time.
34
+ */
35
+ export declare function createLocalDebugSessionsSource(options?: LocalDebugSessionsSourceOptions): DebugSessionsDataSource;
36
+ export {};
37
+ //# sourceMappingURL=debug-sessions-source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug-sessions-source.d.ts","sourceRoot":"","sources":["../../src/data-sources/debug-sessions-source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,YAAY,EACZ,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AAGxB;;;;;;;GAOG;AACH,MAAM,WAAW,uBAAuB;IACtC,wEAAwE;IACxE,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IACtD,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAC5D,aAAa,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACrE,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACtD,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD;;;;OAIG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,gBAAgB,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CACzG;AAID,UAAU,+BAA+B;IACvC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,gCAAgC;IAChC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CAC7B;AAYD;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,CAAC,EAAE,+BAA+B,GAAG,uBAAuB,CAwHjH"}
@@ -1 +1 @@
1
- {"version":3,"file":"http-traces-source.d.ts","sourceRoot":"","sources":["../../src/data-sources/http-traces-source.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAM9D,OAAO,KAAK,EAAE,gBAAgB,EAA2C,MAAM,sBAAsB,CAAC;AAEtG,MAAM,WAAW,uBAAwB,SAAQ,WAAW;IAC1D;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAkID,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,gBAAgB,CAkF3G"}
1
+ {"version":3,"file":"http-traces-source.d.ts","sourceRoot":"","sources":["../../src/data-sources/http-traces-source.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAM9D,OAAO,KAAK,EAAE,gBAAgB,EAA2C,MAAM,sBAAsB,CAAC;AAEtG,MAAM,WAAW,uBAAwB,SAAQ,WAAW;IAC1D;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAyMD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,gBAAgB,CAkF3G"}
@@ -2,6 +2,8 @@ export type { DashboardPersistence } from './dashboard-persistence';
2
2
  export type { LogsDataSource, LogsQueryResult } from './logs-data-source';
3
3
  export type { MetricsDataSource } from './metrics-data-source';
4
4
  export type { FetchTraceByIdParams, TracesDataSource, TracesQueryResult } from './traces-data-source';
5
+ export { createLocalDebugSessionsSource } from './debug-sessions-source';
6
+ export type { DebugSessionsDataSource } from './debug-sessions-source';
5
7
  export { createHttpDataSource, type HttpDataSourceOptions } from './http-data-source';
6
8
  export { createHttpFilterSource, type FilterSource } from './http-filter-source';
7
9
  export { createHttpLogsSource, type HttpLogsSourceOptions } from './http-logs-source';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/data-sources/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1E,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,YAAY,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEtG,OAAO,EAAE,oBAAoB,EAAE,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,4BAA4B,EAAE,KAAK,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAC3G,OAAO,EAAE,sBAAsB,EAAE,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/data-sources/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1E,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,YAAY,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACtG,OAAO,EAAE,8BAA8B,EAAE,MAAM,yBAAyB,CAAC;AACzE,YAAY,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAEvE,OAAO,EAAE,oBAAoB,EAAE,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,4BAA4B,EAAE,KAAK,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAC3G,OAAO,EAAE,sBAAsB,EAAE,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,17 @@
1
+ export interface BodyDiffProps {
2
+ readonly title: string;
3
+ /** What the "before" side is, in the reader's terms. */
4
+ readonly fromLabel: string;
5
+ readonly toLabel: string;
6
+ readonly before?: string;
7
+ readonly after?: string;
8
+ /** Explains what the comparison can and cannot attribute. */
9
+ readonly note?: string;
10
+ }
11
+ /**
12
+ * Before/after of a message body, rendered as a line diff. JSON is
13
+ * pretty-printed first, so a structural rewrite reads as a clean add/remove set
14
+ * rather than one enormous replaced line.
15
+ */
16
+ export declare function BodyDiff({ title, fromLabel, toLabel, before, after, note }: BodyDiffProps): import("react/jsx-runtime").JSX.Element;
17
+ //# sourceMappingURL=BodyDiff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BodyDiff.d.ts","sourceRoot":"","sources":["../../src/debug/BodyDiff.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,6DAA6D;IAC7D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,aAAa,2CA0DzF"}
@@ -0,0 +1,11 @@
1
+ import { UseSessionCaptureResult } from './use-session-capture';
2
+ export interface CaptureReadinessBannerProps {
3
+ readonly capture: UseSessionCaptureResult;
4
+ }
5
+ /**
6
+ * Tells the user what this session can actually show, and offers to turn the
7
+ * missing capture on for its duration. Hidden when everything is already on —
8
+ * a banner that is always there stops being read.
9
+ */
10
+ export declare function CaptureReadinessBanner({ capture }: CaptureReadinessBannerProps): import("react/jsx-runtime").JSX.Element | null;
11
+ //# sourceMappingURL=CaptureReadinessBanner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CaptureReadinessBanner.d.ts","sourceRoot":"","sources":["../../src/debug/CaptureReadinessBanner.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAErE,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAC;CAC3C;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,OAAO,EAAE,EAAE,2BAA2B,kDAqE9E"}
@@ -0,0 +1,19 @@
1
+ import { LoadTracingApis } from '../traces/tracing-api';
2
+ import { CreateDebugSessionInput } from './types';
3
+ export interface CreateDebugSessionDialogProps {
4
+ /** Target API. When omitted, the dialog shows an API picker (global landing page). */
5
+ readonly apiId?: string;
6
+ readonly apiName?: string;
7
+ /** API list feeding the in-dialog picker when `apiId` is not fixed. */
8
+ readonly loadDebugApis?: LoadTracingApis;
9
+ readonly open: boolean;
10
+ readonly onOpenChange: (open: boolean) => void;
11
+ readonly onCreate: (input: CreateDebugSessionInput) => void;
12
+ readonly creating?: boolean;
13
+ }
14
+ /**
15
+ * Session creation form. The envelope defaults mirror Apigee Trace
16
+ * (10 min / 15 transactions); rules and sampling mirror the Konnect Debugger.
17
+ */
18
+ export declare function CreateDebugSessionDialog({ apiId, apiName, loadDebugApis, open, onOpenChange, onCreate, creating, }: CreateDebugSessionDialogProps): import("react/jsx-runtime").JSX.Element;
19
+ //# sourceMappingURL=CreateDebugSessionDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreateDebugSessionDialog.d.ts","sourceRoot":"","sources":["../../src/debug/CreateDebugSessionDialog.tsx"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG7D,OAAO,KAAK,EAAE,uBAAuB,EAAqB,MAAM,SAAS,CAAC;AAG1E,MAAM,WAAW,6BAA6B;IAC5C,sFAAsF;IACtF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,uEAAuE;IACvE,QAAQ,CAAC,aAAa,CAAC,EAAE,eAAe,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,IAAI,CAAC;IAC5D,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAyBD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,EACvC,KAAK,EACL,OAAO,EACP,aAAa,EACb,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,QAAQ,GACT,EAAE,6BAA6B,2CA+P/B"}
@@ -0,0 +1,16 @@
1
+ import { DebugSession } from './types';
2
+ export interface DebugSessionPageProps {
3
+ readonly sessionId: string;
4
+ /** Navigates back to the session list. */
5
+ readonly onBack: () => void;
6
+ /** Navigates to a freshly created session (replay). */
7
+ readonly onOpenSession?: (session: DebugSession) => void;
8
+ }
9
+ /**
10
+ * Debug workbench — the Apigee Trace layout: transactions rail on the left,
11
+ * and the full-width investigation area (timeline/lineage + payload and span
12
+ * details) as the main content. Hosts the capture engine while the session is
13
+ * active.
14
+ */
15
+ export declare function DebugSessionPage({ sessionId, onBack, onOpenSession }: DebugSessionPageProps): import("react/jsx-runtime").JSX.Element;
16
+ //# sourceMappingURL=DebugSessionPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DebugSessionPage.d.ts","sourceRoot":"","sources":["../../src/debug/DebugSessionPage.tsx"],"names":[],"mappings":"AAsCA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAI5C,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,0CAA0C;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;IAC5B,uDAAuD;IACvD,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;CAC1D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,qBAAqB,2CA4K3F"}
@@ -0,0 +1,6 @@
1
+ import { DebugSessionStatus } from './types';
2
+ export interface DebugSessionStatusBadgeProps {
3
+ readonly status: DebugSessionStatus;
4
+ }
5
+ export declare function DebugSessionStatusBadge({ status }: DebugSessionStatusBadgeProps): import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=DebugSessionStatusBadge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DebugSessionStatusBadge.d.ts","sourceRoot":"","sources":["../../src/debug/DebugSessionStatusBadge.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;CACrC;AAYD,wBAAgB,uBAAuB,CAAC,EAAE,MAAM,EAAE,EAAE,4BAA4B,2CAa/E"}
@@ -0,0 +1,24 @@
1
+ import { ReactNode } from 'react';
2
+ import { LoadTracingApis } from '../traces/tracing-api';
3
+ import { DebugSession } from './types';
4
+ export interface DebugSessionsPageProps {
5
+ /**
6
+ * Scopes the list to one API. Omitted on the Debug landing page, which
7
+ * lists every session and offers an API filter instead — the API is then
8
+ * picked inside the create dialog.
9
+ */
10
+ readonly apiId?: string;
11
+ /** Navigates to the session capture view. */
12
+ readonly onOpenSession: (session: DebugSession) => void;
13
+ /** API list feeding the create dialog's picker on the landing page. */
14
+ readonly loadDebugApis?: LoadTracingApis;
15
+ /** Rendered on the left of the toolbar (e.g. the API selector). */
16
+ readonly toolbarStart?: ReactNode;
17
+ }
18
+ /**
19
+ * Debug home: every session (running and past) across APIs, filterable by
20
+ * API — the session-centric entry point. An API is only chosen when starting
21
+ * a session.
22
+ */
23
+ export declare function DebugSessionsPage({ apiId, onOpenSession, loadDebugApis, toolbarStart }: DebugSessionsPageProps): import("react/jsx-runtime").JSX.Element;
24
+ //# sourceMappingURL=DebugSessionsPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DebugSessionsPage.d.ts","sourceRoot":"","sources":["../../src/debug/DebugSessionsPage.tsx"],"names":[],"mappings":"AAuBA,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAS1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAK7D,OAAO,KAAK,EAA2B,YAAY,EAAE,MAAM,SAAS,CAAC;AAIrE,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,6CAA6C;IAC7C,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IACxD,uEAAuE;IACvE,QAAQ,CAAC,aAAa,CAAC,EAAE,eAAe,CAAC;IACzC,mEAAmE;IACnE,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC;CACnC;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,EAAE,sBAAsB,2CAqI9G"}
@@ -0,0 +1,24 @@
1
+ import { Span } from '../types/responses';
2
+ import { BoundaryBodies } from './boundary-bodies';
3
+ import { DebugExchange } from './exchange-correlation';
4
+ import { DebugExchangeStatus } from './use-debug-exchange-query';
5
+ export type ExchangeHop = 'client' | 'target';
6
+ export interface HopDetailPanelProps {
7
+ readonly hop: ExchangeHop;
8
+ readonly status: DebugExchangeStatus;
9
+ readonly exchange: DebugExchange | null;
10
+ /** Endpoint span, shown as timing context on the target hop. */
11
+ readonly endpointSpan?: Span;
12
+ /**
13
+ * Bodies reconstructed from the policy captures, used when the connector did
14
+ * not log the ones at the gateway edges.
15
+ */
16
+ readonly derivedBodies?: BoundaryBodies;
17
+ }
18
+ /**
19
+ * One end of the exchange: what that side sent and what it received. Selecting
20
+ * the client or the target on the map answers "what did this hop actually see",
21
+ * without mixing in the per-step attributes shown elsewhere.
22
+ */
23
+ export declare function HopDetailPanel({ hop, status, exchange, endpointSpan, derivedBodies }: HopDetailPanelProps): import("react/jsx-runtime").JSX.Element;
24
+ //# sourceMappingURL=HopDetailPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HopDetailPanel.d.ts","sourceRoot":"","sources":["../../src/debug/HopDetailPanel.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,KAAK,EAAE,aAAa,EAAmB,MAAM,wBAAwB,CAAC;AAC7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE9C,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IACxC,gEAAgE;IAChE,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC;IAC7B;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,cAAc,CAAC;CACzC;AAID;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,EAAE,mBAAmB,2CAsDzG"}
@@ -0,0 +1,18 @@
1
+ import { BoundaryBodies } from './boundary-bodies';
2
+ import { DebugExchange } from './exchange-correlation';
3
+ import { DebugExchangeStatus } from './use-debug-exchange-query';
4
+ export interface PayloadDiffViewProps {
5
+ readonly status: DebugExchangeStatus;
6
+ readonly exchange: DebugExchange | null;
7
+ /** Bodies rebuilt from the policy captures, used where the log has none. */
8
+ readonly derivedBodies?: BoundaryBodies;
9
+ }
10
+ /**
11
+ * What the gateway did to the message bodies, both ways: the request as it
12
+ * travelled from the client to the target, and the response on the way back.
13
+ *
14
+ * Bodies come from the connection log where the connector recorded them, and
15
+ * from what the policies of each phase saw where it did not.
16
+ */
17
+ export declare function PayloadDiffView({ status, exchange, derivedBodies }: PayloadDiffViewProps): import("react/jsx-runtime").JSX.Element;
18
+ //# sourceMappingURL=PayloadDiffView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PayloadDiffView.d.ts","sourceRoot":"","sources":["../../src/debug/PayloadDiffView.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IACxC,4EAA4E;IAC5E,QAAQ,CAAC,aAAa,CAAC,EAAE,cAAc,CAAC;CACzC;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,oBAAoB,2CA0CxF"}
@@ -0,0 +1,19 @@
1
+ import { getSpanPhase } from '../traces/policy-span';
2
+ import { Span, TraceDetail } from '../types/responses';
3
+ export interface PolicyChainViewProps {
4
+ readonly trace?: TraceDetail;
5
+ readonly selectedSpanId?: string;
6
+ readonly onSelectSpan: (span: Span) => void;
7
+ }
8
+ /**
9
+ * The executed policy chain, in gateway order — the answer to "which policies
10
+ * ran, in which phase, how long did each take and what did it change".
11
+ * Selecting a row drives the inspector so its before/after diff is one click
12
+ * away.
13
+ */
14
+ export declare function PolicyChainView({ trace, selectedSpanId, onSelectSpan }: PolicyChainViewProps): import("react/jsx-runtime").JSX.Element;
15
+ /** Counts the policy spans of a trace — used for the tab badge. */
16
+ export declare function countPolicySpans(trace: TraceDetail | undefined): number;
17
+ /** Re-exported so the inspector can label the phase of the selected span. */
18
+ export { getSpanPhase };
19
+ //# sourceMappingURL=PolicyChainView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PolicyChainView.d.ts","sourceRoot":"","sources":["../../src/debug/PolicyChainView.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAwC,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC3F,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE5D,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;CAC7C;AAsCD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,EAAE,oBAAoB,2CAyE5F;AAED,mEAAmE;AACnE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,CAGvE;AAED,6EAA6E;AAC7E,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { Span } from '../types/responses';
2
+ import { DebugExchange } from './exchange-correlation';
3
+ import { DebugExchangeStatus } from './use-debug-exchange-query';
4
+ export interface StepDetailPanelProps {
5
+ readonly span: Span;
6
+ /** Bodies recorded at the gateway boundaries, used for the Body tab. */
7
+ readonly exchange?: DebugExchange | null;
8
+ readonly exchangeStatus?: DebugExchangeStatus;
9
+ /**
10
+ * How many policies ran in this step's phase. Drives how precisely the body
11
+ * change can be attributed to this step.
12
+ */
13
+ readonly phasePolicyCount?: number;
14
+ }
15
+ /**
16
+ * Detail of one executed step, split by the kind of thing being inspected:
17
+ * headers, execution attributes, body, and the raw events underneath.
18
+ *
19
+ * Each tab shows its subject whether or not the step changed it — in an
20
+ * investigation, "this policy ran with these headers" is an answer too, and
21
+ * having to click another span to find it defeats the purpose.
22
+ */
23
+ export declare function StepDetailPanel({ span, exchange, exchangeStatus, phasePolicyCount }: StepDetailPanelProps): import("react/jsx-runtime").JSX.Element;
24
+ //# sourceMappingURL=StepDetailPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StepDetailPanel.d.ts","sourceRoot":"","sources":["../../src/debug/StepDetailPanel.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,wEAAwE;IACxE,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,cAAc,CAAC,EAAE,mBAAmB,CAAC;IAC9C;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAID;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,EAAE,EAAE,oBAAoB,2CAuIzG"}
@@ -0,0 +1,13 @@
1
+ import { DebugTransaction } from './types';
2
+ export interface TransactionInspectorProps {
3
+ readonly apiId: string;
4
+ readonly transaction?: DebugTransaction;
5
+ }
6
+ /**
7
+ * Main area of the debug workbench, split by scope so the two never compete:
8
+ * the whole transaction on top (its shape, over a shared timeline), and below
9
+ * it a single detail pane describing exactly one thing — the client hop, the
10
+ * target hop, or one executed step.
11
+ */
12
+ export declare function TransactionInspector({ apiId, transaction }: TransactionInspectorProps): import("react/jsx-runtime").JSX.Element;
13
+ //# sourceMappingURL=TransactionInspector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransactionInspector.d.ts","sourceRoot":"","sources":["../../src/debug/TransactionInspector.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAGhD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,gBAAgB,CAAC;CACzC;AAKD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,yBAAyB,2CA4JrF"}
@@ -0,0 +1,15 @@
1
+ import { TraceDetail } from '../types/responses';
2
+ import { InspectorSelection } from './inspector-selection';
3
+ export interface TransactionMapProps {
4
+ readonly trace?: TraceDetail;
5
+ readonly selection: InspectorSelection;
6
+ readonly onSelect: (selection: InspectorSelection) => void;
7
+ }
8
+ /**
9
+ * The transaction as a round trip: the request travels from the client through
10
+ * the executed steps to the target on the upper lane, and the response comes
11
+ * back on the lower one. Everything on it is selectable — the two hops answer
12
+ * "what did each side see", the steps answer "what did this do".
13
+ */
14
+ export declare function TransactionMap({ trace, selection, onSelect }: TransactionMapProps): import("react/jsx-runtime").JSX.Element;
15
+ //# sourceMappingURL=TransactionMap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransactionMap.d.ts","sourceRoot":"","sources":["../../src/debug/TransactionMap.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAQ,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAGhE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,kBAAkB,KAAK,IAAI,CAAC;CAC5D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,mBAAmB,2CAuDjF"}
@@ -0,0 +1,12 @@
1
+ import { DebugTransaction } from './types';
2
+ export interface TransactionRailProps {
3
+ readonly transactions: readonly DebugTransaction[];
4
+ readonly selectedTraceId?: string;
5
+ readonly onSelect: (transaction: DebugTransaction) => void;
6
+ }
7
+ /**
8
+ * Left rail of the debug workbench — the Apigee "Transactions" column.
9
+ * Newest first; selecting a row drives the inspector on the right.
10
+ */
11
+ export declare function TransactionRail({ transactions, selectedTraceId, onSelect }: TransactionRailProps): import("react/jsx-runtime").JSX.Element;
12
+ //# sourceMappingURL=TransactionRail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransactionRail.d.ts","sourceRoot":"","sources":["../../src/debug/TransactionRail.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,YAAY,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACnD,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAC5D;AAcD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,oBAAoB,2CAyChG"}
@@ -0,0 +1,15 @@
1
+ import { Span, TraceDetail } from '../types/responses';
2
+ export interface TransactionTimelineProps {
3
+ readonly trace?: TraceDetail;
4
+ readonly selectedSpanId?: string;
5
+ readonly onSelectSpan: (span: Span) => void;
6
+ }
7
+ /**
8
+ * The transaction's elapsed-time strip: one bar per executed step, placed and
9
+ * sized on a shared scale inside a single track. The selected bar is framed
10
+ * rather than recoloured, so the eye keeps the timing reading while still
11
+ * knowing where it is. Steps too brief to draw are widened to a minimum so
12
+ * they never vanish.
13
+ */
14
+ export declare function TransactionTimeline({ trace, selectedSpanId, onSelectSpan }: TransactionTimelineProps): import("react/jsx-runtime").JSX.Element | null;
15
+ //# sourceMappingURL=TransactionTimeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransactionTimeline.d.ts","sourceRoot":"","sources":["../../src/debug/TransactionTimeline.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE5D,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;CAC7C;AA4DD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,EAAE,wBAAwB,kDAkHpG"}
@@ -0,0 +1,27 @@
1
+ import { Span } from '../types/responses';
2
+ /** The four bodies at the edges of the gateway. */
3
+ export interface BoundaryBodies {
4
+ /** As it reached the gateway. */
5
+ readonly entrypointRequest?: string;
6
+ /** As the gateway sent it upstream. */
7
+ readonly endpointRequest?: string;
8
+ /** As the target returned it. */
9
+ readonly endpointResponse?: string;
10
+ /** As the gateway returned it to the caller. */
11
+ readonly entrypointResponse?: string;
12
+ }
13
+ /**
14
+ * Reconstructs the gateway's boundary bodies from the per-policy captures.
15
+ *
16
+ * The bodies at the edges are normally read from the connection log, but not
17
+ * every connector records them — the LLM proxy, for one, does not. The policy
18
+ * captures do have them: the first policy of the response phase sees exactly
19
+ * what the target returned, and the last one leaves exactly what the caller
20
+ * gets. Deriving them here means a transaction shows its payloads whenever a
21
+ * policy ran, whatever the connector reports.
22
+ *
23
+ * This says nothing when a phase ran no policy — there is no capture to read —
24
+ * so callers should treat a missing side as "unknown", not as "empty".
25
+ */
26
+ export declare function deriveBoundaryBodies(spans: readonly Span[]): BoundaryBodies;
27
+ //# sourceMappingURL=boundary-bodies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boundary-bodies.d.ts","sourceRoot":"","sources":["../../src/debug/boundary-bodies.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE/C,mDAAmD;AACnD,MAAM,WAAW,cAAc;IAC7B,iCAAiC;IACjC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,uCAAuC;IACvC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,iCAAiC;IACjC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,gDAAgD;IAChD,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,GAAG,cAAc,CAU3E"}
@@ -0,0 +1,51 @@
1
+ import { ReactNode } from 'react';
2
+ /** What the API currently emits, as reported by the host. */
3
+ export interface DebugCaptureStatus {
4
+ /** OpenTelemetry tracing is on: the transaction and its spans are recorded. */
5
+ readonly tracingEnabled: boolean;
6
+ /** Verbose tracing is on: one span per policy, with before/after snapshots. */
7
+ readonly verboseTracing: boolean;
8
+ /** Request/response payloads are recorded and available to the inspector. */
9
+ readonly payloadCapture: boolean;
10
+ }
11
+ /**
12
+ * Opaque handle returned when capture was turned on for a session. The host
13
+ * decides what `previous` holds (typically the analytics block it replaced) —
14
+ * the lib only stores it and hands it back on restore.
15
+ */
16
+ export interface DebugCaptureGrant {
17
+ readonly apiId: string;
18
+ readonly previous: unknown;
19
+ /**
20
+ * True when the change only takes effect after a redeploy, so the UI can be
21
+ * honest about the delay instead of pretending capture is instant.
22
+ */
23
+ readonly requiresRedeploy?: boolean;
24
+ }
25
+ /**
26
+ * Host-provided control over an API's capture configuration. Supplying it lets
27
+ * a debug session switch verbose tracing and payload capture on for its own
28
+ * duration and put the API back as it was — the alternative being that every
29
+ * user configures the API by hand before debugging.
30
+ *
31
+ * Left unset, the workbench still works: it reports readiness and explains what
32
+ * is missing instead of changing anything.
33
+ */
34
+ export interface DebugCaptureController {
35
+ getStatus(apiId: string, signal?: AbortSignal): Promise<DebugCaptureStatus>;
36
+ /** Enables everything the workbench needs; resolves once the change is live. */
37
+ enable(apiId: string): Promise<DebugCaptureGrant>;
38
+ /** Puts the API back to the configuration captured in the grant. */
39
+ restore(grant: DebugCaptureGrant): Promise<void>;
40
+ }
41
+ /** True when the API emits everything the workbench can show. */
42
+ export declare function isCaptureComplete(status: DebugCaptureStatus): boolean;
43
+ /** Human list of what is missing, for the readiness banner. */
44
+ export declare function describeMissingCapture(status: DebugCaptureStatus): string[];
45
+ export interface DebugCaptureControllerProviderProps {
46
+ controller: DebugCaptureController;
47
+ children: ReactNode;
48
+ }
49
+ export declare function DebugCaptureControllerProvider({ controller, children }: DebugCaptureControllerProviderProps): import("react/jsx-runtime").JSX.Element;
50
+ export declare function useOptionalDebugCaptureController(): DebugCaptureController | null;
51
+ //# sourceMappingURL=capture-controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture-controller.d.ts","sourceRoot":"","sources":["../../src/debug/capture-controller.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAElE,6DAA6D;AAC7D,MAAM,WAAW,kBAAkB;IACjC,+EAA+E;IAC/E,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,+EAA+E;IAC/E,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,6EAA6E;IAC7E,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;CAClC;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CACrC;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC5E,gFAAgF;IAChF,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAClD,oEAAoE;IACpE,OAAO,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClD;AAED,iEAAiE;AACjE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAErE;AAED,+DAA+D;AAC/D,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,EAAE,CAM3E;AAID,MAAM,WAAW,mCAAmC;IAClD,UAAU,EAAE,sBAAsB,CAAC;IACnC,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,8BAA8B,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,mCAAmC,2CAI3G;AAED,wBAAgB,iCAAiC,IAAI,sBAAsB,GAAG,IAAI,CAEjF"}
@@ -0,0 +1,8 @@
1
+ import { ExchangePayload } from './exchange-correlation';
2
+ /**
3
+ * Renders a captured request as a runnable `curl` command, so a debug finding
4
+ * can be reproduced outside the console in one paste. Hop-by-hop headers are
5
+ * dropped because curl recomputes them.
6
+ */
7
+ export declare function buildCurlCommand(payload: ExchangePayload): string;
8
+ //# sourceMappingURL=curl-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"curl-command.d.ts","sourceRoot":"","sources":["../../src/debug/curl-command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAS9D;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAsBjE"}
@@ -0,0 +1,42 @@
1
+ import { DebugTransaction } from './types';
2
+ /**
3
+ * HTTP payload halves of a gateway exchange, as returned by
4
+ * `GET /observability/logs/{requestId}` (`LogDetailDto`). The gateway records
5
+ * them when the API's `analytics.logging` captures payloads — this is the
6
+ * "before/after" view: what entered the gateway vs. what was sent upstream,
7
+ * and what the upstream returned vs. what went back to the client.
8
+ */
9
+ export interface ExchangePayload {
10
+ readonly method?: string;
11
+ readonly uri?: string;
12
+ readonly status?: number;
13
+ readonly headers?: Record<string, readonly string[]>;
14
+ readonly body?: string;
15
+ }
16
+ export interface DebugExchange {
17
+ readonly requestId: string;
18
+ readonly entrypointRequest?: ExchangePayload;
19
+ readonly entrypointResponse?: ExchangePayload;
20
+ readonly endpointRequest?: ExchangePayload;
21
+ readonly endpointResponse?: ExchangePayload;
22
+ }
23
+ /** Minimal shape of a connection-log row used for correlation. */
24
+ export interface CorrelatableLogRow {
25
+ readonly requestId?: string;
26
+ readonly apiId?: string;
27
+ readonly timestampEpochMs?: number;
28
+ readonly method?: string;
29
+ readonly uri?: string;
30
+ }
31
+ /**
32
+ * Spans carry no request id today (backend gap — documented in the design
33
+ * doc), so a transaction is correlated to its connection log by proximity:
34
+ * same API, same method, matching path when available, then the closest
35
+ * timestamp within a tight window. Inside a debug-session capture window this
36
+ * is reliable; ambiguity resolves to the temporally closest row.
37
+ */
38
+ export declare const CORRELATION_WINDOW_MS = 5000;
39
+ export declare function pickBestLogMatch(transaction: DebugTransaction, apiId: string, rows: readonly CorrelatableLogRow[]): CorrelatableLogRow | null;
40
+ /** Narrows the raw `getById` JSON to the exchange shape, dropping empty halves. */
41
+ export declare function toDebugExchange(requestId: string, raw: unknown): DebugExchange;
42
+ //# sourceMappingURL=exchange-correlation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exchange-correlation.d.ts","sourceRoot":"","sources":["../../src/debug/exchange-correlation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IACrD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,eAAe,CAAC;IAC7C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,eAAe,CAAC;IAC9C,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,CAAC;IAC3C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,eAAe,CAAC;CAC7C;AAED,kEAAkE;AAClE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,OAAQ,CAAC;AAU3C,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,gBAAgB,EAC7B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,SAAS,kBAAkB,EAAE,GAClC,kBAAkB,GAAG,IAAI,CAoB3B;AAED,mFAAmF;AACnF,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAoB9E"}
@@ -0,0 +1,5 @@
1
+ /** Re-renders every `intervalMs` while `enabled` — drives live countdowns. */
2
+ export declare function useNow(intervalMs: number, enabled: boolean): number;
3
+ /** "9m 32s" / "45s" / "0s" — time left before a session expires. */
4
+ export declare function formatRemaining(expiresAt: number, now: number): string;
5
+ //# sourceMappingURL=format-session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-session.d.ts","sourceRoot":"","sources":["../../src/debug/format-session.ts"],"names":[],"mappings":"AAEA,8EAA8E;AAC9E,wBAAgB,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAQnE;AAED,oEAAoE;AACpE,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAMtE"}
@@ -0,0 +1,52 @@
1
+ export { CreateDebugSessionDialog } from './CreateDebugSessionDialog';
2
+ export type { CreateDebugSessionDialogProps } from './CreateDebugSessionDialog';
3
+ export { DebugSessionPage } from './DebugSessionPage';
4
+ export type { DebugSessionPageProps } from './DebugSessionPage';
5
+ export { DebugSessionsPage } from './DebugSessionsPage';
6
+ export type { DebugSessionsPageProps } from './DebugSessionsPage';
7
+ export { DebugSessionStatusBadge } from './DebugSessionStatusBadge';
8
+ export type { DebugSessionStatusBadgeProps } from './DebugSessionStatusBadge';
9
+ export { formatRemaining } from './format-session';
10
+ export { CaptureReadinessBanner } from './CaptureReadinessBanner';
11
+ export type { CaptureReadinessBannerProps } from './CaptureReadinessBanner';
12
+ export { DebugCaptureControllerProvider, describeMissingCapture, isCaptureComplete, useOptionalDebugCaptureController, } from './capture-controller';
13
+ export type { DebugCaptureController, DebugCaptureControllerProviderProps, DebugCaptureGrant, DebugCaptureStatus, } from './capture-controller';
14
+ export { buildCurlCommand } from './curl-command';
15
+ export { diffPayloads, normalizePayload } from './payload-diff';
16
+ export type { PayloadDiffLine, PayloadDiffLineKind, PayloadDiffResult } from './payload-diff';
17
+ export { BodyDiff } from './BodyDiff';
18
+ export type { BodyDiffProps } from './BodyDiff';
19
+ export { PayloadDiffView } from './PayloadDiffView';
20
+ export { StepDetailPanel } from './StepDetailPanel';
21
+ export type { StepDetailPanelProps } from './StepDetailPanel';
22
+ export { HopDetailPanel } from './HopDetailPanel';
23
+ export type { ExchangeHop, HopDetailPanelProps } from './HopDetailPanel';
24
+ export { isStepSelected, selectedSpanId } from './inspector-selection';
25
+ export type { InspectorSelection } from './inspector-selection';
26
+ export type { PayloadDiffViewProps } from './PayloadDiffView';
27
+ export { buildTransactionMap } from './transaction-map-model';
28
+ export type { MapStep, TransactionMapModel } from './transaction-map-model';
29
+ export { TransactionMap } from './TransactionMap';
30
+ export type { TransactionMapProps } from './TransactionMap';
31
+ export { PolicyChainView, countPolicySpans } from './PolicyChainView';
32
+ export type { PolicyChainViewProps } from './PolicyChainView';
33
+ export { TransactionTimeline } from './TransactionTimeline';
34
+ export type { TransactionTimelineProps } from './TransactionTimeline';
35
+ export { useSessionCapture } from './use-session-capture';
36
+ export type { SessionCaptureState, UseSessionCaptureResult } from './use-session-capture';
37
+ export { pickBestLogMatch, toDebugExchange, CORRELATION_WINDOW_MS } from './exchange-correlation';
38
+ export type { CorrelatableLogRow, DebugExchange, ExchangePayload } from './exchange-correlation';
39
+ export { TransactionInspector } from './TransactionInspector';
40
+ export type { TransactionInspectorProps } from './TransactionInspector';
41
+ export { TransactionRail } from './TransactionRail';
42
+ export type { TransactionRailProps } from './TransactionRail';
43
+ export { useDebugExchangeQuery } from './use-debug-exchange-query';
44
+ export type { DebugExchangeStatus, UseDebugExchangeQueryResult } from './use-debug-exchange-query';
45
+ export { buildDebugSessionExport, downloadDebugSessionExport } from './session-export';
46
+ export type { DebugSessionExport } from './session-export';
47
+ export { buildServerFilters, describeRules, matchesClientRules, passesSampling } from './session-rules';
48
+ export type { CreateDebugSessionInput, DebugSession, DebugSessionRules, DebugSessionStatus, DebugTransaction, } from './types';
49
+ export { DEBUG_SESSION_DEFAULTS, DEBUG_SESSION_LIMITS } from './types';
50
+ export { useDebugCapture } from './use-debug-capture';
51
+ export type { DebugCaptureState } from './use-debug-capture';
52
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/debug/index.ts"],"names":[],"mappings":"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"}