@polderlabs/bizar 4.7.0 → 4.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/bizar-dash/dist/assets/main-DHZmbnxQ.js +361 -0
  2. package/bizar-dash/dist/assets/main-DHZmbnxQ.js.map +1 -0
  3. package/bizar-dash/dist/assets/main-DX_Jh8Wc.css +1 -0
  4. package/bizar-dash/dist/assets/{mobile-CWqPoGaT.js → mobile-BK8-ythT.js} +2 -2
  5. package/bizar-dash/dist/assets/mobile-BK8-ythT.js.map +1 -0
  6. package/bizar-dash/dist/assets/{mobile-i4Uv9eW8.js → mobile-Chvf9u_B.js} +1 -1
  7. package/bizar-dash/dist/assets/{mobile-i4Uv9eW8.js.map → mobile-Chvf9u_B.js.map} +1 -1
  8. package/bizar-dash/dist/index.html +3 -3
  9. package/bizar-dash/dist/mobile.html +2 -2
  10. package/bizar-dash/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
  11. package/bizar-dash/skills/publishing/SKILL.md +146 -0
  12. package/bizar-dash/src/server/api.mjs +8 -0
  13. package/bizar-dash/src/server/backup-store.mjs +525 -0
  14. package/bizar-dash/src/server/digest-store.mjs +558 -0
  15. package/bizar-dash/src/server/lib/rate-limit.mjs +122 -0
  16. package/bizar-dash/src/server/routes/backup.mjs +112 -0
  17. package/bizar-dash/src/server/routes/chat.mjs +14 -0
  18. package/bizar-dash/src/server/routes/digests.mjs +82 -0
  19. package/bizar-dash/src/server/routes-v2/events.mjs +14 -0
  20. package/bizar-dash/src/server/schedules-runner.mjs +126 -0
  21. package/bizar-dash/src/server/server.mjs +17 -0
  22. package/bizar-dash/src/web/App.tsx +8 -1
  23. package/bizar-dash/src/web/components/BackupRestore.tsx +330 -0
  24. package/bizar-dash/src/web/components/SearchModal.tsx +3 -1
  25. package/bizar-dash/src/web/components/chat/Composer.tsx +2 -0
  26. package/bizar-dash/src/web/styles/main.css +70 -8
  27. package/bizar-dash/src/web/views/Activity.tsx +11 -1
  28. package/bizar-dash/src/web/views/Agents.tsx +57 -42
  29. package/bizar-dash/src/web/views/Artifacts.tsx +38 -25
  30. package/bizar-dash/src/web/views/Chat.tsx +8 -0
  31. package/bizar-dash/src/web/views/History.tsx +4 -1
  32. package/bizar-dash/src/web/views/MiniMaxUsage.tsx +21 -4
  33. package/bizar-dash/src/web/views/Mods.tsx +30 -17
  34. package/bizar-dash/src/web/views/Overview.tsx +8 -1
  35. package/bizar-dash/src/web/views/Providers.tsx +16 -16
  36. package/bizar-dash/src/web/views/Schedules.tsx +33 -15
  37. package/bizar-dash/src/web/views/Settings.tsx +97 -1751
  38. package/bizar-dash/src/web/views/Skills.tsx +4 -1
  39. package/bizar-dash/src/web/views/Tasks.tsx +11 -2
  40. package/bizar-dash/src/web/views/memory/ConfigPanel.tsx +8 -2
  41. package/bizar-dash/src/web/views/memory/LightragPanel.tsx +3 -0
  42. package/bizar-dash/src/web/views/memory/ObsidianPanel.tsx +12 -4
  43. package/bizar-dash/src/web/views/memory/SemanticSearchPanel.tsx +3 -0
  44. package/bizar-dash/src/web/views/settings/ActivitySection.tsx +205 -0
  45. package/bizar-dash/src/web/views/settings/AgentSection.tsx +294 -0
  46. package/bizar-dash/src/web/views/settings/AuthSection.tsx +159 -0
  47. package/bizar-dash/src/web/views/settings/BackupSection.tsx +16 -0
  48. package/bizar-dash/src/web/views/settings/EnvVarsSection.tsx +16 -0
  49. package/bizar-dash/src/web/views/settings/GeneralSection.tsx +105 -0
  50. package/bizar-dash/src/web/views/settings/HeadroomSection.tsx +39 -0
  51. package/bizar-dash/src/web/views/settings/MemorySection.tsx +16 -0
  52. package/bizar-dash/src/web/views/settings/NetworkSection.tsx +87 -0
  53. package/bizar-dash/src/web/views/settings/NotificationsSection.tsx +34 -0
  54. package/bizar-dash/src/web/views/settings/ProvidersSection.tsx +16 -0
  55. package/bizar-dash/src/web/views/settings/SkillsSection.tsx +16 -0
  56. package/bizar-dash/src/web/views/settings/SystemLlmSection.tsx +81 -0
  57. package/bizar-dash/src/web/views/settings/ThemeSection.tsx +168 -0
  58. package/bizar-dash/src/web/views/settings/UpdatesSection.tsx +256 -0
  59. package/bizar-dash/tests/a11y.test.tsx +206 -0
  60. package/bizar-dash/tests/backup-restore.test.mjs +217 -0
  61. package/bizar-dash/tests/backup-restore.test.tsx +123 -0
  62. package/bizar-dash/tests/backup-store.test.mjs +300 -0
  63. package/bizar-dash/tests/cli-error-visibility.test.mjs +153 -0
  64. package/bizar-dash/tests/digest-generation.test.mjs +191 -0
  65. package/bizar-dash/tests/digest-store.test.mjs +264 -0
  66. package/bizar-dash/tests/rate-limit.test.mjs +298 -0
  67. package/cli/bin.mjs +96 -2
  68. package/cli/commands/minimax.mjs +20 -0
  69. package/cli/commands/util.mjs +154 -1
  70. package/cli/digest.mjs +149 -0
  71. package/package.json +1 -1
  72. package/bizar-dash/dist/assets/main-DAlLdW8I.css +0 -1
  73. package/bizar-dash/dist/assets/main-DGGq-iZI.js +0 -361
  74. package/bizar-dash/dist/assets/main-DGGq-iZI.js.map +0 -1
  75. package/bizar-dash/dist/assets/mobile-CWqPoGaT.js.map +0 -1
