@anvia/studio 0.7.3 → 0.7.5

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 (75) hide show
  1. package/dist/index.d.ts +17 -1
  2. package/dist/index.js +66 -12
  3. package/dist/index.js.map +1 -1
  4. package/dist/ui/assets/PathIcon-DX1w_Nk9.js +2 -0
  5. package/dist/ui/assets/PathIcon-DX1w_Nk9.js.map +1 -0
  6. package/dist/ui/assets/PlayIcon-Culan3xL.js +2 -0
  7. package/dist/ui/assets/PlayIcon-Culan3xL.js.map +1 -0
  8. package/dist/ui/assets/RefreshIcon-B3w42HZJ.js +2 -0
  9. package/dist/ui/assets/RefreshIcon-B3w42HZJ.js.map +1 -0
  10. package/dist/ui/assets/agents-page-B8Tw2e11.js +2 -0
  11. package/dist/ui/assets/agents-page-B8Tw2e11.js.map +1 -0
  12. package/dist/ui/assets/badge-BH7gz3tB.js +2 -0
  13. package/dist/ui/assets/badge-BH7gz3tB.js.map +1 -0
  14. package/dist/ui/assets/evals-page-ClfscpGe.js +2 -0
  15. package/dist/ui/assets/evals-page-ClfscpGe.js.map +1 -0
  16. package/dist/ui/assets/format-C9HPGfkW.js +2 -0
  17. package/dist/ui/assets/format-C9HPGfkW.js.map +1 -0
  18. package/dist/ui/assets/index-C3lio5tU.css +1 -0
  19. package/dist/ui/assets/index-COJ_MozM.js +54 -0
  20. package/dist/ui/assets/index-COJ_MozM.js.map +1 -0
  21. package/dist/ui/assets/knowledge-page-Dt81OgNg.js +2 -0
  22. package/dist/ui/assets/knowledge-page-Dt81OgNg.js.map +1 -0
  23. package/dist/ui/assets/mcps-page-Bm4k-j7D.js +2 -0
  24. package/dist/ui/assets/mcps-page-Bm4k-j7D.js.map +1 -0
  25. package/dist/ui/assets/memory-page-CxinVNJm.js +2 -0
  26. package/dist/ui/assets/memory-page-CxinVNJm.js.map +1 -0
  27. package/dist/ui/assets/pipelines-page-CIAhfO0w.js +8 -0
  28. package/dist/ui/assets/pipelines-page-CIAhfO0w.js.map +1 -0
  29. package/dist/ui/assets/{renderers-BwJXUlFT.js → renderers-CIC1VVRv.js} +3 -3
  30. package/dist/ui/assets/{renderers-BwJXUlFT.js.map → renderers-CIC1VVRv.js.map} +1 -1
  31. package/dist/ui/assets/sessions-page-DqKjZ6zC.js +2 -0
  32. package/dist/ui/assets/sessions-page-DqKjZ6zC.js.map +1 -0
  33. package/dist/ui/assets/status-page-N-P1HQHB.js +2 -0
  34. package/dist/ui/assets/status-page-N-P1HQHB.js.map +1 -0
  35. package/dist/ui/assets/tools-page-B0Y9wa_k.js +2 -0
  36. package/dist/ui/assets/tools-page-B0Y9wa_k.js.map +1 -0
  37. package/dist/ui/assets/trace-browser-BRkv3nwQ.js +10 -0
  38. package/dist/ui/assets/trace-browser-BRkv3nwQ.js.map +1 -0
  39. package/dist/ui/assets/transcript-item-goNEUTqW.js +3 -0
  40. package/dist/ui/assets/transcript-item-goNEUTqW.js.map +1 -0
  41. package/dist/ui/index.html +3 -2
  42. package/package.json +11 -10
  43. package/dist/ui/assets/ArrowClockwise.es-B767Y26S.js +0 -2
  44. package/dist/ui/assets/ArrowClockwise.es-B767Y26S.js.map +0 -1
  45. package/dist/ui/assets/Path.es-Bi7ZsAUQ.js +0 -2
  46. package/dist/ui/assets/Path.es-Bi7ZsAUQ.js.map +0 -1
  47. package/dist/ui/assets/Play.es-DF0Ixc84.js +0 -2
  48. package/dist/ui/assets/Play.es-DF0Ixc84.js.map +0 -1
  49. package/dist/ui/assets/agents-page-Cs0-55-x.js +0 -2
  50. package/dist/ui/assets/agents-page-Cs0-55-x.js.map +0 -1
  51. package/dist/ui/assets/badge-Bqf5Z3q8.js +0 -2
  52. package/dist/ui/assets/badge-Bqf5Z3q8.js.map +0 -1
  53. package/dist/ui/assets/evals-page-D55W9yXv.js +0 -2
  54. package/dist/ui/assets/evals-page-D55W9yXv.js.map +0 -1
  55. package/dist/ui/assets/index-BiAp2ncG.js +0 -54
  56. package/dist/ui/assets/index-BiAp2ncG.js.map +0 -1
  57. package/dist/ui/assets/index-DZcBJXlw.css +0 -1
  58. package/dist/ui/assets/knowledge-page-KPYrmPAs.js +0 -2
  59. package/dist/ui/assets/knowledge-page-KPYrmPAs.js.map +0 -1
  60. package/dist/ui/assets/mcps-page-xalzdZ7T.js +0 -2
  61. package/dist/ui/assets/mcps-page-xalzdZ7T.js.map +0 -1
  62. package/dist/ui/assets/memory-page-BEbFafrw.js +0 -2
  63. package/dist/ui/assets/memory-page-BEbFafrw.js.map +0 -1
  64. package/dist/ui/assets/pipelines-page-Cy31Bq44.js +0 -8
  65. package/dist/ui/assets/pipelines-page-Cy31Bq44.js.map +0 -1
  66. package/dist/ui/assets/sessions-page-CR4djaAo.js +0 -2
  67. package/dist/ui/assets/sessions-page-CR4djaAo.js.map +0 -1
  68. package/dist/ui/assets/status-page-BMbPe0L7.js +0 -2
  69. package/dist/ui/assets/status-page-BMbPe0L7.js.map +0 -1
  70. package/dist/ui/assets/tools-page-CBgM-urE.js +0 -2
  71. package/dist/ui/assets/tools-page-CBgM-urE.js.map +0 -1
  72. package/dist/ui/assets/trace-browser-DW0EW-Wn.js +0 -10
  73. package/dist/ui/assets/trace-browser-DW0EW-Wn.js.map +0 -1
  74. package/dist/ui/assets/transcript-item-BAHSOoZ8.js +0 -3
  75. package/dist/ui/assets/transcript-item-BAHSOoZ8.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -158,9 +158,25 @@ type StudioEvalSuiteConfig = {
158
158
  description?: string;
159
159
  caseCount: number;
160
160
  metricNames: string[];
161
+ casePreviewCount?: number;
162
+ casePreviews?: StudioEvalCasePreview[];
163
+ metricSummaries?: StudioEvalMetricSummary[];
161
164
  concurrency?: number;
162
165
  metadata?: JsonObject;
163
166
  };
