@odigos/ui-kit 0.0.286 → 0.0.288

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 (177) hide show
  1. package/.cursor/rules/frontend-workflow.mdc +27 -0
  2. package/.cursor/rules/ui-feedback-tables-forms.mdc +40 -0
  3. package/.cursor/rules/ui-implementation.mdc +21 -0
  4. package/.cursor/rules/ui-pages-and-drawers.mdc +34 -0
  5. package/.cursor/rules/ui-visual-language.mdc +27 -0
  6. package/CHANGELOG.md +22 -0
  7. package/docs/api-context.md +1 -1
  8. package/lib/chunks/helpers-BCSEuuKh.js +9 -0
  9. package/lib/chunks/index-Cy84opXf.js +351 -0
  10. package/lib/chunks/source-instrument-form-context-D6pVu22G.js +5 -0
  11. package/lib/chunks/ui-components-D8rTJS7r.js +1943 -0
  12. package/lib/components/_cards/data-card/index.d.ts +6 -1
  13. package/lib/components/_cards/text-card/index.d.ts +3 -0
  14. package/lib/components/button/index.d.ts +3 -1
  15. package/lib/components/drawer/header/index.d.ts +2 -0
  16. package/lib/components/drop-data/index.d.ts +4 -10
  17. package/lib/components/hover-actions/index.d.ts +1 -1
  18. package/lib/components/index.d.ts +4 -0
  19. package/lib/components/info-row/index.d.ts +11 -0
  20. package/lib/components/input/index.d.ts +2 -0
  21. package/lib/components/popup/index.d.ts +17 -0
  22. package/lib/components/select-window-hours/index.d.ts +17 -0
  23. package/lib/components/table/index.d.ts +10 -0
  24. package/lib/components/table/styled.d.ts +11 -0
  25. package/lib/components/table/table-rows/index.d.ts +6 -1
  26. package/lib/components/table/types.d.ts +11 -2
  27. package/lib/components/trace-view/index.d.ts +4 -0
  28. package/lib/components/trace-view/styled.d.ts +43 -0
  29. package/lib/components/trace-view/types.d.ts +46 -0
  30. package/lib/components.js +1 -1
  31. package/lib/constants/index.d.ts +1 -0
  32. package/lib/constants/instrumentation-rules/index.d.ts +2 -1
  33. package/lib/constants/strings/index.d.ts +20 -0
  34. package/lib/constants/url-templatization/index.d.ts +90 -0
  35. package/lib/constants.js +1 -1
  36. package/lib/containers/_drawers/edit-source-drawer/overview/instructions-card.d.ts +21 -0
  37. package/lib/containers/_drawers/edit-source-drawer/pods/containers-card/process-card.d.ts +1 -7
  38. package/lib/containers/_drawers/index.d.ts +3 -0
  39. package/lib/containers/_drawers/url-templatization-custom-template-drawer/destination-step.d.ts +16 -0
  40. package/lib/containers/_drawers/url-templatization-custom-template-drawer/index.d.ts +18 -0
  41. package/lib/containers/_drawers/url-templatization-default-rule-drawer/index.d.ts +14 -0
  42. package/lib/containers/_drawers/url-templatization-template-view-drawer/index.d.ts +9 -0
  43. package/lib/containers/central-connections/helpers.d.ts +8 -0
  44. package/lib/containers/central-connections/index.d.ts +1 -0
  45. package/lib/containers/index.d.ts +2 -0
  46. package/lib/containers/insights/consts.d.ts +6 -0
  47. package/lib/containers/insights/findings/drawer/anomaly/anomaly-trace-compare/helpers.d.ts +15 -0
  48. package/lib/containers/insights/findings/drawer/anomaly/anomaly-trace-compare/index.d.ts +7 -0
  49. package/lib/containers/insights/findings/drawer/anomaly/index.d.ts +16 -0
  50. package/lib/containers/insights/findings/drawer/anomaly/why-this-fired/index.d.ts +6 -0
  51. package/lib/containers/insights/findings/drawer/helpers.d.ts +9 -0
  52. package/lib/containers/insights/findings/drawer/index.d.ts +6 -0
  53. package/lib/containers/insights/findings/drawer/violation/index.d.ts +7 -0
  54. package/lib/containers/insights/findings/drawer/violation/violation-trace-view/index.d.ts +8 -0
  55. package/lib/containers/insights/findings/helpers.d.ts +57 -0
  56. package/lib/containers/insights/findings/index.d.ts +2 -0
  57. package/lib/containers/insights/findings/resolve-findings/index.d.ts +11 -0
  58. package/lib/containers/insights/index.d.ts +6 -0
  59. package/lib/containers/insights/insights-context.d.ts +44 -0
  60. package/lib/containers/insights/overview/contained-table-and-heading/index.d.ts +19 -0
  61. package/lib/containers/insights/overview/index.d.ts +6 -0
  62. package/lib/containers/insights/settings-and-configurations/constants.d.ts +16 -0
  63. package/lib/containers/insights/settings-and-configurations/content-panel/index.d.ts +11 -0
  64. package/lib/containers/insights/settings-and-configurations/index.d.ts +2 -0
  65. package/lib/containers/insights/settings-and-configurations/menu-config.d.ts +24 -0
  66. package/lib/containers/insights/settings-and-configurations/panels/detection/constants.d.ts +40 -0
  67. package/lib/containers/insights/settings-and-configurations/panels/detection/create-override-panel.d.ts +14 -0
  68. package/lib/containers/insights/settings-and-configurations/panels/detection/index.d.ts +2 -0
  69. package/lib/containers/insights/settings-and-configurations/panels/detection/mappers.d.ts +12 -0
  70. package/lib/containers/insights/settings-and-configurations/panels/detection/mock.d.ts +4 -0
  71. package/lib/containers/insights/settings-and-configurations/panels/detection/policies-menu.d.ts +10 -0
  72. package/lib/containers/insights/settings-and-configurations/panels/detection/policy-editor.d.ts +8 -0
  73. package/lib/containers/insights/settings-and-configurations/panels/detection/policy-list-item.d.ts +8 -0
  74. package/lib/containers/insights/settings-and-configurations/panels/detection/risk-levels.d.ts +15 -0
  75. package/lib/containers/insights/settings-and-configurations/panels/detection/risk-model-drawer/constants.d.ts +16 -0
  76. package/lib/containers/insights/settings-and-configurations/panels/detection/risk-model-drawer/default-catalog.d.ts +3 -0
  77. package/lib/containers/insights/settings-and-configurations/panels/detection/risk-model-drawer/helpers.d.ts +30 -0
  78. package/lib/containers/insights/settings-and-configurations/panels/detection/risk-model-drawer/index.d.ts +10 -0
  79. package/lib/containers/insights/settings-and-configurations/panels/detection/signal-weights-panel.d.ts +13 -0
  80. package/lib/containers/insights/settings-and-configurations/panels/detection/signal-weights.d.ts +17 -0
  81. package/lib/containers/insights/settings-and-configurations/panels/detection/types.d.ts +29 -0
  82. package/lib/containers/insights/settings-and-configurations/panels/guardrails/constants.d.ts +40 -0
  83. package/lib/containers/insights/settings-and-configurations/panels/guardrails/create-panel.d.ts +13 -0
  84. package/lib/containers/insights/settings-and-configurations/panels/guardrails/edit-panel.d.ts +10 -0
  85. package/lib/containers/insights/settings-and-configurations/panels/guardrails/facet-section.d.ts +15 -0
  86. package/lib/containers/insights/settings-and-configurations/panels/guardrails/guardrail-list-item.d.ts +8 -0
  87. package/lib/containers/insights/settings-and-configurations/panels/guardrails/guardrails-menu.d.ts +9 -0
  88. package/lib/containers/insights/settings-and-configurations/panels/guardrails/index.d.ts +2 -0
  89. package/lib/containers/insights/settings-and-configurations/panels/guardrails/mappers.d.ts +25 -0
  90. package/lib/containers/insights/settings-and-configurations/panels/guardrails/types.d.ts +10 -0
  91. package/lib/containers/insights/settings-and-configurations/panels/learning/constants.d.ts +82 -0
  92. package/lib/containers/insights/settings-and-configurations/panels/learning/create-override-panel.d.ts +21 -0
  93. package/lib/containers/insights/settings-and-configurations/panels/learning/index.d.ts +2 -0
  94. package/lib/containers/insights/settings-and-configurations/panels/learning/mappers.d.ts +38 -0
  95. package/lib/containers/insights/settings-and-configurations/panels/learning/policies-menu.d.ts +10 -0
  96. package/lib/containers/insights/settings-and-configurations/panels/learning/policy-editor.d.ts +9 -0
  97. package/lib/containers/insights/settings-and-configurations/panels/learning/policy-list-item.d.ts +8 -0
  98. package/lib/containers/insights/settings-and-configurations/panels/learning/types.d.ts +31 -0
  99. package/lib/containers/insights/settings-and-configurations/panels/storage/constants.d.ts +52 -0
  100. package/lib/containers/insights/settings-and-configurations/panels/storage/formatters.d.ts +5 -0
  101. package/lib/containers/insights/settings-and-configurations/panels/storage/index.d.ts +2 -0
  102. package/lib/containers/insights/settings-and-configurations/panels/storage/layout.d.ts +18 -0
  103. package/lib/containers/insights/settings-and-configurations/panels/storage/mappers.d.ts +27 -0
  104. package/lib/containers/insights/settings-and-configurations/panels/system/constants.d.ts +33 -0
  105. package/lib/containers/insights/settings-and-configurations/panels/system/index.d.ts +2 -0
  106. package/lib/containers/insights/settings-and-configurations/settings-menu/category-header.d.ts +8 -0
  107. package/lib/containers/insights/settings-and-configurations/settings-menu/index.d.ts +7 -0
  108. package/lib/containers/insights/transactions/drawer/baselines/helpers.d.ts +16 -0
  109. package/lib/containers/insights/transactions/drawer/baselines/index.d.ts +5 -0
  110. package/lib/containers/insights/transactions/drawer/index.d.ts +2 -0
  111. package/lib/containers/insights/transactions/drawer/observations/helpers.d.ts +11 -0
  112. package/lib/containers/insights/transactions/drawer/observations/index.d.ts +5 -0
  113. package/lib/containers/insights/transactions/helpers.d.ts +35 -0
  114. package/lib/containers/insights/transactions/index.d.ts +2 -0
  115. package/lib/containers/url-templatization/converters.d.ts +43 -0
  116. package/lib/containers/url-templatization/custom-templates-list.d.ts +16 -0
  117. package/lib/containers/url-templatization/default-rules-list.d.ts +10 -0
  118. package/lib/containers/url-templatization/helpers.d.ts +17 -0
  119. package/lib/containers/url-templatization/index.d.ts +5 -0
  120. package/lib/containers/url-templatization/scope-summary.d.ts +8 -0
  121. package/lib/containers/url-templatization/template-path.d.ts +8 -0
  122. package/lib/containers.js +1909 -286
  123. package/lib/contexts/odigos-api/capabilities.d.ts +4 -0
  124. package/lib/contexts/odigos-api/hooks/use-insights-api.d.ts +162 -0
  125. package/lib/contexts/odigos-api/hooks/use-sources-api.d.ts +10 -1
  126. package/lib/contexts/odigos-api/index.d.ts +2 -1
  127. package/lib/contexts/odigos-api/internal/notify.d.ts +4 -3
  128. package/lib/contexts/odigos-api/types.d.ts +229 -1
  129. package/lib/contexts/odigos-api/use-odigos-api.d.ts +2 -0
  130. package/lib/contexts/odigos-context.d.ts +3 -3
  131. package/lib/contexts.js +1 -1
  132. package/lib/functions/index.d.ts +1 -0
  133. package/lib/functions/parse-raw-otlp/index.d.ts +43 -0
  134. package/lib/functions.js +1 -1
  135. package/lib/hooks/index.d.ts +1 -0
  136. package/lib/hooks/useAnchoredPopup.d.ts +44 -0
  137. package/lib/hooks/useCopy.d.ts +2 -3
  138. package/lib/hooks/useOnClickOutside.d.ts +1 -0
  139. package/lib/hooks/useTimeAgo.d.ts +4 -0
  140. package/lib/hooks.js +1 -1
  141. package/lib/icons/common/clock-icon/index.d.ts +2 -0
  142. package/lib/icons/common/index.d.ts +4 -0
  143. package/lib/icons/common/insights-findings-icon/index.d.ts +2 -0
  144. package/lib/icons/common/insights-transactions-icon/index.d.ts +2 -0
  145. package/lib/icons/common/threat-detection-icon/index.d.ts +2 -0
  146. package/lib/icons/overview/index.d.ts +2 -0
  147. package/lib/icons/overview/insights-icon/index.d.ts +2 -0
  148. package/lib/icons/overview/url-templatization-icon/index.d.ts +2 -0
  149. package/lib/icons.js +1 -1
  150. package/lib/snippets/actions/index.d.ts +8 -5
  151. package/lib/snippets/blast-radius/animated-edge.d.ts +10 -0
  152. package/lib/snippets/blast-radius/blast-radius-node.d.ts +6 -0
  153. package/lib/snippets/blast-radius/helpers.d.ts +29 -0
  154. package/lib/snippets/blast-radius/index.d.ts +7 -0
  155. package/lib/snippets/blast-radius/types.d.ts +19 -0
  156. package/lib/snippets/code-modal/index.d.ts +9 -0
  157. package/lib/snippets/index.d.ts +2 -0
  158. package/lib/snippets/trace-modal/index.d.ts +8 -0
  159. package/lib/snippets/upgrade-modal/index.d.ts +1 -1
  160. package/lib/snippets/wide-drawer/index.d.ts +6 -0
  161. package/lib/snippets.js +1 -1
  162. package/lib/store.js +1 -1
  163. package/lib/theme/palettes/index.d.ts +7 -1
  164. package/lib/theme.js +1 -1
  165. package/lib/types/actions/index.d.ts +12 -0
  166. package/lib/types/common/index.d.ts +9 -2
  167. package/lib/types/index.d.ts +1 -0
  168. package/lib/types/insights/index.d.ts +598 -0
  169. package/lib/types/instrumentation-rules/index.d.ts +1 -0
  170. package/lib/types/workload/index.d.ts +61 -0
  171. package/lib/types.js +1 -1
  172. package/lib/visuals.js +1 -1
  173. package/package.json +1 -1
  174. package/lib/chunks/helpers-C5bkjRbO.js +0 -9
  175. package/lib/chunks/index-DBZ1mLhG.js +0 -298
  176. package/lib/chunks/source-instrument-form-context-CnRKQq6W.js +0 -5
  177. package/lib/chunks/ui-components-Ci-Vq1Dl.js +0 -1620
