@kortyx/telemetry-contracts 0.17.1 → 0.18.0

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,30 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.18.0](https://github.com/kortyx-io/kortyx/compare/telemetry-contracts-v0.17.2...telemetry-contracts-v0.18.0) (2026-10-16)
4
+
5
+
6
+ ### Features
7
+
8
+ * **evals:** configurable deadlines and original error visibility ([#354](https://github.com/kortyx-io/kortyx/issues/354)) ([7dde173](https://github.com/kortyx-io/kortyx/commit/7dde173b54eb37a2d28ff28ac342a3333e5ed902))
9
+ * **studio:** standardize tables, filters and column behavior ([#353](https://github.com/kortyx-io/kortyx/issues/353)) ([c662e59](https://github.com/kortyx-io/kortyx/commit/c662e59d814a6a9f12c709595968ee7b1ece3191))
10
+
11
+
12
+ ### Dependencies
13
+
14
+ * The following workspace dependencies were updated
15
+ * dependencies
16
+ * @kortyx/prompts bumped to 0.2.2
17
+ * @kortyx/core bumped to 0.15.0
18
+
19
+ ## [0.17.2](https://github.com/kortyx-io/kortyx/compare/telemetry-contracts-v0.17.1...telemetry-contracts-v0.17.2) (2026-10-13)
20
+
21
+
22
+ ### Dependencies
23
+
24
+ * The following workspace dependencies were updated
25
+ * dependencies
26
+ * @kortyx/prompts bumped to 0.2.1
27
+
3
28
  ## [0.17.1](https://github.com/kortyx-io/kortyx/compare/telemetry-contracts-v0.17.0...telemetry-contracts-v0.17.1) (2026-10-13)
4
29
 
5
30
 
package/README.md CHANGED
@@ -1,3 +1,21 @@
1
1
  # @kortyx/telemetry-contracts
2
2
 
3
3
  Shared Zod wire contracts and fixtures for Kortyx telemetry producers and consumers.
4
+
5
+ Studio tables share `TableFiltersSchema`, `TableFilterRuleSchema`, the field
6
+ registries and validation/matching helpers. Groups select `match: "all" | "any"`;
7
+ values within a rule are alternatives. Text comparison is case-insensitive and
8
+ literal (wildcards are not query syntax). Negative comparisons require a value;
9
+ `missing` explicitly selects absent data. Pass field definitions to the matcher
10
+ so date equality compares instants, while text equality compares literal text.
11
+
12
+ Limits: 32 rules, 30 values per rule, 512 characters per string, 32 KiB serialized
13
+ filters. Dates require ISO timestamps with an offset. Unknown fields, unsupported
14
+ operators, malformed values and reversed ranges fail validation. Legacy Studio
15
+ query aliases remain readable through `readStudioTableFilters`.
16
+
17
+ Column registries include execution identity, environment, completion timestamps,
18
+ prompt assignments and evaluation judge metadata. `tablePassRate` returns a
19
+ percentage of recorded passed/failed/error cases (unrun cases are excluded), or
20
+ no value when none finished. `tableQueueMs` returns elapsed queue milliseconds
21
+ only when a valid start timestamp is recorded.
package/dist/index.d.ts CHANGED
@@ -41,6 +41,11 @@ type DiagnosticContent = z.infer<typeof DiagnosticContentSchema>;
41
41
  type DiagnosticNote = z.infer<typeof DiagnosticNoteSchema>;
42
42
  declare const DiagnosticCorrelationSchema: z.ZodObject<{
43
43
  runId: z.ZodOptional<z.ZodString>;
44
+ evaluationId: z.ZodOptional<z.ZodString>;
45
+ suiteRunId: z.ZodOptional<z.ZodString>;
46
+ caseId: z.ZodOptional<z.ZodString>;
47
+ repetition: z.ZodOptional<z.ZodString>;
48
+ phase: z.ZodOptional<z.ZodString>;
44
49
  workflowId: z.ZodOptional<z.ZodString>;
45
50
  nodeId: z.ZodOptional<z.ZodString>;
46
51
  sessionId: z.ZodOptional<z.ZodString>;
@@ -66,6 +71,11 @@ declare const DiagnosticManifestSchema: z.ZodObject<{
66
71
  }, z.core.$strict>;
67
72
  correlation: z.ZodObject<{
68
73
  runId: z.ZodOptional<z.ZodString>;
74
+ evaluationId: z.ZodOptional<z.ZodString>;
75
+ suiteRunId: z.ZodOptional<z.ZodString>;
76
+ caseId: z.ZodOptional<z.ZodString>;
77
+ repetition: z.ZodOptional<z.ZodString>;
78
+ phase: z.ZodOptional<z.ZodString>;
69
79
  workflowId: z.ZodOptional<z.ZodString>;
70
80
  nodeId: z.ZodOptional<z.ZodString>;
71
81
  sessionId: z.ZodOptional<z.ZodString>;
@@ -120,6 +130,11 @@ declare const DiagnosticResponseSchema: z.ZodObject<{
120
130
  }, z.core.$strict>;
121
131
  correlation: z.ZodObject<{
122
132
  runId: z.ZodOptional<z.ZodString>;
133
+ evaluationId: z.ZodOptional<z.ZodString>;
134
+ suiteRunId: z.ZodOptional<z.ZodString>;
135
+ caseId: z.ZodOptional<z.ZodString>;
136
+ repetition: z.ZodOptional<z.ZodString>;
137
+ phase: z.ZodOptional<z.ZodString>;
123
138
  workflowId: z.ZodOptional<z.ZodString>;
124
139
  nodeId: z.ZodOptional<z.ZodString>;
125
140
  sessionId: z.ZodOptional<z.ZodString>;
@@ -517,6 +532,9 @@ declare const StudioToolSchema: z.ZodObject<{
517
532
  type WorkflowTool = z.infer<typeof WorkflowToolSchema>;
518
533
  type StudioTool = z.infer<typeof StudioToolSchema>;
519
534
 
535
+ /** Data-only graph capture. Getters and application toJSON methods are never invoked. */
536
+ declare function captureDiagnosticContent(error: unknown, project?: (error: unknown) => Record<string, unknown> | null): DiagnosticContent | null;
537
+
520
538
  declare const PromptCategorySchema: z.ZodObject<{
521
539
  id: z.ZodUUID;
522
540
  name: z.ZodString;
@@ -1247,6 +1265,122 @@ type StudioUpdateStatus = z.infer<typeof StudioUpdateStatusSchema>;
1247
1265
  declare function newerStudioVersion(candidate: string, current: string): boolean;
1248
1266
  declare function studioUpdateRunning(operation: StudioUpdateOperation | null): boolean;
1249
1267
 
1268
+ declare const TableFilterRuleSchema: z.ZodObject<{
1269
+ field: z.ZodString;
1270
+ operator: z.ZodEnum<{
1271
+ contains: "contains";
1272
+ notContains: "notContains";
1273
+ is: "is";
1274
+ isNot: "isNot";
1275
+ gt: "gt";
1276
+ gte: "gte";
1277
+ lt: "lt";
1278
+ lte: "lte";
1279
+ between: "between";
1280
+ present: "present";
1281
+ missing: "missing";
1282
+ }>;
1283
+ values: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
1284
+ }, z.core.$strict>;
1285
+ declare const TableFiltersSchema: z.ZodObject<{
1286
+ match: z.ZodEnum<{
1287
+ any: "any";
1288
+ all: "all";
1289
+ }>;
1290
+ rules: z.ZodArray<z.ZodObject<{
1291
+ field: z.ZodString;
1292
+ operator: z.ZodEnum<{
1293
+ contains: "contains";
1294
+ notContains: "notContains";
1295
+ is: "is";
1296
+ isNot: "isNot";
1297
+ gt: "gt";
1298
+ gte: "gte";
1299
+ lt: "lt";
1300
+ lte: "lte";
1301
+ between: "between";
1302
+ present: "present";
1303
+ missing: "missing";
1304
+ }>;
1305
+ values: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
1306
+ }, z.core.$strict>>;
1307
+ }, z.core.$strict>;
1308
+ type TableFilterRule = z.infer<typeof TableFilterRuleSchema>;
1309
+ type TableFilters = z.infer<typeof TableFiltersSchema>;
1310
+ type TableFilterKind = "text" | "enum" | "number" | "date" | "boolean";
1311
+ type TableFilterValue = string | number | boolean | null | undefined;
1312
+ type TableFilterDefinition = {
1313
+ key: string;
1314
+ label: string;
1315
+ kind: TableFilterKind;
1316
+ options?: readonly string[];
1317
+ unit?: string;
1318
+ };
1319
+ declare const EMPTY_TABLE_FILTERS: TableFilters;
1320
+ declare const filterOperators: (kind: TableFilterKind) => TableFilterRule["operator"][];
1321
+ declare function validateTableFilters(filters: TableFilters, fields: readonly TableFilterDefinition[]): {
1322
+ match: "any" | "all";
1323
+ rules: {
1324
+ field: string;
1325
+ operator: "contains" | "notContains" | "is" | "isNot" | "gt" | "gte" | "lt" | "lte" | "between" | "present" | "missing";
1326
+ values: (string | number | boolean)[];
1327
+ }[];
1328
+ };
1329
+ declare function matchesTableRule(value: TableFilterValue | readonly TableFilterValue[], rule: TableFilterRule, kind?: TableFilterKind): boolean;
1330
+ declare function matchesTableFilters(filters: TableFilters, read: (key: string) => TableFilterValue | readonly TableFilterValue[], fields?: readonly TableFilterDefinition[]): boolean;
1331
+ declare const STUDIO_TABLE_FIELDS: {
1332
+ runs: TableFilterDefinition[];
1333
+ sessions: TableFilterDefinition[];
1334
+ interrupts: TableFilterDefinition[];
1335
+ };
1336
+ type StudioTableResource = keyof typeof STUDIO_TABLE_FIELDS;
1337
+ /** Existing links/views remain valid; new edits replace these aliases atomically. */
1338
+ declare const LEGACY_TABLE_FILTERS: {
1339
+ readonly toolName: readonly ["toolName", "contains"];
1340
+ readonly toolOutcome: readonly ["toolOutcome", "is"];
1341
+ readonly toolMode: readonly ["toolMode", "is"];
1342
+ readonly error: readonly ["hasError", "is"];
1343
+ readonly interrupt: readonly ["hasInterrupt", "is"];
1344
+ readonly checkpoint: readonly ["hasCheckpoint", "is"];
1345
+ readonly fork: readonly ["hasFork", "is"];
1346
+ readonly transition: readonly ["transitionIds", "is"];
1347
+ readonly status: readonly ["status", "is"];
1348
+ readonly provider: readonly ["provider", "is"];
1349
+ readonly workflow: readonly ["workflowIds", "is"];
1350
+ readonly version: readonly ["versions", "is"];
1351
+ readonly path: readonly ["path", "is"];
1352
+ readonly session: readonly ["sessionId", "contains"];
1353
+ readonly model: readonly ["models", "contains"];
1354
+ readonly result: readonly ["result", "contains"];
1355
+ readonly feedback: readonly ["feedback", "is"];
1356
+ readonly tool: readonly ["hasTool", "is"];
1357
+ readonly user: readonly ["userId", "contains"];
1358
+ readonly tenant: readonly ["tenantId", "contains"];
1359
+ readonly tags: readonly ["tags", "contains"];
1360
+ readonly node: readonly ["nodeId", "contains"];
1361
+ readonly resolver: readonly ["resolvedBy", "contains"];
1362
+ readonly outcome: readonly ["resumeOutcome", "is"];
1363
+ readonly type: readonly ["type", "is"];
1364
+ readonly minCost: readonly ["cost", "gte"];
1365
+ readonly maxCost: readonly ["cost", "lte"];
1366
+ readonly minTokens: readonly ["tokens", "gte"];
1367
+ readonly maxTokens: readonly ["tokens", "lte"];
1368
+ readonly minDuration: readonly ["durationMs", "gte"];
1369
+ readonly maxDuration: readonly ["durationMs", "lte"];
1370
+ readonly minAge: readonly ["age", "gte"];
1371
+ readonly maxAge: readonly ["age", "lte"];
1372
+ };
1373
+ declare function readStudioTableFilters(query: Record<string, string | undefined>, resource: StudioTableResource): TableFilters;
1374
+ declare const PROMPT_TABLE_FILTER_FIELDS: TableFilterDefinition[];
1375
+ declare const EVALUATION_TABLE_FILTER_FIELDS: TableFilterDefinition[];
1376
+ /** Completed attempt outcomes; cancelled and unrun attempts are excluded. */
1377
+ declare function tablePassRate(counts: {
1378
+ passed: number;
1379
+ failed: number;
1380
+ error: number;
1381
+ } | null | undefined): number;
1382
+ declare function tableQueueMs(createdAt: string, startedAt: string | null | undefined): number;
1383
+
1250
1384
  type StudioWorkflowCall = {
1251
1385
  id: string;
1252
1386
  invocationId: string;
@@ -3618,4 +3752,4 @@ type StudioWorkflowsResponse = z.infer<typeof StudioWorkflowsResponseSchema>;
3618
3752
  type StudioCatalogsResponse = z.infer<typeof StudioCatalogsResponseSchema>;
3619
3753
  type StudioContextResponse = z.infer<typeof StudioContextResponseSchema>;
3620
3754
 
3621
- export { ClearScoreResponseSchema, ClearUserFeedbackRequestSchema, DIAGNOSTIC_LIMITS, type DiagnosticContent, DiagnosticContentSchema, DiagnosticCorrelationSchema, type DiagnosticManifest, DiagnosticManifestSchema, type DiagnosticNote, DiagnosticNoteSchema, DiagnosticPartSchema, type DiagnosticResponse, DiagnosticResponseSchema, type EnsureWorkflowTopologyRequest, EnsureWorkflowTopologyRequestSchema, type EnsureWorkflowTopologyResponse, EnsureWorkflowTopologyResponseSchema, FEEDBACK_FILTERS, FeedbackReasonSchema, type FeedbackSummary, FeedbackSummarySchema, type KortyxTelemetryEvent, type KortyxTelemetryEventType, type KortyxTelemetryService, type KortyxWorkflowTopologyEdge, type KortyxWorkflowTopologyNode, type KortyxWorkflowTopologyTransition, PromptAssetSchema, PromptAssignmentSchema, type PromptBundle, PromptBundleSchema, type PromptCategory, PromptCategorySchema, type PromptDetail, PromptDetailSchema, type PromptEvidence, PromptEvidenceSchema, type PromptGroup, PromptGroupSchema, type PromptLibrary, PromptLibrarySchema, type PromptMutation, PromptMutationSchema, PromptPolicySchema, type PromptSelection, PromptSelectionSchema, PromptStoredVersionSchema, type PromptTransferRequest, PromptTransferRequestSchema, PromptUsageSchema, ReviewVerdictSchema, STUDIO_API_PROTOCOL_VERSION, STUDIO_TIME_RANGES, type StudioCatalogsResponse, StudioCatalogsResponseSchema, type StudioChange, type StudioChangeResource, StudioChangeResourceSchema, StudioChangeSchema, type StudioContextResponse, StudioContextResponseSchema, type StudioCostSummary, StudioCostSummarySchema, type StudioDetailEvent, StudioDetailEventSchema, type StudioInterrupt, type StudioInterruptDetailResponse, StudioInterruptDetailResponseSchema, type StudioInterruptInteractionMode, StudioInterruptInteractionModeSchema, type StudioInterruptOption, StudioInterruptOptionSchema, StudioInterruptSchema, type StudioInterruptStatus, StudioInterruptStatusSchema, type StudioInterruptType, StudioInterruptTypeSchema, StudioInterruptValueSchema, type StudioInterruptsResponse, StudioInterruptsResponseSchema, type StudioMetric, StudioMetricSchema, type StudioPricingSource, StudioPricingSourceSchema, type StudioPricingStatus, StudioPricingStatusSchema, type StudioRelease, StudioReleaseDeploymentSchema, StudioReleaseSchema, StudioReleaseVersionSchema, type StudioResumeOutcome, StudioResumeOutcomeSchema, type StudioReviewRequest, StudioReviewRequestSchema, type StudioRun, type StudioRunDetailResponse, StudioRunDetailResponseSchema, StudioRunSchema, type StudioRunStatus, StudioRunStatusSchema, type StudioRunsResponse, StudioRunsResponseSchema, type StudioScore, StudioScoreResponseSchema, StudioScoreSchema, type StudioSession, type StudioSessionDetailResponse, StudioSessionDetailResponseSchema, StudioSessionSchema, type StudioSessionsResponse, StudioSessionsResponseSchema, type StudioTimeRange, type StudioTimeRangeContext, StudioTimeRangeContextSchema, StudioTimeRangeQuerySchema, type StudioTimeRangeResolution, StudioTimeRangeSchema, type StudioTool, StudioToolSchema, type StudioUpdateOperation, StudioUpdateOperationSchema, type StudioUpdateSettings, StudioUpdateSettingsSchema, type StudioUpdateStatus, StudioUpdateStatusSchema, type StudioWorkflow, type StudioWorkflowCall, type StudioWorkflowHealth, StudioWorkflowHealthSchema, type StudioWorkflowInternalEdge, StudioWorkflowInternalEdgeSchema, type StudioWorkflowNode, StudioWorkflowNodeSchema, StudioWorkflowSchema, type StudioWorkflowTransition, StudioWorkflowTransitionSchema, type StudioWorkflowsResponse, StudioWorkflowsResponseSchema, TELEMETRY_EVENT_TYPES, type TelemetryEventBatch, type TelemetryEventBatchResponse, TelemetryEventBatchResponseSchema, TelemetryEventBatchSchema, TelemetryEventSchema, TelemetryEventTypeSchema, type TelemetryPricingHint, TelemetryPricingHintSchema, type TelemetryPricingLineItem, TelemetryPricingLineItemSchema, type TelemetryPricingSource, TelemetryPricingSourceSchema, type TelemetryPricingUnit, TelemetryPricingUnitSchema, type TelemetryPricingUsageType, TelemetryPricingUsageTypeSchema, TelemetryServiceSchema, type TelemetryUnitPrice, TelemetryUnitPriceSchema, type TelemetryUsageItem, TelemetryUsageItemSchema, ToolDiscoverySchema, ToolObservationSchema, ToolOutcomeSchema, type UserFeedbackRequest, UserFeedbackRequestSchema, type WorkflowTool, WorkflowToolSchema, WorkflowTopologyCallSchema, WorkflowTopologyEdgeSchema, WorkflowTopologyNodeSchema, WorkflowTopologyTransitionSchema, isPrivateDiagnosticField, newerStudioVersion, projectWorkflowCalls, redactDiagnosticContent, redactDiagnosticText, resolveStudioInterruptStatus, resolveStudioTimeRange, studioUpdateRunning, summarizeDiagnostic, summarizeUserFeedback };
3755
+ export { ClearScoreResponseSchema, ClearUserFeedbackRequestSchema, DIAGNOSTIC_LIMITS, type DiagnosticContent, DiagnosticContentSchema, DiagnosticCorrelationSchema, type DiagnosticManifest, DiagnosticManifestSchema, type DiagnosticNote, DiagnosticNoteSchema, DiagnosticPartSchema, type DiagnosticResponse, DiagnosticResponseSchema, EMPTY_TABLE_FILTERS, EVALUATION_TABLE_FILTER_FIELDS, type EnsureWorkflowTopologyRequest, EnsureWorkflowTopologyRequestSchema, type EnsureWorkflowTopologyResponse, EnsureWorkflowTopologyResponseSchema, FEEDBACK_FILTERS, FeedbackReasonSchema, type FeedbackSummary, FeedbackSummarySchema, type KortyxTelemetryEvent, type KortyxTelemetryEventType, type KortyxTelemetryService, type KortyxWorkflowTopologyEdge, type KortyxWorkflowTopologyNode, type KortyxWorkflowTopologyTransition, LEGACY_TABLE_FILTERS, PROMPT_TABLE_FILTER_FIELDS, PromptAssetSchema, PromptAssignmentSchema, type PromptBundle, PromptBundleSchema, type PromptCategory, PromptCategorySchema, type PromptDetail, PromptDetailSchema, type PromptEvidence, PromptEvidenceSchema, type PromptGroup, PromptGroupSchema, type PromptLibrary, PromptLibrarySchema, type PromptMutation, PromptMutationSchema, PromptPolicySchema, type PromptSelection, PromptSelectionSchema, PromptStoredVersionSchema, type PromptTransferRequest, PromptTransferRequestSchema, PromptUsageSchema, ReviewVerdictSchema, STUDIO_API_PROTOCOL_VERSION, STUDIO_TABLE_FIELDS, STUDIO_TIME_RANGES, type StudioCatalogsResponse, StudioCatalogsResponseSchema, type StudioChange, type StudioChangeResource, StudioChangeResourceSchema, StudioChangeSchema, type StudioContextResponse, StudioContextResponseSchema, type StudioCostSummary, StudioCostSummarySchema, type StudioDetailEvent, StudioDetailEventSchema, type StudioInterrupt, type StudioInterruptDetailResponse, StudioInterruptDetailResponseSchema, type StudioInterruptInteractionMode, StudioInterruptInteractionModeSchema, type StudioInterruptOption, StudioInterruptOptionSchema, StudioInterruptSchema, type StudioInterruptStatus, StudioInterruptStatusSchema, type StudioInterruptType, StudioInterruptTypeSchema, StudioInterruptValueSchema, type StudioInterruptsResponse, StudioInterruptsResponseSchema, type StudioMetric, StudioMetricSchema, type StudioPricingSource, StudioPricingSourceSchema, type StudioPricingStatus, StudioPricingStatusSchema, type StudioRelease, StudioReleaseDeploymentSchema, StudioReleaseSchema, StudioReleaseVersionSchema, type StudioResumeOutcome, StudioResumeOutcomeSchema, type StudioReviewRequest, StudioReviewRequestSchema, type StudioRun, type StudioRunDetailResponse, StudioRunDetailResponseSchema, StudioRunSchema, type StudioRunStatus, StudioRunStatusSchema, type StudioRunsResponse, StudioRunsResponseSchema, type StudioScore, StudioScoreResponseSchema, StudioScoreSchema, type StudioSession, type StudioSessionDetailResponse, StudioSessionDetailResponseSchema, StudioSessionSchema, type StudioSessionsResponse, StudioSessionsResponseSchema, type StudioTableResource, type StudioTimeRange, type StudioTimeRangeContext, StudioTimeRangeContextSchema, StudioTimeRangeQuerySchema, type StudioTimeRangeResolution, StudioTimeRangeSchema, type StudioTool, StudioToolSchema, type StudioUpdateOperation, StudioUpdateOperationSchema, type StudioUpdateSettings, StudioUpdateSettingsSchema, type StudioUpdateStatus, StudioUpdateStatusSchema, type StudioWorkflow, type StudioWorkflowCall, type StudioWorkflowHealth, StudioWorkflowHealthSchema, type StudioWorkflowInternalEdge, StudioWorkflowInternalEdgeSchema, type StudioWorkflowNode, StudioWorkflowNodeSchema, StudioWorkflowSchema, type StudioWorkflowTransition, StudioWorkflowTransitionSchema, type StudioWorkflowsResponse, StudioWorkflowsResponseSchema, TELEMETRY_EVENT_TYPES, type TableFilterDefinition, type TableFilterKind, type TableFilterRule, TableFilterRuleSchema, type TableFilterValue, type TableFilters, TableFiltersSchema, type TelemetryEventBatch, type TelemetryEventBatchResponse, TelemetryEventBatchResponseSchema, TelemetryEventBatchSchema, TelemetryEventSchema, TelemetryEventTypeSchema, type TelemetryPricingHint, TelemetryPricingHintSchema, type TelemetryPricingLineItem, TelemetryPricingLineItemSchema, type TelemetryPricingSource, TelemetryPricingSourceSchema, type TelemetryPricingUnit, TelemetryPricingUnitSchema, type TelemetryPricingUsageType, TelemetryPricingUsageTypeSchema, TelemetryServiceSchema, type TelemetryUnitPrice, TelemetryUnitPriceSchema, type TelemetryUsageItem, TelemetryUsageItemSchema, ToolDiscoverySchema, ToolObservationSchema, ToolOutcomeSchema, type UserFeedbackRequest, UserFeedbackRequestSchema, type WorkflowTool, WorkflowToolSchema, WorkflowTopologyCallSchema, WorkflowTopologyEdgeSchema, WorkflowTopologyNodeSchema, WorkflowTopologyTransitionSchema, captureDiagnosticContent, filterOperators, isPrivateDiagnosticField, matchesTableFilters, matchesTableRule, newerStudioVersion, projectWorkflowCalls, readStudioTableFilters, redactDiagnosticContent, redactDiagnosticText, resolveStudioInterruptStatus, resolveStudioTimeRange, studioUpdateRunning, summarizeDiagnostic, summarizeUserFeedback, tablePassRate, tableQueueMs, validateTableFilters };