niceeval 0.13.2 → 0.13.3
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/dist/agents/bub.cjs +4 -4
- package/dist/agents/bub.cjs.map +1 -1
- package/dist/agents/bub.d.cts +2 -2
- package/dist/agents/bub.d.mts +2 -2
- package/dist/agents/bub.d.ts +2 -2
- package/dist/agents/claude-code-native.cjs +213 -0
- package/dist/agents/claude-code-native.cjs.map +1 -0
- package/dist/agents/claude-code-native.d.cts +5 -0
- package/dist/agents/claude-code-native.d.mts +5 -0
- package/dist/agents/claude-code-native.d.ts +5 -0
- package/dist/agents/claude-code-native.js +6 -0
- package/dist/agents/claude-code-native.js.map +1 -0
- package/dist/agents/claude-code.cjs +26 -80
- package/dist/agents/claude-code.cjs.map +1 -1
- package/dist/agents/codex-app-server.cjs +314 -0
- package/dist/agents/codex-app-server.cjs.map +1 -0
- package/dist/agents/codex-app-server.d.cts +9 -0
- package/dist/agents/codex-app-server.d.mts +9 -0
- package/dist/agents/codex-app-server.d.ts +9 -0
- package/dist/agents/codex-app-server.js +6 -0
- package/dist/agents/codex-app-server.js.map +1 -0
- package/dist/agents/codex.cjs +19 -68
- package/dist/agents/codex.cjs.map +1 -1
- package/dist/agents/codex.d.cts +3 -3
- package/dist/agents/codex.d.mts +3 -3
- package/dist/agents/codex.d.ts +3 -3
- package/dist/agents/index.cjs +3 -1
- package/dist/agents/index.cjs.map +1 -1
- package/dist/agents/index.d.cts +1 -0
- package/dist/agents/index.d.mts +1 -0
- package/dist/agents/index.d.ts +1 -0
- package/dist/agents/index.js +84 -82
- package/dist/agents/index.mjs +84 -82
- package/dist/agents/managed-jsonl.cjs +207 -0
- package/dist/agents/managed-jsonl.cjs.map +1 -0
- package/dist/agents/managed-jsonl.d.cts +39 -0
- package/dist/agents/managed-jsonl.d.mts +39 -0
- package/dist/agents/managed-jsonl.d.ts +39 -0
- package/dist/agents/managed-jsonl.js +6 -0
- package/dist/agents/managed-jsonl.js.map +1 -0
- package/dist/agents/managed-process.cjs +31 -0
- package/dist/agents/managed-process.cjs.map +1 -0
- package/dist/agents/managed-process.d.cts +3 -0
- package/dist/agents/managed-process.d.mts +3 -0
- package/dist/agents/managed-process.d.ts +3 -0
- package/dist/agents/managed-process.js +6 -0
- package/dist/agents/managed-process.js.map +1 -0
- package/dist/agents/omp.cjs +18 -1
- package/dist/agents/omp.cjs.map +1 -1
- package/dist/agents/sdk-streams.cjs +11 -4
- package/dist/agents/sdk-streams.cjs.map +1 -1
- package/dist/agents/types.cjs.map +1 -1
- package/dist/agents/types.d.cts +8 -0
- package/dist/agents/types.d.mts +8 -0
- package/dist/agents/types.d.ts +8 -0
- package/dist/analysis/bindings.cjs +74 -19
- package/dist/analysis/bindings.cjs.map +1 -1
- package/dist/analysis/bindings.d.cts +534 -156
- package/dist/analysis/bindings.d.mts +534 -156
- package/dist/analysis/bindings.d.ts +534 -156
- package/dist/analysis/domain-view.cjs.map +1 -1
- package/dist/analysis/domain-view.d.cts +137 -8
- package/dist/analysis/domain-view.d.mts +137 -8
- package/dist/analysis/domain-view.d.ts +137 -8
- package/dist/analysis/index.cjs.map +1 -1
- package/dist/analysis/index.d.cts +1 -1
- package/dist/analysis/index.d.mts +1 -1
- package/dist/analysis/index.d.ts +1 -1
- package/dist/assertions/api.cjs.map +1 -1
- package/dist/assertions/api.d.cts +62 -0
- package/dist/assertions/api.d.mts +62 -0
- package/dist/assertions/api.d.ts +62 -0
- package/dist/assertions/judge.cjs +56 -5
- package/dist/assertions/judge.cjs.map +1 -1
- package/dist/assertions/match.cjs +66 -42
- package/dist/assertions/match.cjs.map +1 -1
- package/dist/assertions/match.d.cts +13 -0
- package/dist/assertions/match.d.mts +13 -0
- package/dist/assertions/match.d.ts +13 -0
- package/dist/assertions/record/attachment.cjs +104 -33
- package/dist/assertions/record/attachment.cjs.map +1 -1
- package/dist/assertions/record/attachment.d.cts +294 -57
- package/dist/assertions/record/attachment.d.mts +294 -57
- package/dist/assertions/record/attachment.d.ts +294 -57
- package/dist/assertions/record/codec.cjs +91 -17
- package/dist/assertions/record/codec.cjs.map +1 -1
- package/dist/assertions/record/codec.d.cts +280 -52
- package/dist/assertions/record/codec.d.mts +280 -52
- package/dist/assertions/record/codec.d.ts +280 -52
- package/dist/assertions/record/index.js +2 -0
- package/dist/assertions/record/model.cjs +16 -0
- package/dist/assertions/record/model.cjs.map +1 -1
- package/dist/assertions/record/model.d.cts +120 -13
- package/dist/assertions/record/model.d.mts +120 -13
- package/dist/assertions/record/model.d.ts +120 -13
- package/dist/assertions/record/model.js +2 -0
- package/dist/assertions/record/producer.cjs +70 -50
- package/dist/assertions/record/producer.cjs.map +1 -1
- package/dist/assertions/record/producer.d.cts +8 -7
- package/dist/assertions/record/producer.d.mts +8 -7
- package/dist/assertions/record/producer.d.ts +8 -7
- package/dist/assertions/runtime.cjs +49 -7
- package/dist/assertions/runtime.cjs.map +1 -1
- package/dist/cli/application.cjs +40 -0
- package/dist/cli/application.cjs.map +1 -0
- package/dist/cli/application.d.cts +129 -0
- package/dist/cli/application.d.mts +129 -0
- package/dist/cli/application.d.ts +129 -0
- package/dist/cli/application.js +24 -0
- package/dist/cli/application.js.map +1 -0
- package/dist/cli/bootstrap.cjs +10 -4
- package/dist/cli/bootstrap.cjs.map +1 -1
- package/dist/cli/node-application.cjs +123 -0
- package/dist/cli/node-application.cjs.map +1 -0
- package/dist/cli/node-application.d.cts +14 -0
- package/dist/cli/node-application.d.mts +14 -0
- package/dist/cli/node-application.d.ts +14 -0
- package/dist/cli/node-application.js +26 -0
- package/dist/cli/node-application.js.map +1 -0
- package/dist/cli/program.cjs +2807 -0
- package/dist/cli/program.cjs.map +1 -0
- package/dist/cli/program.d.cts +352 -0
- package/dist/cli/program.d.mts +352 -0
- package/dist/cli/program.d.ts +352 -0
- package/dist/cli/program.js +36 -0
- package/dist/cli/program.js.map +1 -0
- package/dist/cli/project-configuration.cjs +134 -0
- package/dist/cli/project-configuration.cjs.map +1 -0
- package/dist/cli/project-configuration.d.cts +64 -0
- package/dist/cli/project-configuration.d.mts +64 -0
- package/dist/cli/project-configuration.d.ts +64 -0
- package/dist/cli/project-configuration.js +22 -0
- package/dist/cli/project-configuration.js.map +1 -0
- package/dist/cli/record.cjs +20 -4
- package/dist/cli/record.cjs.map +1 -1
- package/dist/cli/record.d.cts +3 -3
- package/dist/cli/record.d.mts +3 -3
- package/dist/cli/record.d.ts +3 -3
- package/dist/cli.cjs +19 -3130
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.d.cts +2 -148
- package/dist/cli.d.mts +2 -148
- package/dist/cli.d.ts +2 -148
- package/dist/cli.js +22 -30
- package/dist/context/assert-first.cjs +21 -15
- package/dist/context/assert-first.cjs.map +1 -1
- package/dist/context/assert-first.d.cts +1 -0
- package/dist/context/assert-first.d.mts +1 -0
- package/dist/context/assert-first.d.ts +1 -0
- package/dist/context/attempt-resources.cjs +13 -0
- package/dist/context/attempt-resources.cjs.map +1 -0
- package/dist/context/attempt-resources.d.cts +3 -0
- package/dist/context/attempt-resources.d.mts +3 -0
- package/dist/context/attempt-resources.d.ts +3 -0
- package/dist/context/attempt-resources.js +8 -0
- package/dist/context/attempt-resources.js.map +1 -0
- package/dist/context/session.cjs +4 -3
- package/dist/context/session.cjs.map +1 -1
- package/dist/context/session.d.cts +1 -0
- package/dist/context/session.d.mts +1 -0
- package/dist/context/session.d.ts +1 -0
- package/dist/eval/record/verdict.cjs +3 -2
- package/dist/eval/record/verdict.cjs.map +1 -1
- package/dist/experiment/host/index.cjs +1 -6
- package/dist/experiment/host/index.cjs.map +1 -1
- package/dist/experiment/host/index.d.cts +1 -0
- package/dist/experiment/host/index.d.mts +1 -0
- package/dist/experiment/host/index.d.ts +1 -0
- package/dist/load-config.cjs +13 -4
- package/dist/load-config.cjs.map +1 -1
- package/dist/load-config.d.cts +4 -3
- package/dist/load-config.d.mts +4 -3
- package/dist/load-config.d.ts +4 -3
- package/dist/load-config.js +4 -2
- package/dist/o11y/parsers/codex.cjs +29 -7
- package/dist/o11y/parsers/codex.cjs.map +1 -1
- package/dist/record/codec/core.d.cts +0 -2
- package/dist/record/codec/core.d.mts +0 -2
- package/dist/record/codec/core.d.ts +0 -2
- package/dist/record/codec/identifiers.cjs +2 -3
- package/dist/record/codec/identifiers.cjs.map +1 -1
- package/dist/record/codec/identifiers.d.cts +1 -2
- package/dist/record/codec/identifiers.d.mts +1 -2
- package/dist/record/codec/identifiers.d.ts +1 -2
- package/dist/record/codec/identifiers.js +10 -12
- package/dist/record/codec/index.js +42 -44
- package/dist/record/definition/attachment.cjs +1 -0
- package/dist/record/definition/attachment.cjs.map +1 -1
- package/dist/record/definition/attachment.d.cts +14 -0
- package/dist/record/definition/attachment.d.mts +14 -0
- package/dist/record/definition/attachment.d.ts +14 -0
- package/dist/record/family/assertions-v1.cjs +104 -0
- package/dist/record/family/assertions-v1.cjs.map +1 -0
- package/dist/record/family/assertions-v1.d.cts +2 -0
- package/dist/record/family/assertions-v1.d.mts +2 -0
- package/dist/record/family/assertions-v1.d.ts +2 -0
- package/dist/record/family/assertions-v1.js +6 -0
- package/dist/record/family/assertions-v1.js.map +1 -0
- package/dist/record/family/assertions.cjs +16 -5
- package/dist/record/family/assertions.cjs.map +1 -1
- package/dist/record/family/assertions.d.cts +510 -56
- package/dist/record/family/assertions.d.mts +510 -56
- package/dist/record/family/assertions.d.ts +510 -56
- package/dist/record/family/assertions.js +14 -10
- package/dist/record/family/catalog.cjs +17 -1
- package/dist/record/family/catalog.cjs.map +1 -1
- package/dist/record/family/catalog.d.cts +1292 -104
- package/dist/record/family/catalog.d.mts +1292 -104
- package/dist/record/family/catalog.d.ts +1292 -104
- package/dist/record/family/catalog.js +22 -20
- package/dist/record/family/index.js +144 -138
- package/dist/record/family/observability-v1.cjs +5 -0
- package/dist/record/family/observability-v1.cjs.map +1 -1
- package/dist/record/family/observability.cjs +1 -1
- package/dist/record/family/observability.cjs.map +1 -1
- package/dist/record/host/runtime.cjs +323 -173
- package/dist/record/host/runtime.cjs.map +1 -1
- package/dist/record/host/types.cjs.map +1 -1
- package/dist/record/host/types.d.cts +9 -7
- package/dist/record/host/types.d.mts +9 -7
- package/dist/record/host/types.d.ts +9 -7
- package/dist/record/model/core.cjs.map +1 -1
- package/dist/record/model/core.d.cts +1 -2
- package/dist/record/model/core.d.mts +1 -2
- package/dist/record/model/core.d.ts +1 -2
- package/dist/record/model/definition.cjs +1 -2
- package/dist/record/model/definition.cjs.map +1 -1
- package/dist/record/model/definition.d.cts +1 -7
- package/dist/record/model/definition.d.mts +1 -7
- package/dist/record/model/definition.d.ts +1 -7
- package/dist/record/model/identifiers.cjs +2 -3
- package/dist/record/model/identifiers.cjs.map +1 -1
- package/dist/record/model/identifiers.d.cts +1 -3
- package/dist/record/model/identifiers.d.mts +1 -3
- package/dist/record/model/identifiers.d.ts +1 -3
- package/dist/record/model/identifiers.js +36 -38
- package/dist/record/model/index.js +60 -62
- package/dist/record/platform/node.cjs +17 -7
- package/dist/record/platform/node.cjs.map +1 -1
- package/dist/record/platform/services.cjs.map +1 -1
- package/dist/record/platform/services.d.cts +8 -3
- package/dist/record/platform/services.d.mts +8 -3
- package/dist/record/platform/services.d.ts +8 -3
- package/dist/record/reader/format.cjs +16 -65
- package/dist/record/reader/format.cjs.map +1 -1
- package/dist/record/reader/format.d.cts +5 -9
- package/dist/record/reader/format.d.mts +5 -9
- package/dist/record/reader/format.d.ts +5 -9
- package/dist/record/reader/index.js +10 -8
- package/dist/record/reader/runtime.cjs +63 -32
- package/dist/record/reader/runtime.cjs.map +1 -1
- package/dist/record/reader/runtime.d.cts +40 -4
- package/dist/record/reader/runtime.d.mts +40 -4
- package/dist/record/reader/runtime.d.ts +40 -4
- package/dist/record/reader/runtime.js +6 -4
- package/dist/report/assets/enhance.js +5 -5
- package/dist/report/assets/styles.css +190 -24
- package/dist/report/built-in/result-components.cjs +8 -5
- package/dist/report/built-in/result-components.cjs.map +1 -1
- package/dist/report/built-in/standard.cjs +3 -0
- package/dist/report/built-in/standard.cjs.map +1 -1
- package/dist/report/built-in/standard.d.cts +2 -0
- package/dist/report/built-in/standard.d.mts +2 -0
- package/dist/report/built-in/standard.d.ts +2 -0
- package/dist/report/client-dist/app.js +53 -0
- package/dist/report/components/attempt-detail/compute.cjs +108 -231
- package/dist/report/components/attempt-detail/compute.cjs.map +1 -1
- package/dist/report/components/attempt-detail/compute.d.cts +11 -45
- package/dist/report/components/attempt-detail/compute.d.mts +11 -45
- package/dist/report/components/attempt-detail/compute.d.ts +11 -45
- package/dist/report/components/attempt-detail/compute.js +2 -4
- package/dist/report/components/attempt-detail/content.cjs +4 -4
- package/dist/report/components/attempt-detail/content.cjs.map +1 -1
- package/dist/report/components/attempt-detail/validate.cjs +47 -4
- package/dist/report/components/attempt-detail/validate.cjs.map +1 -1
- package/dist/report/components/entity-lists/compute.cjs +9 -15
- package/dist/report/components/entity-lists/compute.cjs.map +1 -1
- package/dist/report/components/entity-lists/content.cjs +53 -40
- package/dist/report/components/entity-lists/content.cjs.map +1 -1
- package/dist/report/components/entity-lists/index.cjs +1 -3
- package/dist/report/components/entity-lists/index.cjs.map +1 -1
- package/dist/report/components/experiment-detail/compute.cjs +4 -6
- package/dist/report/components/experiment-detail/compute.cjs.map +1 -1
- package/dist/report/components/summaries/index.cjs +5 -1
- package/dist/report/components/summaries/index.cjs.map +1 -1
- package/dist/report/definition/cell.cjs +14 -7
- package/dist/report/definition/cell.cjs.map +1 -1
- package/dist/report/definition/cell.d.cts +4 -0
- package/dist/report/definition/cell.d.mts +4 -0
- package/dist/report/definition/cell.d.ts +4 -0
- package/dist/report/definition/primitives/assertion-evidence.cjs +96 -0
- package/dist/report/definition/primitives/assertion-evidence.cjs.map +1 -0
- package/dist/report/definition/primitives/assertion-evidence.d.cts +11 -0
- package/dist/report/definition/primitives/assertion-evidence.d.mts +11 -0
- package/dist/report/definition/primitives/assertion-evidence.d.ts +11 -0
- package/dist/report/definition/primitives/assertion-evidence.js +6 -0
- package/dist/report/definition/primitives/assertion-evidence.js.map +1 -0
- package/dist/report/definition/primitives/conversation.cjs +7 -0
- package/dist/report/definition/primitives/conversation.cjs.map +1 -1
- package/dist/report/definition/primitives/conversation.d.cts +2 -0
- package/dist/report/definition/primitives/conversation.d.mts +2 -0
- package/dist/report/definition/primitives/conversation.d.ts +2 -0
- package/dist/report/definition/primitives/turn-trace.cjs +53 -3
- package/dist/report/definition/primitives/turn-trace.cjs.map +1 -1
- package/dist/report/definition/primitives.cjs +14 -1
- package/dist/report/definition/primitives.cjs.map +1 -1
- package/dist/report/definition/report.cjs +16 -8
- package/dist/report/definition/report.cjs.map +1 -1
- package/dist/report/definition/report.d.cts +6 -0
- package/dist/report/definition/report.d.mts +6 -0
- package/dist/report/definition/report.d.ts +6 -0
- package/dist/report/definition/table-text.cjs +12 -3
- package/dist/report/definition/table-text.cjs.map +1 -1
- package/dist/report/definition/table-text.d.cts +6 -1
- package/dist/report/definition/table-text.d.mts +6 -1
- package/dist/report/definition/table-text.d.ts +6 -1
- package/dist/report/execution/model.cjs +6 -14
- package/dist/report/execution/model.cjs.map +1 -1
- package/dist/report/execution/model.d.cts +5 -10
- package/dist/report/execution/model.d.mts +5 -10
- package/dist/report/execution/model.d.ts +5 -10
- package/dist/report/execution/model.js +6 -6
- package/dist/report/execution/paths.cjs +0 -11
- package/dist/report/execution/paths.cjs.map +1 -1
- package/dist/report/execution/paths.d.cts +0 -1
- package/dist/report/execution/paths.d.mts +0 -1
- package/dist/report/execution/paths.d.ts +0 -1
- package/dist/report/execution/paths.js +6 -8
- package/dist/report/host/execute.cjs +13 -22
- package/dist/report/host/execute.cjs.map +1 -1
- package/dist/report/host/execute.d.cts +1 -4
- package/dist/report/host/execute.d.mts +1 -4
- package/dist/report/host/execute.d.ts +1 -4
- package/dist/report/host/from-record.cjs +3 -0
- package/dist/report/host/from-record.cjs.map +1 -1
- package/dist/report/host/from-record.d.cts +4 -1
- package/dist/report/host/from-record.d.mts +4 -1
- package/dist/report/host/from-record.d.ts +4 -1
- package/dist/report/host/site-assets.cjs +1 -2
- package/dist/report/host/site-assets.cjs.map +1 -1
- package/dist/report/host/site-assets.d.cts +0 -1
- package/dist/report/host/site-assets.d.mts +0 -1
- package/dist/report/host/site-assets.d.ts +0 -1
- package/dist/report/host/site-assets.js +2 -4
- package/dist/report/host/static.cjs +71 -346
- package/dist/report/host/static.cjs.map +1 -1
- package/dist/report/host/static.d.cts +1 -3
- package/dist/report/host/static.d.mts +1 -3
- package/dist/report/host/static.d.ts +1 -3
- package/dist/report/host/static.js +2 -2
- package/dist/report/host/view-session.cjs.map +1 -1
- package/dist/report/host/view-session.d.cts +1 -1
- package/dist/report/host/view-session.d.mts +1 -1
- package/dist/report/host/view-session.d.ts +1 -1
- package/dist/report/model/locale.cjs +1 -1
- package/dist/report/model/locale.cjs.map +1 -1
- package/dist/report/model/locale.d.cts +1 -1
- package/dist/report/model/locale.d.mts +1 -1
- package/dist/report/model/locale.d.ts +1 -1
- package/dist/report/model/pricing.cjs +2 -2
- package/dist/report/model/pricing.cjs.map +1 -1
- package/dist/report/react/enhance.js +5 -5
- package/dist/report/react/styles.css +190 -24
- package/dist/runner/adoption.cjs +4 -7
- package/dist/runner/adoption.cjs.map +1 -1
- package/dist/runner/attempt-resources.cjs +60 -0
- package/dist/runner/attempt-resources.cjs.map +1 -0
- package/dist/runner/attempt-resources.d.cts +13 -0
- package/dist/runner/attempt-resources.d.mts +13 -0
- package/dist/runner/attempt-resources.d.ts +13 -0
- package/dist/runner/attempt-resources.js +6 -0
- package/dist/runner/attempt-resources.js.map +1 -0
- package/dist/runner/attempt.cjs +37 -3
- package/dist/runner/attempt.cjs.map +1 -1
- package/dist/runner/feedback/failure.cjs +77 -2
- package/dist/runner/feedback/failure.cjs.map +1 -1
- package/dist/runner/feedback/failure.d.cts +2 -1
- package/dist/runner/feedback/failure.d.mts +2 -1
- package/dist/runner/feedback/failure.d.ts +2 -1
- package/dist/runner/project-current.cjs +2 -13
- package/dist/runner/project-current.cjs.map +1 -1
- package/dist/runner/project-current.d.cts +4 -2
- package/dist/runner/project-current.d.mts +4 -2
- package/dist/runner/project-current.d.ts +4 -2
- package/dist/runner/reporters/braintrust.cjs +7 -7
- package/dist/runner/reporters/braintrust.cjs.map +1 -1
- package/dist/runner/reuse-readback.cjs +3 -4
- package/dist/runner/reuse-readback.cjs.map +1 -1
- package/dist/runner/run.cjs +5 -2
- package/dist/runner/run.cjs.map +1 -1
- package/dist/sandbox/backend.cjs +32 -2
- package/dist/sandbox/backend.cjs.map +1 -1
- package/dist/sandbox/backend.d.cts +12 -1
- package/dist/sandbox/backend.d.mts +12 -1
- package/dist/sandbox/backend.d.ts +12 -1
- package/dist/sandbox/backend.js +28 -22
- package/dist/sandbox/docker.cjs +140 -0
- package/dist/sandbox/docker.cjs.map +1 -1
- package/dist/sandbox/docker.d.cts +3 -1
- package/dist/sandbox/docker.d.mts +3 -1
- package/dist/sandbox/docker.d.ts +3 -1
- package/dist/sandbox/e2b.cjs +42 -0
- package/dist/sandbox/e2b.cjs.map +1 -1
- package/dist/sandbox/e2b.d.cts +2 -0
- package/dist/sandbox/e2b.d.mts +2 -0
- package/dist/sandbox/e2b.d.ts +2 -0
- package/dist/sandbox/local.cjs +64 -0
- package/dist/sandbox/local.cjs.map +1 -1
- package/dist/sandbox/local.d.cts +3 -1
- package/dist/sandbox/local.d.mts +3 -1
- package/dist/sandbox/local.d.ts +3 -1
- package/dist/sandbox/managed-process.cjs +49 -0
- package/dist/sandbox/managed-process.cjs.map +1 -0
- package/dist/sandbox/managed-process.d.cts +11 -0
- package/dist/sandbox/managed-process.d.mts +11 -0
- package/dist/sandbox/managed-process.d.ts +11 -0
- package/dist/sandbox/managed-process.js +6 -0
- package/dist/sandbox/managed-process.js.map +1 -0
- package/dist/sandbox/types.cjs.map +1 -1
- package/dist/sandbox/types.d.cts +24 -0
- package/dist/sandbox/types.d.mts +24 -0
- package/dist/sandbox/types.d.ts +24 -0
- package/dist/sandbox/vercel.cjs +1 -0
- package/dist/sandbox/vercel.cjs.map +1 -1
- package/dist/sandbox/vercel.d.cts +1 -0
- package/dist/sandbox/vercel.d.mts +1 -0
- package/dist/sandbox/vercel.d.ts +1 -0
- package/dist/view/server.cjs +2 -37
- package/dist/view/server.cjs.map +1 -1
- package/dist/view/server.d.cts +0 -3
- package/dist/view/server.d.mts +0 -3
- package/dist/view/server.d.ts +0 -3
- package/docs-site/zh/reference/builtin-agents.mdx +7 -7
- package/docs-site/zh/reference/official-adapters.mdx +4 -4
- package/docs-site/zh/reference/report-components.mdx +2 -2
- package/docs-site/zh/tutorials/configuration.mdx +2 -2
- package/docs-site/zh/tutorials/deploy-report-site.mdx +24 -2
- package/docs-site/zh/tutorials/publish-report.mdx +4 -4
- package/docs-site/zh/tutorials/sandbox-agent.mdx +5 -5
- package/docs-site/zh/tutorials/theming.mdx +2 -2
- package/package.json +4 -6
- package/dist/record/migration/index.cjs +0 -5
- package/dist/record/migration/index.cjs.map +0 -1
- package/dist/record/migration/index.d.cts +0 -11
- package/dist/record/migration/index.d.mts +0 -11
- package/dist/record/migration/index.d.ts +0 -11
- package/dist/record/migration/index.js +0 -6
- package/dist/record/migration/index.js.map +0 -1
- package/dist/report/host/site-runtime.cjs +0 -92
- package/dist/report/host/site-runtime.cjs.map +0 -1
- package/dist/report/host/site-runtime.d.cts +0 -9
- package/dist/report/host/site-runtime.d.mts +0 -9
- package/dist/report/host/site-runtime.d.ts +0 -9
- package/dist/report/host/site-runtime.js +0 -10
- package/dist/report/host/site-runtime.js.map +0 -1
- package/dist/view/client-dist/app.css +0 -2
- package/dist/view/client-dist/app.js +0 -49
- package/dist/view/data.cjs +0 -3
- package/dist/view/data.cjs.map +0 -1
- package/dist/view/data.d.cts +0 -9
- package/dist/view/data.d.mts +0 -9
- package/dist/view/data.d.ts +0 -9
- package/dist/view/data.js +0 -4
- package/dist/view/data.js.map +0 -1
- package/dist/view/index.cjs +0 -24
- package/dist/view/index.cjs.map +0 -1
- package/dist/view/index.d.cts +0 -9
- package/dist/view/index.d.mts +0 -9
- package/dist/view/index.d.ts +0 -9
- package/dist/view/index.js +0 -28
- package/dist/view/index.js.map +0 -1
- package/dist/view/report-view-cache.cjs +0 -200
- package/dist/view/report-view-cache.cjs.map +0 -1
- package/dist/view/report-view-cache.d.cts +0 -67
- package/dist/view/report-view-cache.d.mts +0 -67
- package/dist/view/report-view-cache.d.ts +0 -67
- package/dist/view/report-view-cache.js +0 -8
- package/dist/view/report-view-cache.js.map +0 -1
- package/dist/view/shared/types.cjs +0 -3
- package/dist/view/shared/types.cjs.map +0 -1
- package/dist/view/shared/types.d.cts +0 -51
- package/dist/view/shared/types.d.mts +0 -51
- package/dist/view/shared/types.d.ts +0 -51
- package/dist/view/shared/types.js +0 -4
- package/dist/view/shared/types.js.map +0 -1
- package/dist/view/site.cjs +0 -32
- package/dist/view/site.cjs.map +0 -1
- package/dist/view/site.d.cts +0 -24
- package/dist/view/site.d.mts +0 -24
- package/dist/view/site.d.ts +0 -24
- package/dist/view/site.js +0 -8
- package/dist/view/site.js.map +0 -1
- package/dist/view/styles.css +0 -170
- package/dist/view/template.html +0 -17
|
@@ -20,7 +20,6 @@ exports.observedCostUSD = observedCostUSD;
|
|
|
20
20
|
exports.usageTableData = usageTableData;
|
|
21
21
|
exports.attemptDiffData = attemptDiffData;
|
|
22
22
|
exports.attemptSourceData = attemptSourceData;
|
|
23
|
-
exports.stableJson = stableJson;
|
|
24
23
|
// ───────────────────────── AttemptSummary ─────────────────────────
|
|
25
24
|
function attemptSummaryData(input) {
|
|
26
25
|
return {
|
|
@@ -73,95 +72,12 @@ function attemptErrorData(input) {
|
|
|
73
72
|
...(hint ? { commandEvidenceHint: true } : {}),
|
|
74
73
|
};
|
|
75
74
|
}
|
|
76
|
-
|
|
77
|
-
if (value === undefined || typeof value !== "object" || value === null || Array.isArray(value))
|
|
78
|
-
return undefined;
|
|
79
|
-
return value;
|
|
80
|
-
}
|
|
81
|
-
function jsonStringOf(record, key) {
|
|
82
|
-
const value = record[key];
|
|
83
|
-
return typeof value === "string" ? value : undefined;
|
|
84
|
-
}
|
|
85
|
-
function jsonNumberOf(record, key) {
|
|
86
|
-
const value = record[key];
|
|
87
|
-
return typeof value === "number" && Number.isFinite(value) ? value : undefined;
|
|
88
|
-
}
|
|
89
|
-
function jsonStringArrayOf(record, key) {
|
|
90
|
-
const value = record[key];
|
|
91
|
-
if (!Array.isArray(value))
|
|
92
|
-
return undefined;
|
|
93
|
-
const items = [];
|
|
94
|
-
for (const item of value) {
|
|
95
|
-
if (typeof item !== "string")
|
|
96
|
-
return undefined;
|
|
97
|
-
items.push(item);
|
|
98
|
-
}
|
|
99
|
-
return items;
|
|
100
|
-
}
|
|
101
|
-
/** 整条 sealed assertion entry 的结构读取;读不懂(形状不符)返回 undefined,调用方跳过。 */
|
|
75
|
+
/** Typed Analysis entry → report view. No Record or matcher shape is parsed here. */
|
|
102
76
|
function assertionEntryViewOf(value) {
|
|
103
|
-
|
|
104
|
-
if (record === undefined)
|
|
105
|
-
return undefined;
|
|
106
|
-
const entryId = jsonStringOf(record, "entryId");
|
|
107
|
-
const display = jsonRecordOf(record["display"]);
|
|
108
|
-
const result = jsonRecordOf(record["result"]);
|
|
109
|
-
const coverage = jsonRecordOf(record["coverage"]);
|
|
110
|
-
if (entryId === undefined || display === undefined || result === undefined || coverage === undefined)
|
|
111
|
-
return undefined;
|
|
112
|
-
const state = jsonStringOf(result, "state");
|
|
113
|
-
const gate = jsonStringOf(result, "gate");
|
|
114
|
-
const score = jsonRecordOf(result["score"]);
|
|
115
|
-
if (state === undefined || gate === undefined || score === undefined)
|
|
116
|
-
return undefined;
|
|
117
|
-
if (state !== "matched" && state !== "mismatched" && state !== "unavailable" && state !== "errored")
|
|
118
|
-
return undefined;
|
|
119
|
-
if (gate !== "not-gate" && gate !== "satisfied" && gate !== "failed" && gate !== "unavailable")
|
|
120
|
-
return undefined;
|
|
121
|
-
const scoreState = jsonStringOf(score, "state");
|
|
122
|
-
if (scoreState !== "not-scored" && scoreState !== "earned" && scoreState !== "unavailable")
|
|
123
|
-
return undefined;
|
|
124
|
-
const coverageState = jsonStringOf(coverage, "state");
|
|
125
|
-
if (coverageState !== "complete" && coverageState !== "partial" &&
|
|
126
|
-
coverageState !== "unavailable" && coverageState !== "not-applicable")
|
|
127
|
-
return undefined;
|
|
128
|
-
const limitations = [];
|
|
129
|
-
const rawLimitations = Array.isArray(record["limitations"]) ? record["limitations"] : [];
|
|
130
|
-
for (const item of rawLimitations) {
|
|
131
|
-
const kind = jsonStringOf(jsonRecordOf(item) ?? {}, "kind");
|
|
132
|
-
if (kind !== undefined)
|
|
133
|
-
limitations.push({ kind });
|
|
134
|
-
}
|
|
135
|
-
const earned = jsonNumberOf(score, "earned");
|
|
136
|
-
const points = jsonNumberOf(score, "points");
|
|
137
|
-
return {
|
|
138
|
-
entryId,
|
|
139
|
-
display: {
|
|
140
|
-
...(jsonStringOf(display, "label") === undefined ? {} : { label: jsonStringOf(display, "label") }),
|
|
141
|
-
...(jsonStringOf(display, "key") === undefined ? {} : { key: jsonStringOf(display, "key") }),
|
|
142
|
-
groupPath: jsonStringArrayOf(display, "groupPath") ?? [],
|
|
143
|
-
},
|
|
144
|
-
result: {
|
|
145
|
-
state,
|
|
146
|
-
...(jsonStringOf(result, "reason") === undefined ? {} : { reason: jsonStringOf(result, "reason") }),
|
|
147
|
-
gate,
|
|
148
|
-
score: {
|
|
149
|
-
state: scoreState,
|
|
150
|
-
...(earned === undefined ? {} : { earned }),
|
|
151
|
-
...(points === undefined ? {} : { points }),
|
|
152
|
-
},
|
|
153
|
-
...(result["diagnostic"] === undefined ? {} : { diagnostic: result["diagnostic"] }),
|
|
154
|
-
},
|
|
155
|
-
coverage: {
|
|
156
|
-
state: coverageState,
|
|
157
|
-
...(jsonStringOf(coverage, "reason") === undefined ? {} : { reason: jsonStringOf(coverage, "reason") }),
|
|
158
|
-
},
|
|
159
|
-
limitations,
|
|
160
|
-
};
|
|
77
|
+
return value;
|
|
161
78
|
}
|
|
162
|
-
/** sealed result → 展示 outcome;errored 归 failed,理由留在 detail。 */
|
|
163
79
|
function assertionOutcomeOf(entry) {
|
|
164
|
-
const state = entry.result
|
|
80
|
+
const state = entry.decision.result;
|
|
165
81
|
if (state === "matched")
|
|
166
82
|
return "passed";
|
|
167
83
|
if (state === "mismatched" || state === "errored")
|
|
@@ -169,111 +85,26 @@ function assertionOutcomeOf(entry) {
|
|
|
169
85
|
return "unavailable";
|
|
170
86
|
}
|
|
171
87
|
function assertionSeverityOf(entry) {
|
|
172
|
-
|
|
88
|
+
if (entry.decision.gate === "failed" || entry.decision.gate === "unavailable")
|
|
89
|
+
return "gate";
|
|
90
|
+
return entry.decision.contribution.state === "not-scored" ? "recorded" : "soft";
|
|
173
91
|
}
|
|
174
92
|
function scoreOf(entry) {
|
|
175
|
-
const score = entry.
|
|
93
|
+
const score = entry.decision.contribution;
|
|
176
94
|
if (score.state === "not-scored")
|
|
177
95
|
return undefined;
|
|
178
96
|
return {
|
|
179
97
|
state: score.state,
|
|
180
|
-
points: score.points
|
|
181
|
-
...(score.state === "earned" ? { earned: score.earned
|
|
98
|
+
points: score.points,
|
|
99
|
+
...(score.state === "earned" ? { earned: score.earned } : {}),
|
|
182
100
|
};
|
|
183
101
|
}
|
|
184
|
-
function diagnosticLocatorText(record) {
|
|
185
|
-
const locator = jsonRecordOf(record["locator"]);
|
|
186
|
-
if (locator === undefined)
|
|
187
|
-
return undefined;
|
|
188
|
-
const kind = jsonStringOf(locator, "kind");
|
|
189
|
-
if (kind === "json-pointer") {
|
|
190
|
-
const pointer = jsonStringOf(locator, "pointer");
|
|
191
|
-
return pointer === undefined ? undefined : `location: ${pointer}`;
|
|
192
|
-
}
|
|
193
|
-
if (kind === "tool-occurrence") {
|
|
194
|
-
const id = jsonStringOf(locator, "id");
|
|
195
|
-
return id === undefined ? undefined : `location: tool occurrence ${id}`;
|
|
196
|
-
}
|
|
197
|
-
return undefined;
|
|
198
|
-
}
|
|
199
|
-
function childDiagnostics(record) {
|
|
200
|
-
const children = record["children"];
|
|
201
|
-
if (!Array.isArray(children))
|
|
202
|
-
return [];
|
|
203
|
-
return children.flatMap((child) => {
|
|
204
|
-
const childRecord = jsonRecordOf(child);
|
|
205
|
-
const diagnostic = childRecord === undefined ? undefined : jsonRecordOf(childRecord["diagnostic"]);
|
|
206
|
-
return diagnostic === undefined ? [] : [diagnostic];
|
|
207
|
-
});
|
|
208
|
-
}
|
|
209
|
-
function pathWitnessOf(record) {
|
|
210
|
-
for (const child of childDiagnostics(record)) {
|
|
211
|
-
if (jsonStringOf(child, "code") === "path-reference-match")
|
|
212
|
-
return child;
|
|
213
|
-
const nested = pathWitnessOf(child);
|
|
214
|
-
if (nested !== undefined)
|
|
215
|
-
return nested;
|
|
216
|
-
}
|
|
217
|
-
return undefined;
|
|
218
|
-
}
|
|
219
|
-
function diagnosticWasTruncated(record) {
|
|
220
|
-
if (jsonStringOf(record, "code") === "diagnostic-truncated" || record["truncation"] !== undefined)
|
|
221
|
-
return true;
|
|
222
|
-
return childDiagnostics(record).some(diagnosticWasTruncated);
|
|
223
|
-
}
|
|
224
|
-
function diagnosticSummary(value) {
|
|
225
|
-
const record = jsonRecordOf(value);
|
|
226
|
-
if (record === undefined)
|
|
227
|
-
return stableJson(value);
|
|
228
|
-
const message = jsonStringOf(record, "message");
|
|
229
|
-
if (message === undefined)
|
|
230
|
-
return stableJson(value);
|
|
231
|
-
const parts = [message];
|
|
232
|
-
const expected = jsonStringOf(record, "expected");
|
|
233
|
-
const received = jsonStringOf(record, "received");
|
|
234
|
-
const reason = jsonStringOf(record, "reason");
|
|
235
|
-
if (expected !== undefined)
|
|
236
|
-
parts.push(`expected: ${expected}`);
|
|
237
|
-
if (received !== undefined)
|
|
238
|
-
parts.push(`received: ${received}`);
|
|
239
|
-
if (reason !== undefined)
|
|
240
|
-
parts.push(`diagnostic reason: ${reason}`);
|
|
241
|
-
const locator = diagnosticLocatorText(record);
|
|
242
|
-
if (locator !== undefined)
|
|
243
|
-
parts.push(locator);
|
|
244
|
-
const witness = pathWitnessOf(record);
|
|
245
|
-
if (witness !== undefined) {
|
|
246
|
-
const witnessMessage = jsonStringOf(witness, "message");
|
|
247
|
-
const witnessExpected = jsonStringOf(witness, "expected");
|
|
248
|
-
const witnessLocator = diagnosticLocatorText(witness);
|
|
249
|
-
if (witnessMessage !== undefined)
|
|
250
|
-
parts.push(witnessMessage);
|
|
251
|
-
if (witnessExpected !== undefined)
|
|
252
|
-
parts.push(`expected: ${witnessExpected}`);
|
|
253
|
-
if (witnessLocator !== undefined)
|
|
254
|
-
parts.push(witnessLocator);
|
|
255
|
-
}
|
|
256
|
-
if (diagnosticWasTruncated(record))
|
|
257
|
-
parts.push("diagnostic details truncated");
|
|
258
|
-
return parts.join(" · ");
|
|
259
|
-
}
|
|
260
|
-
/** 展示层预拼的判定详情;字段全闭合,不把 matcher diagnostic tree 当作文案。 */
|
|
261
102
|
function assertionDetailOf(entry) {
|
|
262
103
|
const parts = [];
|
|
263
|
-
if (entry.
|
|
264
|
-
parts.push(`reason: ${entry.
|
|
265
|
-
if (entry.
|
|
266
|
-
parts.push(`
|
|
267
|
-
if (entry.result.state === "errored")
|
|
268
|
-
parts.push(`reason: ${entry.result.reason}`);
|
|
269
|
-
if (entry.coverage.state !== "complete") {
|
|
270
|
-
parts.push(`coverage: ${entry.coverage.state}${entry.coverage.reason === undefined ? "" : ` (${entry.coverage.reason})`}`);
|
|
271
|
-
}
|
|
272
|
-
for (const limitation of entry.limitations) {
|
|
273
|
-
parts.push(`limitations: ${limitation.kind}`);
|
|
274
|
-
}
|
|
275
|
-
if (entry.result.diagnostic !== undefined) {
|
|
276
|
-
parts.push(`diagnostic: ${diagnosticSummary(entry.result.diagnostic)}`);
|
|
104
|
+
if (entry.decision.reason !== null)
|
|
105
|
+
parts.push(`reason: ${entry.decision.reason}`);
|
|
106
|
+
if (entry.source.coverage.state !== "complete") {
|
|
107
|
+
parts.push(`coverage: ${entry.source.coverage.state} (${entry.source.coverage.reason})`);
|
|
277
108
|
}
|
|
278
109
|
return parts.join(" · ");
|
|
279
110
|
}
|
|
@@ -285,6 +116,88 @@ function assertionNameOf(entry) {
|
|
|
285
116
|
return display.key;
|
|
286
117
|
return entry.entryId;
|
|
287
118
|
}
|
|
119
|
+
function factValue(value) {
|
|
120
|
+
return { kind: "value", value };
|
|
121
|
+
}
|
|
122
|
+
function limitationFact(limitation) {
|
|
123
|
+
switch (limitation.kind) {
|
|
124
|
+
case "redacted":
|
|
125
|
+
return { kind: "fields", fields: [
|
|
126
|
+
{ label: "kind", value: factValue(limitation.kind) },
|
|
127
|
+
{ label: "fieldCount", value: factValue(limitation.fieldCount) },
|
|
128
|
+
] };
|
|
129
|
+
case "sampled":
|
|
130
|
+
return { kind: "fields", fields: [
|
|
131
|
+
{ label: "kind", value: factValue(limitation.kind) },
|
|
132
|
+
{ label: "captured", value: factValue(limitation.captured) },
|
|
133
|
+
...(limitation.knownTotal === undefined
|
|
134
|
+
? []
|
|
135
|
+
: [{ label: "knownTotal", value: factValue(limitation.knownTotal) }]),
|
|
136
|
+
] };
|
|
137
|
+
case "truncated":
|
|
138
|
+
return { kind: "fields", fields: [
|
|
139
|
+
{ label: "kind", value: factValue(limitation.kind) },
|
|
140
|
+
{ label: "omittedBytes", value: factValue(limitation.omittedBytes) },
|
|
141
|
+
] };
|
|
142
|
+
case "provider-limited":
|
|
143
|
+
return { kind: "fields", fields: [
|
|
144
|
+
{ label: "kind", value: factValue(limitation.kind) },
|
|
145
|
+
] };
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
function assertionEvidenceOf(entry) {
|
|
149
|
+
const coverageFields = [
|
|
150
|
+
{ label: "state", value: factValue(entry.source.coverage.state) },
|
|
151
|
+
];
|
|
152
|
+
if ("reason" in entry.source.coverage) {
|
|
153
|
+
coverageFields.push({ label: "reason", value: factValue(entry.source.coverage.reason) });
|
|
154
|
+
}
|
|
155
|
+
const source = {
|
|
156
|
+
kind: "fields",
|
|
157
|
+
fields: [
|
|
158
|
+
...entry.source.fields,
|
|
159
|
+
{ label: "coverage", value: { kind: "fields", fields: coverageFields } },
|
|
160
|
+
...(entry.source.limitations.length === 0
|
|
161
|
+
? []
|
|
162
|
+
: [{
|
|
163
|
+
label: "limitations",
|
|
164
|
+
value: { kind: "list", items: entry.source.limitations.map(limitationFact) },
|
|
165
|
+
}]),
|
|
166
|
+
],
|
|
167
|
+
};
|
|
168
|
+
const receipt = entry.observed.receipt;
|
|
169
|
+
const observed = receipt === undefined
|
|
170
|
+
? entry.observed
|
|
171
|
+
: {
|
|
172
|
+
kind: "fields",
|
|
173
|
+
fields: [
|
|
174
|
+
...entry.observed.fields,
|
|
175
|
+
{
|
|
176
|
+
label: "receipt",
|
|
177
|
+
value: {
|
|
178
|
+
kind: "fields",
|
|
179
|
+
fields: [
|
|
180
|
+
{ label: "examined", value: factValue(receipt.examined) },
|
|
181
|
+
{ label: "matched", value: factValue(receipt.matched) },
|
|
182
|
+
{ label: "mismatched", value: factValue(receipt.mismatched) },
|
|
183
|
+
{ label: "unavailable", value: factValue(receipt.unavailable) },
|
|
184
|
+
{ label: "knownTotal", value: factValue(receipt.knownTotal) },
|
|
185
|
+
{ label: "complete", value: factValue(receipt.complete) },
|
|
186
|
+
{ label: "exhaustive", value: factValue(receipt.exhaustive) },
|
|
187
|
+
{ label: "decisive", value: factValue(receipt.decisive) },
|
|
188
|
+
],
|
|
189
|
+
},
|
|
190
|
+
},
|
|
191
|
+
],
|
|
192
|
+
};
|
|
193
|
+
return {
|
|
194
|
+
source,
|
|
195
|
+
check: entry.check,
|
|
196
|
+
observed: { kind: "fields", fields: observed.kind === "fields" ? observed.fields : [] },
|
|
197
|
+
expected: entry.expected,
|
|
198
|
+
explanation: entry.explanation,
|
|
199
|
+
};
|
|
200
|
+
}
|
|
288
201
|
function assertionViewOf(entry) {
|
|
289
202
|
const score = scoreOf(entry);
|
|
290
203
|
return {
|
|
@@ -294,6 +207,7 @@ function assertionViewOf(entry) {
|
|
|
294
207
|
outcome: assertionOutcomeOf(entry),
|
|
295
208
|
groupPath: entry.display.groupPath,
|
|
296
209
|
detail: assertionDetailOf(entry),
|
|
210
|
+
evidence: assertionEvidenceOf(entry),
|
|
297
211
|
...(score === undefined ? {} : { score }),
|
|
298
212
|
};
|
|
299
213
|
}
|
|
@@ -325,9 +239,7 @@ function scorePointsEarnedOf(assertions) {
|
|
|
325
239
|
function attemptAssertionsData(detail) {
|
|
326
240
|
if (detail === undefined)
|
|
327
241
|
return null;
|
|
328
|
-
const entries = detail.entries
|
|
329
|
-
.map(assertionEntryViewOf)
|
|
330
|
-
.filter((entry) => entry !== undefined);
|
|
242
|
+
const entries = detail.entries.map(assertionEntryViewOf);
|
|
331
243
|
if (entries.length === 0)
|
|
332
244
|
return null;
|
|
333
245
|
const assertions = entries.map(assertionViewOf);
|
|
@@ -431,7 +343,7 @@ function conversationReplyOf(item, callsById) {
|
|
|
431
343
|
inputSummary: call?.inputSummary ?? "",
|
|
432
344
|
outputSummary: item.outputSummary,
|
|
433
345
|
outcome: item.outcome,
|
|
434
|
-
failed: item.outcome === "failed"
|
|
346
|
+
failed: item.outcome === "failed",
|
|
435
347
|
};
|
|
436
348
|
}
|
|
437
349
|
case "thinking-summary":
|
|
@@ -742,37 +654,16 @@ function attemptDiffData(detail, locator) {
|
|
|
742
654
|
return { locator, collection: detail.collection, files };
|
|
743
655
|
}
|
|
744
656
|
// ───────────────────────── AttemptSource ─────────────────────────
|
|
745
|
-
/** sourceSites 在 DomainView 边界是 JsonValue;这里做最小结构读取,读不到即跳过。 */
|
|
746
657
|
function siteViewOf(value) {
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
const end = record["end"];
|
|
757
|
-
if (typeof entryId !== "string" ||
|
|
758
|
-
typeof sourceOrder !== "number" ||
|
|
759
|
-
!Number.isSafeInteger(sourceOrder) ||
|
|
760
|
-
sourceOrder < 1 ||
|
|
761
|
-
typeof role !== "string" ||
|
|
762
|
-
typeof sourceItemId !== "string" ||
|
|
763
|
-
typeof sha256 !== "string")
|
|
764
|
-
return undefined;
|
|
765
|
-
if (typeof start !== "object" || start === null || Array.isArray(start))
|
|
766
|
-
return undefined;
|
|
767
|
-
if (typeof end !== "object" || end === null || Array.isArray(end))
|
|
768
|
-
return undefined;
|
|
769
|
-
const startLine = start["line"];
|
|
770
|
-
const endLine = end["line"];
|
|
771
|
-
if (typeof startLine !== "number" || typeof endLine !== "number")
|
|
772
|
-
return undefined;
|
|
773
|
-
if (startLine < 1 || endLine < startLine)
|
|
774
|
-
return undefined;
|
|
775
|
-
return { entryId, sourceOrder, role, sourceItemId, sha256, startLine, endLine };
|
|
658
|
+
return {
|
|
659
|
+
entryId: value.entryId,
|
|
660
|
+
sourceOrder: value.sourceOrder,
|
|
661
|
+
role: value.role,
|
|
662
|
+
sourceItemId: value.sourceItemId,
|
|
663
|
+
sha256: value.sha256,
|
|
664
|
+
startLine: value.start.line,
|
|
665
|
+
endLine: value.end.line,
|
|
666
|
+
};
|
|
776
667
|
}
|
|
777
668
|
function attemptSourceData(input) {
|
|
778
669
|
const { locator, items, sourceSites, entries, navigation } = input;
|
|
@@ -781,7 +672,7 @@ function attemptSourceData(input) {
|
|
|
781
672
|
const knownEntryIds = new Set(entries.map((entry) => entry.entryId));
|
|
782
673
|
const sites = sourceSites
|
|
783
674
|
.map(siteViewOf)
|
|
784
|
-
.filter((site) =>
|
|
675
|
+
.filter((site) => knownEntryIds.has(site.entryId));
|
|
785
676
|
const firstOrderByItem = new Map();
|
|
786
677
|
for (const site of sites) {
|
|
787
678
|
const key = `${site.sourceItemId}:${site.sha256}`;
|
|
@@ -819,20 +710,6 @@ function attemptSourceData(input) {
|
|
|
819
710
|
...(navigation === undefined ? {} : { navigation }),
|
|
820
711
|
};
|
|
821
712
|
}
|
|
822
|
-
// ───────────────────────── helpers ─────────────────────────
|
|
823
|
-
function stableJson(value) {
|
|
824
|
-
if (value === null || typeof value === "string" || typeof value === "boolean") {
|
|
825
|
-
return typeof value === "string" ? value : String(value);
|
|
826
|
-
}
|
|
827
|
-
if (typeof value === "number")
|
|
828
|
-
return String(value);
|
|
829
|
-
if (Array.isArray(value))
|
|
830
|
-
return JSON.stringify(value);
|
|
831
|
-
const keys = Object.keys(value).sort(compareText);
|
|
832
|
-
if (keys.length === 0)
|
|
833
|
-
return "{}";
|
|
834
|
-
return `{${keys.map((key) => `${JSON.stringify(key)}:${stableJson(value[key])}`).join(",")}}`;
|
|
835
|
-
}
|
|
836
713
|
function compareText(left, right) {
|
|
837
714
|
return left < right ? -1 : left > right ? 1 : 0;
|
|
838
715
|
}
|