@polderlabs/bizar 10.2.0 → 10.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -8
- package/bizar-dash/CONTROL_SURFACES.md +0 -1
- package/bizar-dash/dist/assets/{ActivityFeed-JjmOY2AQ.js → ActivityFeed-DtRtg-JN.js} +1 -1
- package/bizar-dash/dist/assets/{ActivityFeed-JjmOY2AQ.js.map → ActivityFeed-DtRtg-JN.js.map} +1 -1
- package/bizar-dash/dist/assets/{ActivityView-BIIMvGWo.js → ActivityView-CoTXDyU_.js} +1 -1
- package/bizar-dash/dist/assets/{ActivityView-BIIMvGWo.js.map → ActivityView-CoTXDyU_.js.map} +1 -1
- package/bizar-dash/dist/assets/{AdminView-DRidJtkq.js → AdminView-DNc5Ll7L.js} +1 -1
- package/bizar-dash/dist/assets/{AdminView-DRidJtkq.js.map → AdminView-DNc5Ll7L.js.map} +1 -1
- package/bizar-dash/dist/assets/{AgentActivity-79l4SBMC.js → AgentActivity-CrX7LmQ6.js} +1 -1
- package/bizar-dash/dist/assets/{AgentActivity-79l4SBMC.js.map → AgentActivity-CrX7LmQ6.js.map} +1 -1
- package/bizar-dash/dist/assets/{AgentsView-0vT4uPSc.js → AgentsView-Du-G_skK.js} +3 -3
- package/bizar-dash/dist/assets/{AgentsView-0vT4uPSc.js.map → AgentsView-Du-G_skK.js.map} +1 -1
- package/bizar-dash/dist/assets/{Alert-CG5q_s75.js → Alert-B6DjfRFI.js} +1 -1
- package/bizar-dash/dist/assets/{Alert-CG5q_s75.js.map → Alert-B6DjfRFI.js.map} +1 -1
- package/bizar-dash/dist/assets/{ArtifactsView-DM8ZmpR9.js → ArtifactsView-znhN8GTR.js} +1 -1
- package/bizar-dash/dist/assets/{ArtifactsView-DM8ZmpR9.js.map → ArtifactsView-znhN8GTR.js.map} +1 -1
- package/bizar-dash/dist/assets/{AuthView-BveN94MC.js → AuthView-Rk8eKUPr.js} +1 -1
- package/bizar-dash/dist/assets/{AuthView-BveN94MC.js.map → AuthView-Rk8eKUPr.js.map} +1 -1
- package/bizar-dash/dist/assets/{Avatar-ulUPIYTd.js → Avatar-B41upSD1.js} +1 -1
- package/bizar-dash/dist/assets/{Avatar-ulUPIYTd.js.map → Avatar-B41upSD1.js.map} +1 -1
- package/bizar-dash/dist/assets/{BackgroundJobsView-BWErhqFo.js → BackgroundJobsView-BLWuN9qz.js} +1 -1
- package/bizar-dash/dist/assets/{BackgroundJobsView-BWErhqFo.js.map → BackgroundJobsView-BLWuN9qz.js.map} +1 -1
- package/bizar-dash/dist/assets/{BackupView-CnBjzG9N.js → BackupView-CqbtcnuQ.js} +1 -1
- package/bizar-dash/dist/assets/{BackupView-CnBjzG9N.js.map → BackupView-CqbtcnuQ.js.map} +1 -1
- package/bizar-dash/dist/assets/{Card-B0imhxMk.js → Card-rF59wHiO.js} +1 -1
- package/bizar-dash/dist/assets/{Card-B0imhxMk.js.map → Card-rF59wHiO.js.map} +1 -1
- package/bizar-dash/dist/assets/{ChatView-D6zGytzx.js → ChatView-CUriVEgU.js} +1 -1
- package/bizar-dash/dist/assets/{ChatView-D6zGytzx.js.map → ChatView-CUriVEgU.js.map} +1 -1
- package/bizar-dash/dist/assets/{Chip-wwZSGwLE.js → Chip-Dc2KmeWl.js} +1 -1
- package/bizar-dash/dist/assets/{Chip-wwZSGwLE.js.map → Chip-Dc2KmeWl.js.map} +1 -1
- package/bizar-dash/dist/assets/{ClaudeSessionsView-DK1sOLhi.js → ClaudeSessionsView-CiaHQdDZ.js} +1 -1
- package/bizar-dash/dist/assets/{ClaudeSessionsView-DK1sOLhi.js.map → ClaudeSessionsView-CiaHQdDZ.js.map} +1 -1
- package/bizar-dash/dist/assets/{ClipboardView-CZ2lYPr0.js → ClipboardView-DdP6aVso.js} +1 -1
- package/bizar-dash/dist/assets/{ClipboardView-CZ2lYPr0.js.map → ClipboardView-DdP6aVso.js.map} +1 -1
- package/bizar-dash/dist/assets/{ConfigView-D-zT9eNA.js → ConfigView-B2ysnTZU.js} +1 -1
- package/bizar-dash/dist/assets/{ConfigView-D-zT9eNA.js.map → ConfigView-B2ysnTZU.js.map} +1 -1
- package/bizar-dash/dist/assets/{DiagnosticsView-BocV68Lb.js → DiagnosticsView-88OZ5k0f.js} +1 -1
- package/bizar-dash/dist/assets/{DiagnosticsView-BocV68Lb.js.map → DiagnosticsView-88OZ5k0f.js.map} +1 -1
- package/bizar-dash/dist/assets/{DialogsView-BVjPI5x7.js → DialogsView-BcqDDCZQ.js} +1 -1
- package/bizar-dash/dist/assets/{DialogsView-BVjPI5x7.js.map → DialogsView-BcqDDCZQ.js.map} +1 -1
- package/bizar-dash/dist/assets/{DoctorView-84gJcZwM.js → DoctorView-BQwqvMAh.js} +1 -1
- package/bizar-dash/dist/assets/{DoctorView-84gJcZwM.js.map → DoctorView-BQwqvMAh.js.map} +1 -1
- package/bizar-dash/dist/assets/{EmptyState-BjgVOrcO.js → EmptyState-D65J5FQN.js} +1 -1
- package/bizar-dash/dist/assets/{EmptyState-BjgVOrcO.js.map → EmptyState-D65J5FQN.js.map} +1 -1
- package/bizar-dash/dist/assets/{EnvVarsView-BJ2TEzF7.js → EnvVarsView-DX-3oGH-.js} +2 -2
- package/bizar-dash/dist/assets/{EnvVarsView-BJ2TEzF7.js.map → EnvVarsView-DX-3oGH-.js.map} +1 -1
- package/bizar-dash/dist/assets/{ErrorState-BE3WBFqF.js → ErrorState-DULZnttJ.js} +1 -1
- package/bizar-dash/dist/assets/{ErrorState-BE3WBFqF.js.map → ErrorState-DULZnttJ.js.map} +1 -1
- package/bizar-dash/dist/assets/{EvalView-BJJ2P-kK.js → EvalView-CpdFu_ID.js} +1 -1
- package/bizar-dash/dist/assets/{EvalView-BJJ2P-kK.js.map → EvalView-CpdFu_ID.js.map} +1 -1
- package/bizar-dash/dist/assets/{GoalsView-pwROHApi.js → GoalsView-Br8oPPfb.js} +1 -1
- package/bizar-dash/dist/assets/{GoalsView-pwROHApi.js.map → GoalsView-Br8oPPfb.js.map} +1 -1
- package/bizar-dash/dist/assets/{Grid-qcvbhx6e.js → Grid-BSXhsCPC.js} +1 -1
- package/bizar-dash/dist/assets/{Grid-qcvbhx6e.js.map → Grid-BSXhsCPC.js.map} +1 -1
- package/bizar-dash/dist/assets/{HistoryView-C7SSOLJA.js → HistoryView-D0J3aoZF.js} +1 -1
- package/bizar-dash/dist/assets/{HistoryView-C7SSOLJA.js.map → HistoryView-D0J3aoZF.js.map} +1 -1
- package/bizar-dash/dist/assets/{Input-Bgzxf_Hu.js → Input-CZmRw5QX.js} +1 -1
- package/bizar-dash/dist/assets/{Input-Bgzxf_Hu.js.map → Input-CZmRw5QX.js.map} +1 -1
- package/bizar-dash/dist/assets/{LibrariesView-CbFFksox.js → LibrariesView-B1YX9wzp.js} +1 -1
- package/bizar-dash/dist/assets/{LibrariesView-CbFFksox.js.map → LibrariesView-B1YX9wzp.js.map} +1 -1
- package/bizar-dash/dist/assets/{LightRAGView-BqDrJbRq.js → LightRAGView-CykR0t9y.js} +1 -1
- package/bizar-dash/dist/assets/{LightRAGView-BqDrJbRq.js.map → LightRAGView-CykR0t9y.js.map} +1 -1
- package/bizar-dash/dist/assets/{ListHeader-TjPJrUfY.js → ListHeader-Dpun-r36.js} +1 -1
- package/bizar-dash/dist/assets/{ListHeader-TjPJrUfY.js.map → ListHeader-Dpun-r36.js.map} +1 -1
- package/bizar-dash/dist/assets/{MemoryView-BlTeHLhX.js → MemoryView-BbER5ZKt.js} +1 -1
- package/bizar-dash/dist/assets/{MemoryView-BlTeHLhX.js.map → MemoryView-BbER5ZKt.js.map} +1 -1
- package/bizar-dash/dist/assets/MiscView-DLNEGdML.js +1 -0
- package/bizar-dash/dist/assets/{MiscView-B8QY82Pm.js.map → MiscView-DLNEGdML.js.map} +1 -1
- package/bizar-dash/dist/assets/{ModsView-CvW1OWts.js → ModsView-P7gDeNHM.js} +2 -2
- package/bizar-dash/dist/assets/{ModsView-CvW1OWts.js.map → ModsView-P7gDeNHM.js.map} +1 -1
- package/bizar-dash/dist/assets/{NotificationsView-CsBt5U7x.js → NotificationsView-DAm2O0yf.js} +1 -1
- package/bizar-dash/dist/assets/{NotificationsView-CsBt5U7x.js.map → NotificationsView-DAm2O0yf.js.map} +1 -1
- package/bizar-dash/dist/assets/ObsidianView-Ci80gnwS.js +1 -0
- package/bizar-dash/dist/assets/{ObsidianView-BCTejEj2.js.map → ObsidianView-Ci80gnwS.js.map} +1 -1
- package/bizar-dash/dist/assets/{OverviewView-BsuPxwnB.js → OverviewView-rriw1GjA.js} +1 -1
- package/bizar-dash/dist/assets/{OverviewView-BsuPxwnB.js.map → OverviewView-rriw1GjA.js.map} +1 -1
- package/bizar-dash/dist/assets/{ProgressBar-DlZTETEn.js → ProgressBar-BahmeJhP.js} +1 -1
- package/bizar-dash/dist/assets/{ProgressBar-DlZTETEn.js.map → ProgressBar-BahmeJhP.js.map} +1 -1
- package/bizar-dash/dist/assets/{ProjectsView-Soxtmpet.js → ProjectsView-ChzM12bs.js} +1 -1
- package/bizar-dash/dist/assets/{ProjectsView-Soxtmpet.js.map → ProjectsView-ChzM12bs.js.map} +1 -1
- package/bizar-dash/dist/assets/{ProvidersView-DaCEV9pM.js → ProvidersView-BftGn8Cr.js} +1 -1
- package/bizar-dash/dist/assets/{ProvidersView-DaCEV9pM.js.map → ProvidersView-BftGn8Cr.js.map} +1 -1
- package/bizar-dash/dist/assets/{SchedulesView-DY2ByBj_.js → SchedulesView-CtNxtzN6.js} +1 -1
- package/bizar-dash/dist/assets/{SchedulesView-DY2ByBj_.js.map → SchedulesView-CtNxtzN6.js.map} +1 -1
- package/bizar-dash/dist/assets/{Select-Dbd88_n8.js → Select-0VcfTDeL.js} +1 -1
- package/bizar-dash/dist/assets/{Select-Dbd88_n8.js.map → Select-0VcfTDeL.js.map} +1 -1
- package/bizar-dash/dist/assets/{SettingsRow-CLMNd434.js → SettingsRow-BLic3DQl.js} +1 -1
- package/bizar-dash/dist/assets/{SettingsRow-CLMNd434.js.map → SettingsRow-BLic3DQl.js.map} +1 -1
- package/bizar-dash/dist/assets/{SettingsView-b24oFq9x.js → SettingsView-BjS3i4nr.js} +1 -1
- package/bizar-dash/dist/assets/{SettingsView-b24oFq9x.js.map → SettingsView-BjS3i4nr.js.map} +1 -1
- package/bizar-dash/dist/assets/{Sheet-DnDid58j.js → Sheet-BOProMs2.js} +1 -1
- package/bizar-dash/dist/assets/{Sheet-DnDid58j.js.map → Sheet-BOProMs2.js.map} +1 -1
- package/bizar-dash/dist/assets/{Slider-BJCvKI1I.js → Slider-B0eLEEUt.js} +1 -1
- package/bizar-dash/dist/assets/{Slider-BJCvKI1I.js.map → Slider-B0eLEEUt.js.map} +1 -1
- package/bizar-dash/dist/assets/{Sparkline-ktqQLdyb.js → Sparkline-SSrdgyW0.js} +1 -1
- package/bizar-dash/dist/assets/{Sparkline-ktqQLdyb.js.map → Sparkline-SSrdgyW0.js.map} +1 -1
- package/bizar-dash/dist/assets/{Switch-CwXfsDii.js → Switch-B3EQzb_q.js} +1 -1
- package/bizar-dash/dist/assets/{Switch-CwXfsDii.js.map → Switch-B3EQzb_q.js.map} +1 -1
- package/bizar-dash/dist/assets/{TasksView-BHmpzFCf.js → TasksView-SWjF_ZUQ.js} +1 -1
- package/bizar-dash/dist/assets/{TasksView-BHmpzFCf.js.map → TasksView-SWjF_ZUQ.js.map} +1 -1
- package/bizar-dash/dist/assets/{Textarea-BzIAwSlp.js → Textarea-QuofpMlq.js} +1 -1
- package/bizar-dash/dist/assets/{Textarea-BzIAwSlp.js.map → Textarea-QuofpMlq.js.map} +1 -1
- package/bizar-dash/dist/assets/{UpdateView-CSmX9NN0.js → UpdateView-CEHW2nd6.js} +1 -1
- package/bizar-dash/dist/assets/{UpdateView-CSmX9NN0.js.map → UpdateView-CEHW2nd6.js.map} +1 -1
- package/bizar-dash/dist/assets/{UsageView-COyr_Gfi.js → UsageView-BqOw6FBg.js} +1 -1
- package/bizar-dash/dist/assets/{UsageView-COyr_Gfi.js.map → UsageView-BqOw6FBg.js.map} +1 -1
- package/bizar-dash/dist/assets/{ViewHeader-BzYZ3m-e.js → ViewHeader-B6P-C4GD.js} +1 -1
- package/bizar-dash/dist/assets/{ViewHeader-BzYZ3m-e.js.map → ViewHeader-B6P-C4GD.js.map} +1 -1
- package/bizar-dash/dist/assets/{VoiceView-D33_xG5t.js → VoiceView-CwrPwWgi.js} +1 -1
- package/bizar-dash/dist/assets/{VoiceView-D33_xG5t.js.map → VoiceView-CwrPwWgi.js.map} +1 -1
- package/bizar-dash/dist/assets/{brain-CM-Vls8r.js → brain-CwZt9Kta.js} +1 -1
- package/bizar-dash/dist/assets/{brain-CM-Vls8r.js.map → brain-CwZt9Kta.js.map} +1 -1
- package/bizar-dash/dist/assets/{calendar-C0lgZk69.js → calendar-C5oK0_nM.js} +1 -1
- package/bizar-dash/dist/assets/{calendar-C0lgZk69.js.map → calendar-C5oK0_nM.js.map} +1 -1
- package/bizar-dash/dist/assets/{circle-Bx_hQEBC.js → circle-D1Lc_P2a.js} +1 -1
- package/bizar-dash/dist/assets/{circle-Bx_hQEBC.js.map → circle-D1Lc_P2a.js.map} +1 -1
- package/bizar-dash/dist/assets/{circle-alert-DHvsqpw5.js → circle-alert-HdHe7m8K.js} +1 -1
- package/bizar-dash/dist/assets/{circle-alert-DHvsqpw5.js.map → circle-alert-HdHe7m8K.js.map} +1 -1
- package/bizar-dash/dist/assets/{circle-check-Bx8wmXR9.js → circle-check-Cs-xoV7R.js} +1 -1
- package/bizar-dash/dist/assets/{circle-check-Bx8wmXR9.js.map → circle-check-Cs-xoV7R.js.map} +1 -1
- package/bizar-dash/dist/assets/{clock-CejGoecX.js → clock-DEIuPV60.js} +1 -1
- package/bizar-dash/dist/assets/{clock-CejGoecX.js.map → clock-DEIuPV60.js.map} +1 -1
- package/bizar-dash/dist/assets/{download-4cEUWue1.js → download-Clkq90Ct.js} +1 -1
- package/bizar-dash/dist/assets/{download-4cEUWue1.js.map → download-Clkq90Ct.js.map} +1 -1
- package/bizar-dash/dist/assets/{external-link-0NqUhI4i.js → external-link-D5tq2o_I.js} +1 -1
- package/bizar-dash/dist/assets/{external-link-0NqUhI4i.js.map → external-link-D5tq2o_I.js.map} +1 -1
- package/bizar-dash/dist/assets/{file-text-yEMkrSoZ.js → file-text-CQ12t7Oc.js} +1 -1
- package/bizar-dash/dist/assets/{file-text-yEMkrSoZ.js.map → file-text-CQ12t7Oc.js.map} +1 -1
- package/bizar-dash/dist/assets/{filter-BXt60zAS.js → filter-BcbE37wP.js} +1 -1
- package/bizar-dash/dist/assets/{filter-BXt60zAS.js.map → filter-BcbE37wP.js.map} +1 -1
- package/bizar-dash/dist/assets/{git-pull-request-BjG5lNtR.js → git-pull-request-D1qNDRia.js} +1 -1
- package/bizar-dash/dist/assets/{git-pull-request-BjG5lNtR.js.map → git-pull-request-D1qNDRia.js.map} +1 -1
- package/bizar-dash/dist/assets/{main-CokHAXWM.js → main-Cxeu4LhG.js} +28 -33
- package/bizar-dash/dist/assets/main-Cxeu4LhG.js.map +1 -0
- package/bizar-dash/dist/assets/network-DJdvVaHx.js +6 -0
- package/bizar-dash/dist/assets/network-DJdvVaHx.js.map +1 -0
- package/bizar-dash/dist/assets/{pause-CAmulU0F.js → pause-DUn9L5PB.js} +1 -1
- package/bizar-dash/dist/assets/{pause-CAmulU0F.js.map → pause-DUn9L5PB.js.map} +1 -1
- package/bizar-dash/dist/assets/{pencil-eq5IqBmU.js → pencil-DVrBlYV3.js} +1 -1
- package/bizar-dash/dist/assets/{pencil-eq5IqBmU.js.map → pencil-DVrBlYV3.js.map} +1 -1
- package/bizar-dash/dist/assets/{play-BoLrrcBA.js → play-CZjsr3XM.js} +1 -1
- package/bizar-dash/dist/assets/{play-BoLrrcBA.js.map → play-CZjsr3XM.js.map} +1 -1
- package/bizar-dash/dist/assets/{plug-DBrVM9lK.js → plug-BKuyIe5W.js} +1 -1
- package/bizar-dash/dist/assets/{plug-DBrVM9lK.js.map → plug-BKuyIe5W.js.map} +1 -1
- package/bizar-dash/dist/assets/{plus-DENm0hqV.js → plus-77h62zZm.js} +1 -1
- package/bizar-dash/dist/assets/{plus-DENm0hqV.js.map → plus-77h62zZm.js.map} +1 -1
- package/bizar-dash/dist/assets/{power-DLjXF7zE.js → power-DLmx-gCP.js} +1 -1
- package/bizar-dash/dist/assets/{power-DLjXF7zE.js.map → power-DLmx-gCP.js.map} +1 -1
- package/bizar-dash/dist/assets/{power-off-D47cOnG_.js → power-off-BFKzHXic.js} +1 -1
- package/bizar-dash/dist/assets/{power-off-D47cOnG_.js.map → power-off-BFKzHXic.js.map} +1 -1
- package/bizar-dash/dist/assets/{refresh-ccw-DNrXX9gB.js → refresh-ccw-DenGBOcq.js} +1 -1
- package/bizar-dash/dist/assets/{refresh-ccw-DNrXX9gB.js.map → refresh-ccw-DenGBOcq.js.map} +1 -1
- package/bizar-dash/dist/assets/{refresh-cw-CoAHDpeS.js → refresh-cw-ENBVR8hW.js} +1 -1
- package/bizar-dash/dist/assets/{refresh-cw-CoAHDpeS.js.map → refresh-cw-ENBVR8hW.js.map} +1 -1
- package/bizar-dash/dist/assets/{rotate-ccw-ObX5awaG.js → rotate-ccw-MxryaY7q.js} +1 -1
- package/bizar-dash/dist/assets/{rotate-ccw-ObX5awaG.js.map → rotate-ccw-MxryaY7q.js.map} +1 -1
- package/bizar-dash/dist/assets/{rotate-cw-xpPJw9LP.js → rotate-cw-CDOlRtUR.js} +1 -1
- package/bizar-dash/dist/assets/{rotate-cw-xpPJw9LP.js.map → rotate-cw-CDOlRtUR.js.map} +1 -1
- package/bizar-dash/dist/assets/{save-D1iKiJJl.js → save-Db1b-1Uq.js} +1 -1
- package/bizar-dash/dist/assets/{save-D1iKiJJl.js.map → save-Db1b-1Uq.js.map} +1 -1
- package/bizar-dash/dist/assets/{send-BRcAhZUm.js → send-yz6HFZM5.js} +1 -1
- package/bizar-dash/dist/assets/{send-BRcAhZUm.js.map → send-yz6HFZM5.js.map} +1 -1
- package/bizar-dash/dist/assets/{shield-alert-C6vEcK-g.js → shield-alert-DY6RAaC8.js} +1 -1
- package/bizar-dash/dist/assets/{shield-alert-C6vEcK-g.js.map → shield-alert-DY6RAaC8.js.map} +1 -1
- package/bizar-dash/dist/assets/{trash-2-DZDjEnNh.js → trash-2-Cv7U38jw.js} +1 -1
- package/bizar-dash/dist/assets/{trash-2-DZDjEnNh.js.map → trash-2-Cv7U38jw.js.map} +1 -1
- package/bizar-dash/dist/assets/{trending-up-DMj-AJVf.js → trending-up-CRPNagyX.js} +1 -1
- package/bizar-dash/dist/assets/{trending-up-DMj-AJVf.js.map → trending-up-CRPNagyX.js.map} +1 -1
- package/bizar-dash/dist/assets/{triangle-alert-_2xe_tl4.js → triangle-alert-tUTXbcEP.js} +1 -1
- package/bizar-dash/dist/assets/{triangle-alert-_2xe_tl4.js.map → triangle-alert-tUTXbcEP.js.map} +1 -1
- package/bizar-dash/dist/assets/{upload-DdDljAeV.js → upload-Cq7uTsrT.js} +1 -1
- package/bizar-dash/dist/assets/{upload-DdDljAeV.js.map → upload-Cq7uTsrT.js.map} +1 -1
- package/bizar-dash/dist/assets/{zap-mHsgh0FP.js → zap-5lAQBAPX.js} +1 -1
- package/bizar-dash/dist/assets/{zap-mHsgh0FP.js.map → zap-5lAQBAPX.js.map} +1 -1
- package/bizar-dash/dist/index.html +1 -1
- package/bizar-dash/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
- package/bizar-dash/src/server/api.mjs +5 -1
- package/bizar-dash/src/server/routes/update.mjs +48 -21
- package/bizar-dash/src/web/v8/App.tsx +0 -4
- package/bizar-dash/src/web/v8/__tests__/new-views.test.tsx +0 -17
- package/bizar-dash/src/web/v8/shell/Sidebar.tsx +3 -4
- package/bizar-dash/src/web/v8/views/Router.tsx +0 -5
- package/bizar-dash/tests/_update-test-helpers.mjs +13 -0
- package/bizar-dash/tests/update-check.test.mjs +18 -13
- package/bizar-dash/tests/update-packages.test.mjs +154 -0
- package/bizar-dash/tests/update-run.test.mjs +17 -80
- package/cli/banner.mjs +1 -1
- package/cli/bin.mjs +8 -1
- package/cli/bootstrap.mjs +1 -1
- package/cli/commands/claude-cmd.mjs +1 -1
- package/cli/commands/deploy/docker.mjs +0 -3
- package/cli/doctor.mjs +1 -1
- package/cli/install/banner.mjs +67 -0
- package/cli/install/banner.test.mjs +39 -0
- package/cli/install/index.mjs +32 -0
- package/cli/install/index.test.mjs +61 -0
- package/cli/install/paths.mjs +80 -0
- package/cli/install/paths.test.mjs +77 -0
- package/cli/install/plugin.mjs +161 -0
- package/cli/install/postinstall.mjs +111 -0
- package/cli/install.mjs +13 -600
- package/cli/migrate.mjs +157 -0
- package/cli/migrate.test.mjs +85 -0
- package/cli/provision.mjs +615 -1918
- package/cli/provision.test.mjs +1 -1
- package/cli/service-controller.test.mjs +0 -1
- package/cli/service-env.mjs +0 -1
- package/cli/utils.mjs +0 -1
- package/install.sh +54 -466
- package/package.json +1 -1
- package/packages/sdk/dist/mcp/server.js +41 -409
- package/packages/sdk/dist/router/q-learning-router.d.ts +3 -5
- package/packages/sdk/dist/router/q-learning-router.js +9 -5
- package/packages/sdk/package.json +1 -1
- package/scripts/install-curl.sh +17 -0
- package/bizar-dash/dist/assets/HeadroomView-D1UiTYbt.js +0 -11
- package/bizar-dash/dist/assets/HeadroomView-D1UiTYbt.js.map +0 -1
- package/bizar-dash/dist/assets/MiscView-B8QY82Pm.js +0 -1
- package/bizar-dash/dist/assets/ObsidianView-BCTejEj2.js +0 -1
- package/bizar-dash/dist/assets/main-CokHAXWM.js.map +0 -1
- package/bizar-dash/skills/headroom/SKILL.md +0 -94
- package/bizar-dash/src/server/headroom.mjs +0 -649
- package/bizar-dash/src/server/routes/headroom.mjs +0 -126
- package/bizar-dash/src/web/v8/views/Headroom/HeadroomView.tsx +0 -201
- package/bizar-dash/tests/graphify-mod-spawn.node.test.mjs +0 -90
- package/bizar-dash/tests/headroom-install.test.mjs +0 -173
- package/bizar-dash/tests/headroom-settings.test.mjs +0 -126
- package/bizar-dash/tests/headroom-status.test.mjs +0 -117
- package/bizar-dash/tests/v7-archive/mobile-overview.test.tsx +0 -214
- package/bizar-dash/tests/v7-archive/mobile-settings.test.tsx +0 -181
- package/bizar-dash/tests/v7-archive/navigation/CommandPalette.test.tsx +0 -105
- package/bizar-dash/tests/v7-archive/settings-nav.test.tsx +0 -128
- package/bizar-dash/tests/v7-archive/views/Overview.test.tsx +0 -413
- package/cli/commands/headroom.mjs +0 -204
- package/cli/provision-claude.mjs +0 -1176
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import{c as e}from"./main-Cxeu4LhG.js";/**
|
|
2
|
+
* @license lucide-react v0.460.0 - ISC
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the ISC license.
|
|
5
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/const h=e("Network",[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]]);export{h as N};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network-DJdvVaHx.js","sources":["../../../node_modules/lucide-react/dist/esm/icons/network.js"],"sourcesContent":["/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Network = createLucideIcon(\"Network\", [\n [\"rect\", { x: \"16\", y: \"16\", width: \"6\", height: \"6\", rx: \"1\", key: \"4q2zg0\" }],\n [\"rect\", { x: \"2\", y: \"16\", width: \"6\", height: \"6\", rx: \"1\", key: \"8cvhb9\" }],\n [\"rect\", { x: \"9\", y: \"2\", width: \"6\", height: \"6\", rx: \"1\", key: \"1egb70\" }],\n [\"path\", { d: \"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3\", key: \"1jsf9p\" }],\n [\"path\", { d: \"M12 12V8\", key: \"2874zd\" }]\n]);\n\nexport { Network as default };\n//# sourceMappingURL=network.js.map\n"],"names":["Network","createLucideIcon"],"mappings":"uCAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASK,MAACA,EAAUC,EAAiB,UAAW,CAC1C,CAAC,OAAQ,CAAE,EAAG,KAAM,EAAG,KAAM,MAAO,IAAK,OAAQ,IAAK,GAAI,IAAK,IAAK,QAAQ,CAAE,EAC9E,CAAC,OAAQ,CAAE,EAAG,IAAK,EAAG,KAAM,MAAO,IAAK,OAAQ,IAAK,GAAI,IAAK,IAAK,QAAQ,CAAE,EAC7E,CAAC,OAAQ,CAAE,EAAG,IAAK,EAAG,IAAK,MAAO,IAAK,OAAQ,IAAK,GAAI,IAAK,IAAK,QAAQ,CAAE,EAC5E,CAAC,OAAQ,CAAE,EAAG,4CAA6C,IAAK,QAAQ,CAAE,EAC1E,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAQ,CAAE,CAC3C,CAAC","x_google_ignoreList":[0]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pause-
|
|
1
|
+
{"version":3,"file":"pause-DUn9L5PB.js","sources":["../../../node_modules/lucide-react/dist/esm/icons/pause.js"],"sourcesContent":["/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Pause = createLucideIcon(\"Pause\", [\n [\"rect\", { x: \"14\", y: \"4\", width: \"4\", height: \"16\", rx: \"1\", key: \"zuxfzm\" }],\n [\"rect\", { x: \"6\", y: \"4\", width: \"4\", height: \"16\", rx: \"1\", key: \"1okwgv\" }]\n]);\n\nexport { Pause as default };\n//# sourceMappingURL=pause.js.map\n"],"names":["Pause","createLucideIcon"],"mappings":"uCAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASK,MAACA,EAAQC,EAAiB,QAAS,CACtC,CAAC,OAAQ,CAAE,EAAG,KAAM,EAAG,IAAK,MAAO,IAAK,OAAQ,KAAM,GAAI,IAAK,IAAK,QAAQ,CAAE,EAC9E,CAAC,OAAQ,CAAE,EAAG,IAAK,EAAG,IAAK,MAAO,IAAK,OAAQ,KAAM,GAAI,IAAK,IAAK,QAAQ,CAAE,CAC/E,CAAC","x_google_ignoreList":[0]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pencil-
|
|
1
|
+
{"version":3,"file":"pencil-DVrBlYV3.js","sources":["../../../node_modules/lucide-react/dist/esm/icons/pencil.js"],"sourcesContent":["/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Pencil = createLucideIcon(\"Pencil\", [\n [\n \"path\",\n {\n d: \"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z\",\n key: \"1a8usu\"\n }\n ],\n [\"path\", { d: \"m15 5 4 4\", key: \"1mk7zo\" }]\n]);\n\nexport { Pencil as default };\n//# sourceMappingURL=pencil.js.map\n"],"names":["Pencil","createLucideIcon"],"mappings":"uCAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASK,MAACA,EAASC,EAAiB,SAAU,CACxC,CACE,OACA,CACE,EAAG,mIACH,IAAK,QACX,CACA,EACE,CAAC,OAAQ,CAAE,EAAG,YAAa,IAAK,QAAQ,CAAE,CAC5C,CAAC","x_google_ignoreList":[0]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"play-
|
|
1
|
+
{"version":3,"file":"play-CZjsr3XM.js","sources":["../../../node_modules/lucide-react/dist/esm/icons/play.js"],"sourcesContent":["/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Play = createLucideIcon(\"Play\", [\n [\"polygon\", { points: \"6 3 20 12 6 21 6 3\", key: \"1oa8hb\" }]\n]);\n\nexport { Play as default };\n//# sourceMappingURL=play.js.map\n"],"names":["Play","createLucideIcon"],"mappings":"uCAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASK,MAACA,EAAOC,EAAiB,OAAQ,CACpC,CAAC,UAAW,CAAE,OAAQ,qBAAsB,IAAK,QAAQ,CAAE,CAC7D,CAAC","x_google_ignoreList":[0]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plug-
|
|
1
|
+
{"version":3,"file":"plug-BKuyIe5W.js","sources":["../../../node_modules/lucide-react/dist/esm/icons/plug.js"],"sourcesContent":["/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Plug = createLucideIcon(\"Plug\", [\n [\"path\", { d: \"M12 22v-5\", key: \"1ega77\" }],\n [\"path\", { d: \"M9 8V2\", key: \"14iosj\" }],\n [\"path\", { d: \"M15 8V2\", key: \"18g5xt\" }],\n [\"path\", { d: \"M18 8v5a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V8Z\", key: \"osxo6l\" }]\n]);\n\nexport { Plug as default };\n//# sourceMappingURL=plug.js.map\n"],"names":["Plug","createLucideIcon"],"mappings":"uCAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASK,MAACA,EAAOC,EAAiB,OAAQ,CACpC,CAAC,OAAQ,CAAE,EAAG,YAAa,IAAK,QAAQ,CAAE,EAC1C,CAAC,OAAQ,CAAE,EAAG,SAAU,IAAK,QAAQ,CAAE,EACvC,CAAC,OAAQ,CAAE,EAAG,UAAW,IAAK,QAAQ,CAAE,EACxC,CAAC,OAAQ,CAAE,EAAG,4CAA6C,IAAK,QAAQ,CAAE,CAC5E,CAAC","x_google_ignoreList":[0]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plus-
|
|
1
|
+
{"version":3,"file":"plus-77h62zZm.js","sources":["../../../node_modules/lucide-react/dist/esm/icons/plus.js"],"sourcesContent":["/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Plus = createLucideIcon(\"Plus\", [\n [\"path\", { d: \"M5 12h14\", key: \"1ays0h\" }],\n [\"path\", { d: \"M12 5v14\", key: \"s699le\" }]\n]);\n\nexport { Plus as default };\n//# sourceMappingURL=plus.js.map\n"],"names":["Plus","createLucideIcon"],"mappings":"uCAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASK,MAACA,EAAOC,EAAiB,OAAQ,CACpC,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAQ,CAAE,EACzC,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAQ,CAAE,CAC3C,CAAC","x_google_ignoreList":[0]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"power-
|
|
1
|
+
{"version":3,"file":"power-DLmx-gCP.js","sources":["../../../node_modules/lucide-react/dist/esm/icons/power.js"],"sourcesContent":["/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Power = createLucideIcon(\"Power\", [\n [\"path\", { d: \"M12 2v10\", key: \"mnfbl\" }],\n [\"path\", { d: \"M18.4 6.6a9 9 0 1 1-12.77.04\", key: \"obofu9\" }]\n]);\n\nexport { Power as default };\n//# sourceMappingURL=power.js.map\n"],"names":["Power","createLucideIcon"],"mappings":"uCAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASK,MAACA,EAAQC,EAAiB,QAAS,CACtC,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,OAAO,CAAE,EACxC,CAAC,OAAQ,CAAE,EAAG,+BAAgC,IAAK,QAAQ,CAAE,CAC/D,CAAC","x_google_ignoreList":[0]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"power-off-
|
|
1
|
+
{"version":3,"file":"power-off-BFKzHXic.js","sources":["../../../node_modules/lucide-react/dist/esm/icons/power-off.js"],"sourcesContent":["/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst PowerOff = createLucideIcon(\"PowerOff\", [\n [\"path\", { d: \"M18.36 6.64A9 9 0 0 1 20.77 15\", key: \"dxknvb\" }],\n [\"path\", { d: \"M6.16 6.16a9 9 0 1 0 12.68 12.68\", key: \"1x7qb5\" }],\n [\"path\", { d: \"M12 2v4\", key: \"3427ic\" }],\n [\"path\", { d: \"m2 2 20 20\", key: \"1ooewy\" }]\n]);\n\nexport { PowerOff as default };\n//# sourceMappingURL=power-off.js.map\n"],"names":["PowerOff","createLucideIcon"],"mappings":"uCAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASK,MAACA,EAAWC,EAAiB,WAAY,CAC5C,CAAC,OAAQ,CAAE,EAAG,iCAAkC,IAAK,QAAQ,CAAE,EAC/D,CAAC,OAAQ,CAAE,EAAG,mCAAoC,IAAK,QAAQ,CAAE,EACjE,CAAC,OAAQ,CAAE,EAAG,UAAW,IAAK,QAAQ,CAAE,EACxC,CAAC,OAAQ,CAAE,EAAG,aAAc,IAAK,QAAQ,CAAE,CAC7C,CAAC","x_google_ignoreList":[0]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refresh-ccw-
|
|
1
|
+
{"version":3,"file":"refresh-ccw-DenGBOcq.js","sources":["../../../node_modules/lucide-react/dist/esm/icons/refresh-ccw.js"],"sourcesContent":["/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst RefreshCcw = createLucideIcon(\"RefreshCcw\", [\n [\"path\", { d: \"M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\", key: \"14sxne\" }],\n [\"path\", { d: \"M3 3v5h5\", key: \"1xhq8a\" }],\n [\"path\", { d: \"M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16\", key: \"1hlbsb\" }],\n [\"path\", { d: \"M16 16h5v5\", key: \"ccwih5\" }]\n]);\n\nexport { RefreshCcw as default };\n//# sourceMappingURL=refresh-ccw.js.map\n"],"names":["RefreshCcw","createLucideIcon"],"mappings":"uCAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASK,MAACA,EAAaC,EAAiB,aAAc,CAChD,CAAC,OAAQ,CAAE,EAAG,qDAAsD,IAAK,QAAQ,CAAE,EACnF,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAQ,CAAE,EACzC,CAAC,OAAQ,CAAE,EAAG,sDAAuD,IAAK,QAAQ,CAAE,EACpF,CAAC,OAAQ,CAAE,EAAG,aAAc,IAAK,QAAQ,CAAE,CAC7C,CAAC","x_google_ignoreList":[0]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refresh-cw-
|
|
1
|
+
{"version":3,"file":"refresh-cw-ENBVR8hW.js","sources":["../../../node_modules/lucide-react/dist/esm/icons/refresh-cw.js"],"sourcesContent":["/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst RefreshCw = createLucideIcon(\"RefreshCw\", [\n [\"path\", { d: \"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8\", key: \"v9h5vc\" }],\n [\"path\", { d: \"M21 3v5h-5\", key: \"1q7to0\" }],\n [\"path\", { d: \"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16\", key: \"3uifl3\" }],\n [\"path\", { d: \"M8 16H3v5\", key: \"1cv678\" }]\n]);\n\nexport { RefreshCw as default };\n//# sourceMappingURL=refresh-cw.js.map\n"],"names":["RefreshCw","createLucideIcon"],"mappings":"uCAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASK,MAACA,EAAYC,EAAiB,YAAa,CAC9C,CAAC,OAAQ,CAAE,EAAG,qDAAsD,IAAK,QAAQ,CAAE,EACnF,CAAC,OAAQ,CAAE,EAAG,aAAc,IAAK,QAAQ,CAAE,EAC3C,CAAC,OAAQ,CAAE,EAAG,sDAAuD,IAAK,QAAQ,CAAE,EACpF,CAAC,OAAQ,CAAE,EAAG,YAAa,IAAK,QAAQ,CAAE,CAC5C,CAAC","x_google_ignoreList":[0]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rotate-ccw-
|
|
1
|
+
{"version":3,"file":"rotate-ccw-MxryaY7q.js","sources":["../../../node_modules/lucide-react/dist/esm/icons/rotate-ccw.js"],"sourcesContent":["/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst RotateCcw = createLucideIcon(\"RotateCcw\", [\n [\"path\", { d: \"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\", key: \"1357e3\" }],\n [\"path\", { d: \"M3 3v5h5\", key: \"1xhq8a\" }]\n]);\n\nexport { RotateCcw as default };\n//# sourceMappingURL=rotate-ccw.js.map\n"],"names":["RotateCcw","createLucideIcon"],"mappings":"uCAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASK,MAACA,EAAYC,EAAiB,YAAa,CAC9C,CAAC,OAAQ,CAAE,EAAG,oDAAqD,IAAK,QAAQ,CAAE,EAClF,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAQ,CAAE,CAC3C,CAAC","x_google_ignoreList":[0]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rotate-cw-
|
|
1
|
+
{"version":3,"file":"rotate-cw-CDOlRtUR.js","sources":["../../../node_modules/lucide-react/dist/esm/icons/rotate-cw.js"],"sourcesContent":["/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst RotateCw = createLucideIcon(\"RotateCw\", [\n [\"path\", { d: \"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8\", key: \"1p45f6\" }],\n [\"path\", { d: \"M21 3v5h-5\", key: \"1q7to0\" }]\n]);\n\nexport { RotateCw as default };\n//# sourceMappingURL=rotate-cw.js.map\n"],"names":["RotateCw","createLucideIcon"],"mappings":"uCAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASK,MAACA,EAAWC,EAAiB,WAAY,CAC5C,CAAC,OAAQ,CAAE,EAAG,oDAAqD,IAAK,QAAQ,CAAE,EAClF,CAAC,OAAQ,CAAE,EAAG,aAAc,IAAK,QAAQ,CAAE,CAC7C,CAAC","x_google_ignoreList":[0]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"save-
|
|
1
|
+
{"version":3,"file":"save-Db1b-1Uq.js","sources":["../../../node_modules/lucide-react/dist/esm/icons/save.js"],"sourcesContent":["/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Save = createLucideIcon(\"Save\", [\n [\n \"path\",\n {\n d: \"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z\",\n key: \"1c8476\"\n }\n ],\n [\"path\", { d: \"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7\", key: \"1ydtos\" }],\n [\"path\", { d: \"M7 3v4a1 1 0 0 0 1 1h7\", key: \"t51u73\" }]\n]);\n\nexport { Save as default };\n//# sourceMappingURL=save.js.map\n"],"names":["Save","createLucideIcon"],"mappings":"uCAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASK,MAACA,EAAOC,EAAiB,OAAQ,CACpC,CACE,OACA,CACE,EAAG,qGACH,IAAK,QACX,CACA,EACE,CAAC,OAAQ,CAAE,EAAG,4CAA6C,IAAK,QAAQ,CAAE,EAC1E,CAAC,OAAQ,CAAE,EAAG,yBAA0B,IAAK,QAAQ,CAAE,CACzD,CAAC","x_google_ignoreList":[0]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send-
|
|
1
|
+
{"version":3,"file":"send-yz6HFZM5.js","sources":["../../../node_modules/lucide-react/dist/esm/icons/send.js"],"sourcesContent":["/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Send = createLucideIcon(\"Send\", [\n [\n \"path\",\n {\n d: \"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z\",\n key: \"1ffxy3\"\n }\n ],\n [\"path\", { d: \"m21.854 2.147-10.94 10.939\", key: \"12cjpa\" }]\n]);\n\nexport { Send as default };\n//# sourceMappingURL=send.js.map\n"],"names":["Send","createLucideIcon"],"mappings":"uCAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASK,MAACA,EAAOC,EAAiB,OAAQ,CACpC,CACE,OACA,CACE,EAAG,kIACH,IAAK,QACX,CACA,EACE,CAAC,OAAQ,CAAE,EAAG,6BAA8B,IAAK,QAAQ,CAAE,CAC7D,CAAC","x_google_ignoreList":[0]}
|
package/bizar-dash/dist/assets/{shield-alert-C6vEcK-g.js.map → shield-alert-DY6RAaC8.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shield-alert-
|
|
1
|
+
{"version":3,"file":"shield-alert-DY6RAaC8.js","sources":["../../../node_modules/lucide-react/dist/esm/icons/shield-alert.js"],"sourcesContent":["/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ShieldAlert = createLucideIcon(\"ShieldAlert\", [\n [\n \"path\",\n {\n d: \"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\",\n key: \"oel41y\"\n }\n ],\n [\"path\", { d: \"M12 8v4\", key: \"1got3b\" }],\n [\"path\", { d: \"M12 16h.01\", key: \"1drbdi\" }]\n]);\n\nexport { ShieldAlert as default };\n//# sourceMappingURL=shield-alert.js.map\n"],"names":["ShieldAlert","createLucideIcon"],"mappings":"uCAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASK,MAACA,EAAcC,EAAiB,cAAe,CAClD,CACE,OACA,CACE,EAAG,qKACH,IAAK,QACX,CACA,EACE,CAAC,OAAQ,CAAE,EAAG,UAAW,IAAK,QAAQ,CAAE,EACxC,CAAC,OAAQ,CAAE,EAAG,aAAc,IAAK,QAAQ,CAAE,CAC7C,CAAC","x_google_ignoreList":[0]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trash-2-
|
|
1
|
+
{"version":3,"file":"trash-2-Cv7U38jw.js","sources":["../../../node_modules/lucide-react/dist/esm/icons/trash-2.js"],"sourcesContent":["/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Trash2 = createLucideIcon(\"Trash2\", [\n [\"path\", { d: \"M3 6h18\", key: \"d0wm0j\" }],\n [\"path\", { d: \"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6\", key: \"4alrt4\" }],\n [\"path\", { d: \"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2\", key: \"v07s0e\" }],\n [\"line\", { x1: \"10\", x2: \"10\", y1: \"11\", y2: \"17\", key: \"1uufr5\" }],\n [\"line\", { x1: \"14\", x2: \"14\", y1: \"11\", y2: \"17\", key: \"xtxkd\" }]\n]);\n\nexport { Trash2 as default };\n//# sourceMappingURL=trash-2.js.map\n"],"names":["Trash2","createLucideIcon"],"mappings":"uCAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASK,MAACA,EAASC,EAAiB,SAAU,CACxC,CAAC,OAAQ,CAAE,EAAG,UAAW,IAAK,QAAQ,CAAE,EACxC,CAAC,OAAQ,CAAE,EAAG,wCAAyC,IAAK,QAAQ,CAAE,EACtE,CAAC,OAAQ,CAAE,EAAG,qCAAsC,IAAK,QAAQ,CAAE,EACnE,CAAC,OAAQ,CAAE,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,IAAK,QAAQ,CAAE,EAClE,CAAC,OAAQ,CAAE,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,IAAK,OAAO,CAAE,CACnE,CAAC","x_google_ignoreList":[0]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trending-up-
|
|
1
|
+
{"version":3,"file":"trending-up-CRPNagyX.js","sources":["../../../node_modules/lucide-react/dist/esm/icons/trending-up.js"],"sourcesContent":["/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst TrendingUp = createLucideIcon(\"TrendingUp\", [\n [\"polyline\", { points: \"22 7 13.5 15.5 8.5 10.5 2 17\", key: \"126l90\" }],\n [\"polyline\", { points: \"16 7 22 7 22 13\", key: \"kwv8wd\" }]\n]);\n\nexport { TrendingUp as default };\n//# sourceMappingURL=trending-up.js.map\n"],"names":["TrendingUp","createLucideIcon"],"mappings":"uCAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASK,MAACA,EAAaC,EAAiB,aAAc,CAChD,CAAC,WAAY,CAAE,OAAQ,+BAAgC,IAAK,QAAQ,CAAE,EACtE,CAAC,WAAY,CAAE,OAAQ,kBAAmB,IAAK,QAAQ,CAAE,CAC3D,CAAC","x_google_ignoreList":[0]}
|
package/bizar-dash/dist/assets/{triangle-alert-_2xe_tl4.js.map → triangle-alert-tUTXbcEP.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"triangle-alert-
|
|
1
|
+
{"version":3,"file":"triangle-alert-tUTXbcEP.js","sources":["../../../node_modules/lucide-react/dist/esm/icons/triangle-alert.js"],"sourcesContent":["/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst TriangleAlert = createLucideIcon(\"TriangleAlert\", [\n [\n \"path\",\n {\n d: \"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3\",\n key: \"wmoenq\"\n }\n ],\n [\"path\", { d: \"M12 9v4\", key: \"juzpu7\" }],\n [\"path\", { d: \"M12 17h.01\", key: \"p32p05\" }]\n]);\n\nexport { TriangleAlert as default };\n//# sourceMappingURL=triangle-alert.js.map\n"],"names":["TriangleAlert","createLucideIcon"],"mappings":"uCAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASK,MAACA,EAAgBC,EAAiB,gBAAiB,CACtD,CACE,OACA,CACE,EAAG,2EACH,IAAK,QACX,CACA,EACE,CAAC,OAAQ,CAAE,EAAG,UAAW,IAAK,QAAQ,CAAE,EACxC,CAAC,OAAQ,CAAE,EAAG,aAAc,IAAK,QAAQ,CAAE,CAC7C,CAAC","x_google_ignoreList":[0]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload-
|
|
1
|
+
{"version":3,"file":"upload-Cq7uTsrT.js","sources":["../../../node_modules/lucide-react/dist/esm/icons/upload.js"],"sourcesContent":["/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Upload = createLucideIcon(\"Upload\", [\n [\"path\", { d: \"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\", key: \"ih7n3h\" }],\n [\"polyline\", { points: \"17 8 12 3 7 8\", key: \"t8dd8p\" }],\n [\"line\", { x1: \"12\", x2: \"12\", y1: \"3\", y2: \"15\", key: \"widbto\" }]\n]);\n\nexport { Upload as default };\n//# sourceMappingURL=upload.js.map\n"],"names":["Upload","createLucideIcon"],"mappings":"uCAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASK,MAACA,EAASC,EAAiB,SAAU,CACxC,CAAC,OAAQ,CAAE,EAAG,4CAA6C,IAAK,QAAQ,CAAE,EAC1E,CAAC,WAAY,CAAE,OAAQ,gBAAiB,IAAK,QAAQ,CAAE,EACvD,CAAC,OAAQ,CAAE,GAAI,KAAM,GAAI,KAAM,GAAI,IAAK,GAAI,KAAM,IAAK,QAAQ,CAAE,CACnE,CAAC","x_google_ignoreList":[0]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zap-
|
|
1
|
+
{"version":3,"file":"zap-5lAQBAPX.js","sources":["../../../node_modules/lucide-react/dist/esm/icons/zap.js"],"sourcesContent":["/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Zap = createLucideIcon(\"Zap\", [\n [\n \"path\",\n {\n d: \"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z\",\n key: \"1xq2db\"\n }\n ]\n]);\n\nexport { Zap as default };\n//# sourceMappingURL=zap.js.map\n"],"names":["Zap","createLucideIcon"],"mappings":"uCAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASK,MAACA,EAAMC,EAAiB,MAAO,CAClC,CACE,OACA,CACE,EAAG,8JACH,IAAK,QACX,CACA,CACA,CAAC","x_google_ignoreList":[0]}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
10
10
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
11
11
|
<link rel="stylesheet" href="https://rsms.me/inter/inter.css" />
|
|
12
|
-
<script type="module" crossorigin src="/assets/main-
|
|
12
|
+
<script type="module" crossorigin src="/assets/main-Cxeu4LhG.js"></script>
|
|
13
13
|
<link rel="modulepreload" crossorigin href="/assets/cmdk-DVxytz9i.js">
|
|
14
14
|
<link rel="stylesheet" crossorigin href="/assets/main-CcQfRfIJ.css">
|
|
15
15
|
</head>
|
package/bizar-dash/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"4.1.10","results":[[":tests/views/Agents.test.tsx",{"duration":0,"failed":true}],[":src/web/v8/__tests__/data.test.tsx",{"duration":586.3947840000001,"failed":false}],[":tests/views/Tasks.test.tsx",{"duration":0,"failed":true}],[":tests/views/Memory.test.tsx",{"duration":0,"failed":true}],[":tests/eval-web-ui.test.tsx",{"duration":0,"failed":true}],[":tests/a11y.test.tsx",{"duration":0,"failed":true}],[":tests/autosave.test.tsx",{"duration":0,"failed":true}],[":tests/a11y/forms.test.tsx",{"duration":0,"failed":true}],[":tests/views/Overview.test.tsx",{"duration":0,"failed":true}],[":tests/mobile-layout.test.tsx",{"duration":0,"failed":true}],[":tests/mobile-overview.test.tsx",{"duration":0,"failed":true}],[":tests/mobile-tasks.test.tsx",{"duration":0,"failed":true}],[":src/web/v8/__tests__/kanban.test.tsx",{"duration":1151.2572570000002,"failed":false}],[":tests/BackgroundAgents.test.tsx",{"duration":0,"failed":true}],[":tests/components/settings-search.test.tsx",{"duration":0,"failed":true}],[":tests/lib/utils.test.ts",{"duration":0,"failed":true}],[":tests/mobile-settings.test.tsx",{"duration":0,"failed":true}],[":src/web/v8/__tests__/feedback.test.tsx",{"duration":1044.3514029999997,"failed":false}],[":src/web/v8/__tests__/views.test.tsx",{"duration":1607.8574739999995,"failed":false}],[":tests/chat-composer.test.tsx",{"duration":0,"failed":true}],[":tests/lib/search-fuzzy.test.ts",{"duration":0,"failed":true}],[":src/web/v8/__tests__/navigation.test.tsx",{"duration":693.3361759999998,"failed":false}],[":src/web/v8/views/CommandPalette/AppCommandPalette.test.tsx",{"duration":1149.199049,"failed":false}],[":tests/settings-mode-wiring.test.tsx",{"duration":0,"failed":true}],[":src/web/v8/__tests__/controls.test.tsx",{"duration":446.3511920000001,"failed":false}],[":tests/backup-restore.test.tsx",{"duration":0,"failed":true}],[":tests/settings-layout.test.tsx",{"duration":0,"failed":true}],[":tests/settings-nav.test.tsx",{"duration":0,"failed":true}],[":tests/ui/data/DataTable.test.tsx",{"duration":0,"failed":true}],[":tests/ui/feedback/Toast.test.tsx",{"duration":0,"failed":true}],[":src/web/v8/__tests__/settings.test.tsx",{"duration":274.92393100000004,"failed":false}],[":tests/ui/navigation/CommandPalette.test.tsx",{"duration":0,"failed":true}],[":tests/minimax-bar.test.tsx",{"duration":43.98596800000007,"failed":false}],[":tests/components/doctor-panel.test.tsx",{"duration":0,"failed":true}],[":tests/views/sidebar.test.tsx",{"duration":0,"failed":true}],[":src/web/v8/__tests__/goals.test.tsx",{"duration":280.140357,"failed":false}],[":src/web/v8/__tests__/theme.test.tsx",{"duration":47.475359000000026,"failed":false}],[":src/web/v8/__tests__/Sidebar.test.tsx",{"duration":440.1682390000001,"failed":false}],[":tests/views/topbar.test.tsx",{"duration":0,"failed":true}],[":tests/ui/layout/Tabs.test.tsx",{"duration":0,"failed":true}],[":src/web/v8/__tests__/App.test.tsx",{"duration":1301.662909,"failed":false}],[":tests/ui/feedback/Tooltip.test.tsx",{"duration":0,"failed":true}],[":src/web/v8/__tests__/SettingsView.test.tsx",{"duration":2394.6772579999997,"failed":false}],[":tests/components/Toast.test.tsx",{"duration":397.03008799999975,"failed":false}],[":src/web/v8/ui/theme/ThemeProvider.test.tsx",{"duration":42.39453800000001,"failed":false}],[":tests/voice-recorder.test.tsx",{"duration":0,"failed":true}],[":src/web/v8/__tests__/agents.test.tsx",{"duration":262.44836799999985,"failed":false}],[":tests/mobile-chat.test.tsx",{"duration":0,"failed":true}],[":src/web/v8/ui/navigation/useCommandPaletteHotkey.test.ts",{"duration":28.496348000000012,"failed":false}],[":tests/ui/data/StatTile.test.tsx",{"duration":0,"failed":true}],[":tests/ui/feedback/Dialog.test.tsx",{"duration":0,"failed":true}],[":tests/ui/layout/Sidebar.test.tsx",{"duration":0,"failed":true}],[":tests/goal-input.test.tsx",{"duration":0,"failed":true}],[":tests/goap-planner.test.ts",{"duration":0,"failed":true}],[":tests/components/Modal.test.tsx",{"duration":0,"failed":true}],[":tests/communication-log.test.tsx",{"duration":0,"failed":true}],[":tests/ui/feedback/ProgressBar.test.tsx",{"duration":0,"failed":true}],[":tests/memory-graph-view.test.tsx",{"duration":0,"failed":true}],[":tests/ui/data/KeyValueList.test.tsx",{"duration":0,"failed":true}],[":tests/ui/layout/Breadcrumbs.test.tsx",{"duration":0,"failed":true}],[":tests/hooks/useModal.test.tsx",{"duration":0,"failed":true}],[":tests/ui/navigation/NavLink.test.tsx",{"duration":0,"failed":true}],[":src/web/v8/__tests__/libraries.test.tsx",{"duration":254.991174,"failed":false}],[":tests/components/screenshot-ocr.test.tsx",{"duration":0,"failed":true}],[":src/web/v8/ui/theme/DensityProvider.test.tsx",{"duration":53.777198,"failed":false}],[":tests/ui/data/BarChart.test.tsx",{"duration":0,"failed":true}],[":tests/ui/controls/Textarea.test.tsx",{"duration":0,"failed":true}],[":src/web/v8/__tests__/memory.test.tsx",{"duration":291.06179499999985,"failed":false}],[":src/web/v8/__tests__/activity.test.tsx",{"duration":74.37246599999992,"failed":false}],[":tests/ui/controls/Select.test.tsx",{"duration":0,"failed":true}],[":tests/event-log.test.tsx",{"duration":0,"failed":true}],[":tests/components/workspace-selector.test.tsx",{"duration":0,"failed":true}],[":tests/ui/data/Sparkline.test.tsx",{"duration":0,"failed":true}],[":tests/ui/navigation/NavGroup.test.tsx",{"duration":0,"failed":true}],[":src/web/v8/__tests__/AppShell.test.tsx",{"duration":650.9449239999999,"failed":false}],[":tests/dep-graph.test.tsx",{"duration":0,"failed":true}],[":tests/ui/controls/RadioGroup.test.tsx",{"duration":0,"failed":true}],[":tests/quality-gates.test.tsx",{"duration":0,"failed":true}],[":tests/ui/controls/NumberInput.test.tsx",{"duration":0,"failed":true}],[":tests/ui/data/EmptyState.test.tsx",{"duration":0,"failed":true}],[":tests/ui/layout/Panel.test.tsx",{"duration":0,"failed":true}],[":tests/ui/layout/ViewHeader.test.tsx",{"duration":0,"failed":true}],[":tests/ui/controls/SearchInput.test.tsx",{"duration":0,"failed":true}],[":tests/ui/primitives/Box.test.tsx",{"duration":0,"failed":true}],[":tests/ui/controls/Button.test.tsx",{"duration":0,"failed":true}],[":tests/ui/layout/AppShell.test.tsx",{"duration":0,"failed":true}],[":tests/ui/data/ErrorState.test.tsx",{"duration":0,"failed":true}],[":tests/ui/controls/Slider.test.tsx",{"duration":0,"failed":true}],[":tests/ui/feedback/StatusDot.test.tsx",{"duration":0,"failed":true}],[":tests/hooks/useToast.test.tsx",{"duration":0,"failed":true}],[":tests/ui/layout/Topbar.test.tsx",{"duration":0,"failed":true}],[":tests/ui/data/LoadingState.test.tsx",{"duration":0,"failed":true}],[":tests/ui/controls/TextInput.test.tsx",{"duration":0,"failed":true}],[":tests/lib/i18n.test.ts",{"duration":0,"failed":true}],[":tests/ui/controls/Checkbox.test.tsx",{"duration":0,"failed":true}],[":tests/ui/feedback/Badge.test.tsx",{"duration":0,"failed":true}],[":tests/ui/primitives/Stack.test.tsx",{"duration":0,"failed":true}],[":tests/components/Button.test.tsx",{"duration":324.08648500000004,"failed":false}],[":tests/components/Card.test.tsx",{"duration":37.800531999999976,"failed":false}],[":tests/components/StatusBadge.test.tsx",{"duration":0,"failed":true}],[":tests/ui/controls/Toggle.test.tsx",{"duration":0,"failed":true}],[":tests/ui/primitives/Separator.test.tsx",{"duration":0,"failed":true}],[":tests/ui/primitives/Grid.test.tsx",{"duration":0,"failed":true}],[":tests/ui/controls/IconButton.test.tsx",{"duration":0,"failed":true}],[":tests/ui/primitives/Inline.test.tsx",{"duration":0,"failed":true}],[":tests/ui/layout/PanelHeader.test.tsx",{"duration":0,"failed":true}],[":tests/ui/controls/Kbd.test.tsx",{"duration":0,"failed":true}],[":tests/components/Spinner.test.tsx",{"duration":0,"failed":true}],[":tests/ui/primitives/VisuallyHidden.test.tsx",{"duration":32.45237999999995,"failed":false}],[":src/web/v8/__tests__/cx.test.ts",{"duration":10.11221999999998,"failed":false}],[":src/web/v8/__tests__/PageSkeleton.test.tsx",{"duration":74.25940100000003,"failed":false}],[":src/web/v8/__tests__/useFetch.test.ts",{"duration":141.01241000000005,"failed":false}],[":src/web/v8/__tests__/useWebSocket.test.ts",{"duration":21.502534000000082,"failed":false}],[":tests/components/Dialog.test.tsx",{"duration":383.814441,"failed":false}],[":src/web/v8/__tests__/control-plane.test.tsx",{"duration":880.9435540000002,"failed":false}],[":src/web/v8/__tests__/changelog.test.tsx",{"duration":677.997609,"failed":false}],[":src/web/v8/__tests__/Topbar.test.tsx",{"duration":131.19026700000018,"failed":false}],[":src/web/v8/__tests__/NotificationsPopover.test.tsx",{"duration":429.4604730000001,"failed":false}],[":src/web/v8/__tests__/MemoryView.test.tsx",{"duration":753.4185939999998,"failed":false}],[":src/web/v8/__tests__/SchedulesView.test.tsx",{"duration":758.795425,"failed":false}],[":src/web/v8/__tests__/BackgroundJobsView.test.tsx",{"duration":696.457173,"failed":false}],[":src/web/v8/__tests__/audit-fixes.test.tsx",{"duration":1628.3713790000002,"failed":false}],[":src/web/v8/__tests__/new-views.test.tsx",{"duration":1028.0903720000001,"failed":false}],[":src/web/v8/__tests__/chat-types.test.ts",{"duration":5.812193000000093,"failed":false}],[":src/web/v8/__tests__/chat-view.test.tsx",{"duration":496.26644399999986,"failed":false}],[":src/web/v8/__tests__/projects-view.test.tsx",{"duration":535.109978,"failed":false}],[":src/web/v8/__tests__/claude-sessions-view.test.tsx",{"duration":665.956979,"failed":false}],[":src/web/v8/__tests__/history-view.test.tsx",{"duration":265.09184200000004,"failed":false}],[":src/web/v8/__tests__/admin-view.test.tsx",{"duration":474.775756,"failed":false}],[":src/web/v8/__tests__/auth-view.test.tsx",{"duration":232.30784500000004,"failed":false}],[":src/web/v8/__tests__/env-vars-view.test.tsx",{"duration":538.159553,"failed":false}],[":src/web/v8/__tests__/config-view.test.tsx",{"duration":399.36821699999996,"failed":false}],[":src/web/v8/__tests__/dialogs-view.test.tsx",{"duration":285.67781200000013,"failed":false}],[":src/web/v8/__tests__/providers-view.test.tsx",{"duration":239.465643,"failed":false}],[":src/web/v8/__tests__/mods-view.test.tsx",{"duration":459.59976800000004,"failed":false}],[":src/web/v8/__tests__/update-view.test.tsx",{"duration":250.613973,"failed":false}],[":src/web/v8/__tests__/voice-view.test.tsx",{"duration":212.96863500000018,"failed":false}],[":src/web/v8/__tests__/clipboard-view.test.tsx",{"duration":394.448267,"failed":false}],[":src/web/v8/__tests__/lightrag-view.test.tsx",{"duration":224.97729400000003,"failed":false}],[":src/web/v8/__tests__/obsidian-view.test.tsx",{"duration":290.6994480000001,"failed":false}],[":src/web/v8/__tests__/misc-view.test.tsx",{"duration":198.39767099999995,"failed":false}],[":src/web/v8/__tests__/artifacts-view.test.tsx",{"duration":510.15416099999993,"failed":false}],[":src/web/v8/__tests__/agent-hierarchy.test.tsx",{"duration":342.39807599999995,"failed":false}],[":src/web/v8/__tests__/agent-card-metrics.test.tsx",{"duration":86.97448999999995,"failed":false}],[":src/web/v8/__tests__/_debug.test.tsx",{"duration":1094.799727,"failed":true}],[":src/web/v8/__tests__/agents-stuck-banner.test.tsx",{"duration":699.8038210000002,"failed":false}],[":src/web/v8/__tests__/agent-detail-tasks.test.tsx",{"duration":348.8442769999999,"failed":false}],[":src/web/v8/__tests__/overview-trends.test.tsx",{"duration":84.05831599999999,"failed":false}],[":src/web/v8/__tests__/goals-cc-roundtrip.test.tsx",{"duration":259.89879300000007,"failed":false}]]}
|
|
1
|
+
{"version":"4.1.10","results":[[":tests/views/Agents.test.tsx",{"duration":0,"failed":true}],[":src/web/v8/__tests__/data.test.tsx",{"duration":1069.4126780000001,"failed":false}],[":tests/views/Tasks.test.tsx",{"duration":0,"failed":true}],[":tests/views/Memory.test.tsx",{"duration":0,"failed":true}],[":tests/eval-web-ui.test.tsx",{"duration":0,"failed":true}],[":tests/a11y.test.tsx",{"duration":0,"failed":true}],[":tests/autosave.test.tsx",{"duration":0,"failed":true}],[":tests/a11y/forms.test.tsx",{"duration":0,"failed":true}],[":tests/views/Overview.test.tsx",{"duration":0,"failed":true}],[":tests/mobile-layout.test.tsx",{"duration":0,"failed":true}],[":tests/mobile-overview.test.tsx",{"duration":0,"failed":true}],[":tests/mobile-tasks.test.tsx",{"duration":0,"failed":true}],[":src/web/v8/__tests__/kanban.test.tsx",{"duration":2094.781481,"failed":false}],[":tests/BackgroundAgents.test.tsx",{"duration":0,"failed":true}],[":tests/components/settings-search.test.tsx",{"duration":0,"failed":true}],[":tests/lib/utils.test.ts",{"duration":0,"failed":true}],[":tests/mobile-settings.test.tsx",{"duration":0,"failed":true}],[":src/web/v8/__tests__/feedback.test.tsx",{"duration":1902.787523,"failed":false}],[":src/web/v8/__tests__/views.test.tsx",{"duration":2801.7251049999995,"failed":false}],[":tests/chat-composer.test.tsx",{"duration":0,"failed":true}],[":tests/lib/search-fuzzy.test.ts",{"duration":0,"failed":true}],[":src/web/v8/__tests__/navigation.test.tsx",{"duration":1239.413224,"failed":false}],[":src/web/v8/views/CommandPalette/AppCommandPalette.test.tsx",{"duration":2143.620259,"failed":false}],[":tests/settings-mode-wiring.test.tsx",{"duration":0,"failed":true}],[":src/web/v8/__tests__/controls.test.tsx",{"duration":1153.986723,"failed":false}],[":tests/backup-restore.test.tsx",{"duration":0,"failed":true}],[":tests/settings-layout.test.tsx",{"duration":0,"failed":true}],[":tests/settings-nav.test.tsx",{"duration":0,"failed":true}],[":tests/ui/data/DataTable.test.tsx",{"duration":0,"failed":true}],[":tests/ui/feedback/Toast.test.tsx",{"duration":0,"failed":true}],[":src/web/v8/__tests__/settings.test.tsx",{"duration":604.4224909999998,"failed":false}],[":tests/ui/navigation/CommandPalette.test.tsx",{"duration":0,"failed":true}],[":tests/minimax-bar.test.tsx",{"duration":72.58755899999983,"failed":false}],[":tests/components/doctor-panel.test.tsx",{"duration":0,"failed":true}],[":tests/views/sidebar.test.tsx",{"duration":0,"failed":true}],[":src/web/v8/__tests__/goals.test.tsx",{"duration":583.908214,"failed":false}],[":src/web/v8/__tests__/theme.test.tsx",{"duration":150.08991600000013,"failed":false}],[":src/web/v8/__tests__/Sidebar.test.tsx",{"duration":1330.7295159999999,"failed":false}],[":tests/views/topbar.test.tsx",{"duration":0,"failed":true}],[":tests/ui/layout/Tabs.test.tsx",{"duration":0,"failed":true}],[":src/web/v8/__tests__/App.test.tsx",{"duration":4561.364240999999,"failed":true}],[":tests/ui/feedback/Tooltip.test.tsx",{"duration":0,"failed":true}],[":src/web/v8/__tests__/SettingsView.test.tsx",{"duration":4416.574302,"failed":false}],[":tests/components/Toast.test.tsx",{"duration":773.8938169999997,"failed":false}],[":src/web/v8/ui/theme/ThemeProvider.test.tsx",{"duration":144.44495900000015,"failed":false}],[":tests/voice-recorder.test.tsx",{"duration":0,"failed":true}],[":src/web/v8/__tests__/agents.test.tsx",{"duration":508.89842999999973,"failed":false}],[":tests/mobile-chat.test.tsx",{"duration":0,"failed":true}],[":src/web/v8/ui/navigation/useCommandPaletteHotkey.test.ts",{"duration":40.77214600000002,"failed":false}],[":tests/ui/data/StatTile.test.tsx",{"duration":0,"failed":true}],[":tests/ui/feedback/Dialog.test.tsx",{"duration":0,"failed":true}],[":tests/ui/layout/Sidebar.test.tsx",{"duration":0,"failed":true}],[":tests/goal-input.test.tsx",{"duration":0,"failed":true}],[":tests/goap-planner.test.ts",{"duration":0,"failed":true}],[":tests/components/Modal.test.tsx",{"duration":0,"failed":true}],[":tests/communication-log.test.tsx",{"duration":0,"failed":true}],[":tests/ui/feedback/ProgressBar.test.tsx",{"duration":0,"failed":true}],[":tests/memory-graph-view.test.tsx",{"duration":0,"failed":true}],[":tests/ui/data/KeyValueList.test.tsx",{"duration":0,"failed":true}],[":tests/ui/layout/Breadcrumbs.test.tsx",{"duration":0,"failed":true}],[":tests/hooks/useModal.test.tsx",{"duration":0,"failed":true}],[":tests/ui/navigation/NavLink.test.tsx",{"duration":0,"failed":true}],[":src/web/v8/__tests__/libraries.test.tsx",{"duration":616.263101,"failed":false}],[":tests/components/screenshot-ocr.test.tsx",{"duration":0,"failed":true}],[":src/web/v8/ui/theme/DensityProvider.test.tsx",{"duration":74.80035999999996,"failed":false}],[":tests/ui/data/BarChart.test.tsx",{"duration":0,"failed":true}],[":tests/ui/controls/Textarea.test.tsx",{"duration":0,"failed":true}],[":src/web/v8/__tests__/memory.test.tsx",{"duration":437.48786100000007,"failed":false}],[":src/web/v8/__tests__/activity.test.tsx",{"duration":255.81120499999997,"failed":false}],[":tests/ui/controls/Select.test.tsx",{"duration":0,"failed":true}],[":tests/event-log.test.tsx",{"duration":0,"failed":true}],[":tests/components/workspace-selector.test.tsx",{"duration":0,"failed":true}],[":tests/ui/data/Sparkline.test.tsx",{"duration":0,"failed":true}],[":tests/ui/navigation/NavGroup.test.tsx",{"duration":0,"failed":true}],[":src/web/v8/__tests__/AppShell.test.tsx",{"duration":1402.78397,"failed":false}],[":tests/dep-graph.test.tsx",{"duration":0,"failed":true}],[":tests/ui/controls/RadioGroup.test.tsx",{"duration":0,"failed":true}],[":tests/quality-gates.test.tsx",{"duration":0,"failed":true}],[":tests/ui/controls/NumberInput.test.tsx",{"duration":0,"failed":true}],[":tests/ui/data/EmptyState.test.tsx",{"duration":0,"failed":true}],[":tests/ui/layout/Panel.test.tsx",{"duration":0,"failed":true}],[":tests/ui/layout/ViewHeader.test.tsx",{"duration":0,"failed":true}],[":tests/ui/controls/SearchInput.test.tsx",{"duration":0,"failed":true}],[":tests/ui/primitives/Box.test.tsx",{"duration":0,"failed":true}],[":tests/ui/controls/Button.test.tsx",{"duration":0,"failed":true}],[":tests/ui/layout/AppShell.test.tsx",{"duration":0,"failed":true}],[":tests/ui/data/ErrorState.test.tsx",{"duration":0,"failed":true}],[":tests/ui/controls/Slider.test.tsx",{"duration":0,"failed":true}],[":tests/ui/feedback/StatusDot.test.tsx",{"duration":0,"failed":true}],[":tests/hooks/useToast.test.tsx",{"duration":0,"failed":true}],[":tests/ui/layout/Topbar.test.tsx",{"duration":0,"failed":true}],[":tests/ui/data/LoadingState.test.tsx",{"duration":0,"failed":true}],[":tests/ui/controls/TextInput.test.tsx",{"duration":0,"failed":true}],[":tests/lib/i18n.test.ts",{"duration":0,"failed":true}],[":tests/ui/controls/Checkbox.test.tsx",{"duration":0,"failed":true}],[":tests/ui/feedback/Badge.test.tsx",{"duration":0,"failed":true}],[":tests/ui/primitives/Stack.test.tsx",{"duration":0,"failed":true}],[":tests/components/Button.test.tsx",{"duration":716.9471020000005,"failed":false}],[":tests/components/Card.test.tsx",{"duration":102.008374,"failed":false}],[":tests/components/StatusBadge.test.tsx",{"duration":0,"failed":true}],[":tests/ui/controls/Toggle.test.tsx",{"duration":0,"failed":true}],[":tests/ui/primitives/Separator.test.tsx",{"duration":0,"failed":true}],[":tests/ui/primitives/Grid.test.tsx",{"duration":0,"failed":true}],[":tests/ui/controls/IconButton.test.tsx",{"duration":0,"failed":true}],[":tests/ui/primitives/Inline.test.tsx",{"duration":0,"failed":true}],[":tests/ui/layout/PanelHeader.test.tsx",{"duration":0,"failed":true}],[":tests/ui/controls/Kbd.test.tsx",{"duration":0,"failed":true}],[":tests/components/Spinner.test.tsx",{"duration":0,"failed":true}],[":tests/ui/primitives/VisuallyHidden.test.tsx",{"duration":72.83180800000036,"failed":false}],[":src/web/v8/__tests__/cx.test.ts",{"duration":13.045886999999993,"failed":false}],[":src/web/v8/__tests__/PageSkeleton.test.tsx",{"duration":249.8022840000001,"failed":false}],[":src/web/v8/__tests__/useFetch.test.ts",{"duration":198.06161899999984,"failed":false}],[":src/web/v8/__tests__/useWebSocket.test.ts",{"duration":49.056260000000066,"failed":false}],[":tests/components/Dialog.test.tsx",{"duration":631.7408140000002,"failed":false}],[":src/web/v8/__tests__/control-plane.test.tsx",{"duration":1879.8391990000005,"failed":false}],[":src/web/v8/__tests__/changelog.test.tsx",{"duration":2071.3997769999996,"failed":true}],[":src/web/v8/__tests__/Topbar.test.tsx",{"duration":366.44297499999993,"failed":false}],[":src/web/v8/__tests__/NotificationsPopover.test.tsx",{"duration":832.8688509999997,"failed":false}],[":src/web/v8/__tests__/MemoryView.test.tsx",{"duration":1661.3879749999996,"failed":false}],[":src/web/v8/__tests__/SchedulesView.test.tsx",{"duration":1713.8426739999995,"failed":false}],[":src/web/v8/__tests__/BackgroundJobsView.test.tsx",{"duration":1497.7358789999994,"failed":false}],[":src/web/v8/__tests__/audit-fixes.test.tsx",{"duration":2765.021747999999,"failed":false}],[":src/web/v8/__tests__/new-views.test.tsx",{"duration":2885.066681,"failed":true}],[":src/web/v8/__tests__/chat-types.test.ts",{"duration":6.300498999999945,"failed":false}],[":src/web/v8/__tests__/chat-view.test.tsx",{"duration":781.1172539999998,"failed":false}],[":src/web/v8/__tests__/projects-view.test.tsx",{"duration":990.2306920000001,"failed":false}],[":src/web/v8/__tests__/claude-sessions-view.test.tsx",{"duration":1240.617349,"failed":false}],[":src/web/v8/__tests__/history-view.test.tsx",{"duration":464.7251550000001,"failed":false}],[":src/web/v8/__tests__/admin-view.test.tsx",{"duration":871.7101350000003,"failed":false}],[":src/web/v8/__tests__/auth-view.test.tsx",{"duration":487.1342199999999,"failed":false}],[":src/web/v8/__tests__/env-vars-view.test.tsx",{"duration":1135.995418,"failed":false}],[":src/web/v8/__tests__/config-view.test.tsx",{"duration":631.9487320000003,"failed":false}],[":src/web/v8/__tests__/dialogs-view.test.tsx",{"duration":597.4153740000002,"failed":false}],[":src/web/v8/__tests__/providers-view.test.tsx",{"duration":544.8824380000001,"failed":false}],[":src/web/v8/__tests__/mods-view.test.tsx",{"duration":1030.9307840000001,"failed":false}],[":src/web/v8/__tests__/update-view.test.tsx",{"duration":503.3900389999999,"failed":false}],[":src/web/v8/__tests__/voice-view.test.tsx",{"duration":551.9772950000001,"failed":false}],[":src/web/v8/__tests__/clipboard-view.test.tsx",{"duration":584.4868019999999,"failed":false}],[":src/web/v8/__tests__/lightrag-view.test.tsx",{"duration":636.3672799999999,"failed":false}],[":src/web/v8/__tests__/obsidian-view.test.tsx",{"duration":439.16762900000003,"failed":false}],[":src/web/v8/__tests__/misc-view.test.tsx",{"duration":370.5090879999998,"failed":false}],[":src/web/v8/__tests__/artifacts-view.test.tsx",{"duration":1782.791335,"failed":true}],[":src/web/v8/__tests__/agent-hierarchy.test.tsx",{"duration":673.7852400000002,"failed":false}],[":src/web/v8/__tests__/agent-card-metrics.test.tsx",{"duration":302.9642430000001,"failed":false}],[":src/web/v8/__tests__/_debug.test.tsx",{"duration":1094.799727,"failed":true}],[":src/web/v8/__tests__/agents-stuck-banner.test.tsx",{"duration":1432.620589,"failed":false}],[":src/web/v8/__tests__/agent-detail-tasks.test.tsx",{"duration":600.5352079999998,"failed":false}],[":src/web/v8/__tests__/overview-trends.test.tsx",{"duration":476.67796,"failed":false}],[":src/web/v8/__tests__/goals-cc-roundtrip.test.tsx",{"duration":534.5751959999998,"failed":false}]]}
|
|
@@ -78,6 +78,10 @@ import { createAuditRouter } from './routes/audit.mjs';
|
|
|
78
78
|
// Pillar D — Self-learning: GET /api/decisions returns decisions log + tamper status.
|
|
79
79
|
import { createDecisionsRouter } from './routes/decisions.mjs';
|
|
80
80
|
import { attachUserContext } from './auth.mjs';
|
|
81
|
+
// Sprint S10 — v8 dashboard live data. /api/goals parses .bizar/PROGRESS.md;
|
|
82
|
+
// /api/cc-agents exposes `claude agents --json` enriched with worktree + counts.
|
|
83
|
+
import { createGoalsRouter } from './routes/goals.mjs';
|
|
84
|
+
import { createCCAgentsRouter } from './routes/agents-cc.mjs';
|
|
81
85
|
|
|
82
86
|
/**
|
|
83
87
|
* @param {object} deps
|
|
@@ -182,7 +186,7 @@ export async function createApiRouter({
|
|
|
182
186
|
router.use(createPairRouter({ state, broadcast }));
|
|
183
187
|
// v6.4.0 — F-036 Goal Planner UI. Plain-English goal → A* plan.
|
|
184
188
|
router.use(createGoalPlannerRouter({ broadcast }));
|
|
185
|
-
|
|
189
|
+
// Sprint S10 — goals CRUD on .bizar/PROGRESS.md.
|
|
186
190
|
router.use(createGoalsRouter({ broadcast, projectRoot }));
|
|
187
191
|
// Pillar B — Self-auditing: harness score across 12 categories.
|
|
188
192
|
router.use(createAuditRouter({ projectRoot }));
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* src/server/routes/update.mjs
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* v10.3.0 — Dashboard update endpoints.
|
|
5
5
|
*
|
|
6
6
|
* GET /api/updates/status — installed package versions only
|
|
7
7
|
* GET /api/updates/check — installed + latest + hasUpdates
|
|
@@ -42,14 +42,15 @@ import { wrap } from './_shared.mjs';
|
|
|
42
42
|
|
|
43
43
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
44
44
|
|
|
45
|
-
//
|
|
45
|
+
// v10.3.0 — packages the dashboard knows how to update. Aligned with
|
|
46
46
|
// the Settings UI's "Installed / Latest" panels and the CLI's update
|
|
47
|
-
// flow.
|
|
48
|
-
//
|
|
47
|
+
// flow. The @polderlabs/bizar package bundles CLI + dashboard + plugin
|
|
48
|
+
// in one; the others are separate installable components.
|
|
49
49
|
const KNOWN_PACKAGES = [
|
|
50
|
-
{ id: 'bizar', npmName: '@polderlabs/bizar',
|
|
51
|
-
{ id: 'bizar-
|
|
52
|
-
{ id: '
|
|
50
|
+
{ id: 'bizar', npmName: '@polderlabs/bizar', label: 'Bizar CLI + Dashboard + Plugin' },
|
|
51
|
+
{ id: 'bizar-sdk', npmName: '@polderlabs/bizar-sdk', label: 'Bizar SDK (typed wrapper)' },
|
|
52
|
+
{ id: 'claude-agent', npmName: '@anthropic-ai/claude-agent-sdk', label: 'Claude Agent SDK (optional peer)' },
|
|
53
|
+
{ id: 'claude-code', npmName: '@anthropic-ai/claude-code', label: 'Claude Code CLI' },
|
|
53
54
|
];
|
|
54
55
|
|
|
55
56
|
const KNOWN_BY_ID = new Map(KNOWN_PACKAGES.map((p) => [p.id, p]));
|
|
@@ -126,6 +127,14 @@ export function resetUpdateCache() {
|
|
|
126
127
|
_latestCache.clear();
|
|
127
128
|
}
|
|
128
129
|
|
|
130
|
+
/**
|
|
131
|
+
* Reset the concurrency guard — exposed for tests so each case
|
|
132
|
+
* starts with a clean _activeRun state.
|
|
133
|
+
*/
|
|
134
|
+
export function resetConcurrencyGuard() {
|
|
135
|
+
_activeRun = null;
|
|
136
|
+
}
|
|
137
|
+
|
|
129
138
|
/**
|
|
130
139
|
* Compute the per-package installed map. For the dashboard package
|
|
131
140
|
* itself we use INSTALLED_BIZAR_VERSION (the @polderlabs/bizar version
|
|
@@ -135,13 +144,7 @@ export function resetUpdateCache() {
|
|
|
135
144
|
function currentVersions() {
|
|
136
145
|
const out = {};
|
|
137
146
|
for (const p of KNOWN_PACKAGES) {
|
|
138
|
-
|
|
139
|
-
out[p.id] = INSTALLED_BIZAR_VERSION;
|
|
140
|
-
} else {
|
|
141
|
-
// Deprecated standalone packages — fall back to running dashboard
|
|
142
|
-
// version as a sane default so the row isn't permanently "—".
|
|
143
|
-
out[p.id] = INSTALLED_BIZAR_VERSION;
|
|
144
|
-
}
|
|
147
|
+
out[p.id] = INSTALLED_BIZAR_VERSION;
|
|
145
148
|
}
|
|
146
149
|
return out;
|
|
147
150
|
}
|
|
@@ -150,9 +153,12 @@ function currentVersions() {
|
|
|
150
153
|
* Compute latest map and hasUpdates flag. Iterates KNOWN_PACKAGES so
|
|
151
154
|
* the UI gets a stable order and predictable keys even when one of the
|
|
152
155
|
* `npm view` calls fails (those resolve to null).
|
|
156
|
+
* @param {Record<string, string|null>} current
|
|
157
|
+
* @returns {{ latest: Record<string,string|null>, hasUpdates: boolean, available: Record<string,string|null> }}
|
|
153
158
|
*/
|
|
154
159
|
function latestVersionsAndFlag(current) {
|
|
155
160
|
const latest = {};
|
|
161
|
+
const available = { stable: null, beta: null };
|
|
156
162
|
let hasUpdates = false;
|
|
157
163
|
for (const p of KNOWN_PACKAGES) {
|
|
158
164
|
const lat = fetchLatestVersion(p.npmName);
|
|
@@ -160,7 +166,22 @@ function latestVersionsAndFlag(current) {
|
|
|
160
166
|
const cur = current[p.id];
|
|
161
167
|
if (cur && lat && cur !== lat) hasUpdates = true;
|
|
162
168
|
}
|
|
163
|
-
|
|
169
|
+
// For the primary bizar package, also fetch beta dist-tag
|
|
170
|
+
const bizarPkg = KNOWN_BY_ID.get('bizar');
|
|
171
|
+
if (bizarPkg) {
|
|
172
|
+
available.stable = fetchLatestVersion(bizarPkg.npmName);
|
|
173
|
+
try {
|
|
174
|
+
const betaVer = execFileSync(
|
|
175
|
+
'npm',
|
|
176
|
+
['view', bizarPkg.npmName, 'dist-tags', 'beta'],
|
|
177
|
+
{ stdio: ['ignore', 'pipe', 'ignore'], timeout: 15000 },
|
|
178
|
+
).toString().trim();
|
|
179
|
+
available.beta = betaVer || null;
|
|
180
|
+
} catch {
|
|
181
|
+
available.beta = null;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
return { latest, hasUpdates, available };
|
|
164
185
|
}
|
|
165
186
|
|
|
166
187
|
// ─── Apply concurrency guard ───────────────────────────────────────────────
|
|
@@ -298,17 +319,19 @@ export function createUpdateRouter({ broadcast = () => {} } = {}) {
|
|
|
298
319
|
*/
|
|
299
320
|
router.get('/updates/status', wrap(async (_req, res) => {
|
|
300
321
|
const current = currentVersions();
|
|
301
|
-
res.json({ current });
|
|
322
|
+
res.json({ installed: current });
|
|
302
323
|
}));
|
|
303
324
|
|
|
304
325
|
/**
|
|
305
326
|
* GET /api/updates/check
|
|
306
|
-
*
|
|
327
|
+
* GET /api/updates/check?channel=stable|beta
|
|
328
|
+
* Installed + latest + hasUpdates + available per channel. Calls `npm view` (cached).
|
|
307
329
|
*/
|
|
308
|
-
router.get('/updates/check', wrap(async (
|
|
330
|
+
router.get('/updates/check', wrap(async (req, res) => {
|
|
331
|
+
const channel = req.query.channel === 'beta' ? 'beta' : 'stable';
|
|
309
332
|
const current = currentVersions();
|
|
310
|
-
const { latest, hasUpdates } = latestVersionsAndFlag(current);
|
|
311
|
-
res.json({ current,
|
|
333
|
+
const { latest, hasUpdates, available } = latestVersionsAndFlag(current);
|
|
334
|
+
res.json({ installed: current, available, hasUpdates, channel });
|
|
312
335
|
}));
|
|
313
336
|
|
|
314
337
|
/**
|
|
@@ -319,7 +342,11 @@ export function createUpdateRouter({ broadcast = () => {} } = {}) {
|
|
|
319
342
|
*/
|
|
320
343
|
router.post('/updates/apply', wrap(async (req, res) => {
|
|
321
344
|
if (isRunning()) {
|
|
322
|
-
res.status(409).json({
|
|
345
|
+
res.status(409).json({
|
|
346
|
+
error: 'already_running',
|
|
347
|
+
message: 'an update is already running',
|
|
348
|
+
runningSince: _activeRun ? new Date(_activeRun.startedAt).toISOString() : null,
|
|
349
|
+
});
|
|
323
350
|
return;
|
|
324
351
|
}
|
|
325
352
|
const body = req.body || {};
|