@@ -0,0 +1,598 @@
1
+ /**
2
+ * Insights types — mirror of `frontend/graph/insights.graphqls`
3
+ * in the odigos OSS repo. Field names and enums match the GraphQL schema 1:1.
4
+ */
5
+ export declare enum InsightsEntityTypes {
6
+ Policy = "InsightsPolicy",
7
+ Finding = "Finding"
8
+ }
9
+ export declare enum InsightsTransactionKind {
10
+ HTTP = "HTTP",
11
+ GRPC = "GRPC",
12
+ CONSUMER = "CONSUMER",
13
+ PRODUCER = "PRODUCER",
14
+ CRON = "CRON",
15
+ INTERNAL = "INTERNAL"
16
+ }
17
+ export declare enum InsightsDeviationClass {
18
+ D1_call_edges = "D1_call_edges",
19
+ D2_egress = "D2_egress",
20
+ D3_latency = "D3_latency",
21
+ D4_args_returns = "D4_args_returns",
22
+ D5_libraries = "D5_libraries",
23
+ D6_attr_relations = "D6_attr_relations",
24
+ D7_db_access = "D7_db_access",
25
+ D8_payload_size = "D8_payload_size"
26
+ }
27
+ export declare enum InsightsSampleReason {
28
+ Example = "example",
29
+ AnomalyEvidence = "anomaly_evidence",
30
+ GuardrailEvidence = "guardrail_evidence"
31
+ }
32
+ export declare enum InsightsPolicyScope {
33
+ Global = "global",
34
+ Service = "service",
35
+ Transaction = "transaction"
36
+ }
37
+ export declare enum InsightsSeverity {
38
+ Info = "info",
39
+ Low = "low",
40
+ Medium = "medium",
41
+ High = "high",
42
+ Critical = "critical"
43
+ }
44
+ export declare enum InsightsFindingKind {
45
+ Anomaly = "anomaly",
46
+ Violation = "violation"
47
+ }
48
+ export declare enum InsightsAnomalyStatus {
49
+ Open = "open",
50
+ Baselined = "baselined",
51
+ Dismissed = "dismissed"
52
+ }
53
+ export declare enum InsightsViolationStatus {
54
+ Open = "open",
55
+ Allowed = "allowed",
56
+ Dismissed = "dismissed"
57
+ }
58
+ export declare enum InsightsRuleMode {
59
+ Suggest = "suggest",
60
+ Enforce = "enforce"
61
+ }
62
+ export declare enum InsightsAnomalyResolution {
63
+ Accept = "accept",
64
+ Dismiss = "dismiss",
65
+ Reopen = "reopen"
66
+ }
67
+ export declare enum InsightsBulkResolution {
68
+ Accept = "accept",
69
+ Dismiss = "dismiss"
70
+ }
71
+ export declare enum InsightsLearningMode {
72
+ All = "all",
73
+ Any = "any",
74
+ KOf = "k_of"
75
+ }
76
+ /** Coarse learning state for one baseline class (from GET …/baseline `learning.phase`). */
77
+ export declare enum InsightsBaselineLearningPhase {
78
+ Promoted = "promoted",
79
+ Empty = "empty",
80
+ Learning = "learning"
81
+ }
82
+ export declare enum InsightsLearningConditionType {
83
+ MinObservations = "min_observations",
84
+ MinDuration = "min_duration",
85
+ StableObservations = "stable_observations",
86
+ StableDuration = "stable_duration"
87
+ }
88
+ export declare enum InsightsStorageHealthStatus {
89
+ Healthy = "healthy",
90
+ Degraded = "degraded",
91
+ Critical = "critical",
92
+ Unreachable = "unreachable"
93
+ }
94
+ export declare enum InsightsStorageDiskStatus {
95
+ Ok = "ok",
96
+ Warning = "warning",
97
+ Critical = "critical"
98
+ }
99
+ export interface InsightsServiceStat {
100
+ namespace: string;
101
+ service: string;
102
+ transactionCount: number;
103
+ volume: number;
104
+ lastSeen: string;
105
+ }
106
+ export interface InsightsServiceProfile {
107
+ namespace: string;
108
+ service: string;
109
+ callers: string[];
110
+ callees: string[];
111
+ egress: string[];
112
+ transactions: string[];
113
+ }
114
+ export interface InsightsBlastRadiusNode {
115
+ /** Empty for synthetic hubs (e.g. `user`) and some virtual leaves. */
116
+ namespace: string;
117
+ service: string;
118
+ /** True for an uninstrumented dependency (database, queue, external API). */
119
+ isVirtual: boolean;
120
+ }
121
+ export interface InsightsBlastRadiusEdge {
122
+ clientNamespace?: string | null;
123
+ clientService: string;
124
+ serverNamespace?: string | null;
125
+ serverService: string;
126
+ connectionType: string;
127
+ requestCount: number;
128
+ failedCount: number;
129
+ lastSeen: string;
130
+ }
131
+ /** Neighborhood around an anchor service from the gateway servicegraph connector. */
132
+ export interface InsightsBlastRadiusSubgraph {
133
+ root: InsightsBlastRadiusNode;
134
+ nodes: InsightsBlastRadiusNode[];
135
+ edges: InsightsBlastRadiusEdge[];
136
+ }
137
+ export interface InsightsTransactionStat {
138
+ id: string;
139
+ service: string;
140
+ namespace: string;
141
+ operation: string;
142
+ kind: InsightsTransactionKind;
143
+ volume: number;
144
+ lastSeen: string;
145
+ hasBaseline?: boolean | null;
146
+ promoted?: boolean | null;
147
+ }
148
+ export interface InsightsTransaction {
149
+ id: string;
150
+ service: string;
151
+ namespace: string;
152
+ operation: string;
153
+ kind: InsightsTransactionKind;
154
+ }
155
+ /** One stability dimension (observations count, or duration in minutes). */
156
+ export interface InsightsBaselineStabilityProgress {
157
+ current: number;
158
+ target: number;
159
+ drivesPromotion: boolean;
160
+ met: boolean;
161
+ }
162
+ /** Both stability signals — always present for UI progress copy. */
163
+ export interface InsightsBaselineLearningStability {
164
+ observations: InsightsBaselineStabilityProgress;
165
+ duration: InsightsBaselineStabilityProgress;
166
+ }
167
+ /**
168
+ * Computed learning/stability snapshot against the resolved learning policy.
169
+ * Always present on baseline rows (including empty placeholders).
170
+ */
171
+ export interface InsightsBaselineLearning {
172
+ phase: InsightsBaselineLearningPhase;
173
+ observationsSinceLastChange: number;
174
+ quietMinutes: number;
175
+ mode: InsightsLearningMode;
176
+ readyToPromote: boolean;
177
+ stability: InsightsBaselineLearningStability;
178
+ }
179
+ export interface InsightsBaselineClass {
180
+ transactionId: string;
181
+ class: InsightsDeviationClass;
182
+ /** JSON-encoded baseline data; shape varies per deviation class. */
183
+ data?: string | null;
184
+ dataSchemaVersion?: number | null;
185
+ observationCount: number;
186
+ promoted: boolean;
187
+ learningStartedAt?: string | null;
188
+ lastChangedAt?: string | null;
189
+ observationCountAtLastChange?: number | null;
190
+ learning: InsightsBaselineLearning;
191
+ }
192
+ export interface InsightsPromoteResult {
193
+ transactionId: string;
194
+ class: InsightsDeviationClass;
195
+ promoted: boolean;
196
+ }
197
+ export interface InsightsObservationSummary {
198
+ traceId: string;
199
+ transactionId: string;
200
+ observedAt: string;
201
+ durationMs: number;
202
+ sampleReason: InsightsSampleReason;
203
+ }
204
+ export interface InsightsObservation {
205
+ traceId: string;
206
+ transactionId: string;
207
+ observedAt: string;
208
+ durationMs: number;
209
+ sampleReason: InsightsSampleReason;
210
+ /** Base64-encoded OTLP protobuf; only on the single-observation query. */
211
+ rawOtlp: string;
212
+ }
213
+ export interface InsightsPolicy {
214
+ id: string;
215
+ name: string;
216
+ enabled: boolean;
217
+ fireAtScore: number;
218
+ /** JSON-encoded map[string]int of per-signal weights. */
219
+ signalWeights?: string | null;
220
+ /** JSON-encoded map[string][]string of enricher keyword lists. */
221
+ enricherLists?: string | null;
222
+ scope: InsightsPolicyScope;
223
+ scopeKey: string;
224
+ }
225
+ export interface InsightsPolicyInput {
226
+ /** Server-assigned; omit on create (the policy key is scope + scopeKey). */
227
+ id?: string | null;
228
+ name: string;
229
+ enabled: boolean;
230
+ fireAtScore: number;
231
+ signalWeights?: string | null;
232
+ enricherLists?: string | null;
233
+ scope: InsightsPolicyScope;
234
+ scopeKey: string;
235
+ }
236
+ export interface InsightsLearningCondition {
237
+ type: InsightsLearningConditionType;
238
+ minObservations?: number | null;
239
+ minDurationMinutes?: number | null;
240
+ stableObservations?: number | null;
241
+ stableMinutes?: number | null;
242
+ }
243
+ export interface InsightsLearningPolicy {
244
+ class: InsightsDeviationClass;
245
+ mode: InsightsLearningMode;
246
+ conditions?: InsightsLearningCondition[] | null;
247
+ minMatches?: number | null;
248
+ scope: InsightsPolicyScope;
249
+ scopeKey: string;
250
+ }
251
+ export interface InsightsLearningConditionInput {
252
+ type: InsightsLearningConditionType;
253
+ minObservations?: number | null;
254
+ minDurationMinutes?: number | null;
255
+ stableObservations?: number | null;
256
+ stableMinutes?: number | null;
257
+ }
258
+ export interface InsightsLearningPolicyInput {
259
+ class: InsightsDeviationClass;
260
+ mode: InsightsLearningMode;
261
+ conditions?: InsightsLearningConditionInput[] | null;
262
+ minMatches?: number | null;
263
+ scope: InsightsPolicyScope;
264
+ scopeKey: string;
265
+ }
266
+ export interface InsightsFinding {
267
+ kind: InsightsFindingKind;
268
+ service: string;
269
+ namespace: string;
270
+ title: string;
271
+ offending?: string | null;
272
+ score: number;
273
+ severity: InsightsSeverity;
274
+ occurrences: number;
275
+ lastSeen: string;
276
+ /** Union of anomaly statuses and violation statuses. */
277
+ status: InsightsViolationStatus | InsightsAnomalyStatus;
278
+ transactionId?: string | null;
279
+ signature?: string | null;
280
+ /** Anomaly signal classes; empty/absent for violations. */
281
+ triggeredClasses?: InsightsDeviationClass[] | null;
282
+ scopeKey?: string | null;
283
+ ruleKey?: string | null;
284
+ }
285
+ export interface InsightsRiskSignal {
286
+ source: string;
287
+ category: string;
288
+ weight: number;
289
+ confidence: number;
290
+ contribution: number;
291
+ rationale?: string | null;
292
+ mitre?: string | null;
293
+ owasp?: string | null;
294
+ }
295
+ export interface InsightsRiskAssessment {
296
+ score: number;
297
+ severity: InsightsSeverity;
298
+ correlated: boolean;
299
+ correlationBonus: number;
300
+ fireAtScore: number;
301
+ categories?: string[] | null;
302
+ signals: InsightsRiskSignal[];
303
+ }
304
+ export interface InsightsAnomalySummary {
305
+ transactionId: string;
306
+ signature: string;
307
+ service: string;
308
+ namespace: string;
309
+ operation?: string | null;
310
+ kind?: InsightsTransactionKind | null;
311
+ triggeredClasses: InsightsDeviationClass[];
312
+ offending?: string | null;
313
+ policyId?: string | null;
314
+ occurrences: number;
315
+ maxScore: number;
316
+ severity: InsightsSeverity;
317
+ firstSeen?: string | null;
318
+ lastSeen?: string | null;
319
+ lastTraceId?: string | null;
320
+ status: InsightsAnomalyStatus;
321
+ }
322
+ export declare enum InsightsAnomalyClassFindingKind {
323
+ Structural = "structural",
324
+ Metric = "metric"
325
+ }
326
+ export interface InsightsAnomalySpanHighlight {
327
+ spanId: string;
328
+ /** high | medium | low */
329
+ severity: string;
330
+ reason: string;
331
+ }
332
+ export interface InsightsAnomalyAttrHighlight {
333
+ spanId: string;
334
+ key: string;
335
+ value: string;
336
+ }
337
+ export interface InsightsAnomalyMetricComparison {
338
+ observed: number;
339
+ baseline: number;
340
+ /** us | bytes */
341
+ unit: string;
342
+ }
343
+ /** Render-ready explanation of one deviation class within an anomaly issue. */
344
+ export interface InsightsAnomalyClassFinding {
345
+ class: InsightsDeviationClass;
346
+ kind: InsightsAnomalyClassFindingKind;
347
+ title: string;
348
+ summary: string;
349
+ spanHighlights?: InsightsAnomalySpanHighlight[] | null;
350
+ attrHighlights?: InsightsAnomalyAttrHighlight[] | null;
351
+ metric?: InsightsAnomalyMetricComparison | null;
352
+ /** JSON-encoded original per-class evidence blob (fallback / debug). */
353
+ rawEvidence?: string | null;
354
+ }
355
+ export interface InsightsAnomalyIssue extends InsightsAnomalySummary {
356
+ /** JSON-encoded evidence keyed by deviation class. */
357
+ evidence: string;
358
+ risk?: InsightsRiskAssessment | null;
359
+ /** One render-ready finding per triggered class. Always present on detail. */
360
+ classFindings: InsightsAnomalyClassFinding[];
361
+ /** Evidence sample including rawOtlp. Omitted when no sample was retained. */
362
+ anomalyTrace?: InsightsObservation | null;
363
+ /** Learning-phase example sample including rawOtlp for baseline compare. */
364
+ baselineTrace?: InsightsObservation | null;
365
+ }
366
+ export interface InsightsAnomalyRefInput {
367
+ transactionId: string;
368
+ signature: string;
369
+ }
370
+ export interface InsightsBulkResolveResult {
371
+ resolution: string;
372
+ resolved: number;
373
+ }
374
+ export interface InsightsGuardrailRule {
375
+ key: string;
376
+ label: string;
377
+ mode: InsightsRuleMode;
378
+ allowlist?: string[] | null;
379
+ }
380
+ export interface InsightsGuardrail {
381
+ scope: InsightsPolicyScope;
382
+ /** Format: namespace/service. */
383
+ scopeKey: string;
384
+ rules: InsightsGuardrailRule[];
385
+ }
386
+ export interface InsightsGuardrailRuleInput {
387
+ key: string;
388
+ label: string;
389
+ mode: InsightsRuleMode;
390
+ allowlist?: string[] | null;
391
+ }
392
+ export interface InsightsGuardrailInput {
393
+ scope: InsightsPolicyScope;
394
+ scopeKey: string;
395
+ rules: InsightsGuardrailRuleInput[];
396
+ }
397
+ export interface InsightsGuardrailViolation {
398
+ service: string;
399
+ namespace: string;
400
+ scopeKey: string;
401
+ ruleKey: string;
402
+ ruleLabel: string;
403
+ offending?: string | null;
404
+ occurrences: number;
405
+ maxScore: number;
406
+ severity: InsightsSeverity;
407
+ lastSeen?: string | null;
408
+ status: InsightsViolationStatus;
409
+ }
410
+ /** Full violation for investigate — detail path only. */
411
+ export interface InsightsGuardrailViolationDetail extends InsightsGuardrailViolation {
412
+ offending: string;
413
+ /** One-line explanation of what broke (service, rule, offending). */
414
+ summary: string;
415
+ /** Spans on the evidence trace that witness the forbidden edge. */
416
+ spanHighlights?: InsightsAnomalySpanHighlight[] | null;
417
+ /** Captured sample including rawOtlp. Omitted when no sample was retained. */
418
+ evidenceTrace?: InsightsObservation | null;
419
+ }
420
+ export interface InsightsViolationActionInput {
421
+ scopeKey: string;
422
+ ruleKey: string;
423
+ offending: string;
424
+ }
425
+ export interface InsightsGuardrailSeedInput {
426
+ scopeKey: string;
427
+ mode?: InsightsRuleMode | null;
428
+ /** JSON-encoded map[string][]string; keys: allowed_callers | allowed_callees | allowed_egress | allowed_transactions. */
429
+ items: string;
430
+ }
431
+ export interface InsightsCatalogClass {
432
+ id: string;
433
+ label: string;
434
+ description?: string | null;
435
+ category: string;
436
+ categoryLabel?: string | null;
437
+ weight: number;
438
+ mitre?: string | null;
439
+ owasp?: string | null;
440
+ }
441
+ export interface InsightsEnricherList {
442
+ key: string;
443
+ label: string;
444
+ hint?: string | null;
445
+ default?: string[] | null;
446
+ }
447
+ export interface InsightsCatalogEnricher {
448
+ source: string;
449
+ parentClass: string;
450
+ category: string;
451
+ weight: number;
452
+ label: string;
453
+ description?: string | null;
454
+ list?: InsightsEnricherList | null;
455
+ }
456
+ export interface InsightsCatalogCategory {
457
+ id: string;
458
+ label: string;
459
+ base: number;
460
+ mitre?: string | null;
461
+ owasp?: string | null;
462
+ }
463
+ export interface InsightsCatalogGuardrailRule {
464
+ key: string;
465
+ label: string;
466
+ description?: string | null;
467
+ category: string;
468
+ weight: number;
469
+ hint?: string | null;
470
+ }
471
+ export interface InsightsSeverityBand {
472
+ severity: InsightsSeverity;
473
+ minScore: number;
474
+ }
475
+ export interface InsightsCatalog {
476
+ deviationClasses: InsightsCatalogClass[];
477
+ enrichers: InsightsCatalogEnricher[];
478
+ categories: InsightsCatalogCategory[];
479
+ guardrailRules: InsightsCatalogGuardrailRule[];
480
+ severityBands: InsightsSeverityBand[];
481
+ correlationBonus: number;
482
+ /** JSON-encoded map[string]string. */
483
+ tags: string;
484
+ }
485
+ export interface InsightsSystemSamplingSettings {
486
+ examplesPerTransaction: number;
487
+ exampleSampleIntervalSeconds: number;
488
+ }
489
+ export interface InsightsSystemRetentionSettings {
490
+ observationRetentionDays: number;
491
+ }
492
+ export interface InsightsSystemCapacitySettings {
493
+ maxResidentTransactions: number;
494
+ maxBaselineSetMembers: number;
495
+ }
496
+ export interface InsightsSystemWritebackSettings {
497
+ flushIntervalSeconds: number;
498
+ }
499
+ export interface InsightsSystemDetectionSettings {
500
+ /** When true, auto-create an enforced allowed_transactions guardrail when a service finishes promoting. */
501
+ autoTransactionGuardrail: boolean;
502
+ }
503
+ export interface InsightsSystemSettings {
504
+ sampling: InsightsSystemSamplingSettings;
505
+ retention: InsightsSystemRetentionSettings;
506
+ capacity: InsightsSystemCapacitySettings;
507
+ writeback: InsightsSystemWritebackSettings;
508
+ detection: InsightsSystemDetectionSettings;
509
+ }
510
+ export interface InsightsSystemSamplingSettingsInput {
511
+ examplesPerTransaction: number;
512
+ exampleSampleIntervalSeconds: number;
513
+ }
514
+ export interface InsightsSystemRetentionSettingsInput {
515
+ observationRetentionDays: number;
516
+ }
517
+ export interface InsightsSystemCapacitySettingsInput {
518
+ maxResidentTransactions: number;
519
+ maxBaselineSetMembers: number;
520
+ }
521
+ export interface InsightsSystemWritebackSettingsInput {
522
+ flushIntervalSeconds: number;
523
+ }
524
+ export interface InsightsSystemDetectionSettingsInput {
525
+ autoTransactionGuardrail: boolean;
526
+ }
527
+ export interface InsightsSystemSettingsInput {
528
+ sampling: InsightsSystemSamplingSettingsInput;
529
+ retention: InsightsSystemRetentionSettingsInput;
530
+ capacity: InsightsSystemCapacitySettingsInput;
531
+ writeback: InsightsSystemWritebackSettingsInput;
532
+ detection: InsightsSystemDetectionSettingsInput;
533
+ }
534
+ export interface InsightsStorageConnection {
535
+ reachable: boolean;
536
+ pingLatencyMs: number;
537
+ version: string;
538
+ database: string;
539
+ error?: string | null;
540
+ }
541
+ export interface InsightsStorageDisk {
542
+ insightsBytes: number;
543
+ totalBytes: number;
544
+ usedBytes: number;
545
+ availableBytes: number;
546
+ usedPercent: number;
547
+ status: InsightsStorageDiskStatus;
548
+ }
549
+ export interface InsightsStorageMemory {
550
+ processRssBytes: number;
551
+ cgroupUsedBytes: number;
552
+ /** 0 means no limit. */
553
+ cgroupTotalBytes: number;
554
+ uptimeSeconds: number;
555
+ }
556
+ export interface InsightsStorageQuery {
557
+ elapsedSeconds: number;
558
+ user: string;
559
+ memoryBytes: number;
560
+ query: string;
561
+ finishedAt?: string | null;
562
+ }
563
+ export interface InsightsStorageQueries {
564
+ active: number;
565
+ longestSeconds: number;
566
+ peakMemoryBytes: number;
567
+ items: InsightsStorageQuery[];
568
+ recentHeaviest: InsightsStorageQuery[];
569
+ recentLatest: InsightsStorageQuery[];
570
+ }
571
+ export interface InsightsStorageTable {
572
+ name: string;
573
+ rows: number;
574
+ bytesOnDisk: number;
575
+ activeParts: number;
576
+ }
577
+ export interface InsightsStorageWritePressure {
578
+ unfinishedMutations: number;
579
+ activeParts: number;
580
+ }
581
+ export interface InsightsStorageWriteback {
582
+ flushIntervalSeconds: number;
583
+ everFlushed: boolean;
584
+ lastFlushOk: boolean;
585
+ lastFlushAt?: string | null;
586
+ lastFlushError?: string | null;
587
+ }
588
+ export interface InsightsStorageHealth {
589
+ checkedAt: string;
590
+ status: InsightsStorageHealthStatus;
591
+ connection: InsightsStorageConnection;
592
+ disk: InsightsStorageDisk;
593
+ memory: InsightsStorageMemory;
594
+ queries: InsightsStorageQueries;
595
+ tables: InsightsStorageTable[];
596
+ writePressure: InsightsStorageWritePressure;
597
+ writeback: InsightsStorageWriteback;
598
+ }
@@ -6,6 +6,7 @@ export declare enum InstrumentationRuleType {
6
6
  HeadersCollection = "HeadersCollection",
7
7
  PayloadCollection = "PayloadCollection",
8
8
  CustomInstrumentation = "CustomInstrumentation",
9
+ NetworkMetrics = "NetworkMetrics",
9
10
  UnknownType = "UnknownType"
10
11
  }
