@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.
Files changed (235) hide show
  1. package/README.md +31 -8
  2. package/bizar-dash/CONTROL_SURFACES.md +0 -1
  3. package/bizar-dash/dist/assets/{ActivityFeed-JjmOY2AQ.js → ActivityFeed-DtRtg-JN.js} +1 -1
  4. package/bizar-dash/dist/assets/{ActivityFeed-JjmOY2AQ.js.map → ActivityFeed-DtRtg-JN.js.map} +1 -1
  5. package/bizar-dash/dist/assets/{ActivityView-BIIMvGWo.js → ActivityView-CoTXDyU_.js} +1 -1
  6. package/bizar-dash/dist/assets/{ActivityView-BIIMvGWo.js.map → ActivityView-CoTXDyU_.js.map} +1 -1
  7. package/bizar-dash/dist/assets/{AdminView-DRidJtkq.js → AdminView-DNc5Ll7L.js} +1 -1
  8. package/bizar-dash/dist/assets/{AdminView-DRidJtkq.js.map → AdminView-DNc5Ll7L.js.map} +1 -1
  9. package/bizar-dash/dist/assets/{AgentActivity-79l4SBMC.js → AgentActivity-CrX7LmQ6.js} +1 -1
  10. package/bizar-dash/dist/assets/{AgentActivity-79l4SBMC.js.map → AgentActivity-CrX7LmQ6.js.map} +1 -1
  11. package/bizar-dash/dist/assets/{AgentsView-0vT4uPSc.js → AgentsView-Du-G_skK.js} +3 -3
  12. package/bizar-dash/dist/assets/{AgentsView-0vT4uPSc.js.map → AgentsView-Du-G_skK.js.map} +1 -1
  13. package/bizar-dash/dist/assets/{Alert-CG5q_s75.js → Alert-B6DjfRFI.js} +1 -1
  14. package/bizar-dash/dist/assets/{Alert-CG5q_s75.js.map → Alert-B6DjfRFI.js.map} +1 -1
  15. package/bizar-dash/dist/assets/{ArtifactsView-DM8ZmpR9.js → ArtifactsView-znhN8GTR.js} +1 -1
  16. package/bizar-dash/dist/assets/{ArtifactsView-DM8ZmpR9.js.map → ArtifactsView-znhN8GTR.js.map} +1 -1
  17. package/bizar-dash/dist/assets/{AuthView-BveN94MC.js → AuthView-Rk8eKUPr.js} +1 -1
  18. package/bizar-dash/dist/assets/{AuthView-BveN94MC.js.map → AuthView-Rk8eKUPr.js.map} +1 -1
  19. package/bizar-dash/dist/assets/{Avatar-ulUPIYTd.js → Avatar-B41upSD1.js} +1 -1
  20. package/bizar-dash/dist/assets/{Avatar-ulUPIYTd.js.map → Avatar-B41upSD1.js.map} +1 -1
  21. package/bizar-dash/dist/assets/{BackgroundJobsView-BWErhqFo.js → BackgroundJobsView-BLWuN9qz.js} +1 -1
  22. package/bizar-dash/dist/assets/{BackgroundJobsView-BWErhqFo.js.map → BackgroundJobsView-BLWuN9qz.js.map} +1 -1
  23. package/bizar-dash/dist/assets/{BackupView-CnBjzG9N.js → BackupView-CqbtcnuQ.js} +1 -1
  24. package/bizar-dash/dist/assets/{BackupView-CnBjzG9N.js.map → BackupView-CqbtcnuQ.js.map} +1 -1
  25. package/bizar-dash/dist/assets/{Card-B0imhxMk.js → Card-rF59wHiO.js} +1 -1
  26. package/bizar-dash/dist/assets/{Card-B0imhxMk.js.map → Card-rF59wHiO.js.map} +1 -1
  27. package/bizar-dash/dist/assets/{ChatView-D6zGytzx.js → ChatView-CUriVEgU.js} +1 -1
  28. package/bizar-dash/dist/assets/{ChatView-D6zGytzx.js.map → ChatView-CUriVEgU.js.map} +1 -1
  29. package/bizar-dash/dist/assets/{Chip-wwZSGwLE.js → Chip-Dc2KmeWl.js} +1 -1
  30. package/bizar-dash/dist/assets/{Chip-wwZSGwLE.js.map → Chip-Dc2KmeWl.js.map} +1 -1
  31. package/bizar-dash/dist/assets/{ClaudeSessionsView-DK1sOLhi.js → ClaudeSessionsView-CiaHQdDZ.js} +1 -1
  32. package/bizar-dash/dist/assets/{ClaudeSessionsView-DK1sOLhi.js.map → ClaudeSessionsView-CiaHQdDZ.js.map} +1 -1
  33. package/bizar-dash/dist/assets/{ClipboardView-CZ2lYPr0.js → ClipboardView-DdP6aVso.js} +1 -1
  34. package/bizar-dash/dist/assets/{ClipboardView-CZ2lYPr0.js.map → ClipboardView-DdP6aVso.js.map} +1 -1
  35. package/bizar-dash/dist/assets/{ConfigView-D-zT9eNA.js → ConfigView-B2ysnTZU.js} +1 -1
  36. package/bizar-dash/dist/assets/{ConfigView-D-zT9eNA.js.map → ConfigView-B2ysnTZU.js.map} +1 -1
  37. package/bizar-dash/dist/assets/{DiagnosticsView-BocV68Lb.js → DiagnosticsView-88OZ5k0f.js} +1 -1
  38. package/bizar-dash/dist/assets/{DiagnosticsView-BocV68Lb.js.map → DiagnosticsView-88OZ5k0f.js.map} +1 -1
  39. package/bizar-dash/dist/assets/{DialogsView-BVjPI5x7.js → DialogsView-BcqDDCZQ.js} +1 -1
  40. package/bizar-dash/dist/assets/{DialogsView-BVjPI5x7.js.map → DialogsView-BcqDDCZQ.js.map} +1 -1
  41. package/bizar-dash/dist/assets/{DoctorView-84gJcZwM.js → DoctorView-BQwqvMAh.js} +1 -1
  42. package/bizar-dash/dist/assets/{DoctorView-84gJcZwM.js.map → DoctorView-BQwqvMAh.js.map} +1 -1
  43. package/bizar-dash/dist/assets/{EmptyState-BjgVOrcO.js → EmptyState-D65J5FQN.js} +1 -1
  44. package/bizar-dash/dist/assets/{EmptyState-BjgVOrcO.js.map → EmptyState-D65J5FQN.js.map} +1 -1
  45. package/bizar-dash/dist/assets/{EnvVarsView-BJ2TEzF7.js → EnvVarsView-DX-3oGH-.js} +2 -2
  46. package/bizar-dash/dist/assets/{EnvVarsView-BJ2TEzF7.js.map → EnvVarsView-DX-3oGH-.js.map} +1 -1
  47. package/bizar-dash/dist/assets/{ErrorState-BE3WBFqF.js → ErrorState-DULZnttJ.js} +1 -1
  48. package/bizar-dash/dist/assets/{ErrorState-BE3WBFqF.js.map → ErrorState-DULZnttJ.js.map} +1 -1
  49. package/bizar-dash/dist/assets/{EvalView-BJJ2P-kK.js → EvalView-CpdFu_ID.js} +1 -1
  50. package/bizar-dash/dist/assets/{EvalView-BJJ2P-kK.js.map → EvalView-CpdFu_ID.js.map} +1 -1
  51. package/bizar-dash/dist/assets/{GoalsView-pwROHApi.js → GoalsView-Br8oPPfb.js} +1 -1
  52. package/bizar-dash/dist/assets/{GoalsView-pwROHApi.js.map → GoalsView-Br8oPPfb.js.map} +1 -1
  53. package/bizar-dash/dist/assets/{Grid-qcvbhx6e.js → Grid-BSXhsCPC.js} +1 -1
  54. package/bizar-dash/dist/assets/{Grid-qcvbhx6e.js.map → Grid-BSXhsCPC.js.map} +1 -1
  55. package/bizar-dash/dist/assets/{HistoryView-C7SSOLJA.js → HistoryView-D0J3aoZF.js} +1 -1
  56. package/bizar-dash/dist/assets/{HistoryView-C7SSOLJA.js.map → HistoryView-D0J3aoZF.js.map} +1 -1
  57. package/bizar-dash/dist/assets/{Input-Bgzxf_Hu.js → Input-CZmRw5QX.js} +1 -1
  58. package/bizar-dash/dist/assets/{Input-Bgzxf_Hu.js.map → Input-CZmRw5QX.js.map} +1 -1
  59. package/bizar-dash/dist/assets/{LibrariesView-CbFFksox.js → LibrariesView-B1YX9wzp.js} +1 -1
  60. package/bizar-dash/dist/assets/{LibrariesView-CbFFksox.js.map → LibrariesView-B1YX9wzp.js.map} +1 -1
  61. package/bizar-dash/dist/assets/{LightRAGView-BqDrJbRq.js → LightRAGView-CykR0t9y.js} +1 -1
  62. package/bizar-dash/dist/assets/{LightRAGView-BqDrJbRq.js.map → LightRAGView-CykR0t9y.js.map} +1 -1
  63. package/bizar-dash/dist/assets/{ListHeader-TjPJrUfY.js → ListHeader-Dpun-r36.js} +1 -1
  64. package/bizar-dash/dist/assets/{ListHeader-TjPJrUfY.js.map → ListHeader-Dpun-r36.js.map} +1 -1
  65. package/bizar-dash/dist/assets/{MemoryView-BlTeHLhX.js → MemoryView-BbER5ZKt.js} +1 -1
  66. package/bizar-dash/dist/assets/{MemoryView-BlTeHLhX.js.map → MemoryView-BbER5ZKt.js.map} +1 -1
  67. package/bizar-dash/dist/assets/MiscView-DLNEGdML.js +1 -0
  68. package/bizar-dash/dist/assets/{MiscView-B8QY82Pm.js.map → MiscView-DLNEGdML.js.map} +1 -1
  69. package/bizar-dash/dist/assets/{ModsView-CvW1OWts.js → ModsView-P7gDeNHM.js} +2 -2
  70. package/bizar-dash/dist/assets/{ModsView-CvW1OWts.js.map → ModsView-P7gDeNHM.js.map} +1 -1
  71. package/bizar-dash/dist/assets/{NotificationsView-CsBt5U7x.js → NotificationsView-DAm2O0yf.js} +1 -1
  72. package/bizar-dash/dist/assets/{NotificationsView-CsBt5U7x.js.map → NotificationsView-DAm2O0yf.js.map} +1 -1
  73. package/bizar-dash/dist/assets/ObsidianView-Ci80gnwS.js +1 -0
  74. package/bizar-dash/dist/assets/{ObsidianView-BCTejEj2.js.map → ObsidianView-Ci80gnwS.js.map} +1 -1
  75. package/bizar-dash/dist/assets/{OverviewView-BsuPxwnB.js → OverviewView-rriw1GjA.js} +1 -1
  76. package/bizar-dash/dist/assets/{OverviewView-BsuPxwnB.js.map → OverviewView-rriw1GjA.js.map} +1 -1
  77. package/bizar-dash/dist/assets/{ProgressBar-DlZTETEn.js → ProgressBar-BahmeJhP.js} +1 -1
  78. package/bizar-dash/dist/assets/{ProgressBar-DlZTETEn.js.map → ProgressBar-BahmeJhP.js.map} +1 -1
  79. package/bizar-dash/dist/assets/{ProjectsView-Soxtmpet.js → ProjectsView-ChzM12bs.js} +1 -1
  80. package/bizar-dash/dist/assets/{ProjectsView-Soxtmpet.js.map → ProjectsView-ChzM12bs.js.map} +1 -1
  81. package/bizar-dash/dist/assets/{ProvidersView-DaCEV9pM.js → ProvidersView-BftGn8Cr.js} +1 -1
  82. package/bizar-dash/dist/assets/{ProvidersView-DaCEV9pM.js.map → ProvidersView-BftGn8Cr.js.map} +1 -1
  83. package/bizar-dash/dist/assets/{SchedulesView-DY2ByBj_.js → SchedulesView-CtNxtzN6.js} +1 -1
  84. package/bizar-dash/dist/assets/{SchedulesView-DY2ByBj_.js.map → SchedulesView-CtNxtzN6.js.map} +1 -1
  85. package/bizar-dash/dist/assets/{Select-Dbd88_n8.js → Select-0VcfTDeL.js} +1 -1
  86. package/bizar-dash/dist/assets/{Select-Dbd88_n8.js.map → Select-0VcfTDeL.js.map} +1 -1
  87. package/bizar-dash/dist/assets/{SettingsRow-CLMNd434.js → SettingsRow-BLic3DQl.js} +1 -1
  88. package/bizar-dash/dist/assets/{SettingsRow-CLMNd434.js.map → SettingsRow-BLic3DQl.js.map} +1 -1
  89. package/bizar-dash/dist/assets/{SettingsView-b24oFq9x.js → SettingsView-BjS3i4nr.js} +1 -1
  90. package/bizar-dash/dist/assets/{SettingsView-b24oFq9x.js.map → SettingsView-BjS3i4nr.js.map} +1 -1
  91. package/bizar-dash/dist/assets/{Sheet-DnDid58j.js → Sheet-BOProMs2.js} +1 -1
  92. package/bizar-dash/dist/assets/{Sheet-DnDid58j.js.map → Sheet-BOProMs2.js.map} +1 -1
  93. package/bizar-dash/dist/assets/{Slider-BJCvKI1I.js → Slider-B0eLEEUt.js} +1 -1
  94. package/bizar-dash/dist/assets/{Slider-BJCvKI1I.js.map → Slider-B0eLEEUt.js.map} +1 -1
  95. package/bizar-dash/dist/assets/{Sparkline-ktqQLdyb.js → Sparkline-SSrdgyW0.js} +1 -1
  96. package/bizar-dash/dist/assets/{Sparkline-ktqQLdyb.js.map → Sparkline-SSrdgyW0.js.map} +1 -1
  97. package/bizar-dash/dist/assets/{Switch-CwXfsDii.js → Switch-B3EQzb_q.js} +1 -1
  98. package/bizar-dash/dist/assets/{Switch-CwXfsDii.js.map → Switch-B3EQzb_q.js.map} +1 -1
  99. package/bizar-dash/dist/assets/{TasksView-BHmpzFCf.js → TasksView-SWjF_ZUQ.js} +1 -1
  100. package/bizar-dash/dist/assets/{TasksView-BHmpzFCf.js.map → TasksView-SWjF_ZUQ.js.map} +1 -1
  101. package/bizar-dash/dist/assets/{Textarea-BzIAwSlp.js → Textarea-QuofpMlq.js} +1 -1
  102. package/bizar-dash/dist/assets/{Textarea-BzIAwSlp.js.map → Textarea-QuofpMlq.js.map} +1 -1
  103. package/bizar-dash/dist/assets/{UpdateView-CSmX9NN0.js → UpdateView-CEHW2nd6.js} +1 -1
  104. package/bizar-dash/dist/assets/{UpdateView-CSmX9NN0.js.map → UpdateView-CEHW2nd6.js.map} +1 -1
  105. package/bizar-dash/dist/assets/{UsageView-COyr_Gfi.js → UsageView-BqOw6FBg.js} +1 -1
  106. package/bizar-dash/dist/assets/{UsageView-COyr_Gfi.js.map → UsageView-BqOw6FBg.js.map} +1 -1
  107. package/bizar-dash/dist/assets/{ViewHeader-BzYZ3m-e.js → ViewHeader-B6P-C4GD.js} +1 -1
  108. package/bizar-dash/dist/assets/{ViewHeader-BzYZ3m-e.js.map → ViewHeader-B6P-C4GD.js.map} +1 -1
  109. package/bizar-dash/dist/assets/{VoiceView-D33_xG5t.js → VoiceView-CwrPwWgi.js} +1 -1
  110. package/bizar-dash/dist/assets/{VoiceView-D33_xG5t.js.map → VoiceView-CwrPwWgi.js.map} +1 -1
  111. package/bizar-dash/dist/assets/{brain-CM-Vls8r.js → brain-CwZt9Kta.js} +1 -1
  112. package/bizar-dash/dist/assets/{brain-CM-Vls8r.js.map → brain-CwZt9Kta.js.map} +1 -1
  113. package/bizar-dash/dist/assets/{calendar-C0lgZk69.js → calendar-C5oK0_nM.js} +1 -1
  114. package/bizar-dash/dist/assets/{calendar-C0lgZk69.js.map → calendar-C5oK0_nM.js.map} +1 -1
  115. package/bizar-dash/dist/assets/{circle-Bx_hQEBC.js → circle-D1Lc_P2a.js} +1 -1
  116. package/bizar-dash/dist/assets/{circle-Bx_hQEBC.js.map → circle-D1Lc_P2a.js.map} +1 -1
  117. package/bizar-dash/dist/assets/{circle-alert-DHvsqpw5.js → circle-alert-HdHe7m8K.js} +1 -1
  118. package/bizar-dash/dist/assets/{circle-alert-DHvsqpw5.js.map → circle-alert-HdHe7m8K.js.map} +1 -1
  119. package/bizar-dash/dist/assets/{circle-check-Bx8wmXR9.js → circle-check-Cs-xoV7R.js} +1 -1
  120. package/bizar-dash/dist/assets/{circle-check-Bx8wmXR9.js.map → circle-check-Cs-xoV7R.js.map} +1 -1
  121. package/bizar-dash/dist/assets/{clock-CejGoecX.js → clock-DEIuPV60.js} +1 -1
  122. package/bizar-dash/dist/assets/{clock-CejGoecX.js.map → clock-DEIuPV60.js.map} +1 -1
  123. package/bizar-dash/dist/assets/{download-4cEUWue1.js → download-Clkq90Ct.js} +1 -1
  124. package/bizar-dash/dist/assets/{download-4cEUWue1.js.map → download-Clkq90Ct.js.map} +1 -1
  125. package/bizar-dash/dist/assets/{external-link-0NqUhI4i.js → external-link-D5tq2o_I.js} +1 -1
  126. package/bizar-dash/dist/assets/{external-link-0NqUhI4i.js.map → external-link-D5tq2o_I.js.map} +1 -1
  127. package/bizar-dash/dist/assets/{file-text-yEMkrSoZ.js → file-text-CQ12t7Oc.js} +1 -1
  128. package/bizar-dash/dist/assets/{file-text-yEMkrSoZ.js.map → file-text-CQ12t7Oc.js.map} +1 -1
  129. package/bizar-dash/dist/assets/{filter-BXt60zAS.js → filter-BcbE37wP.js} +1 -1
  130. package/bizar-dash/dist/assets/{filter-BXt60zAS.js.map → filter-BcbE37wP.js.map} +1 -1
  131. package/bizar-dash/dist/assets/{git-pull-request-BjG5lNtR.js → git-pull-request-D1qNDRia.js} +1 -1
  132. package/bizar-dash/dist/assets/{git-pull-request-BjG5lNtR.js.map → git-pull-request-D1qNDRia.js.map} +1 -1
  133. package/bizar-dash/dist/assets/{main-CokHAXWM.js → main-Cxeu4LhG.js} +28 -33
  134. package/bizar-dash/dist/assets/main-Cxeu4LhG.js.map +1 -0
  135. package/bizar-dash/dist/assets/network-DJdvVaHx.js +6 -0
  136. package/bizar-dash/dist/assets/network-DJdvVaHx.js.map +1 -0
  137. package/bizar-dash/dist/assets/{pause-CAmulU0F.js → pause-DUn9L5PB.js} +1 -1
  138. package/bizar-dash/dist/assets/{pause-CAmulU0F.js.map → pause-DUn9L5PB.js.map} +1 -1
  139. package/bizar-dash/dist/assets/{pencil-eq5IqBmU.js → pencil-DVrBlYV3.js} +1 -1
  140. package/bizar-dash/dist/assets/{pencil-eq5IqBmU.js.map → pencil-DVrBlYV3.js.map} +1 -1
  141. package/bizar-dash/dist/assets/{play-BoLrrcBA.js → play-CZjsr3XM.js} +1 -1
  142. package/bizar-dash/dist/assets/{play-BoLrrcBA.js.map → play-CZjsr3XM.js.map} +1 -1
  143. package/bizar-dash/dist/assets/{plug-DBrVM9lK.js → plug-BKuyIe5W.js} +1 -1
  144. package/bizar-dash/dist/assets/{plug-DBrVM9lK.js.map → plug-BKuyIe5W.js.map} +1 -1
  145. package/bizar-dash/dist/assets/{plus-DENm0hqV.js → plus-77h62zZm.js} +1 -1
  146. package/bizar-dash/dist/assets/{plus-DENm0hqV.js.map → plus-77h62zZm.js.map} +1 -1
  147. package/bizar-dash/dist/assets/{power-DLjXF7zE.js → power-DLmx-gCP.js} +1 -1
  148. package/bizar-dash/dist/assets/{power-DLjXF7zE.js.map → power-DLmx-gCP.js.map} +1 -1
  149. package/bizar-dash/dist/assets/{power-off-D47cOnG_.js → power-off-BFKzHXic.js} +1 -1
  150. package/bizar-dash/dist/assets/{power-off-D47cOnG_.js.map → power-off-BFKzHXic.js.map} +1 -1
  151. package/bizar-dash/dist/assets/{refresh-ccw-DNrXX9gB.js → refresh-ccw-DenGBOcq.js} +1 -1
  152. package/bizar-dash/dist/assets/{refresh-ccw-DNrXX9gB.js.map → refresh-ccw-DenGBOcq.js.map} +1 -1
  153. package/bizar-dash/dist/assets/{refresh-cw-CoAHDpeS.js → refresh-cw-ENBVR8hW.js} +1 -1
  154. package/bizar-dash/dist/assets/{refresh-cw-CoAHDpeS.js.map → refresh-cw-ENBVR8hW.js.map} +1 -1
  155. package/bizar-dash/dist/assets/{rotate-ccw-ObX5awaG.js → rotate-ccw-MxryaY7q.js} +1 -1
  156. package/bizar-dash/dist/assets/{rotate-ccw-ObX5awaG.js.map → rotate-ccw-MxryaY7q.js.map} +1 -1
  157. package/bizar-dash/dist/assets/{rotate-cw-xpPJw9LP.js → rotate-cw-CDOlRtUR.js} +1 -1
  158. package/bizar-dash/dist/assets/{rotate-cw-xpPJw9LP.js.map → rotate-cw-CDOlRtUR.js.map} +1 -1
  159. package/bizar-dash/dist/assets/{save-D1iKiJJl.js → save-Db1b-1Uq.js} +1 -1
  160. package/bizar-dash/dist/assets/{save-D1iKiJJl.js.map → save-Db1b-1Uq.js.map} +1 -1
  161. package/bizar-dash/dist/assets/{send-BRcAhZUm.js → send-yz6HFZM5.js} +1 -1
  162. package/bizar-dash/dist/assets/{send-BRcAhZUm.js.map → send-yz6HFZM5.js.map} +1 -1
  163. package/bizar-dash/dist/assets/{shield-alert-C6vEcK-g.js → shield-alert-DY6RAaC8.js} +1 -1
  164. package/bizar-dash/dist/assets/{shield-alert-C6vEcK-g.js.map → shield-alert-DY6RAaC8.js.map} +1 -1
  165. package/bizar-dash/dist/assets/{trash-2-DZDjEnNh.js → trash-2-Cv7U38jw.js} +1 -1
  166. package/bizar-dash/dist/assets/{trash-2-DZDjEnNh.js.map → trash-2-Cv7U38jw.js.map} +1 -1
  167. package/bizar-dash/dist/assets/{trending-up-DMj-AJVf.js → trending-up-CRPNagyX.js} +1 -1
  168. package/bizar-dash/dist/assets/{trending-up-DMj-AJVf.js.map → trending-up-CRPNagyX.js.map} +1 -1
  169. package/bizar-dash/dist/assets/{triangle-alert-_2xe_tl4.js → triangle-alert-tUTXbcEP.js} +1 -1
  170. package/bizar-dash/dist/assets/{triangle-alert-_2xe_tl4.js.map → triangle-alert-tUTXbcEP.js.map} +1 -1
  171. package/bizar-dash/dist/assets/{upload-DdDljAeV.js → upload-Cq7uTsrT.js} +1 -1
  172. package/bizar-dash/dist/assets/{upload-DdDljAeV.js.map → upload-Cq7uTsrT.js.map} +1 -1
  173. package/bizar-dash/dist/assets/{zap-mHsgh0FP.js → zap-5lAQBAPX.js} +1 -1
  174. package/bizar-dash/dist/assets/{zap-mHsgh0FP.js.map → zap-5lAQBAPX.js.map} +1 -1
  175. package/bizar-dash/dist/index.html +1 -1
  176. package/bizar-dash/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
  177. package/bizar-dash/src/server/api.mjs +5 -1
  178. package/bizar-dash/src/server/routes/update.mjs +48 -21
  179. package/bizar-dash/src/web/v8/App.tsx +0 -4
  180. package/bizar-dash/src/web/v8/__tests__/new-views.test.tsx +0 -17
  181. package/bizar-dash/src/web/v8/shell/Sidebar.tsx +3 -4
  182. package/bizar-dash/src/web/v8/views/Router.tsx +0 -5
  183. package/bizar-dash/tests/_update-test-helpers.mjs +13 -0
  184. package/bizar-dash/tests/update-check.test.mjs +18 -13
  185. package/bizar-dash/tests/update-packages.test.mjs +154 -0
  186. package/bizar-dash/tests/update-run.test.mjs +17 -80
  187. package/cli/banner.mjs +1 -1
  188. package/cli/bin.mjs +8 -1
  189. package/cli/bootstrap.mjs +1 -1
  190. package/cli/commands/claude-cmd.mjs +1 -1
  191. package/cli/commands/deploy/docker.mjs +0 -3
  192. package/cli/doctor.mjs +1 -1
  193. package/cli/install/banner.mjs +67 -0
  194. package/cli/install/banner.test.mjs +39 -0
  195. package/cli/install/index.mjs +32 -0
  196. package/cli/install/index.test.mjs +61 -0
  197. package/cli/install/paths.mjs +80 -0
  198. package/cli/install/paths.test.mjs +77 -0
  199. package/cli/install/plugin.mjs +161 -0
  200. package/cli/install/postinstall.mjs +111 -0
  201. package/cli/install.mjs +13 -600
  202. package/cli/migrate.mjs +157 -0
  203. package/cli/migrate.test.mjs +85 -0
  204. package/cli/provision.mjs +615 -1918
  205. package/cli/provision.test.mjs +1 -1
  206. package/cli/service-controller.test.mjs +0 -1
  207. package/cli/service-env.mjs +0 -1
  208. package/cli/utils.mjs +0 -1
  209. package/install.sh +54 -466
  210. package/package.json +1 -1
  211. package/packages/sdk/dist/mcp/server.js +41 -409
  212. package/packages/sdk/dist/router/q-learning-router.d.ts +3 -5
  213. package/packages/sdk/dist/router/q-learning-router.js +9 -5
  214. package/packages/sdk/package.json +1 -1
  215. package/scripts/install-curl.sh +17 -0
  216. package/bizar-dash/dist/assets/HeadroomView-D1UiTYbt.js +0 -11
  217. package/bizar-dash/dist/assets/HeadroomView-D1UiTYbt.js.map +0 -1
  218. package/bizar-dash/dist/assets/MiscView-B8QY82Pm.js +0 -1
  219. package/bizar-dash/dist/assets/ObsidianView-BCTejEj2.js +0 -1
  220. package/bizar-dash/dist/assets/main-CokHAXWM.js.map +0 -1
  221. package/bizar-dash/skills/headroom/SKILL.md +0 -94
  222. package/bizar-dash/src/server/headroom.mjs +0 -649
  223. package/bizar-dash/src/server/routes/headroom.mjs +0 -126
  224. package/bizar-dash/src/web/v8/views/Headroom/HeadroomView.tsx +0 -201
  225. package/bizar-dash/tests/graphify-mod-spawn.node.test.mjs +0 -90
  226. package/bizar-dash/tests/headroom-install.test.mjs +0 -173
  227. package/bizar-dash/tests/headroom-settings.test.mjs +0 -126
  228. package/bizar-dash/tests/headroom-status.test.mjs +0 -117
  229. package/bizar-dash/tests/v7-archive/mobile-overview.test.tsx +0 -214
  230. package/bizar-dash/tests/v7-archive/mobile-settings.test.tsx +0 -181
  231. package/bizar-dash/tests/v7-archive/navigation/CommandPalette.test.tsx +0 -105
  232. package/bizar-dash/tests/v7-archive/settings-nav.test.tsx +0 -128
  233. package/bizar-dash/tests/v7-archive/views/Overview.test.tsx +0 -413
  234. package/cli/commands/headroom.mjs +0 -204
  235. package/cli/provision-claude.mjs +0 -1176