167
+ type StudioEvalCasePreview = {
168
+ id: string;
169
+ input?: JsonValue;
170
+ expected?: JsonValue;
171
+ metadataKeys?: string[];
172
+ };
173
+ type StudioEvalMetricSummary = {
174
+ name: string;
175
+ dataType?: "NUMERIC" | "CATEGORICAL" | "BOOLEAN";
176
+ configId?: string;
177
+ scoreConfigId?: string;
178
+ metadataKeys?: string[];
179
+ };
164
180
  type StudioEvalRunRequest = {
165
181
  concurrency?: number;
166
182
  };
@@ -840,4 +856,4 @@ declare function createSqliteSessionStore(options?: SqliteSessionStoreOptions):
840
856
 
841
857
  declare function createInMemoryStudioStore(): StudioSessionStore & StudioTraceStore & StudioPipelineLogStore & StudioPipelineRunStore;
842
858
 
843
- export { type AgentRunRequest, type AgentRunResponse, type AgentRunStreamEvent, type AgentTraceInfo, type AgentTraceOptions, type AnviaStudio, type SqliteSessionStoreOptions, Studio, type StudioAgent, type StudioAgentConfig, type StudioAgentKnowledgeConfig, type StudioAgentMcpServerMetadata, type StudioAgentMcpToolMetadata, type StudioAgentMcpsSummary, type StudioAgentModelPolicy, type StudioAgentModelPolicyConfig, type StudioAgentModelsSummary, type StudioAgentRuntimeSummary, type StudioAgentToolApprovalMetadata, type StudioAgentToolMetadata, type StudioAgentToolSource, type StudioAgentToolsSummary, type StudioCapability, type StudioCapabilityConfig, type StudioConfig, type StudioErrorCode, type StudioErrorResponse, type StudioEvalRunRequest, type StudioEvalRunResponse, type StudioEvalSuite, type StudioEvalSuiteConfig, type StudioKnowledgeEvidence, type StudioKnowledgeEvidenceDocument, type StudioKnowledgeItem, type StudioKnowledgeItemKind, type StudioKnowledgeItemsPage, type StudioKnowledgeSourceKind, type StudioKnowledgeSourceSummary, type StudioKnowledgeSummary, type StudioMemoryAppendInput, type StudioMemoryContext, type StudioMemoryConversationMessages, type StudioMemoryConversationSteps, type StudioMemoryConversationSummary, type StudioMemoryConversationsPage, type StudioMemoryErrorInput, type StudioMemoryStore, type StudioMemoryUserSummary, type StudioMemoryUsersPage, type StudioModelConfig, type StudioModelDefinition, type StudioModelModalities, type StudioModelModality, type StudioModelProvider, type StudioModelProviderConfig, type StudioModelRef, type StudioModelSummary, type StudioModelsConfig, type StudioObservabilityEvent, type StudioObservabilityEventType, type StudioOptions, type StudioPipeline, type StudioPipelineConfig, type StudioPipelineDetail, type StudioPipelineFinalEvent, type StudioPipelineLogAppendInput, type StudioPipelineLogCategory, type StudioPipelineLogEntry, type StudioPipelineLogEvent, type StudioPipelineLogLevel, type StudioPipelineLogListOptions, type StudioPipelineLogStore, type StudioPipelineReplayRequest, type StudioPipelineRunGetOptions, type StudioPipelineRunListOptions, type StudioPipelineRunRecord, type StudioPipelineRunRequest, type StudioPipelineRunResponse, type StudioPipelineRunSaveInput, type StudioPipelineRunStatus, type StudioPipelineRunStore, type StudioServeOptions, type StudioSession, type StudioSessionCreateInput, type StudioSessionListOptions, type StudioSessionLogAppendInput, type StudioSessionLogCategory, type StudioSessionLogEntry, type StudioSessionLogEvent, type StudioSessionLogLevel, type StudioSessionLogListOptions, type StudioSessionRunStatus, type StudioSessionRunTranscriptInput, type StudioSessionStore, type StudioSessionSummary, type StudioSessionTraceListOptions, type StudioStaticKnowledgeDocument, type StudioStatusSummary, type StudioStores, type StudioTarget, type StudioToolApproval, type StudioToolApprovalDecision, type StudioToolApprovalRequestEvent, type StudioToolApprovalResultEvent, type StudioToolApprovalStatus, type StudioToolApprovalTranscript, type StudioToolQuestion, type StudioToolQuestionAnswer, type StudioToolQuestionChoice, type StudioToolQuestionPrompt, type StudioToolQuestionRequestEvent, type StudioToolQuestionResultEvent, type StudioToolQuestionStatus, type StudioToolQuestionTranscript, type StudioToolRunRequest, type StudioToolRunResponse, type StudioTrace, type StudioTraceListOptions, type StudioTraceObservation, type StudioTraceObservationKind, StudioTraceObserver, type StudioTraceObserverOptions, type StudioTraceStatus, type StudioTraceStore, type StudioTraceSummary, type StudioTranscriptAttachment, type StudioTranscriptChatEntry, type StudioTranscriptChildAgentEvent, type StudioTranscriptEntry, type StudioTranscriptReasoningEntry, type StudioTranscriptToolEntry, type StudioUiOptions, createInMemoryStudioStore, createSqliteSessionStore, traceSummary };
859
+ export { type AgentRunRequest, type AgentRunResponse, type AgentRunStreamEvent, type AgentTraceInfo, type AgentTraceOptions, type AnviaStudio, type SqliteSessionStoreOptions, Studio, type StudioAgent, type StudioAgentConfig, type StudioAgentKnowledgeConfig, type StudioAgentMcpServerMetadata, type StudioAgentMcpToolMetadata, type StudioAgentMcpsSummary, type StudioAgentModelPolicy, type StudioAgentModelPolicyConfig, type StudioAgentModelsSummary, type StudioAgentRuntimeSummary, type StudioAgentToolApprovalMetadata, type StudioAgentToolMetadata, type StudioAgentToolSource, type StudioAgentToolsSummary, type StudioCapability, type StudioCapabilityConfig, type StudioConfig, type StudioErrorCode, type StudioErrorResponse, type StudioEvalCasePreview, type StudioEvalMetricSummary, type StudioEvalRunRequest, type StudioEvalRunResponse, type StudioEvalSuite, type StudioEvalSuiteConfig, type StudioKnowledgeEvidence, type StudioKnowledgeEvidenceDocument, type StudioKnowledgeItem, type StudioKnowledgeItemKind, type StudioKnowledgeItemsPage, type StudioKnowledgeSourceKind, type StudioKnowledgeSourceSummary, type StudioKnowledgeSummary, type StudioMemoryAppendInput, type StudioMemoryContext, type StudioMemoryConversationMessages, type StudioMemoryConversationSteps, type StudioMemoryConversationSummary, type StudioMemoryConversationsPage, type StudioMemoryErrorInput, type StudioMemoryStore, type StudioMemoryUserSummary, type StudioMemoryUsersPage, type StudioModelConfig, type StudioModelDefinition, type StudioModelModalities, type StudioModelModality, type StudioModelProvider, type StudioModelProviderConfig, type StudioModelRef, type StudioModelSummary, type StudioModelsConfig, type StudioObservabilityEvent, type StudioObservabilityEventType, type StudioOptions, type StudioPipeline, type StudioPipelineConfig, type StudioPipelineDetail, type StudioPipelineFinalEvent, type StudioPipelineLogAppendInput, type StudioPipelineLogCategory, type StudioPipelineLogEntry, type StudioPipelineLogEvent, type StudioPipelineLogLevel, type StudioPipelineLogListOptions, type StudioPipelineLogStore, type StudioPipelineReplayRequest, type StudioPipelineRunGetOptions, type StudioPipelineRunListOptions, type StudioPipelineRunRecord, type StudioPipelineRunRequest, type StudioPipelineRunResponse, type StudioPipelineRunSaveInput, type StudioPipelineRunStatus, type StudioPipelineRunStore, type StudioServeOptions, type StudioSession, type StudioSessionCreateInput, type StudioSessionListOptions, type StudioSessionLogAppendInput, type StudioSessionLogCategory, type StudioSessionLogEntry, type StudioSessionLogEvent, type StudioSessionLogLevel, type StudioSessionLogListOptions, type StudioSessionRunStatus, type StudioSessionRunTranscriptInput, type StudioSessionStore, type StudioSessionSummary, type StudioSessionTraceListOptions, type StudioStaticKnowledgeDocument, type StudioStatusSummary, type StudioStores, type StudioTarget, type StudioToolApproval, type StudioToolApprovalDecision, type StudioToolApprovalRequestEvent, type StudioToolApprovalResultEvent, type StudioToolApprovalStatus, type StudioToolApprovalTranscript, type StudioToolQuestion, type StudioToolQuestionAnswer, type StudioToolQuestionChoice, type StudioToolQuestionPrompt, type StudioToolQuestionRequestEvent, type StudioToolQuestionResultEvent, type StudioToolQuestionStatus, type StudioToolQuestionTranscript, type StudioToolRunRequest, type StudioToolRunResponse, type StudioTrace, type StudioTraceListOptions, type StudioTraceObservation, type StudioTraceObservationKind, StudioTraceObserver, type StudioTraceObserverOptions, type StudioTraceStatus, type StudioTraceStore, type StudioTraceSummary, type StudioTranscriptAttachment, type StudioTranscriptChatEntry, type StudioTranscriptChildAgentEvent, type StudioTranscriptEntry, type StudioTranscriptReasoningEntry, type StudioTranscriptToolEntry, type StudioUiOptions, createInMemoryStudioStore, createSqliteSessionStore, traceSummary };
package/dist/index.js CHANGED
@@ -3368,17 +3368,71 @@ function publicApproval(approval) {
3368
3368
  }