11
12
  export interface InstrumentationRule {
@@ -246,6 +246,20 @@ export interface InstrumentationReport {
246
246
  state: string;
247
247
  /** WorkloadReport.current.instrumented */
248
248
  instrumented?: boolean | null;
249
+ /**
250
+ * WorkloadReport.desired.mode — WHO instruments this workload: `automatic` (Odigos
251
+ * applies and repairs it) or `manual` (the customer applies it themselves, in their
252
+ * own IaC, and Odigos observes the result). Null when the workload's type is not
253
+ * enabled for instrumentation in any mode, so "not applicable" is distinguishable
254
+ * from either mode.
255
+ *
256
+ * It changes what a status MEANS rather than adding detail to it. An enabled,
257
+ * uninstrumented workload is Odigos still working on it in automatic mode and
258
+ * Odigos waiting for the CUSTOMER in manual mode — the same state with opposite
259
+ * implications for who has to act, so copy that ignores this tells half of all
260
+ * cloud-connector users the wrong thing.
261
+ */
262
+ mode?: string | null;
249
263
  /** WorkloadReport.desired.sdkType when advertised (e.g. "opentelemetry"). */
250
264
  sdkType?: string | null;
251
265
  progressStage?: string | null;
@@ -281,3 +295,50 @@ export interface InstrumentationReportIssue {
281
295
  since?: string | null;
282
296
  transient?: boolean | null;
283
297
  }
298
+ /**
299
+ * How to instrument one workload, as the connector rendered it.
300
+ *
301
+ * This is the other half of manual mode. `InstrumentationReport.mode === 'manual'` says the
302
+ * customer is the one who applies instrumentation; this says WHAT to apply, for the workload in
303
+ * front of them, with the endpoint / service name / region already filled in.
304
+ *
305
+ * Everything here is display-ready text. The kit deliberately knows nothing about the mechanics of
306
+ * the change — no environment-variable merge directions, no volumes, no sidecars, no layer ARNs.
307
+ * The connector computes the change from the same recipes it uses to JUDGE the workload
308
+ * afterwards, so anything the kit re-derived would be a second implementation, free to disagree
309
+ * with the one that decides whether the customer's deployment is reported as drifted.
310
+ */
311
+ export interface InstrumentationInstructions {
312
+ serviceName: string;
313
+ kind: string;
314
+ region?: string | null;
315
+ /** `automatic` | `manual` — why the customer is being shown this at all. */
316
+ mode: string;
317
+ /** Never empty: a connector with no per-tool snippet for a type still describes the change. */
318
+ documents: InstructionDocument[];
319
+ notes: string[];
320
+ updatedAt: string;
321
+ }
322
+ /** The change rendered for one delivery tool. */
323
+ export interface InstructionDocument {
324
+ id: string;
325
+ /** terraform | cloudformation | bicep | aws-cli | gcloud | az-cli | manual — keys the chooser. */
326
+ variant: string;
327
+ variantLabel: string;
328
+ title: string;
329
+ description: string;
330
+ /** Ordered instructions shown above the snippet. The snippet alone never says where it goes. */
331
+ steps: string[];
332
+ /** Syntax hint for the code block: json | yaml | hcl | shell | text. */
333
+ format: string;
334
+ /** Fully rendered for this workload — render verbatim, never substitute into it. */
335
+ content: string;
336
+ /** Blanks the connector genuinely could not fill. Absent when nothing is left to supply. */
337
+ unresolved?: InstructionInput[] | null;
338
+ }
339
+ /** One blank left in a document for the customer to fill in. */
340
+ export interface InstructionInput {
341
+ /** The placeholder exactly as it appears in `content`, e.g. `<YOUR_CONTAINER>`. */
342
+ placeholder: string;
343
+ description: string;
344
+ }
package/lib/types.js CHANGED
@@ -1 +1 @@
1
- export{c3 as ActionCategoryTypes,bt as ActionKeyTypes,bu as ActionType,fz as AgentInjectedReason,fA as BooleanOperation,ca as CloudConnectorFeatureKey,ag as CodeAttributesKeyTypes,fB as ConditionType,bb as Crud,aa as CustomInstrumentationsKeyTypes,cL as DesiredConditionActionItemType,cp as DesiredStateProgress,fC as DestinationTypes,bc as EntityTypes,bK as ExtractionDataFormat,n as FieldTypes,ac as GolangCustomProbe,ae as HeadersCollectionKeyTypes,y as InputTypes,fD as InstallationMethod,fE as InstallationStatus,a9 as InstrumentationRuleType,fF as IntrumentationStatus,ab as JavaCustomProbe,fG as JsonOperation,bI as K8sAttributesFrom,bC as K8sResourceKind,fH as K8sWorkloadContainerAgentConfigTracesHeadSamplingSpanMetricsMode,fI as ListDirection,fJ as NumberOperation,fK as OtelDistroName,fL as OtherEntityTypes,af as PayloadCollectionKeyTypes,ad as PhpCustomProbe,P as PlatformType,fM as PodContainerLifecycleStatus,fN as PodContainerStatus,fO as PodPhase,fP as Profile,M as ProgrammingLanguages,cX as RecommendationApplyExampleType,cY as RecommendationRemediationType,cW as RecommendationState,fQ as RecommendationType,fR as SIGNAL_KEY_TO_TYPE,fS as SIGNAL_TYPE_TO_KEY,fT as SignalKey,bz as SignalType,fU as SortDirection,S as StatusType,fV as StringOperation,b as Tier,fW as WorkloadRolloutReason,fe as WorkloadRolloutStatus}from"./chunks/ui-components-Ci-Vq1Dl.js";import"react/jsx-runtime";import"styled-components";import"./icons.js";import"zustand";import"react";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"react-dom";import"prism-react-renderer";import"zustand/middleware";import"react-error-boundary";import"virtua";
1
+ export{c7 as ActionCategoryTypes,bx as ActionKeyTypes,by as ActionType,hi as AgentInjectedReason,hj as BooleanOperation,cd as CloudConnectorFeatureKey,an as CodeAttributesKeyTypes,hk as ConditionType,bd as Crud,ah as CustomInstrumentationsKeyTypes,cP as DesiredConditionActionItemType,cs as DesiredStateProgress,hl as DestinationTypes,be as EntityTypes,bO as ExtractionDataFormat,q as FieldTypes,aj as GolangCustomProbe,al as HeadersCollectionKeyTypes,K as InputTypes,hm as InsightsAnomalyClassFindingKind,g4 as InsightsAnomalyResolution,g0 as InsightsAnomalyStatus,gc as InsightsBaselineLearningPhase,g3 as InsightsBulkResolution,gf as InsightsDeviationClass,bm as InsightsEntityTypes,g1 as InsightsFindingKind,gi as InsightsLearningConditionType,gh as InsightsLearningMode,gg as InsightsPolicyScope,g8 as InsightsRuleMode,ge as InsightsSampleReason,g2 as InsightsSeverity,gl as InsightsStorageDiskStatus,hn as InsightsStorageHealthStatus,ho as InsightsTransactionKind,f$ as InsightsViolationStatus,hp as InstallationMethod,hq as InstallationStatus,ag as InstrumentationRuleType,hr as IntrumentationStatus,ai as JavaCustomProbe,hs as JsonOperation,bM as K8sAttributesFrom,bG as K8sResourceKind,ht as K8sWorkloadContainerAgentConfigTracesHeadSamplingSpanMetricsMode,hu as ListDirection,hv as NumberOperation,hw as OtelDistroName,hx as OtherEntityTypes,am as PayloadCollectionKeyTypes,ak as PhpCustomProbe,P as PlatformType,hy as PodContainerLifecycleStatus,hz as PodContainerStatus,hA as PodPhase,hB as Profile,$ as ProgrammingLanguages,c$ as RecommendationApplyExampleType,d0 as RecommendationRemediationType,c_ as RecommendationState,hC as RecommendationType,hD as SIGNAL_KEY_TO_TYPE,hE as SIGNAL_TYPE_TO_KEY,hF as SignalKey,bD as SignalType,hG as SortDirection,S as StatusType,hH as StringOperation,b as Tier,hI as WorkloadRolloutReason,gH as WorkloadRolloutStatus}from"./chunks/ui-components-D8rTJS7r.js";import"react/jsx-runtime";import"styled-components";import"./icons.js";import"zustand";import"react";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"react-dom";import"prism-react-renderer";import"zustand/middleware";import"react-error-boundary";import"virtua";
package/lib/visuals.js CHANGED
@@ -1 +1 @@
1
- export{fX as VISUAL_ODIGOS_LOGO_HEIGHT,fY as VISUAL_ODIGOS_LOGO_WIDTH,V as VisualGreenRings,fZ as VisualOdigosLogo,dS as VisualPurpleRings}from"./chunks/ui-components-Ci-Vq1Dl.js";import"react/jsx-runtime";import"styled-components";import"./icons.js";import"zustand";import"react";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"react-dom";import"prism-react-renderer";import"zustand/middleware";import"react-error-boundary";import"virtua";
1
+ export{hJ as VISUAL_ODIGOS_LOGO_HEIGHT,hK as VISUAL_ODIGOS_LOGO_WIDTH,V as VisualGreenRings,hL as VisualOdigosLogo,eW as VisualPurpleRings}from"./chunks/ui-components-D8rTJS7r.js";import"react/jsx-runtime";import"styled-components";import"./icons.js";import"zustand";import"react";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"react-dom";import"prism-react-renderer";import"zustand/middleware";import"react-error-boundary";import"virtua";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odigos/ui-kit",
3
- "version": "0.0.286",
3
+ "version": "0.0.288",
4
4
  "author": "Odigos",
5
5
  "license": "MIT",
6
6
  "repository": {