@@ -178,7 +178,7 @@ describe('buildServiceEnvFile()', () => {
178
178
  'BIZAR_HOME', 'BIZAR_REPO', 'PATH',
179
179
  'CLINE_SERVER_PASSWORD', 'BIZAR_DASHBOARD_PORT',
180
180
  'BIZAR_DASHBOARD_HOST', 'BIZAR_LOG_LEVEL',
181
- 'BIZAR_HEADROOM_AUTOSTART', 'BIZAR_LIGHTRAG_AUTOSTART',
181
+ 'BIZAR_LIGHTRAG_AUTOSTART',
182
182
  'BIZAR_MEMORY_VAULT',
183
183
  ];
184
184
  for (const var_ of required) {
@@ -151,7 +151,6 @@ test('buildServiceEnvFile returns string with all required vars', async () => {
151
151
  assert.ok(content.includes('BIZAR_DASHBOARD_PORT='), 'BIZAR_DASHBOARD_PORT present');
152
152
  assert.ok(content.includes('BIZAR_DASHBOARD_HOST='), 'BIZAR_DASHBOARD_HOST present');
153
153
  assert.ok(content.includes('BIZAR_LOG_LEVEL='), 'BIZAR_LOG_LEVEL present');
154
- assert.ok(content.includes('BIZAR_HEADROOM_AUTOSTART='), 'BIZAR_HEADROOM_AUTOSTART present');
155
154
  assert.ok(content.includes('BIZAR_LIGHTRAG_AUTOSTART='), 'BIZAR_LIGHTRAG_AUTOSTART present');
156
155
  assert.ok(content.includes('BIZAR_MEMORY_VAULT='), 'BIZAR_MEMORY_VAULT present');
157
156
  });
@@ -119,7 +119,6 @@ export function buildServiceEnvFile({ bizarHome, repoPath, lightragAutoStart = t
119
119
  `BIZAR_DASHBOARD_PORT=${env.BIZAR_DASHBOARD_PORT}`,
120
120
  `BIZAR_DASHBOARD_HOST=${env.BIZAR_DASHBOARD_HOST}`,
121
121
  `BIZAR_LOG_LEVEL=${env.BIZAR_LOG_LEVEL}`,
122
- `BIZAR_HEADROOM_AUTOSTART=${env.BIZAR_HEADROOM_AUTOSTART}`,
123
122
  `BIZAR_LIGHTRAG_AUTOSTART=${env.BIZAR_LIGHTRAG_AUTOSTART}`,
124
123
  `BIZAR_MEMORY_VAULT=${env.BIZAR_MEMORY_VAULT}`,
125
124
  ];
package/cli/utils.mjs CHANGED
@@ -161,7 +161,6 @@ export function buildSummary(components, agents, target, skillPacks = []) {
161
161
  if (components.includes('rules')) parts.push('rules');
162
162
  if (components.includes('hooks')) parts.push('hooks');
163
163
  if (components.includes('commands')) parts.push('commands');
164
- parts.push('Headroom');
165
164
  parts.push('Semble');
166
165
  parts.push('Skills CLI');
167
166
  if (skillPacks.length > 0) parts.push(`skills: ${skillPacks.join(', ')}`);
package/install.sh CHANGED
@@ -1,498 +1,86 @@
1
1
  #!/usr/bin/env bash
2
- #
3
- # install.sh — Cross-platform BizarHarness installer (Claude Code).
4
- #
5
- # v6.3.0 — Migrated from Cline to Claude Code.
6
- #
7
- # 1. Detects platform (Linux/macOS/Windows)
8
- # 2. Installs Node.js 18+, jq, gh, uv, python3 (cross-platform)
9
- # 3. Installs Claude Code via npm:
10
- # npm install -g @anthropic-ai/claude-agent-sdk
11
- # npm install -g @anthropic-ai/claude-code
12
- # 4. Optionally installs agent-browser (Rust native CLI from vercel-labs)
13
- # 5. Shells out to `node cli/provision-claude.mjs`, which writes the
14
- # `~/.claude/` config tree, registers the Bizar MCP server, and
15
- # copies agent files / skills / commands / hooks / rules.
16
- #
17
- # Almost all logic still lives in `cli/provision-claude.mjs:runProvision`,
18
- # which is shared between `bizar install` and `bizar update`. This bash
19
- # script exists only for the platform-specific steps that need sudo +
20
- # a system package manager.
21
- #
22
- # Flags:
23
- # --non-interactive skip prompts (CI safe)
24
- # --dry-run print actions, make no changes
25
- # --force overwrite existing files
26
- # --update this is a re-install
27
- # --mode=install|update|install-only-system
28
- # install = full flow (the default)
29
- # update = alias for install (provisioner auto-detects)
30
- # install-only-system = only run this bash script, skip
31
- # the Node provisioner (used for
32
- # bootstrapping on a fresh box
33
- # before the npm package is set up)
34
- #
35
- # The script exits with the provisioner's exit code.
36
-
2
+ # install.sh — BizarHarness OS dependencies installer
3
+ # Usage: ./install.sh [--non-interactive|--dry-run]
37
4
  set -euo pipefail
38
5
 
39
- # ── Color helpers ────────────────────────────────────────────────────────────
40
- GREEN='\033[0;32m'
41
- YELLOW='\033[1;33m'
42
- CYAN='\033[0;36m'
43
- RED='\033[0;31m'
44
- DIM='\033[2m'
45
- BOLD='\033[1m'
46
- NC='\033[0m'
47
-
48
- note() { echo -e " ${GREEN}✓${NC} $1"; }
49
- warn() { echo -e " ${YELLOW}⚠${NC} $1"; }
50
- err() { echo -e " ${RED}✗${NC} $1"; }
51
- action() { echo -e " ${CYAN}→${NC} $1"; }
52
- dim() { echo -e " ${DIM}$1${NC}"; }
53
- section(){
54
- echo ""
55
- echo -e "${BOLD}${CYAN}── $1 ──${NC}"
56
- }
57
-
58
- have_cmd() { command -v "$1" >/dev/null 2>&1; }
59
-
60
- # ── Paths ───────────────────────────────────────────────────────────────────
61
- REPO_DIR="$(cd "$(dirname "$0")" && pwd)"
6
+ G='\033[0;32m'; Y='\033[1;33m'; R='\033[0;31m'; N='\033[0m'
7
+ note() { echo -e " ${G}✓${N} $1"; }
8
+ warn() { echo -e " ${Y}⚠${N} $1"; }
9
+ err() { echo -e " ${R}✗${N} $1"; }
10
+ cmd() { command -v "$1" >/dev/null 2>&1; }
11
+ dry() { [ "${DRY:-0}" -eq 0 ] && "$@" || echo " would $*" >&2; }
12
+ sudo_if_needed() { [ "$(id -u)" -ne 0 ] && cmd sudo && SUDO="sudo" || SUDO=""; }
62
13
 
63
- # ── Flags ────────────────────────────────────────────────────────────────────
64
- NON_INTERACTIVE=0
65
- DRY_RUN=0
66
- FORCE=0
67
- UPDATE_MODE=0
68
- MODE="install"
69
-
70
- show_usage() {
71
- cat <<'EOF'
72
- install.sh — BizarHarness cross-platform installer (Claude Code)
73
-
74
- Usage:
75
- ./install.sh Interactive install (Linux/macOS)
76
- ./install.sh --help Show this help
77
- ./install.sh --dry-run Dry run — print actions, no changes
78
- ./install.sh --non-interactive Non-interactive (CI safe)
79
- ./install.sh --force Overwrite existing files
80
- ./install.sh --update Alias for --mode=update
81
- ./install.sh --mode=<mode> install | update | install-only-system
82
-
83
- This script handles platform-specific system dependencies (apt/dnf/pacman/
84
- zypper on Linux, brew on macOS) and then shells to
85
- `node cli/provision-claude.mjs`, which writes ~/.claude/, registers the
86
- Bizar MCP server, copies agents / skills / commands / hooks / rules,
87
- and runs the post-install doctor check.
88
- EOF
89
- }
90
-
91
- parse_flags() {
14
+ main() {
15
+ local ni=0
92
16
  while [ $# -gt 0 ]; do
93
17
  case "$1" in
94
- --help|-h) show_usage; exit 0;;
95
- --non-interactive|-y) NON_INTERACTIVE=1;;
96
- --dry-run) DRY_RUN=1;;
97
- --force) FORCE=1;;
98
- --update) UPDATE_MODE=1; MODE="update";;
99
- --mode=*) MODE="${1#--mode=}";;
100
- --mode) shift; MODE="${1:-install}";;
101
- *) err "unknown flag: $1"; show_usage; exit 2;;
102
- esac
103
- shift
18
+ --help|-h) cat <<'EOF'
19
+ install.sh — BizarHarness OS-dependencies installer
20
+ ./install.sh --non-interactive CI safe
21
+ ./install.sh --dry-run print actions, no changes
22
+ EOF
23
+ exit 0;;
24
+ --dry-run) export DRY=1;;
25
+ --non-interactive|-y) ni=1;;
26
+ *) warn "ignoring: $1";;
27
+ esac; shift
104
28
  done
