sparkforensics-server 0.5.0 → 0.5.1
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/package.json +3 -3
- package/public/assets/{AutoscalingChurn-9Zo6IMGS.js → AutoscalingChurn-5hDGIXi4.js} +1 -1
- package/public/assets/{CacheUtilization-MBDfMsKC.js → CacheUtilization-CT2SCnJJ.js} +1 -1
- package/public/assets/{CachingOpportunity-Cfw3wAFa.js → CachingOpportunity-D_O_WkbH.js} +1 -1
- package/public/assets/{ColdStart-BtS12b6_.js → ColdStart-B38OiAOp.js} +1 -1
- package/public/assets/{ConfigAudit-DNPV6EQg.js → ConfigAudit-BoplryCH.js} +1 -1
- package/public/assets/{CoreUsageArea-BObEeenE.js → CoreUsageArea-csgwNxkl.js} +1 -1
- package/public/assets/{Dashboard-CC_BXrNy.js → Dashboard-BgKodJl2.js} +2 -2
- package/public/assets/{DisclosureContext-Ds0hcZFn.js → DisclosureContext-B0siMVdg.js} +1 -1
- package/public/assets/{DuplicatePlanSubtree-vN3zqRsi.js → DuplicatePlanSubtree-BqS2A2j4.js} +1 -1
- package/public/assets/{ExecutorUtilization-CZObSLIj.js → ExecutorUtilization-Dp52QGWo.js} +1 -1
- package/public/assets/{GcPressure-ByJlLOua.js → GcPressure-CT1yzR_s.js} +1 -1
- package/public/assets/{IncompleteRun-MzqV4W8y.js → IncompleteRun-C7Qkjtjn.js} +1 -1
- package/public/assets/{JobFailures-LbMvAwAb.js → JobFailures-WHl3ELfh.js} +1 -1
- package/public/assets/{MemoryUtilization-DH4jYvJK.js → MemoryUtilization-D8IUDHJI.js} +1 -1
- package/public/assets/{OverBroadcast-euk6HKg4.js → OverBroadcast-6oSSAQ_R.js} +1 -1
- package/public/assets/{PartitionHint-DThaMMRT.js → PartitionHint-CUvbnnxy.js} +1 -1
- package/public/assets/{PartitionSizing-yIN-iZzx.js → PartitionSizing-BwdFL-mw.js} +1 -1
- package/public/assets/{PlanExplorer-Dd9WPK4S.js → PlanExplorer-DcxmiQWL.js} +1 -1
- package/public/assets/{PlanGraphRoute-NV5mCXRm.js → PlanGraphRoute-pqnHTt4i.js} +1 -1
- package/public/assets/{RetryWaste-CXH4D-xH.js → RetryWaste-BTbeHkJc.js} +1 -1
- package/public/assets/{ShuffleIO-CW7U68ph.js → ShuffleIO-CRhrYNE0.js} +1 -1
- package/public/assets/{Skew-PL79TppX.js → Skew-DSNXRG9V.js} +1 -1
- package/public/assets/{SlowHost-GBO73hCi.js → SlowHost-B7Lwu2EU.js} +1 -1
- package/public/assets/{SmallFiles-B5cUjEav.js → SmallFiles-C082c2rd.js} +1 -1
- package/public/assets/{SpeculationWaste-mxi3jgb0.js → SpeculationWaste-BS2vpadr.js} +1 -1
- package/public/assets/{Spill-CH1bNpxL.js → Spill-B4DVKHXx.js} +1 -1
- package/public/assets/{StageFailed-YvxC11ii.js → StageFailed-D3ac9Sou.js} +1 -1
- package/public/assets/{StageFindingGroup-B1A0nf-e.js → StageFindingGroup-D9naK109.js} +1 -1
- package/public/assets/{StageHeader-BMNmUy-s.js → StageHeader-pI1nTwVf.js} +1 -1
- package/public/assets/{StageShape-DO3mQ6NS.js → StageShape-eO5le8iG.js} +1 -1
- package/public/assets/{StageSlowness-SwRxfAEx.js → StageSlowness-BaNyfNvL.js} +1 -1
- package/public/assets/{Straggler-DHLTiBY-.js → Straggler-D5Fnok_y.js} +1 -1
- package/public/assets/{TaskFailures-Bj0QxiOc.js → TaskFailures-BWnC-K_G.js} +1 -1
- package/public/assets/{TinyTask-COUQQ5bQ.js → TinyTask-8_5lpq_2.js} +1 -1
- package/public/assets/{UnderBroadcast-RAUbQ6vw.js → UnderBroadcast-DJ0XSwth.js} +1 -1
- package/public/assets/{finding-anchor-Dl8mIHiU.js → finding-anchor-Cys8Z6Yn.js} +1 -1
- package/public/assets/{impact-sort-Eihua9dY.js → impact-sort-BTQndbof.js} +1 -1
- package/public/assets/index-DCeWge12.js +13 -0
- package/public/assets/parser-worker-DmeCnLWU.js +122 -0
- package/public/assets/{plan-graph-vendor-B0sEms9Z.js → plan-graph-vendor-BYl-AzN5.js} +1 -1
- package/public/assets/{react-vendor-BAKt3vny.js → react-vendor-DEdfrRTJ.js} +1 -1
- package/public/assets/{select-DkjFHlXR.js → select-DIYN6D3y.js} +1 -1
- package/public/assets/{usePagedRows-Bo-aSztx.js → usePagedRows-BxvdFnPk.js} +1 -1
- package/public/assets/{useRecentFiles-Bb4-ukVz.js → useRecentFiles-C3Ov47U7.js} +4 -4
- package/public/assets/{useSortMode-lDedD5a3.js → useSortMode-B8SRfAoG.js} +1 -1
- package/public/docs/404.html +2 -2
- package/public/docs/assets/{app.yjczoibf.js → app.D2GqAkhy.js} +1 -1
- package/public/docs/assets/chunks/@localSearchIndexroot.D4OdkQjy.js +1 -0
- package/public/docs/assets/chunks/{VPLocalSearchBox.DOBbPfix.js → VPLocalSearchBox.BS4cSmtW.js} +1 -1
- package/public/docs/assets/chunks/{theme.DFcAl8Ws.js → theme.BuxVpb0H.js} +2 -2
- package/public/docs/assets/contributor-guide_architecture_board-widgets.md.YQcj5EI4.js +1 -0
- package/public/docs/assets/{contributor-guide_architecture_board-widgets.md.D0Kkk_r5.lean.js → contributor-guide_architecture_board-widgets.md.YQcj5EI4.lean.js} +1 -1
- package/public/docs/assets/contributor-guide_architecture_board-widgets_caching-and-memory.md.8bH1HnZp.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_board-widgets_caching-and-memory.md.8bH1HnZp.lean.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_board-widgets_plan-advisor.md.RlzvUmNm.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_board-widgets_plan-advisor.md.RlzvUmNm.lean.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_board-widgets_visual-system-and-templating.md.DYgUpIJB.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_board-widgets_visual-system-and-templating.md.DYgUpIJB.lean.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_detector-contract.md.wj6Et6UD.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_detector-contract.md.wj6Et6UD.lean.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_detector-contract_plan-attribution.md.yNex4bys.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_detector-contract_plan-attribution.md.yNex4bys.lean.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_detector-contract_threshold-tables.md.fkPBXsU2.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_detector-contract_threshold-tables.md.fkPBXsU2.lean.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_drill-down.md.CqZPrdo9.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_drill-down.md.CqZPrdo9.lean.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_drill-down_plan-graph.md.DwOozIEs.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_drill-down_plan-graph.md.DwOozIEs.lean.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_impact-estimation.md.CZv_ZGOp.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_impact-estimation.md.CZv_ZGOp.lean.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_impact-estimation_caveats-tuning-and-coverage.md.BUucRc0A.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_impact-estimation_caveats-tuning-and-coverage.md.BUucRc0A.lean.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_impact-estimation_stage-union-rollup.md.DdCGtAGu.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_impact-estimation_stage-union-rollup.md.DdCGtAGu.lean.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_index.md.tymxf1Fh.js +1 -0
- package/public/docs/assets/{contributor-guide_architecture_index.md.B9yZieYL.lean.js → contributor-guide_architecture_index.md.tymxf1Fh.lean.js} +1 -1
- package/public/docs/assets/contributor-guide_architecture_overview.md.C1sSvm9i.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_state-and-history.md.DyCBdjuM.js +1 -0
- package/public/docs/assets/{contributor-guide_architecture_state-and-history.md.w4lwybdh.lean.js → contributor-guide_architecture_state-and-history.md.DyCBdjuM.lean.js} +1 -1
- package/public/docs/assets/contributor-guide_architecture_state-and-history_history-server-intake.md.C298hrHZ.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_state-and-history_history-server-intake.md.C298hrHZ.lean.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_state-and-history_run-comparison-internals.md.uuAKpY0Y.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_state-and-history_run-comparison-internals.md.uuAKpY0Y.lean.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_widget-rendering.md.BOZ1azXG.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_widget-rendering.md.BOZ1azXG.lean.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_widget-rendering_findings-tab.md.BQXycK6G.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_widget-rendering_findings-tab.md.BQXycK6G.lean.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_widget-rendering_investigation-routing.md.BGdiyElu.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_widget-rendering_investigation-routing.md.BGdiyElu.lean.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_widget-rendering_list-sort-mode.md.BuHKgH0C.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_widget-rendering_list-sort-mode.md.BuHKgH0C.lean.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_widget-rendering_reference-section.md.DWqC80bN.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_widget-rendering_reference-section.md.DWqC80bN.lean.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_widget-rendering_row-expand-contract.md.ZT89u9f1.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_widget-rendering_row-expand-contract.md.ZT89u9f1.lean.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_worker-protocol.md.BAnhi2-d.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_worker-protocol.md.BAnhi2-d.lean.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_worker-protocol_cli-and-mcp.md.Dk08VS7n.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_worker-protocol_cli-and-mcp.md.Dk08VS7n.lean.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_worker-protocol_core-and-event-validation.md.DSVFPpWb.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_worker-protocol_core-and-event-validation.md.DSVFPpWb.lean.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_worker-protocol_evidence-availability.md.CjimIDBY.js +6 -0
- package/public/docs/assets/contributor-guide_architecture_worker-protocol_evidence-availability.md.CjimIDBY.lean.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_worker-protocol_evidence-report.md.DVGZOWvW.js +1 -0
- package/public/docs/assets/contributor-guide_architecture_worker-protocol_evidence-report.md.DVGZOWvW.lean.js +1 -0
- package/public/docs/assets/user-guide_alternative-log-retrieval.md.CJpYvHGo.js +4 -0
- package/public/docs/assets/user-guide_alternative-log-retrieval.md.CJpYvHGo.lean.js +1 -0
- package/public/docs/assets/user-guide_alternative-log-retrieval_managed-platforms.md.DvDwHNtC.js +4 -0
- package/public/docs/assets/user-guide_alternative-log-retrieval_managed-platforms.md.DvDwHNtC.lean.js +1 -0
- package/public/docs/assets/user-guide_alternative-log-retrieval_ssh-bastion.md.Gszzlplv.js +1 -0
- package/public/docs/assets/user-guide_alternative-log-retrieval_ssh-bastion.md.Gszzlplv.lean.js +1 -0
- package/public/docs/assets/user-guide_getting-started.md.DYHHHkQR.js +1 -0
- package/public/docs/assets/user-guide_getting-started.md.DYHHHkQR.lean.js +1 -0
- package/public/docs/assets/user-guide_getting-started_ci-and-automation.md.DpnfKz3x.js +22 -0
- package/public/docs/assets/user-guide_getting-started_ci-and-automation.md.DpnfKz3x.lean.js +1 -0
- package/public/docs/assets/user-guide_getting-started_reading-the-dashboard.md.Obf3W3__.js +1 -0
- package/public/docs/assets/user-guide_getting-started_reading-the-dashboard.md.Obf3W3__.lean.js +1 -0
- package/public/docs/assets/user-guide_getting-started_regression-metric-keys.md.B_gzr2Mw.js +1 -0
- package/public/docs/assets/user-guide_getting-started_regression-metric-keys.md.B_gzr2Mw.lean.js +1 -0
- package/public/docs/assets/user-guide_getting-started_tuning-thresholds.md.B_MyjyZm.js +4 -0
- package/public/docs/assets/user-guide_getting-started_tuning-thresholds.md.B_MyjyZm.lean.js +1 -0
- package/public/docs/assets/user-guide_mcp-tools.md.C65SjWUL.js +16 -0
- package/public/docs/assets/user-guide_mcp-tools.md.C65SjWUL.lean.js +1 -0
- package/public/docs/assets/user-guide_mcp-tools_compare-runs.md.CPowlb2q.js +55 -0
- package/public/docs/assets/user-guide_mcp-tools_compare-runs.md.CPowlb2q.lean.js +1 -0
- package/public/docs/assets/user-guide_mcp-tools_diagnose-run.md.BP1vnHA5.js +23 -0
- package/public/docs/assets/user-guide_mcp-tools_diagnose-run.md.BP1vnHA5.lean.js +1 -0
- package/public/docs/assets/user-guide_mcp-tools_evaluate-budgets.md.Dq5Azk8G.js +26 -0
- package/public/docs/assets/user-guide_mcp-tools_evaluate-budgets.md.Dq5Azk8G.lean.js +1 -0
- package/public/docs/assets/user-guide_mcp-tools_get-finding-documentation.md.BtTTHNV6.js +14 -0
- package/public/docs/assets/user-guide_mcp-tools_get-finding-documentation.md.BtTTHNV6.lean.js +1 -0
- package/public/docs/assets/user-guide_mcp-tools_get-finding-evidence.md.rKyu4wts.js +20 -0
- package/public/docs/assets/user-guide_mcp-tools_get-finding-evidence.md.rKyu4wts.lean.js +1 -0
- package/public/docs/assets/user-guide_mcp-tools_get-reference-doc.md.Yac4tH3u.js +5 -0
- package/public/docs/assets/user-guide_mcp-tools_get-reference-doc.md.Yac4tH3u.lean.js +1 -0
- package/public/docs/assets/user-guide_mcp-tools_get-run-summary.md.DpxZ4ZNp.js +15 -0
- package/public/docs/assets/user-guide_mcp-tools_get-run-summary.md.DpxZ4ZNp.lean.js +1 -0
- package/public/docs/assets/user-guide_mcp-tools_list-runs.md.DpQPeCM3.js +12 -0
- package/public/docs/assets/user-guide_mcp-tools_list-runs.md.DpQPeCM3.lean.js +1 -0
- package/public/docs/assets/{user-guide_run-comparison.md.qin0a4IX.js → user-guide_run-comparison.md.B6aNtDYF.js} +1 -1
- package/public/docs/assets/user-guide_run-comparison.md.B6aNtDYF.lean.js +1 -0
- package/public/docs/assets/user-guide_run-comparison_how-stages-are-matched.md.XBzQ1oEU.js +1 -0
- package/public/docs/assets/user-guide_run-comparison_how-stages-are-matched.md.XBzQ1oEU.lean.js +1 -0
- package/public/docs/assets/user-guide_understanding-findings.md.Dqt2H_C1.js +1 -0
- package/public/docs/contributor-guide/architecture/board-widgets/caching-and-memory.html +30 -0
- package/public/docs/contributor-guide/architecture/board-widgets/plan-advisor.html +30 -0
- package/public/docs/contributor-guide/architecture/board-widgets/visual-system-and-templating.html +30 -0
- package/public/docs/contributor-guide/architecture/board-widgets.html +5 -5
- package/public/docs/contributor-guide/architecture/detector-contract/plan-attribution.html +30 -0
- package/public/docs/contributor-guide/architecture/detector-contract/threshold-tables.html +30 -0
- package/public/docs/contributor-guide/architecture/detector-contract.html +5 -5
- package/public/docs/contributor-guide/architecture/drill-down/plan-graph.html +30 -0
- package/public/docs/contributor-guide/architecture/drill-down.html +5 -5
- package/public/docs/contributor-guide/architecture/impact-estimation/caveats-tuning-and-coverage.html +30 -0
- package/public/docs/contributor-guide/architecture/impact-estimation/stage-union-rollup.html +30 -0
- package/public/docs/contributor-guide/architecture/impact-estimation.html +5 -5
- package/public/docs/contributor-guide/architecture/index.html +5 -5
- package/public/docs/contributor-guide/architecture/overview.html +5 -5
- package/public/docs/contributor-guide/architecture/state-and-history/history-server-intake.html +30 -0
- package/public/docs/contributor-guide/architecture/state-and-history/run-comparison-internals.html +30 -0
- package/public/docs/contributor-guide/architecture/state-and-history.html +5 -5
- package/public/docs/contributor-guide/architecture/widget-rendering/findings-tab.html +30 -0
- package/public/docs/contributor-guide/architecture/widget-rendering/investigation-routing.html +30 -0
- package/public/docs/contributor-guide/architecture/widget-rendering/list-sort-mode.html +30 -0
- package/public/docs/contributor-guide/architecture/widget-rendering/reference-section.html +30 -0
- package/public/docs/contributor-guide/architecture/widget-rendering/row-expand-contract.html +30 -0
- package/public/docs/contributor-guide/architecture/widget-rendering.html +5 -5
- package/public/docs/contributor-guide/architecture/worker-protocol/cli-and-mcp.html +30 -0
- package/public/docs/contributor-guide/architecture/worker-protocol/core-and-event-validation.html +30 -0
- package/public/docs/contributor-guide/architecture/worker-protocol/evidence-availability.html +35 -0
- package/public/docs/contributor-guide/architecture/worker-protocol/evidence-report.html +30 -0
- package/public/docs/contributor-guide/architecture/worker-protocol.html +5 -10
- package/public/docs/contributor-guide/contributing.html +4 -4
- package/public/docs/contributor-guide/development-setup.html +4 -4
- package/public/docs/contributor-guide/testing.html +4 -4
- package/public/docs/hashmap.json +1 -1
- package/public/docs/index.html +3 -3
- package/public/docs/tuning-reference/anti-patterns.html +3 -3
- package/public/docs/tuning-reference/aqe.html +3 -3
- package/public/docs/tuning-reference/bottleneck-broadcast-sizing.html +3 -3
- package/public/docs/tuning-reference/bottleneck-cold-start.html +3 -3
- package/public/docs/tuning-reference/bottleneck-duplicate-plan-subtree.html +3 -3
- package/public/docs/tuning-reference/bottleneck-failures.html +3 -3
- package/public/docs/tuning-reference/bottleneck-gc.html +3 -3
- package/public/docs/tuning-reference/bottleneck-job-failure-rate.html +3 -3
- package/public/docs/tuning-reference/bottleneck-memory-utilization.html +3 -3
- package/public/docs/tuning-reference/bottleneck-retry-waste.html +3 -3
- package/public/docs/tuning-reference/bottleneck-shuffle.html +3 -3
- package/public/docs/tuning-reference/bottleneck-skew.html +3 -3
- package/public/docs/tuning-reference/bottleneck-slow-host.html +3 -3
- package/public/docs/tuning-reference/bottleneck-small-files.html +3 -3
- package/public/docs/tuning-reference/bottleneck-spill.html +3 -3
- package/public/docs/tuning-reference/bottleneck-straggler.html +3 -3
- package/public/docs/tuning-reference/bottleneck-tiny-tasks.html +3 -3
- package/public/docs/tuning-reference/bottleneck-utilization.html +3 -3
- package/public/docs/tuning-reference/caching.html +3 -3
- package/public/docs/tuning-reference/cluster-config.html +3 -3
- package/public/docs/tuning-reference/config.html +3 -3
- package/public/docs/tuning-reference/data-formats.html +3 -3
- package/public/docs/tuning-reference/index.html +3 -3
- package/public/docs/tuning-reference/intro.html +3 -3
- package/public/docs/tuning-reference/joins.html +3 -3
- package/public/docs/tuning-reference/memory-model.html +3 -3
- package/public/docs/tuning-reference/metrics.html +3 -3
- package/public/docs/tuning-reference/partitioning.html +3 -3
- package/public/docs/tuning-reference/pyspark.html +3 -3
- package/public/docs/tuning-reference/shuffle.html +3 -3
- package/public/docs/tuning-reference/spark-architecture.html +3 -3
- package/public/docs/tuning-reference/table-formats.html +3 -3
- package/public/docs/user-guide/alternative-log-retrieval/managed-platforms.html +33 -0
- package/public/docs/user-guide/alternative-log-retrieval/ssh-bastion.html +30 -0
- package/public/docs/user-guide/alternative-log-retrieval.html +6 -9
- package/public/docs/user-guide/getting-started/ci-and-automation.html +51 -0
- package/public/docs/user-guide/getting-started/reading-the-dashboard.html +30 -0
- package/public/docs/user-guide/getting-started/regression-metric-keys.html +30 -0
- package/public/docs/user-guide/getting-started/tuning-thresholds.html +33 -0
- package/public/docs/user-guide/getting-started.html +5 -28
- package/public/docs/user-guide/mcp-tools/compare-runs.html +84 -0
- package/public/docs/user-guide/mcp-tools/diagnose-run.html +52 -0
- package/public/docs/user-guide/mcp-tools/evaluate-budgets.html +55 -0
- package/public/docs/user-guide/mcp-tools/get-finding-documentation.html +43 -0
- package/public/docs/user-guide/mcp-tools/get-finding-evidence.html +49 -0
- package/public/docs/user-guide/mcp-tools/get-reference-doc.html +34 -0
- package/public/docs/user-guide/mcp-tools/get-run-summary.html +44 -0
- package/public/docs/user-guide/mcp-tools/list-runs.html +41 -0
- package/public/docs/user-guide/mcp-tools.html +8 -140
- package/public/docs/user-guide/run-comparison/how-stages-are-matched.html +30 -0
- package/public/docs/user-guide/run-comparison.html +5 -5
- package/public/docs/user-guide/understanding-findings.html +5 -5
- package/public/export-template.html +44 -44
- package/public/index.html +4 -4
- package/vendor-core/analyzer.js +1 -1
- package/vendor-core/api-merge-writes.js +80 -0
- package/vendor-core/comparison-output.js +49 -0
- package/vendor-core/core-source-hash.txt +1 -1
- package/vendor-core/delta-commands.js +13 -0
- package/vendor-core/delta-log-paths.js +42 -0
- package/vendor-core/delta-targets.js +127 -0
- package/vendor-core/event-handlers.js +95 -9
- package/vendor-core/event-schemas.js +3 -1
- package/vendor-core/evidence-report.js +13 -4
- package/vendor-core/mcp-server-factory.js +13 -6
- package/vendor-core/mcp-tools.js +44 -35
- package/vendor-core/plan-graph-model.js +1 -1
- package/vendor-core/plan-summary.js +13 -10
- package/vendor-core/run-comparison.js +79 -120
- package/vendor-core/run-output.js +26 -0
- package/vendor-core/stage-alignment.js +262 -0
- package/vendor-core/stage-identity.js +112 -0
- package/vendor-core/types.js +5 -0
- package/vendor-core/write-target-args.js +48 -0
- package/vendor-core/write-targets.js +35 -52
- package/public/assets/index-DaC8A2FS.js +0 -13
- package/public/assets/parser-worker-CfDvPkwF.js +0 -122
- package/public/docs/assets/chunks/@localSearchIndexroot.r9imX8Aq.js +0 -1
- package/public/docs/assets/contributor-guide_architecture_board-widgets.md.D0Kkk_r5.js +0 -1
- package/public/docs/assets/contributor-guide_architecture_detector-contract.md.caA46z-u.js +0 -1
- package/public/docs/assets/contributor-guide_architecture_detector-contract.md.caA46z-u.lean.js +0 -1
- package/public/docs/assets/contributor-guide_architecture_drill-down.md.CdtlKHl-.js +0 -1
- package/public/docs/assets/contributor-guide_architecture_drill-down.md.CdtlKHl-.lean.js +0 -1
- package/public/docs/assets/contributor-guide_architecture_impact-estimation.md.BNp14LtL.js +0 -1
- package/public/docs/assets/contributor-guide_architecture_impact-estimation.md.BNp14LtL.lean.js +0 -1
- package/public/docs/assets/contributor-guide_architecture_index.md.B9yZieYL.js +0 -1
- package/public/docs/assets/contributor-guide_architecture_overview.md.DBGo-bwn.js +0 -1
- package/public/docs/assets/contributor-guide_architecture_state-and-history.md.w4lwybdh.js +0 -1
- package/public/docs/assets/contributor-guide_architecture_widget-rendering.md.CcvqxnZI.js +0 -1
- package/public/docs/assets/contributor-guide_architecture_widget-rendering.md.CcvqxnZI.lean.js +0 -1
- package/public/docs/assets/contributor-guide_architecture_worker-protocol.md.CKeFttKj.js +0 -6
- package/public/docs/assets/contributor-guide_architecture_worker-protocol.md.CKeFttKj.lean.js +0 -1
- package/public/docs/assets/user-guide_alternative-log-retrieval.md.z-8npxNk.js +0 -7
- package/public/docs/assets/user-guide_alternative-log-retrieval.md.z-8npxNk.lean.js +0 -1
- package/public/docs/assets/user-guide_getting-started.md.BJW5oVhe.js +0 -24
- package/public/docs/assets/user-guide_getting-started.md.BJW5oVhe.lean.js +0 -1
- package/public/docs/assets/user-guide_mcp-tools.md.DcLiOa9t.js +0 -148
- package/public/docs/assets/user-guide_mcp-tools.md.DcLiOa9t.lean.js +0 -1
- package/public/docs/assets/user-guide_run-comparison.md.qin0a4IX.lean.js +0 -1
- package/public/docs/assets/user-guide_understanding-findings.md.DzReyCXb.js +0 -1
- /package/public/docs/assets/{contributor-guide_architecture_overview.md.DBGo-bwn.lean.js → contributor-guide_architecture_overview.md.C1sSvm9i.lean.js} +0 -0
- /package/public/docs/assets/{user-guide_understanding-findings.md.DzReyCXb.lean.js → user-guide_understanding-findings.md.Dqt2H_C1.lean.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{A as t,M as n}from"./charts-vendor-0VMaLVLN.js";import{ct as r,et as i,nt as a,rt as o,tt as s}from"./react-vendor-BAKt3vny.js";import{p as c}from"./plan-graph-vendor-B0sEms9Z.js";var l=e(n(),1),u=e=>typeof e==`boolean`?`${e}`:e===0?`0`:e,d=t,f=(e,t)=>n=>{if(t?.variants==null)return d(e,n?.class,n?.className);let{variants:r,defaultVariants:i}=t,a=Object.keys(r).map(e=>{let t=n?.[e],a=i?.[e];if(t===null)return null;let o=u(t)||u(a);return r[e][o]}),o=n&&Object.entries(n).reduce((e,t)=>{let[n,r]=t;return r===void 0||(e[n]=r),e},{});return d(e,a,t?.compoundVariants?.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...i,...o}[t]):{...i,...o}[t]===n})?[...e,n,r]:e},[]),n?.class,n?.className)},p=(e,t)=>{let n=Array(e.length+t.length);for(let t=0;t<e.length;t++)n[t]=e[t];for(let r=0;r<t.length;r++)n[e.length+r]=t[r];return n},m=(e,t)=>({classGroupId:e,validator:t}),h=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),g=`-`,_=[],v=`arbitrary..`,y=e=>{let t=te(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:e=>{if(e.startsWith(`[`)&&e.endsWith(`]`))return ee(e);let n=e.split(g);return b(n,+(n[0]===``&&n.length>1),t)},getConflictingClassGroupIds:(e,t)=>{if(t){let t=r[e],i=n[e];return t?i?p(i,t):t:i||_}return n[e]||_}}},b=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;let r=e[t],i=n.nextPart.get(r);if(i){let n=b(e,t+1,i);if(n)return n}let a=n.validators;if(a===null)return;let o=t===0?e.join(g):e.slice(t).join(g),s=a.length;for(let e=0;e<s;e++){let t=a[e];if(t.validator(o))return t.classGroupId}},ee=e=>e.slice(1,-1).indexOf(`:`)===-1?void 0:(()=>{let t=e.slice(1,-1),n=t.indexOf(`:`),r=t.slice(0,n);return r?v+r:void 0})(),te=e=>{let{theme:t,classGroups:n}=e;return ne(n,t)},ne=(e,t)=>{let n=h();for(let r in e){let i=e[r];x(i,n,r,t)}return n},x=(e,t,n,r)=>{let i=e.length;for(let a=0;a<i;a++){let i=e[a];S(i,t,n,r)}},S=(e,t,n,r)=>{if(typeof e==`string`){re(e,t,n);return}if(typeof e==`function`){ie(e,t,n,r);return}ae(e,t,n,r)},re=(e,t,n)=>{let r=e===``?t:oe(t,e);r.classGroupId=n},ie=(e,t,n,r)=>{if(se(e)){x(e(r),t,n,r);return}t.validators===null&&(t.validators=[]),t.validators.push(m(n,e))},ae=(e,t,n,r)=>{let i=Object.entries(e),a=i.length;for(let e=0;e<a;e++){let[a,o]=i[e];x(o,oe(t,a),n,r)}},oe=(e,t)=>{let n=e,r=t.split(g),i=r.length;for(let e=0;e<i;e++){let t=r[e],i=n.nextPart.get(t);i||(i=h(),n.nextPart.set(t,i)),n=i}return n},se=e=>`isThemeGetter`in e&&e.isThemeGetter===!0,C=e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,n=Object.create(null),r=Object.create(null),i=(i,a)=>{n[i]=a,t++,t>e&&(t=0,r=n,n=Object.create(null))};return{get(e){let t=n[e];if(t!==void 0)return t;if((t=r[e])!==void 0)return i(e,t),t},set(e,t){e in n?n[e]=t:i(e,t)}}},w=`!`,T=`:`,ce=[],E=(e,t,n,r,i)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:i}),D=e=>{let{prefix:t,experimentalParseClassName:n}=e,r=e=>{let t=[],n=0,r=0,i=0,a,o=e.length;for(let s=0;s<o;s++){let o=e[s];if(n===0&&r===0){if(o===T){t.push(e.slice(i,s)),i=s+1;continue}if(o===`/`){a=s;continue}}o===`[`?n++:o===`]`?n--:o===`(`?r++:o===`)`&&r--}let s=t.length===0?e:e.slice(i),c=s,l=!1;s.endsWith(w)?(c=s.slice(0,-1),l=!0):s.startsWith(w)&&(c=s.slice(1),l=!0);let u=a&&a>i?a-i:void 0;return E(t,l,c,u)};if(t){let e=t+T,n=r;r=t=>t.startsWith(e)?n(t.slice(e.length)):E(ce,!1,t,void 0,!0)}if(n){let e=r;r=t=>n({className:t,parseClassName:e})}return r},le=e=>{let t=new Map;return e.orderSensitiveModifiers.forEach((e,n)=>{t.set(e,1e6+n)}),e=>{let n=[],r=[];for(let i=0;i<e.length;i++){let a=e[i],o=a[0]===`[`,s=t.has(a);o||s?(r.length>0&&(r.sort(),n.push(...r),r=[]),n.push(a)):r.push(a)}return r.length>0&&(r.sort(),n.push(...r)),n}},ue=e=>({cache:C(e.cacheSize),parseClassName:D(e),sortModifiers:le(e),postfixLookupClassGroupIds:de(e),...y(e)}),de=e=>{let t=Object.create(null),n=e.postfixLookupClassGroups;if(n)for(let e=0;e<n.length;e++)t[n[e]]=!0;return t},fe=/\s+/,O=(e,t)=>{let{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:i,sortModifiers:a,postfixLookupClassGroupIds:o}=t,s=[],c=e.trim().split(fe),l=``;for(let e=c.length-1;e>=0;--e){let t=c[e],{isExternal:u,modifiers:d,hasImportantModifier:f,baseClassName:p,maybePostfixModifierPosition:m}=n(t);if(u){l=t+(l.length>0?` `+l:l);continue}let h=!!m,g;if(h){g=r(p.substring(0,m));let e=g&&o[g]?r(p):void 0;e&&e!==g&&(g=e,h=!1)}else g=r(p);if(!g){if(!h){l=t+(l.length>0?` `+l:l);continue}if(g=r(p),!g){l=t+(l.length>0?` `+l:l);continue}h=!1}let _=d.length===0?``:d.length===1?d[0]:a(d).join(`:`),v=f?_+w:_,y=v+g;if(s.indexOf(y)>-1)continue;s.push(y);let b=i(g,h);for(let e=0;e<b.length;++e){let t=b[e];s.push(v+t)}l=t+(l.length>0?` `+l:l)}return l},k=(...e)=>{let t=0,n,r,i=``;for(;t<e.length;)(n=e[t++])&&(r=A(n))&&(i&&(i+=` `),i+=r);return i},A=e=>{if(typeof e==`string`)return e;let t,n=``;for(let r=0;r<e.length;r++)e[r]&&(t=A(e[r]))&&(n&&(n+=` `),n+=t);return n},pe=(e,...t)=>{let n,r,i,a,o=o=>(n=ue(t.reduce((e,t)=>t(e),e())),r=n.cache.get,i=n.cache.set,a=s,s(o)),s=e=>{let t=r(e);if(t)return t;let a=O(e,n);return i(e,a),a};return a=o,(...e)=>a(k(...e))},j=[],M=e=>{let t=t=>t[e]||j;return t.isThemeGetter=!0,t.themeKey=e,t},me=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,N=/^\((?:(\w[\w-]*):)?(.+)\)$/i,P=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,he=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,ge=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,_e=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix|color|light-dark)\(.+\)$/,ve=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,ye=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,F=e=>P.test(e),I=e=>!!e&&!Number.isNaN(Number(e)),L=e=>!!e&&Number.isInteger(Number(e)),be=e=>e.endsWith(`%`)&&I(e.slice(0,-1)),R=e=>he.test(e),xe=()=>!0,Se=e=>ge.test(e)&&!_e.test(e),Ce=()=>!1,we=e=>ve.test(e),Te=e=>ye.test(e),Ee=e=>!z(e)&&!V(e),De=e=>e.startsWith(`@container`)&&(e[10]===`/`&&e[11]!==void 0||e[11]===`s`&&e[16]!==void 0&&e.startsWith(`-size/`,10)||e[11]===`n`&&e[18]!==void 0&&e.startsWith(`-normal/`,10)),Oe=e=>U(e,Ue,Ce),z=e=>me.test(e),B=e=>U(e,We,Se),ke=e=>U(e,Ge,I),Ae=e=>U(e,qe,xe),je=e=>U(e,Ke,Ce),Me=e=>U(e,Ve,Ce),Ne=e=>U(e,He,Te),Pe=e=>U(e,Je,we),V=e=>N.test(e),H=e=>W(e,We),Fe=e=>W(e,Ke),Ie=e=>W(e,Ve),Le=e=>W(e,Ue),Re=e=>W(e,He),ze=e=>W(e,Je,!0),Be=e=>W(e,qe,!0),U=(e,t,n)=>{let r=me.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},W=(e,t,n=!1)=>{let r=N.exec(e);return r?r[1]?t(r[1]):n:!1},Ve=e=>e===`position`||e===`percentage`,He=e=>e===`image`||e===`url`,Ue=e=>e===`length`||e===`size`||e===`bg-size`,We=e=>e===`length`,Ge=e=>e===`number`,Ke=e=>e===`family-name`,qe=e=>e===`number`||e===`weight`,Je=e=>e===`shadow`,Ye=pe(()=>{let e=M(`color`),t=M(`font`),n=M(`text`),r=M(`font-weight`),i=M(`tracking`),a=M(`leading`),o=M(`breakpoint`),s=M(`container`),c=M(`spacing`),l=M(`radius`),u=M(`shadow`),d=M(`inset-shadow`),f=M(`text-shadow`),p=M(`drop-shadow`),m=M(`blur`),h=M(`perspective`),g=M(`aspect`),_=M(`ease`),v=M(`animate`),y=()=>[`auto`,`avoid`,`all`,`avoid-page`,`page`,`left`,`right`,`column`],b=()=>[`center`,`top`,`bottom`,`left`,`right`,`top-left`,`left-top`,`top-right`,`right-top`,`bottom-right`,`right-bottom`,`bottom-left`,`left-bottom`],ee=()=>[...b(),V,z],te=()=>[`auto`,`hidden`,`clip`,`visible`,`scroll`],ne=()=>[`auto`,`contain`,`none`],x=()=>[V,z,c],S=()=>[F,`full`,`auto`,...x()],re=()=>[L,`none`,`subgrid`,V,z],ie=()=>[`auto`,{span:[`full`,L,V,z]},L,V,z],ae=()=>[L,`auto`,V,z],oe=()=>[`auto`,`min`,`max`,`fr`,V,z],se=()=>[`start`,`end`,`center`,`between`,`around`,`evenly`,`stretch`,`baseline`,`center-safe`,`end-safe`],C=()=>[`start`,`end`,`center`,`stretch`,`center-safe`,`end-safe`],w=()=>[`auto`,...x()],T=()=>[F,`auto`,`full`,`dvw`,`dvh`,`lvw`,`lvh`,`svw`,`svh`,`min`,`max`,`fit`,...x()],ce=()=>[s,F,`screen`,`full`,`dvw`,`lvw`,`svw`,`min`,`max`,`fit`,...x()],E=()=>[F,`screen`,`full`,`lh`,`dvh`,`lvh`,`svh`,`min`,`max`,`fit`,...x()],D=()=>[e,V,z],le=()=>[...b(),Ie,Me,{position:[V,z]}],ue=()=>[`no-repeat`,{repeat:[``,`x`,`y`,`space`,`round`]}],de=()=>[`auto`,`cover`,`contain`,Le,Oe,{size:[V,z]}],fe=()=>[be,H,B],O=()=>[``,`none`,`full`,l,V,z],k=()=>[``,I,H,B],A=()=>[`solid`,`dashed`,`dotted`,`double`],pe=()=>[`normal`,`multiply`,`screen`,`overlay`,`darken`,`lighten`,`color-dodge`,`color-burn`,`hard-light`,`soft-light`,`difference`,`exclusion`,`hue`,`saturation`,`color`,`luminosity`],j=()=>[I,be,Ie,Me],me=()=>[``,`none`,m,V,z],N=()=>[`none`,I,V,z],P=()=>[`none`,I,V,z],he=()=>[I,V,z],ge=()=>[F,`full`,...x()];return{cacheSize:500,theme:{animate:[`spin`,`ping`,`pulse`,`bounce`],aspect:[`video`],blur:[R],breakpoint:[R],color:[xe],container:[R],"drop-shadow":[R],ease:[`in`,`out`,`in-out`],font:[Ee],"font-weight":[`thin`,`extralight`,`light`,`normal`,`medium`,`semibold`,`bold`,`extrabold`,`black`],"inset-shadow":[R],leading:[`none`,`tight`,`snug`,`normal`,`relaxed`,`loose`],perspective:[`dramatic`,`near`,`normal`,`midrange`,`distant`,`none`],radius:[R],shadow:[R],spacing:[`px`,I],text:[R],"text-shadow":[R],tracking:[`tighter`,`tight`,`normal`,`wide`,`wider`,`widest`]},classGroups:{aspect:[{aspect:[`auto`,`square`,F,z,V,g]}],container:[`container`],"container-type":[{"@container":[``,`normal`,`size`,V,z]}],"container-named":[De],columns:[{columns:[I,`auto`,z,V,s]}],"break-after":[{"break-after":y()}],"break-before":[{"break-before":y()}],"break-inside":[{"break-inside":[`auto`,`avoid`,`avoid-page`,`avoid-column`]}],"box-decoration":[{"box-decoration":[`slice`,`clone`]}],box:[{box:[`border`,`content`]}],display:[`block`,`inline-block`,`inline`,`flex`,`inline-flex`,`table`,`inline-table`,`table-caption`,`table-cell`,`table-column`,`table-column-group`,`table-footer-group`,`table-header-group`,`table-row-group`,`table-row`,`flow-root`,`grid`,`inline-grid`,`contents`,`list-item`,`hidden`],sr:[`sr-only`,`not-sr-only`],float:[{float:[`right`,`left`,`none`,`start`,`end`]}],clear:[{clear:[`left`,`right`,`both`,`none`,`start`,`end`]}],isolation:[`isolate`,`isolation-auto`],"object-fit":[{object:[`contain`,`cover`,`fill`,`none`,`scale-down`]}],"object-position":[{object:ee()}],overflow:[{overflow:te()}],"overflow-x":[{"overflow-x":te()}],"overflow-y":[{"overflow-y":te()}],overscroll:[{overscroll:ne()}],"overscroll-x":[{"overscroll-x":ne()}],"overscroll-y":[{"overscroll-y":ne()}],position:[`static`,`fixed`,`absolute`,`relative`,`sticky`],inset:[{inset:S()}],"inset-x":[{"inset-x":S()}],"inset-y":[{"inset-y":S()}],start:[{"inset-s":S(),start:S()}],end:[{"inset-e":S(),end:S()}],"inset-bs":[{"inset-bs":S()}],"inset-be":[{"inset-be":S()}],top:[{top:S()}],right:[{right:S()}],bottom:[{bottom:S()}],left:[{left:S()}],visibility:[`visible`,`invisible`,`collapse`],z:[{z:[L,`auto`,V,z]}],basis:[{basis:[F,`full`,`auto`,s,...x()]}],"flex-direction":[{flex:[`row`,`row-reverse`,`col`,`col-reverse`]}],"flex-wrap":[{flex:[`nowrap`,`wrap`,`wrap-reverse`]}],flex:[{flex:[I,F,`auto`,`initial`,`none`,z]}],grow:[{grow:[``,I,V,z]}],shrink:[{shrink:[``,I,V,z]}],order:[{order:[L,`first`,`last`,`none`,V,z]}],"grid-cols":[{"grid-cols":re()}],"col-start-end":[{col:ie()}],"col-start":[{"col-start":ae()}],"col-end":[{"col-end":ae()}],"grid-rows":[{"grid-rows":re()}],"row-start-end":[{row:ie()}],"row-start":[{"row-start":ae()}],"row-end":[{"row-end":ae()}],"grid-flow":[{"grid-flow":[`row`,`col`,`dense`,`row-dense`,`col-dense`]}],"auto-cols":[{"auto-cols":oe()}],"auto-rows":[{"auto-rows":oe()}],gap:[{gap:x()}],"gap-x":[{"gap-x":x()}],"gap-y":[{"gap-y":x()}],"justify-content":[{justify:[...se(),`normal`]}],"justify-items":[{"justify-items":[...C(),`normal`]}],"justify-self":[{"justify-self":[`auto`,...C()]}],"align-content":[{content:[`normal`,...se()]}],"align-items":[{items:[...C(),{baseline:[``,`last`]}]}],"align-self":[{self:[`auto`,...C(),{baseline:[``,`last`]}]}],"place-content":[{"place-content":se()}],"place-items":[{"place-items":[...C(),`baseline`]}],"place-self":[{"place-self":[`auto`,...C()]}],p:[{p:x()}],px:[{px:x()}],py:[{py:x()}],ps:[{ps:x()}],pe:[{pe:x()}],pbs:[{pbs:x()}],pbe:[{pbe:x()}],pt:[{pt:x()}],pr:[{pr:x()}],pb:[{pb:x()}],pl:[{pl:x()}],m:[{m:w()}],mx:[{mx:w()}],my:[{my:w()}],ms:[{ms:w()}],me:[{me:w()}],mbs:[{mbs:w()}],mbe:[{mbe:w()}],mt:[{mt:w()}],mr:[{mr:w()}],mb:[{mb:w()}],ml:[{ml:w()}],"space-x":[{"space-x":x()}],"space-x-reverse":[`space-x-reverse`],"space-y":[{"space-y":x()}],"space-y-reverse":[`space-y-reverse`],size:[{size:T()}],"inline-size":[{inline:[`auto`,...ce()]}],"min-inline-size":[{"min-inline":[`auto`,...ce()]}],"max-inline-size":[{"max-inline":[`none`,...ce()]}],"block-size":[{block:[`auto`,...E()]}],"min-block-size":[{"min-block":[`auto`,...E()]}],"max-block-size":[{"max-block":[`none`,...E()]}],w:[{w:[s,`screen`,...T()]}],"min-w":[{"min-w":[s,`screen`,`none`,...T()]}],"max-w":[{"max-w":[s,`screen`,`none`,`prose`,{screen:[o]},...T()]}],h:[{h:[`screen`,`lh`,...T()]}],"min-h":[{"min-h":[`screen`,`lh`,`none`,...T()]}],"max-h":[{"max-h":[`screen`,`lh`,`none`,...T()]}],"font-size":[{text:[`base`,n,H,B]}],"font-smoothing":[`antialiased`,`subpixel-antialiased`],"font-style":[`italic`,`not-italic`],"font-weight":[{font:[r,Be,Ae]}],"font-stretch":[{"font-stretch":[`ultra-condensed`,`extra-condensed`,`condensed`,`semi-condensed`,`normal`,`semi-expanded`,`expanded`,`extra-expanded`,`ultra-expanded`,be,z]}],"font-family":[{font:[Fe,je,t]}],"font-features":[{"font-features":[z]}],"fvn-normal":[`normal-nums`],"fvn-ordinal":[`ordinal`],"fvn-slashed-zero":[`slashed-zero`],"fvn-figure":[`lining-nums`,`oldstyle-nums`],"fvn-spacing":[`proportional-nums`,`tabular-nums`],"fvn-fraction":[`diagonal-fractions`,`stacked-fractions`],tracking:[{tracking:[i,V,z]}],"line-clamp":[{"line-clamp":[I,`none`,V,ke]}],leading:[{leading:[`none`,a,...x()]}],"list-image":[{"list-image":[`none`,V,z]}],"list-style-position":[{list:[`inside`,`outside`]}],"list-style-type":[{list:[`disc`,`decimal`,`none`,V,z]}],"text-alignment":[{text:[`left`,`center`,`right`,`justify`,`start`,`end`]}],"placeholder-color":[{placeholder:D()}],"text-color":[{text:D()}],"text-decoration":[`underline`,`overline`,`line-through`,`no-underline`],"text-decoration-style":[{decoration:[...A(),`wavy`]}],"text-decoration-thickness":[{decoration:[I,`from-font`,`auto`,V,B]}],"text-decoration-color":[{decoration:D()}],"underline-offset":[{"underline-offset":[I,`auto`,V,z]}],"text-transform":[`uppercase`,`lowercase`,`capitalize`,`normal-case`],"text-overflow":[`truncate`,`text-ellipsis`,`text-clip`],"text-wrap":[{text:[`wrap`,`nowrap`,`balance`,`pretty`]}],indent:[{indent:x()}],"tab-size":[{tab:[L,V,z]}],"vertical-align":[{align:[`baseline`,`top`,`middle`,`bottom`,`text-top`,`text-bottom`,`sub`,`super`,V,z]}],whitespace:[{whitespace:[`normal`,`nowrap`,`pre`,`pre-line`,`pre-wrap`,`break-spaces`]}],break:[{break:[`normal`,`words`,`all`,`keep`]}],wrap:[{wrap:[`break-word`,`anywhere`,`normal`]}],hyphens:[{hyphens:[`none`,`manual`,`auto`]}],content:[{content:[`none`,V,z]}],"bg-attachment":[{bg:[`fixed`,`local`,`scroll`]}],"bg-clip":[{"bg-clip":[`border`,`padding`,`content`,`text`]}],"bg-origin":[{"bg-origin":[`border`,`padding`,`content`]}],"bg-position":[{bg:le()}],"bg-repeat":[{bg:ue()}],"bg-size":[{bg:de()}],"bg-image":[{bg:[`none`,{linear:[{to:[`t`,`tr`,`r`,`br`,`b`,`bl`,`l`,`tl`]},L,V,z],radial:[``,V,z],conic:[``,L,V,z]},Re,Ne]}],"bg-color":[{bg:D()}],"gradient-from-pos":[{from:fe()}],"gradient-via-pos":[{via:fe()}],"gradient-to-pos":[{to:fe()}],"gradient-from":[{from:D()}],"gradient-via":[{via:D()}],"gradient-to":[{to:D()}],rounded:[{rounded:O()}],"rounded-s":[{"rounded-s":O()}],"rounded-e":[{"rounded-e":O()}],"rounded-t":[{"rounded-t":O()}],"rounded-r":[{"rounded-r":O()}],"rounded-b":[{"rounded-b":O()}],"rounded-l":[{"rounded-l":O()}],"rounded-ss":[{"rounded-ss":O()}],"rounded-se":[{"rounded-se":O()}],"rounded-ee":[{"rounded-ee":O()}],"rounded-es":[{"rounded-es":O()}],"rounded-tl":[{"rounded-tl":O()}],"rounded-tr":[{"rounded-tr":O()}],"rounded-br":[{"rounded-br":O()}],"rounded-bl":[{"rounded-bl":O()}],"border-w":[{border:k()}],"border-w-x":[{"border-x":k()}],"border-w-y":[{"border-y":k()}],"border-w-s":[{"border-s":k()}],"border-w-e":[{"border-e":k()}],"border-w-bs":[{"border-bs":k()}],"border-w-be":[{"border-be":k()}],"border-w-t":[{"border-t":k()}],"border-w-r":[{"border-r":k()}],"border-w-b":[{"border-b":k()}],"border-w-l":[{"border-l":k()}],"divide-x":[{"divide-x":k()}],"divide-x-reverse":[`divide-x-reverse`],"divide-y":[{"divide-y":k()}],"divide-y-reverse":[`divide-y-reverse`],"border-style":[{border:[...A(),`hidden`,`none`]}],"divide-style":[{divide:[...A(),`hidden`,`none`]}],"border-color":[{border:D()}],"border-color-x":[{"border-x":D()}],"border-color-y":[{"border-y":D()}],"border-color-s":[{"border-s":D()}],"border-color-e":[{"border-e":D()}],"border-color-bs":[{"border-bs":D()}],"border-color-be":[{"border-be":D()}],"border-color-t":[{"border-t":D()}],"border-color-r":[{"border-r":D()}],"border-color-b":[{"border-b":D()}],"border-color-l":[{"border-l":D()}],"divide-color":[{divide:D()}],"outline-style":[{outline:[...A(),`none`,`hidden`]}],"outline-offset":[{"outline-offset":[I,V,z]}],"outline-w":[{outline:[``,I,H,B]}],"outline-color":[{outline:D()}],shadow:[{shadow:[``,`inner`,`none`,u,ze,Pe]}],"shadow-color":[{shadow:D()}],"inset-shadow":[{"inset-shadow":[`none`,d,ze,Pe]}],"inset-shadow-color":[{"inset-shadow":D()}],"ring-w":[{ring:k()}],"ring-w-inset":[`ring-inset`],"ring-color":[{ring:D()}],"ring-offset-w":[{"ring-offset":[I,B]}],"ring-offset-color":[{"ring-offset":D()}],"inset-ring-w":[{"inset-ring":k()}],"inset-ring-color":[{"inset-ring":D()}],"text-shadow":[{"text-shadow":[`none`,f,ze,Pe]}],"text-shadow-color":[{"text-shadow":D()}],opacity:[{opacity:[I,V,z]}],"mix-blend":[{"mix-blend":[...pe(),`plus-darker`,`plus-lighter`]}],"bg-blend":[{"bg-blend":pe()}],"mask-clip":[{"mask-clip":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]},`mask-no-clip`],"mask-composite":[{mask:[`add`,`subtract`,`intersect`,`exclude`]}],"mask-image-linear-pos":[{"mask-linear":[I]}],"mask-image-linear-from-pos":[{"mask-linear-from":j()}],"mask-image-linear-to-pos":[{"mask-linear-to":j()}],"mask-image-linear-from-color":[{"mask-linear-from":D()}],"mask-image-linear-to-color":[{"mask-linear-to":D()}],"mask-image-t-from-pos":[{"mask-t-from":j()}],"mask-image-t-to-pos":[{"mask-t-to":j()}],"mask-image-t-from-color":[{"mask-t-from":D()}],"mask-image-t-to-color":[{"mask-t-to":D()}],"mask-image-r-from-pos":[{"mask-r-from":j()}],"mask-image-r-to-pos":[{"mask-r-to":j()}],"mask-image-r-from-color":[{"mask-r-from":D()}],"mask-image-r-to-color":[{"mask-r-to":D()}],"mask-image-b-from-pos":[{"mask-b-from":j()}],"mask-image-b-to-pos":[{"mask-b-to":j()}],"mask-image-b-from-color":[{"mask-b-from":D()}],"mask-image-b-to-color":[{"mask-b-to":D()}],"mask-image-l-from-pos":[{"mask-l-from":j()}],"mask-image-l-to-pos":[{"mask-l-to":j()}],"mask-image-l-from-color":[{"mask-l-from":D()}],"mask-image-l-to-color":[{"mask-l-to":D()}],"mask-image-x-from-pos":[{"mask-x-from":j()}],"mask-image-x-to-pos":[{"mask-x-to":j()}],"mask-image-x-from-color":[{"mask-x-from":D()}],"mask-image-x-to-color":[{"mask-x-to":D()}],"mask-image-y-from-pos":[{"mask-y-from":j()}],"mask-image-y-to-pos":[{"mask-y-to":j()}],"mask-image-y-from-color":[{"mask-y-from":D()}],"mask-image-y-to-color":[{"mask-y-to":D()}],"mask-image-radial":[{"mask-radial":[V,z]}],"mask-image-radial-from-pos":[{"mask-radial-from":j()}],"mask-image-radial-to-pos":[{"mask-radial-to":j()}],"mask-image-radial-from-color":[{"mask-radial-from":D()}],"mask-image-radial-to-color":[{"mask-radial-to":D()}],"mask-image-radial-shape":[{"mask-radial":[`circle`,`ellipse`]}],"mask-image-radial-size":[{"mask-radial":[{closest:[`side`,`corner`],farthest:[`side`,`corner`]}]}],"mask-image-radial-pos":[{"mask-radial-at":b()}],"mask-image-conic-pos":[{"mask-conic":[I]}],"mask-image-conic-from-pos":[{"mask-conic-from":j()}],"mask-image-conic-to-pos":[{"mask-conic-to":j()}],"mask-image-conic-from-color":[{"mask-conic-from":D()}],"mask-image-conic-to-color":[{"mask-conic-to":D()}],"mask-mode":[{mask:[`alpha`,`luminance`,`match`]}],"mask-origin":[{"mask-origin":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]}],"mask-position":[{mask:le()}],"mask-repeat":[{mask:ue()}],"mask-size":[{mask:de()}],"mask-type":[{"mask-type":[`alpha`,`luminance`]}],"mask-image":[{mask:[`none`,V,z]}],filter:[{filter:[``,`none`,V,z]}],blur:[{blur:me()}],brightness:[{brightness:[I,V,z]}],contrast:[{contrast:[I,V,z]}],"drop-shadow":[{"drop-shadow":[``,`none`,p,ze,Pe]}],"drop-shadow-color":[{"drop-shadow":D()}],grayscale:[{grayscale:[``,I,V,z]}],"hue-rotate":[{"hue-rotate":[I,V,z]}],invert:[{invert:[``,I,V,z]}],saturate:[{saturate:[I,V,z]}],sepia:[{sepia:[``,I,V,z]}],"backdrop-filter":[{"backdrop-filter":[``,`none`,V,z]}],"backdrop-blur":[{"backdrop-blur":me()}],"backdrop-brightness":[{"backdrop-brightness":[I,V,z]}],"backdrop-contrast":[{"backdrop-contrast":[I,V,z]}],"backdrop-grayscale":[{"backdrop-grayscale":[``,I,V,z]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[I,V,z]}],"backdrop-invert":[{"backdrop-invert":[``,I,V,z]}],"backdrop-opacity":[{"backdrop-opacity":[I,V,z]}],"backdrop-saturate":[{"backdrop-saturate":[I,V,z]}],"backdrop-sepia":[{"backdrop-sepia":[``,I,V,z]}],"border-collapse":[{border:[`collapse`,`separate`]}],"border-spacing":[{"border-spacing":x()}],"border-spacing-x":[{"border-spacing-x":x()}],"border-spacing-y":[{"border-spacing-y":x()}],"table-layout":[{table:[`auto`,`fixed`]}],caption:[{caption:[`top`,`bottom`]}],transition:[{transition:[``,`all`,`colors`,`opacity`,`shadow`,`transform`,`none`,V,z]}],"transition-behavior":[{transition:[`normal`,`discrete`]}],duration:[{duration:[I,`initial`,V,z]}],ease:[{ease:[`linear`,`initial`,_,V,z]}],delay:[{delay:[I,V,z]}],animate:[{animate:[`none`,v,V,z]}],backface:[{backface:[`hidden`,`visible`]}],perspective:[{perspective:[h,V,z]}],"perspective-origin":[{"perspective-origin":ee()}],rotate:[{rotate:N()}],"rotate-x":[{"rotate-x":N()}],"rotate-y":[{"rotate-y":N()}],"rotate-z":[{"rotate-z":N()}],scale:[{scale:P()}],"scale-x":[{"scale-x":P()}],"scale-y":[{"scale-y":P()}],"scale-z":[{"scale-z":P()}],"scale-3d":[`scale-3d`],skew:[{skew:he()}],"skew-x":[{"skew-x":he()}],"skew-y":[{"skew-y":he()}],transform:[{transform:[V,z,``,`none`,`gpu`,`cpu`]}],"transform-origin":[{origin:ee()}],"transform-style":[{transform:[`3d`,`flat`]}],translate:[{translate:ge()}],"translate-x":[{"translate-x":ge()}],"translate-y":[{"translate-y":ge()}],"translate-z":[{"translate-z":ge()}],"translate-none":[`translate-none`],zoom:[{zoom:[L,V,z]}],accent:[{accent:D()}],appearance:[{appearance:[`none`,`auto`]}],"caret-color":[{caret:D()}],"color-scheme":[{scheme:[`normal`,`dark`,`light`,`light-dark`,`only-dark`,`only-light`]}],cursor:[{cursor:[`auto`,`default`,`pointer`,`wait`,`text`,`move`,`help`,`not-allowed`,`none`,`context-menu`,`progress`,`cell`,`crosshair`,`vertical-text`,`alias`,`copy`,`no-drop`,`grab`,`grabbing`,`all-scroll`,`col-resize`,`row-resize`,`n-resize`,`e-resize`,`s-resize`,`w-resize`,`ne-resize`,`nw-resize`,`se-resize`,`sw-resize`,`ew-resize`,`ns-resize`,`nesw-resize`,`nwse-resize`,`zoom-in`,`zoom-out`,V,z]}],"field-sizing":[{"field-sizing":[`fixed`,`content`]}],"pointer-events":[{"pointer-events":[`auto`,`none`]}],resize:[{resize:[`none`,``,`y`,`x`]}],"scroll-behavior":[{scroll:[`auto`,`smooth`]}],"scrollbar-thumb-color":[{"scrollbar-thumb":D()}],"scrollbar-track-color":[{"scrollbar-track":D()}],"scrollbar-gutter":[{"scrollbar-gutter":[`auto`,`stable`,`both`]}],"scrollbar-w":[{scrollbar:[`auto`,`thin`,`none`]}],"scroll-m":[{"scroll-m":x()}],"scroll-mx":[{"scroll-mx":x()}],"scroll-my":[{"scroll-my":x()}],"scroll-ms":[{"scroll-ms":x()}],"scroll-me":[{"scroll-me":x()}],"scroll-mbs":[{"scroll-mbs":x()}],"scroll-mbe":[{"scroll-mbe":x()}],"scroll-mt":[{"scroll-mt":x()}],"scroll-mr":[{"scroll-mr":x()}],"scroll-mb":[{"scroll-mb":x()}],"scroll-ml":[{"scroll-ml":x()}],"scroll-p":[{"scroll-p":x()}],"scroll-px":[{"scroll-px":x()}],"scroll-py":[{"scroll-py":x()}],"scroll-ps":[{"scroll-ps":x()}],"scroll-pe":[{"scroll-pe":x()}],"scroll-pbs":[{"scroll-pbs":x()}],"scroll-pbe":[{"scroll-pbe":x()}],"scroll-pt":[{"scroll-pt":x()}],"scroll-pr":[{"scroll-pr":x()}],"scroll-pb":[{"scroll-pb":x()}],"scroll-pl":[{"scroll-pl":x()}],"snap-align":[{snap:[`start`,`end`,`center`,`align-none`]}],"snap-stop":[{snap:[`normal`,`always`]}],"snap-type":[{snap:[`none`,`x`,`y`,`both`]}],"snap-strictness":[{snap:[`mandatory`,`proximity`]}],touch:[{touch:[`auto`,`none`,`manipulation`]}],"touch-x":[{"touch-pan":[`x`,`left`,`right`]}],"touch-y":[{"touch-pan":[`y`,`up`,`down`]}],"touch-pz":[`touch-pinch-zoom`],select:[{select:[`none`,`text`,`all`,`auto`]}],"will-change":[{"will-change":[`auto`,`scroll`,`contents`,`transform`,V,z]}],fill:[{fill:[`none`,...D()]}],"stroke-w":[{stroke:[I,H,B,ke]}],stroke:[{stroke:[`none`,...D()]}],"forced-color-adjust":[{"forced-color-adjust":[`auto`,`none`]}]},conflictingClassGroups:{"container-named":[`container-type`],overflow:[`overflow-x`,`overflow-y`],overscroll:[`overscroll-x`,`overscroll-y`],inset:[`inset-x`,`inset-y`,`inset-bs`,`inset-be`,`start`,`end`,`top`,`right`,`bottom`,`left`],"inset-x":[`start`,`end`,`right`,`left`],"inset-y":[`inset-bs`,`inset-be`,`top`,`bottom`],flex:[`basis`,`grow`,`shrink`],gap:[`gap-x`,`gap-y`],p:[`px`,`py`,`ps`,`pe`,`pbs`,`pbe`,`pt`,`pr`,`pb`,`pl`],px:[`ps`,`pe`,`pr`,`pl`],py:[`pbs`,`pbe`,`pt`,`pb`],m:[`mx`,`my`,`ms`,`me`,`mbs`,`mbe`,`mt`,`mr`,`mb`,`ml`],mx:[`ms`,`me`,`mr`,`ml`],my:[`mbs`,`mbe`,`mt`,`mb`],size:[`w`,`h`],"font-size":[`leading`],"fvn-normal":[`fvn-ordinal`,`fvn-slashed-zero`,`fvn-figure`,`fvn-spacing`,`fvn-fraction`],"fvn-ordinal":[`fvn-normal`],"fvn-slashed-zero":[`fvn-normal`],"fvn-figure":[`fvn-normal`],"fvn-spacing":[`fvn-normal`],"fvn-fraction":[`fvn-normal`],"line-clamp":[`display`,`overflow`],rounded:[`rounded-s`,`rounded-e`,`rounded-t`,`rounded-r`,`rounded-b`,`rounded-l`,`rounded-ss`,`rounded-se`,`rounded-ee`,`rounded-es`,`rounded-tl`,`rounded-tr`,`rounded-br`,`rounded-bl`],"rounded-s":[`rounded-ss`,`rounded-es`],"rounded-e":[`rounded-se`,`rounded-ee`],"rounded-t":[`rounded-tl`,`rounded-tr`],"rounded-r":[`rounded-tr`,`rounded-br`],"rounded-b":[`rounded-br`,`rounded-bl`],"rounded-l":[`rounded-tl`,`rounded-bl`],"border-spacing":[`border-spacing-x`,`border-spacing-y`],"border-w":[`border-w-x`,`border-w-y`,`border-w-s`,`border-w-e`,`border-w-bs`,`border-w-be`,`border-w-t`,`border-w-r`,`border-w-b`,`border-w-l`],"border-w-x":[`border-w-s`,`border-w-e`,`border-w-r`,`border-w-l`],"border-w-y":[`border-w-bs`,`border-w-be`,`border-w-t`,`border-w-b`],"border-color":[`border-color-x`,`border-color-y`,`border-color-s`,`border-color-e`,`border-color-bs`,`border-color-be`,`border-color-t`,`border-color-r`,`border-color-b`,`border-color-l`],"border-color-x":[`border-color-s`,`border-color-e`,`border-color-r`,`border-color-l`],"border-color-y":[`border-color-bs`,`border-color-be`,`border-color-t`,`border-color-b`],translate:[`translate-x`,`translate-y`,`translate-none`],"translate-none":[`translate`,`translate-x`,`translate-y`,`translate-z`],"scroll-m":[`scroll-mx`,`scroll-my`,`scroll-ms`,`scroll-me`,`scroll-mbs`,`scroll-mbe`,`scroll-mt`,`scroll-mr`,`scroll-mb`,`scroll-ml`],"scroll-mx":[`scroll-ms`,`scroll-me`,`scroll-mr`,`scroll-ml`],"scroll-my":[`scroll-mbs`,`scroll-mbe`,`scroll-mt`,`scroll-mb`],"scroll-p":[`scroll-px`,`scroll-py`,`scroll-ps`,`scroll-pe`,`scroll-pbs`,`scroll-pbe`,`scroll-pt`,`scroll-pr`,`scroll-pb`,`scroll-pl`],"scroll-px":[`scroll-ps`,`scroll-pe`,`scroll-pr`,`scroll-pl`],"scroll-py":[`scroll-pbs`,`scroll-pbe`,`scroll-pt`,`scroll-pb`],touch:[`touch-x`,`touch-y`,`touch-pz`],"touch-x":[`touch`],"touch-y":[`touch`],"touch-pz":[`touch`]},conflictingClassGroupModifiers:{"font-size":[`leading`]},postfixLookupClassGroups:[`container-type`],orderSensitiveModifiers:[`*`,`**`,`after`,`backdrop`,`before`,`details-content`,`file`,`first-letter`,`first-line`,`marker`,`placeholder`,`selection`]}});function G(...e){return Ye(t(e))}var Xe=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e))},o=t=e(r,i,a);return a},Ze=(e=>e?Xe(e):Xe),Qe=e=>e;function $e(e,t=Qe){let n=l.useSyncExternalStore(e.subscribe,l.useCallback(()=>t(e.getState()),[e,t]),l.useCallback(()=>t(e.getInitialState()),[e,t]));return l.useDebugValue(n),n}var et={observed:`Observed in this event log.`,explicitlyDisabled:`Explicitly disabled in this event log.`,noObservedExecutorMetrics:`Not emitted by this event log.`,noObservedStageSubmission:`Not emitted by this event log.`,noRddStorageSnapshot:`Stages were submitted without RDD storage snapshots.`,noResolvedSqlPlan:`Not emitted by this event log.`,noSqlExecution:`Not applicable to this event log.`,noEnvironmentUpdate:`Not emitted by this event log.`,noTaskRecords:`Not emitted by this event log.`,noUsableCoreTimeAggregate:`No usable aggregate was emitted.`,outsideEventLogScope:`Available outside local event-log scope.`,parseIncomplete:`Cannot determine from an incomplete parse.`};function tt(e,t,n){return{key:e,state:`present`,reasonCode:`observed`,summary:et.observed,evidence:{eventType:t,count:n}}}function K(e,t,n){return{key:e,state:t,reasonCode:n,summary:et[n]}}function q(e,t){let n=e[t];return typeof n==`number`&&Number.isFinite(n)&&n>0?n:0}function nt(e){return e!=null&&e.schemaVersion===1}function rt(e){return typeof e==`number`&&Number.isFinite(e)&&e>0}function it(e){let t=e?.perStage;return typeof t==`object`&&!!t&&!Array.isArray(t)&&Object.values(t).some(e=>rt(e?.taskCount)&&rt(e?.totalTaskDurationSum))}function at(e,t){return e!=null&&String(e).toLowerCase()===t}function J(e,t,n){return n?K(e,t===`noSqlExecution`?`notApplicable`:`notEmitted`,t):K(e,`unknown`,`parseIncomplete`)}function ot(e,{skippedLines:t=0}={}){let n=e?.app,r=n?.evidenceInputs??{},i=t===0&&q(r,`applicationEnds`)>0,a=q(r,`executorMetricRows`),o=q(r,`stageSubmissions`),s=q(r,`rddStorageSnapshots`),c=q(r,`resolvedSqlPlans`),l=q(r,`sqlExecutions`),u=q(r,`environmentUpdates`),d=q(r,`taskRecords`);return{schemaVersion:1,entries:[a>0?tt(`executorMetrics`,`executorMetricRows`,a):at(n?.config?.[`spark.eventLog.logStageExecutorMetrics`],`false`)?K(`executorMetrics`,`disabled`,`explicitlyDisabled`):J(`executorMetrics`,`noObservedExecutorMetrics`,i),s>0?tt(`rddStorageSnapshots`,`rddStorageSnapshots`,s):J(`rddStorageSnapshots`,o===0?`noObservedStageSubmission`:`noRddStorageSnapshot`,i),c>0?tt(`sqlPlan`,`resolvedSqlPlans`,c):l>0&&i?K(`sqlPlan`,`notEmitted`,`noResolvedSqlPlan`):J(`sqlPlan`,`noSqlExecution`,i),u>0?tt(`sparkConfiguration`,`environmentUpdates`,u):J(`sparkConfiguration`,`noEnvironmentUpdate`,i),d===0?J(`taskCoreTime`,`noTaskRecords`,i):it(e?.runAggregates)?tt(`taskCoreTime`,`taskRecords`,d):J(`taskCoreTime`,`noUsableCoreTimeAggregate`,i),K(`infrastructureContext`,`outsideEventLog`,`outsideEventLogScope`),K(`sourceContext`,`outsideEventLog`,`outsideEventLogScope`),K(`costContext`,`outsideEventLog`,`outsideEventLogScope`)]}}function st(e,t,n){return{app:e.app,stages:new Map(e.stages),executors:{added:[...e.executors.added],removed:[...e.executors.removed]},sql:new Map(e.sql),jobs:new Map(e.jobs),runAggregates:e.runAggregates,evidenceAvailability:e.evidenceAvailability,skippedLines:e.skippedLines,unreadableSqlExecutions:e.unreadableSqlExecutions&&[...e.unreadableSqlExecutions],catalog:[...t],taskData:new Map(n)}}function ct(e,t,n){e.app=n.app,e.stages=new Map(n.stages),e.executors={added:[...n.executors.added],removed:[...n.executors.removed]},e.sql=new Map(n.sql),e.jobs=new Map(n.jobs),e.runAggregates=n.runAggregates??null,e.evidenceAvailability=nt(n.evidenceAvailability)?n.evidenceAvailability:null,e.skippedLines=n.skippedLines,n.unreadableSqlExecutions?e.unreadableSqlExecutions=[...n.unreadableSqlExecutions]:delete e.unreadableSqlExecutions,t.clear();for(let[e,r]of n.taskData)t.set(e,r);return[...n.catalog]}function lt(){return{app:null,stages:new Map,executors:{added:[],removed:[]},sql:new Map,jobs:new Map,runAggregates:null,evidenceAvailability:null}}function ut(){if(typeof window>`u`)return`dark`;try{let e=window.localStorage.getItem(`shuffle-works-theme`);if(e===`light`||e===`dark`)return e}catch{}return window.matchMedia?.(`(prefers-color-scheme: light)`).matches?`light`:`dark`}var dt=`shuffle-works-widget-density`;function ft(){if(typeof window>`u`)return`basic`;try{let e=window.localStorage.getItem(dt);if(e===`basic`||e===`advanced`)return e}catch{}return`basic`}var pt=Ze(e=>({appModel:lt(),catalog:[],configFindings:[],interpretation:null,exportProvenance:null,activeFileId:null,sessionCache:new Map,taskDataCache:new Map,parse:{pct:0,lines:0,etaMs:null},status:`idle`,shsParsing:!1,errorMessage:null,errorNonce:0,theme:ut(),widgetDensity:ft(),exportMode:!1,skippedLines:0,comparison:{active:!1,baselineId:null,candidateId:null},compareLoad:null,compareSeed:null,planGraph:{active:!1,stageId:null,initialScope:`segment`},modelResetCount:0,setCompareSeed:t=>e({compareSeed:t}),openComparison:(t,n)=>e(e=>(e.activeFileId!=null&&e.appModel.app&&e.sessionCache.set(e.activeFileId,st(e.appModel,e.catalog,e.taskDataCache)),{comparison:{active:!0,baselineId:t,candidateId:n}})),setComparisonActive:t=>e(e=>({comparison:{...e.comparison,active:t}})),setCompareLoad:t=>e({compareLoad:t}),closeComparison:()=>e({comparison:{active:!1,baselineId:null,candidateId:null}}),openPlanGraph:(t,n)=>e({planGraph:{active:!0,stageId:t,initialScope:n?.initialScope??`segment`}}),closePlanGraph:()=>e({planGraph:{active:!1,stageId:null,initialScope:`segment`}}),resetModel:()=>e(e=>({appModel:lt(),catalog:[],configFindings:[],interpretation:null,taskDataCache:new Map,status:`idle`,shsParsing:!1,errorMessage:null,skippedLines:0,comparison:{active:!1,baselineId:null,candidateId:null},compareLoad:null,planGraph:{active:!1,stageId:null,initialScope:`segment`},modelResetCount:e.modelResetCount+1})),setStatus:t=>e({status:t}),setShsParsing:t=>e({shsParsing:t}),setParse:t=>e({parse:t}),setCatalog:t=>e({catalog:t}),setConfigFindings:t=>e({configFindings:t}),setFindings:(t,n,r)=>e(e=>({catalog:t,configFindings:n,...r===void 0?{}:{appModel:{...e.appModel,evidenceAvailability:r}}})),setInterpretation:t=>e({interpretation:t}),setTaskData:(t,n)=>e(e=>{let r=new Map(e.taskDataCache);return r.set(t,n),{taskDataCache:r}}),setActiveFile:t=>e({activeFileId:t}),setError:t=>e(e=>({errorMessage:t,errorNonce:t?e.errorNonce+1:e.errorNonce,status:t?`error`:e.status})),setTheme:t=>e({theme:t}),setWidgetDensity:t=>{try{window.localStorage.setItem(dt,t)}catch{}e({widgetDensity:t})},setSkippedLines:t=>e({skippedLines:t}),setEvidenceAvailability:t=>e(e=>({appModel:{...e.appModel,evidenceAvailability:t}}))}));function mt(e){return $e(pt,e)}function ht(){return mt(e=>e.widgetDensity)}var gt=e=>e?.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase();function _t(e,t,n=[]){if(t==null)throw Error(`[lucide]: iconNode is required when icon name is used`);return{name:gt(e),size:24,node:t,...n.length>0?{aliases:n}:{}}}var vt=e=>{let t=``,n=!1;for(let r of e){if(r===`-`||r===`_`||r<=` `){n=t.length>0;continue}t.length===0?t+=r.toLowerCase():t+=n?r.toUpperCase():r,n=!1}return t},yt=e=>{let t=vt(e);return t.charAt(0).toUpperCase()+t.slice(1)},bt=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),Y={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":2,"stroke-linecap":`round`,"stroke-linejoin":`round`};function xt(e){return e!=null}function St(e,t={}){let n=t.attributeNames??{},r=e=>n[e]??e,i=e.size??e.width??Y.width,a=e.size??e.height??Y.height,o=e.aliases?.filter(e=>typeof e==`string`&&e.trim()!==``).map(e=>`lucide-${e}`)??[],s=[...e.name?[`lucide-${e.name}`]:[],...o],c=t.className?.split(` `).filter(Boolean)??[],l=t.includeDefaultClasses===!1?bt(...c):bt(`lucide`,...s,...c),u=t.absoluteStrokeWidth?Number(t.strokeWidth??Y[`stroke-width`])*Number(e.size??e.width??Y.width)/Number(t.size??t.width??Y.width):t.strokeWidth??Y[`stroke-width`];return[`svg`,{...Object.entries(Y).reduce((e,[t,n])=>(e[r(t)]=n,e),{}),...`color`in t&&t.color&&{[r(`stroke`)]:t.color},...`size`in t&&xt(t.size)&&{[r(`width`)]:t.size,[r(`height`)]:t.size},...`width`in t&&xt(t.width)&&{[r(`width`)]:t.width},...`height`in t&&xt(t.height)&&{[r(`height`)]:t.height},[r(`stroke-width`)]:u,...l&&{[r(`class`)]:l},[r(`viewBox`)]:`0 0 ${i} ${a}`,...t.hasA11yProp===!1?{[r(`aria-hidden`)]:`true`}:{},...`attributes`in t&&t.attributes},e.node.map(e=>{let[n,i,a]=e,o=t.nonScalingStroke?{[r(`vector-effect`)]:`non-scaling-stroke`,...i}:i;return a?[n,o,a]:[n,o]})]}function Ct(e,t={}){return St(e,{...t,attributeNames:{...t.attributeNames,class:`className`,"stroke-width":`strokeWidth`,"stroke-linecap":`strokeLinecap`,"stroke-linejoin":`strokeLinejoin`,"vector-effect":`vectorEffect`}})}var wt=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},Tt=(0,l.createContext)({}),Et=()=>(0,l.useContext)(Tt),Dt=(0,l.forwardRef)(({color:e,size:t,width:n,height:r,strokeWidth:i,absoluteStrokeWidth:a,nonScalingStroke:o,className:s=``,children:c,iconNode:u=[],icon:d={node:u,aliases:[],size:24},...f},p)=>{let{size:m=24,strokeWidth:h=2,absoluteStrokeWidth:g=!1,nonScalingStroke:_=!1,color:v=`currentColor`,className:y=``}=Et()??{},b=!!c||wt(f),[ee,te,ne=[]]=Ct(d,{color:e??v,width:n??t??m,height:r??t??m,strokeWidth:i??h,absoluteStrokeWidth:a??g,nonScalingStroke:o??_,className:bt(y,s),hasA11yProp:b,attributes:f});return(0,l.createElement)(ee,{ref:p,...te},[...ne.map(([e,t])=>(0,l.createElement)(e,t)),...Array.isArray(c)?c:[c]])});function Ot(e,t=[],n=[]){let r=typeof e==`string`?_t(e,t,n):e,i=(0,l.forwardRef)(({className:e,...t},n)=>(0,l.createElement)(Dt,{ref:n,icon:r,className:e,...t}));return r.name&&(i.displayName=yt(r.name)),i}var kt={name:`chevron-down`,size:24,node:[[`path`,{d:`m6 9 6 6 6-6`,key:`qrunsl`}]]};kt.node;var At=Ot(kt),jt={name:`chevron-up`,size:24,node:[[`path`,{d:`m18 15-6-6-6 6`,key:`153udz`}]]};jt.node;var Mt=Ot(jt),Nt={name:`file-text`,size:24,node:[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 9H8`,key:`b1mrlr`}],[`path`,{d:`M16 13H8`,key:`t4e002`}],[`path`,{d:`M16 17H8`,key:`z1uh3a`}]]};Nt.node;var Pt=Ot(Nt),Ft=e=>`${Math.round(e*1e6)/1e4}%`;function X(e,t){return e.remediation!=null&&!e.remediation.some(e=>e.key===t)}var It=`spark.sql.adaptive.skewJoin.enabled`,Lt=`AQE skew-join handling is already on, so salt the key or repartition on a better key.`,Rt=`AQE is off, so enable it (spark.sql.adaptive.enabled) for skew-join handling to apply; otherwise salt the key or repartition on a better key.`;function zt(e,t){return e.remediation?.some(e=>e.key===`spark.sql.adaptive.enabled`)?Rt:X(e,It)?Lt:t}var Bt=`spark.dynamicAllocation.enabled`,Vt={incompleteRun:{name:`incomplete run`,tag:`INCMP`,thresholdSummary:()=>`an event log missing its terminal ApplicationEnd event`,actionLabel:()=>void 0,genericRecommendation:()=>void 0},skew:{name:`task skew`,tag:`SKEW`,thresholdSummary:e=>`P95 task time over ${e.ratioWarn}× the median (the longest task on stages under ${e.minTasksForP95} tasks)`,actionLabel:()=>`Fix task skew`,genericRecommendation:e=>zt(e,`For join-driven skew, enable AQE skew-join handling (spark.sql.adaptive.skewJoin.enabled); otherwise salt the key or repartition on a better key.`)},stageShape:{name:`stage shape`,tag:`SHAPE`,thresholdSummary:e=>`under ${e.pRatioMax} tasks per core, output over ${e.oiRatioMax}× input, or one task spanning over ${Math.round(e.stageShareMin*100)}% of the stage's wall-clock at over ${e.skewWarn}× the median task`,actionLabel(e){switch(e.rule){case`lowParallelism`:return`Increase parallelism`;case`dataExplosion`:return`Check for exploding join`;case`taskStageSkew`:return`Fix straggler task`}},genericRecommendation(e){switch(e.rule){case`lowParallelism`:return`Too few tasks run relative to the cores available, leaving cluster capacity idle: repartition to use more of it.`;case`dataExplosion`:return`Output volume far exceeds input volume: check for an exploding join or a cross product.`;case`taskStageSkew`:return`A single straggler task gates the whole stage's wall-clock duration.`}}},tinyTask:{name:`tiny tasks`,tag:`TINY`,thresholdSummary:e=>`${e.minTasks}+ tasks with a median of ${e.maxP50}ms or less and a P95 of ${e.maxP95}ms or less`,actionLabel:()=>`Coalesce small tasks`,genericRecommendation:()=>`Scheduler overhead may dominate: lower spark.sql.shuffle.partitions, or coalesce down to fewer, larger tasks.`},shuffle:{name:`shuffle I/O`,tag:`SHFL`,thresholdSummary:e=>`stage shuffle read above ${e.minBytes/1048576} MiB`,actionLabel:()=>`Reduce shuffle size`,genericRecommendation:()=>`Raise spark.sql.shuffle.partitions, or use a broadcast join for the smaller side.`},partitionSizing:{name:`partition sizing`,tag:`PART`,thresholdSummary:e=>`a shuffle partition over ${e.skewRatio}× the median or over ${e.maxPartBytes/1073741824} GiB, or ${e.lowParTotalBytes/1073741824} GiB of shuffle on ${e.lowParMaxTasks} tasks or fewer`,actionLabel(e){switch(e.rule){case`shufflePartitionSkew`:return`Fix skewed partition`;case`lowShuffleParallelism`:return`Add shuffle partitions`;case`maxPartitionTooBig`:return`Repartition oversized data`}},genericRecommendation(e){switch(e.rule){case`shufflePartitionSkew`:return zt(e,`For join skew, enable AQE skew-join handling (spark.sql.adaptive.skewJoin.enabled); otherwise salt the key or repartition on a better key.`);case`lowShuffleParallelism`:return X(e,`spark.sql.shuffle.partitions`)?`spark.sql.shuffle.partitions is already high enough, so raise this stage's own partition count (its repartition(n) or RDD parallelism) so each partition is smaller.`:`Raise spark.sql.shuffle.partitions so each partition is smaller.`;case`maxPartitionTooBig`:return`Repartition to break up the oversized partition before this stage.`}}},spill:{name:`spill`,tag:`SPILL`,thresholdSummary:e=>`single-task disk spill above ${e.singleTaskDiskGiB} GiB`,actionLabel:()=>`Reduce spill`,genericRecommendation:()=>`If the spill is skew-driven, fix task skew first: adding memory will not help. Otherwise raise spark.sql.shuffle.partitions or increase executor memory.`},gc:{name:`GC pressure`,tag:`GC`,thresholdSummary:e=>`GC above ${e.warnPct100}% (or below ${e.lowInfoPct100}%) of executor run time`,actionLabel:e=>e.direction===`low`?`Right-size executor memory`:`Reduce GC pressure`,genericRecommendation:e=>e.direction===`low`?`Memory may be over-provisioned here: consider reducing spark.executor.memory for cost savings.`:`Reduce object creation, use primitive types, avoid UDFs, or increase executor memory to cut GC time.`},stageFailed:{name:`failed stage`,tag:`SFAIL`,thresholdSummary:()=>`a stage that failed outright`,actionLabel:()=>`Inspect stage failure`,genericRecommendation:()=>`Inspect the driver log for the failure reason and the job that triggered it.`},failures:{name:`failed tasks`,tag:`FAIL`,thresholdSummary:e=>`over ${Ft(e.warnRate)} of a stage's tasks failing`,actionLabel:()=>`Investigate task failures`,genericRecommendation:()=>`Investigate driver logs for executor instability or data-driven errors.`},retryWaste:{name:`retry waste`,tag:`RETRY`,thresholdSummary:e=>`${e.minWasted}+ retried attempts wasting at least ${e.minWasteMs/1e3}s`,actionLabel:()=>`Investigate retry cause`,genericRecommendation:()=>`Investigate executor loss or fetch failures behind the retried attempts.`},slowHost:{name:`slow executor host`,tag:`HOST`,thresholdSummary:e=>`a host ${e.ratioWarn}× slower than its peers by mean task time (per-executor figures from ${e.ratioTiers[0]}×)`,actionLabel(e){return e.variant===`durationShare`?`Fix data locality`:e.variant===`multiDim`?`Investigate degraded executor`:`Check slow host`},genericRecommendation(e){if(e.variant===`durationShare`)return`Check for data locality or partition assignment skewing work onto one node.`;if(e.variant===`multiDim`)return`Investigate uneven partition assignment or a degraded executor.`;let t=`Check what this host was running: it may just hold data locality for its tasks or carry one heavy stage, rather than a hardware fault.`;return X(e,`spark.speculation`)?`${t} Speculation is already on, so a lagging task there is already relaunched.`:`${t} Enable spark.speculation to relaunch a lagging task automatically.`}},stageSlowness:{name:`slow stage`,tag:`SLOW`,thresholdSummary:()=>`a stage running far longer than its peers, not attributable to a single slow host`,actionLabel:()=>`Profile slow stage`,genericRecommendation:()=>`Often a partition-count problem: raise parallelism via spark.sql.shuffle.partitions or spark.default.parallelism, or check for a large per-task data volume driving heavy shuffle and spill.`},straggler:{name:`straggling task`,tag:`STRAG`,thresholdSummary:()=>`one or more tasks finishing far after the rest of their stage`,actionLabel:()=>`Fix stragglers`,genericRecommendation:()=>`Rule out a GC pause or a slow shuffle fetch before assuming a hardware issue. If a skewed key is the real cause, that is a candidate for AQE's skew-join handling.`},speculationWaste:{name:`speculation waste`,tag:`SPEC`,thresholdSummary:e=>`${e.minWasted}+ discarded speculative attempts wasting at least ${e.minWasteMs/1e3}s`,actionLabel:()=>`Tune speculation settings`,genericRecommendation:()=>`If task durations are naturally variable rather than genuine stragglers, consider tuning spark.speculation.multiplier/quantile.`},coldStart:{name:`cold start`,tag:`COLD`,thresholdSummary:e=>`the first stage waiting over ${e.gapSeconds}s for an executor`,actionLabel:()=>`Pre-warm cluster`,genericRecommendation:()=>`Keep a warm pool of idle executors, or if using dynamic allocation, raise the minimum/initial executor count so it does not scale up from zero.`},memoryUtilization:{name:`memory utilization`,tag:`MEM`,thresholdSummary:()=>`executor heap usage outside the configured band`,actionLabel(e){switch(e.variant){case`idleCores`:return`Reduce idle cores`;case`wasteModel`:return`Right-size executor memory`;case`memoryBand`:return e.dataUnavailable?`Enable memory metrics`:e.rule===`heapNearCapacity`?`Increase executor memory`:`Reduce executor memory`}},genericRecommendation(e){switch(e.variant){case`idleCores`:return X(e,Bt)?`Dynamic allocation is already on, so reduce cluster size.`:`Reduce cluster size or enable dynamic allocation.`;case`wasteModel`:return`Review spark.executor.memory and executor count.`;case`memoryBand`:return e.dataUnavailable?void 0:e.rule===`heapNearCapacity`?`Memory may be too small: raise spark.executor.memory to avoid OOM/spill.`:`Memory may be over-provisioned: consider reducing spark.executor.memory for cost savings.`}}},utilization:{name:`executor utilization`,tag:`UTIL`,thresholdSummary:e=>`average executor utilization below ${Ft(e.minUtil)}`,actionLabel:()=>`Reduce cluster size`,genericRecommendation:e=>X(e,Bt)?`Dynamic allocation is already on, so consider reducing cluster size.`:`Consider reducing cluster size or enabling dynamic allocation.`},coreLocality:{name:`core locality`,tag:`LOCAL`,thresholdSummary:()=>`task placement missing data-local core assignment`,actionLabel:()=>`Fix data locality`,genericRecommendation:()=>`Check executor/data colocation.`},cachingOpportunity:{name:`caching opportunity`,tag:`CACHE`,thresholdSummary:()=>`a dataset re-read from source multiple times with no cache/persist`,actionLabel:e=>e.variant===`composite`?`Cache repeated result`:`Cache shared table`,genericRecommendation:e=>e.variant===`composite`?`Cache or persist the repeated join/union result so it is computed once instead of recomputed per query.`:`Cache the shared DataFrame, or broadcast it if it is a small join lookup.`},cacheUtilization:{name:`cache utilization`,tag:`CSTOR`,thresholdSummary:()=>`cached partitions evicted or spilled to disk`,actionLabel:e=>e.dataUnavailable?`Enable block-update logging`:`Increase cache memory`,genericRecommendation(e){switch(e.variant){case`partialCache`:return`Increase executor memory or reduce the cached dataset size so more of it stays cached.`;case`diskSpillover`:return`Executor memory may be too small for this cached dataset: increase executor memory or reduce its size.`}}},jobFailureRate:{name:`job failure rate`,tag:`JOBS`,thresholdSummary:e=>`at least ${Ft(e.infoRate)} of jobs failing`,actionLabel:()=>`Investigate failed jobs`,genericRecommendation:()=>`Inspect the driver log for the failed job(s) and the stage failures that triggered them.`},autoscalingChurn:{name:`autoscaling churn`,tag:`CHRN`,thresholdSummary:e=>`over ${Ft(e.warningPct)} of executors living under ${e.shortLivedMs/6e4} minutes`,actionLabel:()=>`Reduce autoscaling churn`,genericRecommendation:()=>`This looks like wasteful re-provisioning rather than normal scale-down: consider raising spark.dynamicAllocation.executorIdleTimeout or widening the minExecutors/maxExecutors bounds to reduce flapping.`},configAudit:{name:`config audit`,tag:`CFG`,thresholdSummary:()=>`a Spark conf value outside the recommended range`,actionLabel(e){switch(e.property){case`spark.shuffle.service.enabled`:return`Enable shuffle service`;case`spark.dynamicAllocation.minExecutors`:return`Fix autoscaling bounds`;case`spark.dynamicAllocation.maxExecutors`:return`Set max executors`;case`spark.serializer`:return`Switch to Kryo`;case`spark.executor.memoryOverhead`:return`Raise memory overhead`}},genericRecommendation(e){switch(e.property){case`spark.shuffle.service.enabled`:return`Set spark.shuffle.service.enabled=true so shuffle data survives executor removal.`;case`spark.dynamicAllocation.minExecutors`:return`Set the minimum executor bound at or below the maximum.`;case`spark.dynamicAllocation.maxExecutors`:return`Set spark.dynamicAllocation.maxExecutors to cap cluster growth.`;case`spark.serializer`:return`Consider spark.serializer=org.apache.spark.serializer.KryoSerializer for faster, smaller buffers.`;case`spark.executor.memoryOverhead`:return`Raise executor memoryOverhead above Spark's default floor to avoid off-heap OOM-kills.`}}},duplicatePlanSubtree:{name:`duplicate plan subtree`,tag:`PLAN`,thresholdSummary:()=>`the same physical plan subtree executed more than once`,actionLabel:()=>`Dedupe repeated subtree`,genericRecommendation:()=>`Check whether the repeated subtree could be computed once and reused, or cache/persist the shared computation.`},smallFiles:{name:`small files`,tag:`PLAN`,thresholdSummary:e=>`over ${e.minFiles} files averaging under ${e.maxAvgFileSizeMB} MiB`,actionLabel:e=>e.direction===`write`?`Coalesce output files`:`Compact small files`,genericRecommendation:e=>e.direction===`write`?`Repartition or coalesce before writing to raise the average file size.`:`Compact the upstream output so fewer, larger files are produced.`},underBroadcast:{name:`missed broadcast join`,tag:`PLAN`,thresholdSummary:()=>`a join below the configured size floor that skipped broadcast`,actionLabel:()=>`Use broadcast join`,genericRecommendation:()=>`This could have been a broadcast join: consider a broadcast() hint or raising spark.sql.autoBroadcastJoinThreshold.`},overBroadcast:{name:`oversized broadcast join`,tag:`PLAN`,thresholdSummary:e=>`a broadcast over ${e.overBroadcastBytes/1073741824} GiB`,actionLabel:()=>`Fix oversized broadcast`,genericRecommendation:e=>X(e,`spark.sql.autoBroadcastJoinThreshold`)?`Automatic broadcast is already disabled, so remove the broadcast() hint that forced it.`:`Check for a misapplied broadcast hint or a misconfigured spark.sql.autoBroadcastJoinThreshold.`}};function Ht(e){return Vt[e]}var Ut=134217728,Wt=8e3,Gt=1.5,Z={critical:0,warning:1,info:2},Kt=Object.fromEntries(Object.keys(Vt).map(e=>[e,Vt[e].tag]));function qt(e){return Kt[e]??e.toUpperCase()}var Jt={skew:`Skew spill: a few heavy tasks spill while most do not; rebalance partitioning`,volume:`Volume spill: most tasks spill because data exceeds memory; add partitions`,unclassified:`Spill cause could not be classified`},Yt={skew:`skew`,volume:`vol`,unclassified:`?`},Xt=8;function Zt(e,t=Xt){return e.length<=t?e.join(`, `):`${e.slice(0,t).join(`, `)}, +${e.length-t} more`}function Qt(e){let t;for(let n of e)(t===void 0||Z[n.impactBand]<Z[t])&&(t=n.impactBand);return t}function $t(e){let t=String(e),n=t.match(/((?:hdfs?|s3[an]?):\/\/\S+|\/[^\s,)]+)/i);if(!n)return t;let r=n[1].replace(/[/,]+$/,``).split(`/`).filter(Boolean);return r[r.length-1]||t}function en(e){return e.split(`::`)[0]||e}function tn(e){return!e||e<=0?`—`:e>=1e9?`${(e/1e9).toFixed(1)} GB`:e>=1e6?`${(e/1e6).toFixed(0)} MB`:`${(e/1e3).toFixed(0)} KB`}function nn(e){return e/1e6}function rn(e){return e.value??0}function Q(e,t){switch(e){case`pct`:return`${t}%`;case`pctFraction`:return`${Math.round(t*100)}%`;case`ratio`:return`${t}×`;case`ms`:return ln(t);case`count`:return`${t}`}}var an={shuffleReadBytes:`bytes`,memoryBytesSpilled:`bytes`,shuffleReadMax:`bytes`,avgFileSizeBytes:`bytes`,smallerSideBytes:`bytes`,broadcastBytes:`bytes`,speculationWasteMs:`ms`,retryWasteMs:`ms`,taskDurationP50:`ms`,stageDurationMinutes:`minutes`,"P95/median":`ratio`,"max/median":`ratio`,pRatio:`ratio`,oiRatio:`ratio`,hostMeanRatio:`ratio`,execMaxMedianRatio:`ratio`,gcPct:`pct`,failureRate:`pct`,stragglerShare:`pct`,hostDurationShare:`pctFraction`,taskStageSkew:`pctFraction`,taskCount:`count`,speculativeTasks:`count`,subtreeOccurrences:`count`};function on(e){return e>0&&e<1e3?`${Math.round(e)} B`:tn(e)}function sn(e){let t=e.metric?an[e.metric]:void 0;if(!t||e.value==null)return null;switch(t){case`bytes`:return on(e.value);case`minutes`:return ln(e.value*6e4);case`ms`:return Q(`ms`,e.value);case`ratio`:return Q(`ratio`,e.value);case`pct`:return Q(`pct`,e.value);case`pctFraction`:return Q(`pctFraction`,e.value);case`count`:return Q(`count`,e.value)}}function cn(e){let t=sn(e),n=e.impactEstimate?.wallClock,r=[t,n?`~${ln(n.high)}`:null].filter(Boolean);return r.length>0?r.join(` · `):null}function ln(e){return!e||e<=0?`—`:e<1e3?`${Math.round(e)}ms`:e<6e4?`${(e/1e3).toFixed(1)}s`:e<36e5?`${Math.floor(e/6e4)}m ${Math.floor(e%6e4/1e3)}s`:`${Math.floor(e/36e5)}h ${Math.floor(e%36e5/6e4)}m`}function un(e){let t=e.shuffleReadBytes??0;if(t<=0)return null;let n=Math.min(Wt,Math.ceil(t/Ut)),r=e.taskCount??0;return n<=r*Gt?null:{recommended:n,current:r}}function dn(e,t){if(e.length===0)return{labels:[],data:[]};let n=e[0],r=e[0];for(let t=1;t<e.length;t++)e[t]<n&&(n=e[t]),e[t]>r&&(r=e[t]);let i=(r-n)/t||1,a=Array(t).fill(0);for(let r of e)a[Math.min(Math.floor((r-n)/i),t-1)]++;return{labels:a.map((e,t)=>Math.round(n+t*i)),data:a}}function fn(e){return e===0?`0s`:ln(e)}function pn(e,t){let n=fn(e),r=fn(t);return n===r?r:`${n}-${r}`}var mn=36e5,hn=3686400,gn=.1,_n=e=>(Math.round(e*10)/10).toLocaleString(`en-US`,{minimumFractionDigits:1,maximumFractionDigits:1});function vn(e){let t=Math.round(e.value*10)/10;switch(e.unit){case`bytes`:return tn(e.value);case`ms`:return fn(e.value);case`mbSeconds`:{let n=e.value/hn;return n>=gn?`${_n(n)} GB-h`:`${t.toLocaleString(`en-US`)} MB-s`}case`coreHours`:return`${t.toFixed(1)} core-h`;case`coreMs`:{let t=e.value/mn;return t>=gn?`${_n(t)} core-h`:`${_n(e.value/1e3)} core-s`}default:return String(e.value)}}function yn(e){return/^0(\.0+)?(?:[^0-9.]|$)/.test(e)}function bn(e){return e>=10?String(Math.round(e)):e.toFixed(1).replace(/\.0$/,``)}var xn=36e5,$=c();function Sn(e){if(e.length===0)return[];let t=[...e].sort((e,t)=>e[0]-t[0]),n=[[t[0][0],t[0][1]]];for(let e=1;e<t.length;e++){let r=n[n.length-1],i=t[e];i[0]<=r[1]?r[1]=Math.max(r[1],i[1]):n.push([i[0],i[1]])}return n}function Cn(e){return Ht(e.type)?.genericRecommendation(e)}function wn(e){let t=e.sampleRelation?` (touching ${e.sampleRelation})`:``;return`A ${e.subtreeSize}-node subtree rooted at ${$t(e.rootName)} repeats ${e.value}x in this plan${t}`}var Tn=`Their filters, columns or scanned tables differ, so the repeats may compute different data.`,En={taskTime:`task time`,inputBytes:`input read`,shuffleBytes:`shuffle read and write`,storageMemory:`storage memory`};function Dn(e,t){let n=[];for(let r of e){let e=t.get(r);e&&e.submittedAt!=null&&e.completedAt!=null&&n.push([e.submittedAt,e.completedAt])}return Sn(n).reduce((e,[t,n])=>e+(n-t),0)}function On(e){let t=new Map;for(let n of e){let e=t.get(n.type)??[];e.push(n),t.set(n.type,e)}return t}function kn(e){return`stageIds`in e?e.stageIds:e.stageId==null?[]:[e.stageId]}function An(e,t,n){let r=[...new Set(t.flatMap(kn))],i=t.reduce((e,t)=>e+(t.impactEstimate?.wallClock?.high??0),0),a=r.length>0?Math.min(i,Dn(r,n)):i;return{kind:`time`,type:e,findingCount:t.length,stageCount:r.length,recoverableMsHigh:a,findings:t}}function jn(e,t){let n=t[0].impactEstimate.rawWaste.unit,r=t.reduce((e,t)=>e+(t.impactEstimate?.rawWaste?.value??0),0);return{kind:`resource`,type:e,findingCount:t.length,unit:n,total:r,findings:t}}function Mn(e,t){let n={};for(let e of t)n[e.impactBand]=(n[e.impactBand]??0)+1;return{kind:`count`,type:e,findingCount:t.length,byImpactBand:n,findings:t}}var Nn={time:0,resource:1,count:2};function Pn(e,t){let n=[];for(let[r,i]of On(e)){let e=i.filter(e=>e.impactEstimate?.wallClock!=null),a=i.filter(e=>e.impactEstimate?.wallClock==null&&e.impactEstimate?.rawWaste!=null),o=i.filter(e=>e.impactEstimate?.wallClock==null&&e.impactEstimate?.rawWaste==null);if(e.length>0&&n.push(An(r,e,t)),a.length>0){let e=new Map;for(let t of a){let n=t.impactEstimate.rawWaste.unit,r=e.get(n)??[];r.push(t),e.set(n,r)}for(let t of e.values())n.push(jn(r,t))}o.length>0&&n.push(Mn(r,o))}return n.sort((e,t)=>{let n=Nn[e.kind]-Nn[t.kind];return n===0?e.kind===`time`&&t.kind===`time`?t.recoverableMsHigh-e.recoverableMsHigh:(Z[Qt(e.findings)??`info`]??9)-(Z[Qt(t.findings)??`info`]??9):n})}function Fn(e){let t=vn({value:e.total,unit:e.unit});return yn(t)?null:t}function In(e){if(e.kind===`time`){let t=pn(e.recoverableMsHigh,e.recoverableMsHigh);return{stat:`×${e.findingCount} · ${t} recoverable`,statTitle:`${e.findingCount} findings of this type; up to ${t} of run time could be recovered by fixing them`}}if(e.kind===`resource`){let t=Fn(e);return{stat:t?`×${e.findingCount} · ${t}`:`×${e.findingCount}`,statTitle:`${e.findingCount} findings of this type${t?`; ${t} in total, a resource cost, not run time`:``}`}}let t=Object.entries(e.byImpactBand);return{stat:t.length===1?`×${e.findingCount}`:`×${e.findingCount} · ${t.map(([e,t])=>`${t} ${e}`).join(`, `)}`,statTitle:`${e.findingCount} findings of this type, by impact`}}function Ln(e){return!(e.type===`memoryUtilization`&&e.variant===`memoryBand`&&e.dataUnavailable)}function Rn(e){return e.type===`incompleteRun`||`dataUnavailable`in e&&e.dataUnavailable?!1:Ln(e)}var zn=0,Bn=1,Vn=2;function Hn(e){let t=e.impactEstimate;return t?.wallClock?zn:t?.rawWaste?Bn:Vn}function Un(e){return[...e].sort((e,t)=>{let n=Hn(e)-Hn(t);return n===0?Hn(e)===zn?t.impactEstimate.wallClock.high-e.impactEstimate.wallClock.high:(Z[e.impactBand]??9)-(Z[t.impactBand]??9):n})}function Wn(e,t){return Pn(e,t).map(e=>{let t=Un(e.findings);return{kind:e.kind,type:e.type,unit:e.kind===`resource`?e.unit:null,band:t[0].impactBand,members:t,...In(e)}})}var Gn=`docs/tuning-reference`,Kn={"bottleneck-stage-shape":`bottleneck-skew`,"bottleneck-stage-slowness":`bottleneck-slow-host`,"bottleneck-partition-sizing":`bottleneck-shuffle`,"bottleneck-speculation-waste":`bottleneck-straggler`,"bottleneck-core-locality":`bottleneck-utilization`,"bottleneck-caching-opportunity":`bottleneck-utilization`,"bottleneck-autoscaling-churn":`cluster-config`,"bottleneck-cache-utilization":`memory-model`};function qn(e){return e.startsWith(`metric-`)?`metrics`:e.startsWith(`config-`)?`config`:Kn[e]??e}function Jn(e){let t=String(e).replace(/^#/,``);return`${Gn}/${qn(t)}.html#${encodeURIComponent(t)}`}var Yn=new Set([`#intro`,`#spark-architecture`,`#memory-model`,`#partitioning`,`#joins`,`#shuffle`,`#data-formats`,`#table-formats`,`#caching`,`#pyspark`,`#aqe`,`#cluster-config`,`#anti-patterns`,`#metrics`,`#config`,`#bottleneck-cold-start`,`#bottleneck-failures`,`#bottleneck-gc`,`#bottleneck-job-failure-rate`,`#bottleneck-retry-waste`,`#bottleneck-shuffle`,`#bottleneck-skew`,`#bottleneck-slow-host`,`#bottleneck-spill`,`#bottleneck-straggler`,`#bottleneck-tiny-tasks`,`#bottleneck-utilization`,`#bottleneck-memory-utilization`,`#bottleneck-broadcast-sizing`,`#bottleneck-duplicate-plan-subtree`,`#bottleneck-small-files`,`#bottleneck-stage-shape`,`#bottleneck-stage-slowness`,`#bottleneck-partition-sizing`,`#bottleneck-speculation-waste`,`#bottleneck-core-locality`,`#bottleneck-caching-opportunity`,`#bottleneck-autoscaling-churn`,`#bottleneck-cache-utilization`,`#config-autoscale-bounds`,`#config-memory-overhead`,`#config-serializer`,`#config-shuffle-service`,...Object.values({"task-duration":`#metric-task-duration`,"shuffle-read-bytes":`#metric-shuffle-read-bytes`,"shuffle-write-bytes":`#metric-shuffle-write-bytes`,"memory-bytes-spilled":`#metric-memory-bytes-spilled`,"disk-bytes-spilled":`#metric-disk-bytes-spilled`,"jvm-gc-time":`#metric-jvm-gc-time`,gcpct:`#metric-gcpct`,"executor-run-time":`#metric-executor-run-time`,"fetch-wait-time-ratio":`#metric-fetch-wait-time-ratio`,"input-bytes":`#metric-input-bytes`,"output-bytes":`#metric-output-bytes`,"io-ratio":`#metric-io-ratio`,"peak-execution-memory":`#metric-peak-execution-memory`,"failed-tasks":`#metric-failed-tasks`,"speculative-tasks":`#metric-speculative-tasks`,"first-stage-submitted-at":`#metric-first-stage-submitted-at`,"executor-count":`#metric-executor-count`,"stage-duration":`#metric-stage-duration`})]);function Xn(e){return Yn.has(String(e))}function Zn(e){let t=new Set(e.map(e=>e.docAnchor));if(t.size!==1)return;let[n]=t;return n}function Qn(e){return`docs/user-guide/understanding-findings.html#${qt(e).toLowerCase()}`}var $n=`docs/user-guide/alternative-log-retrieval.html`,er=f(`group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!`,{variants:{variant:{default:`bg-primary text-primary-foreground [a]:hover:bg-primary/80`,secondary:`bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80`,destructive:`bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20`,outline:`border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground`,ghost:`hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50`,link:`text-primary underline-offset-4 hover:underline`}},defaultVariants:{variant:`default`}});function tr({className:e,variant:t=`default`,render:n,...i}){return o({defaultTagName:`span`,props:r({className:G(er({variant:t}),e)},i),render:n,state:{slot:`badge`,variant:t}})}var nr=`#intro`,rr=(0,l.createContext)(null);function ir({children:e}){let[t,n]=(0,l.useState)(!1),[r,i]=(0,l.useState)({kind:`site`,source:`reference`,path:Jn(nr)}),a=(0,l.useCallback)((e=nr)=>{i({kind:`site`,source:`reference`,path:Jn(e)}),n(!0)},[]),o=(0,l.useCallback)(e=>{i({kind:`site`,source:`guide`,path:e}),n(!0)},[]),s=(0,l.useCallback)(()=>n(!1),[]),c=(0,l.useMemo)(()=>({open:a,openSite:o,close:s,isOpen:t,target:r}),[a,o,s,t,r]);return(0,$.jsx)(rr.Provider,{value:c,children:e})}function ar(){let e=(0,l.useContext)(rr);if(!e)throw Error(`useDocs outside DocsProvider`);return e}function or(){return(0,l.useContext)(rr)}function sr({anchor:e,children:t}){let{open:n}=ar(),r=mt(e=>e.exportMode);return Xn(e)?r?(0,$.jsx)($.Fragment,{children:t}):(0,$.jsx)(`a`,{href:Jn(e),className:`text-primary underline-offset-4 hover:underline`,onClick:t=>{t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.button!==0||(t.preventDefault(),n(e))},children:t}):null}var cr={INCMP:{expansion:`Incomplete run`,description:`This event log never recorded an application-end event, so other findings and metrics reflect only what was captured.`},SKEW:{expansion:`Task skew`,description:`A small number of tasks take much longer than their peers.`},SHFL:{expansion:`Shuffle I/O`,description:`Tasks are moving a large amount of intermediate data between stages.`},SPILL:{expansion:`Memory and disk spill`,description:`Tasks are writing data out of memory, which slows execution.`},GC:{expansion:`Garbage collection pressure`,description:`Tasks are spending an unusually large share of time reclaiming memory.`},COLD:{expansion:`Executor cold start`,description:`New executors are taking time to become available for work.`},UTIL:{expansion:`Low utilization`,description:`Allocated executors are idle for a large share of the application run.`},MEM:{expansion:`Memory utilization`,description:`Executor memory or core capacity may be over- or under-provisioned.`},LOCAL:{expansion:`Core usage locality`,description:`Tasks are running without process- or node-local data placement more than expected.`},HOST:{expansion:`Slow host`,description:`One executor is substantially slower than its peers.`},FAIL:{expansion:`Failed tasks`,description:`Tasks are failing often enough to affect the stage.`},STRAG:{expansion:`Straggler tasks`,description:`A few tasks are much slower than the rest of their stage.`},SPEC:{expansion:`Speculation waste`,description:`Speculative task attempts used a lot of executor time without confirming a genuine straggler.`},RETRY:{expansion:`Retry waste`,description:`Repeated task attempts are consuming avoidable execution time.`},TINY:{expansion:`Tiny tasks`,description:`Many very short tasks are adding scheduling overhead.`},SFAIL:{expansion:`Failed stage`,description:`A stage attempt failed outright.`},PART:{expansion:`Partition sizing`,description:`Shuffle partitions are too large, too uneven, or too few for the work.`},SLOW:{expansion:`Stage slowness`,description:`A stage is slow overall without a more specific diagnosed cause.`},SHAPE:{expansion:`Stage shape`,description:`The stage has an inefficient task count, output shape, or task-to-stage balance.`},CACHE:{expansion:`Caching opportunity`,description:`A reusable dataset may benefit from being persisted between stages.`},CSTOR:{expansion:`Cache storage`,description:`A persisted dataset is not fully cached in memory or is spilling to disk.`},CHRN:{expansion:`Autoscaling churn`,description:`Executors are being stood up and torn down again before they can do useful work.`},JOBS:{expansion:`Job failure rate`,description:`A large share of completed jobs did not succeed.`},CFG:{expansion:`Configuration audit`,description:`Configuration settings may cause reliability or efficiency problems.`},PLAN:{expansion:`Plan advisor`,description:`The SQL execution plan has a pattern worth reviewing.`}};function lr(){return mt(e=>e.interpretation)}function ur(e,t){return e.findings[t]}var dr=new WeakMap;function fr(e,t){if(!e)return null;let n=dr.get(e);return n||(n=new Map(e.findings.map((t,n)=>[t,e.data.savings[n]])),dr.set(e,n)),n.get(t)??null}function pr(e){return fr(lr(),e)}function mr(e,t){if(!e)return[];let n=new Set(t);return e.data.savingsRank.map(t=>e.findings[t]).filter(e=>e!=null&&n.has(e))}function hr(e){return e?e.data.rollup.eligibleIndexes.map(t=>e.findings[t]).filter(e=>e!=null):[]}function gr({members:e,...t}){return{...t,key:`${t.kind}-${t.type}-${t.unit??``}`,findings:e}}function _r(e,t,n){if(!e)return{eligible:[],groups:[]};let r=new Set(t),i=hr(e).filter(e=>r.has(e));return{eligible:i,groups:e.findings.every(e=>r.has(e))?e.data.rollup.groups.map(({memberIndexes:t,...n})=>gr({...n,members:t.map(t=>e.findings[t]).filter(e=>e!=null)})):Wn(i,n).map(gr)}}function vr({children:e}){return ht()===`advanced`?(0,$.jsx)($.Fragment,{children:e}):null}var yr={critical:`bg-critical`,warning:`bg-warning`,info:`bg-info`},br={critical:`text-critical`,warning:`text-warning`,info:`text-info`},xr={critical:`border-critical`,warning:`border-warning`,info:`border-info`},Sr=f(`inline-block size-2 shrink-0 rounded-full`,{variants:{impactBand:{...yr,muted:`bg-muted-foreground`}},defaultVariants:{impactBand:`info`}}),Cr=f(`gap-1.5 border-transparent`,{variants:{impactBand:{critical:`bg-critical/10 text-critical`,warning:`bg-warning/10 text-warning`,info:`bg-info/10 text-info`}},defaultVariants:{impactBand:`info`}});function wr({impactBand:e,className:t}){return(0,$.jsx)(`span`,{"aria-hidden":`true`,className:G(Sr({impactBand:e}),t)})}function Tr({type:e,impactBand:t,className:n,plainBadge:r,docAnchor:i}){let a=or(),o=ht(),s=mt(e=>e.exportMode),c=lr()?.data.detectors[e]?.docAnchor??void 0,l=qt(e),u=cr[l],d=r?void 0:u?`${u.expansion}: ${u.description}`:void 0,f=r?void 0:i&&Xn(i)?i:c,p=u?.expansion??l,m=Qn(e),h=s?void 0:f?Jn(f):r?void 0:m,g=!r&&!s&&o===`advanced`&&!!f,_=(0,$.jsxs)(tr,{title:d,className:G(Cr({impactBand:t}),`h-6`,h&&`underline decoration-dotted underline-offset-2`,g?G(`rounded-r-none`,n):n),render:h?(0,$.jsx)(`a`,{href:h,onClick:e=>{!a||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.button!==0||(e.preventDefault(),f?a.open(f):a.openSite(m))}}):void 0,children:[(0,$.jsx)(wr,{impactBand:t}),l]});return r?_:(0,$.jsxs)(`span`,{className:`inline-flex items-center`,children:[_,g?(0,$.jsx)(vr,{children:(0,$.jsx)(`a`,{href:m,target:`_blank`,rel:`noopener noreferrer`,"aria-label":`SparkForensics guide: ${p}`,title:`SparkForensics guide: ${p}`,onClick:e=>{!a||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.button!==0||(e.preventDefault(),a.openSite(m))},className:G(`tap-target-comfortable tap-target-comfortable--sm inline-flex h-6 shrink-0 items-center rounded-r-4xl border border-transparent py-0.5 pr-2 pl-1 text-xs font-medium whitespace-nowrap transition-colors`,Cr({impactBand:t}),n,`text-muted-foreground hover:text-foreground focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50`),children:(0,$.jsx)(Pt,{"aria-hidden":`true`,className:`size-3`})})}):null]})}function Er({label:e,impactBand:t,title:n,className:r}){return(0,$.jsx)(tr,{title:n,className:G(Cr({impactBand:t}),`font-mono`,r),children:e})}function Dr({...e}){return(0,$.jsx)(a,{"data-slot":`collapsible`,...e})}function Or({...e}){return(0,$.jsx)(s,{"data-slot":`collapsible-trigger`,...e})}function kr({className:e,...t}){return(0,$.jsx)(i,{"data-slot":`collapsible-content`,className:G(`h-(--collapsible-panel-height) overflow-hidden transition-[height] duration-150 ease-out data-ending-style:h-0 data-starting-style:h-0 motion-reduce:transition-none`,e),...t})}var Ar=(0,l.createContext)(!0),jr=()=>(0,l.useContext)(Ar);export{Q as $,Xn as A,Cn as B,ir as C,ot as Ct,er as D,tr as E,f as Et,Un as F,Yt as G,Sn as H,Wn as I,fn as J,Jt as K,Fn as L,Pn as M,Rn as N,$n as O,Ln as P,cn as Q,Tn as R,sr as S,st as St,or as T,G as Tt,Z as U,wn as V,xn as W,bn as X,tn as Y,ln as Z,mr as _,Ot as _t,Or as a,$t as at,lr as b,ht as bt,xr as c,en as ct,Tr as d,Vt as dt,vn as et,Cr as f,Ht as ft,ur as g,At as gt,hr as h,Mt as ht,kr as i,rn as it,Zn as j,Gn as k,br as l,qt as lt,_r as m,Pt as mt,jr as n,pn as nt,Er as o,yn as ot,vr as p,Ft as pt,dn as q,Dr as r,nn as rt,yr as s,un as st,Ar as t,Zt as tt,wr as u,Qt as ut,fr as v,pt as vt,ar as w,it as wt,cr as x,ct as xt,pr as y,mt as yt,En as z};
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{A as t,M as n}from"./charts-vendor-0VMaLVLN.js";import{ct as r,et as i,nt as a,rt as o,tt as s}from"./react-vendor-DEdfrRTJ.js";import{p as c}from"./plan-graph-vendor-BYl-AzN5.js";var l=e(n(),1),u=e=>typeof e==`boolean`?`${e}`:e===0?`0`:e,d=t,f=(e,t)=>n=>{if(t?.variants==null)return d(e,n?.class,n?.className);let{variants:r,defaultVariants:i}=t,a=Object.keys(r).map(e=>{let t=n?.[e],a=i?.[e];if(t===null)return null;let o=u(t)||u(a);return r[e][o]}),o=n&&Object.entries(n).reduce((e,t)=>{let[n,r]=t;return r===void 0||(e[n]=r),e},{});return d(e,a,t?.compoundVariants?.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...i,...o}[t]):{...i,...o}[t]===n})?[...e,n,r]:e},[]),n?.class,n?.className)},p=(e,t)=>{let n=Array(e.length+t.length);for(let t=0;t<e.length;t++)n[t]=e[t];for(let r=0;r<t.length;r++)n[e.length+r]=t[r];return n},m=(e,t)=>({classGroupId:e,validator:t}),h=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),g=`-`,_=[],v=`arbitrary..`,y=e=>{let t=te(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:e=>{if(e.startsWith(`[`)&&e.endsWith(`]`))return ee(e);let n=e.split(g);return b(n,+(n[0]===``&&n.length>1),t)},getConflictingClassGroupIds:(e,t)=>{if(t){let t=r[e],i=n[e];return t?i?p(i,t):t:i||_}return n[e]||_}}},b=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;let r=e[t],i=n.nextPart.get(r);if(i){let n=b(e,t+1,i);if(n)return n}let a=n.validators;if(a===null)return;let o=t===0?e.join(g):e.slice(t).join(g),s=a.length;for(let e=0;e<s;e++){let t=a[e];if(t.validator(o))return t.classGroupId}},ee=e=>e.slice(1,-1).indexOf(`:`)===-1?void 0:(()=>{let t=e.slice(1,-1),n=t.indexOf(`:`),r=t.slice(0,n);return r?v+r:void 0})(),te=e=>{let{theme:t,classGroups:n}=e;return ne(n,t)},ne=(e,t)=>{let n=h();for(let r in e){let i=e[r];x(i,n,r,t)}return n},x=(e,t,n,r)=>{let i=e.length;for(let a=0;a<i;a++){let i=e[a];S(i,t,n,r)}},S=(e,t,n,r)=>{if(typeof e==`string`){re(e,t,n);return}if(typeof e==`function`){ie(e,t,n,r);return}ae(e,t,n,r)},re=(e,t,n)=>{let r=e===``?t:oe(t,e);r.classGroupId=n},ie=(e,t,n,r)=>{if(se(e)){x(e(r),t,n,r);return}t.validators===null&&(t.validators=[]),t.validators.push(m(n,e))},ae=(e,t,n,r)=>{let i=Object.entries(e),a=i.length;for(let e=0;e<a;e++){let[a,o]=i[e];x(o,oe(t,a),n,r)}},oe=(e,t)=>{let n=e,r=t.split(g),i=r.length;for(let e=0;e<i;e++){let t=r[e],i=n.nextPart.get(t);i||(i=h(),n.nextPart.set(t,i)),n=i}return n},se=e=>`isThemeGetter`in e&&e.isThemeGetter===!0,C=e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,n=Object.create(null),r=Object.create(null),i=(i,a)=>{n[i]=a,t++,t>e&&(t=0,r=n,n=Object.create(null))};return{get(e){let t=n[e];if(t!==void 0)return t;if((t=r[e])!==void 0)return i(e,t),t},set(e,t){e in n?n[e]=t:i(e,t)}}},w=`!`,T=`:`,ce=[],E=(e,t,n,r,i)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:i}),D=e=>{let{prefix:t,experimentalParseClassName:n}=e,r=e=>{let t=[],n=0,r=0,i=0,a,o=e.length;for(let s=0;s<o;s++){let o=e[s];if(n===0&&r===0){if(o===T){t.push(e.slice(i,s)),i=s+1;continue}if(o===`/`){a=s;continue}}o===`[`?n++:o===`]`?n--:o===`(`?r++:o===`)`&&r--}let s=t.length===0?e:e.slice(i),c=s,l=!1;s.endsWith(w)?(c=s.slice(0,-1),l=!0):s.startsWith(w)&&(c=s.slice(1),l=!0);let u=a&&a>i?a-i:void 0;return E(t,l,c,u)};if(t){let e=t+T,n=r;r=t=>t.startsWith(e)?n(t.slice(e.length)):E(ce,!1,t,void 0,!0)}if(n){let e=r;r=t=>n({className:t,parseClassName:e})}return r},le=e=>{let t=new Map;return e.orderSensitiveModifiers.forEach((e,n)=>{t.set(e,1e6+n)}),e=>{let n=[],r=[];for(let i=0;i<e.length;i++){let a=e[i],o=a[0]===`[`,s=t.has(a);o||s?(r.length>0&&(r.sort(),n.push(...r),r=[]),n.push(a)):r.push(a)}return r.length>0&&(r.sort(),n.push(...r)),n}},ue=e=>({cache:C(e.cacheSize),parseClassName:D(e),sortModifiers:le(e),postfixLookupClassGroupIds:de(e),...y(e)}),de=e=>{let t=Object.create(null),n=e.postfixLookupClassGroups;if(n)for(let e=0;e<n.length;e++)t[n[e]]=!0;return t},fe=/\s+/,O=(e,t)=>{let{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:i,sortModifiers:a,postfixLookupClassGroupIds:o}=t,s=[],c=e.trim().split(fe),l=``;for(let e=c.length-1;e>=0;--e){let t=c[e],{isExternal:u,modifiers:d,hasImportantModifier:f,baseClassName:p,maybePostfixModifierPosition:m}=n(t);if(u){l=t+(l.length>0?` `+l:l);continue}let h=!!m,g;if(h){g=r(p.substring(0,m));let e=g&&o[g]?r(p):void 0;e&&e!==g&&(g=e,h=!1)}else g=r(p);if(!g){if(!h){l=t+(l.length>0?` `+l:l);continue}if(g=r(p),!g){l=t+(l.length>0?` `+l:l);continue}h=!1}let _=d.length===0?``:d.length===1?d[0]:a(d).join(`:`),v=f?_+w:_,y=v+g;if(s.indexOf(y)>-1)continue;s.push(y);let b=i(g,h);for(let e=0;e<b.length;++e){let t=b[e];s.push(v+t)}l=t+(l.length>0?` `+l:l)}return l},k=(...e)=>{let t=0,n,r,i=``;for(;t<e.length;)(n=e[t++])&&(r=A(n))&&(i&&(i+=` `),i+=r);return i},A=e=>{if(typeof e==`string`)return e;let t,n=``;for(let r=0;r<e.length;r++)e[r]&&(t=A(e[r]))&&(n&&(n+=` `),n+=t);return n},pe=(e,...t)=>{let n,r,i,a,o=o=>(n=ue(t.reduce((e,t)=>t(e),e())),r=n.cache.get,i=n.cache.set,a=s,s(o)),s=e=>{let t=r(e);if(t)return t;let a=O(e,n);return i(e,a),a};return a=o,(...e)=>a(k(...e))},j=[],M=e=>{let t=t=>t[e]||j;return t.isThemeGetter=!0,t.themeKey=e,t},me=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,N=/^\((?:(\w[\w-]*):)?(.+)\)$/i,P=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,he=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,ge=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,_e=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix|color|light-dark)\(.+\)$/,ve=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,ye=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,F=e=>P.test(e),I=e=>!!e&&!Number.isNaN(Number(e)),L=e=>!!e&&Number.isInteger(Number(e)),be=e=>e.endsWith(`%`)&&I(e.slice(0,-1)),R=e=>he.test(e),xe=()=>!0,Se=e=>ge.test(e)&&!_e.test(e),Ce=()=>!1,we=e=>ve.test(e),Te=e=>ye.test(e),Ee=e=>!z(e)&&!V(e),De=e=>e.startsWith(`@container`)&&(e[10]===`/`&&e[11]!==void 0||e[11]===`s`&&e[16]!==void 0&&e.startsWith(`-size/`,10)||e[11]===`n`&&e[18]!==void 0&&e.startsWith(`-normal/`,10)),Oe=e=>U(e,Ue,Ce),z=e=>me.test(e),B=e=>U(e,We,Se),ke=e=>U(e,Ge,I),Ae=e=>U(e,qe,xe),je=e=>U(e,Ke,Ce),Me=e=>U(e,Ve,Ce),Ne=e=>U(e,He,Te),Pe=e=>U(e,Je,we),V=e=>N.test(e),H=e=>W(e,We),Fe=e=>W(e,Ke),Ie=e=>W(e,Ve),Le=e=>W(e,Ue),Re=e=>W(e,He),ze=e=>W(e,Je,!0),Be=e=>W(e,qe,!0),U=(e,t,n)=>{let r=me.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},W=(e,t,n=!1)=>{let r=N.exec(e);return r?r[1]?t(r[1]):n:!1},Ve=e=>e===`position`||e===`percentage`,He=e=>e===`image`||e===`url`,Ue=e=>e===`length`||e===`size`||e===`bg-size`,We=e=>e===`length`,Ge=e=>e===`number`,Ke=e=>e===`family-name`,qe=e=>e===`number`||e===`weight`,Je=e=>e===`shadow`,Ye=pe(()=>{let e=M(`color`),t=M(`font`),n=M(`text`),r=M(`font-weight`),i=M(`tracking`),a=M(`leading`),o=M(`breakpoint`),s=M(`container`),c=M(`spacing`),l=M(`radius`),u=M(`shadow`),d=M(`inset-shadow`),f=M(`text-shadow`),p=M(`drop-shadow`),m=M(`blur`),h=M(`perspective`),g=M(`aspect`),_=M(`ease`),v=M(`animate`),y=()=>[`auto`,`avoid`,`all`,`avoid-page`,`page`,`left`,`right`,`column`],b=()=>[`center`,`top`,`bottom`,`left`,`right`,`top-left`,`left-top`,`top-right`,`right-top`,`bottom-right`,`right-bottom`,`bottom-left`,`left-bottom`],ee=()=>[...b(),V,z],te=()=>[`auto`,`hidden`,`clip`,`visible`,`scroll`],ne=()=>[`auto`,`contain`,`none`],x=()=>[V,z,c],S=()=>[F,`full`,`auto`,...x()],re=()=>[L,`none`,`subgrid`,V,z],ie=()=>[`auto`,{span:[`full`,L,V,z]},L,V,z],ae=()=>[L,`auto`,V,z],oe=()=>[`auto`,`min`,`max`,`fr`,V,z],se=()=>[`start`,`end`,`center`,`between`,`around`,`evenly`,`stretch`,`baseline`,`center-safe`,`end-safe`],C=()=>[`start`,`end`,`center`,`stretch`,`center-safe`,`end-safe`],w=()=>[`auto`,...x()],T=()=>[F,`auto`,`full`,`dvw`,`dvh`,`lvw`,`lvh`,`svw`,`svh`,`min`,`max`,`fit`,...x()],ce=()=>[s,F,`screen`,`full`,`dvw`,`lvw`,`svw`,`min`,`max`,`fit`,...x()],E=()=>[F,`screen`,`full`,`lh`,`dvh`,`lvh`,`svh`,`min`,`max`,`fit`,...x()],D=()=>[e,V,z],le=()=>[...b(),Ie,Me,{position:[V,z]}],ue=()=>[`no-repeat`,{repeat:[``,`x`,`y`,`space`,`round`]}],de=()=>[`auto`,`cover`,`contain`,Le,Oe,{size:[V,z]}],fe=()=>[be,H,B],O=()=>[``,`none`,`full`,l,V,z],k=()=>[``,I,H,B],A=()=>[`solid`,`dashed`,`dotted`,`double`],pe=()=>[`normal`,`multiply`,`screen`,`overlay`,`darken`,`lighten`,`color-dodge`,`color-burn`,`hard-light`,`soft-light`,`difference`,`exclusion`,`hue`,`saturation`,`color`,`luminosity`],j=()=>[I,be,Ie,Me],me=()=>[``,`none`,m,V,z],N=()=>[`none`,I,V,z],P=()=>[`none`,I,V,z],he=()=>[I,V,z],ge=()=>[F,`full`,...x()];return{cacheSize:500,theme:{animate:[`spin`,`ping`,`pulse`,`bounce`],aspect:[`video`],blur:[R],breakpoint:[R],color:[xe],container:[R],"drop-shadow":[R],ease:[`in`,`out`,`in-out`],font:[Ee],"font-weight":[`thin`,`extralight`,`light`,`normal`,`medium`,`semibold`,`bold`,`extrabold`,`black`],"inset-shadow":[R],leading:[`none`,`tight`,`snug`,`normal`,`relaxed`,`loose`],perspective:[`dramatic`,`near`,`normal`,`midrange`,`distant`,`none`],radius:[R],shadow:[R],spacing:[`px`,I],text:[R],"text-shadow":[R],tracking:[`tighter`,`tight`,`normal`,`wide`,`wider`,`widest`]},classGroups:{aspect:[{aspect:[`auto`,`square`,F,z,V,g]}],container:[`container`],"container-type":[{"@container":[``,`normal`,`size`,V,z]}],"container-named":[De],columns:[{columns:[I,`auto`,z,V,s]}],"break-after":[{"break-after":y()}],"break-before":[{"break-before":y()}],"break-inside":[{"break-inside":[`auto`,`avoid`,`avoid-page`,`avoid-column`]}],"box-decoration":[{"box-decoration":[`slice`,`clone`]}],box:[{box:[`border`,`content`]}],display:[`block`,`inline-block`,`inline`,`flex`,`inline-flex`,`table`,`inline-table`,`table-caption`,`table-cell`,`table-column`,`table-column-group`,`table-footer-group`,`table-header-group`,`table-row-group`,`table-row`,`flow-root`,`grid`,`inline-grid`,`contents`,`list-item`,`hidden`],sr:[`sr-only`,`not-sr-only`],float:[{float:[`right`,`left`,`none`,`start`,`end`]}],clear:[{clear:[`left`,`right`,`both`,`none`,`start`,`end`]}],isolation:[`isolate`,`isolation-auto`],"object-fit":[{object:[`contain`,`cover`,`fill`,`none`,`scale-down`]}],"object-position":[{object:ee()}],overflow:[{overflow:te()}],"overflow-x":[{"overflow-x":te()}],"overflow-y":[{"overflow-y":te()}],overscroll:[{overscroll:ne()}],"overscroll-x":[{"overscroll-x":ne()}],"overscroll-y":[{"overscroll-y":ne()}],position:[`static`,`fixed`,`absolute`,`relative`,`sticky`],inset:[{inset:S()}],"inset-x":[{"inset-x":S()}],"inset-y":[{"inset-y":S()}],start:[{"inset-s":S(),start:S()}],end:[{"inset-e":S(),end:S()}],"inset-bs":[{"inset-bs":S()}],"inset-be":[{"inset-be":S()}],top:[{top:S()}],right:[{right:S()}],bottom:[{bottom:S()}],left:[{left:S()}],visibility:[`visible`,`invisible`,`collapse`],z:[{z:[L,`auto`,V,z]}],basis:[{basis:[F,`full`,`auto`,s,...x()]}],"flex-direction":[{flex:[`row`,`row-reverse`,`col`,`col-reverse`]}],"flex-wrap":[{flex:[`nowrap`,`wrap`,`wrap-reverse`]}],flex:[{flex:[I,F,`auto`,`initial`,`none`,z]}],grow:[{grow:[``,I,V,z]}],shrink:[{shrink:[``,I,V,z]}],order:[{order:[L,`first`,`last`,`none`,V,z]}],"grid-cols":[{"grid-cols":re()}],"col-start-end":[{col:ie()}],"col-start":[{"col-start":ae()}],"col-end":[{"col-end":ae()}],"grid-rows":[{"grid-rows":re()}],"row-start-end":[{row:ie()}],"row-start":[{"row-start":ae()}],"row-end":[{"row-end":ae()}],"grid-flow":[{"grid-flow":[`row`,`col`,`dense`,`row-dense`,`col-dense`]}],"auto-cols":[{"auto-cols":oe()}],"auto-rows":[{"auto-rows":oe()}],gap:[{gap:x()}],"gap-x":[{"gap-x":x()}],"gap-y":[{"gap-y":x()}],"justify-content":[{justify:[...se(),`normal`]}],"justify-items":[{"justify-items":[...C(),`normal`]}],"justify-self":[{"justify-self":[`auto`,...C()]}],"align-content":[{content:[`normal`,...se()]}],"align-items":[{items:[...C(),{baseline:[``,`last`]}]}],"align-self":[{self:[`auto`,...C(),{baseline:[``,`last`]}]}],"place-content":[{"place-content":se()}],"place-items":[{"place-items":[...C(),`baseline`]}],"place-self":[{"place-self":[`auto`,...C()]}],p:[{p:x()}],px:[{px:x()}],py:[{py:x()}],ps:[{ps:x()}],pe:[{pe:x()}],pbs:[{pbs:x()}],pbe:[{pbe:x()}],pt:[{pt:x()}],pr:[{pr:x()}],pb:[{pb:x()}],pl:[{pl:x()}],m:[{m:w()}],mx:[{mx:w()}],my:[{my:w()}],ms:[{ms:w()}],me:[{me:w()}],mbs:[{mbs:w()}],mbe:[{mbe:w()}],mt:[{mt:w()}],mr:[{mr:w()}],mb:[{mb:w()}],ml:[{ml:w()}],"space-x":[{"space-x":x()}],"space-x-reverse":[`space-x-reverse`],"space-y":[{"space-y":x()}],"space-y-reverse":[`space-y-reverse`],size:[{size:T()}],"inline-size":[{inline:[`auto`,...ce()]}],"min-inline-size":[{"min-inline":[`auto`,...ce()]}],"max-inline-size":[{"max-inline":[`none`,...ce()]}],"block-size":[{block:[`auto`,...E()]}],"min-block-size":[{"min-block":[`auto`,...E()]}],"max-block-size":[{"max-block":[`none`,...E()]}],w:[{w:[s,`screen`,...T()]}],"min-w":[{"min-w":[s,`screen`,`none`,...T()]}],"max-w":[{"max-w":[s,`screen`,`none`,`prose`,{screen:[o]},...T()]}],h:[{h:[`screen`,`lh`,...T()]}],"min-h":[{"min-h":[`screen`,`lh`,`none`,...T()]}],"max-h":[{"max-h":[`screen`,`lh`,`none`,...T()]}],"font-size":[{text:[`base`,n,H,B]}],"font-smoothing":[`antialiased`,`subpixel-antialiased`],"font-style":[`italic`,`not-italic`],"font-weight":[{font:[r,Be,Ae]}],"font-stretch":[{"font-stretch":[`ultra-condensed`,`extra-condensed`,`condensed`,`semi-condensed`,`normal`,`semi-expanded`,`expanded`,`extra-expanded`,`ultra-expanded`,be,z]}],"font-family":[{font:[Fe,je,t]}],"font-features":[{"font-features":[z]}],"fvn-normal":[`normal-nums`],"fvn-ordinal":[`ordinal`],"fvn-slashed-zero":[`slashed-zero`],"fvn-figure":[`lining-nums`,`oldstyle-nums`],"fvn-spacing":[`proportional-nums`,`tabular-nums`],"fvn-fraction":[`diagonal-fractions`,`stacked-fractions`],tracking:[{tracking:[i,V,z]}],"line-clamp":[{"line-clamp":[I,`none`,V,ke]}],leading:[{leading:[`none`,a,...x()]}],"list-image":[{"list-image":[`none`,V,z]}],"list-style-position":[{list:[`inside`,`outside`]}],"list-style-type":[{list:[`disc`,`decimal`,`none`,V,z]}],"text-alignment":[{text:[`left`,`center`,`right`,`justify`,`start`,`end`]}],"placeholder-color":[{placeholder:D()}],"text-color":[{text:D()}],"text-decoration":[`underline`,`overline`,`line-through`,`no-underline`],"text-decoration-style":[{decoration:[...A(),`wavy`]}],"text-decoration-thickness":[{decoration:[I,`from-font`,`auto`,V,B]}],"text-decoration-color":[{decoration:D()}],"underline-offset":[{"underline-offset":[I,`auto`,V,z]}],"text-transform":[`uppercase`,`lowercase`,`capitalize`,`normal-case`],"text-overflow":[`truncate`,`text-ellipsis`,`text-clip`],"text-wrap":[{text:[`wrap`,`nowrap`,`balance`,`pretty`]}],indent:[{indent:x()}],"tab-size":[{tab:[L,V,z]}],"vertical-align":[{align:[`baseline`,`top`,`middle`,`bottom`,`text-top`,`text-bottom`,`sub`,`super`,V,z]}],whitespace:[{whitespace:[`normal`,`nowrap`,`pre`,`pre-line`,`pre-wrap`,`break-spaces`]}],break:[{break:[`normal`,`words`,`all`,`keep`]}],wrap:[{wrap:[`break-word`,`anywhere`,`normal`]}],hyphens:[{hyphens:[`none`,`manual`,`auto`]}],content:[{content:[`none`,V,z]}],"bg-attachment":[{bg:[`fixed`,`local`,`scroll`]}],"bg-clip":[{"bg-clip":[`border`,`padding`,`content`,`text`]}],"bg-origin":[{"bg-origin":[`border`,`padding`,`content`]}],"bg-position":[{bg:le()}],"bg-repeat":[{bg:ue()}],"bg-size":[{bg:de()}],"bg-image":[{bg:[`none`,{linear:[{to:[`t`,`tr`,`r`,`br`,`b`,`bl`,`l`,`tl`]},L,V,z],radial:[``,V,z],conic:[``,L,V,z]},Re,Ne]}],"bg-color":[{bg:D()}],"gradient-from-pos":[{from:fe()}],"gradient-via-pos":[{via:fe()}],"gradient-to-pos":[{to:fe()}],"gradient-from":[{from:D()}],"gradient-via":[{via:D()}],"gradient-to":[{to:D()}],rounded:[{rounded:O()}],"rounded-s":[{"rounded-s":O()}],"rounded-e":[{"rounded-e":O()}],"rounded-t":[{"rounded-t":O()}],"rounded-r":[{"rounded-r":O()}],"rounded-b":[{"rounded-b":O()}],"rounded-l":[{"rounded-l":O()}],"rounded-ss":[{"rounded-ss":O()}],"rounded-se":[{"rounded-se":O()}],"rounded-ee":[{"rounded-ee":O()}],"rounded-es":[{"rounded-es":O()}],"rounded-tl":[{"rounded-tl":O()}],"rounded-tr":[{"rounded-tr":O()}],"rounded-br":[{"rounded-br":O()}],"rounded-bl":[{"rounded-bl":O()}],"border-w":[{border:k()}],"border-w-x":[{"border-x":k()}],"border-w-y":[{"border-y":k()}],"border-w-s":[{"border-s":k()}],"border-w-e":[{"border-e":k()}],"border-w-bs":[{"border-bs":k()}],"border-w-be":[{"border-be":k()}],"border-w-t":[{"border-t":k()}],"border-w-r":[{"border-r":k()}],"border-w-b":[{"border-b":k()}],"border-w-l":[{"border-l":k()}],"divide-x":[{"divide-x":k()}],"divide-x-reverse":[`divide-x-reverse`],"divide-y":[{"divide-y":k()}],"divide-y-reverse":[`divide-y-reverse`],"border-style":[{border:[...A(),`hidden`,`none`]}],"divide-style":[{divide:[...A(),`hidden`,`none`]}],"border-color":[{border:D()}],"border-color-x":[{"border-x":D()}],"border-color-y":[{"border-y":D()}],"border-color-s":[{"border-s":D()}],"border-color-e":[{"border-e":D()}],"border-color-bs":[{"border-bs":D()}],"border-color-be":[{"border-be":D()}],"border-color-t":[{"border-t":D()}],"border-color-r":[{"border-r":D()}],"border-color-b":[{"border-b":D()}],"border-color-l":[{"border-l":D()}],"divide-color":[{divide:D()}],"outline-style":[{outline:[...A(),`none`,`hidden`]}],"outline-offset":[{"outline-offset":[I,V,z]}],"outline-w":[{outline:[``,I,H,B]}],"outline-color":[{outline:D()}],shadow:[{shadow:[``,`inner`,`none`,u,ze,Pe]}],"shadow-color":[{shadow:D()}],"inset-shadow":[{"inset-shadow":[`none`,d,ze,Pe]}],"inset-shadow-color":[{"inset-shadow":D()}],"ring-w":[{ring:k()}],"ring-w-inset":[`ring-inset`],"ring-color":[{ring:D()}],"ring-offset-w":[{"ring-offset":[I,B]}],"ring-offset-color":[{"ring-offset":D()}],"inset-ring-w":[{"inset-ring":k()}],"inset-ring-color":[{"inset-ring":D()}],"text-shadow":[{"text-shadow":[`none`,f,ze,Pe]}],"text-shadow-color":[{"text-shadow":D()}],opacity:[{opacity:[I,V,z]}],"mix-blend":[{"mix-blend":[...pe(),`plus-darker`,`plus-lighter`]}],"bg-blend":[{"bg-blend":pe()}],"mask-clip":[{"mask-clip":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]},`mask-no-clip`],"mask-composite":[{mask:[`add`,`subtract`,`intersect`,`exclude`]}],"mask-image-linear-pos":[{"mask-linear":[I]}],"mask-image-linear-from-pos":[{"mask-linear-from":j()}],"mask-image-linear-to-pos":[{"mask-linear-to":j()}],"mask-image-linear-from-color":[{"mask-linear-from":D()}],"mask-image-linear-to-color":[{"mask-linear-to":D()}],"mask-image-t-from-pos":[{"mask-t-from":j()}],"mask-image-t-to-pos":[{"mask-t-to":j()}],"mask-image-t-from-color":[{"mask-t-from":D()}],"mask-image-t-to-color":[{"mask-t-to":D()}],"mask-image-r-from-pos":[{"mask-r-from":j()}],"mask-image-r-to-pos":[{"mask-r-to":j()}],"mask-image-r-from-color":[{"mask-r-from":D()}],"mask-image-r-to-color":[{"mask-r-to":D()}],"mask-image-b-from-pos":[{"mask-b-from":j()}],"mask-image-b-to-pos":[{"mask-b-to":j()}],"mask-image-b-from-color":[{"mask-b-from":D()}],"mask-image-b-to-color":[{"mask-b-to":D()}],"mask-image-l-from-pos":[{"mask-l-from":j()}],"mask-image-l-to-pos":[{"mask-l-to":j()}],"mask-image-l-from-color":[{"mask-l-from":D()}],"mask-image-l-to-color":[{"mask-l-to":D()}],"mask-image-x-from-pos":[{"mask-x-from":j()}],"mask-image-x-to-pos":[{"mask-x-to":j()}],"mask-image-x-from-color":[{"mask-x-from":D()}],"mask-image-x-to-color":[{"mask-x-to":D()}],"mask-image-y-from-pos":[{"mask-y-from":j()}],"mask-image-y-to-pos":[{"mask-y-to":j()}],"mask-image-y-from-color":[{"mask-y-from":D()}],"mask-image-y-to-color":[{"mask-y-to":D()}],"mask-image-radial":[{"mask-radial":[V,z]}],"mask-image-radial-from-pos":[{"mask-radial-from":j()}],"mask-image-radial-to-pos":[{"mask-radial-to":j()}],"mask-image-radial-from-color":[{"mask-radial-from":D()}],"mask-image-radial-to-color":[{"mask-radial-to":D()}],"mask-image-radial-shape":[{"mask-radial":[`circle`,`ellipse`]}],"mask-image-radial-size":[{"mask-radial":[{closest:[`side`,`corner`],farthest:[`side`,`corner`]}]}],"mask-image-radial-pos":[{"mask-radial-at":b()}],"mask-image-conic-pos":[{"mask-conic":[I]}],"mask-image-conic-from-pos":[{"mask-conic-from":j()}],"mask-image-conic-to-pos":[{"mask-conic-to":j()}],"mask-image-conic-from-color":[{"mask-conic-from":D()}],"mask-image-conic-to-color":[{"mask-conic-to":D()}],"mask-mode":[{mask:[`alpha`,`luminance`,`match`]}],"mask-origin":[{"mask-origin":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]}],"mask-position":[{mask:le()}],"mask-repeat":[{mask:ue()}],"mask-size":[{mask:de()}],"mask-type":[{"mask-type":[`alpha`,`luminance`]}],"mask-image":[{mask:[`none`,V,z]}],filter:[{filter:[``,`none`,V,z]}],blur:[{blur:me()}],brightness:[{brightness:[I,V,z]}],contrast:[{contrast:[I,V,z]}],"drop-shadow":[{"drop-shadow":[``,`none`,p,ze,Pe]}],"drop-shadow-color":[{"drop-shadow":D()}],grayscale:[{grayscale:[``,I,V,z]}],"hue-rotate":[{"hue-rotate":[I,V,z]}],invert:[{invert:[``,I,V,z]}],saturate:[{saturate:[I,V,z]}],sepia:[{sepia:[``,I,V,z]}],"backdrop-filter":[{"backdrop-filter":[``,`none`,V,z]}],"backdrop-blur":[{"backdrop-blur":me()}],"backdrop-brightness":[{"backdrop-brightness":[I,V,z]}],"backdrop-contrast":[{"backdrop-contrast":[I,V,z]}],"backdrop-grayscale":[{"backdrop-grayscale":[``,I,V,z]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[I,V,z]}],"backdrop-invert":[{"backdrop-invert":[``,I,V,z]}],"backdrop-opacity":[{"backdrop-opacity":[I,V,z]}],"backdrop-saturate":[{"backdrop-saturate":[I,V,z]}],"backdrop-sepia":[{"backdrop-sepia":[``,I,V,z]}],"border-collapse":[{border:[`collapse`,`separate`]}],"border-spacing":[{"border-spacing":x()}],"border-spacing-x":[{"border-spacing-x":x()}],"border-spacing-y":[{"border-spacing-y":x()}],"table-layout":[{table:[`auto`,`fixed`]}],caption:[{caption:[`top`,`bottom`]}],transition:[{transition:[``,`all`,`colors`,`opacity`,`shadow`,`transform`,`none`,V,z]}],"transition-behavior":[{transition:[`normal`,`discrete`]}],duration:[{duration:[I,`initial`,V,z]}],ease:[{ease:[`linear`,`initial`,_,V,z]}],delay:[{delay:[I,V,z]}],animate:[{animate:[`none`,v,V,z]}],backface:[{backface:[`hidden`,`visible`]}],perspective:[{perspective:[h,V,z]}],"perspective-origin":[{"perspective-origin":ee()}],rotate:[{rotate:N()}],"rotate-x":[{"rotate-x":N()}],"rotate-y":[{"rotate-y":N()}],"rotate-z":[{"rotate-z":N()}],scale:[{scale:P()}],"scale-x":[{"scale-x":P()}],"scale-y":[{"scale-y":P()}],"scale-z":[{"scale-z":P()}],"scale-3d":[`scale-3d`],skew:[{skew:he()}],"skew-x":[{"skew-x":he()}],"skew-y":[{"skew-y":he()}],transform:[{transform:[V,z,``,`none`,`gpu`,`cpu`]}],"transform-origin":[{origin:ee()}],"transform-style":[{transform:[`3d`,`flat`]}],translate:[{translate:ge()}],"translate-x":[{"translate-x":ge()}],"translate-y":[{"translate-y":ge()}],"translate-z":[{"translate-z":ge()}],"translate-none":[`translate-none`],zoom:[{zoom:[L,V,z]}],accent:[{accent:D()}],appearance:[{appearance:[`none`,`auto`]}],"caret-color":[{caret:D()}],"color-scheme":[{scheme:[`normal`,`dark`,`light`,`light-dark`,`only-dark`,`only-light`]}],cursor:[{cursor:[`auto`,`default`,`pointer`,`wait`,`text`,`move`,`help`,`not-allowed`,`none`,`context-menu`,`progress`,`cell`,`crosshair`,`vertical-text`,`alias`,`copy`,`no-drop`,`grab`,`grabbing`,`all-scroll`,`col-resize`,`row-resize`,`n-resize`,`e-resize`,`s-resize`,`w-resize`,`ne-resize`,`nw-resize`,`se-resize`,`sw-resize`,`ew-resize`,`ns-resize`,`nesw-resize`,`nwse-resize`,`zoom-in`,`zoom-out`,V,z]}],"field-sizing":[{"field-sizing":[`fixed`,`content`]}],"pointer-events":[{"pointer-events":[`auto`,`none`]}],resize:[{resize:[`none`,``,`y`,`x`]}],"scroll-behavior":[{scroll:[`auto`,`smooth`]}],"scrollbar-thumb-color":[{"scrollbar-thumb":D()}],"scrollbar-track-color":[{"scrollbar-track":D()}],"scrollbar-gutter":[{"scrollbar-gutter":[`auto`,`stable`,`both`]}],"scrollbar-w":[{scrollbar:[`auto`,`thin`,`none`]}],"scroll-m":[{"scroll-m":x()}],"scroll-mx":[{"scroll-mx":x()}],"scroll-my":[{"scroll-my":x()}],"scroll-ms":[{"scroll-ms":x()}],"scroll-me":[{"scroll-me":x()}],"scroll-mbs":[{"scroll-mbs":x()}],"scroll-mbe":[{"scroll-mbe":x()}],"scroll-mt":[{"scroll-mt":x()}],"scroll-mr":[{"scroll-mr":x()}],"scroll-mb":[{"scroll-mb":x()}],"scroll-ml":[{"scroll-ml":x()}],"scroll-p":[{"scroll-p":x()}],"scroll-px":[{"scroll-px":x()}],"scroll-py":[{"scroll-py":x()}],"scroll-ps":[{"scroll-ps":x()}],"scroll-pe":[{"scroll-pe":x()}],"scroll-pbs":[{"scroll-pbs":x()}],"scroll-pbe":[{"scroll-pbe":x()}],"scroll-pt":[{"scroll-pt":x()}],"scroll-pr":[{"scroll-pr":x()}],"scroll-pb":[{"scroll-pb":x()}],"scroll-pl":[{"scroll-pl":x()}],"snap-align":[{snap:[`start`,`end`,`center`,`align-none`]}],"snap-stop":[{snap:[`normal`,`always`]}],"snap-type":[{snap:[`none`,`x`,`y`,`both`]}],"snap-strictness":[{snap:[`mandatory`,`proximity`]}],touch:[{touch:[`auto`,`none`,`manipulation`]}],"touch-x":[{"touch-pan":[`x`,`left`,`right`]}],"touch-y":[{"touch-pan":[`y`,`up`,`down`]}],"touch-pz":[`touch-pinch-zoom`],select:[{select:[`none`,`text`,`all`,`auto`]}],"will-change":[{"will-change":[`auto`,`scroll`,`contents`,`transform`,V,z]}],fill:[{fill:[`none`,...D()]}],"stroke-w":[{stroke:[I,H,B,ke]}],stroke:[{stroke:[`none`,...D()]}],"forced-color-adjust":[{"forced-color-adjust":[`auto`,`none`]}]},conflictingClassGroups:{"container-named":[`container-type`],overflow:[`overflow-x`,`overflow-y`],overscroll:[`overscroll-x`,`overscroll-y`],inset:[`inset-x`,`inset-y`,`inset-bs`,`inset-be`,`start`,`end`,`top`,`right`,`bottom`,`left`],"inset-x":[`start`,`end`,`right`,`left`],"inset-y":[`inset-bs`,`inset-be`,`top`,`bottom`],flex:[`basis`,`grow`,`shrink`],gap:[`gap-x`,`gap-y`],p:[`px`,`py`,`ps`,`pe`,`pbs`,`pbe`,`pt`,`pr`,`pb`,`pl`],px:[`ps`,`pe`,`pr`,`pl`],py:[`pbs`,`pbe`,`pt`,`pb`],m:[`mx`,`my`,`ms`,`me`,`mbs`,`mbe`,`mt`,`mr`,`mb`,`ml`],mx:[`ms`,`me`,`mr`,`ml`],my:[`mbs`,`mbe`,`mt`,`mb`],size:[`w`,`h`],"font-size":[`leading`],"fvn-normal":[`fvn-ordinal`,`fvn-slashed-zero`,`fvn-figure`,`fvn-spacing`,`fvn-fraction`],"fvn-ordinal":[`fvn-normal`],"fvn-slashed-zero":[`fvn-normal`],"fvn-figure":[`fvn-normal`],"fvn-spacing":[`fvn-normal`],"fvn-fraction":[`fvn-normal`],"line-clamp":[`display`,`overflow`],rounded:[`rounded-s`,`rounded-e`,`rounded-t`,`rounded-r`,`rounded-b`,`rounded-l`,`rounded-ss`,`rounded-se`,`rounded-ee`,`rounded-es`,`rounded-tl`,`rounded-tr`,`rounded-br`,`rounded-bl`],"rounded-s":[`rounded-ss`,`rounded-es`],"rounded-e":[`rounded-se`,`rounded-ee`],"rounded-t":[`rounded-tl`,`rounded-tr`],"rounded-r":[`rounded-tr`,`rounded-br`],"rounded-b":[`rounded-br`,`rounded-bl`],"rounded-l":[`rounded-tl`,`rounded-bl`],"border-spacing":[`border-spacing-x`,`border-spacing-y`],"border-w":[`border-w-x`,`border-w-y`,`border-w-s`,`border-w-e`,`border-w-bs`,`border-w-be`,`border-w-t`,`border-w-r`,`border-w-b`,`border-w-l`],"border-w-x":[`border-w-s`,`border-w-e`,`border-w-r`,`border-w-l`],"border-w-y":[`border-w-bs`,`border-w-be`,`border-w-t`,`border-w-b`],"border-color":[`border-color-x`,`border-color-y`,`border-color-s`,`border-color-e`,`border-color-bs`,`border-color-be`,`border-color-t`,`border-color-r`,`border-color-b`,`border-color-l`],"border-color-x":[`border-color-s`,`border-color-e`,`border-color-r`,`border-color-l`],"border-color-y":[`border-color-bs`,`border-color-be`,`border-color-t`,`border-color-b`],translate:[`translate-x`,`translate-y`,`translate-none`],"translate-none":[`translate`,`translate-x`,`translate-y`,`translate-z`],"scroll-m":[`scroll-mx`,`scroll-my`,`scroll-ms`,`scroll-me`,`scroll-mbs`,`scroll-mbe`,`scroll-mt`,`scroll-mr`,`scroll-mb`,`scroll-ml`],"scroll-mx":[`scroll-ms`,`scroll-me`,`scroll-mr`,`scroll-ml`],"scroll-my":[`scroll-mbs`,`scroll-mbe`,`scroll-mt`,`scroll-mb`],"scroll-p":[`scroll-px`,`scroll-py`,`scroll-ps`,`scroll-pe`,`scroll-pbs`,`scroll-pbe`,`scroll-pt`,`scroll-pr`,`scroll-pb`,`scroll-pl`],"scroll-px":[`scroll-ps`,`scroll-pe`,`scroll-pr`,`scroll-pl`],"scroll-py":[`scroll-pbs`,`scroll-pbe`,`scroll-pt`,`scroll-pb`],touch:[`touch-x`,`touch-y`,`touch-pz`],"touch-x":[`touch`],"touch-y":[`touch`],"touch-pz":[`touch`]},conflictingClassGroupModifiers:{"font-size":[`leading`]},postfixLookupClassGroups:[`container-type`],orderSensitiveModifiers:[`*`,`**`,`after`,`backdrop`,`before`,`details-content`,`file`,`first-letter`,`first-line`,`marker`,`placeholder`,`selection`]}});function G(...e){return Ye(t(e))}var Xe=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e))},o=t=e(r,i,a);return a},Ze=(e=>e?Xe(e):Xe),Qe=e=>e;function $e(e,t=Qe){let n=l.useSyncExternalStore(e.subscribe,l.useCallback(()=>t(e.getState()),[e,t]),l.useCallback(()=>t(e.getInitialState()),[e,t]));return l.useDebugValue(n),n}var et={observed:`Observed in this event log.`,explicitlyDisabled:`Explicitly disabled in this event log.`,noObservedExecutorMetrics:`Not emitted by this event log.`,noObservedStageSubmission:`Not emitted by this event log.`,noRddStorageSnapshot:`Stages were submitted without RDD storage snapshots.`,noResolvedSqlPlan:`Not emitted by this event log.`,noSqlExecution:`Not applicable to this event log.`,noEnvironmentUpdate:`Not emitted by this event log.`,noTaskRecords:`Not emitted by this event log.`,noUsableCoreTimeAggregate:`No usable aggregate was emitted.`,outsideEventLogScope:`Available outside local event-log scope.`,parseIncomplete:`Cannot determine from an incomplete parse.`};function tt(e,t,n){return{key:e,state:`present`,reasonCode:`observed`,summary:et.observed,evidence:{eventType:t,count:n}}}function K(e,t,n){return{key:e,state:t,reasonCode:n,summary:et[n]}}function q(e,t){let n=e[t];return typeof n==`number`&&Number.isFinite(n)&&n>0?n:0}function nt(e){return e!=null&&e.schemaVersion===1}function rt(e){return typeof e==`number`&&Number.isFinite(e)&&e>0}function it(e){let t=e?.perStage;return typeof t==`object`&&!!t&&!Array.isArray(t)&&Object.values(t).some(e=>rt(e?.taskCount)&&rt(e?.totalTaskDurationSum))}function at(e,t){return e!=null&&String(e).toLowerCase()===t}function J(e,t,n){return n?K(e,t===`noSqlExecution`?`notApplicable`:`notEmitted`,t):K(e,`unknown`,`parseIncomplete`)}function ot(e,{skippedLines:t=0}={}){let n=e?.app,r=n?.evidenceInputs??{},i=t===0&&q(r,`applicationEnds`)>0,a=q(r,`executorMetricRows`),o=q(r,`stageSubmissions`),s=q(r,`rddStorageSnapshots`),c=q(r,`resolvedSqlPlans`),l=q(r,`sqlExecutions`),u=q(r,`environmentUpdates`),d=q(r,`taskRecords`);return{schemaVersion:1,entries:[a>0?tt(`executorMetrics`,`executorMetricRows`,a):at(n?.config?.[`spark.eventLog.logStageExecutorMetrics`],`false`)?K(`executorMetrics`,`disabled`,`explicitlyDisabled`):J(`executorMetrics`,`noObservedExecutorMetrics`,i),s>0?tt(`rddStorageSnapshots`,`rddStorageSnapshots`,s):J(`rddStorageSnapshots`,o===0?`noObservedStageSubmission`:`noRddStorageSnapshot`,i),c>0?tt(`sqlPlan`,`resolvedSqlPlans`,c):l>0&&i?K(`sqlPlan`,`notEmitted`,`noResolvedSqlPlan`):J(`sqlPlan`,`noSqlExecution`,i),u>0?tt(`sparkConfiguration`,`environmentUpdates`,u):J(`sparkConfiguration`,`noEnvironmentUpdate`,i),d===0?J(`taskCoreTime`,`noTaskRecords`,i):it(e?.runAggregates)?tt(`taskCoreTime`,`taskRecords`,d):J(`taskCoreTime`,`noUsableCoreTimeAggregate`,i),K(`infrastructureContext`,`outsideEventLog`,`outsideEventLogScope`),K(`sourceContext`,`outsideEventLog`,`outsideEventLogScope`),K(`costContext`,`outsideEventLog`,`outsideEventLogScope`)]}}function st(e,t,n){return{app:e.app,stages:new Map(e.stages),executors:{added:[...e.executors.added],removed:[...e.executors.removed]},sql:new Map(e.sql),jobs:new Map(e.jobs),runAggregates:e.runAggregates,evidenceAvailability:e.evidenceAvailability,skippedLines:e.skippedLines,unreadableSqlExecutions:e.unreadableSqlExecutions&&[...e.unreadableSqlExecutions],catalog:[...t],taskData:new Map(n)}}function ct(e,t,n){e.app=n.app,e.stages=new Map(n.stages),e.executors={added:[...n.executors.added],removed:[...n.executors.removed]},e.sql=new Map(n.sql),e.jobs=new Map(n.jobs),e.runAggregates=n.runAggregates??null,e.evidenceAvailability=nt(n.evidenceAvailability)?n.evidenceAvailability:null,e.skippedLines=n.skippedLines,n.unreadableSqlExecutions?e.unreadableSqlExecutions=[...n.unreadableSqlExecutions]:delete e.unreadableSqlExecutions,t.clear();for(let[e,r]of n.taskData)t.set(e,r);return[...n.catalog]}function lt(){return{app:null,stages:new Map,executors:{added:[],removed:[]},sql:new Map,jobs:new Map,runAggregates:null,evidenceAvailability:null}}function ut(){if(typeof window>`u`)return`dark`;try{let e=window.localStorage.getItem(`shuffle-works-theme`);if(e===`light`||e===`dark`)return e}catch{}return window.matchMedia?.(`(prefers-color-scheme: light)`).matches?`light`:`dark`}var dt=`shuffle-works-widget-density`;function ft(){if(typeof window>`u`)return`basic`;try{let e=window.localStorage.getItem(dt);if(e===`basic`||e===`advanced`)return e}catch{}return`basic`}var pt=Ze(e=>({appModel:lt(),catalog:[],configFindings:[],interpretation:null,exportProvenance:null,activeFileId:null,sessionCache:new Map,taskDataCache:new Map,parse:{pct:0,lines:0,etaMs:null},status:`idle`,shsParsing:!1,errorMessage:null,errorNonce:0,theme:ut(),widgetDensity:ft(),exportMode:!1,skippedLines:0,comparison:{active:!1,baselineId:null,candidateId:null},compareLoad:null,compareSeed:null,planGraph:{active:!1,stageId:null,initialScope:`segment`},modelResetCount:0,setCompareSeed:t=>e({compareSeed:t}),openComparison:(t,n)=>e(e=>(e.activeFileId!=null&&e.appModel.app&&e.sessionCache.set(e.activeFileId,st(e.appModel,e.catalog,e.taskDataCache)),{comparison:{active:!0,baselineId:t,candidateId:n}})),setComparisonActive:t=>e(e=>({comparison:{...e.comparison,active:t}})),setCompareLoad:t=>e({compareLoad:t}),closeComparison:()=>e({comparison:{active:!1,baselineId:null,candidateId:null}}),openPlanGraph:(t,n)=>e({planGraph:{active:!0,stageId:t,initialScope:n?.initialScope??`segment`}}),closePlanGraph:()=>e({planGraph:{active:!1,stageId:null,initialScope:`segment`}}),resetModel:()=>e(e=>({appModel:lt(),catalog:[],configFindings:[],interpretation:null,taskDataCache:new Map,status:`idle`,shsParsing:!1,errorMessage:null,skippedLines:0,comparison:{active:!1,baselineId:null,candidateId:null},compareLoad:null,planGraph:{active:!1,stageId:null,initialScope:`segment`},modelResetCount:e.modelResetCount+1})),setStatus:t=>e({status:t}),setShsParsing:t=>e({shsParsing:t}),setParse:t=>e({parse:t}),setCatalog:t=>e({catalog:t}),setConfigFindings:t=>e({configFindings:t}),setFindings:(t,n,r)=>e(e=>({catalog:t,configFindings:n,...r===void 0?{}:{appModel:{...e.appModel,evidenceAvailability:r}}})),setInterpretation:t=>e({interpretation:t}),setTaskData:(t,n)=>e(e=>{let r=new Map(e.taskDataCache);return r.set(t,n),{taskDataCache:r}}),setActiveFile:t=>e({activeFileId:t}),setError:t=>e(e=>({errorMessage:t,errorNonce:t?e.errorNonce+1:e.errorNonce,status:t?`error`:e.status})),setTheme:t=>e({theme:t}),setWidgetDensity:t=>{try{window.localStorage.setItem(dt,t)}catch{}e({widgetDensity:t})},setSkippedLines:t=>e({skippedLines:t}),setEvidenceAvailability:t=>e(e=>({appModel:{...e.appModel,evidenceAvailability:t}}))}));function mt(e){return $e(pt,e)}function ht(){return mt(e=>e.widgetDensity)}var gt=e=>e?.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase();function _t(e,t,n=[]){if(t==null)throw Error(`[lucide]: iconNode is required when icon name is used`);return{name:gt(e),size:24,node:t,...n.length>0?{aliases:n}:{}}}var vt=e=>{let t=``,n=!1;for(let r of e){if(r===`-`||r===`_`||r<=` `){n=t.length>0;continue}t.length===0?t+=r.toLowerCase():t+=n?r.toUpperCase():r,n=!1}return t},yt=e=>{let t=vt(e);return t.charAt(0).toUpperCase()+t.slice(1)},bt=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),Y={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":2,"stroke-linecap":`round`,"stroke-linejoin":`round`};function xt(e){return e!=null}function St(e,t={}){let n=t.attributeNames??{},r=e=>n[e]??e,i=e.size??e.width??Y.width,a=e.size??e.height??Y.height,o=e.aliases?.filter(e=>typeof e==`string`&&e.trim()!==``).map(e=>`lucide-${e}`)??[],s=[...e.name?[`lucide-${e.name}`]:[],...o],c=t.className?.split(` `).filter(Boolean)??[],l=t.includeDefaultClasses===!1?bt(...c):bt(`lucide`,...s,...c),u=t.absoluteStrokeWidth?Number(t.strokeWidth??Y[`stroke-width`])*Number(e.size??e.width??Y.width)/Number(t.size??t.width??Y.width):t.strokeWidth??Y[`stroke-width`];return[`svg`,{...Object.entries(Y).reduce((e,[t,n])=>(e[r(t)]=n,e),{}),...`color`in t&&t.color&&{[r(`stroke`)]:t.color},...`size`in t&&xt(t.size)&&{[r(`width`)]:t.size,[r(`height`)]:t.size},...`width`in t&&xt(t.width)&&{[r(`width`)]:t.width},...`height`in t&&xt(t.height)&&{[r(`height`)]:t.height},[r(`stroke-width`)]:u,...l&&{[r(`class`)]:l},[r(`viewBox`)]:`0 0 ${i} ${a}`,...t.hasA11yProp===!1?{[r(`aria-hidden`)]:`true`}:{},...`attributes`in t&&t.attributes},e.node.map(e=>{let[n,i,a]=e,o=t.nonScalingStroke?{[r(`vector-effect`)]:`non-scaling-stroke`,...i}:i;return a?[n,o,a]:[n,o]})]}function Ct(e,t={}){return St(e,{...t,attributeNames:{...t.attributeNames,class:`className`,"stroke-width":`strokeWidth`,"stroke-linecap":`strokeLinecap`,"stroke-linejoin":`strokeLinejoin`,"vector-effect":`vectorEffect`}})}var wt=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},Tt=(0,l.createContext)({}),Et=()=>(0,l.useContext)(Tt),Dt=(0,l.forwardRef)(({color:e,size:t,width:n,height:r,strokeWidth:i,absoluteStrokeWidth:a,nonScalingStroke:o,className:s=``,children:c,iconNode:u=[],icon:d={node:u,aliases:[],size:24},...f},p)=>{let{size:m=24,strokeWidth:h=2,absoluteStrokeWidth:g=!1,nonScalingStroke:_=!1,color:v=`currentColor`,className:y=``}=Et()??{},b=!!c||wt(f),[ee,te,ne=[]]=Ct(d,{color:e??v,width:n??t??m,height:r??t??m,strokeWidth:i??h,absoluteStrokeWidth:a??g,nonScalingStroke:o??_,className:bt(y,s),hasA11yProp:b,attributes:f});return(0,l.createElement)(ee,{ref:p,...te},[...ne.map(([e,t])=>(0,l.createElement)(e,t)),...Array.isArray(c)?c:[c]])});function Ot(e,t=[],n=[]){let r=typeof e==`string`?_t(e,t,n):e,i=(0,l.forwardRef)(({className:e,...t},n)=>(0,l.createElement)(Dt,{ref:n,icon:r,className:e,...t}));return r.name&&(i.displayName=yt(r.name)),i}var kt={name:`chevron-down`,size:24,node:[[`path`,{d:`m6 9 6 6 6-6`,key:`qrunsl`}]]};kt.node;var At=Ot(kt),jt={name:`chevron-up`,size:24,node:[[`path`,{d:`m18 15-6-6-6 6`,key:`153udz`}]]};jt.node;var Mt=Ot(jt),Nt={name:`file-text`,size:24,node:[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 9H8`,key:`b1mrlr`}],[`path`,{d:`M16 13H8`,key:`t4e002`}],[`path`,{d:`M16 17H8`,key:`z1uh3a`}]]};Nt.node;var Pt=Ot(Nt),Ft=e=>`${Math.round(e*1e6)/1e4}%`;function X(e,t){return e.remediation!=null&&!e.remediation.some(e=>e.key===t)}var It=`spark.sql.adaptive.skewJoin.enabled`,Lt=`AQE skew-join handling is already on, so salt the key or repartition on a better key.`,Rt=`AQE is off, so enable it (spark.sql.adaptive.enabled) for skew-join handling to apply; otherwise salt the key or repartition on a better key.`;function zt(e,t){return e.remediation?.some(e=>e.key===`spark.sql.adaptive.enabled`)?Rt:X(e,It)?Lt:t}var Bt=`spark.dynamicAllocation.enabled`,Vt={incompleteRun:{name:`incomplete run`,tag:`INCMP`,thresholdSummary:()=>`an event log missing its terminal ApplicationEnd event`,actionLabel:()=>void 0,genericRecommendation:()=>void 0},skew:{name:`task skew`,tag:`SKEW`,thresholdSummary:e=>`P95 task time over ${e.ratioWarn}× the median (the longest task on stages under ${e.minTasksForP95} tasks)`,actionLabel:()=>`Fix task skew`,genericRecommendation:e=>zt(e,`For join-driven skew, enable AQE skew-join handling (spark.sql.adaptive.skewJoin.enabled); otherwise salt the key or repartition on a better key.`)},stageShape:{name:`stage shape`,tag:`SHAPE`,thresholdSummary:e=>`under ${e.pRatioMax} tasks per core, output over ${e.oiRatioMax}× input, or one task spanning over ${Math.round(e.stageShareMin*100)}% of the stage's wall-clock at over ${e.skewWarn}× the median task`,actionLabel(e){switch(e.rule){case`lowParallelism`:return`Increase parallelism`;case`dataExplosion`:return`Check for exploding join`;case`taskStageSkew`:return`Fix straggler task`}},genericRecommendation(e){switch(e.rule){case`lowParallelism`:return`Too few tasks run relative to the cores available, leaving cluster capacity idle: repartition to use more of it.`;case`dataExplosion`:return`Output volume far exceeds input volume: check for an exploding join or a cross product.`;case`taskStageSkew`:return`A single straggler task gates the whole stage's wall-clock duration.`}}},tinyTask:{name:`tiny tasks`,tag:`TINY`,thresholdSummary:e=>`${e.minTasks}+ tasks with a median of ${e.maxP50}ms or less and a P95 of ${e.maxP95}ms or less`,actionLabel:()=>`Coalesce small tasks`,genericRecommendation:()=>`Scheduler overhead may dominate: lower spark.sql.shuffle.partitions, or coalesce down to fewer, larger tasks.`},shuffle:{name:`shuffle I/O`,tag:`SHFL`,thresholdSummary:e=>`stage shuffle read above ${e.minBytes/1048576} MiB`,actionLabel:()=>`Reduce shuffle size`,genericRecommendation:()=>`Raise spark.sql.shuffle.partitions, or use a broadcast join for the smaller side.`},partitionSizing:{name:`partition sizing`,tag:`PART`,thresholdSummary:e=>`a shuffle partition over ${e.skewRatio}× the median or over ${e.maxPartBytes/1073741824} GiB, or ${e.lowParTotalBytes/1073741824} GiB of shuffle on ${e.lowParMaxTasks} tasks or fewer`,actionLabel(e){switch(e.rule){case`shufflePartitionSkew`:return`Fix skewed partition`;case`lowShuffleParallelism`:return`Add shuffle partitions`;case`maxPartitionTooBig`:return`Repartition oversized data`}},genericRecommendation(e){switch(e.rule){case`shufflePartitionSkew`:return zt(e,`For join skew, enable AQE skew-join handling (spark.sql.adaptive.skewJoin.enabled); otherwise salt the key or repartition on a better key.`);case`lowShuffleParallelism`:return X(e,`spark.sql.shuffle.partitions`)?`spark.sql.shuffle.partitions is already high enough, so raise this stage's own partition count (its repartition(n) or RDD parallelism) so each partition is smaller.`:`Raise spark.sql.shuffle.partitions so each partition is smaller.`;case`maxPartitionTooBig`:return`Repartition to break up the oversized partition before this stage.`}}},spill:{name:`spill`,tag:`SPILL`,thresholdSummary:e=>`single-task disk spill above ${e.singleTaskDiskGiB} GiB`,actionLabel:()=>`Reduce spill`,genericRecommendation:()=>`If the spill is skew-driven, fix task skew first: adding memory will not help. Otherwise raise spark.sql.shuffle.partitions or increase executor memory.`},gc:{name:`GC pressure`,tag:`GC`,thresholdSummary:e=>`GC above ${e.warnPct100}% (or below ${e.lowInfoPct100}%) of executor run time`,actionLabel:e=>e.direction===`low`?`Right-size executor memory`:`Reduce GC pressure`,genericRecommendation:e=>e.direction===`low`?`Memory may be over-provisioned here: consider reducing spark.executor.memory for cost savings.`:`Reduce object creation, use primitive types, avoid UDFs, or increase executor memory to cut GC time.`},stageFailed:{name:`failed stage`,tag:`SFAIL`,thresholdSummary:()=>`a stage that failed outright`,actionLabel:()=>`Inspect stage failure`,genericRecommendation:()=>`Inspect the driver log for the failure reason and the job that triggered it.`},failures:{name:`failed tasks`,tag:`FAIL`,thresholdSummary:e=>`over ${Ft(e.warnRate)} of a stage's tasks failing`,actionLabel:()=>`Investigate task failures`,genericRecommendation:()=>`Investigate driver logs for executor instability or data-driven errors.`},retryWaste:{name:`retry waste`,tag:`RETRY`,thresholdSummary:e=>`${e.minWasted}+ retried attempts wasting at least ${e.minWasteMs/1e3}s`,actionLabel:()=>`Investigate retry cause`,genericRecommendation:()=>`Investigate executor loss or fetch failures behind the retried attempts.`},slowHost:{name:`slow executor host`,tag:`HOST`,thresholdSummary:e=>`a host ${e.ratioWarn}× slower than its peers by mean task time (per-executor figures from ${e.ratioTiers[0]}×)`,actionLabel(e){return e.variant===`durationShare`?`Fix data locality`:e.variant===`multiDim`?`Investigate degraded executor`:`Check slow host`},genericRecommendation(e){if(e.variant===`durationShare`)return`Check for data locality or partition assignment skewing work onto one node.`;if(e.variant===`multiDim`)return`Investigate uneven partition assignment or a degraded executor.`;let t=`Check what this host was running: it may just hold data locality for its tasks or carry one heavy stage, rather than a hardware fault.`;return X(e,`spark.speculation`)?`${t} Speculation is already on, so a lagging task there is already relaunched.`:`${t} Enable spark.speculation to relaunch a lagging task automatically.`}},stageSlowness:{name:`slow stage`,tag:`SLOW`,thresholdSummary:()=>`a stage running far longer than its peers, not attributable to a single slow host`,actionLabel:()=>`Profile slow stage`,genericRecommendation:()=>`Often a partition-count problem: raise parallelism via spark.sql.shuffle.partitions or spark.default.parallelism, or check for a large per-task data volume driving heavy shuffle and spill.`},straggler:{name:`straggling task`,tag:`STRAG`,thresholdSummary:()=>`one or more tasks finishing far after the rest of their stage`,actionLabel:()=>`Fix stragglers`,genericRecommendation:()=>`Rule out a GC pause or a slow shuffle fetch before assuming a hardware issue. If a skewed key is the real cause, that is a candidate for AQE's skew-join handling.`},speculationWaste:{name:`speculation waste`,tag:`SPEC`,thresholdSummary:e=>`${e.minWasted}+ discarded speculative attempts wasting at least ${e.minWasteMs/1e3}s`,actionLabel:()=>`Tune speculation settings`,genericRecommendation:()=>`If task durations are naturally variable rather than genuine stragglers, consider tuning spark.speculation.multiplier/quantile.`},coldStart:{name:`cold start`,tag:`COLD`,thresholdSummary:e=>`the first stage waiting over ${e.gapSeconds}s for an executor`,actionLabel:()=>`Pre-warm cluster`,genericRecommendation:()=>`Keep a warm pool of idle executors, or if using dynamic allocation, raise the minimum/initial executor count so it does not scale up from zero.`},memoryUtilization:{name:`memory utilization`,tag:`MEM`,thresholdSummary:()=>`executor heap usage outside the configured band`,actionLabel(e){switch(e.variant){case`idleCores`:return`Reduce idle cores`;case`wasteModel`:return`Right-size executor memory`;case`memoryBand`:return e.dataUnavailable?`Enable memory metrics`:e.rule===`heapNearCapacity`?`Increase executor memory`:`Reduce executor memory`}},genericRecommendation(e){switch(e.variant){case`idleCores`:return X(e,Bt)?`Dynamic allocation is already on, so reduce cluster size.`:`Reduce cluster size or enable dynamic allocation.`;case`wasteModel`:return`Review spark.executor.memory and executor count.`;case`memoryBand`:return e.dataUnavailable?void 0:e.rule===`heapNearCapacity`?`Memory may be too small: raise spark.executor.memory to avoid OOM/spill.`:`Memory may be over-provisioned: consider reducing spark.executor.memory for cost savings.`}}},utilization:{name:`executor utilization`,tag:`UTIL`,thresholdSummary:e=>`average executor utilization below ${Ft(e.minUtil)}`,actionLabel:()=>`Reduce cluster size`,genericRecommendation:e=>X(e,Bt)?`Dynamic allocation is already on, so consider reducing cluster size.`:`Consider reducing cluster size or enabling dynamic allocation.`},coreLocality:{name:`core locality`,tag:`LOCAL`,thresholdSummary:()=>`task placement missing data-local core assignment`,actionLabel:()=>`Fix data locality`,genericRecommendation:()=>`Check executor/data colocation.`},cachingOpportunity:{name:`caching opportunity`,tag:`CACHE`,thresholdSummary:()=>`a dataset re-read from source multiple times with no cache/persist`,actionLabel:e=>e.variant===`composite`?`Cache repeated result`:`Cache shared table`,genericRecommendation:e=>e.variant===`composite`?`Cache or persist the repeated join/union result so it is computed once instead of recomputed per query.`:`Cache the shared DataFrame, or broadcast it if it is a small join lookup.`},cacheUtilization:{name:`cache utilization`,tag:`CSTOR`,thresholdSummary:()=>`cached partitions evicted or spilled to disk`,actionLabel:e=>e.dataUnavailable?`Enable block-update logging`:`Increase cache memory`,genericRecommendation(e){switch(e.variant){case`partialCache`:return`Increase executor memory or reduce the cached dataset size so more of it stays cached.`;case`diskSpillover`:return`Executor memory may be too small for this cached dataset: increase executor memory or reduce its size.`}}},jobFailureRate:{name:`job failure rate`,tag:`JOBS`,thresholdSummary:e=>`at least ${Ft(e.infoRate)} of jobs failing`,actionLabel:()=>`Investigate failed jobs`,genericRecommendation:()=>`Inspect the driver log for the failed job(s) and the stage failures that triggered them.`},autoscalingChurn:{name:`autoscaling churn`,tag:`CHRN`,thresholdSummary:e=>`over ${Ft(e.warningPct)} of executors living under ${e.shortLivedMs/6e4} minutes`,actionLabel:()=>`Reduce autoscaling churn`,genericRecommendation:()=>`This looks like wasteful re-provisioning rather than normal scale-down: consider raising spark.dynamicAllocation.executorIdleTimeout or widening the minExecutors/maxExecutors bounds to reduce flapping.`},configAudit:{name:`config audit`,tag:`CFG`,thresholdSummary:()=>`a Spark conf value outside the recommended range`,actionLabel(e){switch(e.property){case`spark.shuffle.service.enabled`:return`Enable shuffle service`;case`spark.dynamicAllocation.minExecutors`:return`Fix autoscaling bounds`;case`spark.dynamicAllocation.maxExecutors`:return`Set max executors`;case`spark.serializer`:return`Switch to Kryo`;case`spark.executor.memoryOverhead`:return`Raise memory overhead`}},genericRecommendation(e){switch(e.property){case`spark.shuffle.service.enabled`:return`Set spark.shuffle.service.enabled=true so shuffle data survives executor removal.`;case`spark.dynamicAllocation.minExecutors`:return`Set the minimum executor bound at or below the maximum.`;case`spark.dynamicAllocation.maxExecutors`:return`Set spark.dynamicAllocation.maxExecutors to cap cluster growth.`;case`spark.serializer`:return`Consider spark.serializer=org.apache.spark.serializer.KryoSerializer for faster, smaller buffers.`;case`spark.executor.memoryOverhead`:return`Raise executor memoryOverhead above Spark's default floor to avoid off-heap OOM-kills.`}}},duplicatePlanSubtree:{name:`duplicate plan subtree`,tag:`PLAN`,thresholdSummary:()=>`the same physical plan subtree executed more than once`,actionLabel:()=>`Dedupe repeated subtree`,genericRecommendation:()=>`Check whether the repeated subtree could be computed once and reused, or cache/persist the shared computation.`},smallFiles:{name:`small files`,tag:`PLAN`,thresholdSummary:e=>`over ${e.minFiles} files averaging under ${e.maxAvgFileSizeMB} MiB`,actionLabel:e=>e.direction===`write`?`Coalesce output files`:`Compact small files`,genericRecommendation:e=>e.direction===`write`?`Repartition or coalesce before writing to raise the average file size.`:`Compact the upstream output so fewer, larger files are produced.`},underBroadcast:{name:`missed broadcast join`,tag:`PLAN`,thresholdSummary:()=>`a join below the configured size floor that skipped broadcast`,actionLabel:()=>`Use broadcast join`,genericRecommendation:()=>`This could have been a broadcast join: consider a broadcast() hint or raising spark.sql.autoBroadcastJoinThreshold.`},overBroadcast:{name:`oversized broadcast join`,tag:`PLAN`,thresholdSummary:e=>`a broadcast over ${e.overBroadcastBytes/1073741824} GiB`,actionLabel:()=>`Fix oversized broadcast`,genericRecommendation:e=>X(e,`spark.sql.autoBroadcastJoinThreshold`)?`Automatic broadcast is already disabled, so remove the broadcast() hint that forced it.`:`Check for a misapplied broadcast hint or a misconfigured spark.sql.autoBroadcastJoinThreshold.`}};function Ht(e){return Vt[e]}var Ut=134217728,Wt=8e3,Gt=1.5,Z={critical:0,warning:1,info:2},Kt=Object.fromEntries(Object.keys(Vt).map(e=>[e,Vt[e].tag]));function qt(e){return Kt[e]??e.toUpperCase()}var Jt={skew:`Skew spill: a few heavy tasks spill while most do not; rebalance partitioning`,volume:`Volume spill: most tasks spill because data exceeds memory; add partitions`,unclassified:`Spill cause could not be classified`},Yt={skew:`skew`,volume:`vol`,unclassified:`?`},Xt=8;function Zt(e,t=Xt){return e.length<=t?e.join(`, `):`${e.slice(0,t).join(`, `)}, +${e.length-t} more`}function Qt(e){let t;for(let n of e)(t===void 0||Z[n.impactBand]<Z[t])&&(t=n.impactBand);return t}function $t(e){let t=String(e),n=t.match(/((?:hdfs?|s3[an]?):\/\/\S+|\/[^\s,)]+)/i);if(!n)return t;let r=n[1].replace(/[/,]+$/,``).split(`/`).filter(Boolean);return r[r.length-1]||t}function en(e){return e.split(`::`)[0]||e}function tn(e){return!e||e<=0?`—`:e>=1e9?`${(e/1e9).toFixed(1)} GB`:e>=1e6?`${(e/1e6).toFixed(0)} MB`:`${(e/1e3).toFixed(0)} KB`}function nn(e){return e/1e6}function rn(e){return e.value??0}function Q(e,t){switch(e){case`pct`:return`${t}%`;case`pctFraction`:return`${Math.round(t*100)}%`;case`ratio`:return`${t}×`;case`ms`:return ln(t);case`count`:return`${t}`}}var an={shuffleReadBytes:`bytes`,memoryBytesSpilled:`bytes`,shuffleReadMax:`bytes`,avgFileSizeBytes:`bytes`,smallerSideBytes:`bytes`,broadcastBytes:`bytes`,speculationWasteMs:`ms`,retryWasteMs:`ms`,taskDurationP50:`ms`,stageDurationMinutes:`minutes`,"P95/median":`ratio`,"max/median":`ratio`,pRatio:`ratio`,oiRatio:`ratio`,hostMeanRatio:`ratio`,execMaxMedianRatio:`ratio`,gcPct:`pct`,failureRate:`pct`,stragglerShare:`pct`,hostDurationShare:`pctFraction`,taskStageSkew:`pctFraction`,taskCount:`count`,speculativeTasks:`count`,subtreeOccurrences:`count`};function on(e){return e>0&&e<1e3?`${Math.round(e)} B`:tn(e)}function sn(e){let t=e.metric?an[e.metric]:void 0;if(!t||e.value==null)return null;switch(t){case`bytes`:return on(e.value);case`minutes`:return ln(e.value*6e4);case`ms`:return Q(`ms`,e.value);case`ratio`:return Q(`ratio`,e.value);case`pct`:return Q(`pct`,e.value);case`pctFraction`:return Q(`pctFraction`,e.value);case`count`:return Q(`count`,e.value)}}function cn(e){let t=sn(e),n=e.impactEstimate?.wallClock,r=[t,n?`~${ln(n.high)}`:null].filter(Boolean);return r.length>0?r.join(` · `):null}function ln(e){return!e||e<=0?`—`:e<1e3?`${Math.round(e)}ms`:e<6e4?`${(e/1e3).toFixed(1)}s`:e<36e5?`${Math.floor(e/6e4)}m ${Math.floor(e%6e4/1e3)}s`:`${Math.floor(e/36e5)}h ${Math.floor(e%36e5/6e4)}m`}function un(e){let t=e.shuffleReadBytes??0;if(t<=0)return null;let n=Math.min(Wt,Math.ceil(t/Ut)),r=e.taskCount??0;return n<=r*Gt?null:{recommended:n,current:r}}function dn(e,t){if(e.length===0)return{labels:[],data:[]};let n=e[0],r=e[0];for(let t=1;t<e.length;t++)e[t]<n&&(n=e[t]),e[t]>r&&(r=e[t]);let i=(r-n)/t||1,a=Array(t).fill(0);for(let r of e)a[Math.min(Math.floor((r-n)/i),t-1)]++;return{labels:a.map((e,t)=>Math.round(n+t*i)),data:a}}function fn(e){return e===0?`0s`:ln(e)}function pn(e,t){let n=fn(e),r=fn(t);return n===r?r:`${n}-${r}`}var mn=36e5,hn=3686400,gn=.1,_n=e=>(Math.round(e*10)/10).toLocaleString(`en-US`,{minimumFractionDigits:1,maximumFractionDigits:1});function vn(e){let t=Math.round(e.value*10)/10;switch(e.unit){case`bytes`:return tn(e.value);case`ms`:return fn(e.value);case`mbSeconds`:{let n=e.value/hn;return n>=gn?`${_n(n)} GB-h`:`${t.toLocaleString(`en-US`)} MB-s`}case`coreHours`:return`${t.toFixed(1)} core-h`;case`coreMs`:{let t=e.value/mn;return t>=gn?`${_n(t)} core-h`:`${_n(e.value/1e3)} core-s`}default:return String(e.value)}}function yn(e){return/^0(\.0+)?(?:[^0-9.]|$)/.test(e)}function bn(e){return e>=10?String(Math.round(e)):e.toFixed(1).replace(/\.0$/,``)}var xn=36e5,$=c();function Sn(e){if(e.length===0)return[];let t=[...e].sort((e,t)=>e[0]-t[0]),n=[[t[0][0],t[0][1]]];for(let e=1;e<t.length;e++){let r=n[n.length-1],i=t[e];i[0]<=r[1]?r[1]=Math.max(r[1],i[1]):n.push([i[0],i[1]])}return n}function Cn(e){return Ht(e.type)?.genericRecommendation(e)}function wn(e){let t=e.sampleRelation?` (touching ${e.sampleRelation})`:``;return`A ${e.subtreeSize}-node subtree rooted at ${$t(e.rootName)} repeats ${e.value}x in this plan${t}`}var Tn=`Their filters, columns or scanned tables differ, so the repeats may compute different data.`,En={taskTime:`task time`,inputBytes:`input read`,shuffleBytes:`shuffle read and write`,storageMemory:`storage memory`};function Dn(e,t){let n=[];for(let r of e){let e=t.get(r);e&&e.submittedAt!=null&&e.completedAt!=null&&n.push([e.submittedAt,e.completedAt])}return Sn(n).reduce((e,[t,n])=>e+(n-t),0)}function On(e){let t=new Map;for(let n of e){let e=t.get(n.type)??[];e.push(n),t.set(n.type,e)}return t}function kn(e){return`stageIds`in e?e.stageIds:e.stageId==null?[]:[e.stageId]}function An(e,t,n){let r=[...new Set(t.flatMap(kn))],i=t.reduce((e,t)=>e+(t.impactEstimate?.wallClock?.high??0),0),a=r.length>0?Math.min(i,Dn(r,n)):i;return{kind:`time`,type:e,findingCount:t.length,stageCount:r.length,recoverableMsHigh:a,findings:t}}function jn(e,t){let n=t[0].impactEstimate.rawWaste.unit,r=t.reduce((e,t)=>e+(t.impactEstimate?.rawWaste?.value??0),0);return{kind:`resource`,type:e,findingCount:t.length,unit:n,total:r,findings:t}}function Mn(e,t){let n={};for(let e of t)n[e.impactBand]=(n[e.impactBand]??0)+1;return{kind:`count`,type:e,findingCount:t.length,byImpactBand:n,findings:t}}var Nn={time:0,resource:1,count:2};function Pn(e,t){let n=[];for(let[r,i]of On(e)){let e=i.filter(e=>e.impactEstimate?.wallClock!=null),a=i.filter(e=>e.impactEstimate?.wallClock==null&&e.impactEstimate?.rawWaste!=null),o=i.filter(e=>e.impactEstimate?.wallClock==null&&e.impactEstimate?.rawWaste==null);if(e.length>0&&n.push(An(r,e,t)),a.length>0){let e=new Map;for(let t of a){let n=t.impactEstimate.rawWaste.unit,r=e.get(n)??[];r.push(t),e.set(n,r)}for(let t of e.values())n.push(jn(r,t))}o.length>0&&n.push(Mn(r,o))}return n.sort((e,t)=>{let n=Nn[e.kind]-Nn[t.kind];return n===0?e.kind===`time`&&t.kind===`time`?t.recoverableMsHigh-e.recoverableMsHigh:(Z[Qt(e.findings)??`info`]??9)-(Z[Qt(t.findings)??`info`]??9):n})}function Fn(e){let t=vn({value:e.total,unit:e.unit});return yn(t)?null:t}function In(e){if(e.kind===`time`){let t=pn(e.recoverableMsHigh,e.recoverableMsHigh);return{stat:`×${e.findingCount} · ${t} recoverable`,statTitle:`${e.findingCount} findings of this type; up to ${t} of run time could be recovered by fixing them`}}if(e.kind===`resource`){let t=Fn(e);return{stat:t?`×${e.findingCount} · ${t}`:`×${e.findingCount}`,statTitle:`${e.findingCount} findings of this type${t?`; ${t} in total, a resource cost, not run time`:``}`}}let t=Object.entries(e.byImpactBand);return{stat:t.length===1?`×${e.findingCount}`:`×${e.findingCount} · ${t.map(([e,t])=>`${t} ${e}`).join(`, `)}`,statTitle:`${e.findingCount} findings of this type, by impact`}}function Ln(e){return!(e.type===`memoryUtilization`&&e.variant===`memoryBand`&&e.dataUnavailable)}function Rn(e){return e.type===`incompleteRun`||`dataUnavailable`in e&&e.dataUnavailable?!1:Ln(e)}var zn=0,Bn=1,Vn=2;function Hn(e){let t=e.impactEstimate;return t?.wallClock?zn:t?.rawWaste?Bn:Vn}function Un(e){return[...e].sort((e,t)=>{let n=Hn(e)-Hn(t);return n===0?Hn(e)===zn?t.impactEstimate.wallClock.high-e.impactEstimate.wallClock.high:(Z[e.impactBand]??9)-(Z[t.impactBand]??9):n})}function Wn(e,t){return Pn(e,t).map(e=>{let t=Un(e.findings);return{kind:e.kind,type:e.type,unit:e.kind===`resource`?e.unit:null,band:t[0].impactBand,members:t,...In(e)}})}var Gn=`docs/tuning-reference`,Kn={"bottleneck-stage-shape":`bottleneck-skew`,"bottleneck-stage-slowness":`bottleneck-slow-host`,"bottleneck-partition-sizing":`bottleneck-shuffle`,"bottleneck-speculation-waste":`bottleneck-straggler`,"bottleneck-core-locality":`bottleneck-utilization`,"bottleneck-caching-opportunity":`bottleneck-utilization`,"bottleneck-autoscaling-churn":`cluster-config`,"bottleneck-cache-utilization":`memory-model`};function qn(e){return e.startsWith(`metric-`)?`metrics`:e.startsWith(`config-`)?`config`:Kn[e]??e}function Jn(e){let t=String(e).replace(/^#/,``);return`${Gn}/${qn(t)}.html#${encodeURIComponent(t)}`}var Yn=new Set([`#intro`,`#spark-architecture`,`#memory-model`,`#partitioning`,`#joins`,`#shuffle`,`#data-formats`,`#table-formats`,`#caching`,`#pyspark`,`#aqe`,`#cluster-config`,`#anti-patterns`,`#metrics`,`#config`,`#bottleneck-cold-start`,`#bottleneck-failures`,`#bottleneck-gc`,`#bottleneck-job-failure-rate`,`#bottleneck-retry-waste`,`#bottleneck-shuffle`,`#bottleneck-skew`,`#bottleneck-slow-host`,`#bottleneck-spill`,`#bottleneck-straggler`,`#bottleneck-tiny-tasks`,`#bottleneck-utilization`,`#bottleneck-memory-utilization`,`#bottleneck-broadcast-sizing`,`#bottleneck-duplicate-plan-subtree`,`#bottleneck-small-files`,`#bottleneck-stage-shape`,`#bottleneck-stage-slowness`,`#bottleneck-partition-sizing`,`#bottleneck-speculation-waste`,`#bottleneck-core-locality`,`#bottleneck-caching-opportunity`,`#bottleneck-autoscaling-churn`,`#bottleneck-cache-utilization`,`#config-autoscale-bounds`,`#config-memory-overhead`,`#config-serializer`,`#config-shuffle-service`,...Object.values({"task-duration":`#metric-task-duration`,"shuffle-read-bytes":`#metric-shuffle-read-bytes`,"shuffle-write-bytes":`#metric-shuffle-write-bytes`,"memory-bytes-spilled":`#metric-memory-bytes-spilled`,"disk-bytes-spilled":`#metric-disk-bytes-spilled`,"jvm-gc-time":`#metric-jvm-gc-time`,gcpct:`#metric-gcpct`,"executor-run-time":`#metric-executor-run-time`,"fetch-wait-time-ratio":`#metric-fetch-wait-time-ratio`,"input-bytes":`#metric-input-bytes`,"output-bytes":`#metric-output-bytes`,"io-ratio":`#metric-io-ratio`,"peak-execution-memory":`#metric-peak-execution-memory`,"failed-tasks":`#metric-failed-tasks`,"speculative-tasks":`#metric-speculative-tasks`,"first-stage-submitted-at":`#metric-first-stage-submitted-at`,"executor-count":`#metric-executor-count`,"stage-duration":`#metric-stage-duration`})]);function Xn(e){return Yn.has(String(e))}function Zn(e){let t=new Set(e.map(e=>e.docAnchor));if(t.size!==1)return;let[n]=t;return n}function Qn(e){return`docs/user-guide/understanding-findings.html#${qt(e).toLowerCase()}`}var $n=`docs/user-guide/alternative-log-retrieval.html`,er=f(`group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!`,{variants:{variant:{default:`bg-primary text-primary-foreground [a]:hover:bg-primary/80`,secondary:`bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80`,destructive:`bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20`,outline:`border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground`,ghost:`hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50`,link:`text-primary underline-offset-4 hover:underline`}},defaultVariants:{variant:`default`}});function tr({className:e,variant:t=`default`,render:n,...i}){return o({defaultTagName:`span`,props:r({className:G(er({variant:t}),e)},i),render:n,state:{slot:`badge`,variant:t}})}var nr=`#intro`,rr=(0,l.createContext)(null);function ir({children:e}){let[t,n]=(0,l.useState)(!1),[r,i]=(0,l.useState)({kind:`site`,source:`reference`,path:Jn(nr)}),a=(0,l.useCallback)((e=nr)=>{i({kind:`site`,source:`reference`,path:Jn(e)}),n(!0)},[]),o=(0,l.useCallback)(e=>{i({kind:`site`,source:`guide`,path:e}),n(!0)},[]),s=(0,l.useCallback)(()=>n(!1),[]),c=(0,l.useMemo)(()=>({open:a,openSite:o,close:s,isOpen:t,target:r}),[a,o,s,t,r]);return(0,$.jsx)(rr.Provider,{value:c,children:e})}function ar(){let e=(0,l.useContext)(rr);if(!e)throw Error(`useDocs outside DocsProvider`);return e}function or(){return(0,l.useContext)(rr)}function sr({anchor:e,children:t}){let{open:n}=ar(),r=mt(e=>e.exportMode);return Xn(e)?r?(0,$.jsx)($.Fragment,{children:t}):(0,$.jsx)(`a`,{href:Jn(e),className:`text-primary underline-offset-4 hover:underline`,onClick:t=>{t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.button!==0||(t.preventDefault(),n(e))},children:t}):null}var cr={INCMP:{expansion:`Incomplete run`,description:`This event log never recorded an application-end event, so other findings and metrics reflect only what was captured.`},SKEW:{expansion:`Task skew`,description:`A small number of tasks take much longer than their peers.`},SHFL:{expansion:`Shuffle I/O`,description:`Tasks are moving a large amount of intermediate data between stages.`},SPILL:{expansion:`Memory and disk spill`,description:`Tasks are writing data out of memory, which slows execution.`},GC:{expansion:`Garbage collection pressure`,description:`Tasks are spending an unusually large share of time reclaiming memory.`},COLD:{expansion:`Executor cold start`,description:`New executors are taking time to become available for work.`},UTIL:{expansion:`Low utilization`,description:`Allocated executors are idle for a large share of the application run.`},MEM:{expansion:`Memory utilization`,description:`Executor memory or core capacity may be over- or under-provisioned.`},LOCAL:{expansion:`Core usage locality`,description:`Tasks are running without process- or node-local data placement more than expected.`},HOST:{expansion:`Slow host`,description:`One executor is substantially slower than its peers.`},FAIL:{expansion:`Failed tasks`,description:`Tasks are failing often enough to affect the stage.`},STRAG:{expansion:`Straggler tasks`,description:`A few tasks are much slower than the rest of their stage.`},SPEC:{expansion:`Speculation waste`,description:`Speculative task attempts used a lot of executor time without confirming a genuine straggler.`},RETRY:{expansion:`Retry waste`,description:`Repeated task attempts are consuming avoidable execution time.`},TINY:{expansion:`Tiny tasks`,description:`Many very short tasks are adding scheduling overhead.`},SFAIL:{expansion:`Failed stage`,description:`A stage attempt failed outright.`},PART:{expansion:`Partition sizing`,description:`Shuffle partitions are too large, too uneven, or too few for the work.`},SLOW:{expansion:`Stage slowness`,description:`A stage is slow overall without a more specific diagnosed cause.`},SHAPE:{expansion:`Stage shape`,description:`The stage has an inefficient task count, output shape, or task-to-stage balance.`},CACHE:{expansion:`Caching opportunity`,description:`A reusable dataset may benefit from being persisted between stages.`},CSTOR:{expansion:`Cache storage`,description:`A persisted dataset is not fully cached in memory or is spilling to disk.`},CHRN:{expansion:`Autoscaling churn`,description:`Executors are being stood up and torn down again before they can do useful work.`},JOBS:{expansion:`Job failure rate`,description:`A large share of completed jobs did not succeed.`},CFG:{expansion:`Configuration audit`,description:`Configuration settings may cause reliability or efficiency problems.`},PLAN:{expansion:`Plan advisor`,description:`The SQL execution plan has a pattern worth reviewing.`}};function lr(){return mt(e=>e.interpretation)}function ur(e,t){return e.findings[t]}var dr=new WeakMap;function fr(e,t){if(!e)return null;let n=dr.get(e);return n||(n=new Map(e.findings.map((t,n)=>[t,e.data.savings[n]])),dr.set(e,n)),n.get(t)??null}function pr(e){return fr(lr(),e)}function mr(e,t){if(!e)return[];let n=new Set(t);return e.data.savingsRank.map(t=>e.findings[t]).filter(e=>e!=null&&n.has(e))}function hr(e){return e?e.data.rollup.eligibleIndexes.map(t=>e.findings[t]).filter(e=>e!=null):[]}function gr({members:e,...t}){return{...t,key:`${t.kind}-${t.type}-${t.unit??``}`,findings:e}}function _r(e,t,n){if(!e)return{eligible:[],groups:[]};let r=new Set(t),i=hr(e).filter(e=>r.has(e));return{eligible:i,groups:e.findings.every(e=>r.has(e))?e.data.rollup.groups.map(({memberIndexes:t,...n})=>gr({...n,members:t.map(t=>e.findings[t]).filter(e=>e!=null)})):Wn(i,n).map(gr)}}function vr({children:e}){return ht()===`advanced`?(0,$.jsx)($.Fragment,{children:e}):null}var yr={critical:`bg-critical`,warning:`bg-warning`,info:`bg-info`},br={critical:`text-critical`,warning:`text-warning`,info:`text-info`},xr={critical:`border-critical`,warning:`border-warning`,info:`border-info`},Sr=f(`inline-block size-2 shrink-0 rounded-full`,{variants:{impactBand:{...yr,muted:`bg-muted-foreground`}},defaultVariants:{impactBand:`info`}}),Cr=f(`gap-1.5 border-transparent`,{variants:{impactBand:{critical:`bg-critical/10 text-critical`,warning:`bg-warning/10 text-warning`,info:`bg-info/10 text-info`}},defaultVariants:{impactBand:`info`}});function wr({impactBand:e,className:t}){return(0,$.jsx)(`span`,{"aria-hidden":`true`,className:G(Sr({impactBand:e}),t)})}function Tr({type:e,impactBand:t,className:n,plainBadge:r,docAnchor:i}){let a=or(),o=ht(),s=mt(e=>e.exportMode),c=lr()?.data.detectors[e]?.docAnchor??void 0,l=qt(e),u=cr[l],d=r?void 0:u?`${u.expansion}: ${u.description}`:void 0,f=r?void 0:i&&Xn(i)?i:c,p=u?.expansion??l,m=Qn(e),h=s?void 0:f?Jn(f):r?void 0:m,g=!r&&!s&&o===`advanced`&&!!f,_=(0,$.jsxs)(tr,{title:d,className:G(Cr({impactBand:t}),`h-6`,h&&`underline decoration-dotted underline-offset-2`,g?G(`rounded-r-none`,n):n),render:h?(0,$.jsx)(`a`,{href:h,onClick:e=>{!a||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.button!==0||(e.preventDefault(),f?a.open(f):a.openSite(m))}}):void 0,children:[(0,$.jsx)(wr,{impactBand:t}),l]});return r?_:(0,$.jsxs)(`span`,{className:`inline-flex items-center`,children:[_,g?(0,$.jsx)(vr,{children:(0,$.jsx)(`a`,{href:m,target:`_blank`,rel:`noopener noreferrer`,"aria-label":`SparkForensics guide: ${p}`,title:`SparkForensics guide: ${p}`,onClick:e=>{!a||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.button!==0||(e.preventDefault(),a.openSite(m))},className:G(`tap-target-comfortable tap-target-comfortable--sm inline-flex h-6 shrink-0 items-center rounded-r-4xl border border-transparent py-0.5 pr-2 pl-1 text-xs font-medium whitespace-nowrap transition-colors`,Cr({impactBand:t}),n,`text-muted-foreground hover:text-foreground focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50`),children:(0,$.jsx)(Pt,{"aria-hidden":`true`,className:`size-3`})})}):null]})}function Er({label:e,impactBand:t,title:n,className:r}){return(0,$.jsx)(tr,{title:n,className:G(Cr({impactBand:t}),`font-mono`,r),children:e})}function Dr({...e}){return(0,$.jsx)(a,{"data-slot":`collapsible`,...e})}function Or({...e}){return(0,$.jsx)(s,{"data-slot":`collapsible-trigger`,...e})}function kr({className:e,...t}){return(0,$.jsx)(i,{"data-slot":`collapsible-content`,className:G(`h-(--collapsible-panel-height) overflow-hidden transition-[height] duration-150 ease-out data-ending-style:h-0 data-starting-style:h-0 motion-reduce:transition-none`,e),...t})}var Ar=(0,l.createContext)(!0),jr=()=>(0,l.useContext)(Ar);export{Q as $,Xn as A,Cn as B,ir as C,ot as Ct,er as D,tr as E,f as Et,Un as F,Yt as G,Sn as H,Wn as I,fn as J,Jt as K,Fn as L,Pn as M,Rn as N,$n as O,Ln as P,cn as Q,Tn as R,sr as S,st as St,or as T,G as Tt,Z as U,wn as V,xn as W,bn as X,tn as Y,ln as Z,mr as _,Ot as _t,Or as a,$t as at,lr as b,ht as bt,xr as c,en as ct,Tr as d,Vt as dt,vn as et,Cr as f,Ht as ft,ur as g,At as gt,hr as h,Mt as ht,kr as i,rn as it,Zn as j,Gn as k,br as l,qt as lt,_r as m,Pt as mt,jr as n,pn as nt,Er as o,yn as ot,vr as p,Ft as pt,dn as q,Dr as r,nn as rt,yr as s,un as st,Ar as t,Zt as tt,wr as u,Qt as ut,fr as v,pt as vt,ar as w,it as wt,cr as x,ct as xt,pr as y,mt as yt,En as z};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{M as t}from"./charts-vendor-0VMaLVLN.js";import{R as n,U as r,V as i,d as a,p as o,ut as s}from"./DisclosureContext-
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{M as t}from"./charts-vendor-0VMaLVLN.js";import{R as n,U as r,V as i,d as a,p as o,ut as s}from"./DisclosureContext-B0siMVdg.js";import{p as c}from"./plan-graph-vendor-BYl-AzN5.js";import{h as l,m as u}from"./useRecentFiles-C3Ov47U7.js";import{C as d,O as f,S as p}from"./index-DCeWge12.js";import{a as m,o as h,r as g,s as _,t as v}from"./Dashboard-BgKodJl2.js";import{i as y,r as b}from"./impact-sort-BTQndbof.js";import{n as x,t as S}from"./finding-anchor-Cys8Z6Yn.js";import{t as C}from"./usePagedRows-BxvdFnPk.js";import{n as w,t as T}from"./useSortMode-B8SRfAoG.js";var E=e(t(),1),D=c();function O({finding:e}){let t=x([e]);return(0,D.jsxs)(`li`,{ref:t.ref,tabIndex:t.tabIndex,"data-flashed":t.dataFlashed,className:`space-y-2 ${S} transition-colors ${t.flashClassName}`,children:[e.stageIds.length>0?(0,D.jsx)(m,{pills:e.stageIds.map(e=>({id:e}))}):null,(0,D.jsxs)(`p`,{children:[`${i(e)}.${e.occurrencesIdentical?``:` ${n}`}`,` `,(0,D.jsx)(v,{finding:e})]})]})}var k=(0,E.memo)(function({catalog:e,defaultCollapsed:t=!0}){let{sortMode:n,setSortMode:i,orderBy:c}=T(),[m,v]=(0,E.useState)(!t),[x,S]=(0,E.useState)(0),{findings:k,pills:A,groupConfidence:j}=(0,E.useMemo)(()=>{let t=u(e,`duplicatePlanSubtree`).sort((e,t)=>r[e.impactBand]-r[t.impactBand]);return{findings:t,pills:[...new Set(t.flatMap(e=>e.stageIds))].map(e=>({id:e})),groupConfidence:t.every(e=>e.confidence===t[0]?.confidence)?t[0]:void 0}},[e]),M=c(k,e=>[e],y),N=f(),P=N?M.findIndex(e=>e===N.finding):null,{totalPages:F,effectivePage:I,visible:L}=C(M,x,S,P);return k.length===0?null:(0,D.jsxs)(d,{title:`Redundant Plan Subtree`,fixFor:k,impactBand:s(k),open:m,onOpenChange:v,badges:(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(a,{type:`duplicatePlanSubtree`,impactBand:s(k)??`info`,className:p}),b(k,k.length,m)?(0,D.jsx)(w,{mode:n,onChange:i}):null]}),statusBadge:(0,D.jsx)(o,{children:(0,D.jsx)(l,{confidence:j?.confidence,validationRequired:j?.validationRequired,evidenceKey:`sqlPlan`})}),summary:(0,D.jsx)(h,{value:`${A.length} stage${A.length===1?``:`s`}`,context:_(k.length)}),children:[(0,D.jsx)(`ul`,{className:`space-y-3 text-sm`,children:L.map(e=>(0,D.jsx)(O,{finding:e},e.id))}),(0,D.jsx)(g,{page:I,totalPages:F,onPrev:()=>S(e=>e-1),onNext:()=>S(e=>e+1)})]})});export{k as DuplicatePlanSubtree};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{M as t}from"./charts-vendor-0VMaLVLN.js";import{$ as n,U as r,d as i,it as a,u as o,ut as s}from"./DisclosureContext-
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{M as t}from"./charts-vendor-0VMaLVLN.js";import{$ as n,U as r,d as i,it as a,u as o,ut as s}from"./DisclosureContext-B0siMVdg.js";import{p as c}from"./plan-graph-vendor-BYl-AzN5.js";import{C as l,O as u}from"./index-DCeWge12.js";import{o as d,r as f,s as p,t as m}from"./Dashboard-BgKodJl2.js";import{n as h}from"./finding-anchor-Cys8Z6Yn.js";import{t as g}from"./usePagedRows-BxvdFnPk.js";var _=e(t(),1),v=c();function y({finding:e}){let t=h([e]);return(0,v.jsxs)(`div`,{ref:t.ref,tabIndex:t.tabIndex,"data-flashed":t.dataFlashed,className:`transition-colors ${t.flashClassName}`,children:[(0,v.jsxs)(`p`,{className:`flex flex-wrap items-start gap-2`,children:[(0,v.jsx)(o,{impactBand:e.impactBand,className:`mt-1.5`}),(0,v.jsx)(`strong`,{children:n(`pct`,a(e))}),` average executor utilization`]}),(0,v.jsx)(m,{finding:e})]})}var b=(0,_.memo)(function({catalog:e,defaultCollapsed:t=!0}){let[o,c]=(0,_.useState)(0),m=(0,_.useMemo)(()=>e.filter(e=>e.type===`utilization`).slice().sort((e,t)=>r[e.impactBand]-r[t.impactBand]),[e]),h=u(),b=h?m.findIndex(e=>e===h.finding):null,{totalPages:x,effectivePage:S,visible:C}=g(m,o,c,b);return m.length===0?null:(0,v.jsxs)(l,{title:`Executor Utilization`,fixFor:m,impactBand:s(m),badges:(0,v.jsx)(i,{type:`utilization`,impactBand:s(m)??`info`}),defaultCollapsed:t,summary:(0,v.jsx)(d,{value:`${n(`pct`,a(m[0]))} average`,context:p(m.length)}),children:[(0,v.jsx)(`div`,{className:`space-y-2 text-sm`,children:C.map(e=>(0,v.jsx)(y,{finding:e},e.id))}),(0,v.jsx)(f,{page:S,totalPages:x,onPrev:()=>c(e=>e-1),onNext:()=>c(e=>e+1)})]})});export{b as ExecutorUtilization};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{M as t}from"./charts-vendor-0VMaLVLN.js";import{Z as n,d as r,p as i,ut as a}from"./DisclosureContext-
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{M as t}from"./charts-vendor-0VMaLVLN.js";import{Z as n,d as r,p as i,ut as a}from"./DisclosureContext-B0siMVdg.js";import{p as o}from"./plan-graph-vendor-BYl-AzN5.js";import{h as s}from"./useRecentFiles-C3Ov47U7.js";import{C as c,O as l}from"./index-DCeWge12.js";import{o as u,r as d,s as f,t as p}from"./Dashboard-BgKodJl2.js";import{r as m}from"./impact-sort-BTQndbof.js";import{n as h,t as g}from"./finding-anchor-Cys8Z6Yn.js";import{t as _}from"./usePagedRows-BxvdFnPk.js";import{n as v,t as y}from"./useSortMode-B8SRfAoG.js";import{t as b}from"./StageHeader-pI1nTwVf.js";var x=e(t(),1),S=o(),C=`GC % = total JVM GC time ÷ total executor run time; it can exceed 100% when GC pauses overlap many concurrent task threads.`;function w(e){return[...e].sort((e,t)=>(typeof t.value==`number`?t.value:0)-(typeof e.value==`number`?e.value:0))}function T({finding:e,appModel:t}){let r=h([e]),a=(e.stageId==null?void 0:t.stages.get(e.stageId))?.executorRunTime;return(0,S.jsxs)(`li`,{ref:r.ref,tabIndex:r.tabIndex,"data-flashed":r.dataFlashed,className:`space-y-2 ${g} transition-colors ${r.flashClassName}`,children:[(0,S.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,S.jsx)(b,{stageId:e.stageId,appModel:t}),(0,S.jsx)(i,{children:(0,S.jsx)(s,{confidence:e.confidence,validationRequired:e.validationRequired})})]}),(0,S.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`GC: `,(0,S.jsxs)(`strong`,{children:[e.value,`%`]}),` · Executor run time:`,` `,(0,S.jsx)(`strong`,{children:n(a??0)})]}),(0,S.jsx)(p,{finding:e})]})}function E({title:e,findings:t,appModel:n,page:r,setPage:i,routeTarget:a,orderBy:o}){let s=o(w(t),e=>[e],e=>e.stageId),c=a?s.findIndex(e=>e===a.finding):null,{totalPages:l,effectivePage:u,visible:f}=_(s,r,i,c);return(0,S.jsxs)(`section`,{className:`space-y-2`,children:[(0,S.jsxs)(`h4`,{className:`font-heading text-sm font-medium`,children:[e,` · `,t.length,` stage`,t.length===1?``:`s`]}),(0,S.jsx)(`ul`,{className:`space-y-3`,children:f.map(e=>(0,S.jsx)(T,{finding:e,appModel:n},e.stageId))}),(0,S.jsx)(d,{page:u,totalPages:l,onPrev:()=>i(e=>e-1),onNext:()=>i(e=>e+1)})]})}function D({catalog:e,appModel:t,defaultCollapsed:n=!0}){let[o,s]=(0,x.useState)(0),[d,p]=(0,x.useState)(0),{sortMode:h,setSortMode:g,orderBy:_}=y(),[b,w]=(0,x.useState)(!n),T=l(),D=(0,x.useRef)(!1);(0,x.useEffect)(()=>{if(!D.current){D.current=!0;return}s(0),p(0)},[t]);let O=e.filter(e=>e.type===`gc`);if(O.length===0)return null;let k=O.filter(e=>e.direction!==`low`),A=O.filter(e=>e.direction===`low`),j=a(O),M=[...O].sort((e,t)=>(typeof t.value==`number`?t.value:0)-(typeof e.value==`number`?e.value:0))[0];return(0,S.jsx)(c,{title:`GC Pressure`,impactBand:j,fixFor:O,badges:(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(r,{type:`gc`,impactBand:j??`info`}),m(O,O.length,b)?(0,S.jsx)(v,{mode:h,onChange:e=>{g(e),s(0),p(0)}}):null]}),defaultCollapsed:n,open:b,onOpenChange:w,summary:(0,S.jsx)(u,{value:`${M.value}%`,context:f(O.length)}),children:(0,S.jsxs)(`div`,{className:`space-y-4`,children:[(0,S.jsx)(i,{children:(0,S.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:C})}),k.length>0&&(0,S.jsx)(E,{title:`GC overhead`,findings:k,appModel:t,page:o,setPage:s,routeTarget:T,orderBy:_}),A.length>0&&(0,S.jsx)(E,{title:`Low GC (cost)`,findings:A,appModel:t,page:d,setPage:p,routeTarget:T,orderBy:_})]})})}export{D as GcPressure};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as e}from"./DisclosureContext-
|
|
1
|
+
import{d as e}from"./DisclosureContext-B0siMVdg.js";import{p as t}from"./plan-graph-vendor-BYl-AzN5.js";import{C as n}from"./index-DCeWge12.js";import{t as r}from"./Dashboard-BgKodJl2.js";var i=t();function a({finding:e}){let{recommendation:t}=e;return(0,i.jsxs)(`div`,{className:`flex flex-col gap-1 transition-colors`,children:[(0,i.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`ApplicationEnd event: `,(0,i.jsx)(`strong`,{children:`missing`})]}),(0,i.jsx)(r,{finding:e}),t?(0,i.jsx)(`p`,{className:`pt-1`,children:t}):null]})}function o({catalog:t,defaultCollapsed:r=!0}){let o=t.find(e=>e.type===`incompleteRun`);if(!o)return null;let{impactBand:s}=o;return(0,i.jsx)(n,{title:`Incomplete Run`,impactBand:s,badges:(0,i.jsx)(e,{type:`incompleteRun`,impactBand:s}),defaultCollapsed:r,children:(0,i.jsx)(a,{finding:o})})}export{o as IncompleteRun};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as e,p as t}from"./DisclosureContext-
|
|
1
|
+
import{d as e,p as t}from"./DisclosureContext-B0siMVdg.js";import{p as n}from"./plan-graph-vendor-BYl-AzN5.js";import{m as r}from"./useRecentFiles-C3Ov47U7.js";import{C as i}from"./index-DCeWge12.js";import{o as a,t as o}from"./Dashboard-BgKodJl2.js";var s=n();function c({finding:e}){let{failedJobs:n,totalJobs:r,failedTasks:i,totalTasks:a,taskFailureRate:c,value:l}=e;return(0,s.jsxs)(`div`,{className:`flex flex-col gap-1 transition-colors`,children:[(0,s.jsxs)(`p`,{children:[`Failure rate: `,(0,s.jsxs)(`strong`,{children:[l,`%`]}),` (`,n,` of `,r,` completed jobs)`]}),(0,s.jsx)(t,{children:(0,s.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Task-failure context: `,i,` of `,a,` tasks failed (`,c,`%).`]})}),(0,s.jsx)(o,{finding:e})]})}function l({catalog:t,defaultCollapsed:n=!0}){let[o]=r(t,`jobFailureRate`);if(!o)return null;let{impactBand:l,value:u,failedJobs:d,totalJobs:f}=o;return(0,s.jsx)(i,{title:`Job Failures`,fixFor:[o],impactBand:l,badges:(0,s.jsx)(e,{type:`jobFailureRate`,impactBand:l}),defaultCollapsed:n,summary:(0,s.jsx)(a,{value:`${u}%`,context:`${d} of ${f} completed jobs failed`}),children:(0,s.jsx)(c,{finding:o})})}export{l as JobFailures};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{M as t}from"./charts-vendor-0VMaLVLN.js";import{$ as n,P as r,U as i,d as a,et as o,it as s,p as c,u as l,ut as u}from"./DisclosureContext-
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{M as t}from"./charts-vendor-0VMaLVLN.js";import{$ as n,P as r,U as i,d as a,et as o,it as s,p as c,u as l,ut as u}from"./DisclosureContext-B0siMVdg.js";import{p as d}from"./plan-graph-vendor-BYl-AzN5.js";import{h as f,m as p}from"./useRecentFiles-C3Ov47U7.js";import{C as m,O as h}from"./index-DCeWge12.js";import{o as g,r as _,s as v,t as y}from"./Dashboard-BgKodJl2.js";import{n as b}from"./finding-anchor-Cys8Z6Yn.js";import{t as x}from"./usePagedRows-BxvdFnPk.js";var S=e(t(),1),C=d();function w(e){let t=s(e),r=n(`pct`,t);return e.variant===`idleCores`?`${r} of available core-time idle`:e.variant===`memoryBand`?e.rule===`heapNearCapacity`?`${r} of allocated heap used: near capacity`:`${r} of allocated heap used: over-provisioned`:`~${o({value:t,unit:`mbSeconds`})} wasted`}function T(e){if(e.rule==null)return null;let t=e.recommendation??``,n=t.indexOf(`: `);return n===-1?null:` ${t.slice(0,n)}.`}function E(e){return`executorId`in e&&e.executorId!=null?`Executor ${e.executorId}`:e.variant===`idleCores`?`Idle cores`:`Memory waste`}function D({finding:e}){let t=b([e]);return e.dataUnavailable?(0,C.jsx)(`div`,{ref:t.ref,tabIndex:t.tabIndex,"data-flashed":t.dataFlashed,className:`space-y-1 transition-colors ${t.flashClassName}`,children:(0,C.jsx)(c,{children:(0,C.jsx)(`p`,{className:`text-muted-foreground`,children:e.recommendation})})}):(0,C.jsxs)(`div`,{ref:t.ref,tabIndex:t.tabIndex,"data-flashed":t.dataFlashed,className:`transition-colors ${t.flashClassName}`,children:[(0,C.jsxs)(`p`,{className:`flex flex-wrap items-start gap-2`,children:[(0,C.jsx)(l,{impactBand:e.impactBand,className:`mt-1.5`}),(0,C.jsx)(`strong`,{children:E(e)})]}),(0,C.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[w(e),T(e)==null?null:(0,C.jsx)(c,{children:T(e)})]}),(0,C.jsx)(y,{finding:e})]})}var O=(0,S.memo)(function({catalog:e,defaultCollapsed:t=!0}){let[n,o]=(0,S.useState)(0),{findings:s,groupConfidence:l}=(0,S.useMemo)(()=>{let t=p(e,`memoryUtilization`).sort((e,t)=>i[e.impactBand]-i[t.impactBand]),n=t.filter(r);return{findings:t,groupConfidence:n.every(e=>e.confidence===n[0]?.confidence)?n[0]:void 0}},[e]),d=h(),y=d?s.findIndex(e=>e===d.finding):null,{totalPages:b,effectivePage:w,visible:T}=x(s,n,o,y);if(!s.some(r))return null;let O=s.find(e=>!e.dataUnavailable)??s[0];return(0,C.jsxs)(m,{title:`Memory Utilization`,fixFor:s,impactBand:u(s),badges:(0,C.jsx)(a,{type:`memoryUtilization`,impactBand:u(s)??`info`}),statusBadge:(0,C.jsx)(c,{children:(0,C.jsx)(f,{confidence:l?.confidence,validationRequired:l?.validationRequired,evidenceKey:`executorMetrics`})}),defaultCollapsed:t,summary:(0,C.jsx)(g,{value:E(O),context:v(s.length)}),children:[(0,C.jsx)(`div`,{className:`space-y-2 text-sm`,children:T.map(e=>(0,C.jsx)(D,{finding:e},e.id))}),(0,C.jsx)(_,{page:w,totalPages:b,onPrev:()=>o(e=>e-1),onNext:()=>o(e=>e+1)})]})});export{O as MemoryUtilization};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{M as t}from"./charts-vendor-0VMaLVLN.js";import{U as n,d as r,p as i,ut as a}from"./DisclosureContext-
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{M as t}from"./charts-vendor-0VMaLVLN.js";import{U as n,d as r,p as i,ut as a}from"./DisclosureContext-B0siMVdg.js";import{p as o}from"./plan-graph-vendor-BYl-AzN5.js";import{h as s,m as c}from"./useRecentFiles-C3Ov47U7.js";import{C as l,O as u,S as d,l as f}from"./index-DCeWge12.js";import{a as p,o as m,r as h,s as g,t as _}from"./Dashboard-BgKodJl2.js";import{i as v,r as y}from"./impact-sort-BTQndbof.js";import{n as b,t as x}from"./finding-anchor-Cys8Z6Yn.js";import{t as S}from"./usePagedRows-BxvdFnPk.js";import{n as C,t as w}from"./useSortMode-B8SRfAoG.js";var T=e(t(),1),E=o();function D({finding:e}){let t=b([e]);return(0,E.jsxs)(`li`,{ref:t.ref,tabIndex:t.tabIndex,"data-flashed":t.dataFlashed,className:`space-y-2 ${x} transition-colors ${t.flashClassName}`,children:[e.stageIds.length>0?(0,E.jsx)(p,{pills:e.stageIds.map(e=>({id:e}))}):null,(0,E.jsxs)(`p`,{children:[f(e.recommendation??``).measured??e.recommendation,` `,(0,E.jsx)(_,{finding:e})]})]})}var O=(0,T.memo)(function({catalog:e,defaultCollapsed:t=!0}){let{sortMode:o,setSortMode:f,orderBy:p}=w(),[_,b]=(0,T.useState)(!t),[x,O]=(0,T.useState)(0),{findings:k,pills:A}=(0,T.useMemo)(()=>{let t=c(e,`overBroadcast`).sort((e,t)=>n[e.impactBand]-n[t.impactBand]);return{findings:t,pills:[...new Set(t.flatMap(e=>e.stageIds))].map(e=>({id:e}))}},[e]),j=p(k,e=>[e],v),M=u(),N=M?j.findIndex(e=>e===M.finding):null,{totalPages:P,effectivePage:F,visible:I}=S(j,x,O,N);return k.length===0?null:(0,E.jsxs)(l,{title:`Oversized Broadcast Join`,fixFor:k,impactBand:a(k),open:_,onOpenChange:b,badges:(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(r,{type:`overBroadcast`,impactBand:a(k)??`info`,className:d}),y(k,k.length,_)?(0,E.jsx)(C,{mode:o,onChange:f}):null]}),statusBadge:(0,E.jsx)(i,{children:(0,E.jsx)(s,{confidence:k[0].confidence,validationRequired:k[0].validationRequired,evidenceKey:`sqlPlan`})}),summary:(0,E.jsx)(m,{value:`${A.length} stage${A.length===1?``:`s`}`,context:g(k.length)}),children:[(0,E.jsx)(`ul`,{className:`space-y-3 text-sm`,children:I.map(e=>(0,E.jsx)(D,{finding:e},e.id))}),(0,E.jsx)(h,{page:F,totalPages:P,onPrev:()=>O(e=>e-1),onNext:()=>O(e=>e+1)})]})});export{O as OverBroadcast};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as e}from"./plan-graph-vendor-
|
|
1
|
+
import{p as e}from"./plan-graph-vendor-BYl-AzN5.js";var t=e();function n({hint:e}){return(0,t.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Try `,(0,t.jsxs)(`code`,{children:[`spark.sql.shuffle.partitions = `,e.recommended]}),` (now `,e.current,` tasks; target 128 MB per partition)`]})}export{n as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{M as t}from"./charts-vendor-0VMaLVLN.js";import{U as n,Y as r,bt as i,d as a,it as o,ut as s}from"./DisclosureContext-
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{M as t}from"./charts-vendor-0VMaLVLN.js";import{U as n,Y as r,bt as i,d as a,it as o,ut as s}from"./DisclosureContext-B0siMVdg.js";import{p as c}from"./plan-graph-vendor-BYl-AzN5.js";import{i as l,m as u}from"./useRecentFiles-C3Ov47U7.js";import{C as d,O as f}from"./index-DCeWge12.js";import{o as p,r as m,s as h,t as g}from"./Dashboard-BgKodJl2.js";import{r as _}from"./impact-sort-BTQndbof.js";import{n as v,t as y}from"./finding-anchor-Cys8Z6Yn.js";import{t as b}from"./usePagedRows-BxvdFnPk.js";import{n as x,t as S}from"./useSortMode-B8SRfAoG.js";import{t as C}from"./StageHeader-pI1nTwVf.js";import{a as w,i as T,n as E,r as D,t as O}from"./select-DIYN6D3y.js";import{t as k}from"./PlanExplorer-DcxmiQWL.js";var A=e(t(),1),j=c();function M(e){if(e.rule===`lowShuffleParallelism`)return`${o(e)} tasks carrying the shuffle`;let t=o(e);return e.rule===`maxPartitionTooBig`?`Largest partition ${r(t)} (too large)`:`Largest partition ${r(t)}`}function N({entry:e,appModel:t}){let n=i(),r=v(e.partitions),a=n===`advanced`&&l(e.stageId,t);return(0,j.jsxs)(`div`,{ref:r.ref,tabIndex:r.tabIndex,"data-flashed":r.dataFlashed,className:`space-y-2 ${y} transition-colors ${r.flashClassName}`,children:[(0,j.jsx)(C,{stageId:e.stageId,appModel:t}),(0,j.jsxs)(`div`,{className:`space-y-2 pt-1`,children:[(0,j.jsx)(`ul`,{className:`list-disc space-y-1 pl-5 text-xs text-muted-foreground`,children:e.partitions.map(e=>(0,j.jsxs)(`li`,{children:[M(e),` `,(0,j.jsx)(g,{finding:e})]},e.id))}),a?(0,j.jsx)(k,{stageId:e.stageId,appModel:t}):null]})]})}var P=(0,A.memo)(function({appModel:e,catalog:t,defaultCollapsed:r=!0}){let[i,o]=(0,A.useState)(0),[c,l]=(0,A.useState)(!r),{sortMode:g,setSortMode:v,orderBy:y}=S(),C=f(),{partitionFindings:k,sorted:M,orderedEntries:P}=(0,A.useMemo)(()=>{let e=u(t,`partitionSizing`),r=new Map;for(let t of e){if(t.stageId==null)continue;let e=r.get(t.stageId);e?(e.partitions.push(t),n[t.impactBand]<n[e.impactBand]&&(e.impactBand=t.impactBand)):r.set(t.stageId,{stageId:t.stageId,partitions:[t],impactBand:t.impactBand})}let i=[...r.values()].sort((e,t)=>n[e.impactBand]-n[t.impactBand]||e.stageId-t.stageId);return{partitionFindings:e,sorted:i,orderedEntries:y(i,e=>e.partitions,e=>e.stageId)}},[t,g]),F=C?P.findIndex(e=>e.partitions.some(e=>e===C.finding)):null,{totalPages:I,effectivePage:L,visible:R}=b(P,i,o,F);if(k.length===0){let t=e.stages.size;return(0,j.jsx)(d,{title:`Partition Sizing`,open:c,onOpenChange:l,summary:(0,j.jsx)(p,{value:`No issues`,context:`no issue detected: partition sizing checked across ${t} stage${t===1?``:`s`}`}),children:(0,j.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No partition-sizing issues detected.`})})}let z=s(k),B=_(k,M.length,c);return(0,j.jsx)(d,{title:`Partition Sizing`,fixFor:k,impactBand:z,open:c,onOpenChange:l,summary:(0,j.jsx)(p,{value:`Stage ${M[0].stageId}`,context:h(k.length)}),badges:(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(a,{type:`partitionSizing`,impactBand:z??`info`}),B?(0,j.jsx)(x,{mode:g,onChange:e=>{v(e),o(0)}}):null]}),children:(0,j.jsxs)(`div`,{className:`space-y-4`,children:[R.map(t=>(0,j.jsx)(N,{entry:t,appModel:e},t.stageId)),(0,j.jsx)(m,{page:L,totalPages:I,onPrev:()=>o(e=>e-1),onNext:()=>o(e=>e+1),renderJumpControl:()=>(0,j.jsxs)(O,{value:String(L*6),onValueChange:e=>o(Math.floor(Number(e)/6)),children:[(0,j.jsx)(T,{size:`sm`,"aria-label":`Jump to stage`,children:(0,j.jsx)(w,{placeholder:`Jump to stage`})}),(0,j.jsx)(E,{children:P.map((e,t)=>(0,j.jsxs)(D,{value:String(t),children:[`Stage `,e.stageId]},e.stageId))})]})})]})})});export{P as PartitionSizing};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{M as t}from"./charts-vendor-0VMaLVLN.js";import{a as n,gt as r,ht as i,i as a,r as o}from"./DisclosureContext-
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{M as t}from"./charts-vendor-0VMaLVLN.js";import{a as n,gt as r,ht as i,i as a,r as o}from"./DisclosureContext-B0siMVdg.js";import{p as s}from"./plan-graph-vendor-BYl-AzN5.js";import{i as c,r as l}from"./useRecentFiles-C3Ov47U7.js";var u=e(t(),1),d=s();function f({stageId:e,appModel:t}){let[s,f]=(0,u.useState)(!1);return c(e,t)?(0,d.jsx)(`div`,{className:`space-y-3`,children:(0,d.jsxs)(o,{open:s,onOpenChange:f,children:[(0,d.jsxs)(n,{"aria-expanded":String(s),className:`flex cursor-pointer items-center gap-2 bg-transparent text-left`,children:[(0,d.jsx)(`h3`,{className:`font-heading text-sm font-medium`,children:`Plan context`}),s?(0,d.jsx)(i,{"aria-hidden":`true`,className:`size-4 shrink-0 text-muted-foreground`}):(0,d.jsx)(r,{"aria-hidden":`true`,className:`size-4 shrink-0 text-muted-foreground`})]}),(0,d.jsx)(a,{keepMounted:!0,children:(0,d.jsx)(`div`,{className:`pt-3`,children:(0,d.jsx)(l,{stageId:e,appModel:t})})})]})}):null}export{f as t};
|