3369
3369
 
3370
3370
  // src/runtime/eval-config.ts
3371
+ var CASE_PREVIEW_LIMIT = 5;
3372
+ var PREVIEW_VALUE_MAX_LENGTH = 500;
3371
3373
  function evalConfig(suite) {
3374
+ const casePreviews = suite.cases.slice(0, CASE_PREVIEW_LIMIT).map(casePreview);
3375
+ const metricSummaries = suite.metrics.map(metricSummary);
3372
3376
  return compact({
3373
3377
  id: suite.id ?? suite.name,
3374
3378
  name: suite.name,
3375
3379
  description: suite.description,
3376
3380
  caseCount: suite.cases.length,
3377
3381
  metricNames: suite.metrics.map((metric) => metric.name),
3382
+ casePreviewCount: casePreviews.length,
3383
+ casePreviews,
3384
+ metricSummaries,
3378
3385
  concurrency: suite.concurrency,
3379
3386
  metadata: suite.metadata
3380
3387
  });
3381
3388
  }
3389
+ function casePreview(testCase, index) {
3390
+ if (!isRecord2(testCase)) {
3391
+ return {
3392
+ id: `case-${index + 1}`,
3393
+ input: previewValue(testCase)
3394
+ };
3395
+ }
3396
+ return compact({
3397
+ id: typeof testCase.id === "string" && testCase.id.length > 0 ? testCase.id : `case-${index + 1}`,
3398
+ input: "input" in testCase ? previewValue(testCase.input) : void 0,
3399
+ expected: "expected" in testCase ? previewValue(testCase.expected) : void 0,
3400
+ metadataKeys: metadataKeys(testCase.metadata)
3401
+ });
3402
+ }
3403
+ function metricSummary(metric, index) {
3404
+ if (!isRecord2(metric)) {
3405
+ return { name: `metric-${index + 1}` };
3406
+ }
3407
+ return compact({
3408
+ name: typeof metric.name === "string" && metric.name.length > 0 ? metric.name : `metric-${index + 1}`,
3409
+ dataType: metricDataType(metric.dataType),
3410
+ configId: typeof metric.configId === "string" ? metric.configId : void 0,
3411
+ scoreConfigId: typeof metric.scoreConfigId === "string" ? metric.scoreConfigId : void 0,
3412
+ metadataKeys: metadataKeys(metric.metadata)
3413
+ });
3414
+ }
3415
+ function previewValue(value) {
3416
+ const jsonValue = toJsonValue(value);
3417
+ const serialized = JSON.stringify(jsonValue);
3418
+ if (serialized.length <= PREVIEW_VALUE_MAX_LENGTH) {
3419
+ return jsonValue;
3420
+ }
3421
+ return `${serialized.slice(0, PREVIEW_VALUE_MAX_LENGTH)}...`;
3422
+ }
3423
+ function metadataKeys(value) {
3424
+ if (!isRecord2(value)) {
3425
+ return void 0;
3426
+ }
3427
+ const keys = Object.keys(value).filter((key) => value[key] !== void 0);
3428
+ return keys.length > 0 ? keys : void 0;
3429
+ }
3430
+ function metricDataType(value) {
3431
+ return value === "NUMERIC" || value === "CATEGORICAL" || value === "BOOLEAN" ? value : void 0;
3432
+ }
3433
+ function isRecord2(value) {
3434
+ return value !== null && typeof value === "object" && !Array.isArray(value);
3435
+ }
3382
3436
 