29
+ echo "Installing OS dependencies..."
30
+ case "$(uname -s)" in
31
+ Linux) linux;;
32
+ Darwin) macos;;
33
+ *) err "Unsupported OS — use install.ps1 on Windows"; exit 1;;
34
+ esac
35
+ local a=(--mode=install)
36
+ [ "$ni" -eq 1 ] && a+=(--yes)
37
+ [ "${DRY:-0}" -eq 1 ] && a+=(--dry-run)
38
+ exec node "$(dirname "$0")/cli/provision.mjs" "${a[@]}"
105
39
  }
106
40
 
107
- dry() {
108
- if [ "$DRY_RUN" -eq 0 ]; then "$@"; fi
109
- }
110
-
111
- # ── sudo helper ─────────────────────────────────────────────────────────────
112
- SUDO=""
113
- sudo_if_needed() {
114
- if [ "$(id -u)" -ne 0 ] && have_cmd sudo; then SUDO="sudo"; fi
115
- }
116
-
117
- # ── Node install (Linux) ────────────────────────────────────────────────────
118
- ensure_node() {
119
- if have_cmd node; then
120
- note "Node.js $(node --version) present"
121
- return
122
- fi
123
- section "Installing Node.js"
124
- if [ ! -f /etc/os-release ]; then
125
- err "no /etc/os-release — cannot detect distro"
126
- err "Install Node.js 18+ manually: https://nodejs.org/"
127
- exit 1
128
- fi
41
+ linux() {
42
+ [ ! -f /etc/os-release ] && { err "no /etc/os-release"; exit 1; }
129
43
  . /etc/os-release
44
+ note "Detected Linux ($ID)"
130
45
  sudo_if_needed
131
46
  case "$ID" in
132
47
  ubuntu|debian|pop|linuxmint|elementary)
133
- action "Installing Node.js 20.x via NodeSource (apt)..."
134
48
  dry $SUDO apt-get update
135
49
  dry $SUDO apt-get install -y ca-certificates curl gnupg
136
- dry curl -fsSL https://deb.nodesource.com/setup_20.x | $SUDO bash -
50
+ cmd node || dry curl -fsSL https://deb.nodesource.com/setup_20.x | $SUDO bash -
137
51
  dry $SUDO apt-get install -y nodejs
52
+ dry $SUDO apt-get install -y --no-install-recommends python3 jq git curl
138
53
  ;;
139
54
  fedora|rhel|rocky|almalinux|centos)