@@ -512,8 +512,9 @@ function ScheduleEditorModal({
512
512
 
513
513
  return (
514
514
  <form className="schedule-form" onSubmit={handleSubmit}>
515
- <label className="field-label">Name</label>
515
+ <label className="field-label" htmlFor="schedule-name">Name</label>
516
516
  <input
517
+ id="schedule-name"
517
518
  className="input"
518
519
  type="text"
519
520
  placeholder="Weekly code review"
@@ -524,8 +525,9 @@ function ScheduleEditorModal({
524
525
 
525
526
  <div className="task-form-row">
526
527
  <div className="task-form-field">
527
- <label className="field-label">Type</label>
528
+ <label className="field-label" htmlFor="schedule-type">Type</label>
528
529
  <select
530
+ id="schedule-type"
529
531
  className="select"
530
532
  value={state.type}
531
533
  onChange={(e) => update('type', e.target.value as EditorState['type'])}
@@ -543,8 +545,9 @@ function ScheduleEditorModal({
543
545
  <>
544
546
  <div className="task-form-row">
545
547
  <div className="task-form-field">
546
- <label className="field-label">Day of week</label>
548
+ <label className="field-label" htmlFor="schedule-dow">Day of week</label>
547
549
  <select
550
+ id="schedule-dow"
548
551
  className="select"
549
552
  value={state.cronDow}
550
553
  onChange={(e) => update('cronDow', e.target.value)}
@@ -555,8 +558,9 @@ function ScheduleEditorModal({
555
558
  </select>
556
559
  </div>
557
560
  <div className="task-form-field">
558
- <label className="field-label">Hour</label>
561
+ <label className="field-label" htmlFor="schedule-hour">Hour</label>
559
562
  <select
563
+ id="schedule-hour"
560
564
  className="select"
561
565
  value={String(state.cronHour)}
562
566
  onChange={(e) => update('cronHour', parseInt(e.target.value, 10))}
@@ -567,8 +571,9 @@ function ScheduleEditorModal({
567
571
  </select>
568
572
  </div>
569
573
  <div className="task-form-field">
570
- <label className="field-label">Minute</label>
574
+ <label className="field-label" htmlFor="schedule-minute">Minute</label>
571
575
  <select
576
+ id="schedule-minute"
572
577
  className="select"
573
578
  value={String(state.cronMinute)}
574
579
  onChange={(e) => update('cronMinute', parseInt(e.target.value, 10))}
@@ -583,8 +588,9 @@ function ScheduleEditorModal({
583
588
  )}
584
589
  {state.showAdvanced && (
585
590
  <div className="task-form-field">
586
- <label className="field-label">Cron expression</label>
591
+ <label className="field-label" htmlFor="schedule-cron-expr">Cron expression</label>
587
592
  <input
593
+ id="schedule-cron-expr"
588
594
  className="input"
589
595
  type="text"
590
596
  value={state.rawCron}
@@ -597,6 +603,7 @@ function ScheduleEditorModal({
597
603
  type="button"
598
604
  className="link-btn"
599
605
  onClick={() => update('showAdvanced', !state.showAdvanced)}
606
+ aria-expanded={state.showAdvanced}
600
607
  >
601
608
  <ChevronDown
602
609
  size={12}
@@ -613,8 +620,9 @@ function ScheduleEditorModal({
613
620
  {state.type === 'interval' && (
614
621
  <div className="task-form-row">
615
622
  <div className="task-form-field" style={{ flex: 1 }}>
616
- <label className="field-label">Every</label>
623
+ <label className="field-label" htmlFor="schedule-interval-n">Every</label>
617
624
  <input
625
+ id="schedule-interval-n"
618
626
  className="input"
619
627
  type="number"
620
628
  min={1}
@@ -623,8 +631,9 @@ function ScheduleEditorModal({
623
631
  />
624
632
  </div>
625
633
  <div className="task-form-field" style={{ flex: 1 }}>
626
- <label className="field-label">Unit</label>
634
+ <label className="field-label" htmlFor="schedule-interval-unit">Unit</label>
627
635
  <select
636
+ id="schedule-interval-unit"
628
637
  className="select"
629
638
  value={state.intervalUnit}
630
639
  onChange={(e) => update('intervalUnit', e.target.value)}
@@ -639,8 +648,9 @@ function ScheduleEditorModal({
639
648
 
640
649
  {state.type === 'once' && (
641
650
  <div className="task-form-field">
642
- <label className="field-label">Run at</label>
651
+ <label className="field-label" htmlFor="schedule-once-at">Run at</label>
643
652
  <input
653
+ id="schedule-once-at"
644
654
  className="input"
645
655
  type="datetime-local"
646
656
  value={state.onceAt}
@@ -651,8 +661,9 @@ function ScheduleEditorModal({
651
661
 
652
662
  <div className="task-form-row">
653
663
  <div className="task-form-field" style={{ flex: 1 }}>
654
- <label className="field-label">Timezone</label>
664
+ <label className="field-label" htmlFor="schedule-timezone">Timezone</label>
655
665
  <select
666
+ id="schedule-timezone"
656
667
  className="select"
657
668
  value={tzSelectValue}
658
669
  onChange={(e) => update('timezone', e.target.value)}
@@ -665,8 +676,9 @@ function ScheduleEditorModal({
665
676
  </div>
666
677
  {state.timezone === 'Other…' && (
667
678
  <div className="task-form-field" style={{ flex: 1 }}>
668
- <label className="field-label">IANA name</label>
679
+ <label className="field-label" htmlFor="schedule-custom-tz">IANA name</label>
669
680
  <input
681
+ id="schedule-custom-tz"
670
682
  className="input"
671
683
  type="text"
672
684
  placeholder="Europe/Paris"
@@ -679,8 +691,9 @@ function ScheduleEditorModal({
679
691
 
680
692
  <div className="task-form-row">
681
693
  <div className="task-form-field">
682
- <label className="field-label">Action</label>
694
+ <label className="field-label" htmlFor="schedule-action-type">Action</label>
683
695
  <select
696
+ id="schedule-action-type"
684
697
  className="select"
685
698
  value={state.actionType}
686
699
  onChange={(e) => update('actionType', e.target.value as EditorState['actionType'])}
@@ -691,8 +704,9 @@ function ScheduleEditorModal({
691
704
  </select>
692
705
  </div>
693
706
  <div className="task-form-field" style={{ flex: 2 }}>
694
- <label className="field-label">Target</label>
707
+ <label className="field-label" htmlFor="schedule-action-target">Target</label>
695
708
  <input
709
+ id="schedule-action-target"
696
710
  className="input"
697
711
  type="text"
698
712
  placeholder={state.actionType === 'webhook' ? 'https://...' : state.actionType === 'agent' ? 'agent name or task ref' : 'echo hi'}
@@ -704,8 +718,9 @@ function ScheduleEditorModal({
704
718
 
705
719
  {state.actionType === 'agent' && (
706
720
  <div className="task-form-field">
707
- <label className="field-label">Prompt (what to send the agent)</label>
721
+ <label className="field-label" htmlFor="schedule-action-prompt">Prompt (what to send the agent)</label>
708
722
  <textarea
723
+ id="schedule-action-prompt"
709
724
  className="input"
710
725
  rows={3}
711
726
  placeholder="Review open PRs for stale code review comments and nudge reviewers."
@@ -719,6 +734,7 @@ function ScheduleEditorModal({
719
734
  <legend>Budget pre-flight</legend>
720
735
  <label className="checkbox-row">
721
736
  <input
737
+ id="schedule-skip-budget"
722
738
  type="checkbox"
723
739
  checked={state.skipIfBudgetLow}
724
740
  onChange={(e) => update('skipIfBudgetLow', e.target.checked)}
@@ -726,8 +742,9 @@ function ScheduleEditorModal({
726
742
  <span>Skip this run when too many background tasks are already running.</span>
727
743
  </label>
728
744
  <div className="task-form-field">
729
- <label className="field-label">Max concurrent bg tasks</label>
745
+ <label className="field-label" htmlFor="schedule-max-concurrent">Max concurrent bg tasks</label>
730
746
  <input
747
+ id="schedule-max-concurrent"
731
748
  className="input"
732
749
  type="number"
733
750
  min={1}
@@ -741,6 +758,7 @@ function ScheduleEditorModal({
741
758
 
742
759
  <label className="checkbox-row">
743
760
  <input
761
+ id="schedule-enabled"
744
762
  type="checkbox"
745
763
  checked={state.enabled}
746
764
  onChange={(e) => update('enabled', e.target.checked)}