3383
3437
  // src/runtime/tool-metadata.ts
3384
3438
  import { ToolSet } from "@anvia/core/tool";
@@ -3765,7 +3819,7 @@ async function knowledgeItemsPage(agent, sourceId, request) {
3765
3819
  return void 0;
3766
3820
  }
3767
3821
  function inspectFn(index) {
3768
- if (!isRecord2(index) || typeof index.inspect !== "function") {
3822
+ if (!isRecord3(index) || typeof index.inspect !== "function") {
3769
3823
  return void 0;
3770
3824
  }
3771
3825
  const inspect = index.inspect;
@@ -3801,7 +3855,7 @@ function nonInspectablePage(agentId, sourceId, kind) {
3801
3855
  };
3802
3856
  }
3803
3857
  function dynamicContextItem(item) {
3804
- const text = isRecord2(item.document) && typeof item.document.text === "string" ? item.document.text : typeof item.document === "string" ? item.document : void 0;
3858
+ const text = isRecord3(item.document) && typeof item.document.text === "string" ? item.document.text : typeof item.document === "string" ? item.document : void 0;
3805
3859
  return {
3806
3860
  id: item.id,
3807
3861
  kind: "dynamic_context",
@@ -3810,8 +3864,8 @@ function dynamicContextItem(item) {
3810
3864
  };
3811
3865
  }
3812
3866
  function dynamicToolItem(item) {
3813
- const document = isRecord2(item.document) ? item.document : {};
3814
- const definition = isRecord2(document.definition) ? document.definition : {};
3867
+ const document = isRecord3(item.document) ? item.document : {};
3868
+ const definition = isRecord3(document.definition) ? document.definition : {};
3815
3869
  const toolName = typeof document.toolName === "string" ? document.toolName : typeof definition.name === "string" ? definition.name : item.id;
3816
3870
  const description = typeof definition.description === "string" ? definition.description : "";
3817
3871
  return {
@@ -3825,7 +3879,7 @@ function dynamicToolItem(item) {
3825
3879
  };
3826
3880
  }
3827
3881
  function parameterKeys(parameters) {
3828
- if (!isRecord2(parameters) || !isRecord2(parameters.properties)) {
3882
+ if (!isRecord3(parameters) || !isRecord3(parameters.properties)) {
3829
3883
  return [];
3830
3884
  }
3831
3885
  return Object.keys(parameters.properties);
@@ -3866,7 +3920,7 @@ async function recentKnowledgeEvidence(traceStore, limit) {
3866
3920
  }
3867
3921
  function evidenceFromTrace(trace) {
3868
3922
  return trace.observations.flatMap((observation) => {
3869
- if (observation.kind !== "generation" || !isRecord2(observation.input)) {
3923
+ if (observation.kind !== "generation" || !isRecord3(observation.input)) {
3870
3924
  return [];
3871
3925
  }
3872
3926
  const documents = Array.isArray(observation.input.documents) ? observation.input.documents.flatMap((document) => evidenceDocument(document)) : [];
@@ -3919,7 +3973,7 @@ function messageText(value) {
3919
3973
  if (typeof value === "string") {
3920
3974
  return value.trim();
3921
3975
  }
3922
- if (!isRecord2(value)) {
3976
+ if (!isRecord3(value)) {
3923
3977
  return "";
3924
3978
  }
3925
3979
  if (typeof value.text === "string") {
@@ -3937,7 +3991,7 @@ function contentText(value) {
3937
3991
  if (typeof value === "string") {
3938
3992
  return value.trim();
3939
3993
  }
3940
- if (!isRecord2(value)) {
3994
+ if (!isRecord3(value)) {
3941
3995
  return "";
3942
3996
  }
3943
3997
  if (typeof value.text === "string") {
@@ -3946,12 +4000,12 @@ function contentText(value) {
3946
4000
  return "";
3947
4001
  }
3948
4002
  function evidenceDocument(value) {
3949
- if (!isRecord2(value)) {
4003
+ if (!isRecord3(value)) {
3950
4004
  return [];
3951
4005
  }
3952
4006
  const id = typeof value.id === "string" ? value.id : void 0;
3953
4007
  const text = typeof value.text === "string" ? value.text : void 0;
3954
- const additionalProps = isRecord2(value.additionalProps) ? jsonObjectFromRecord(value.additionalProps) : void 0;
4008
+ const additionalProps = isRecord3(value.additionalProps) ? jsonObjectFromRecord(value.additionalProps) : void 0;
3955
4009
  if (id === void 0 && text === void 0 && additionalProps === void 0) {
3956
4010
  return [];
3957
4011
  }
@@ -3960,7 +4014,7 @@ function evidenceDocument(value) {
3960
4014
  ];
3961
4015
  }
3962
4016
  function evidenceToolName(value) {
3963
- if (!isRecord2(value) || typeof value.name !== "string") {
4017
+ if (!isRecord3(value) || typeof value.name !== "string") {
3964
4018
  return [];
3965
4019
  }
3966
4020
  return [value.name];
@@ -3968,7 +4022,7 @@ function evidenceToolName(value) {
3968
4022
  function jsonObjectFromRecord(value) {
3969
4023
  return compactJsonObject(value);
3970
4024
  }
3971
- function isRecord2(value) {
4025
+ function isRecord3(value) {
3972
4026
  return typeof value === "object" && value !== null && !Array.isArray(value);
3973
4027
  }
3974
4028