140
- action "Installing Node.js 20.x via NodeSource (dnf)..."
141
- dry $SUDO dnf install -y https://rpm.nodesource.com/pub_20.x/nodesource-release-nodesource-1.noarch.rpm
142
- dry $SUDO dnf install -y nodejs
55
+ cmd node || dry $SUDO dnf install -y https://rpm.nodesource.com/pub_20.x/nodesource-release-nodesource-1.noarch.rpm
56
+ cmd node || dry $SUDO dnf install -y nodejs
57
+ dry $SUDO dnf install -y python3 jq git curl gh
143
58
  ;;
144
59
  arch|manjaro|endeavouros)
145
- action "Installing Node.js via pacman..."
146
- dry $SUDO pacman -Sy --noconfirm nodejs npm
60
+ dry $SUDO pacman -Sy --noconfirm --needed nodejs npm python jq git curl
147
61
  ;;
148
62
  opensuse*|sles)
149
- action "Installing Node.js via zypper..."
150
- dry $SUDO zypper install -y nodejs20 npm20
151
- ;;
152
- alpine)
153
- action "Installing Node.js via apk..."
154
- dry $SUDO apk add --no-cache nodejs npm
63
+ dry $SUDO zypper install -y nodejs20 npm20 python3 jq git curl gh
155
64
  ;;
65
+ alpine) dry $SUDO apk add --no-cache nodejs npm python3 jq git curl ;;
66
+ void) dry $SUDO xbps-install -S nodejs python3 jq git curl ;;
156
67
  nixos)
157
- action "Detected NixOS — Node.js must be installed via nix-shell"
158
- warn "Run the following, then re-run this installer:"
159
- warn " nix-shell -p nodejs python3 jq gh git"
160
- warn " node cli/provision-claude.mjs"
68
+ note "NixOS — manual setup required"
69
+ warn "nix-shell -p nodejs python3 jq gh git"
70
+ warn "node cli/provision.mjs --mode=install"
161
71
  exit 0
162
72
  ;;
163
- void)
164
- action "Installing Node.js via xbps..."
165
- dry $SUDO xbps-install -S nodejs
166
- ;;
167
- *)
168
- err "Unsupported distro: $ID"
169
- err "Install Node.js 18+ manually: https://nodejs.org/"
170
- exit 1
171
- ;;
172
- esac
173
- note "Node.js installed: $(node --version)"
174
- }
175
-
176
- # ── Claude Code install ────────────────────────────────────────────────────
177
- install_claude_code() {
178
- if have_cmd claude; then
179
- note "claude $(claude --version 2>/dev/null | head -1) present"
180
- else
181
- section "Installing Claude Code"
182
- if ! have_cmd npm; then
183
- err "npm not available — install Node.js 18+ first: https://nodejs.org/"
184
- exit 1
185
- fi
186
- action "Installing @anthropic-ai/claude-agent-sdk..."
187
- dry npm install -g @anthropic-ai/claude-agent-sdk 2>&1 || \
188
- warn "claude-agent-sdk install failed — retry later: npm install -g @anthropic-ai/claude-agent-sdk"
189
- action "Installing @anthropic-ai/claude-code..."
190
- dry npm install -g @anthropic-ai/claude-code 2>&1
191
- if have_cmd claude; then
192
- note "claude $(claude --version 2>/dev/null | head -1) installed"
193
- else
194
- warn "claude CLI not found on PATH after install — check npm global bin dir"
195
- fi
196
- fi
197
- }
198
-
199
- # ── Dependency detection + install (cross-platform) ────────────────────────
200
- check_deps() {
201
- section "Checking dependencies"
202
- if ! [ -f "$REPO_DIR/scripts/check-deps.mjs" ]; then
203
- warn "scripts/check-deps.mjs not found — skipping detailed check"
204
- return
205
- fi
206
- if ! node "$REPO_DIR/scripts/check-deps.mjs" --strict 2>/dev/null; then
207
- warn "dependency detector reported missing deps — proceeding with best-effort checks"
208
- else
209
- note "all required dependencies satisfied"
210
- fi
211
- }
212
-
213
- install_agent_browser() {
214
- # v6.0.0 — agent-browser (native Rust CLI from vercel-labs). Replaces
215
- # the v5.x browser-harness (Python CDP wrapper). Installs via npm.
216
- #
217
- # If npm is not available, this is a soft-fail: agent-browser is
218
- # optional, and `cli/provision-claude.mjs:ensureAgentBrowser` will retry it
219
- # once npm is available.
220
- if have_cmd agent-browser; then
221
- local ab_ver
222
- ab_ver="$(agent-browser --version 2>/dev/null || echo 'unknown')"
223
- note "agent-browser ${ab_ver} already installed"
224
- return 0
225
- fi
226
- action "Installing agent-browser via npm..."
227
- if ! have_cmd npm; then
228
- warn "npm not available — skipping agent-browser install"
229
- warn " Install later: npm install -g agent-browser"
230
- return 0
231
- fi
232
- if dry npm install -g agent-browser 2>&1; then
233
- local ab_ver
234
- ab_ver="$(agent-browser --version 2>/dev/null || echo 'unknown')"
235
- note "agent-browser ${ab_ver} installed"
236
- # Download Chrome for Testing
237
- if dry agent-browser install 2>&1; then
238
- note "Chrome for Testing downloaded"
239
- else
240
- warn "Chrome download failed — retry later: agent-browser install"
241
- fi
242
- else
243
- warn "agent-browser install failed — the browser tools will not be available"
244
- warn " Install later: npm install -g agent-browser"
245
- fi
246
- }
247
-
248
- install_lightrag() {
249
- # LightRAG is optional but recommended. Install via uv tool.
250
- # uv tools install to ~/.local/bin/ — ensure that's on PATH.
251
- if [ -d "$HOME/.local/bin" ] && [[ ":$PATH:" != *":$HOME/.local/bin:"* ]]; then
252
- export PATH="$HOME/.local/bin:$PATH"
253
- fi
254
- if have_cmd lightrag-server; then
255
- note "LightRAG $(lightrag-server --version 2>/dev/null || echo 'server') present"
256
- return 0
257
- fi
258
- action "Installing LightRAG via uv tool..."
259
- if dry uv tool install "lightrag-hku[api]" 2>&1; then
260
- note "LightRAG installed"
261
- # Verify reachable
262
- if [ -f "$HOME/.local/bin/lightrag-server" ]; then
263
- note "LightRAG binary found at ~/.local/bin/"
264
- fi
265
- else
266
- warn "LightRAG install failed — the memory graph will not be available"
267
- warn " Install later: uv tool install \"lightrag-hku[api]\""
268
- fi
269
- }
270
-
271
- install_missing_deps_linux() {
272
- . /etc/os-release 2>/dev/null || return 0
273
- sudo_if_needed
274
- case "$ID" in
275
- ubuntu|debian|pop|linuxmint|elementary)
276
- action "Installing uv, python3.12, jq, gh via apt..."
277
- dry $SUDO apt-get update
278
- dry $SUDO apt-get install -y --no-install-recommends python3 python3-pip jq git curl ca-certificates gnupg
279
- # uv via official installer (no apt package)
280
- if ! have_cmd uv; then
281
- dry curl -LsSf https://astral.sh/uv/install.sh | sh
282
- note "uv installed via astral.sh"
283
- fi
284
- ;;
285
- fedora|rhel|rocky|almalinux|centos)
286
- action "Installing uv, python3.12, jq, gh via dnf..."
287
- dry $SUDO dnf install -y python3 python3-pip jq git curl gh
288
- if ! have_cmd uv; then
289
- dry curl -LsSf https://astral.sh/uv/install.sh | sh
290
- note "uv installed via astral.sh"
291
- fi
292
- ;;
293
- arch|manjaro|endeavouros)
294
- action "Installing uv, python3.12, jq, gh via pacman..."
295
- dry $SUDO pacman -Sy --noconfirm --needed python python-pip jq git curl github-cli
296
- if ! have_cmd uv; then
297
- dry curl -LsSf https://astral.sh/uv/install.sh | sh
298
- note "uv installed via astral.sh"
299
- fi
300
- ;;
301
- opensuse*|sles)
302
- action "Installing uv, python3.12, jq, gh via zypper..."
303
- dry $SUDO zypper install -y python3 python3-pip jq git curl gh
304
- if ! have_cmd uv; then
305
- dry curl -LsSf https://astral.sh/uv/install.sh | sh
306
- note "uv installed via astral.sh"
307
- fi
308
- ;;
309
- alpine)
310
- action "Installing uv, python3, jq, gh via apk..."
311
- dry $SUDO apk add --no-cache python3 py3-pip jq git curl
312
- if ! have_cmd uv; then
313
- dry curl -LsSf https://astral.sh/uv/install.sh | sh
314
- note "uv installed via astral.sh"
315
- fi
316
- ;;
317
- void)
318
- action "Installing uv, python3, jq, gh via xbps..."
319
- dry $SUDO xbps-install -S python3 python3-pip jq git curl
320
- if ! have_cmd uv; then
321
- dry curl -LsSf https://astral.sh/uv/install.sh | sh
322
- note "uv installed via astral.sh"
323
- fi
324
- ;;
325
- nixos)
326
- warn "NixOS detected — LightRAG and other uv tools require manual setup"
327
- warn " After nix-shell: nix-shell -p nodejs python3 jq gh git"
328
- warn " Then run: uv tool install \"lightrag-hku[api]\""
329
- warn " And re-run this installer: node cli/provision-claude.mjs"
330
- return 0
331
- ;;
73
+ *) err "Unsupported distro: $ID"; exit 1;;
332
74
  esac
333
- # LightRAG via uv tool (requires uv to be on PATH)
334
- install_lightrag
335
- }
336
-
337
- install_missing_deps_macos() {
338
- if ! have_cmd brew; then
339
- section "Homebrew"
340
- action "Installing Homebrew..."
341
- if [ "$DRY_RUN" -eq 0 ]; then
342
- /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
343
- note "Homebrew installed"
344
- fi
345
- else
346
- note "Homebrew already installed"
347
- fi
348
- action "Installing uv, python3.12, jq, gh via brew..."
349
- dry brew install uv jq gh 2>/dev/null || true
350
- # LightRAG via uv tool (requires uv to be on PATH)
351
- install_lightrag
352
- }
353
-
354
- # ── Service registration (delegated to Node) ────────────────────────────────
355
- install_service() {
356
- section "Installing background service"
357
- # The unified provisioner does this via `cli/service-controller.mjs`.
358
- # We still call it from here because the bash script may run standalone
359
- # (e.g. for first-boot provisioning before the npm package is set up).
360
- #
361
- # v6.3.0 — Claude Code does NOT have an out-of-process "server" the way
362
- # Cline did, so we skip `bizar service install` here. The dashboard
363
- # (bizar-dash) is launched via `bizar dash start --bg` instead.
364
- local bin="$REPO_DIR/cli/bin.mjs"
365
- if [ ! -f "$bin" ]; then
366
- warn "cli/bin.mjs not found — service registration deferred"
367
- warn " (will complete when \`bizar service install\` is run later)"
368
- return 0
369
- fi
370
- if [ "$DRY_RUN" -eq 1 ]; then
371
- dim " would run: node $bin service install"
372
- return 0
373
- fi
374
- if [ "$UPDATE_MODE" -eq 1 ]; then
375
- dim " update mode: service restart is handled by the Node provisioner"
376
- return 0
377
- fi
378
- if ! node "$bin" service install 2>&1; then
379
- warn "service registration had issues — see output above"
380
- dim " manual command: node $bin service install"
381
- fi
75
+ cmd uv || { note "Installing uv..."; dry curl -LsSf https://astral.sh/uv/install.sh | sh; }
76
+ note "OS dependencies ready"
382
77
  }
383
78
 
384
- # ── Final success banner ───────────────────────────────────────────────────────
385
-
386
- print_banner() {
387
- local dashboard_url="${BIZAR_DASHBOARD_URL:-http://localhost:4321}"
388
- section "Install complete"
389
- echo ""
390
- echo -e "${BOLD}${CYAN}┌────────────────────────────────────────────────────────────┐${NC}"
391
- echo -e "${BOLD}${CYAN}│${NC} ${BOLD}BizarHarness ready (Claude Code).${NC} │"
392
- echo -e "${BOLD}${CYAN}│${NC} │"
393
- echo -e "${BOLD}${CYAN}│${NC} ${GREEN}✓${NC} Cross-platform installer v6.3.0 │"
394
- echo -e "${BOLD}${CYAN}│${NC} │"
395
- echo -e "${BOLD}${CYAN}│${NC} Dashboard: ${CYAN}$dashboard_url${NC} │"
396
- echo -e "${BOLD}${CYAN}│${NC} │"
397
- echo -e "${BOLD}${CYAN}│${NC} ${DIM}Next:${NC} │"
398
- echo -e "${BOLD}${CYAN}│${NC} ${DIM} 1. Restart claude to pick up new config${NC} │"
399
- echo -e "${BOLD}${CYAN}│${NC} ${DIM} 2. Run \`claude auth login\` to add API keys${NC} │"
400
- echo -e "${BOLD}${CYAN}│${NC} ${DIM} 3. Run 'bizar dash start' to launch the dashboard${NC} │"
401
- echo -e "${BOLD}${CYAN}│${NC} ${DIM} 4. Visit $dashboard_url in your browser${NC} │"
402
- echo -e "${BOLD}${CYAN}└────────────────────────────────────────────────────────────┘${NC}"
403
- echo ""
404
- if [ "$DRY_RUN" -eq 1 ]; then
405
- warn "DRY RUN — no changes were made"
406
- fi
407
- }
408
-
409
- # ── OS dispatch ───────────────────────────────────────────────────────────────
410
-
411
- install_linux() {
412
- note "Detected Linux ($(uname -m))"
413
- ensure_node
414
- check_deps
415
- install_claude_code
416
- install_missing_deps_linux
417
- install_agent_browser
418
- install_service
419
- }
420
-
421
- install_macos() {
422
- note "Detected macOS ($(uname -m))"
423
- check_deps
424
- install_missing_deps_macos
425
- install_claude_code
426
- install_agent_browser
427
- install_service
428
- }
429
-
430
- # ── Main ──────────────────────────────────────────────────────────────────────
431
-
432
- main() {
433
- parse_flags "$@"
434
-
435
- if [ "$DRY_RUN" -eq 1 ]; then
436
- dim "DRY RUN MODE — no changes will be made"
437
- echo ""
438
- fi
439
-
440
- echo ""
441
- echo -e "${BOLD}${CYAN} ⚡ BizarHarness Installer v6.3.0 (Claude Code)${NC}"
442
- if [ "$UPDATE_MODE" -eq 1 ]; then
443
- echo -e " ${DIM}Update mode${NC}"
444
- fi
445
- echo ""
446
-
447
- # OS detection
448
- local os
449
- os="$(uname -s)"
450
- case "$os" in
451
- Linux) install_linux ;;
452
- Darwin) install_macos ;;
453
- *)
454
- err "Unsupported OS: $os"
455
- echo ""
456
- warn "On Windows, run install.ps1 instead."
457
- warn "On other Unix systems, ensure Node.js 18+ is available and run:"
458
- warn " node scripts/check-deps.mjs"
459
- echo ""
460
- exit 1
461
- ;;
462
- esac
463
-
464
- # ── Hand off to the unified provisioner (Node) ─────────────────────────
465
- # All cross-OS work (agent files, command copy, ~/.claude/ settings,
466
- # MCP server registration, skills/rules/hooks mirror) lives in
467
- # `cli/provision-claude.mjs:runProvision`. It's idempotent — skipping
468
- # it (e.g. via --install-only-system) is fine for first-boot scenarios
469
- # where the npm package isn't yet set up.
470
- if [ "$MODE" = "install-only-system" ]; then
471
- note "skipped node provisioner (--mode=install-only-system)"
472
- exit 0
473
- fi
474
-
475
- if [ -f "$REPO_DIR/cli/provision-claude.mjs" ]; then
476
- echo ""
477
- section "Running unified provisioner"
478
- local args=(--mode "$MODE")
479
- [ "$DRY_RUN" -eq 1 ] && args+=(--dry-run)
480
- [ "$FORCE" -eq 1 ] && args+=(--force)
481
- [ "$NON_INTERACTIVE" -eq 1 ] && args+=(--yes)
482
- # `set +e` so we capture the provisioner's exit code and surface it.
483
- set +e
484
- node "$REPO_DIR/cli/provision-claude.mjs" "${args[@]}"
485
- local rc=$?
486
- set -e
487
- if [ "$rc" -ne 0 ]; then
488
- warn "provisioner exited with code $rc"
489
- exit "$rc"
490
- fi
491
- print_banner
492
- else
493
- warn "cli/provision-claude.mjs not found — agent files / MCP / settings.json"
494
- warn " were NOT synced. Run \`bizar install\` from a checkout to fix."
495
- fi
79
+ macos() {
80
+ note "Detected macOS"
81
+ cmd brew || { err "Homebrew not found — install from https://brew.sh"; exit 1; }
82
+ dry brew install uv jq gh
83
+ note "OS dependencies ready"
496
84
  }
497
85
 
498
86
  main "$@"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polderlabs/bizar",
3
- "version": "10.2.0",
3
+ "version": "10.4.0",
4
4
  "description": "Norse-pantheon multi-agent system for Claude Code — 14 agents across 4 cost tiers with cost-aware routing, plans, and a configurable agent harness. Ships as a single npm package with the dashboard server, Claude Code MCP server, and typed SDK.",
5
5
  "type": "module",
6
6
  "bin": {